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