$ od -c -N 50000 [eris]<LispCore>bcpl>BcplEnv.dm!1
0000000 377 \0 \0 B c p l E n v . c m \0 373 230
0000020 031 235 3 \0 \0 376 001 \0 E \v B c p l E n
0000040 v . c m @ L i s p B c p l F i
0000060 l e s . c m @ @ L i s p B R s
0000100 . c m @ F t p P r o t . d e c
0000120 l P u p . d e c l P u p 0 .
0000140 d e c l P u p 1 . d e c l P
0000160 u p A l C o m P r o c . d e c l
0000200 P u p A l E t h . d e c l P
0000220 u p B S P . d e c l P u p P a
0000240 r a m s . d e c l P u p R o u
0000260 t e . d e c l P u p R T P . d
0000300 e c l A L T O B Y T E B L T .
0000320 B R A L T O Q U E U E . B R
0000340 A L T O T I M E R . B R C o n
0000360 t e x t . b r C o n t e x t I
0000400 n i t . b r D i r s . b r D
0000420 s p S t r e a m s A 376 001 \0 252 .
0000440 b r D s p S t r e a m s B . b
0000460 r F t p P l i s t D a t e . b
0000500 r F t p P L i s t I m p l . b
0000520 r F t p P L i s t I n i t . b
0000540 r F t p P L i s t P r o t . b
0000560 r F t p U s e r P r o t . b r
0000600 F t p U s e r P r o t F i l e
0000620 . b r F t p U t i l A . b r
0000640 F t p U t i l B . b r F t p U
0000660 t i l I n i t . b r F t p U t
0000700 i l X f e r . b r G P . B R
0000720 I n t e r r u p t . b r I n t
0000740 e r r u p t I n i t . b r i s
0000760 f . B R i s f i n i t . B R
0001000 K e y w o r d . b r K e y w o
0001020 r d I n i t . b r M D I . B 376
0001040 001 \0 256 274 R P u p 1 b . b r P
0001060 u p 1 I n i t . b r P u p 1 O
0001100 p e n C l o s e . b r P u p A
0001120 l 1 a . b r P u p A l E t h a
0001140 . b r P u p A l E t h b . b r
0001160 P u p A l E t h I n i t . b r
0001200 P u p B S P a . b r P u p B
0001220 S P B l o c k . b r P u p B S
0001240 P O p e n C l o s e . b r P u
0001260 p B S P P r o t . b r P u p B
0001300 S P S t r e a m s . b r P u p
0001320 D u m m y G a t e . b r P u p
0001340 N a m e L o o k u p . b r P u
0001360 p R o u t e . b r P u p R T P
0001400 . b r P u p R T P O p e n C l
0001420 o s e . b r S t r i n g U t i
0001440 l . b r 376 \0 245 \0 354 T E M P L A
0001460 T E . B R T i m e C o n v A .
0001500 b r T i m e C o n v B . b r
0001520 T i m e I O . b r b v m u s e
0001540 r . c m f i n d . c m A L T
0001560 O D E F S . D A L T O F I L E
0001600 S Y S . D A S I M . D B C P
0001620 L F I L E S . D D I S K S . D
0001640 S T R E A M S . D S Y S D E
0001660 F S . D T i m e . d s y s .
0001700 b k D u m p L i s p . c m 377 \0
0001720 \0 C a l l S u b r s . b c p l \0
0001740 373 227 210 C M \0 \0 376 001 \0 337 c / / T
0001760 h i s f i l e w r i t t e n
0002000 f r o m L L P A R A M S o
0002020 n 2 4 - J U L - 8 1 0 8 : 3
0002040 5 : 4 1 \r \r e x t e r n a l [
0002060 \r u C o d e C h e c k \r S t a c
0002100 k O v e r f l o w \r N W W I n t
0002120 e r r u p t \r P a g e F a u l t
0002140 \r S t a t s O v e r f l o w \r A
0002160 d d D I S K P A G E S \r B A C K
0002200 G R O U N D S U B R \r B i t B l
0002220 t S U B R \r B K S Y S C H A R 0
0002240 \r C L O C K 0 \r C L O S E S O C
0002260 K E T \r C O N T E X T S W I T C
0002300 H \r C O P Y S Y S 0 \r C R E A T
0002320 E F I L E 0 \r C R E A T E M O U
0002340 S E E V E N T \r D A Y T 376 001 \0 i
0002360 d I M E 0 \r D S P B O U T \r E N
0002400 A B L E M O U S E \r G A T H E R
0002420 S T A T S \r G E T K E Y S \r G E
0002440 T P A G E H I N T \r L O C K P A
0002460 G E S \r L O G O U T 0 \r N E W P
0002500 A G E \r N O O P S U B R \r N X T
0002520 U S E D S T K B L O C K \r O P E
0002540 N S O C K E T \r P E E K K E Y S
0002560 \r R A I D \r R E A D D I S K P A
0002600 G E \r R E A D P U P \r R E L E A
0002620 S E P A G E S \r R E L E A S E W
0002640 O R K I N G S E T \r S E R I A L
0002660 N U M B E R \r S e t C u r s o r
0002700 P o s \r S E T S C R E E N C O L
0002720 O R \r S H O W D I S P L A Y \r U
0002740 N L O C K P A G E S \r U s e r N
0002760 a 376 001 \0 022 : m e 0 \r W R I T E D
0003000 I S K P A G E \r W R I T E P U P
0003020 \r W R I T E S T A T S \r X t r a
0003040 S u b r 0 \r X t r a S u b r 1 \r
0003060 X t r a S u b r 2 \r X t r a S u
0003100 b r 3 \r X t r a S u b r 4 \r ] \r
0003120 l e t C A L L S U B R S ( )
0003140 b e [ \r u C o d e C h e c k (
0003160 ) \r S t a c k O v e r f l o w (
0003200 ) \r N W W I n t e r r u p t ( )
0003220 \r P a g e F a u l t ( ) \r S t a
0003240 t s O v e r f l o w ( ) \r A d d
0003260 D I S K P A G E S ( ) \r B A C K
0003300 G R O U N D S U B R ( ) \r B i t
0003320 B l t S U B R ( ) \r B K S Y S C
0003340 H A R 0 ( ) \r C L O C K 0 ( ) \r
0003360 C L O S E S 376 001 \0 002 370 O C K E T
0003400 ( ) \r C O N T E X T S W I T C H
0003420 ( ) \r C O P Y S Y S 0 ( ) \r C R
0003440 E A T E F I L E 0 ( ) \r C R E A
0003460 T E M O U S E E V E N T ( ) \r D
0003500 A Y T I M E 0 ( ) \r D S P B O U
0003520 T ( ) \r E N A B L E M O U S E (
0003540 ) \r G A T H E R S T A T S ( ) \r
0003560 G E T K E Y S ( ) \r G E T P A G
0003600 E H I N T ( ) \r L O C K P A G E
0003620 S ( ) \r L O G O U T 0 ( ) \r N E
0003640 W P A G E ( ) \r N O O P S U B R
0003660 ( ) \r N X T U S E D S T K B L O
0003700 C K ( ) \r O P E N S O C K E T (
0003720 ) \r P E E K K E Y S ( ) \r R A I
0003740 D ( ) \r R E A D D I S K P A G E
0003760 ( ) \r R E A D P U P ( 376 \0 342 Z 250
0004000 ) \r R E L E A S E P A G E S ( )
0004020 \r R E L E A S E W O R K I N G S
0004040 E T ( ) \r S E R I A L N U M B E
0004060 R ( ) \r S e t C u r s o r P o s
0004100 ( ) \r S E T S C R E E N C O L O
0004120 R ( ) \r S H O W D I S P L A Y (
0004140 ) \r U N L O C K P A G E S ( ) \r
0004160 U s e r N a m e 0 ( ) \r W R I T
0004200 E D I S K P A G E ( ) \r W R I T
0004220 E P U P ( ) \r W R I T E S T A T
0004240 S ( ) \r X t r a S u b r 0 ( ) \r
0004260 X t r a S u b r 1 ( ) \r X t r a
0004300 S u b r 2 ( ) \r X t r a S u b r
0004320 3 ( ) \r X t r a S u b r 4 ( ) \r
0004340 ] \r 377 \0 \0 D i s p l a y I O S u
0004360 b r s . b c p l \0 373 227 ' 230 p \0 \0
0004400 376 001 \0 347 035 / / D i s p l a y I
0004420 O S u b r s . b c p l - S u
0004440 b r s w h i c h d e a l w
0004460 i t h d i s p l a y \r / / L
0004500 a s t c h a n g e M a y 1
0004520 2 , 1 9 8 1 1 2 : 4 7 A
0004540 M b y B e a u S h e i l \r
0004560 / / L a s t c h a n g e M
0004600 a r c h 1 , 1 9 8 1 8 :
0004620 5 6 P M b y B e a u S h
0004640 e i l \r / / T r i l l c h a
0004660 n g e F e b r u a r y 2 4 ,
0004700 1 9 8 1 1 : 5 8 P M b
0004720 y B e a u S h e i l \r / /
0004740 L a s t c h a n g e F e b r
0004760 u a r y 3 , 1 9 8 1 4 :
0005000 0 3 P M 376 001 \0 022 321 b y B e
0005020 a u S h e i l \r / / M o r e
0005040 X B i t B l t c h a n g e s
0005060 J a n u a r y 2 8 , 1 9 8
0005100 1 6 : 1 4 P M b y B e
0005120 a u S h e i l \r / / X B i t
0005140 B l t c h a n g e D e c e m
0005160 b e r 1 6 , 1 9 8 0 1 0
0005200 : 0 4 A M b y A l a n B
0005220 e l l \r \r \t g e t " A l t o D
0005240 e f s . d " \r \t g e t " L i s
0005260 p B c p l . d e c l " \r \t g e t
0005300 " K b d D e f s . d " \r \t g e
0005320 t " S t r e a m s . d " \r \r e
0005340 x t e r n a l [ \t \t / / p
0005360 r o c e d u r e s d e f i n e
0005400 d h e r e \r \t W c 376 001 \0 005 216 ;
0005420 W s ; D S P B O U T ; F l
0005440 a s h S c r e e n ; S E T S C
0005460 R E E N C O L O R ; S H O W D
0005500 I S P L A Y \r \t S e t S
0005520 c r e e n C o l o r ; B c p l
0005540 D i s p l a y ; S t e a l F r
0005560 o m B c p l D i s p l a y ; A
0005600 d d T o B c p l D i s p l a y \r
0005620 \t \t \t / / s t a t i c s d
0005640 e f i n e d h e r e \r \t @ d l
0005660 i s p D s p ; @ D i s p l a y
0005700 A d d r H i ; @ d s p S t a r
0005720 t A d d r ; @ d s p A r e a \r
0005740 \t @ D L i s p D C B ; @ d s p
0005760 S c a n L i n e s \r \t ] \r \r e x
0006000 t e r n a l [ \t \t / / p 376
0006020 001 \0 275 $ r o c e d u r e s u s
0006040 e d \r \t C a l l S w a t ; R A
0006060 I D C o d e ; Z e r o ; C r
0006100 e a t e D i s p l a y S t r e a
0006120 m ; S h o w D i s p l a y S t
0006140 r e a m \r \t D i s m i s s ; L
0006160 o c k P a g e s ; U n l o c k
0006200 P a g e s \r \t S m a l l U n b o
0006220 x ; E q N I L ; M k S m a l
0006240 l P o s S u b r R e s ; V e r
0006260 s i o n \r \t P u t s ; C l o s
0006300 e s ; C h a r W i d t h ; E
0006320 r a s e B i t s ; G e t B i t
0006340 P o s ; G e t L m a r g \r \t ]
0006360 \r \r e x t e r n a l [ \t \t / /
0006400 s t a t i c s u s e d \r \t
0006420 d s p ; 376 001 \0 252 212 s y s F o n
0006440 t ; E m u l a t o r S p a c e
0006460 ; @ R M S K ; V M D i s p l
0006500 a y \r \t ] \r \r s t a t i c [ \r
0006520 \t @ d l i s p D s p ; @ D i s
0006540 p l a y A d d r H i = 0 ; D i
0006560 s p l a y P a g e s = 0 ; @ d
0006600 s p S t a r t A d d r ; @ D L
0006620 i s p D C B \r \t @ d s p A r e a
0006640 ; @ d s p S c a n L i n e s \r
0006660 \t ] \r \r s t r u c t u r e E D
0006700 C B : [ \t \t \t / / E x t e n
0006720 d e d D C B \r \t @ D C B =
0006740 [ b l a n k b i t o f f s
0006760 e t D C B . h e i g h t \r
0007000 L
0007020 o n g P t r F l g 376 001 \0 016 257 b
0007040 i t 1 \t / / O v e r l a i d
0007060 o n D C B . h e i g h t \r
0007100
0007120 n S c a n L i n e s b i t 1
0007140 5 \r
0007160 ] \r \t A d d r L o w o r d \t
0007200 \t \t / / t o b e D 0 c o
0007220 m p a t i b l e \r \t A d d r H i
0007240 w o r d \r \t \t ] \r \r / / T
0007260 h e f o l l o w i n g h a c
0007300 k a l l o w s u s t o f
0007320 e t c h t h e n u m b e r
0007340 o f l i n e s f r o m a
0007360 d i s p l a y \r / / s t r e a
0007400 m . T h e c o m p l e t e
0007420 d e c l a r a t i o n f 376 001
0007440 \0 t _ r o m w h i c h t h i
0007460 s i s c r i b b e d i s
0007500 i n t h e O S \r / / s o u
0007520 r c e f i l e D s p S t r e
0007540 a m s B . b c p l \r \r s t r u c
0007560 t u r e D i s p S t r m [
0007600 b l a n k w o r d 2 9 ; n
0007620 l w o r d ] \r \r m a n i f
0007640 e s t [ s o u r c e G r a y
0007660 = 3 \r \t L o n g D C B
0007700 S e a l = # 1 7 7 4 2 3 \t /
0007720 / c h e c k e d b y d i s
0007740 p l a y u c o d e \r \t ] \r \r
0007760 l e t W s ( s t r ) b e f
0010000 o r i = 1 t o s t r >
0010020 > S t r i n g . l e n g t h d
0010040 o P 376 001 \0 k 273 u t s ( d s p ,
0010060 s t r > > S t r i n g . c h a r
0010100 ^ i ) \r \r a n d W c ( c h )
0010120 b e P u t s ( d s p , c h ) \r
0010140 \r a n d D S P B O U T ( l v B
0010160 y t e ) = v a l o f \r [
0010200 \r l e t c h a r =
0010220 S m a l l U n b o x ( l v B y t
0010240 e ) & R M S K \r t e s t
0010260 c h a r e q E R A S E C H
0010300 A R C O D E \t \t / / I s c h
0010320 a r a n e r a s e r ? \r
0010340 i f n o t P u t s ( d
0010360 s p , c h a r ) \r
0010400 i f s o u n l e s s G e t
0010420 B i t P o s ( d s p ) l e G
0010440 e t L m a r g ( 376 001 \0 \ 313 d s p
0010460 ) \r
0010500 d o E r a s e B i t s ( d s
0010520 p , - C h a r W i d t h ( s y
0010540 s F o n t , $ A ) , 0 ) \r
0010560 r e s u l t i s l v B y
0010600 t e \r ] \r \r a n d F l a s
0010620 h S c r e e n ( ) b e \r [
0010640 \r S e t S c r e e n C o
0010660 l o r ( t r u e ) \r D i
0010700 s m i s s ( 6 0 ) \t \t \t \t / /
0010720 6 0 x 1 0 m s e c = . 6
0010740 s e c s \r S e t S c r
0010760 e e n C o l o r ( f a l s e ) \r
0011000 ] \r \r a n d S E T S C R E
0011020 E N C O L O R ( l v V a l ) =
0011040 v a l o f \r [ \t \t / 376 001 \0
0011060 - 271 / w a s i n L i s p
0011100 b u t L i s p s h o u l d n
0011120 t k n o w w h e r e b c p
0011140 l c o r e i s \r S e t
0011160 S c r e e n C o l o r ( n o t
0011200 E q N I L ( l v V a l ) ) \r
0011220 r e s u l t i s l v V a l \r
0011240 ] \r \r a n d S e t S c r e
0011260 e n C o l o r ( f l g ) b e \r
0011300 [ \r l e t A d r D
0011320 C B = @ d i s p l a y L i s
0011340 t H e a d \t / / c h a n g e
0011360 t o b l a c k / w h i t e
0011400 \r w h i l e A d r D C
0011420 B d o \t \t \t / / e l s e e
0011440 n d o f D C B c h a i n \r
0011460 376 001 \0 . o [ A d r
0011500 D C B > > D C B . b a c k g r o
0011520 u n d = f l g ; A d r D C
0011540 B = A d r D C B > > D C B .
0011560 n e x t ] \r ] \r \r a n d
0011600 S H O W D I S P L A Y ( l v B
0011620 l k , l v R a s t e r W i d t
0011640 h ) = v a l o f \r [ \r
0011660 i f E q N I L ( l v B l
0011700 k ) t h e n \t \t \t / / g i v
0011720 e a l l t h e s p a c e
0011740 t o d s p \r [ B c
0011760 p l D i s p l a y ( 8 0 8 ) \t \t
0012000 \t / / t h i s t u r n s o
0012020 f f L i s p D i s p l a y \r
0012040 D i s p l a y A d
0012060 d r H i = 376 001 \0 E 271 0 \t \t /
0012100 / t h i s r e c o r d s t
0012120 h a t \r r e s u l
0012140 t i s l v B l k \r ]
0012160 \r D i s p l a y A d d r H
0012200 i = l v B l k > > V A . v a
0012220 h i \r / / f i x u p d c b
0012240 f o r D L i s p D i s p l a
0012260 y - o t h e r f i e l d s
0012300 a r e O K a l r e a d y \r
0012320 D L i s p D C B > > E D C
0012340 B . w i d t h = S m a l l U
0012360 n b o x ( l v R a s t e r W i d
0012400 t h ) \r D L i s p D C B >
0012420 > E D C B . L o n g P t r F l g
0012440 = t r u e \r D L i s p
0012460 D C B > > E D C B . b i 376 001 \0 335
0012500 D t m a p = L o n g D C B S
0012520 e a l \r D L i s p D C B >
0012540 > E D C B . n S c a n L i n e s
0012560 = 4 0 4 \r D L i s p D
0012600 C B > > E D C B . A d d r H i
0012620 = l v B l k > > V A . v a h i
0012640 \r D L i s p D C B > > E D
0012660 C B . A d d r L o = l v B l
0012700 k > > V A . v a l o \r S h
0012720 o w D i s p l a y S t r e a m (
0012740 d l i s p D s p , D S a l o n
0012760 e ) \r r e s u l t i s l
0013000 v B l k \r ] \r \r a n d B
0013020 c p l D i s p l a y ( n S c a n
0013040 L i n e s ) b e \r [ \r / /
0013060 T u r n s o n d s p , g
0013100 i 376 001 \0 022 376 v i n g i t n S
0013120 c a n L i n e s o f d i s p
0013140 l a y s p a c e . I f i t
0013160 i s r u n n i n g , \r / /
0013200 t h e D L i s p d i s p l a
0013220 y i s t u r n e d o f f ,
0013240 b e c a u s e w e a r e
0013260 a b o u t t o s h o w d s
0013300 p a l o n e . \r i f D
0013320 i s p l a y A d d r H i t h e
0013340 n S h o w D i s p l a y S t r
0013360 e a m ( d l i s p D s p , D S
0013400 d e l e t e ) \r \r d s p S
0013420 c a n L i n e s = n S c a n
0013440 L i n e s \r l e t n l i
0013460 n e s = ( n S c a n L i n e
0013500 s / ( s y s 376 001 \0 m 312 F o n t !
0013520 - 2 ) ) - 1 \r \r i f
0013540 ( d s p n e 0 ) & ( d s
0013560 p > > D i s p S t r m . n l n
0013600 e n l i n e s ) t h e n \r
0013620 [ S h o w D i s p l
0013640 a y S t r e a m ( d s p , D S
0013660 d e l e t e ) ; C l o s e s (
0013700 d s p ) ; d s p = 0 ] \r \r
0013720 i f ( d s p e q 0 )
0013740 & ( n l i n e s g r 0 )
0013760 t h e n \r [ d s p
0014000 = C r e a t e D i s p l a y S
0014020 t r e a m ( n l i n e s , d s
0014040 p S t a r t A d d r , d s p A
0014060 r e a , s y s F o n t ) \r
0014100 S h o w D i 376 001 \0 002 307
0014120 s p l a y S t r e a m ( d s p ,
0014140 D S a l o n e ) \r ]
0014160 \r ] \r \r a n d A d d T o B
0014200 c p l D i s p l a y ( p t r ,
0014220 N , S ) b e \r [ \r / /
0014240 A d d N w o r d s a n d
0014260 S s c a n l i n e s t o
0014300 d s p A r e a i f p t r i
0014320 s a t e n d o f d s p A
0014340 r e a \r i f p t r e
0014360 q ( d s p S t a r t A d d r
0014400 + d s p A r e a ) t h e n
0014420 d s p A r e a = d s p A r e
0014440 a + N \r B c p l D i
0014460 s p l a y ( d s p S c a n L i n
0014500 e s + S ) \r i f D
0014520 376 001 \0 322 g i s p l a y A d d r H
0014540 i t h e n S h o w D i s p l
0014560 a y S t r e a m ( d l i s p D s
0014600 p , D S b e l o w , d s p )
0014620 \r i f V M D i s p l a
0014640 y t h e n S h o w D i s p l
0014660 a y S t r e a m ( V M D i s p l
0014700 a y , D S a b o v e , d s p
0014720 ) \r ] \r \r a n d S t e a l
0014740 F r o m B c p l D i s p l a y (
0014760 N , S ) = v a l o f \r
0015000 [ \r / / T a k e N w o r
0015020 d s a n d S s c a n l i n
0015040 e s f r o m d s p A r e a ,
0015060 i f d s p A r e a i s b
0015100 i g g e r t h a n N \r
0015120 i f N 376 001 \0 324 v g e d s
0015140 p A r e a t h e n C a l l S
0015160 w a t ( " T o o g r e e d y "
0015200 ) \r d s p A r e a =
0015220 d s p A r e a - N \r
0015240 B c p l D i s p l a y ( d s p S
0015260 c a n L i n e s - S ) \r
0015300 i f D i s p l a y A d d r
0015320 H i t h e n S h o w D i s p
0015340 l a y S t r e a m ( d l i s p D
0015360 s p , D S b e l o w , d s p
0015400 ) \r i f V M D i s p l
0015420 a y t h e n S h o w D i s p
0015440 l a y S t r e a m ( V M D i s p
0015460 l a y , D S a b o v e , d s
0015500 p ) \r l e t p t r =
0015520 d s p S t a r t A 376 \0 5 > 006 d
0015540 d r + d s p A r e a \r
0015560 Z e r o ( p t r , N ) \r
0015600 r e s u l t i s p t r \r
0015620 ] \r \r 377 \0 \0 D u m m y I n i t
0015640 . b c p l \0 373 227 336 304 7 \0 \0 376 \0 245
0015660 O 240 / / D u m m y I n i t . b
0015700 c p l . P l a c e h o l d e
0015720 r i n l o a d u p . \r / /
0015740 L a s t c h a n g e S e p t
0015760 e m b e r 2 7 , 1 9 8 1
0016000 1 0 : 5 6 P M b y B i l l
0016020 v a n M e l l e \r \r e x t e
0016040 r n a l S t a r t O f A l l o
0016060 c B l o c k \r \r l e t S t a r
0016100 t O f A l l o c B l o c k ( )
0016120 b e [ ] \r 377 \0 \0 F i l e I O
0016140 S u b r s . b c p l \0 373 227 223 276 9
0016160 \0 \0 376 001 \0 337 u / / F i l e I O
0016200 S u b r s . b c p l \r / / L a
0016220 s t c h a n g e A u g u s t
0016240 2 , 1 9 8 1 1 2 : 4 3
0016260 A M b y B e a u S h e i l
0016300 \r / / T o n e c h a n g e
0016320 M a r c h 1 7 , 1 9 8 1
0016340 4 : 4 9 P M b y B e a u
0016360 S h e i l \r / / C h o r d c
0016400 h a n g e N o v e m b e r 2
0016420 0 , 1 9 8 0 2 : 5 2 P M
0016440 b y B e a u S h e i l \r /
0016460 / P r e v i o u s l a s t
0016500 c h a n g e A u g u s t 1 8
0016520 , 1 9 8 0 1 2 : 3 1 P M
0016540 b y B e a u S h e i l \r \r
0016560 \t g e t " A 376 001 \0 203 G l t o F
0016600 i l e S y s . d " \r \t g e t "
0016620 D i s k s . d " \r \t g e t " L
0016640 i s p B c p l . d e c l " \r \t g
0016660 e t " S t a t s . d e c l " \r
0016700 \t g e t " S t r e a m s . d "
0016720 \r \r e x t e r n a l [ \t / /
0016740 d e f i n e d h e r e \r \t A d
0016760 d D I S K P A G E S ; C R E A
0017000 T E F I L E 0 ; G E T P A G E
0017020 H I N T ; R E A D D I S K P A
0017040 G E \r \t R E L E A S E P A G E S
0017060 ; W R I T E D I S K P A G E ;
0017100 C O P Y S Y S 0 \r \t O u t p u
0017120 t S t r e a m \t \t / / u s e d
0017140 b y s t a t s t o a c c
0017160 e s s l o g f i l e 376 001 \0 S
0017200 ; \r \r \t \t / / s t a t i c s
0017220 u s e d \r \t @ l v N I L ; @ T
0017240 o p L e v e l F r a m e \r \t E m
0017260 u D i s k V p ; E m u D i s k
0017300 B u f f e r ; s y s D i s k ;
0017320 L i s p F m a p ; @ M i s c
0017340 S T A T S b a s e \r \r \t \t / /
0017360 O . S . p r o c e d u r e s
0017400 u s e d \r \t R e s e t s ; C l
0017420 o s e s ; W r i t e B l o c k
0017440 ; Z e r o ; C a l l S w a t
0017460 ; M i n ; M y F r a m e \r \t
0017500 T r u n c a t e D i s k S t r e
0017520 a m ; D e l e t e D i s k P a
0017540 g e s ; P o s i t i o n P a g
0017560 e ; S e t B l o c k \r \t C r e
0017600 a 376 001 \0 320 245 t e D i s k F i l e
0017620 ; C r e a t e D i s k S t r e
0017640 a m ; A c t O n D i s k P a g
0017660 e s ; W r i t e D i s k P a g
0017700 e s \r \r \t \t / / p r o c e d
0017720 u r e s u s e d \r \t @ B G e t
0017740 B a s e ; @ B S e t B R ; @
0017760 X S e t B R ; @ R R e a d ;
0020000 @ R W r i t e ; @ X G e t B a
0020020 s e ; @ X P u t B a s e \r \t E
0020040 q N I L ; I G e t B a s e ;
0020060 I P u t B a s e ; T i m e r ;
0020100 W r i t e S t a t s X ; R A
0020120 I D C o d e \r \t S m a l l U n b
0020140 o x ; S m a l l N e g U n b o
0020160 x ; M k S m a l l P o s ; M
0020200 k S m a l l 376 001 \0 & 277 N e g \r \t
0020220 V P ; M o v e P a g e ; S y
0020240 s E r r ; I n d e x e d P a g
0020260 e I O ; F l u s h V M ; M a
0020300 k e V m e m R O \r \t ] \r \r l e t
0020320 A d d D I S K P A G E S ( l v
0020340 F i d , l v P n , l v N p a
0020360 g e s , l v A p t r ) = v
0020400 a l o f \r [ \r l e t
0020420 f p = v e c l F P ; G
0020440 e t F p t r A r g ( l v F i d ,
0020460 f p ) \r \r / / l v P n i s
0020500 f i r s t p a g e t o w
0020520 r i t e , b u t s i n c e
0020540 l i s p n u m b e r s p a g
0020560 e s w i t h l e a d e r \r /
0020600 / p a g e = - 1 376 001 \0 327 026
0020620 , l v P n = l a s t K n o w n
0020640 p a g e f o r t h e B F
0020660 S a n d g e 0 , s i n c
0020700 e e v e n e m p t y \r / /
0020720 f i l e s c o n t a i n o n
0020740 e d a t a p a g e \r l
0020760 e t l a s t K n o w n = S
0021000 m a l l U n b o x ( l v P n ) \r
0021020 X S e t B R ( l v A p t r
0021040 ) \r l e t D A s = v
0021060 e c 1 0 2 \r D A s ! 0
0021100 = R R e a d ( l a s t K n o w
0021120 n - 1 ) ; D A s ! 1 = f i
0021140 l l I n D A \r \r [ \r
0021160 l e t n C = 0 \t \t \t \t \t /
0021200 / n u m b e r o f C h a r
0021220 376 001 \0 330 m s \r \r / / r e a d
0021240 l a s t p a g e s o w e
0021260 c a n w r i t e i t b a c
0021300 k w i t h n e w n e x t
0021320 p a g e a d d r i n l a b
0021340 e l \r A c t O n D i s k P
0021360 a g e s ( s y s D i s k , 0 ,
0021400 D A s - l a s t K n o w n ,
0021420 f p , l a s t K n o w n , l
0021440 a s t K n o w n , \r
0021460 D C r e a d D , l v n
0021500 C , 0 , E m u D i s k B u f
0021520 f e r , 0 , l v H i n t E
0021540 r r o r , f a l s e , l a s
0021560 t K n o w n ) \r / / B F S d
0021600 o e s n o t z e r o p a g
0021620 e t r a 376 001 \0 037 { i l e r s
0021640 a s L i s p r e q u i r e s
0021660 i f i n c l u d e d i n
0021700 f i l e . \r l e t n W
0021720 = n C r s h i f t 1 \t \t \t
0021740 \t / / n u m b e r o f w o
0021760 r d s u s e d \r Z e r o
0022000 ( E m u D i s k B u f f e r + n
0022020 W , W o r d s P e r P a g e -
0022040 n W ) \r ] \r \r / / C A
0022060 a n d D A f o r m a t : l
0022100 a s t b u t 1 p a g e ,
0022120 l a s t p a g e , 1 0 0 n
0022140 e w p a g e s , d u m m y
0022160 e n t r y \r l e t c a
0022200 = v e c W o r d s P e r P a
0022220 g e - 1 ; Z e r o 376 001 \0 * 217 (
0022240 c a , W o r d s P e r P a g e
0022260 ) \r l e t C A s = v
0022300 e c 1 0 2 ; S e t B l o c k
0022320 ( C A s , c a , 1 0 3 ) \r
0022340 C A s ! 1 = E m u D i s
0022360 k B u f f e r \t \t \t / / o l d
0022400 l a s t p a g e d a t a \r
0022420 l e t n P a g e s =
0022440 S m a l l U n b o x ( l v N p a
0022460 g e s ) \r w h i l e n P
0022500 a g e s g r 0 d o \r
0022520 [ \r l e t d o p a g e s
0022540 = ( n P a g e s g r 1 0
0022560 0 ? 1 0 0 , n P a g e s )
0022600 \r l e t l a s t P a g e
0022620 = l a s t K n o w n + 376
0022640 001 \0 324 336 d o p a g e s \r \r
0022660 D A s ! 0 = l a s t K n o w
0022700 n g r 1 ? R R e a d ( l
0022720 a s t K n o w n - 2 ) , f p >
0022740 > F P . l e a d e r V i r t u a
0022760 l D a \r D A s ! 1 = R
0023000 R e a d ( l a s t K n o w n - 1
0023020 ) ; S e t B l o c k ( D A s +
0023040 2 , f i l l I n D A , d o p
0023060 a g e s + 1 ) \r W r i t e
0023100 D i s k P a g e s ( s y s D i s
0023120 k , C A s + 1 - l a s t K n o
0023140 w n , D A s + 1 - l a s t K n
0023160 o w n , f p , l a s t K n o
0023200 w n , \r l a s t P
0023220 a g e , D C w r i t e D , 0
0023240 , 0 , 376 001 \0 023 , 0 , 0 ,
0023260 l v H i n t E r r o r , 0 ,
0023300 l a s t K n o w n ) \r f
0023320 o r i = 2 t o d o p a
0023340 g e s + 1 d o R W r i t e (
0023360 l a s t K n o w n + i - 2 , D
0023400 A s ! i ) \r C A s ! 1 =
0023420 c a \t \t \t \t \t / / p a g e
0023440 o f z e r o e s n o w \r
0023460 l a s t K n o w n = l a s
0023500 t K n o w n + d o p a g e s
0023520 \r n P a g e s = n P a
0023540 g e s - d o p a g e s \r
0023560 ] \r r e s u l t i s l
0023600 v N I L \r ] \r \r a n d C
0023620 R E A T E F I L E 0 ( l v F p t
0023640 r , m a k e D i 376 001 \0 246 \0 r )
0023660 = v a l o f \r [ \r
0023700 l e t d i r = 0 \r
0023720 u n l e s s E q N I L ( m a k
0023740 e D i r ) d o d i r < < S N
0023760 . d i r e c t o r y = 1 \r
0024000 l e t f p = v e c l
0024020 F P \r C r e a t e D i s k
0024040 F i l e ( s y s D i s k , " $ .
0024060 " , f p , 0 , d i r ) \r S
0024100 e t F p t r A r g ( l v F p t r
0024120 , f p ) \r r e s u l t i s
0024140 l v F p t r \r ] \r \r a n
0024160 d G E T P A G E H I N T ( l v
0024200 F i d , l v P n , l v N p a
0024220 g e s , l v A p t r ) = v
0024240 a l o f \r [ \r l 376 001
0024260 \0 U 267 e t f p = v e c l
0024300 F P ; G e t F p t r A r g ( l
0024320 v F i d , f p ) \r X S e
0024340 t B R ( l v A p t r ) \r l
0024360 e t a p n = M a k e B F S
0024400 P a g e N ( l v P n ) \r l
0024420 e t D A s = v e c 1 0 1
0024440 \r D A s ! 0 = a p n
0024460 ? R R e a d ( a p n - 1 ) ,
0024500 f p > > F P . l e a d e r V i r
0024520 t u a l D a \r \r l e t n
0024540 P a g e s = S m a l l U n b
0024560 o x ( l v N p a g e s ) \r
0024600 l e t p a g e s L e f t =
0024620 n P a g e s \r l e t d o
0024640 n e P a g e s = 0 \r \r
0024660 w h i 376 001 \0 021 0 l e p a g e s
0024700 L e f t g r 0 d o \r
0024720 [ \r S e t B l o c k ( D A
0024740 s + 1 , f i l l I n D A , 1
0024760 0 1 ) \r l e t n P a g e
0025000 s t o R e a d = ( p a g e s
0025020 L e f t g r 1 0 0 ? 1 0
0025040 0 , p a g e s L e f t ) \r
0025060 p a g e s L e f t = p a g
0025100 e s L e f t - n P a g e s t
0025120 o R e a d \r l e t l a s
0025140 t P a g e R e a d = \r
0025160 A c t O n D i s k P a g e
0025200 s ( s y s D i s k , 0 , D A
0025220 s - a p n , f p , a p n ,
0025240 a p n + n P a g e s t o R e a d
0025260 , \r 376 001 \0 : 317
0025300 D C r e a d D , 0 , 0
0025320 , E m u D i s k B u f f e r ,
0025340 0 , l v H i n t E r r o r
0025360 ) \r \r / / w r i t e D A s
0025400 i n t o A p t r - a d j u
0025420 s t p a g e n u m b e r s
0025440 f o r L I S P \r f o r
0025460 i = a p n + 1 t o l a s
0025500 t P a g e R e a d d o R W r
0025520 i t e ( i - 1 , D A s ! ( i -
0025540 a p n ) ) \r d o n e P a g
0025560 e s = d o n e P a g e s +
0025600 l a s t P a g e R e a d -
0025620 a p n \r a p n = l a s
0025640 t P a g e R e a d \r D A s
0025660 ! 0 = R R e a d ( l a 376 001 \0
0025700 v \b s t P a g e R e a d - 1 ) \r
0025720 ] \r r e s u l t i s
0025740 M k S m a l l P o s ( d o n e
0025760 P a g e s ) \r ] \r \r a n d
0026000 R E A D D I S K P A G E ( l v
0026020 F i d , l v P n , l v B p t
0026040 r , l v D A ) = v a l o f
0026060 \r [ \r l e t f p
0026100 = v e c l F P ; G e t F p
0026120 t r A r g ( l v F i d , f p )
0026140 \r l e t a p n = M a
0026160 k e B F S P a g e N ( l v P n )
0026200 \r l e t D A s = v e
0026220 c 1 ; D A s ! 1 = f i l
0026240 l I n D A \r D A s ! 0 =
0026260 a p n ? S m a l l U n b
0026300 o x 376 001 \0 230 304 ( l v D A ) , f
0026320 p > > F P . l e a d e r V i r t
0026340 u a l D a \r l e t l v N
0026360 u m C h a r s = v e c 1 \r
0026400 u n l e s s E q N I L (
0026420 l v B p t r ) d o \r
0026440 [ i f l v B p t r > > V A
0026460 . w o r d N n e 0 t h e n
0026500 R A I D C o d e ( " N o t p
0026520 a g e a l i g n e d " , l v
0026540 B p t r ) \r \t X P u t B a s e (
0026560 l v B p t r , 0 ) \t \t / / w
0026600 r i t e r e f t h e p a g
0026620 e b u f f e r \r ]
0026640 \r \r / / N e c e s s a r
0026660 y t o d o X P u t B a s e
0026700 b e f o r e 376 001 \0 { , A c t
0026720 O n D i s k P a g e s \r /
0026740 / b e c a u s e f a u l t i
0026760 n g m i g h t c a u s e d
0027000 i s k a c t i o n \r \r A
0027020 c t O n D i s k P a g e s ( s y
0027040 s D i s k , 0 , D A s - a p
0027060 n , f p , a p n , a p n ,
0027100 \r D C r e a d
0027120 D , l v N u m C h a r s , 0
0027140 , E m u D i s k B u f f e r ,
0027160 0 , l v H i n t E r r o r
0027200 ) \r u n l e s s E q N I
0027220 L ( l v B p t r ) d o M o v
0027240 e P a g e ( V P ( l v B p t r )
0027260 , E m u D i s k V p ) \r
0027300 r e s u l t i s M k S 376 001 \0 206
0027320 s m a l l P o s ( l v N u m C h
0027340 a r s ! 0 ) \r ] \r \r / /
0027360 R e l e a s e s p a g e s o
0027400 f F i d , s t a r t i n g
0027420 a t p a g e p n . \r / / C
0027440 a n b e u s e d t o d e
0027460 l e t e a w h o l e f i l
0027500 e \r \r a n d R E L E A S E P A
0027520 G E S ( l v F i d , l v P n ,
0027540 l v D A ) = v a l o f \r
0027560 [ \r l e t f p =
0027600 v e c 5 ; G e t F p t r A r
0027620 g ( l v F i d , f p ) \r
0027640 l e t a p n = M a k e B F
0027660 S P a g e N ( l v P n ) \r
0027700 l e t D A = a p n ? S
0027720 m 376 001 \0 207 300 a l l U n b o x ( l
0027740 v D A ) , f p > > F P . l e a
0027760 d e r V i r t u a l D a \r
0030000 D e l e t e D i s k P a g e s (
0030020 s y s D i s k , E m u D i s k
0030040 B u f f e r , D A , f p ,
0030060 a p n ) \r r e s u l t i s
0030100 l v N I L \r ] \r \r a n d
0030120 W R I T E D I S K P A G E ( l
0030140 v F i d , l v P n , l v B p
0030160 t r , l v D A , l v N b y t
0030200 e s ) = v a l o f \r [
0030220 \r l e t f p = v e c
0030240 l F P ; G e t F p t r A r g
0030260 ( l v F i d , f p ) \r l
0030300 e t a p n = M a k e B F S
0030320 P a g e N ( 376 001 \0 257 ) l v P n )
0030340 \r l e t D A s = v e
0030360 c 2 ; D A s ! 0 , D A s !
0030400 2 = f i l l I n D A , f i
0030420 l l I n D A \r D A s ! 1
0030440 = a p n ? S m a l l U n b
0030460 o x ( l v D A ) , f p > > F P
0030500 . l e a d e r V i r t u a l D a
0030520 \r \r i f l v B p t r > >
0030540 V A . w o r d N n e 0 t h
0030560 e n R A I D C o d e ( " N o t
0030600 p a g e a l i g n e d " ,
0030620 l v B p t r ) \r X G e t B
0030640 a s e ( l v B p t r ) \t \t / /
0030660 r e a d r e f t h e p a g
0030700 e b u f f e r ! ! \r \r l
0030720 e t n = S m a l 376 001 \0 u 223
0030740 l U n b o x ( l v N b y t e s )
0030760 \r M o v e P a g e ( E m u
0031000 D i s k V p , V P ( l v B p t
0031020 r ) ) \r W r i t e D i s k
0031040 P a g e s ( s y s D i s k , 0
0031060 , D A s - a p n + 1 , f p ,
0031100 a p n , a p n , D C w r i
0031120 t e D , \r 0 ,
0031140 n , E m u D i s k B u f f e
0031160 r , 0 , l v H i n t E r r
0031200 o r ) \r r e s u l t i s
0031220 l v N b y t e s \r ] \r \r a n
0031240 d M a k e B F S P a g e N ( l
0031260 v P n ) = \r ( l v P n
0031300 > > V A . v a h i e q S M A
0031320 L L P O S s p a c e ) ? \r
0031340 376 001 \0 o P l v P n > > V
0031360 A . v a l o + 1 , \t / / l
0031400 i s p s t a r t s p n s a
0031420 t - 1 f o r l e a d e r
0031440 p a g e \r ( S m a l
0031460 l N e g U n b o x ( l v P n )
0031500 e q - 1 ? 0 , R A I D C
0031520 o d e ( " I n v a l i d p a g
0031540 e # " , l v P n ) ) \r \r a
0031560 n d G e t F p t r A r g ( l v
0031600 F p t r , f ) b e \r [
0031620 \r X S e t B R ( l v F p t
0031640 r ) \r f o r i = 0
0031660 t o l F P - 1 d o f ! i
0031700 = R R e a d ( i ) \r ] \r
0031720 \r a n d S e t F p t r A r g (
0031740 l v F p t 376 001 \0 034 222 r , f )
0031760 b e \r [ \r X S e t B
0032000 R ( l v F p t r ) \r f o r
0032020 i = 0 t o l F P - 1
0032040 d o R W r i t e ( i , f ! i
0032060 ) \r ] \r \r a n d H i n t
0032100 E r r o r ( s , c b , c o d
0032120 e ) = v a l o f \t / / B F
0032140 S e r r o r s - d i f f
0032160 a r g s f r o m S y s E r r
0032200 \r [ \r M y F r a m e
0032220 ( ) ! 0 = T o p L e v e l F
0032240 r a m e \t \t / / s e t r e t
0032260 u r n a d d r t o r e t u
0032300 r n f r o m S U B R \r
0032320 r e s u l t i s s e l e c t o
0032340 n c o d e i n t 376 001 \0 312 t o
0032360 \t \t / / e r r o r c o d e
0032400 s w i t c h \r
0032420 [ c a s e 1 1 0
0032440 2 : M k S m a l l N e g ( - 2
0032460 2 ) \t / / e r r o r 2 2 i
0032500 f d i s k f u l l \r
0032520 c a s
0032540 e 1 1 0 5 : M k S m a l l N
0032560 e g ( - 4 1 ) \t / / e r r o r
0032600 4 1 i f p r o t e c t e d
0032620 \r
0032640 d e f a u l t : S y s
0032660 E r r ( 0 , c o d e ) ] \r
0032700 ] \r \r a n d O u t p u t S
0032720 t r e a m ( l v F i d ) = v
0032740 a l o f \r [ \r l e 376
0032760 001 \0 q 030 t f p = v e c l
0033000 F P ; G e t F p t r A r g ( l
0033020 v F i d , f p ) \r l e t
0033040 s t = C r e a t e D i s k
0033060 S t r e a m ( f p , k s T y p
0033100 e W r i t e O n l y , w o r d
0033120 I t e m , 0 , S t r e a m E
0033140 r r o r ) \r u n l e s s
0033160 s t d o R A I D C o d e ( "
0033200 C a n t c r e a t e s t r e
0033220 a m " , l v F i d ) \r r
0033240 e s u l t i s s t \r ] \r
0033260 \r a n d C O P Y S Y S 0 ( l v
0033300 F i d ) = v a l o f \r
0033320 [ \r F l u s h V M ( ) \r \r
0033340 l e t s t = O u t p
0033360 u t S t 376 001 \0 037 253 r e a m ( l v
0033400 F i d ) \r Z e r o ( E m u
0033420 D i s k B u f f e r , W o r d
0033440 s P e r P a g e ) \r W r i
0033460 t e B l o c k ( s t , E m u D
0033500 i s k B u f f e r , W o r d s
0033520 P e r P a g e ) \t / / p a g e
0033540 1 < - i s f i n d e x
0033560 p a g e \r \r l e t p v e
0033600 c = v e c 4 * W o r d s P
0033620 e r P a g e \r l e t L a
0033640 s t = I G e t B a s e ( I F
0033660 P N A c t i v e P a g e s ) +
0033700 F i r s t V m e m B l o c k
0033720 - 1 \r l e t i = F
0033740 i r s t V m e m B l o c k \r
0033760 [ l e t n p 376 001 \0 033 c =
0034000 M i n ( L a s t - i ,
0034020 4 ) \r I n d e x e d P
0034040 a g e I O ( L i s p F m a p ,
0034060 i , p v e c , n p , 1 ) \r
0034100 W r i t e B l o c k (
0034120 s t , p v e c , n p * W o r
0034140 d s P e r P a g e ) \r
0034160 i = i + n p \r ]
0034200 r e p e a t u n t i l i g e
0034220 L a s t \r \r T r u n c a
0034240 t e D i s k S t r e a m ( s t )
0034260 \t \t \t / / i n c a s e u s
0034300 i n g o l d f i l e \r
0034320 R e s e t s ( s t ) ; C l o s
0034340 e s ( s t ) \r M a k e V m
0034360 e m R O ( ) \r r e s u 376 \0
0034400 Y u ? l t i s l v N I L \r
0034420 ] \r \r a n d S t r e a m E r
0034440 r o r ( s , c o d e ) = H
0034460 i n t E r r o r ( s , 0 , c
0034500 o d e ) \t / / a d j u s t a
0034520 r g s f o r H E \r 377 \0 \0 K
0034540 b d D e f s . d \0 373 230 016 ; 215 \0 \0
0034560 376 001 \0 0 360 / / \r / / D e f i n
0034600 i t i o n s f o r B C P L -
0034620 c o d e d k e y b o a r d p
0034640 a c k a g e \r / / l a s t e
0034660 d i t e d N o v e m b e r 2
0034700 , 1 9 8 1 b y B i l l v
0034720 a n M e l l e \r / / \r / / C
0034740 o p y r i g h t X e r o x C
0034760 o r p o r a t i o n 1 9 7 9 ,
0035000 1 9 8 0 , 1 9 8 1 \r \r \r m a
0035020 n i f e s t N o O f K e y s
0035040 = 7 2 \t / / 6 4 k e y b o
0035060 a r d k e y s , 8 b u t t
0035100 o n s \r s t r u c t u r e I n
0035120 p u t D a t u m M a p [ c o
0035140 d e ^ 0 , ( N o O f K e y s - 1
0035160 ) b y t 376 001 \0 : U e ] \r \r
0035200 s t r u c t u r e U s e r S t
0035220 a t e [ \t k e y s \t w o r d
0035240 5 \r \t ] \r m a n i f e s t U S
0035260 s i z e = 5 \r \r m a n i f e
0035300 s t [ \r \t U p S t r o k e =
0035320 # 1 0 \t / / m u s t b e
0035340 # 1 0 \r \t D o w n S t r o k e
0035360 = 0 \t / / m u s t b e 0
0035400 \r \t ] \r \r m a n i f e s t [ \r
0035420 \t K e y b o a r d L e v e l \t =
0035440 1 3 \r \t b u t t o n s \t \t =
0035460 # 1 7 7 0 3 0 \r \t K e y s \t \t =
0035500 # 1 7 7 0 3 4 \r \t c u r s o r
0035520 X m a x \t = 6 0 6 - 1 6 \r \t c
0035540 u r s o r Y m a x \t = 8 0 8 -
0035560 1 6 \r ] \r \r / / 376 001 \0 350 z
0035600 t h e i n p u t k e y s u
0035620 s e t h e s t a n d a r d
0035640 A S C I I e n c o d i n g \r /
0035660 / t h e m o u s e a n d
0035700 k e y s e t u s e # 2 0 0
0035720 a n d a b o v e \r / / \r m a n
0035740 i f e s t x x x = 0 \r m a
0035760 n i f e s t [ \r \t c t r l \t =
0036000 x x x \r \t h s 1 \t = # 2 0 7
0036020 \r \t h s 2 \t = # 2 0 6 \r \t h s
0036040 3 \t = # 2 0 5 \r \t h s 4 \t =
0036060 # 2 0 4 \r \t h s 5 \t = # 2 0 3
0036100 \r \t m b 1 \t = # 2 0 2 \r \t m b
0036120 2 \t = # 2 0 1 \r \t m b 3 \t =
0036140 # 2 0 0 \r \t e s c \t = # 3 3
0036160 \r \t t a b \t = # 1 1 \r \t l 376
0036200 001 \0 177 ) f \t = # 1 2 \r \t d e
0036220 l \t = # 1 7 7 \r \t b s \t =
0036240 # 1 \r \t s p r 1 \t = # 3 0 1
0036260 \r \t r t n \t = # 1 5 \r \t s p
0036300 r 2 \t = # 3 0 2 \r \t s p r 3 \t
0036320 = # 3 0 3 \r \t s p a c e \t =
0036340 # 4 0 \r \t l s h f t \t = x x
0036360 x \r \t r s h f t \t = x x x \r \t
0036400 l o c k \t = x x x \r \t C T R L
0036420 \t = c t r l \r \t H S 1 \t = h
0036440 s 1 \r \t H S 2 \t = h s 2 \r \t H
0036460 S 3 \t = h s 3 \r \t H S 4 \t =
0036500 h s 4 \r \t H S 5 \t = h s 5 \r \t
0036520 M B 1 \t = m b 1 \r \t M B 2 \t =
0036540 m b 2 \r \t M B 3 \t = m b 3 \r
0036560 \t E S C \t = # 3 3 \r \t T A B
0036600 \t = 376 \0 236 w 341 # 1 1 \r \t L F
0036620 \t = # 1 2 \r \t D E L \t = #
0036640 1 7 7 \r \t B S \t = # 1 \r \t
0036660 S P R 1 \t = s p r 1 \r \t R T N
0036700 \t = # 1 5 \r \t S P R 2 \t =
0036720 s p r 2 \r \t S P R 3 \t = s p r
0036740 3 \r \t S P A C E \t = # 4 0 \r
0036760 \t L S H F T \t = l s h f t \r \t
0037000 R S H F T \t = r s h f t \r \t L
0037020 O C K \t = l o c k \r \t S \t =
0037040 # 4 0 0 \r ] \r 377 \0 \0 K b d I o S
0037060 u b r s . b c p l \0 373 230 017 213 f \0
0037100 \0 376 001 \0 p 214 / / K b d I O S u
0037120 b r s . b c p l \r / / L a s t
0037140 c h a n g e O c t o b e r
0037160 1 , 1 9 8 1 1 2 : 0 3 P
0037200 M b y B i l l v a n M e
0037220 l l e \r / / L a s t c h a n
0037240 g e M a y 1 4 , 1 9 8 1
0037260 1 2 : 5 1 A M b y B e a
0037300 u S h e i l \r / / P a t c h
0037320 e d T o n e c h a n g e A
0037340 p r i l 2 , 1 9 8 1 1 :
0037360 2 6 A M b y B e a u S h
0037400 e i l \r / / L a s t c h a
0037420 n g e F e b r u a r y 6 ,
0037440 1 9 8 1 2 : 0 1 P M b y
0037460 B e a u S h e i l \r / / L
0037500 a s t c h 376 001 \0 ) / a n g e
0037520 D e c e m b e r 1 1 , 1 9 8
0037540 0 1 0 : 2 1 P M b y B
0037560 e a u S h e i l \r / / C h o
0037600 r d c h a n g e N o v e m b
0037620 e r 1 9 , 1 9 8 0 8 : 4
0037640 8 P M b y B e a u S h e
0037660 i l \r \r \t g e t " A l t o D e
0037700 f s . d " \r \t g e t " L i s p
0037720 B c p l . d e c l " \r \t g e t
0037740 " K b d D e f s . d " \r \t g e t
0037760 " S t r e a m s . d " \r \t g e
0040000 t " S y s D e f s . d " \r \r e
0040020 x t e r n a l [ \t \t \t / / S
0040040 U B R S d e f i n e d \r \t C R
0040060 E A T E M O U S E E V E N T ;
0040100 E N A B L E M O U S E 376 001 \0 344 >
0040120 ; G E T K E Y S ; B K S Y S
0040140 C H A R 0 ; P E E K K E Y S \r
0040160 \t S e t C u r s o r P o s \r \t \t
0040200 \t \t / / o t h e r p r o c e
0040220 d u r e s d e f i n e d \r \t K
0040240 B D i n i t ; N W W I n t e r
0040260 r u p t \r \t \t \t \t / / s t a t
0040300 i c s d e f i n e d \r \t k e y
0040320 s ; @ L i s p K b d \r \t \t \t \t
0040340 / / p r o c e d u r e s u s
0040360 e d \r \t F i n d I n t e r r u p
0040400 t M a s k ; I n i t i a l i z
0040420 e I n t e r r u p t ; C a l l
0040440 S w a t ; B l o c k \r \t A l l
0040460 o c V e c ; @ A t o m N o t N
0040500 I L ; M a x ; M i n ; S e
0040520 376 001 \0 004 J t B l o c k ; Z e r
0040540 o \r \t G e t s ; P u t s ; E
0040560 n d o f s ; R e s e t s ; T
0040600 i m e r ; S m a l l U n b o x
0040620 ; E q N I L ; R A I D C o d
0040640 e \r \t F l a s h S c r e e n ;
0040660 M o v e B l o c k ; M k S m a
0040700 l l P o s ; L o c k P a g e s
0040720 \r \t @ X S e t B R ; @ R R e a
0040740 d ; @ R W r i t e ; @ A P u
0040760 t B a s e 3 2 ; @ B G e t B a
0041000 s e ; @ B P u t B a s e ; I
0041020 G e t B a s e ; I P u t B a s
0041040 e \r \t \t \t \t / / s t a t i c s
0041060 u s e d \r \t O s B u f f e r ;
0041100 @ l v N I L ; @ R M S K ;
0041120 S c r e e 376 001 \0 7 Q n W i d t h
0041140 ; @ I n t e r r u p t E n a b
0041160 l e ; @ I n t e r r u p t C h
0041200 a r \r \t ] \r \r s t a t i c [
0041220 \r \t @ K B D F l g = f a l s
0041240 e ; @ N e w U S ; @ O l d U
0041260 S ; k e y s ; @ L i s p K b
0041300 d \r \t L o c k S h i f t ; @ D
0041320 o w n S t r o k e s ; @ U p S
0041340 t r o k e s ; A S C I I m a p
0041360 \r \t @ M E Q L o ; @ M E Q H i
0041400 ; @ m o u s e E v e n t C o d
0041420 e ; @ m o u s e E n a b l e d
0041440 = f a l s e \r \t @ I n t e r
0041460 r u p t E n a b l e ; @ I n t
0041500 e r r u p t C h a r \r \t S c r e
0041520 e n W i d t h = 1 376 001 \0 257 z 0
0041540 0 0 \t / / t o u s e f o r
0041560 c l i p p i n g u n t i l
0041600 I n i t L i s p R e g s \r \t ]
0041620 \r \r m a n i f e s t [ \r \t L i
0041640 s p K B L e n g t h = 1 2 8
0041660 \r \t K B S t a c k S i z e =
0041700 2 5 6 \t \t \t / / s t a c k d
0041720 e p t h f o r i n t e r r u
0041740 p t s \r \t ] \r \r s t r u c t u r
0041760 e [ \t \t / / f u n c t i o n
0042000 k e y s \r \t b l a n k w o r
0042020 d 2 \r \t b l a n k b i t 4
0042040 ; C t r l B i t b i t ; b
0042060 l a n k b i t 4 ; L S h i
0042100 f t B i t b i t ; b l a n k
0042120 b i t 6 \r \t b l a n k b 376
0042140 001 \0 317 234 y t e ; L o c k S h i
0042160 f t B i t b i t ; b l a n k
0042200 b i t 3 ; R S h i f t B i
0042220 t b i t ; S w a t B i t b
0042240 i t ; b l a n k b i t 2 \r
0042260 \t ] \r \r / / N o r m a l l y
0042300 i n i t c o d e l i k e K
0042320 B D i n i t w o u l d b e
0042340 i n a s e p a r a t e f i
0042360 l e s o i t s c o d e \r /
0042400 / s p a c e c o u l d b e
0042420 r e c l a i m e d , b u t
0042440 m o s t o f i t i s c o
0042460 n s t a n t s t h a t h a v
0042500 e t o b e \r / / a r o u n
0042520 d a t r u n t i m e a n
0042540 y w a y 376 001 \0 \v 375 , s o w e
0042560 d o n t b o t h e r . \r \r l
0042600 e t K B D i n i t ( ) b e \r
0042620 [ \r D o w n S t r o k
0042640 e s \t = t a b l e [ # 1 7
0042660 7 7 7 7 ; # 1 7 7 7 7 7 ; #
0042700 1 7 3 6 7 6 ; # 1 7 7 5 6 4 ;
0042720 # 3 7 7 ] \r U p S t r
0042740 o k e s \t = t a b l e [ #
0042760 0 0 0 0 0 0 ; # 0 0 0 0 0 0 ;
0043000 # 0 0 0 0 0 0 ; # 0 0 0 0 0
0043020 0 ; # 3 7 7 ] \r L o c
0043040 k S h i f t \t = t a b l e [
0043060 # 0 1 3 5 2 0 ; # 0 3 6 7 4
0043100 0 ; # 0 1 3 6 0 0 ; # 1 7 5
0043120 4 0 0 ; # 0 0 0 ] \r \r
0043140 A S C I I m a p 376 001 \0 w W =
0043160 t a b l e [ \r / / U n s h i
0043200 f t e d c h a r a c t e r s ,
0043220 w o r d 0 \r \t b s * S + l f
0043240 ; $ \ * S + $ / ; $ p *
0043260 S + $ - ; $ k * S + $ 0 ; \r
0043300 \t $ v * S + $ u ; $ d * S +
0043320 $ 7 ; $ e * S + $ 6 ; $
0043340 4 * S + $ 5 ; \r / / w o r d
0043360 1 \r \t s p r 1 * S + s p r 2 ;
0043400 $ ] * S + $ ' ; $ , * S +
0043420 $ l ; $ o * S + $ x ; \r \t $
0043440 i * S + $ 9 ; $ a *
0043460 S + $ s ; $ q * S + $ w ;
0043500 $ 2 * S + $ 3 ; \r / / w o r
0043520 d 2 \r \t x x x * S + d e l ;
0043540 $ _ * S + r t n ; $ 376 001
0043560 \0 ; 312 ; * S + $ . ; l s h
0043600 f t * S + $ z ; \r \t $ b * S + $
0043620 j ; $ c * S + c t r l ;
0043640 $ f * S + t a b ; e s c
0043660 * S + $ 1 ; \r / / w o r d 3
0043700 \r \t x x x * S + x x x ; s p
0043720 r 3 * S + r s h f t ; $ = *
0043740 S + $ [ ; s p a c e * S + l
0043760 o c k ; \r \t $ m * S + $ n ;
0044000 $ 8 * S + $ h ;
0044020 $ y * S + $ g ; $ t * S +
0044040 $ r \r / / B u t t o n s \r \t m
0044060 b 2 * S + m b 3 ; m b 1 * S
0044100 + h s 5 ; h s 4 * S + h s 3
0044120 ; h s 2 * S + h s 1 ; \r / /
0044140 S h i f t e d c h a r a c t
0044160 e r s 376 001 \0 215 R , w o r d 0
0044200 \r \t B S * S + L F ; $ | * S
0044220 + $ ? ; $ P * S + $ - ;
0044240 $ K * S + $ ) ; \r \t $ V * S + $
0044260 U ; $ D * S + $ & ; $ E
0044300 * S + $ ~ ; $ $ * S + $ % ;
0044320 \r / / w o r d 1 \r \t S P R 1
0044340 * S + S P R 2 ; $ } * S + $
0044360 " ; $ < * S + $ L ; $ O
0044400 * S + $ X ; \r \t $ I * S + $ ( ;
0044420 $ A * S + $ S ;
0044440 $ Q * S + $ W ; $ @ * S + $
0044460 # ; \r / / w o r d 2 \r \t x x
0044500 x * S + D E L ; $ ^ * S + R
0044520 T N ; $ : * S + $ > ;
0044540 L S H F T * S + $ Z ; \r \t $ B
0044560 * S + $ J ; 376 001 \0 326 J $
0044600 C * S + C T R L ; $ F * S +
0044620 T A B ; E S C * S + $ ! ; \r
0044640 / / w o r d 3 \r \t x x x * S
0044660 + x x x ; S P R 3 * S + R S
0044700 H F T ; $ + * S + $ { ;
0044720 S P A C E * S + L O C K ; \r \t $
0044740 M * S + $ N ; $ * * * S
0044760 + $ H ; $ Y * S + $
0045000 G ; $ T * S + $ R \r / / b
0045020 u t t o n s \r \t M B 2 * S + M B
0045040 3 ; M B 1 * S + H S 5 ;
0045060 H S 4 * S + H S 3 ; H S 2 *
0045100 S + H S 1 ; \r
0045120 ] \r \r
0045140 O l d U S = A l l o c V e
0045160 c ( U S s i z e ) \t \t / / 376 001 \0
0045200 A 326 F i l l i n f r o m
0045220 K e y s = # 1 7 7 0 3 4 \r
0045240 M o v e B l o c k ( O l d U
0045260 S , K e y s , U S s i z e -
0045300 1 ) ; O l d U S ! ( U S s i z
0045320 e - 1 ) = @ b u t t o n s \r
0045340 N e w U S = A l l o c V e
0045360 c ( U S s i z e ) \r \r / / s y
0045400 s t e m k e y b o a r d b u
0045420 f f e r \r k e y s = A
0045440 l l o c V e c ( l S T ) ; S e
0045460 t B l o c k ( k e y s , C a l
0045500 l S w a t , l S T ) \r k
0045520 e y s > > S T . p a r 1 = O
0045540 s B u f f e r \r k e y s >
0045560 > S T . g e t s = k b d G e
0045600 t s 376 001 \0 \r 255 \r k e y s >
0045620 > S T . p u t s = k b d P u
0045640 t s \r k e y s > > S T . e
0045660 n d o f = k b d E m p t y \r
0045700 k e y s > > S T . r e s e
0045720 t = k b d R e s e t \r \r / /
0045740 L i s p g e t s i t s o
0045760 w n k e y b o a r d s t r e
0046000 a m \r L i s p K b d =
0046020 A l l o c V e c ( l S T ) \r
0046040 M o v e B l o c k ( L i s p K
0046060 b d , k e y s , l S T ) \t \t
0046100 / / j u s t l i k e k e y
0046120 s \r l e t l b u f =
0046140 A l l o c V e c ( s i z e O s
0046160 B U F / 1 6 ) \t \t / / b u t
0046200 w i t h i t 376 001 \0 374 253 s o w
0046220 n b u f f e r \r l b u f
0046240 > > O s B U F . F i r s t =
0046260 A l l o c V e c ( L i s p K B L
0046300 e n g t h ) \r l b u f > >
0046320 O s B U F . L a s t = l b u
0046340 f > > O s B U F . F i r s t +
0046360 L i s p K B L e n g t h -
0046400 1 \r L i s p K b d > > S T
0046420 . p a r 1 = l b u f \r
0046440 R e s e t s ( L i s p K b d ) \r
0046460 \r l e t W a k e B i t
0046500 = F i n d I n t e r r u p t M
0046520 a s k ( 1 l s h i f t ( K e
0046540 y b o a r d L e v e l - 1 ) ) \r
0046560 I n i t i a l i z e I n t
0046600 e r r u p t ( A l l o c 376 001 \0 317
0046620 7 V e c ( K B S t a c k S i z e
0046640 ) , K B S t a c k S i z e , W a
0046660 k e B i t , K B D H a n d l e r
0046700 ) \r @ d i s p l a y I n t
0046720 e r r u p t = @ d i s p l a
0046740 y I n t e r r u p t % W a k
0046760 e B i t \t / / a r m t h e
0047000 i n t e r r u p t \r \r ] \r \r
0047020 a n d K B D H a n d l e r ( )
0047040 b e \r [ \r M o v e B
0047060 l o c k ( N e w U S , K e y s
0047100 , U S s i z e - 1 ) \r N
0047120 e w U S ! ( U S s i z e - 1 ) =
0047140 @ b u t t o n s \r @ m o u
0047160 s e X = M a x ( 0 , M i n
0047200 ( @ m o u s e X , S c r e e n
0047220 W 376 001 \0 R 4 i d t h ) ) \t / /
0047240 C l i p a n d t r a c k m
0047260 o u s e \r @ c u r s o r X
0047300 = @ m o u s e X \r @ m
0047320 o u s e Y = M a x ( 0 , M
0047340 i n ( @ m o u s e Y , c u r s
0047360 o r Y m a x ) ) \r @ c u r
0047400 s o r Y = @ m o u s e Y \r
0047420 f o r i = 0 t o U
0047440 S s i z e - 2 d o \r [
0047460 l e t o l d = O l d U S
0047500 ! i \r l e t n
0047520 e w = N e w U S ! i \r
0047540 l e t x = o l d
0047560 & n o t n e w & D o w
0047600 n S t r o k e s ! i \r
0047620 i f x 376 001 \0 E 016 n e 0
0047640 t h e n K e y A c t i o n ( x
0047660 , i , D o w n S t r o k e )
0047700 \r / / n e x t t
0047720 w o l i n e s n o t n e e
0047740 d e d a s U p s t r o k e [
0047760 1 - 4 ] = 0 \r / /
0050000 x = n o t o l d & n e
0050020 w & U p S t r o k e s ! i \r
0050040 / / i f x n e
0050060 0 t h e n K e y A c t i o
0050100 n ( x , i , U p S t r o k e
0050120 ) \r ] \r i f m
0050140 o u s e E n a b l e d t h e n
0050160 \r [ l e t i = U
0050200 S s i z e - 1 \r l e
0050220 t o l d = O l d 376 001 \0 206 7
0050240 U S ! i \r l e t
0050260 n e w = N e w U S ! i
0050300 \r l e t x = o
0050320 l d & n o t n e w & D
0050340 o w n S t r o k e s ! i \r
0050360 i f x d o D o M o u
0050400 s e E v e n t ( x ) \r
0050420 i f n o t o l d & n e
0050440 w & U p S t r o k e s ! i
0050460 d o D o M o u s e E v e n t (
0050500 ( n o t n e w ) & R M S K
0050520 ) \r ] \r K B D F l
0050540 g = O l d U S ; O l d U S = N
0050560 e w U S ; N e w U S = K B D F
0050600 l g \r / / K B D F l g
0050620 i s u s e d b y N W W I n
0050640 376 001 \0 241 253 t e r r u p t t o
0050660 d e c i d e w h e n a 6 0
0050700 h z i n t e r r u p t h a s
0050720 \r / / t a k e n p l a
0050740 c e . I f s o , N W W I n
0050760 t e r r u p t w i l l B l o
0051000 c k ( ) a n d z e r o K B
0051020 D F l g \r ] \r \r a n d K e
0051040 y A c t i o n ( b , w , a
0051060 c t i o n ) b e \r [ \r
0051100 l e t s h m = ( N e w U
0051120 S > > L S h i f t B i t e q
0051140 0 ? - 1 , N e w U S > > R S
0051160 h i f t B i t e q 0 ? - 1
0051200 , \r N e w U S > > L
0051220 o c k S h i f t B i t e q 0
0051240 ? L o c 376 001 \0 363 . k S h i f t
0051260 ! w , 0 ) \r l e t m ,
0051300 x = 1 , w l s h i f t
0051320 4 \r [ \r i f (
0051340 b & m ) n e 0 t h e n \r
0051360 [ \r / / " +
0051400 a c t i o n " b e l o w o
0051420 n l y a f f e c t s b u t t
0051440 o n s \r l e t c =
0051460 A S C I I m a p > > I n p u t
0051500 D a t u m M a p . c o d e ^ ( (
0051520 s h m & m ) e q 0 ? x ,
0051540 x + N o O f K e y s ) + a c
0051560 t i o n \r i f ( N e
0051600 w U S > > C t r l B i t e q
0051620 0 ) & ( c g e # 1 0 0 )
0051640 t h e n c = 376 001 \0 323 l c
0051660 & # 2 3 7 \r u n l
0051700 e s s P u t s ( k e y s , c
0051720 ) d o F l a s h S c r e e n
0051740 ( ) \r ] \r m , x
0051760 = m l s h i f t 1 , x
0052000 + 1 \r ] r e p e a t w h
0052020 i l e m n e 0 \r ] \r \r
0052040 a n d k b d G e t s ( s t )
0052060 = v a l o f \t \t / / g e t
0052100 w i t h w a i t f o r i n
0052120 p u t ; f o r R a i d \r
0052140 [ \r l e t R = s t > > S
0052160 T . p a r 1 \r w h i l e
0052200 R > > O s B U F . O u t e q
0052220 R > > O s B U F . I n d o l
0052240 o o p \t / / l o o p w h i 376
0052260 001 \0 323 334 l e s t e m p t y
0052300 \r l e t x = @ ( R >
0052320 > O s B U F . O u t ) \r l
0052340 e t t = R > > O s B U F .
0052360 O u t + 1 \r i f t
0052400 e q R > > O s B U F . L a s t
0052420 t h e n t = R > > O s B
0052440 U F . F i r s t \r R > > O
0052460 s B U F . O u t = t \r
0052500 r e s u l t i s x \r ] \r \r
0052520 a n d k b d R e s e t ( s t )
0052540 b e \r [ l e t b u f
0052560 = s t > > S T . p a r 1 \r
0052600 l e t x = b u f > > O
0052620 s B U F . F i r s t \r b
0052640 u f > > O s B U F . I n = x
0052660 \r 376 001 \0 Z 225 b u f > > O
0052700 s B U F . O u t = x \r ]
0052720 \r \r a n d k b d E m p t y ( s
0052740 t ) = v a l o f [ l e t
0052760 R = s t > > S T . p a r 1 \r
0053000
0053020 r e s u l t
0053040 i s R > > O s B U F . O u t
0053060 e q R > > O s B U F . I n ]
0053100 \r \r a n d k b d P u t s ( s t
0053120 , x ) = v a l o f \r [
0053140 \r l e t b u f = s t
0053160 > > S T . p a r 1 \r l e t
0053200 t = b u f > > O s B U F .
0053220 I n + 1 \r i f t
0053240 e q b u f > > O s B U F . L a
0053260 s t t h e n t 376 001 \0 031 223 =
0053300 b u f > > O s B U F . F i r s
0053320 t \r i f t e q b u f
0053340 > > O s B U F . O u t t h e n
0053360 r e s u l t i s f a l s e \t
0053400 / / O v e r f l o w \r @ (
0053420 b u f > > O s B U F . I n ) =
0053440 x \r b u f > > O s B U F
0053460 . I n = t \r r e s u l
0053500 t i s t r u e \r ] \r \r a n
0053520 d B K S Y S C H A R 0 ( l v C
0053540 h ) = P u t s ( k e y s ,
0053560 S m a l l U n b o x ( l v C h )
0053600 & R M S K ) ? l v C h ,
0053620 l v N I L \r \r a n d G E T K
0053640 E Y S ( ) = v a l o f \r
0053660 [ N W W I n t e r r u p t 376 001
0053700 \0 267 i ( ) \t \t / / r u n i n
0053720 t e r r u p t t o c h e c k
0053740 a r r i v i n g c h a r a c
0053760 t e r s \r r e s u l t i
0054000 s E n d o f s ( L i s p K b d
0054020 ) ? l v N I L , M k S m a
0054040 l l P o s ( G e t s ( L i s p K
0054060 b d ) ) ] \r \r a n d P E E K
0054100 K E Y S ( ) = \r E n
0054120 d o f s ( L i s p K b d ) ?
0054140 l v N I L , M k S m a l l P o
0054160 s ( @ ( ( L i s p K b d > > S T
0054200 . p a r 1 ) > > O s B U F . O u
0054220 t ) ) \r \r a n d N W W I n t
0054240 e r r u p t ( ) = v a l o f
0054260 \t / / R u n w h e n e v e r
0054300 a n 376 001 \0 001 7 i n t e r r u
0054320 p t o c c u r s ( > 6 0 h z
0054340 ) . \r [ \r / / m o
0054360 v e s c h a r s f r o m k
0054400 e y s = > L i s p K b d ,
0054420 f i l t e r i n g o u t i n
0054440 t e r r u p t c h a r s \r
0054460 u n l e s s E n d o f s ( k
0054500 e y s ) d o \t / / k e y s
0054520 = > L i s p K b d , h a n d
0054540 l i n g i n t e r r u p t c
0054560 h a r s \r [ \r l
0054600 e t c = G e t s ( k e y s
0054620 ) \r t e s t ( B G e t
0054640 B a s e ( S T A T S s p a c e ,
0054660 I n t e r r u p t T B L b a s
0054700 e + ( c r s h 376 001 \0 0 \n i f t
0054720 4 ) ) & 1 l s h i f t
0054740 ( c & # 1 7 ) ) n e 0 % \r
0054760 c e q 3 \t \t \t /
0055000 / m a k e s u r e w e t
0055020 a k e ^ C a n y w a y \r
0055040 i f s o A P u t B a
0055060 s e 3 2 ( I n t e r r u p t C h
0055100 a r , M k S m a l l P o s ( c
0055120 ) ) \r i f n o t u
0055140 n l e s s P u t s ( L i s p K
0055160 b d , c ) d o F l a s h S
0055200 c r e e n ( ) \r ] \r
0055220 / / c h e c k i n t e r r
0055240 u p t c h a r ( n o t n e
0055260 c e s s a r i l y f r o m i
0055300 m m e d i a t e l y p r 376 001 \0
0055320 022 261 i o r c o d e ! ) \r
0055340 l e t c = A t o m N o t N
0055360 I L ( I n t e r r u p t C h a r
0055400 ) \t / / A t o m N o t N I L
0055420 r e t u r n s s e c o n d
0055440 w o r d \r i f c & (
0055460 A t o m N o t N I L ( I n t e r
0055500 r u p t E n a b l e ) % c
0055520 e q 3 ) t h e n \r
0055540 [ A P u t B a s e 3 2 ( I
0055560 n t e r r u p t E n a b l e ,
0055600 l v N I L ) \r \t l e t n e w C
0055620 F X P = I G e t B a s e ( I
0055640 F P C u r r e n t F X P + I F P
0055660 K b d F X P ) \r \t \t / / S w i
0055700 t c h t o K b d c o n t e
0055720 x t 376 001 \0 Y 026 t o h a n d l
0055740 e t h e i n t e r r u p t \r
0055760 \t I P u t B a s e ( I F P C u r
0056000 r e n t F X P + I F P K b d F X
0056020 P , I G e t B a s e ( I F P C
0056040 u r r e n t F X P ) ) \r \t I P u
0056060 t B a s e ( I F P C u r r e n t
0056100 F X P , n e w C F X P ) \r
0056120 ] \r / / K B D
0056140 F l g i s s e t a s a
0056160 s i d e e f f e c t o f K
0056200 B D H a n d l e r . I f s e
0056220 t , 1 6 m s h a s \r /
0056240 / p a s s e d s o i t i
0056260 s t i m e t o b l o c k
0056300 a n d l e t t h e o t h e
0056320 r s r u n . 376 001 \0 \0 306 \r
0056340 i f K B D F l g t h e n [
0056360 K B D F l g = f a l s e ; B
0056400 l o c k ( ) ] \r r e s u
0056420 l t i s l v N I L \r ] \r \r
0056440 a n d D o M o u s e E v e n t
0056460 ( m b k ) b e \r [ \r
0056500 / / M o u s e q u e u e i
0056520 s l o c k e d d o w n , s
0056540 o B x B a s e s d o n o t
0056560 f a u l t . L o g i c a l l
0056600 y , w e c o u l d \r /
0056620 / f a u l t b u t t h e r
0056640 e i s n ' t e n o u g h i
0056660 n t e r r u p t s t a c k s
0056700 p a c e f o r f a u l t h
0056720 a n d l i n g . \r 376 001 \0 202
0056740 027 l e t m I n = B G e t B
0056760 a s e ( M E Q H i , M E Q L o
0057000 ) ; l e t m O u t = B G
0057020 e t B a s e ( M E Q H i , M E
0057040 Q L o + 1 ) \r l e t m f
0057060 i n = m I n + 5 \t \t \t /
0057100 / e v e n t s a r e f i v
0057120 e w o r d s \r l e t m
0057140 t = v e c 1 \r i f
0057160 m f i n g e B G e t B a s e
0057200 ( M E Q H i , M E Q L o + 3 )
0057220 t h e n m f i n = B G e
0057240 t B a s e ( M E Q H i , M E Q
0057260 L o + 2 ) \r t e s t m f
0057300 i n e q m O u t ? f a l
0057320 s e , \t \t / / q u e u e s p
0057340 a 376 001 \0 272 ` c e , m o u s e
0057360 c h a r , k b d s p a c e ?
0057400 \r (
0057420 m o u s e E v e n t C o d e e
0057440 q - 1 ? t r u e , P u t
0057460 s ( k e y s , m o u s e E v e
0057500 n t C o d e ) ) \r i f
0057520 s o [ m I n = m I n
0057540 + M E Q L o \r
0057560 B P u t B a s e ( M E
0057600 Q H i , m I n , @ m o u s e
0057620 X ) \r
0057640 B P u t B a s e ( M E Q H i ,
0057660 m I n + 1 , c u r s o r Y m a
0057700 x - @ m o u s e Y ) \r
0057720 B P u t B a
0057740 s e ( M E Q 376 001 \0 X 263 H i , m
0057760 I n + 2 , m b k ) \r
0060000 B P u t B a s e
0060020 ( M E Q H i , m I n + 3 , T
0060040 i m e r ( m t ) ) \r
0060060 B P u t B a s e (
0060100 M E Q H i , m I n + 4 , B l
0060120 a n k K e y s ( ) ) \r
0060140 B P u t B a s e
0060160 ( M E Q H i , M E Q L o , m
0060200 f i n ) \r
0060220 ] \r i f n o t F l a
0060240 s h S c r e e n ( ) \r ] \r \r
0060260 a n d B l a n k K e y s ( )
0060300 = v a l o f \t \t \t \t / / p a
0060320 c k s f n k e y s i n t o
0060340 8 b i t s \r [ 376 001 \0 343 T
0060360 \r l e t k 2 = n o
0060400 t @ ( K e y s + 2 ) \r
0060420 r e s u l t i s ( ( n o t
0060440 @ ( K e y s + 1 ) ) & #
0060460 3 ) + \t \t / / b 1 , b 2 \r
0060500 ( k 2
0060520 & # 1 0 0 ) + \t \t \t / / l
0060540 f t - s h f t \r
0060560 ( ( n o t @ ( K e y s
0060600 + 3 ) ) & # 2 1 4 ) +
0060620 \t / / l o c k , r t - s h f t
0060640 , b 3 \r
0060660 ( ( k 2 & # 4 0 0 0 ) e q
0060700 0 ? 0 , # 4 0 ) \t / /
0060720 c n t r l \r ] \r \r a n d C
0060740 R E A T E M O U S E E V E N T (
0060760 376 001 \0 214 021 l v M p t r ) = v
0061000 a l o f \r [ \r l e t
0061020 m t = v e c 1 \r X
0061040 S e t B R ( l v M p t r ) \t \t \t
0061060 / / M p t r i s a r a w
0061100 p o i n t e r \r R W r i
0061120 t e ( 0 , @ m o u s e X ) \r
0061140 R W r i t e ( 1 , c u r s
0061160 o r Y m a x - @ m o u s e Y
0061200 ) \r R W r i t e ( 2 , (
0061220 n o t @ u t i l I n ) & R
0061240 M S K ) \r R W r i t e ( 3
0061260 , T i m e r ( m t ) ) \r
0061300 R W r i t e ( 4 , B l a n k K
0061320 e y s ( ) ) \r r e s u l t
0061340 i s l v M p t r \r ] \r \r
0061360 / / e n 376 001 \0 p ) a b l e / d
0061400 i s a b l e m o u s e e v e
0061420 n t s \r \r a n d E N A B L E M
0061440 O U S E ( l v M p t r , l v C
0061460 C o d e ) = v a l o f \r
0061500 [ \r t e s t E q N I L
0061520 ( l v M p t r ) \r i f s
0061540 o m o u s e E n a b l e d
0061560 = f a l s e \r i f n o
0061600 t [ \r M E
0061620 Q H i = l v M p t r ! 0 \r
0061640 M E Q L o =
0061660 l v M p t r ! 1 \r
0061700 i f B G e t B a s e (
0061720 M E Q H i , M E Q L o + 3 )
0061740 l s 6 \r
0061760 t h e n R A I 376 001 \0 222 F D
0062000 C o d e ( " M o u s e q t o
0062020 o s m a l l " , l v M p t r
0062040 ) \r L o c k
0062060 P a g e s ( M E Q H i , M E Q
0062100 L o , 1 ) \r
0062120 m o u s e E v e n t C o d e
0062140 = E q N I L ( l v C C o d e )
0062160 ? - 1 , S m a l l U n b o
0062200 x ( l v C C o d e ) \r
0062220 m o u s e E n a b l e
0062240 d = t r u e \r
0062260 ] \r r e s u l t i s
0062300 l v M p t r \r ] \r \r / /
0062320 S e t C u r s o r P o s i s
0062340 c a l l e d w i t h s m a
0062360 l l p a r g u m e n t s - 376
0062400 001 \0 035 021 c a n b e n e g a
0062420 t i v e \r \r a n d S e t C u r
0062440 s o r P o s ( l v c u r X , l
0062460 v c u r Y ) = v a l o f \r
0062500 / / S e t s t h e c u
0062520 r s o r p o s i t i o n . A
0062540 r g u m e n t s c o n s t r a
0062560 i n e d t o [ 0 . . c u r s
0062600 o r M a x ] \r / / R e f
0062620 l e c t s t h e y v a l u
0062640 e b e c a u s e o f d i f
0062660 f e r e n t L i s p / A l t o
0062700 o r i g i n s \r [ \r
0062720 @ m o u s e X = B o u n d
0062740 ( l v c u r X , S c r e e n W
0062760 i d t h ) \r @ m o u s e Y
0063000 = c 376 001 \0 B 345 u r s o r Y m
0063020 a x - B o u n d ( l v c u r
0063040 Y , c u r s o r Y m a x ) \r
0063060 r e s u l t i s l v N I L
0063100 \r ] \r \r a n d B o u n d
0063120 ( a , b ) = \t \t / / l i
0063140 m i t s a t o t h e i n
0063160 t e r v a l [ 0 . . b ] \r
0063200 s e l e c t o n a > > V A .
0063220 v a h i i n t o \r [
0063240 c a s e S M A L L N E G s p
0063260 a c e : 0 \t \t \t / / a < 0
0063300 h e n c e 0 \r
0063320 c a s e S M A L L P O S s p a
0063340 c e : v a l o f [ l e t
0063360 v = a ! 1 \r
0063400 376 \0 ^ H y
0063420 r
0063440 e s u l t i s v g r b ?
0063460 b , v ] \r d
0063500 e f a u l t : R A I D C o d e
0063520 ( " I n v a l i d c u r s o r
0063540 p o s " , a ) ] \r 377 \0 \0 L
0063560 i s p B c p l . d e c l \0 373 227 362
0063600 211 017 \0 \0 376 001 \0 K ) / / L i s p
0063620 B c p l . d e c l . D e c l a
0063640 r a t i o n s f i l e f o r
0063660 I n t e r L i s p - D B c p
0063700 l c o d e \r / / A l l e g r
0063720 o c h a n g e O c t o b e r
0063740 1 2 , 1 9 8 1 1 1 : 1 3
0063760 P M b y B i l l v a n
0064000 M e l l e \r / / A l l e g r o
0064020 c h a n g e A u g u s t 4
0064040 , 1 9 8 1 4 : 2 1 P M
0064060 b y B e a u S h e i l \r / /
0064100 L a s t c h a n g e A u g
0064120 u s t 2 , 1 9 8 1 2 : 4
0064140 9 P M b y B e a u S h e
0064160 i l \r / / T o n e c h a n g
0064200 e A p r i l 5 376 001 \0 220 ^ ,
0064220 1 9 8 1 2 : 2 6 P M b y
0064240 B e a u S h e i l \r / / T
0064260 r i l l c h a n g e F e b r
0064300 u a r y 2 4 , 1 9 8 1 1
0064320 0 : 4 0 A M b y B e a u
0064340 S h e i l \r / / L a s t c h
0064360 a n g e F e b r u a r y 1 9
0064400 , 1 9 8 1 2 : 5 3 P M
0064420 b y B e a u S h e i l \r \r \t
0064440 g e t " L i s p B c p l . p a
0064460 r a m s " \t \t / / D e f i n i
0064500 t i o n s f r o m L i s p \r
0064520 \r m a n i f e s t [ B c p l
0064540 V e r s i o n = # 3 4
0064560 l s h i f t 8 + # 0 0 3
0064600 \r M i 376 001
0064620 \0 a 274 n R a m F o r B c p l
0064640 = # 1 2 l s h i f t 8 +
0064660 # 0 0 0 \r
0064700 M i n L i s p F o r B c p l
0064720 = # 2 0 l s h i f t 8 +
0064740 # 0 0 2 ] \r \r c o m p i l
0064760 e i f ( B c p l V e r s i o n
0065000 l s M i n B c p l V e r s i
0065020 o n ) % ( L i s p V e r s i
0065040 o n l s M i n L i s p F o r
0065060 B c p l ) \r t h e n
0065100 [ E r r o r ( " L i s p / B c
0065120 p l c o m p i l e v e r s i
0065140 o n m i s m a t c h " ) ] \r
0065160 \r m a n i f e s t [ \t \t \t \t /
0065200 / m i s c e l l a n e o u s \r
0065220 \t S t 376 001 \0 025 Y a c k E n d =
0065240 # 3 3 5 \t \t \t / / c h e c k
0065260 e d b y G e t F r a m e \r \t
0065300 D o l p h i n = 4 \t \t \t / /
0065320 D o l p h i n s a r e A l
0065340 t o I V ' s \r \t D o r a d o
0065360 = 5 \t \t \t / / D o r a d o s
0065400 a r e A l t o V ' s \r \t P
0065420 a g e s P e r S e g m e n t =
0065440 2 5 6 \r \t W o r d s P e r P a
0065460 g e = 2 5 6 \r \t ] \r \r s t r
0065500 u c t u r e [ H i B y t e
0065520 b y t e ; L o B y t e b y t
0065540 e ] \t / / f o r e x t r a
0065560 c t i n g b y t e s f r o m
0065600 w o r d s \r \r s t r u c t u r
0065620 e V A : \t \t \t 376 001 \0 320 204 \t / /
0065640 2 4 - b i t v i r t u a l
0065660 a d d r e s s i n 2 w o r
0065700 d s \r [ \t v a h i w o r
0065720 d = [ b l a n k b y t e
0065740 ; s e g m e n t b y t e ]
0065760 \r \t v a l o w o r d = [
0066000 p a g e N b y t e ; w o r d
0066020 N b y t e ] \r ] \r \r s
0066040 t r u c t u r e V P : \t \t \t \t
0066060 / / v i r t u a l p a g e \r
0066100 [ \t s e g m e n t b y t
0066120 e ; p a g e b y t e ] \r \r
0066140 m a n i f e s t I n t e r f a
0066160 c e P a g e V P = I N T E R
0066200 F A C E s p a c e l s h i f t
0066220 8 + I N T E R F A C 376 \0 017
0066240 m 214 E b a s e r s h i f t 8
0066260 \r 377 \0 \0 L i s p B c p l . p a r
0066300 a m s \0 373 230 G 264 006 \0 \0 376 001 \0 321 _
0066320 / / T h i s f i l e w r i
0066340 t t e n f r o m L L P A R A
0066360 M S o n 1 1 - N O V - 8 1
0066400 1 1 : 4 4 : 3 8 \r / / a d d e
0066420 d C D R C O D I N G f o r
0066440 b a c k c o m p a t i b i l i
0066460 t y N o v e m b e r 3 0 ,
0066500 1 9 8 1 9 : 2 4 P M \r / /
0066520 a d d e d D T D S i z e f
0066540 o r b a c k c o m p a t i b
0066560 i l i t y D e c e m b e r 1
0066600 6 , 1 9 8 1 1 2 : 3 9 P
0066620 M \r \r m a n i f e s t [ \r M i
0066640 n R a m V e r s i o n = # 6
0066660 0 0 0 \r M i n B c p l V e r s i
0066700 o n = # 1 6 0 0 0 \r L i s p
0066720 376 001 \0 341 ] V e r s i o n = #
0066740 1 0 4 0 0 \r C D R C O D I N G
0066760 = 1 \r D T D S i z e = 0 \r
0067000 S M A L L T Y P E = # 1 \r I
0067020 N T E G E R T Y P E = # 2 \r
0067040 F L T P T T Y P E = # 3 \r A
0067060 T O M T Y P E = # 4 \r L I S
0067100 T T Y P E = # 5 \r A R R A Y
0067120 P T R T Y P E = # 6 \r S T R
0067140 I N G P T R T Y P E = # 7 \r
0067160 P M B L O C K S I Z E = # 4
0067200 0 \r S T A T S s i z e = # 1
0067220 0 \r E m p t y P M T E n t r y
0067240 = # 1 7 7 7 7 7 \r F i r s t V
0067260 m e m B l o c k = # 2 \r I F
0067300 P V a l i d K e y = # 1 2 7
0067320 4 3 \r H a 376 001 \0 F r s h I n c
0067340 = # 2 3 \r F i r s t M D S P a
0067360 g e = # 4 0 0 \r S t a c k M
0067400 a s k = # 1 6 0 0 0 0 \r F x
0067420 t n B l o c k = # 1 4 0 0 0
0067440 0 \r G u a r d B l o c k = #
0067460 1 6 0 0 0 0 \r B F B l o c k =
0067500 # 1 0 0 0 0 0 \r F r e e S t a
0067520 c k B l o c k = # 1 2 0 0 0
0067540 0 \r M i n E x t r a S t a c k W
0067560 o r d s = # 4 0 \r E R A S E
0067600 C H A R C O D E = # 0 \r A T
0067620 O M s p a c e = # 0 \r S M A
0067640 L L P O S s p a c e = # 1 6
0067660 \r S M A L L N E G s p a c e =
0067700 # 1 7 \r P N P s p a c e =
0067720 # 2 0 \r P N P b a s 376 001 \0 ~ 320 e
0067740 = # 0 \r D E F s p a c e =
0067760 # 2 1 \r D E F b a s e = #
0070000 0 \r T O P V A L s p a c e =
0070020 # 2 2 \r T O P V A L b a s e =
0070040 # 0 \r P L I S T s p a c e =
0070060 # 2 3 \r P L I S T b a s e =
0070100 # 0 \r A H T s p a c e = #
0070120 2 4 \r A H T b a s e = # 0 \r
0070140 A H T S I Z E = # 2 0 0 \r P
0070160 A G E M A P s p a c e = # 2
0070200 5 \r P A G E M A P b a s e =
0070220 # 0 \r P M T s p a c e = # 2
0070240 6 \r P M T b a s e = # 0 \r I
0070260 N T E R F A C E s p a c e =
0070300 # 2 6 \r I N T E R F A C E b a s
0070320 e = # 1 0 0 0 0 \r C u r r 376
0070340 001 \0 376 265 e n t F X P = # 0 \r
0070360 R e s e t F X P = # 1 \r S u
0070400 b o v F X P = # 2 \r K b d F
0070420 X P = # 3 \r H a r d R e t u
0070440 r n F X P = # 4 \r M D S T Y
0070460 P E s p a c e = # 2 6 \r M D
0070500 S T Y P E b a s e = # 1 0 0
0070520 0 0 0 \r M D S T T s i z e =
0070540 # 4 \r S T A T S s p a c e =
0070560 # 2 6 \r S T A T S b a s e =
0070600 # 1 1 0 0 0 0 \r I n t e r r u p
0070620 t T B L b a s e = # 1 1 1 2
0070640 0 0 \r M I S C S T A T S b a s e
0070660 = # 1 1 2 0 0 0 \r S T A C K
0070700 s p a c e = # 2 7 \r H T M A
0070720 I N s p a c e = # 7 3 \r H T
0070740 M A I N 376 001 \0 033 \r b a s e =
0070760 # 0 \r H T M A I N n p a g e s
0071000 = # 2 0 1 \r D 1 B C P L s p a
0071020 c e = # 7 7 \r D 0 B C P L s
0071040 p a c e = # 0 \r M S s t r t
0071060 T i m e = # 0 \r M S t o t T
0071100 i m e = # 2 \r M S s w a p T
0071120 i m e = # 4 \r M S p g e F l
0071140 t = # 6 \r M S p g e W r t
0071160 = # 1 0 \r M S d s k T i m e
0071200 = # 1 2 \r M S d s k O p s =
0071220 # 1 4 \r M S k e y T i m e =
0071240 # 1 6 \r M S g c T i m e =
0071260 # 2 0 \r M S n e t T i m e =
0071300 # 2 2 \r M S n e t O p s = #
0071320 2 4 \r l e n M i s c S t a t s
0071340 = # 2 6 \r I F P 376 001 \0 D k C u
0071360 r r e n t F X P = # 0 \r I F
0071400 P R e s e t F X P = # 1 \r I
0071420 F P S u b o v F X P = # 2 \r
0071440 I F P K b d F X P = # 3 \r I
0071460 F P H a r d R e t u r n F X P
0071500 = # 4 \r I F P G C F X P =
0071520 # 5 \r I F P E n d O f S t a c k
0071540 = # 7 \r I F P L V e r s i o
0071560 n = # 1 0 \r I F P M i n R V
0071600 e r s i o n = # 1 1 \r I F P
0071620 M i n B V e r s i o n = # 1
0071640 2 \r I F P R V e r s i o n =
0071660 # 1 3 \r I F P B V e r s i o n
0071700 = # 1 4 \r I F P K e y = #
0071720 1 7 \r I F P S e r i a l N u m b
0071740 e r = # 2 0 \r I F P E m 376 001
0071760 \0 - 022 u l a t o r S p a c e =
0072000 # 2 1 \r I F P S c r e e n W i
0072020 d t h = # 2 2 \r I F P N x t
0072040 P M A d d r = # 2 3 \r I F P
0072060 N A c t i v e P a g e s = #
0072100 2 4 \r I F P N D i r t y P a g e
0072120 s = # 2 5 \r I F P f i l e P
0072140 n P M P 0 = # 2 6 \r I F P f
0072160 i l e P n P M T 0 = # 2 7 \r
0072200 I F P I n t e r r u p t e d =
0072220 # 3 0 \r I F P I n t e r r u p
0072240 t E n a b l e = # 3 1 \r I F
0072260 P I n t e r r u p t C h a r =
0072300 # 3 2 \r I F P R a i d E x i t
0072320 F n = # 3 3 \r I F P U s e r
0072340 N a m e A d d r = # 3 4 \r I
0072360 F P U 376 \0 ' 321 226 s e r P s w d A
0072400 d d r = # 3 5 \r I F P S t a
0072420 c k B a s e = # 3 6 \r ] \r 377
0072440 \0 \0 L i s p 0 . b c p l \0 373 230 016
0072460 > ; \0 \0 376 001 \0 \a z / / L i s p
0072500 0 . b c p l I n i t a l e
0072520 n t r y p o i n t i s S t
0072540 a r t L i s p \r / / L a s t
0072560 c h a n g e S e p t e m b e r
0072600 2 7 , 1 9 8 1 1 0 : 5 6
0072620 P M b y B i l l v a n
0072640 M e l l e \r / / T o n e c h
0072660 a n g e M a r c h 1 7 , 1
0072700 9 8 1 4 : 5 6 P M b y
0072720 B e a u S h e i l \r / / L a
0072740 s t c h a n g e F e b r u a
0072760 r y 2 4 , 1 9 8 1 1 : 5
0073000 5 P M b y B e a u S h e
0073020 i l \r / / P h r a s e c h a
0073040 n g e N o v e m b e r 2 4 ,
0073060 1 9 8 0 1 2 376 001 \0 354 ) : 1
0073100 3 P M b y B e a u S h e
0073120 i l \r \r \t g e t " L i s p B c
0073140 p l . d e c l " \r \t g e t " S
0073160 y s D e f s . D " \r \r e x t e r
0073200 n a l [ \r \t S a v e d U F P ;
0073220 S a v e d S C P ; @ C o n t
0073240 e x t Q ; T o p L e v e l F r
0073260 a m e \r \t @ l v N I L ; @ l v
0073300 K T ; @ l v V P t r ; @ V P
0073320 t r 0 ; @ V P t r 1 ; @ R M
0073340 S K \t / / u s e f u l v a l
0073360 u e s \r \r \t B c p l D i s p l a
0073400 y ; M k S m a l l P o s \t \t \t
0073420 / / p r o c e d u r e s u s
0073440 e d \r \t I r e s u m e ; R A I
0073460 D C o d e ; C l o s e S t 376 001
0073500 \0 K 256 a t s ; u P C T r a c i
0073520 n g \r \t A l l o c V e c ; M a
0073540 i n I n i t ; S h o r t S t a
0073560 c k \t \t / / f r o m m a i n
0073600 i n i t . b c p l \r \t A l l o c
0073620 P t r \t \t \t \t / / a l l o c a
0073640 t e r s t a t i c \r \t S t a r
0073660 t P u p \t \t \t \t / / L i s p
0073700 P u p \r \t E n q u e u e ; M a
0073720 x ; M y F r a m e ; J u n t
0073740 a ; B l o c k \t / / O S p
0073760 r o c s \r \t I n i t i a l i z e
0074000 C o n t e x t ; C a l l C o n
0074020 t e x t L i s t \r \r \t l v U s e
0074040 r F i n i s h P r o c ; l v S
0074060 w a t C o n t e x t P r o c \t /
0074100 / S 376 001 \0 N 320 t a t i c s u
0074120 s e d \r \t @ S u b r A r g s O f
0074140 f s e t ; S u b r A r g s V e
0074160 c t o r ; @ u P C T r a c e A
0074200 d d r \r \r \t \t \t \t / / s t a t
0074220 i c s d e f i n e d \r \t L i s
0074240 p S t a c k L e n g t h \r \t P u
0074260 p Z o n e L e n g t h \r \t L i s
0074300 p S t a c k S t a r t \r \t P u p
0074320 Z o n e S t a r t \r \r \t L i s p
0074340 F i n i s h ; S y s E r r \t \t
0074360 / / p r o c e d u r e s d e
0074400 f i n e d \r \t ] \r \r s t a t i c
0074420 [ \r \t @ T o p L e v e l F r a
0074440 m e ; @ C o n t e x t Q ; S
0074460 u b r A r g s V e c t o r \r \t @
0074500 l v N I L ; @ 376 001 \0 { z l v K
0074520 T ; @ l v V P t r ; @ V P t
0074540 r 0 ; @ V P t r 1 ; @ R M S
0074560 K = # 3 7 7 \r \t L i s p S t
0074600 a c k L e n g t h \r \t P u p Z o
0074620 n e L e n g t h \r \t L i s p S t
0074640 a c k S t a r t \r \t P u p Z o n
0074660 e S t a r t \r \t ] \r \r m a n i f
0074700 e s t S c r e e n S c a n L i
0074720 n e s = 8 0 8 \t / / v e r
0074740 t i c a l s c r e e n s i z
0074760 e \r \r \r l e t S t a r t L i
0075000 s p ( ) b e J u n t a ( l e
0075020 v S t r e a m s , I n i t L i s
0075040 p ) \t \t / / m a i n e n t r
0075060 y \r \r a n d I n i t L i s p (
0075100 ) b e \r [ \r / / 376 001 \0
0075120 242 r E v e n t u a l E n d O f S
0075140 t a c k i s a n e s t i m
0075160 a t e o f h o w m u c h
0075200 s t a c k s p a c e w e w
0075220 i l l n e e d \r / / a f t e
0075240 r t h e c a l l t o M a
0075260 i n I n i t . M a i n I n i
0075300 t a s s i g n s t h e r e
0075320 s t ( i n c l u d i n g i t
0075340 s \r / / o w n s t a c k )
0075360 t o t h e d i s p l a y ,
0075400 w h i c h w e t u r n o n
0075420 . \r [ l e t E v e n t
0075440 u a l E n d O f S t a c k = S h
0075460 o r t S t a c k ( 2 5 6 ) \r
0075500 M a i n I n i t ( E v e n
0075520 t u 376 001 \0 B 267 a l E n d O f S t
0075540 a c k ) \r @ S t a c k
0075560 E n d = E v e n t u a l E n d O
0075600 f S t a c k \t \t / / s e t s
0075620 e n d o f s t a c k \r
0075640 ] \r B c p l D i s p l a y
0075660 ( S c r e e n S c a n L i n e s
0075700 - 1 5 ) \t / / g i v e B c p
0075720 l d s p a l l t h e s c
0075740 r e e n s p a c e s a v e \r
0075760 \t \t \t \t \t / / a f e w l i
0076000 n e s t o p r o t e c t a
0076020 g a i n s t o v e r s c a n \r
0076040 S t a r t P u p ( P u p Z
0076060 o n e S t a r t , P u p Z o n
0076100 e L e n g t h ) \t / / S t a r
0076120 t t h e P 376 001 \0 344 u p w
0076140 o r l d \r / / I n i t
0076160 t h e T o p L e v e l c o n
0076200 t e x t a n d p u t i t
0076220 o n C o n t e x t Q \r E
0076240 n q u e u e ( C o n t e x t Q ,
0076260 \r \t I n i t i a l i z e C o n t
0076300 e x t ( L i s p S t a c k S t a
0076320 r t , L i s p S t a c k L e n g
0076340 t h , T o p L e v e l ) ) \r
0076360 C a l l C o n t e x t L i s t
0076400 ( C o n t e x t Q ! 0 ) r e p
0076420 e a t \t \t / / S t a r t t h
0076440 e c o n t e x t s r u n n i
0076460 n g \r ] \r \r a n d T o p
0076500 L e v e l ( ) b e \r [ \r
0076520 T o p L e v e l F 376 001 \0 326
0076540 ) r a m e = M y F r a m e (
0076560 ) \r S u b r A r g s O f f
0076600 s e t = ( S u b r A r g s V
0076620 e c t o r - 1 ) - T o p L e v e
0076640 l F r a m e / / - 1 a d
0076660 j u s t s i n d x o r i g \r
0076700 I r e s u m e ( l v K T )
0076720 \t \t \t \t / / n e v e r r e t
0076740 u r n s - T = > s t a r t u
0076760 p \r ] \r \r a n d S y s E
0077000 r r ( p 1 , e C o d e ) b e
0077020 \r R A I D C o d e ( s e
0077040 l e c t o n e C o d e i n t
0077060 o \r
0077100 [ c a s e 1 1 0 1 : " H
0077120 a r d d i s k e r r o r " \r
0077140 376 001 \0 d N
0077160 c a s e 1 1 0 2 :
0077200 " D i s k f u l l " \r
0077220 c a
0077240 s e 1 1 0 3 : c a s e 1
0077260 1 0 4 : " B a d d i s k c
0077300 o m m a n d " \r
0077320 d e f a u l t
0077340 : " S y s E r r " ] , \r
0077360 M k S
0077400 m a l l P o s ( e C o d e ) ) \r
0077420 \r a n d L i s p F i n i s h (
0077440 ) b e \r [ \r @ l v
0077460 S w a t C o n t e x t P r o c
0077500 = S a v e d S C P \t / / r e
0077520 s t o r e S w a t p r o c \r
0077540 @ l v 376 \0 331 v L U s e r F
0077560 i n i s h P r o c = S a v e
0077600 d U F P \t \t / / r e s t o r e
0077620 f i n i s h p r o c \r
0077640 i f u P C T r a c e A d d r
0077660 t h e n u P C T r a c i n g (
0077700 f a l s e ) \t / / t u r n o
0077720 f f a n y u P c l o g g i
0077740 n g \r C l o s e S t a t s
0077760 ( ) \t \t \t \t / / t u r n o f
0100000 f s t a t s \r B c p l D
0100020 i s p l a y ( 0 ) \t \t \t / / t
0100040 u r n o f f a n y d i s p
0100060 l a y s \r f i n i s h \r
0100100 ] \r 377 \0 \0 M a i n I n i t .
0100120 b c p l \0 373 227 362 230 243 \0 \0 376 001 \0 242
0100140 024 / / M a i n I n i t . b c p
0100160 l . B u l k o f t h e
0100200 i n i t i a l i z a t i o n c
0100220 o d e . \r / / L a s t c h a
0100240 n g e S e p t e m b e r 2 7
0100260 , 1 9 8 1 1 0 : 5 6 P M
0100300 b y B i l l v a n M e l
0100320 l e \r / / L a s t c h a n g
0100340 e S e p t e m b e r 5 , 1
0100360 9 8 1 1 2 : 3 9 P M b y
0100400 B i l l v a n M e l l e \r
0100420 / / A l l e g r o c h a n g
0100440 e A u g u s t 2 , 1 9 8 1
0100460 6 : 0 1 P M b y B e a
0100500 u S h e i l \r / / L a s t
0100520 c h a n g e J u l y 2 0 ,
0100540 1 376 001 \0 M 316 9 8 1 6 : 5 9
0100560 P M b y B e a u S h e i l
0100600 \r / / L a s t c h a n g e
0100620 M a y 1 2 , 1 9 8 1 1 :
0100640 3 4 A M b y B e a u S h
0100660 e i l \r / / L a s t c h a n
0100700 g e M a r c h 2 6 , 1 9 8
0100720 1 1 2 : 2 0 A M b y B
0100740 e a u S h e i l \r / / T o n
0100760 e c h a n g e M a r c h 1
0101000 7 , 1 9 8 1 5 : 3 5 P M
0101020 b y B e a u S h e i l \r \r
0101040 \t g e t " A l t o F i l e S y
0101060 s . d " \r \t g e t " L i s p B
0101100 c p l . d e c l " \r \t g e t "
0101120 S t a t s . d e c l " \r \t g e t
0101140 " S t r e 376 001 \0 210 354 a m s . d
0101160 " \r \r e x t e r n a l [ \t / /
0101200 d e f i n e d h e r e \r \t A
0101220 l l o c V e c ; M a i n I n i
0101240 t ; S h o r t S t a c k ; S
0101260 a v e d U F P ; S a v e d S C
0101300 P \r \r \t \t / / O . S . p r o
0101320 c e d u r e s \r \t R e s e t s ;
0101340 C l o s e s ; M o v e B l o
0101360 c k ; R e a d B l o c k ; C
0101400 r e a t e D i s k S t r e a m ;
0101420 F i l e L e n g t h \r \t I n i
0101440 t i a l i z e Z o n e ; M y F
0101460 r a m e ; C a l l S w a t ;
0101500 S y s E r r ; Z e r o ; U s
0101520 c ; M a x \r \r \t \t / / O S
0101540 s t a t i c s \r \t d 376 001 \0 211 253
0101560 s p ; s y s Z o n e ; s y s
0101600 F o n t ; f p S y s D i r ;
0101620 f p C o m C m ; f p S y s F o
0101640 n t ; s y s D i s k \r \t U s e
0101660 r N a m e ; l v S y s Z o n e
0101700 ; l v S y s E r r ; l v U s
0101720 e r F i n i s h P r o c ; l v
0101740 S w a t C o n t e x t P r o c \r
0101760 \r \t \t / / o t h e r l i b r
0102000 a r y p r o c e d u r e s \r \t
0102020 L o o k u p E n t r i e s ; S
0102040 e t u p R e a d P a r a m ; R
0102060 e a d P a r a m ; E v a l P a
0102100 r a m \r \r \t \t / / u t i l i t
0102120 i e s \r \t M a c h i n e T y p e
0102140 ; V e r s i o n ; L i s p F
0102160 376 001 \0 _ 264 i n i s h ; L i s p
0102200 S w a t C o n t e x t \r \r \t \t /
0102220 / S U B R b a s e \r \t u C o
0102240 d e C h e c k \r \r \t \t / / i n
0102260 i t i a l i z a t i o n o n l
0102300 y \r \t A l l o c P t r ; A l l
0102320 o c E n d ; A l l o c I n F i
0102340 r s t B l o c k ; S t a r t O
0102360 f A l l o c B l o c k \r \t G e t
0102400 R a m V e r s i o n ; S e t u
0102420 p L i s p M e m ; K B D i n i
0102440 t ; R e m o t e I n i t V m e
0102460 m \r \r \t \t / / s t a t i c s
0102500 u s e d \r \t @ S u b r B a s e ;
0102520 @ l v N I L ; @ l v K T ;
0102540 @ l v V P t r ; @ V P t r 0 ;
0102560 S u b r 376 001 \0 026 276 A r g s V e
0102600 c t o r \r \t @ B c p l ; @ C o
0102620 n t e x t Q ; L o g P a g i n
0102640 g F l a g \r \t @ d s p S t a r
0102660 t A d d r ; @ d s p A r e a ;
0102700 @ d l i s p D s p ; @ D L i
0102720 s p D C B \r \t E m u l a t o r S
0102740 p a c e ; @ M o v e W o r d s
0102760 B B T ; @ M o v e W o r d s B
0103000 B T A d d r \r \t L i s p S t a c
0103020 k L e n g t h \r \t P u p Z o n e
0103040 L e n g t h \r \t L i s p S t a c
0103060 k S t a r t \r \t P u p Z o n e S
0103100 t a r t \r \t ] \r \r s t a t i c
0103120 [ \r \t A l l o c P t r \t \t \t / /
0103140 s e t i n I n i t L i s p
0103160 \r \t A l l o c E n d 376 001 \0 F 222 \t
0103200 \t \t / / e n d o f f i x e
0103220 d a l l o c r e g i o n \r \t
0103240 A l l o c I n F i r s t B l o c
0103260 k \t \t / / t r u e w h e n
0103300 i n f i x e d b l o c k \r \t
0103320 S a v e d U F P ; S a v e d S
0103340 C P \t \t / / u s e d t o s
0103360 a v e O S p r o c s \r \t ] \r
0103400 \r m a n i f e s t [ \r \t N I L
0103420 N u m = # 0 \t \t \t / / a t
0103440 o m # f o r N I L \r \t T N
0103460 u m = # 1 1 4 \t \t \t / / a
0103500 t o m # f o r T \r \t S u b
0103520 r A r g s P t r = # 2 1 0 \t
0103540 \t / / a d d r w h e r e u
0103560 c o d e p u t s a r g s \r 376
0103600 001 \0 * a \t M a x S u b r A r g s
0103620 = 1 2 \t \t / / m a x i m u
0103640 m n a r g s f o r a n y
0103660 s u b r \r \t l E D C B = 6 \t
0103700 \t \t / / e x t e n d e d D C
0103720 B l e n g t h \r \t l F i l e N
0103740 a m e = 8 0 \t \t \t / / f i
0103760 l e n a m e l e n g t h i
0104000 n w o r d s \r \t M i n P u p Z
0104020 o n e L e n g t h = 8 0 0 0
0104040 \t \t / / s p a c e f o r p
0104060 u p z o n e \r \t D e f a u l t
0104100 L i s p S t a c k L e n g t h
0104120 = 2 4 0 0 \t / / ~ 1 0 p a
0104140 g e s f o r b c p l / l i s
0104160 p s t a c k \r \t ] \r \r s t r
0104200 u c t u 376 001 \0 250 1 r e V e r s
0104220 : \r [ \t \t \t \t \t
0104240 / / M i c r o c o d e V e r
0104260 s i o n w o r d \r \t m a c h T
0104300 y p e b i t 4 \t \t \t \t / /
0104320 m a c h i n e t y p e \r \t e m
0104340 u l T y p e b i t 4 \t \t \t \t
0104360 / / e m u l a t o r s s u p
0104400 p o r t e d \r \t b l a n k b y
0104420 t e \r \t ] \r \r s t r u c t u r e
0104440 S t r i n g : [ l e n g t
0104460 h b y t e ; c h a r ^ 1 , 2
0104500 5 5 b y t e ] \r \r / / T h
0104520 e a d d r e s s o f A l l
0104540 o c V e c i s u s e d a s
0104560 t h e b a s e o f t h e
0104600 i n i t i a l i 376 001 \0 X $ z a
0104620 t i o n c o d e i n \r / /
0104640 I n i t L i s p ( w h i c h
0104660 a l l o c a t e s r u n t i
0104700 m e s t o r a g e s t a r t
0104720 i n g h e r e ) . D o n o
0104740 t m o v e \r / / w i t h i n
0104760 t h e f i l e o r c h a
0105000 n g e o r d e r o f f i l
0105020 e l o a d w i t h o u t b
0105040 e i n g c a r e f u l . \r \r l
0105060 e t A l l o c V e c ( n , a
0105100 l i g n ; n u m a r g s n a
0105120 r g s ) = v a l o f \r \r / /
0105140 A l l o c P t r i s i n i
0105160 t i a l i z e d t o t h e
0105200 f i r s t a d d r e s s 376 001
0105220 \0 341 P t h a t c a n b e u
0105240 s e d t o a l l o c a t e \r
0105260 / / p e r m a n e n t d a t
0105300 a s t r u c t u r e s ( A l
0105320 l o c V e c ) . T h e f i r
0105340 s t t w o a l l o c a t i o
0105360 n s ( t h e \r / / P u p z
0105400 o n e a n d t h e B c p l
0105420 / L i s p r u n t i m e s
0105440 t a c k ) a r e m a d e o
0105460 v e r t h e t o p o f t
0105500 h e \r / / i n i t i a l i z a
0105520 t i o n c o d e a n d a r
0105540 e n o t w r i t t e n i n
0105560 t o u n t i l t h e i n i
0105600 t i a l i z a t i o n i s \r /
0105620 / c 376 001 \0 X 377 o m p l e t e .
0105640 \r \r [ \r / / I f a l i
0105660 g n i s s p e c i f i e d ,
0105700 t h e a l l o c a t i o n
0105720 i s a l i g n w o r d a l
0105740 i g n e d , f o r a l i g n
0105760 a p o w e r o f 2 . \r
0106000 i f n a r g s e q 2
0106020 t h e n [ l e t m a s k =
0106040 a l i g n - 1 \r
0106060
0106100 A l l o c P t r = ( A l l o c P
0106120 t r + m a s k ) & ( n o t
0106140 m a s k ) \r
0106160 ] \r
0106200 l e t a d d r = A l l o c P
0106220 t r \t \t / / S 376 001 \0 @ 250 a v e
0106240 e x i s t i n g p o i n t e
0106260 r f o r r e s u l t \r
0106300 A l l o c P t r = A l l o c P t
0106320 r + n \t \t / / M o v e t o
0106340 a f t e r t h i s a l l o c
0106360 a t i o n \r t e s t A l
0106400 l o c I n F i r s t B l o c k \r
0106420 \t i f s o i f U s c ( A l l
0106440 o c P t r , A l l o c E n d )
0106460 g r 0 \r \t \t t h e n C a l
0106500 l S w a t ( " N o t e n o u
0106520 g h i n i t i a l a l l o c
0106540 a t i o n s p a c e " ) \r \t i
0106560 f n o t i f U s c ( A l l
0106600 o c P t r , @ S t a c k E n d
0106620 ) g r 0 \r \t \t t h e n 376 001 \0
0106640 020 365 @ S t a c k E n d = A l l
0106660 o c P t r \t / / R e s e t e
0106700 n d o f s t a c k t o a
0106720 f t e r a l l o c a t i o n \r
0106740 r e s u l t i s a d d r
0106760 \r ] \r \r a n d M a i n I
0107000 n i t ( E v e n t u a l E n d O
0107020 f S t a c k ) b e \r [ \r
0107040 d s p = 0 \t \t \t \t \t /
0107060 / t u r n o f f a n y d
0107100 i s p l a y \r u n l e s s
0107120 V e r s i o n ( ) < < V e r s
0107140 . e m u l T y p e e q 4 \t \t
0107160 / / L i s p e m u l = 4
0107200 \r d o C a l l S
0107220 w a t ( " N o L i s p m i c
0107240 r o 376 001 \0 236 341 c o d e ! " ) \r \r
0107260 A l l o c P t r = S t
0107300 a r t O f A l l o c B l o c k \r
0107320 A l l o c E n d = A l
0107340 l o c V e c \r A l l o c I
0107360 n F i r s t B l o c k = t r
0107400 u e \t \t / / d o s o m e i
0107420 n i t i a l a l l o c i n
0107440 f i x e d b l o c k r e s e
0107460 r v e d b y l o a d e r \r \r
0107500 / / I n i t i a l i z e n e
0107520 w k e y b o a r d d r i v e
0107540 r . D o n e q u i c k l y
0107560 s o t y p e a h e a d i s
0107600 n o t l o s t \r K B D
0107620 i n i t ( ) \r \r / / W e w i
0107640 l l n e e d 376 001 \0 J 276 s p a
0107660 c e f o r t h e s i n g l
0107700 e d i s k s t r e a m t h
0107720 a t c a n b e o p e n a
0107740 t \r / / o n c e ( e i t h e
0107760 r s t a t s o r i n i t i
0110000 a l i z a t i o n ) p l u s
0110020 s o m e e x t r a s p a c e
0110040 f o r o t h e r \r / / d i
0110060 v e r s e a l l o c a t i o n
0110100 s . H e r e w e c r e a t
0110120 e a S y s Z o n e o f a
0110140 p p r o x . t h e r i g h t
0110160 s i z e . \r \r / / T h i s
0110200 c o u l d l a t e r b e m
0110220 e r g e d i n t o t h e P
0110240 u p Z o n e b y I n 376 001 \0 q
0110260 Y i t S y s t e m \r [ \r
0110300 l e t s z l = 2 * ( l K S
0110320 + W o r d s P e r P a g e ) + W
0110340 o r d s P e r P a g e \t / / s
0110360 t r e a m + b u f f e r * 2 p
0110400 l u s 1 p a g e \r s y
0110420 s Z o n e = I n i t i a l i
0110440 z e Z o n e ( A l l o c V e c (
0110460 s z l ) , s z l ) \t / / f o r
0110500 u s \r @ l v S y s Z o n
0110520 e = s y s Z o n e \t \t \t \t /
0110540 / f o r O s \r ] \r \r /
0110560 / S e t u p u c o c e / b
0110600 c p l c o m m u n i c a t i o
0110620 n a r e a i n l o c a t i
0110640 o n s # 2 0 0 - # 2 7 7 \r
0110660 376 001 \0 031 035 @ S t a t s P t r
0110700 = 0 \t \t / / n o s t a t s
0110720 i n i t i a l l y \r @ #
0110740 2 0 6 = # 2 0 0 0 % l v
0110760 B c p l \t / / = J M P @
0111000 B c p l \r @ # 2 0 7 =
0111020 # 7 7 4 0 0 \t \t / / C a l l
0111040 S w a t i n c a s e # 2 0
0111060 6 g e t s c l o b b e r e d
0111100 \r / / S u b r a r g u m e n
0111120 t p a s s i n g s t r u c t
0111140 u r e s . S u b r A r g s P t
0111160 r = # 2 1 0 \r S u b r
0111200 A r g s V e c t o r = A l l
0111220 o c V e c ( M a x S u b r A r g
0111240 s ) \t / / B c p l a r g s
0111260 v e c t o r 376 001 \0 364 J \r f
0111300 o r i = 0 t o M a x S
0111320 u b r A r g s - 1 d o S u b
0111340 r A r g s V e c t o r ! i = S u
0111360 b r A r g s P t r + 2 * i \r \r /
0111400 / B i n d i n g v a r i o u
0111420 s a t o m p o i n t e r s
0111440 w h i c h g o b a c k t o
0111460 L i s p . \r / / T h e a t
0111500 o m n u m b e r s o f T
0111520 a n d N I L u s e d t o
0111540 c o m e f r o m t h e I P
0111560 a g e , n o w c o n s t a n
0111600 t s \r l v N I L = M a
0111620 k e A t o m P t r ( N I L N u m
0111640 ) \r l v K T = M a k e
0111660 A t o m P t r ( T N u 376 001 \0 304 316
0111700 m ) \r \r / / B i n d v a r i
0111720 o u s s t a t i c s \r l
0111740 v V P t r = l v V P t r 0
0111760 \r S u b r B a s e = l
0112000 v u C o d e C h e c k \t \t / /
0112020 F i r s t S U B R \r \r / /
0112040 R e b i n d O S p r o c e d
0112060 u r e s f o r e r r o r s ,
0112100 s w a t a n d e x i t .
0112120 R e s t o r e d a t f i n i
0112140 s h \r S a v e d U F P =
0112160 @ l v U s e r F i n i s h P r
0112200 o c \r @ l v U s e r F i n
0112220 i s h P r o c = L i s p F i
0112240 n i s h \r S a v e d S C P
0112260 = @ l v S w a t C o n t e x
0112300 376 001 \0 362 A t P r o c \r @ l
0112320 v S w a t C o n t e x t P r o c
0112340 = L i s p S w a t C o n t e
0112360 x t \r @ l v S y s E r r
0112400 = S y s E r r \t \t \t / / N o
0112420 t t h e O S S y s E r r \r
0112440 \r / / O p e n t h e s y s
0112460 f o n t f i l e , g e t t
0112500 h e f i l e l e n g t h a
0112520 n d a l l o c a t e s p a c
0112540 e f o r t h e f o n t \r
0112560 [ l e t s = C r e a
0112600 t e D i s k S t r e a m ( f p S
0112620 y s F o n t , k s T y p e R e
0112640 a d O n l y , w o r d I t e m
0112660 ) \r l e t s l =
0112700 ( F i l e 376 001 \0 L 276 L e n g t h
0112720 ( s ) + 1 ) r s h i f t
0112740 1 \t / / i n w o r d s \r
0112760 l e t f o n t b l k =
0113000 A l l o c V e c ( s l ) \t \t \t
0113020 / / s p a c e f o r s y s
0113040 F o n t \r R e s e t s
0113060 ( s ) \r R e a d B l o
0113100 c k ( s , f o n t b l k , s
0113120 l ) \r C l o s e s ( s
0113140 ) \r / / T h e s y
0113160 s F o n t s t a t i c i s
0113200 s e t t o t h e t h i r d
0113220 w o r d o f t h e f o n
0113240 t , w h i c h i s \r
0113260 / / w h a t i s w a n t
0113300 e d b y t h e 376 001 \0 275 360 c
0113320 h a r a c t e r d i s p l a y
0113340 r o u t i n e s . \r
0113360 s y s F o n t = f o n t b l k +
0113400 2 \r ] \r \r / / S e t u
0113420 p c o n t e x t s t r u c t
0113440 u r e s f o r P u p p a c
0113460 k a g e \r C o n t e x t Q
0113500 = A l l o c V e c ( 2 ) ; C
0113520 o n t e x t Q ! 0 = 0 \t / / A
0113540 l l o c a t e a n d e m p t
0113560 y C o n t e x t Q \r \r / / R
0113600 e a d c o m m a n d l i n e
0113620 - d e c i d e s w h e t h
0113640 e r s y s i n o r r e s u
0113660 m e \r l e t S y s i n N
0113700 a m e = v e c l F i l e 376
0113720 001 \0 226 375 N a m e \r S y s i
0113740 n N a m e ! 0 = 0 \t \t \t / /
0113760 e m p t y u n t i l o n e
0114000 i s s p e c i f i e d \r \r
0114020 [ \r l e t C O M s t
0114040 r e a m = C r e a t e D i s
0114060 k S t r e a m ( f p C o m C m ,
0114100 k s T y p e R e a d O n l y ,
0114120 c h a r I t e m ) \r l e
0114140 t p a r a m , S W = v e
0114160 c l F i l e N a m e , v e c
0114200 1 0 \r S e t u p R e a d
0114220 P a r a m ( p a r a m , S W ,
0114240 C O M s t r e a m ) \t / / g
0114260 e t s w i t c h e s \r f
0114300 o r i = 1 t o @ S W
0114320 d o \r \t 376 001 \0 5 340 s w i t c h o
0114340 n S W ! i i n t o \r \t
0114360 [ c a s e $ I : c a
0114400 s e $ i : S y s i n N a m e
0114420 = " L I S P . S Y S O U T .
0114440 " ; e n d c a s e \r \t \t c a s
0114460 e $ P : c a s e $ p : L
0114500 o g P a g i n g F l a g = t
0114520 r u e ; e n d c a s e \r \t
0114540 ] \r \r / / c h e c k
0114560 f o r p a r a m e t e r s i
0114600 n t h e c o m m a n d l i
0114620 n e \r [ l e t P =
0114640 R e a d P a r a m ( 0 , - 1 ) \r
0114660 i f ( P e q - 1
0114700 ) t h e n b r e a k \t \t / /
0114720 N o m o r e 376 001 \0 { 301 s w
0114740 i t c h e s \r s w i t
0114760 c h o n ( @ S W g e 1 ?
0115000 S W ! 1 , 0 ) i n t o \r \t [
0115020 c a s e $ I : c a s e $
0115040 i : c a s e 0 : / / S Y
0115060 S I N f i l e \r \t \t M o
0115100 v e B l o c k ( S y s i n N a m
0115120 e , E v a l P a r a m ( p a r
0115140 a m , $ P ) , l F i l e N a m
0115160 e ) \r \t \t e n d c a s e \r
0115200 \t c a s e $ N : c a s e
0115220 $ n : \t \t / / s e t U s e
0115240 r N a m e \r \t \t P = p
0115260 a r a m ! 0 \r \t \t u n l e
0115300 s s P g r ( ( ( U s e r N
0115320 a m e ! - 1 ) l s h i f t 376 001
0115340 \0 % 363 1 ) - 1 ) d o \r \t
0115360 \t \t f o r i = 1 t o P
0115400 d o U s e r N a m e > > S t
0115420 r i n g . c h a r ^ i = p a
0115440 r a m ! i \r \t \t U s e r N
0115460 a m e > > S t r i n g . l e n g
0115500 t h = P \r \t \t e n d c
0115520 a s e \r \t d e f a u l t :
0115540 b r e a k \t / / u n r e c o g
0115560 n i z e d s w i t c h ; s o
0115600 e x i t \r \t ] \t \t \t / / E n
0115620 d o f s w i t c h o n s
0115640 w i t c h e s \r ] r e
0115660 p e a t \t \t \t / / L o o p b
0115700 a c k f o r a n o t h e r
0115720 s w i t c h \r C l o s e s
0115740 ( C O 376 001 \0 233 ] M s t r e a m )
0115760 \t \t / / c l o s e a n d d
0116000 i s c a r d C O M s t r e a m
0116020 \r ] \r \r [ \t \t \t \t \t
0116040 / / l o o k u p t h e l
0116060 i s p s y s t e m f i l e s
0116100 \r l e t V M E M i d ,
0116120 S Y S I N i d = n i l , n
0116140 i l \r l e t R e m o t e
0116160 P = f a l s e \r l e t
0116200 d e v = v e c 2 * l D V
0116220 \t \t \t / / l D V = l e n
0116240 d i r e n t r y \r l e t
0116260 S y s D i r = C r e a t e
0116300 D i s k S t r e a m ( f p S y s
0116320 D i r , k s T y p e R e a d W
0116340 r i t e , w o 376 001 \0 314 214 r d I
0116360 t e m ) \r l e t n a m e
0116400 v = v e c 2 \r n a m
0116420 e v ! 0 = " L I S P . V I R
0116440 T U A L M E M . " \r n a m
0116460 e v ! 1 = S y s i n N a m e
0116500 ! 0 ? S y s i n N a m e ,
0116520 0 \r i f S y s i n N a m
0116540 e ! 0 \r t h e n
0116560 [ l e t i = 1 \r \t
0116600 [ l e t c h = n i
0116620 l \r \t \t c h = S y s i n N a
0116640 m e > > S t r i n g . c h a r ^
0116660 i \r \t \t i f c h e q $ {
0116700 % c h e q $ [ \t / / i f
0116720 r e m o t e n a m e , d o
0116740 n ' t l o o k u p n o 376 001 \0
0116760 210 357 w ] \r \t \t t h e n [
0117000 n a m e v ! 1 = 0 ; R e
0117020 m o t e P = t r u e ; b r
0117040 e a k ] \r \t \t i f c h n e
0117060 $ * S \r \t \t t h e n b
0117100 r e a k \r \t \t i = i + 1 ]
0117120 r e p e a t u n t i l i g
0117140 r S y s i n N a m e > > S t r
0117160 i n g . l e n g t h \r \t ]
0117200 \r L o o k u p E n t r i e
0117220 s ( S y s D i r , n a m e v ,
0117240 d e v , 2 , t r u e ) \r
0117260 V M E M i d = d e v + 1
0117300 \t \t \t / / + 1 t u r n s d
0117320 i r e n t r i e s i n t o
0117340 f i l e p t r s \r / / d
0117360 o n 376 001 \0 365 354 t c r e a t e
0117400 v m e m f i l e - i t s
0117420 h o u l d e x i s t ( c o n
0117440 t i g u o u s l y ! ) a l r e
0117460 a d y \r u n l e s s @ d
0117500 e v d o C a l l S w a t ( "
0117520 C a n t f i n d " , n a m
0117540 e v ! 0 ) \r d e v = d
0117560 e v + l D V \t \t \t / / m o v e
0117600 o n t o s y s i n f i l
0117620 e \r S Y S I N i d = @
0117640 d e v ? d e v + 1 , \t \t / /
0117660 o k i f f o u n d ; e l
0117700 s e b e t t e r n o t a s
0117720 k \r \t \t n a m e v ! 1 ? C a
0117740 l l S w a t ( " C a n t f i n
0117760 d S Y S I N 376 001 \0 , 177 f i l
0120000 e " , n a m e v ! 1 ) , 0 \r
0120020 C l o s e s ( S y s D i r
0120040 ) \r \r / / w e n o w k n o
0120060 w w h a t k i n d o f s
0120100 y s i n , i f a n y , t o
0120120 d o \r i f R e m o t e
0120140 P \r t h e n [ R
0120160 e m o t e I n i t V m e m ( S
0120200 y s i n N a m e , V M E M i d
0120220 ) \r \t S Y S I N i d
0120240 = - 1 \r \t ] \r @ S
0120260 t a c k E n d = R e m o t e
0120300 I n i t V m e m \t / / f r e e
0120320 u p s o m e s p a c e \r
0120340 A l l o c I n F i r s t B l
0120360 o c k = f a l s e \r 376 001 \0 223
0120400 037 A l l o c P t r = A l l
0120420 o c V e c \t \t / / n e x t a
0120440 l l o c w i l l b e o v e
0120460 r l a i d o n i n i t c o
0120500 d e \r L i s p S t a c k S
0120520 t a r t = A l l o c V e c ( D e
0120540 f a u l t L i s p S t a c k L e
0120560 n g t h ) \t / / s p a c e f
0120600 o r l i s p s t a c k \r
0120620 L i s p S t a c k L e n g t h
0120640 = D e f a u l t L i s p S t
0120660 a c k L e n g t h \r P u p
0120700 Z o n e L e n g t h = M a x ( M
0120720 i n P u p Z o n e L e n g t h ,
0120740 @ S t a c k E n d - A l l o c
0120760 P t r ) \r P u p Z o n e S
0121000 t 376 001 \0 322 6 a r t = A l l o c V
0121020 e c ( P u p Z o n e L e n g t h
0121040 ) \r \r / / W e a l l o c a t
0121060 e a t l e a s t M i n P u
0121100 p Z o n e L e n g t h w o r d
0121120 s f o r t h e P u p z o
0121140 n e , b u t w e \r / / m a
0121160 k e s u r e t h a t i t
0121200 e x t e n d s a t l e a s t
0121220 t o t h e e n d o f t
0121240 h e i n i t i a l i z a t i o
0121260 n c o d e . \r / / T h i s
0121300 i s b e c a u s e t h e p
0121320 u p z o n e i s n o t t
0121340 o u c h e d d u r i n g m a
0121360 i n i n i t i a l i z a t i o
0121400 n , \r / / 376 001 \0 321 341 w h e r e
0121420 a s s u b s e q u e n t a l
0121440 l o c a t i o n s a r e .
0121460 T h e P u p i n i t i a l i
0121500 z a t i o n c o d e h i d e
0121520 s \r / / u n d e r t h e L
0121540 i s p S t a c k a l l o c a t
0121560 i o n ( a f t e r M a i n i
0121600 n i t ) s o i t d o e s n
0121620 ' t z o r c h i t s e l f .
0121640 \r \r \r S e t u p L i s p M
0121660 e m ( S Y S I N i d , V M E M
0121700 i d ) \t \t / / I n i t s V M
0121720 e m \r ] \r \r / / M o v e
0121740 W o r d s B B T t a b l e s
0121760 . T h i s c o d e k n o w
0122000 s w a y t o o m 376 001 \0 201 \n
0122020 u c h a b o u t X B B T s \r
0122040 M o v e W o r d s B B T
0122060 = A l l o c V e c ( 2 0 , 2
0122100 ) ; Z e r o ( M o v e W o r
0122120 d s B B T , 2 0 ) \r M o
0122140 v e W o r d s B B T ! 0 = #
0122160 1 0 0 0 0 0 ; M o v e W o r d
0122200 s B B T ! 3 = # 1 0 0 0 0 \t
0122220 / / f n ; w i d t h \r
0122240 M o v e W o r d s B B T ! 7 =
0122260 # 1 ; M o v e W o r d s B B
0122300 T ! 9 = # 1 0 0 0 0 \t \t / /
0122320 h e i g h t ; w i d t h \r
0122340 M o v e W o r d s B B T A d
0122360 d r = A l l o c V e c ( 2 ,
0122400 2 ) \r M o v e W o r d s
0122420 376 001 \0 y 206 B B T A d d r ! 0 =
0122440 E m u l a t o r S p a c e ;
0122460 M o v e W o r d s B B T A d d
0122500 r ! 1 = M o v e W o r d s B
0122520 B T \r \r / / A l l o c a t e
0122540 t h e d i s p l a y , b u t
0122560 d o n o t o p e n t h e
0122600 T T Y s t r e a m y e t \r
0122620 d l i s p D s p = A l
0122640 l o c V e c ( 2 ) \t \t \t / / l
0122660 i s p d i s p l a y \r /
0122700 / d l i s p D s p i s a
0122720 f a k e . A l l i t h a s
0122740 a r e p o i n t e r s t o
0122760 a s i n g l e d i s p l a
0123000 y b l o c k \r / / w h
0123020 i c h i 376 001 \0 # 002 s m a n i
0123040 p u l a t e d f r o m L i s
0123060 p . W e a l l o c a t e t
0123100 h a t n o w . \r D L i s
0123120 p D C B = A l l o c V e c
0123140 ( l E D C B , 2 ) \t \t / / s
0123160 i n g l e d c b ; 2 w o r d
0123200 a l i g n e d \r Z e r o
0123220 ( D L i s p D C B , l E D C B
0123240 ) \t \t \t / / m u s t b e e
0123260 m p t y \r d l i s p D s p
0123300 > > D S . f d c b = D L i s
0123320 p D C B \r d l i s p D s p
0123340 > > D S . l d c b = D L i s
0123360 p D C B \r / / N o w s e t
0123400 t h e d i s p l a y s t a r
0123420 t a d d r e s s . 376 001 \0 022 252
0123440 W e w i l l e v e n t u a l
0123460 l y g i v e a l l o f \r /
0123500 / m e m o r y f r o m t h
0123520 i s p o i n t o n t o t
0123540 h e d i s p l a y b i t m a
0123560 p . \r d s p S t a r t A d
0123600 d r = A l l o c V e c ( 0 ,
0123620 W o r d s P e r P a g e ) \t /
0123640 / p a g e a l i g n d i s
0123660 p l a y \r d s p A r e a
0123700 = E v e n t u a l E n d O f S
0123720 t a c k - d s p S t a r t A
0123740 d d r \r u n l e s s d s
0123760 p A r e a g e W o r d s P e
0124000 r P a g e t h e n C a l l S
0124020 w a t ( " N o s p a c e f 376
0124040 001 \0 6 212 o r d s p " ) \r \r / /
0124060 T h e d i s p l a y w i l
0124100 l b e g i v e n w h a t e
0124120 v e r s p a c e r e m a i n
0124140 s b e t w e e n t h e e n
0124160 d o f t h e \r / / l a s t
0124200 A l l o c V e c ( r o u n d
0124220 e d u p t o a p a g e
0124240 b o u n d a r y ) a n d t h
0124260 e b o t t o m o f t h e
0124300 s t a c k \r / / f r a m e f
0124320 o r I n i t S y s t e m ( p
0124340 l u s a s m a l l a m o u
0124360 n t n e e d e d f o r i t
0124400 t o s t a r t t h e r e
0124420 s t \r / / o f t h e s y s
0124440 t e m ) 376 001 \0 a L . T h e l
0124460 a t t e r q u a n t i t y i
0124500 s E v e n t u a l E n d O f S
0124520 t a c k . W e d o t h i s
0124540 s o \r / / t h e ( s u b s
0124560 t a n t i a l ) s t a c k f
0124600 r a m e f o r M a i n I n i
0124620 t c a n b e r e c l a i m
0124640 e d . \r / / D i s p l a y i
0124660 s a c t u a l l y t u r n e
0124700 d o n i n I n i t L i s p
0124720 a f t e r w e e x i t \r \r
0124740 ] \r 032 ( 1 7 9 2 ) \r a n d M
0124760 a k e A t o m P t r ( a t o m N
0125000 u m ) = v a l o f \r [
0125020 \r l e t a p = A l l
0125040 o c V e c ( 2 , 376 001 \0 T 322 2 )
0125060 \t \t / / D o l p h i n w a n
0125100 t s t h e s e 2 - w o r d
0125120 a l i g n e d \r a p ! 0
0125140 = A T O M s p a c e ; a p
0125160 ! 1 = a t o m N u m \r
0125200 r e s u l t i s a p \r ]
0125220 \r 032 \r a n d S h o r t S t a c
0125240 k ( n ) = ( M y F r a m e (
0125260 ) - n ) & n o t ( W o r d
0125300 s P e r P a g e - 1 ) \r \r / /
0125320 F i g u r e s o u t w h e r
0125340 e t o e n d t h e s t a
0125360 c k a s p e c i f i e d d
0125400 i s t a n c e f r o m h e r
0125420 e . A l l o w s \r / / a t
0125440 l e a s t n w o r d s 376 \0
0125460 8 \0 023 a n d r o u n d s d o
0125500 w n ( i . e . m o r e s t
0125520 a c k ) t o t h e n e a r
0125540 e s t p a g e \r 032 \r 377 \0 \0 M i
0125560 s c S u b r s . b c p l \0 373 230 E
0125600 020 330 \0 \0 376 001 \0 177 236 / / M i s c
0125620 S u b r s . b c p l - M i s
0125640 c e l l a n e o u s S U B R s
0125660 \r / / L a s t c h a n g e
0125700 N o v e m b e r 2 , 1 9 8 1
0125720 1 0 : 4 0 P M b y B i
0125740 l l v a n M e l l e \r / /
0125760 L a s t c h a n g e J u l y
0126000 1 3 , 1 9 8 1 1 : 0 1
0126020 A M b y B e a u S h e i l
0126040 \r / / L a s t c h a n g e
0126060 A p r i l 1 , 1 9 8 1 7
0126100 : 5 1 P M b y B e a u S
0126120 h e i l \r / / T o n e c h a
0126140 n g e M a r c h 1 7 , 1 9
0126160 8 1 6 : 3 7 P M b y B
0126200 e a u S h e i l 376 001 \0 374 X \r /
0126220 / L a s t c h a n g e M a
0126240 r c h 1 6 , 1 9 8 1 1 2
0126260 : 0 1 P M b y B e a u S
0126300 h e i l \r / / P o s t T r i
0126320 l l c h a n g e F e b r u a
0126340 r y 2 6 , 1 9 8 1 1 1 :
0126360 3 0 A M b y B e a u S h
0126400 e i l \r \r \t g e t " L i s p B
0126420 c p l . d e c l " \r \r e x t e r
0126440 n a l [ \t / / s u b r s d
0126460 e f i n e d h e r e \r \t B A C
0126500 K G R O U N D S U B R ; C L O
0126520 C K 0 ; D A Y T I M E 0 ; S
0126540 E T D A Y T I M E 0 ; N O O P
0126560 S U B R \r \t \t / / o b s o l e
0126600 t e s u b r s \r \t S E R I 376 001
0126620 \0 J 025 A L N U M B E R ; U s e
0126640 r N a m e 0 \r \t \t / / f o r
0126660 t e s t i n g \r \t X t r a S u b
0126700 r 0 ; X t r a S u b r 1 ; X
0126720 t r a S u b r 2 ; X t r a S u
0126740 b r 3 ; X t r a S u b r 4 \r \t
0126760 \t / / s t a t i c s u s e d
0127000 \r \t @ l v N I L ; @ l v V P t
0127020 r ; @ V P t r 0 ; @ V P t r
0127040 1 ; U s e r N a m e ; E m u
0127060 l a t o r S p a c e \r \t \t / /
0127100 p r o c e d u r e s u s e d \r
0127120 \t @ X P u t B a s e 3 2 ; @ X
0127140 G e t B a s e 3 2 \r \t U p d a t
0127160 e C h a i n ; F l u s h V M ;
0127200 W R I T E D I R T Y P A G E ;
0127220 N P 376 001 \0 276 a A G E S B I T \r
0127240 \t \t / / O S p r o c e d u r
0127260 e s \r \t T i m e r ; R e a d C
0127300 a l e n d a r ; S e t C a l e
0127320 n d a r ; C a l l S w a t \r \r
0127340 \t ] \r \r l e t B A C K G R O U
0127360 N D S U B R ( ) = l v N I L
0127400 \r \r a n d C L O C K 0 ( l v B
0127420 o x ) = v a l o f \t / / r
0127440 e t u r n s t h e m i l l i
0127460 s e c o n d c l o c k \r
0127500 [ \r T i m e r ( l v V P t
0127520 r ) \r X P u t B a s e 3 2
0127540 ( l v B o x , l v V P t r ) \r
0127560 r e s u l t i s l v B o
0127600 x \r ] \r \r a n d D A Y T
0127620 I M E 0 ( l v B 376 001 \0 X 255 o x )
0127640 = v a l o f \t / / r e t u
0127660 r n s t h e t i m e o f
0127700 d a y c l o c k \r [ \r
0127720 X P u t B a s e 3 2 ( l v B
0127740 o x , R e a d C a l e n d a r
0127760 ( l v V P t r ) ) \r r e s
0130000 u l t i s l v B o x \r ]
0130020 \r \r a n d S E T D A Y T I M E
0130040 0 ( l v B o x ) = v a l o f
0130060 \t / / s e t s t h e t i m
0130100 e o f d a y c l o c k \r
0130120 [ \r X G e t B a s e 3
0130140 2 ( l v B o x ) \r S e t C
0130160 a l e n d a r ( l v V P t r ) \r
0130200 r e s u l t i s l v B o
0130220 x \r ] \r \r a n d N 376 001 \0
0130240 276 \n O O P S U B R ( ) = l v
0130260 N I L \r \r a n d U s e r N a m
0130300 e 0 ( ) = U n i m p l e m e
0130320 n t e d ( ) \t / / u s e d t
0130340 o r e t u r n a d d r o f
0130360 u s e r n a m e \r \r a n d
0130400 S E R I A L N U M B E R ( ) =
0130420 U n i m p l e m e n t e d ( )
0130440 \t / / u s e d t o r e t u
0130460 r n m a c h i n e n e t a
0130500 d d r \r \r a n d U n i m p l e
0130520 m e n t e d ( ) = C a l l S
0130540 w a t ( " S u b r n o t i m
0130560 p l e m e n t e d ! " ) \r \r / /
0130600 T h e X t r a S u b r s a
0130620 r e t h e m o s t m i s c
0130640 e l 376 001 \0 200 3 l a n e o u s o
0130660 f a l l ! ! \r \r a n d X t r
0130700 a S u b r 0 ( ) = U p d a t
0130720 e C h a i n ( ) \r \r a n d X t
0130740 r a S u b r 1 ( ) = F l u s
0130760 h V M ( ) \r \r a n d X t r a S
0131000 u b r 2 ( l v B o x ; n u m a
0131020 r g s n a ) = ( n a l s
0131040 1 ? l v N I L , S E T D A
0131060 Y T I M E 0 ( l v B o x ) ) \r \r
0131100 a n d X t r a S u b r 3 ( m i
0131120 n d i r t y , e v e n i f v a
0131140 l i d ) = W R I T E D I R T
0131160 Y P A G E ( m i n d i r t y ,
0131200 e v e n i f v a l i d ) \r \r a n
0131220 d X t r a S u b r 4 ( f l g )
0131240 = N P A G 376 \0 \f 231 242 E S B I
0131260 T ( f l g ) \r 377 \0 \0 P u p S u
0131300 b r s . b c p l \0 373 227 362 216 245 \0 \0
0131320 376 001 \0 U 366 / / P u p S u b r s
0131340 . b c p l . T h e I n t e
0131360 r l i s p - D P u p p a c k
0131400 a g e \r / / L a s t c h a n
0131420 g e O c t o b e r 1 2 , 1
0131440 9 8 1 1 1 : 3 0 P M b y
0131460 B i l l v a n M e l l e \r
0131500 / / L a s t c h a n g e A
0131520 u g u s t 3 , 1 9 8 1 3
0131540 : 5 4 A M b y B e a u S
0131560 h e i l \r / / L a s t c h a
0131600 n g e J u l y 2 0 , 1 9 8
0131620 1 1 0 : 2 8 P M b y B
0131640 e a u S h e i l \r / / L a s
0131660 t c h a n g e J u l y 1 3
0131700 , 1 9 8 1 1 2 : 4 4 A M
0131720 b y B 376 001 \0 340 337 e a u S h
0131740 e i l \r / / L a s t c h a n
0131760 g e M a r c h 1 6 , 1 9 8
0132000 1 1 2 : 2 8 P M b y B
0132020 e a u S h e i l \r / / L a s
0132040 t c h a n g e F e b r u a r
0132060 y 1 3 , 1 9 8 1 6 : 2 4
0132100 P M b y B e a u S h e i
0132120 l \r \r / / T h i s f i l e
0132140 c o n t a i n s P u p s u b
0132160 r s c a l l e d f r o m L
0132200 i s p . I t a l s o h a s
0132220 t h e e n t r y \r / / w h
0132240 i c h s t a r t s u p t h
0132260 e p u p p a c k a g e a n
0132300 d e n q u e u e i t s c o
0132320 n t e x t s o n t 376 001 \0 p 337 o
0132340 C o n t e x t Q \r \r \t g e t
0132360 " P u p 0 . d e c l " \r \t g e t
0132400 " P u p 1 . d e c l " \r \r e x
0132420 t e r n a l [ \t \t / / p r o
0132440 c e d u r e s d e f i n e d \r
0132460 \t O P E N S O C K E T \t \t / /
0132500 S u b r : ( ) - > s o c k
0132520 e t \r \t R E A D P U P \t \t \t / /
0132540 S u b r : ( s o c , h e a
0132560 d , b u f , l i m ) - >
0132600 ? \r \t W R I T E P U P \t \t / /
0132620 S u b r : ( s o c , h e a d
0132640 , b u f ) \r \t C L O S E S O C
0132660 K E T \t \t / / S u b r : ( s
0132700 o c ) \r \r \t O p e n S o c ; C
0132720 l o s e S o c ; S t a r t P 376
0132740 001 \0 8 9 u p \r \r \t \t / / p r o
0132760 c e d u r e s u s e d \r \t M k
0133000 S m a l l P o s ; E q N I L ;
0133020 @ X G e t B a s e \t \t / / o
0133040 t h e r L i s p e x t e r n
0133060 a l s \r \t M o v e W o r d s ;
0133100 S m a l l U n b o x ; E m A d
0133120 d r ; R A I D C o d e \r \t E
0133140 n q u e u e ; D e q u e u e ;
0133160 B l o c k ; M i n \t / / O
0133200 S p r o c s \r \t I n i t i a l
0133220 i z e Z o n e ; A l l o c a t
0133240 e ; F r e e ; Z e r o ; I
0133260 n i t i a l i z e C o n t e x t
0133300 \r \t \t / / s t a t i c s u s
0133320 e d \r \t @ C o n t e x t Q ; m
0133340 a x P u 376 001 \0 \r ( p D a t a B y
0133360 t e s ; @ l v N I L ; @ l v
0133400 K T \r \r \t O p e n L e v e l 1 S
0133420 o c k e t ; I n i t P u p L e
0133440 v e l 1 ; C o m p l e t e P u
0133460 p \t / / P u p s t u f f \r \t
0133500 s o c k e t Q ; G e t P B I ;
0133520 C l o s e L e v e l 1 S o c k
0133540 e t ; R e l e a s e P B I \r
0133560 \t ] \r \r m a n i f e s t [ p
0133600 u p H d r W o r d s = p u p
0133620 O v W o r d s - 1 \t / / S i z
0133640 e o f p u p h e a d e r
0133660 i n w o r d s \r \t ] \r \r s t
0133700 a t i c [ P u p Z o n e
0133720 \t \t \t / / z o n e f o r p
0133740 u p a l l o c a 376 001 \0 O h t i
0133760 o n s \r \t X t r a Q \t \t \t
0134000 / / q u e u e o f " e x t
0134020 r a " o u t p u t P B I s \r
0134040 \t X U s e s = 0 \t \t \t
0134060 / / h o w m a n y x t r a
0134100 s a r e u s e d \r \t ] \r \r
0134120 l e t O P E N S O C K E T ( h
0134140 i , l o ) = M k S m a l l
0134160 P o s ( O p e n S o c ( S m a l
0134200 l U n b o x ( h i ) , S m a l
0134220 l U n b o x ( l o ) ) ) \r \r a n
0134240 d O p e n S o c ( h i , l o
0134260 ) = v a l o f \t \t / / O p
0134300 e n S o c s p l i t o u t
0134320 f o r R a i d \r [ l e t
0134340 s = A l l o c a t e ( 376 001
0134360 \0 230 232 P u p Z o n e , l e n P
0134400 u p S o c ) \r l e t l
0134420 c l P o r t = v e c l e n
0134440 P o r t \r Z e r o ( l c
0134460 l P o r t , l e n P o r t ) \r
0134500 l c l P o r t > > P o r
0134520 t . s o c k e t ^ 1 = h i \r
0134540 l c l P o r t > > P o r t .
0134560 s o c k e t ^ 2 = l o \r
0134600 O p e n L e v e l 1 S o c k e t
0134620 ( s , l c l P o r t ) \r
0134640 r e s u l t i s s \r ] \r
0134660 \r a n d R E A D P U P ( s o c
0134700 , h e a d , b u f , l i m
0134720 ; n u m a r g s n a ) =
0134740 v a l o f \r [ l e t s
0134760 = S 376 001 \0 \ 277 o c k e t ( s o
0135000 c ) \r u n l e s s s
0135020 r e s u l t i s l v N I L \r
0135040 l e t p b = D e q u
0135060 e u e ( l v s > > P u p S o c
0135100 . i Q ) \r u n l e s s
0135120 p b d o r e s u l t i s l
0135140 v N I L \r l e t p u p
0135160 = l v p b > > P B I . p u
0135200 p \r l e t n = ( p
0135220 u p > > P u p . l e n g t h + 1
0135240 ) r s h i f t 1 \r t
0135260 e s t ( n a l s 3 ) %
0135300 E q N I L ( b u f ) \r \t i f s o
0135320 [ \t / / c o n t i g u o u s
0135340 p u p \r \t \t M o v e W o r d s
0135360 ( E m A d d r ( 376 001 \0 033 l p u p
0135400 ) , h e a d , n ) \r \t
0135420 ] \r \t i f n o t [ \t / /
0135440 o l d s t y l e , t w o p
0135460 i e c e s \r \t \t M o v e W o r d
0135500 s ( E m A d d r ( p u p ) , h
0135520 e a d , p u p H d r W o r d s
0135540 ) \r \t \t n = M i n ( n -
0135560 p u p O v W o r d s , S m a l
0135600 l U n b o x ( l i m ) ) \r \t \t M
0135620 o v e W o r d s ( E m A d d r (
0135640 l v p u p > > P u p . w o r d
0135660 s ^ 1 ) , b u f , n ) \r \t
0135700 ] \r R e l e a
0135720 s e P B I ( p b ) \r r e
0135740 s u l t i s M k S m a l l P o
0135760 s ( n ) \r ] \r \r a n d 376 001 \0
0136000 4 253 W R I T E P U P ( s o c ,
0136020 h e a d , b u f ; n u m a
0136040 r g s n a ) = v a l o f \r
0136060 [ l e t s = S o c k
0136100 e t ( s o c ) \r u n l e
0136120 s s s r e s u l t i s l v
0136140 N I L \r l e t n w o r
0136160 d s = ( X G e t B a s e ( h
0136200 e a d ) + 1 ) r s h i f t
0136220 1 \r \t \t \t \t / / f i r s t
0136240 w o r d o f p u p ( h e a
0136260 d ) i s b y t e l e n \r
0136300 i f n w o r d s g r
0136320 ( p u p O v W o r d s + ( m a x
0136340 P u p D a t a B y t e s r s h
0136360 i f t 1 ) ) \r \t t h e n r e
0136400 s u 376 001 \0 026 4 l t i s R A I D
0136420 C o d e ( " P u p t o o l
0136440 o n g " , h e a d ) \r
0136460 l e t p b = n i l \t \t / /
0136500 g e t a P B I t o t r
0136520 a n s m i t t h i s \r
0136540 [ \r p b = G e t P B
0136560 I ( s , t r u e ) \t \t / / r
0136600 e t u r n i f n o n e l e
0136620 f t \r t e s t p b \r \t
0136640 i f s o b r e a k \r \t i f n o
0136660 t [ p b = G e t E x t r
0136700 a P B I ( s ) \r \t \t t e s t p
0136720 b i f s o b r e a k i f n
0136740 o t B l o c k ( ) ] \r
0136760 ] r e p e a t \r l e
0137000 t p u p = 376 001 \0 # 306 l v
0137020 p b > > P B I . p u p \r
0137040 t e s t ( n a l s 3 ) %
0137060 E q N I L ( b u f ) \r \t i f s
0137100 o [ \t / / c o n t i g u o u
0137120 s p u p \r \t \t M o v e W o r d
0137140 s ( h e a d , E m A d d r ( p
0137160 u p ) , n w o r d s ) \r \t
0137200 ] \r \t i f n o t [ \t / /
0137220 o l d s t y l e , t w o
0137240 p i e c e s \r \t \t M o v e W o r
0137260 d s ( h e a d , E m A d d r (
0137300 p u p ) , p u p H d r W o r d
0137320 s ) \r \t \t M o v e W o r d s ( b
0137340 u f , E m A d d r ( l v p u
0137360 p > > P u p . w o r d s ^ 1 ) ,
0137400 n w o r d s - p u p H 376 001 \0 \f
0137420 314 d r W o r d s ) \r \t
0137440 ] \r t e s t S o c H
0137460 e a d C h k ( s , p b ) \r \t i
0137500 f s o [ C o m p l e t e P
0137520 u p ( p b ) ; r e s u l t i s
0137540 l v K T ] \r \t i f n o t [
0137560 R e l e a s e P B I ( p b )
0137600 ; r e s u l t i s l v N I L
0137620 ] \r ] \r \r a n d C L O S E
0137640 S O C K E T ( s o c ) = v a
0137660 l o f [ C l o s e S o c ( S
0137700 o c k e t ( s o c ) ) ; r e s
0137720 u l t i s l v N I L ] \r \r a
0137740 n d C l o s e S o c ( s ) b
0137760 e [ C l o s e L e v e l 1 S
0140000 o c k e t ( s ) ; F r e e ( P
0140020 u 376 001 \0 $ 242 p Z o n e , s )
0140040 ] \r \r a n d S t a r t P u p (
0140060 z o n e , z o n e L e n g t h
0140100 ) b e \r [ P u p Z o n e
0140120 = I n i t i a l i z e Z o n
0140140 e ( z o n e , z o n e L e n g
0140160 t h ) \r I n i t P u p L
0140200 e v e l 1 ( P u p Z o n e , C
0140220 o n t e x t Q , 2 2 ) \r
0140240 X t r a Q = A l l o c a t
0140260 e ( P u p Z o n e , 2 ) \r
0140300 Z e r o ( X t r a Q , 2 )
0140320 \t / / e x t r a o u t p u t
0140340 p b i s \r l e t l P
0140360 B I = ( p u p O v B y t e s
0140400 + m a x P u p D a t a B y t e s
0140420 ) / 2 + 376 001 \0 262 210 l e n P B
0140440 I O v e r h e a d \r f o
0140460 r i = 1 t o 3 d o E n
0140500 q u e u e ( X t r a Q , A l l
0140520 o c a t e ( P u p Z o n e , l
0140540 P B I ) ) \r ] \r \r a n d S
0140560 o c k e t ( s o c ) = v a l
0140600 o f \r [ l e t t = S
0140620 m a l l U n b o x ( s o c ) \r
0140640 l e t s = s o c k e
0140660 t Q \r [ s = s > >
0140700 P u p S o c . l i n k \r
0140720 i f s e q t t h e n
0140740 r e s u l t i s t ] r e
0140760 p e a t w h i l e s \r
0141000 R A I D C o d e ( " N o t a n
0141020 o p e n s o c k e 376 001 \0 k 002
0141040 t " , s o c ) \r r e s
0141060 u l t i s f a l s e \r ] \r
0141100 \r a n d S o c H e a d C h k (
0141120 s , p b ) = v a l o f \r
0141140 [ l e t b s = l v
0141160 s > > P u p S o c . l c l P o r
0141200 t \t / / S o c k e t ' s l o
0141220 c a l p o r t s p e c \r
0141240 l e t b p b = l v p
0141260 b > > P B I . p u p . s P o r t
0141300 \t / / l o c a l p o r t o
0141320 f p u p \r f o r i =
0141340 ( o f f s e t P o r t . s o c
0141360 k e t / 1 6 ) t o l e n P o
0141400 r t - 1 \t / / s k i p o v e
0141420 r p o s s . 0 n e t a d
0141440 376 001 \0 ) 201 d r \r d o
0141460 u n l e s s b s ! i e q b
0141500 p b ! i \r d o
0141520