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