$ od -c -N 50000 [Indigo]<AltoSource>BOOTSOURCES.DM!1
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 E t h e r B o o t L o a
0063240 d e r . a s m \0 373 233 + S 335 \0 \0 376
0063260 001 \0 264 300 ; E t h e r B o o t L
0063300 o a d e r . a s m - - A l t
0063320 o E t h e r n e t b o o t
0063340 l o a d e r \r ; I m p l e m e
0063360 n t e d ( w i t h m u c h
0063400 b l o o d a n d s w e a t )
0063420 b y E . A . T a f t ,
0063440 J u l y 1 9 7 6 . \r ; C o p
0063460 y r i g h t X e r o x C o r
0063500 p o r a t i o n 1 9 7 9 , 1
0063520 9 8 3 \r ; L a s t m o d i f
0063540 i e d J u n e 3 0 , 1 9 8
0063560 3 1 : 4 2 P M b y B o
0063600 g g s \r \r . e n t b o o t L o
0063620 a d e r P a c k e t \r . e n t
0063640 m a y D a y P a c k e t \r \r . s
0063660 r e l \r 376 001 \0 035 006 \r b o o t L o
0063700 a d e r P a c k e t : . b o o
0063720 t L o a d e r P a c k e t \r m a
0063740 y D a y P a c k e t : . m a y
0063760 D a y P a c k e t \r \r . n r e l
0064000 \r \r ; F o r m a t o f a n
0064020 E t h e r n e t - e n c a p s
0064040 u l a t e d P u p \r e t h e r
0064060 A d r = 0 \t \t ; D e s t i
0064100 n a t i o n / s o u r c e b y
0064120 t e s \r e t h e r T y p e =
0064140 1 \t \t ; E t h e r n e t t y
0064160 p e w o r d \r p u p L e n g t
0064200 h = 2 \t \t ; P u p l e n
0064220 g t h \r p u p T y p e = 3 \t
0064240 \t ; T r a n s p o r t c o n
0064260 t r o l a n d 376 001 \0 200 1 t y
0064300 p e \r p u p I D = 4 \t \t ;
0064320 P u p I D ( 2 w o r d s )
0064340 \r p u p D N e t H o s t = 6
0064360 \t \t ; P u p d e s t i n a t
0064400 i o n n e t / h o s t \r p u p
0064420 D S o c k e t = 7 \t \t ; P
0064440 u p d e s t i n a t i o n s
0064460 o c k e t ( 2 w o r d s ) \r
0064500 p u p S N e t H o s t = 1 1
0064520 \t ; P u p s o u r c e n e
0064540 t / h o s t \r p u p S S o c k e
0064560 t = 1 2 \t \t ; P u p s o
0064600 u r c e s o c k e t \r p u p C
0064620 o n t e n t s = 1 4 \t ; P
0064640 u p c o n t e n t s s t a r
0064660 t h e r e \r \r t y p e B r 376 001
0064700 \0 z } e a t h O f L i f e =
0064720 6 0 2 \t ; E t h e r n e t t
0064740 y p e f o r a b o o t l
0064760 o a d e r p a c k e t \r t y p
0065000 e P u p = 1 0 0 0 \t \t ; E
0065020 t h e r n e t t y p e f o r
0065040 a P u p \r t y p e M a y d a
0065060 y = 2 4 4 \t ; P u p t y
0065100 p e f o r b o o t f i l e
0065120 r e q u e s t \r s o c k e t M
0065140 i s c S e r v i c e s = 4 \t
0065160 ; S o c k e t t o w h i c
0065200 h r e q u e s t s h o u l d
0065220 b e s e n t \r s o c k e t E
0065240 F T P R e c e i v e r = 2 0
0065260 \t ; O u r E F T P r e c e
0065300 i v e 376 001 \0 360 021 r s o c k e t
0065320 \r \r p a g e 0 o r i g i n =
0065340 3 \t \t ; W h e r e p a g e
0065360 0 p o r t i o n o f l o a
0065400 d e r r u n s \r p a g e 1 o r
0065420 i g i n = 6 2 4 \t ; W h e
0065440 r e p a g e 1 p o r t i o
0065460 n o f l o a d e r w i l l
0065500 r u n \r \r ; E t h e r n e t
0065520 c o n t r o l w o r d a d
0065540 d r e s s e s \r e P L o c =
0065560 6 0 0 \r e B L o c = 6 0 1 \r
0065600 e E L o c = 6 0 2 \r e L L o
0065620 c = 6 0 3 \r e I C L o c =
0065640 6 0 4 \r e I P L o c = 6 0
0065660 5 \r e O C L o c = 6 0 6 \r e
0065700 O P L o c = 376 001 \0 224 252 6 0 7
0065720 \r e H L o c = 6 1 0 \r \r ;
0065740 C o n v e n i e n t c o n s t
0065760 a n t f o r a c c e s s i n
0066000 g E t h e r n e t c o n t r
0066020 o l w o r d s b y \r ; d i
0066040 s p l a c e m e n t a d d r e
0066060 s s i n g \r e B a s e = 7 7
0066100 7 \r \f \r ; T h e E t h e r n
0066120 e t B o o t L o a d e r . \r
0066140 ; T h e f i r s t t w o
0066160 w o r d s a r e r e s e r v
0066200 e d f o r t h e E t h e r
0066220 n e t h e a d e r . \r ; T h
0066240 e A l t o j u m p s t o
0066260 t h e t h i r d w o r d o
0066300 f t h e p a c k e t 376 001 \0
0066320 303 256 a f t e r r e c e i p t .
0066340 \r \r . b o o t L o a d e r P a c
0066360 k e t : \t ; A b s o l u t e
0066400 a d d r e s s = 1 a t r
0066420 u n t i m e \r \t 0 \t \t ; D e s
0066440 t i n a t i o n / s o u r c e
0066460 ( f i l l e d i n a t r u
0066500 n t i m e ) \r \t t y p e B r e a
0066520 t h O f L i f e \r \r ; T h e
0066540 f o l l o w i n g c o d e r
0066560 u n s o n l y i n p a g e
0066600 0 a n d n e v e r m i g
0066620 r a t e s t o p a g e 1 .
0066640 \r p a g e 0 i m a g e : \t ; A
0066660 b s o l u t e a d d r e s s
0066700 = 3 a t r u n t i m e \r \r
0066720 ; 376 001 \0 016 025 S e t t h e p
0066740 a r a m e t e r t h a t d e
0066760 t e r m i n e s t h e d e s
0067000 i r e d b o o t f i l e \r \t
0067020 l d a 0 @ c 1 7 7 0 3 5 \t \t
0067040 ; G e t k e y b o a r d b
0067060 i t s \r \t c o m 0 0 \t \t \t ;
0067100 T u r n t h e m r i g h t
0067120 s i d e u p \r \t s t a 0
0067140 . m a y D a y P a c k e t + p u
0067160 p I D + 1 ; U s e a s l
0067200 o w 1 6 b i t s o f P u
0067220 p I D \r \r ; C o r r e c t
0067240 a l l m e m o r y p a r i t
0067260 y b y r e a d i n g a n d
0067300 w r i t i n g a l l w o r
0067320 d s i n m 376 001 \0 200 372 e m o r
0067340 y \r ; ( n o t e t h a t i
0067360 n t e r r u p t s a r e o f
0067400 f , s o t h e p a r i t y
0067420 e r r o r s w o n ' t c a
0067440 u s e t r o u b l e ) . \r ;
0067460 E t h e r B o o t p r o c e d
0067500 u r e e n t e r s h e r e .
0067520 \r b o o t 0 : \t m k m i n u s o
0067540 n e 0 0 \t \t ; F i r s t
0067560 s o u r c e a d r = 0 (
0067600 - 1 ) \r \t l d a 3 k 1 0 0 0
0067620 \t \t ; C o u n t = - 1 7 7
0067640 0 0 0 \r \t c o m 3 1 \t \t \t ;
0067660 L a s t d e s t a d r =
0067700 1 7 6 7 7 7 \r \t b l t \r \r ;
0067720 Z e r o s e l e c t e 376 001 \0 ~
0067740 352 d r e g i o n s i n p a
0067760 g e 1 \r \t m k z e r o 0 0
0070000 \r \t l d a 1 c 4 2 7 \t \t ;
0070020 Z e r o 4 0 1 - 4 2 7 \r \t l d
0070040 a 3 m 2 7 \r \t b l k s \r \t l
0070060 d a 1 c 5 6 7 \t \t ; Z e r
0070100 o 4 3 1 - 5 6 7 \r \t l d a 3
0070120 m 1 3 7 \r \t b l k s \r \t l d a
0070140 1 c 7 7 7 \t \t ; Z e r o
0070160 6 0 0 - 7 7 7 \r \t l d a 3 m
0070200 2 0 0 \r \t b l k s \r \r ; C o p
0070220 y t o p p a r t o f b o
0070240 o t l o a d e r u p t o
0070260 p a g e 1 ( n o t e a c 1
0070300 s t i l l c o n t a i n s
0070320 7 7 7 ) \r \t l d a 0 p P a g
0070340 e 376 001 \0 a 271 1 C o d e \r \t l d a
0070360 3 m P a g e 1 C o u n t \r \t
0070400 b l t \r \r ; S e t u p a
0070420 " M a y d a y " p a c k e t
0070440 t o b r o a d c a s t \r \t m o
0070460 v z r 1 1 \t \t ; M a k e
0070500 m a s k = 3 7 7 \r \t s t a
0070520 1 @ . e r r c n t \t \t ; M a
0070540 x a l l o w a b l e o u t p
0070560 u t e r r o r s = 3 7 7 \r
0070600 \t l d a 0 c 3 \t \t ; R e s
0070620 e t E t h e r n e t \r \t s i o
0070640 \r \t a n d 1 0 \t \t \t ; M a
0070660 s k l o c a l e t h e r n e
0070700 t a d d r e s s \r \t l d a 2
0070720 . e B a s e \r \t s t a 0 e
0070740 H L o c - e 376 001 \0 367 267 B a s e
0070760 2 \t ; S t o r e f o r m i
0071000 c r o c o d e \r \t j s r b o o
0071020 t 1 \t \t ; M a k e p o i n t
0071040 e r t o o u t p u t p a c
0071060 k e t \r \r ; T h e " M a y d
0071100 a y " p a c k e t t h a t
0071120 w e b r o a d c a s t \r . m a
0071140 y D a y P a c k e t : 0 \t ;
0071160 D e s t i n a t i o n / s o u r
0071200 c e ( f i l l e d i n ) \r k
0071220 1 0 0 0 : \t 1 0 0 0 \t \t ; E t
0071240 h e r n e t p a c k e t t y
0071260 p e = t y p e P u p \r \t 2 2
0071300 . \t \t ; P u p l e n g t h \r
0071320 \t t y p e M a y d a y \t ; T r
0071340 a n s p o r t c o n 376 001 \0 004 312
0071360 t r o l / t y p e \r t i m e o u
0071400 t : 0 \t \t ; P u p I D \r \t
0071420 0 \t \t ; \r \t 0 \t \t ; D e s t
0071440 i n a t i o n n e t / h o s t
0071460 ( b r o a d c a s t o r f
0071500 i l l e d i n ) \r \t 0 \t \t ;
0071520 D e s t i n a t i o n s o c k
0071540 e t \r \t s o c k e t M i s c S e
0071560 r v i c e s \r \t 0 \t \t ; S o u
0071600 r c e n e t / h o s t ( f i
0071620 l l e d i n a t r u n t i
0071640 m e ) \r \t 0 \t \t ; S o u r c e
0071660 s o c k e t ( E F T P r e
0071700 c e i v e r ) \r \t s o c k e t E
0071720 F T P R e c e i v e r \r \t - 1 \t
0071740 \t ; N i l c h e c k s u m \r
0071760 376 001 \0 351 220 \r b o o t 1 : \t s t a
0072000 3 e O P L o c - e B a s e
0072020 2 \t ; S e t p o i n t e r
0072040 t o p a c k e t \r \t l d a 1
0072060 e t h e r A d r 3 \r \t a d d
0072100 0 1 \r \t s t a 1 e t h e
0072120 r A d r 3 \t ; S e t E t h
0072140 e r n e t s o u r c e h o s
0072160 t = m e \r \t l d a 1 p u
0072200 p S N e t H o s t 3 \r \t a d d
0072220 0 1 \r \t s t a 1 p u p S
0072240 N e t H o s t 3 \t ; S e t
0072260 P u p s o u r c e h o s t
0072300 = m e \r \t l d a 0 d 1 3 \r
0072320 \t s t a 0 e O C L o c - e B
0072340 a s e 2 \t ; S e t s i z e
0072360 o f p 376 001 \0 234 371 a c k e t \r
0072400 \f \r ; P a g e 0 p o r t i
0072420 o n o f b o o t l o a d e
0072440 r ( c o n t ' d ) \r \r ; L o
0072460 o p h e r e f o r e a c h
0072500 r e t r a n s m i s s i o n
0072520 o f b r o a d c a s t r e q
0072540 u e s t \r b o o t 2 : \t l d a
0072560 0 c 3 \t \t ; R e s e t E t
0072600 h e r n e t \r \t s i o \r \t j s r
0072620 @ . D o E t h e r O u t p u t
0072640 \t ; S e n d p a c k e t o
0072660 f f \r \r ; S e t u p t o
0072700 r e c e i v e r e p l y \r b o
0072720 o t 3 : \t l d a 3 . e B a s
0072740 e \t \t ; F o r a c c e s s i
0072760 n g E t h e r n e 376 001 \0 177 323 t
0073000 c o n t r o l w o r d s \r \t
0073020 l d a 2 c 1 0 0 0 \t \t ; W
0073040 h e r e t o p u t r e p l
0073060 y ( p a g e 2 ) \r \t s t a
0073100 2 e I P L o c - e B a s e 3
0073120 \r \t l d a 0 d 2 6 9 \t \t ;
0073140 M a x l e n g t h \r \t s t a
0073160 0 e I C L o c - e B a s e 3
0073200 \r \t s t a 0 @ . m a x L e n
0073220 g t h \r \t m k z e r o 0 0 \t
0073240 \t ; Z e r o p o s t l o c
0073260 a t i o n \r \t s t a 0 e P L
0073300 o c - e B a s e 3 \r \t l d a
0073320 0 c 2 \t \t ; e t h e r I n p
0073340 u t C o m m a n d \r \t s i o \t \t
0073360 \t ; F i r e u p r e c e 376
0073400 001 \0 232 361 i v e r \r \r ; A w a i
0073420 t r e p l y \r b o o t 4 : \t l
0073440 d a 0 e P L o c - e B a s e
0073460 3 \t ; A n y t h i n g h a
0073500 p p e n e d ? \r \t s z 0 0 \r
0073520 \t j m p b o o t 6 \t \t ; Y
0073540 e s \r \t m u l \t \t \t ; N o ,
0073560 w a s t e t i m e \r \t d s z
0073600 t i m e o u t \t \t ; T i m e d
0073620 o u t ( a b o u t 1 s e
0073640 c o n d ) ? \r \t j m p b o o
0073660 t 4 \t \t ; N o , k e e p w
0073700 a i t i n g \r \t d s z r e t r
0073720 i e s \t \t ; Y e s , t o o
0073740 m a n y r e t r i e s ? \r \t
0073760 j m p b o o t 2 \t \t ; N o ,
0074000 s e n 376 001 \0 / 334 d a n o t h
0074020 e r r e q u e s t \r \t l d a
0074040 0 c 3 \t \t ; Y e s , r e s
0074060 e t i n t e r f a c e a n d
0074100 g i v e u p \r \t s i o \r \t j
0074120 m p @ G i v e U p \t \t ; R e
0074140 t u r n t o c a l l e r o
0074160 r l o o p \r \r G i v e U p : \t
0074200 B o m b - D \t \t \t ; O v e r w
0074220 r i t t e n b y E t h e r B
0074240 o o t i f r e t u r n O n F
0074260 a i l \r \r ; H e r e w h e n
0074300 h a v e p o s s i b l e r
0074320 e p l y \r b o o t 6 : \t l d a
0074340 3 c 3 7 7 \t \t ; G o o d i
0074360 n p u t d o n e s t a t u s
0074400 ? \r \t s e 3 0 376 001 \0 y 337 \r \t
0074420 j m p b o o t 3 \t \t ; N o
0074440 , i g n o r e \r \t l d a 0
0074460 e t h e r T y p e 2 \t ; Y e
0074500 s , i s i t a P u p ? \r
0074520 \t l d a 1 c 1 0 0 0 \r \t s e
0074540 0 1 \r \t j m p b o o t 3
0074560 \t \t ; N o , i g n o r e \r \t
0074600 l d a 0 p u p T y p e 2 \t
0074620 \t ; Y e s , g e t P u p
0074640 t y p e \r \t a n d 3 0 \r \t l
0074660 d a 3 p u p I D + 1 2 \t \t
0074700 ; G e t s e q u e n c e n
0074720 u m b e r \r \t l d a 1 c 3 0
0074740 \t \t ; E F T P d a t a ? \r \t
0074760 s n e 0 1 \r \t s z 3 3 \t
0075000 \t \t ; S e q u e n c e n 376 001
0075020 \0 s < u m b e r z e r o ? \r \t
0075040 j m p b o o t 3 \t \t ; N o
0075060 , i g n o r e \r \f \r ; P a g
0075100 e 0 p o r t i o n o f b
0075120 o o t l o a d e r ( c o n t
0075140 ' d ) \r \r ; W e g o t a
0075160 g o o d p a c k e t , s e t
0075200 u p f o r t r a n s f e r
0075220 . \r \t l d a 0 e t h e r A d
0075240 r 2 \t ; G e t d e s t / s
0075260 o u r c e w o r d \r \t s t a
0075300 0 @ . g o o d D e s t S o u r
0075320 c e \t ; S a v e i t \r \t l d
0075340 a 3 . a c k P a c k e t \t ;
0075360 W h e r e w e w i l l b
0075400 u i l d t h e A c k \r \t s t
0075420 a 3 376 001 \0 T W @ . e O P L o
0075440 c \t \t ; S e t p o i n t e r
0075460 ( c o u n t a l r e a d y
0075500 o k ) \r \t s t a 3 4 2 6 - a
0075520 c k P a c k e t + D 3 \t ; C
0075540 u r s o r c o o r d i n a t e
0075560 s = ( 5 3 1 , 5 3 1 ) \r \t s
0075600 t a 3 4 2 7 - a c k P a c k
0075620 e t + D 3 \r \t m o v s 0 0
0075640 \t \t ; S w a p s o u r c e
0075660 a n d d e s t i n a t i o n \r
0075700 \t s t a 0 e t h e r A d r
0075720 3 \t ; S t o r e i n A c k
0075740 \r \t l d a 0 c 1 0 0 0 \t \t ;
0075760 T y p e = P u p \r \t s t a
0076000 0 e t h e r T y p e 3 \r \t
0076020 l d a 0 d 2 376 001 \0 361 \ 2 \t \t
0076040 ; P u p l e n g t h = 2
0076060 2 \r \t s t a 0 p u p L e n g
0076100 t h 3 \r \t i n c 1 0 \t \t \t
0076120 ; P u p t y p e = A c k
0076140 = 3 1 \r \t s t a 0 p u p
0076160 T y p e 3 \r \t l d a 0 p u
0076200 p D N e t H o s t 2 \t ; C o
0076220 p y a n d e x c h a n g e
0076240 s o u r c e a n d \r \t s t a
0076260 0 p u p S N e t H o s t 3 \t
0076300 ; d e s t i n a t i o n p
0076320 o r t s \r \t l d a 0 p u p D
0076340 S o c k e t 2 \r \t s t a 0
0076360 p u p S S o c k e t 3 \r \t l d
0076400 a 0 p u p D S o c k e t + 1
0076420 2 \r \t s t a 0 p u p 376 001 \0
0076440 270 Z S S o c k e t + 1 3 \r \t l
0076460 d a 0 p u p S N e t H o s t
0076500 2 \r \t s t a 0 p u p D N e
0076520 t H o s t 3 \r \t l d a 0 p
0076540 u p S S o c k e t 2 \r \t s t a
0076560 0 p u p D S o c k e t 3 \r
0076600 \t l d a 0 p u p S S o c k e
0076620 t + 1 2 \r \t s t a 0 p u p
0076640 D S o c k e t + 1 3 \r \t d s z
0076660 p u p C o n t e n t s 3 \t ;
0076700 P u p c h e c k s u m =
0076720 n i l ( - 1 ) \r \r ; N o w
0076740 r e a d a n d d i s c a r d
0076760 p a c k e t 0 ( w h i c h
0077000 h a s t h e d i s k b o
0077020 o t l o a d e r ) \r ; a n d
0077040 r 376 001 \0 362 333 e a d p a c k e
0077060 t 1 , w h i c h c o n t a
0077100 i n s t h e d a t a d e s
0077120 t i n e d f o r p a g e 0
0077140 . \r \t j s r @ . D o E t h e r
0077160 O u t p u t \t ; A c k t h e
0077200 p a c k e t w e j u s t
0077220 g o t \r \t i s z @ . s e q N u
0077240 m \t \t ; A d v a n c e t o
0077260 s e q u e n c e n u m b e r
0077300 1 \r \t j s r @ . R e c e i v e
0077320 E F T P P a c k e t \t ; R e a
0077340 d p a c k e t 1 \r \r ; S e
0077360 t u p t o t r a n s f e r
0077400 p a c k e t d a t a i n t
0077420 o p a g e 0 a n d j u m
0077440 p t o r e 376 001 \0 y 223 m a i n
0077460 i n g \r ; b o o t c o d e
0077500 i n p a g e 1 \r \t l d a 0
0077520 p P a g e 2 D a t a \t ; F i
0077540 r s t s o u r c e a d r -
0077560 1 \r \t l d a 1 c 3 7 7 \t \t ;
0077600 L a s t d e s t a d r \r \t
0077620 c o m 1 3 \t \t \t ; - n u
0077640 m b e r o f w o r d s ( 4
0077660 0 0 ) \r \t l d a 2 p P a g e
0077700 2 P a c k e t \t ; W h e r e
0077720 t o s t a r t r e a d i n g
0077740 p a c k e t 2 \r \t j m p @
0077760 . C o n t i n u e B o o t \t ;
0100000 J u m p t o c o d e i n
0100020 p a g e 1 \r \r \r c 1 7 7 0 3 5
0100040 : 1 7 7 0 3 5 \r d 2 2 376 001 \0 031
0100060 362 : \t 2 2 . \r d 2 6 9 : \t 2 6 9
0100100 . \r c 4 2 7 : \t 4 2 7 \r c 5 6 7
0100120 : \t 5 6 7 \r . e O P L o c : e
0100140 O P L o c \r . e B a s e : \r c 7
0100160 7 7 : \t 7 7 7 \r m 2 7 : \t - 2 7
0100200 \r m 1 3 7 : \t - 1 3 7 \r m 2 0 0
0100220 : \t - 2 0 0 \r p P a g e 1 C o d
0100240 e : p a g e 1 i m a g e - p a
0100260 g e 0 i m a g e + p a g e 0 o r
0100300 i g i n - 1 \r m P a g e 1 C o u
0100320 n t : p a g e 1 o r i g i n -
0100340 1 0 0 0 \r p P a g e 2 D a t a :
0100360 1 0 0 0 + 1 2 . - 1 \t ; W h
0100400 e r e p a g e 0 d a t a
0100420 s i t s w h e n i n p a g
0100440 e 2 \r p P a g e 2 P a c k e t
0100460 : 376 001 \0 y 347 1 0 0 0 - 1 2 . \t
0100500 ; W h e r e t o s t a r t
0100520 r e a d i n g p a c k e t
0100540 2 \r . a c k P a c k e t : a c
0100560 k P a c k e t - D \t ; W h e r
0100600 e A c k p a c k e t i s
0100620 b u i l t \r . D o E t h e r O u
0100640 t p u t : D o E t h e r O u t
0100660 p u t - D \r . R e c e i v e E F
0100700 T P P a c k e t : R e c e i v
0100720 e E F T P P a c k e t - D \r . C
0100740 o n t i n u e B o o t : C o n
0100760 t i n u e B o o t - D \r . m a x
0101000 L e n g t h : m a x L e n g t
0101020 h - D \r . g o o d D e s t S o u
0101040 r c e : g o o d D e s t S o u
0101060 r c e - D \r 376 001 \0 O 333 . e r r c
0101100 n t : e r r c n t - D \r . s e
0101120 q N u m : s e q N u m - D \r r
0101140 e t r i e s : 3 0 . \t \t ; M
0101160 a x n u m b e r o f b r o
0101200 a d c a s t r e t r i e s \r \f
0101220 \r ; P a g e 1 p o r t i o
0101240 n o f b o o t p r o g r a
0101260 m \r \r p a g e 1 i m a g e : \r \r
0101300 \r ; A s s e m b l e v a r i
0101320 a b l e s a n d c o n s t a
0101340 n t s h e r e s o t h e y
0101360 c a n b e r e a c h e d \r
0101400 ; f r o m t h e p a g e
0101420 0 c o d e a l s o . \r \r \r ;
0101440 C o n s t a n t s \r c 2 : \t 2
0101460 \r c 3 : \t 3 \r d 1 3 : 376 001 \0 A )
0101500 \t 1 3 . \r c 3 0 : \t 3 0 \t \t ;
0101520 t y p e E F T P D a t a \r c 3 7
0101540 7 : \t 3 7 7 \r c 1 0 0 0 : \t 1 0
0101560 0 0 \r m d 1 2 : \t - 1 2 . \r \r D
0101600 = p a g e 1 i m a g e - p a
0101620 g e 1 o r i g i n \t ; L o a d
0101640 - r u n t i m e d i s p l
0101660 a c e m e n t \r ; N o t e -
0101700 \r ; T o g e n e r a t e a
0101720 p a g e 1 p c - r e l a t
0101740 i v e a d d r e s s f o r
0101760 a b s o l u t e a d d r e s s
0102000 " X " \r ; w r i t e " X
0102020 + D " . \r ; T o g e n e r a
0102040 t e a n a b s o l u t e (
0102060 r u n t i m e ) p a g e 1
0102100 376 001 \0 ] 027 a d d r e s s f o r
0102120 l a b e l " X " \r ; w r
0102140 i t e " X - D " . \r \r ; E t
0102160 h e r n e t c o n t r o l w
0102200 o r d s a d d r e s s e s ,
0102220 f o r r e f e r e n c i n g
0102240 r e l a t i v e \r ; t o t h
0102260 e p a g e 1 p o r t i o n
0102300 o f t h e b o o t l o a
0102320 d e r . \r r E P L o c = e P
0102340 L o c + D \r r E B L o c = e
0102360 B L o c + D \r r E E L o c =
0102400 e E L o c + D \r r E L L o c =
0102420 e L L o c + D \r r E I C L o c
0102440 = e I C L o c + D \r r E I P
0102460 L o c = e I P L o c + D \r r
0102500 E O C L o 376 001 \0 374 210 c = e O
0102520 C L o c + D \r r E O P L o c =
0102540 e O P L o c + D \r r E H L o c
0102560 = e H L o c + D \r \r ; R a
0102600 n d o m p a g e 1 w o r d
0102620 s w e u s e a s t e m p
0102640 o r a r i e s . \r ; A l l a
0102660 r e a s s u m e d t o b e
0102700 i n i t i a l i z e d t o
0102720 z e r o . \r \r ; 4 0 0 - 4 1 4
0102740 a r e u s e d f o r s c
0102760 r a t c h \r \r a c k P a c k e t
0103000 = 4 3 1 + D \t ; 1 3 . w
0103020 o r d s i n w h i c h A c
0103040 k p a c k e t i s b u i l
0103060 t . \r \t \t \t ; T h i s i s
0103100 t h e c u r s o r 376 001 \0 024 C
0103120 b i t m a p ! \r e r r c n t =
0103140 5 6 4 + D \t \t ; O u t p u t
0103160 e r r o r c o u n t d o w n
0103200 \r r e c r e t = 5 6 5 + D \t
0103220 \t ; R e t u r n f r o m R
0103240 e c e i v e E F T P P a c k e t
0103260 \r s e q N u m = 5 6 6 + D \t
0103300 \t ; C u r r e n t E F T P
0103320 s e q u e n c e n u m b e r \r
0103340 g o o d D e s t S o u r c e =
0103360 5 6 7 + D \t ; E t h e r n e
0103400 t a d d r e s s o f m e /
0103420 p a r t n e r \r m a x L e n g t
0103440 h = 6 1 1 + D \t ; M a x
0103460 i n p u t p a c k e t l e n
0103500 g t h ( 2 6 9 o r 1 2 ) 376
0103520 001 \0 } 022 \r d a l l y T i m e o u
0103540 t = 6 1 2 + D \t ; T i m e
0103560 o u t f o r e n d d a l l
0103600 y i f n o n z e r o \r e n d
0103620 F l a g = 6 1 3 + D \t \t ;
0103640 Z e r o i f p a c k e t w
0103660 a s D a t a , n o n z e r o
0103700 i f E n d \r \r \r . a c k I D
0103720 1 : a c k P a c k e t - D + p
0103740 u p I D + 1 ; P o i n t e
0103760 r t o A c k ' s s e q u e
0104000 n c e n u m b e r \r \f \r ; P
0104020 a g e 1 p o r t i o n o f
0104040 b o o t l o a d e r ( c o
0104060 n t ' d ) \r ; S u b r o u t i
0104100 n e s c a l l e d f r o m
0104120 b o t h 376 001 \0 } 306 p a g e 0
0104140 a n d p a g e 1 \r \r ; R
0104160 e c e i v e E F T P p a c k
0104200 e t \r ; \t 2 / w h e r e t o
0104220 p u t i t i n m e m o r
0104240 y \r ; A c 2 i s u n c h a
0104260 n g e d u p o n r e t u r n
0104300 . \r ; e n d F l a g w i l l
0104320 b e z e r o i f a D a
0104340 t a w a s r e c e i v e d ,
0104360 n o n z e r o i f E n d .
0104400 \r ; I f d a l l y T i m e o
0104420 u t i s n o n z e r o , i
0104440 t w i l l b e c o u n t e
0104460 d d o w n a n d t h e \r ;
0104500 r o u t i n e w i l l r e
0104520 t u r n i f i 376 001 \0 205 $ t
0104540 r e a c h e s z e r o . \r \r R
0104560 e c e i v e E F T P P a c k e t
0104600 : \r \t s t a 3 r e c r e t \t
0104620 \t ; S a v e r e t u r n \r \t
0104640 s t a 2 r E I P L o c \t \t ;
0104660 S e t i n p u t p o i n t
0104700 e r \r \r ; A w a i t a n e
0104720 w p a c k e t \r r e c 1 : \t l
0104740 d a 0 m a x L e n g t h \t \t
0104760 ; S e t c o u n t \r \t s t a
0105000 0 r E I C L o c \r \t m k z e
0105020 r o 0 0 \t \t ; Z e r o p
0105040 o s t l o c a t i o n \r \t s t
0105060 a 0 r E P L o c \r \t l d a
0105100 0 c 2 \t \t ; e t h e r I n p
0105120 u t C o m m a n d = 2 \r 376 001
0105140 \0 217 266 \t s i o \t \t \t ; F i r e
0105160 u p r e c e i v e r \r r e c
0105200 1 a : \t l d a 0 r E P L o c
0105220 \t \t ; W a i t f o r s o m
0105240 e t h i n g t o h a p p e n
0105260 \r \t m o v s 0 1 s z r \r \t
0105300 j m p r e c 1 b \t \t ; S o
0105320 m e t h i n g h a p p e n e d
0105340 , c h e c k i t \r \t l d a
0105360 0 d a l l y T i m e o u t \t ;
0105400 N o a c t i v i t y y e t
0105420 , c h e c k t i m e o u t \r
0105440 \t s z 0 0 \r \t d s z d a
0105460 l l y T i m e o u t \t ; O n e
0105500 i s s e t , c o u n t i
0105520 t d o w n \r \t j m p r e
0105540 c 1 a 376 001 \0 g 216 \t \t ; N o t
0105560 s e t o r n o t y e t t
0105600 i m e d o u t \r \t j m p @ r
0105620 e c r e t \t \t ; T i m e d o
0105640 u t , r e t u r n n o w \r \r
0105660 ; A p a c k e t h a s a
0105700 r r i v e d . A c c e p t
0105720 i f g o o d i n p u t o r
0105740 b u f f e r o v e r r u n .
0105760 \r ; T h i s c o d e i s
0106000 a b i t m y s t e r i o u s
0106020 b e c a u s e t h e w a y
0106040 i t w o r k s i s t o \r
0106060 ; s e t a c 1 = 1 0 0 0
0106100 i f f t h e s t a t u s
0106120 i s a c c e p t a b l e .
0106140 T h i s t h e 376 001 \0 \f 341 n g
0106160 e t s \r ; c o m p a r e d w
0106200 i t h t h e i n c o m i n g
0106220 E t h e r n e t t y p e w
0106240 h i c h s h o u l d b e 1
0106260 0 0 0 . \r r e c 1 b : \t l d a
0106300 3 c 3 7 7 \r \t a n d s 3 1
0106320 \t \t ; A c 1 _ 1 0 0 0 i
0106340 f f p o s t c o d e = 2
0106360 \r \t s n e 0 3 \t \t \t ; G o
0106400 o d n o r m a l i n p u t
0106420 d o n e s t a t u s ? \r \t l
0106440 d a 1 c 1 0 0 0 \t \t ; Y e
0106460 s , m a k e i t l o o k
0106500 l i k e p o s t 2 \r \r ; E
0106520 n s u r e t h a t i t i s
0106540 a n E F T P D a t a 376 001 \0
0106560 ) 343 o r E n d f r o m t
0106600 h e c o r r e c t p a r t n
0106620 e r \r \t l d a 0 e t h e r T
0106640 y p e 2 \t ; G e t e t h e
0106660 r n e t t y p e w o r d \r \t
0106700 s e 0 1 \t \t \t ; I s i t
0106720 a P u p ? ( 1 0 0 0 ) \r \t
0106740 j m p r e c 1 \t \t ; N o ,
0106760 i g n o r e \r \t l d a 0 e
0107000 t h e r A d r 2 \t ; G e t
0107020 d e s t i n a t i o n / s o u r
0107040 c e w o r d \r \t l d a 1 g
0107060 o o d D e s t S o u r c e \t ;
0107100 C o r r e c t p a r t n e r ?
0107120 \r \t s e 0 1 \r \t j m p r
0107140 e c 1 \t \t ; N o , i g n o r
0107160 e 376 001 \0 c b ( s h o u l d r
0107200 e a l l y a b o r t ) \r \t l d
0107220 a 0 p u p T y p e 2 \t \t ;
0107240 G e t P u p t y p e \r \t a
0107260 n d 3 0 \r \t l d a 1 c 3
0107300 0 \t \t ; S w i t c h o n i
0107320 t \r \t s u b 0 1 s n r \r \t
0107340 j m p r e c 3 \t \t ; G o t
0107360 D a t a p a c k e t \r \t i n
0107400 c 1 0 \r \t i n c 0 0 s
0107420 z r \t \t ; S k i p i f E n
0107440 d \r \t j m p r e c 1 \t \t ;
0107460 N e i t h e r D a t a n o r
0107500 E n d , i g n o r e \r r e c
0107520 3 : \t s t a 1 e n d F l a g
0107540 \t \t ; S e t n o n z e r o
0107560 i f t h i s 376 001 \0 022 s i s
0107600 a n E n d \r \r ; G o t a n
0107620 E F T P D a t a o r e n
0107640 d p a c k e t . \r ; N o w
0107660 c h e c k s e q u e n c e n
0107700 u m b e r a n d s e n d A
0107720 c k \r \t l d a 0 p u p I D +
0107740 1 2 \t \t ; G e t p a c k e
0107760 t s e q u e n c e n u m b e
0110000 r \r \t s t a 0 @ . a c k I D
0110020 1 \t \t ; S e t i t f o r
0110040 p o s s i b l e A c k \r \t l d
0110060 a 1 s e q N u m \t \t ; G e
0110100 t e x p e c t e d s e q u e
0110120 n c e n u m b e r \r \t s u b
0110140 1 0 s n r \t \t ; I s i t
0110160 t h e r i g h t o 376 001 \0 357
0110200 S n e ? \r \t j m p r e c 4 \t
0110220 \t ; Y e s \r \t i n c 0 0
0110240 s n r \t \t ; N o , r e t r a
0110260 n s m i s s i o n o f l a s
0110300 t o n e ? \r \t j s r D o E
0110320 t h e r O u t p u t \t ; Y e s
0110340 , a c k i t \r \t j m p r e
0110360 c 1 \t \t ; I g n o r e i t
0110400 a n d l o o k f o r n e x
0110420 t \r \r ; H e r e w h e n g
0110440 o t a n e w p a c k e t \r
0110460 r e c 4 : \t i s z s e q N u m
0110500 \t \t ; A d v a n c e s e q u
0110520 e n c e n u m b e r \r \t l d a
0110540 3 r e c r e t \t \t ; R e s
0110560 t o r e r e t u r n p c \r \t
0110600 \t 376 001 \0 032 J \t \t ; F a l l i
0110620 n t o D o E t h e r O u t p u
0110640 t \r \f \r ; P a g e 1 p o r
0110660 t i o n o f b o o t l o a
0110700 d e r ( c o n t ' d ) \r \r ;
0110720 D o E t h e r n e t o u t p
0110740 u t \r ; A s s u m e s t h e
0110760 p a c k e t a n d e O P L
0111000 o c a n d e O C L o c a r
0111020 e s e t u p \r ; D o e s
0111040 n o t c l o b b e r a c 2 \r
0111060 \r D o E t h e r O u t p u t : \r
0111100 \t l d a 1 k 7 7 7 \r \t n e g
0111120 l 1 0 \t \t ; D e l a y a
0111140 b o u t 2 m s t o e n s
0111160 u r e t h a t \r \t i n c 0
0111200 0 s z r \t 376 001 \0 @ > \t ; o
0111220 u r a c k i s h e a r d \r
0111240 k 7 7 7 : \t 7 7 7 \t \t \t ; (
0111260 O t h e r w i s e k n o w n
0111300 a s " j m p . - 1 " ) \r \t s
0111320 t a 0 r E P L o c \t \t ; Z
0111340 e r o p o s t l o c a t i o
0111360 n \r \t s t a 0 r E L L o c \t
0111400 \t ; Z e r o l o a d l o c
0111420 a t i o n \r \t s t a 0 r E I
0111440 C L o c \t \t ; Z e r o i n p
0111460 u t c o u n t l o c a t i o
0111500 n \r \t m k o n e 0 0 \t \t ;
0111520 e t h e r O u t p u t C o m m a
0111540 n d = 1 \r \t s i o \t \t \t ;
0111560 S t a r t o u t p u t \r \t l d
0111600 a 0 r E P L o c \t 376 001 \0 ' 221
0111620 \t ; W a i t f o r s o m e
0111640 t h i n g t o h a p p e n \r
0111660 \t s n z 0 0 \r \t j m p .
0111700 - 2 \r \t s n e 0 1 \t \t \t ;
0111720 G o o d o u t p u t d o n e
0111740 ? ( = 7 7 7 ) \r \t j m p
0111760 0 3 \t \t ; Y e s , d o n
0112000 e , r e t u r n \r \t d s z e
0112020 r r c n t \t \t ; N o , c h e
0112040 c k e r r o r c o u n t e r
0112060 \r \t j m p D o E t h e r O u
0112100 t p u t \t ; R e t r y \r \r ;
0112120 I f w e g e t t o o m a
0112140 n y e r r o r s , p r o b a
0112160 b l y t h e E t h e r n e t
0112200 i n t e r f a c e \r ; i s
0112220 376 001 \0 C N b r o k e n , s o
0112240 w e s h o u l d r e s e t
0112260 a n d g i v e u p l e s t
0112300 w e p o l l u t e \r ; t h
0112320 e E t h e r n e t i n d e f
0112340 i n i t e l y \r B o m b : \t l d
0112360 a 0 c 3 \t \t ; e t h e r R
0112400 e s e t C o m m a n d \r \t s i o
0112420 \r c 4 0 0 : \t 4 0 0 \t \t \t ; (
0112440 O t h e r w i s e k n o w n
0112460 a s " j m p . " ) \r \f \r ;
0112500 * * M a i n p a g e 1 p
0112520 r o g r a m * * \r ; C o n t
0112540 r o l r e s u m e s h e r e
0112560 w h e n t h e p a g e 0
0112600 c o d e i s f i n i s h e
0112620 d . \r ; 376 001 \0 \a z W h e n w
0112640 e g e t h e r e , t h e
0112660 s e c o n d d a t a p a c k
0112700 e t o f t h e t r a n s f
0112720 e r h a s \r ; b e e n r e
0112740 c e i v e d ( t h e o n e
0112760 d e s t i n e d f o r p a g
0113000 e 0 ) a n d n o w r e s
0113020 i d e s \r ; i n p a g e 2
0113040 , a n d t h e a c ' s a
0113060 r e s e t u p s u c h t
0113100 h a t b l t w i l l m o v
0113120 e \r ; t h e d a t a t o
0113140 p a g e 0 . T h i s c o
0113160 d e ' s r e s p o n s i b i l
0113200 i t y i s t o r e c e i v
0113220 e \r ; t h e r e 376 001 \0 S L m
0113240 a i n i n g p a g e s o f
0113260 t h e t r a n s f e r a n d
0113300 s t o r e t h e m s t a r
0113320 t i n g a t \r ; p a g e 2
0113340 . T h e f o l l o w i n g
0113360 v a r i a b l e s a r e a
0113400 l r e a d y s e t u p : \r ;
0113420 \t g o o d D e s t S o u r c e \t
0113440 e x p e c t e d E t h e r n e
0113460 t d e s t / s o u r c e w o
0113500 r d \r ; \t s e q N u m \t \t t h e
0113520 n e x t e x p e c t e d E
0113540 F T P s e q u e n c e n u m
0113560 b e r ( 2 ) \r ; \t a c 2 \t \t p
0113600 o i n t s t o p l a c e t
0113620 o s t o r e n e x t p a 376
0113640 001 \0 365 267 c k e t \r ; \t \t \t ( 1 0
0113660 0 0 m i n u s t h e o f f
0113700 s e t p u p C o n t e n t s )
0113720 \r ; A l s o , a n A c k
0113740 p a c k e t h a s a l r e a
0113760 d y b e e n b u i l t a t
0114000 a c k P a c k e t . \r \r C o n
0114020 t i n u e B o o t : \r \t b l t \t
0114040 \t \t ; C o p y d a t a t o
0114060 p a g e 0 \r \r ; T h e m
0114100 a i n l o o p o f t h e
0114120 E F T P b o o t l o a d s
0114140 e q u e n c e . \r ; F i r s t
0114160 , s a v e a w a y t h e
0114200 s t u f f a t t h e e n d
0114220 o f t h e p r e v i o u s
0114240 p a g 376 001 \0 260 017 e \r ; t h a
0114260 t w i l l g e t c l o b b
0114300 e r e d b y t h e n e w
0114320 P u p ' s h e a d e r . \r ;
0114340 L o c a t i o n s 4 0 0 - 4 1
0114360 3 a r e u s e d f o r s
0114400 c r a t c h . \r b o o t l p : \t
0114420 m k m i n u s o n e 0 0 \t \t
0114440 ; C o m p u t e f i r s t
0114460 s o u r c e a d r - 1 \r \t a
0114500 d d 2 0 \r \t l d a 3 m d
0114520 1 2 \t \t ; - 1 2 . ( n u m b
0114540 e r o f w o r d s ) \r \t l d
0114560 a 1 c 3 7 7 \t \t ; C o m p
0114600 u t e p o i n t e r t o l
0114620 a s t w o r d o f \r \t s u b
0114640 3 1 \t \t \t ; 376 001 \0 202 356 s
0114660 a v e a r e a \r \t b l t \t \t \t
0114700 ; S a v e t h e d a t a \r
0114720 \r ; N o w r e c e i v e t
0114740 h e n e x t D a t a ( o r
0114760 E n d ) p a c k e t \r \t j s
0115000 r R e c e i v e E F T P P a c
0115020 k e t \r \r ; N o w r e s t o
0115040 r e t h e c l o b b e r e d
0115060 r e g i o n \r \t l d a 0 c
0115100 3 7 7 \t \t ; P o i n t e r t
0115120 o s t a r t o f s a v e
0115140 a r e a - 1 \r \t l d a 3 m
0115160 d 1 2 \t \t ; - 1 2 . ( n u m
0115200 b e r o f w o r d s ) \r \t c
0115220 o m 3 1 \t \t \t ; C o m p u
0115240 t e p o i n t e r t o 376 001
0115260 \0 272 241 l a s t w o r d o f \r
0115300 \t a d d 2 1 \t \t \t ; c l
0115320 o b b e r e d r e g i o n \r \t
0115340 b l t \t \t \t ; M o v e t h e
0115360 d a t a b a c k \r \r ; U n
0115400 l e s s m e m o r y i s n
0115420 o w f u l l , a d v a n c e
0115440 t h e p o i n t e r a n d
0115460 r e p e a t . \r ; I f w e
0115500 j u s t r e a d i n t o
0115520 t h e l a s t p a g e o f
0115540 m e m o r y , s e t t h e
0115560 p o i n t e r t o \r ; a
0115600 s c r a t c h r e g i o n a
0115620 t 4 0 0 a n d s e t t h
0115640 e c o u n t s o t h a t
0115660 o n l 376 001 \0 231 245 y a m i n i
0115700 m u m - \r ; l e n g t h P u
0115720 p ( e . g . , t h e E n d
0115740 t h a t w e a r e e x p
0115760 e c t i n g ) w i l l b e \r
0116000 ; a c c e p t e d . \r \t l d a
0116020 1 c 4 0 0 \t \t ; A m o u n
0116040 t t o a d v a n c e p o i
0116060 n t e r b y \r \t s e 1 2 \t
0116100 \t \t ; S k i p i f a l r e
0116120 a d y a t s c r a t c h r
0116140 e g i o n \r \t a d d 1 2 \t
0116160 \t ; N o r m a l l y , a d v
0116200 a n c e p o i n t e r \r \t l d
0116220 a 0 e n d F l a g \r \t l d a
0116240 3 m e m O v e r f l o w \r \t
0116260 s n z 0 0 \t 376 001 \0 A E \t \t ;
0116300 W a s a n E n d r e c e
0116320 i v e d ? \r \t s n e 2 3 \t \t
0116340 \t ; O r b e y o n d e n d
0116360 o f m e m o r y ? \r \t m o
0116400 v 1 2 s k p \t \t ; Y e s
0116420 , s e t p o i n t e r t o
0116440 4 0 0 \r \t j m p b o o t l
0116460 p \t \t ; N o , c o n t i n u
0116500 e n o r m a l l y \r \t l d a
0116520 1 d 1 3 \t \t ; L i m i t p
0116540 a c k e t l e n g t h t o
0116560 m i n i m u m \r \t s t a 1 m
0116600 a x L e n g t h \r \t s n z 0
0116620 0 \t \t \t ; R e c e i v e d E
0116640 n d ? \r \t j m p b o o t l p
0116660 \t \t ; N o , c o n t i 376 001 \0
0116700 214 257 n u e \r \t d s z d a l l y
0116720 T i m e o u t \t ; Y e s , e
0116740 n a b l e t i m e o u t ( s
0116760 e t t o - 1 ) \r \t j s r R
0117000 e c e i v e E F T P P a c k e t
0117020 \t ; A w a i t s e c o n d
0117040 E n d o r t i m e o u t \r \t
0117060 l d a 0 c 3 \t \t ; R e s e
0117100 t t h e E t h e r n e t \r \t
0117120 s i o \r \t j m p @ 0 \t \t \t ;
0117140 J u m p i n t o t h e b o
0117160 o t l o a d ! \r \r m e m O v e r
0117200 f l o w : 1 7 7 0 0 0 - 1 2 .
0117220 ; W h e r e a c 2 w i
0117240 l l p o i n t w h e n m e
0117260 m o r y i s f u l l \r \r \r ;
0117300 * 376 001 \0 1 001 * W a r n i n g
0117320 * * \r ; T h e l a s t 1
0117340 2 w o r d s o f p a g e
0117360 1 g e t c l o b b e r e d
0117400 d u r i n g t h e a c t o
0117420 f \r ; r e c e i v i n g p a
0117440 g e 2 . T h i s i s o
0117460 k s i n c e t h o s e 1 2
0117500 w o r d s a r e s a v e d
0117520 \r ; a n d r e s t o r e d .
0117540 H o w e v e r , t h e s
0117560 t u f f i n t h o s e w o
0117600 r d s m u s t n o t b e \r
0117620 ; e x e c u t e d o r r e
0117640 f e r e n c e d w h i l e i
0117660 n t h e c l o b b e r e d
0117700 s t a t e ! \r 376 \0 \a 251 331 \r \t . e
0117720 n d \r 377 \0 \0 E t h e r B o o t C
0117740 a l l e r . b c p l \0 373 233 + 272 ^
0117760 \0 \0 376 001 \0 350 P / / E t h e r B
0120000 o o t C a l l e r . b c p l -
0120020 - C a l l s E t h e r B o o
0120040 t L o a d e r \r / / C o p y r
0120060 i g h t X e r o x C o r p o
0120100 r a t i o n 1 9 8 3 \r / / L
0120120 a s t m o d i f i e d J u n
0120140 e 3 0 , 1 9 8 3 9 : 2 3
0120160 P M b y B o g g s \r \r e x
0120200 t e r n a l \r [ \r / / o u t g
0120220 o i n g p r o c e d u r e \r E
0120240 t h e r B o o t \r \r / / i n c
0120260 o m i n g s t a t i c s \r b o
0120300 o t L o a d e r P a c k e t ;
0120320 m a y D a y P a c k e t \r ] \r \r
0120340 / / - - - - - - - - - - - - - -
0120360 - - - - - - - 376 001 \0 302 252 - - - -
0120400 - - - - - - - - - - - - - - - -
*
0120500 \r l e t E t h e r B o o t ( b
0120520 f n , n i l , p d h , d P
0120540 o r t , s P o r t ; n u m a
0120560 r g s n a ) b e \r / / - - -
0120600 - - - - - - - - - - - - - - - -
*
0120720 - - - - - - \r / / b f n i s
0120740 t h e b o o t f i l e n
0120760 u m b e r t o r e q 376 001 \0 026
0121000 233 u e s t i n t h e m a y
0121020 d a y p a c k e t . \r / / r
0121040 e t u r n O n F a i l h a s
0121060 b e e n d e i m p l e m e n t
0121100 e d . \r / / p d h i s t h
0121120 e E t h e r n e t h o s t
0121140 t o w h i c h t h e m a y
0121160 d a y i s s e n t ( d e f
0121200 a u l t i s 0 : b r o a d
0121220 c a s t ) . \r / / d P o r t
0121240 i s p u t i n t h e m a
0121260 y d a y P u p ; i t o v e
0121300 r r i d e s p d h . \r / / s
0121320 P o r t i s p u t i n t
0121340 h e m a y d a y P u p . \r [
0121360 \r m a y D a y P a c k e t ! 5
0121400 = 376 001 \0 366 352 b f n \r i f n a
0121420 g r 2 t h e n \r [ \r
0121440 m a y D a y P a c k e t !
0121460 0 = p d h l s h i f t 8
0121500 \r m a y D a y P a c k e t
0121520 ! 6 = p d h \r ] \r i f
0121540 n a g r 3 t h e n M y
0121560 M o v e B l o c k ( m a y D a y
0121600 P a c k e t + 6 , d P o r t ,
0121620 3 ) \r i f n a g r 4 t
0121640 h e n M y M o v e B l o c k (
0121660 m a y D a y P a c k e t + 9 ,
0121700 s P o r t , 3 ) \r ( t a b l e
0121720 [ 6 1 0 0 0 b ; 1 4 0 1 b
0121740 ] ) ( ) / / d i s a b l e
0121760 i n t e r r u p t s \r f o r
0122000 i = 0 376 001 \0 w 037 t o 2 5
0122020 5 d o 1 ! i = b o o t L
0122040 o a d e r P a c k e t ! i /
0122060 / c a n ' t c a l l a p r
0122100 o c e d u r e ! \r g o t o 6 \r
0122120 ] \r \r / / - - - - - - - - - - -
0122140 - - - - - - - - - - - - - - - -
*
0122240 - - - - - - - - - - - - - - \r a
0122260 n d M y M o v e B l o c k ( d
0122300 e s t , s r c , c n t ) b
0122320 e f o r i = 0 t o c
0122340 n t - 1 d o d e s t ! i =
0122360 s r c ! i \r / / - - - - - - -
0122400 - - - - - - - - - - - 376 \0 H Z |
0122420 - - - - - - - - - - - - - - - -
*
0122520 - - - - - - - \r 377 \0 \0 B o o t B
0122540 a s e . a s m \0 373 223 363 w [ \0 \0 376
0122560 001 \0 J N ; B o o t B a s e . a
0122600 s m - S e t s u p t h e
0122620 B C P L w o r l d . \r ; C
0122640 o p y r i g h t X e r o x C
0122660 o r p o r a t i o n 1 9 7 9 \r
0122700 ; L a s t m o d i f i e d
0122720 D e c e m b e r 2 7 , 1 9 7
0122740 8 2 : 0 2 P M b y B o
0122760 g g s \r \r ; I n c o m i n g
0123000 p r o c e d u r e s \r . b e x t
0123020 B a s i c B o o t I n i t ,
0123040 F u l l B o o t I n i t \r \r ;
0123060 O u t g o i n g s t a t i c s
0123100 \r . b e x t B o o t B L V ,
0123120 R u n B L V \r \r \t . s r e l \r \r
0123140 R u n B L V : \t . R u n B L V \r
0123160 B o o t 376 001 \0 272 + B L V : . B o
0123200 o t B L V \r U P E : \t . U P E \r
0123220 \r \t . n r e l \r \r \t 0 \t \t \t ;
0123240 s a c r i f i c a l w o r d
0123260 f o r B L D R \r \r \t m k z e r
0123300 o 0 0 \r \t s t a 0 @ l v
0123320 D i s p l a y \t ; t u r n o
0123340 f f d i s p l a y \r \t s t a
0123360 0 @ l v A c t i v e \t \t ; p
0123400 a r a n o i a . . . l o a d e r
0123420 d o e s t h i s t o o \r \t
0123440 m k m i n u s o n e 0 0 \r \t
0123460 s t a 0 @ l v K A d d r e s
0123500 s \t ; i n v a l i d a t e d
0123520 i s k a r m p o s i t i o n
0123540 \r \t e i r \r \r ; s e t u p
0123560 B C P L s t a c 376 001 \0 ! 240 k \r
0123600 \t l d a 3 @ l v R u n B L V
0123620 \t \t ; l a y o u t v e c t o
0123640 r f o r m a i n p r o g r
0123660 a m \r \t l d a 1 2 9 . 3 \t
0123700 \t ; e n d c o d e + 1 \r \t l d
0123720 a 2 @ l v B o o t B L V \t ;
0123740 l a y o u t v e c t o r f
0123760 o r B o o t B a s e \r \t l d a
0124000 0 2 9 . 2 \t \t ; e n d c
0124020 o d e + 1 \r \t s u b z # 1 0
0124040 s z c \t \t ; u s e t h e
0124060 b i g g e r o f t h e t w
0124100 o ( u n s i g n e d ) \r \t m
0124120 o v 0 1 \r \t s t a 1 3 3
0124140 5 \t \t ; s t a c k l i m i t
0124160 \r \t m o v 3 0 \r \t m o v 376 001
0124200 \0 341 372 2 1 \r \t l d a 2 f
0124220 i r s t F r a m e \r \t s t a 2
0124240 0 2 \t \t ; l o o p t o
0124260 s e l f \r \r ; c a l l O S
0124300 I n i t i a l i z a t i o n w
0124320 i t h l a y o u t v e c t o
0124340 r s a s a r g u m e n t s \r
0124360 \t j s r i i . B a s i c B o o
0124400 t I n i t \r \t 2 \r \t l d a 0
0124420 @ . F u l l B o o t I n i t \t
0124440 ; c a l l o n l y i f l
0124460 o a d e d \r \t s n z 0 0 \t \t
0124500 \t ; a s s u m e s U N D E F
0124520 S c o n t a i n 0 ! ! ! \r \t
0124540 j m p b o o t 1 \t \t ; a
0124560 h a c k o f t h e f i r s
0124600 t w 376 001 \0 234 273 a t e r \r \t l d
0124620 a 0 @ l v R u n B L V \r \t l
0124640 d a 1 @ l v B o o t B L V \r
0124660 \t j s r i i . F u l l B o o t
0124700 I n i t \r \t 2 \r \r ; s t a r
0124720 t t h e u s e r p r o g r
0124740 a m \r b o o t 1 : \t l d a 3
0124760 @ l v R u n B L V \t \t ; l a y
0125000 o u t v e c t o r \r \t m o v
0125020 3 0 \t \t \t ; f o r p a s s
0125040 i n g t o u s e r \r \t l d a
0125060 1 @ l v U P E \t \t ; d u m
0125100 m y u s e r p a r a m e t e
0125120 r s \r \t j s r @ 2 8 . 3 \t \t
0125140 ; f i r s t p r o c e d u r
0125160 e \r \t 2 \r \t j s r @ 3 5 3 \t
0125200 \t ; f i n i s 376 001 \0 250 234 h \r \r
0125220 . R u n B L V : \t . b l k 3 2
0125240 . \t ; C o p y o f r u n
0125260 f i l e ' s B L V \r . B o o t
0125300 B L V : \t . b l k 3 2 . \t ;
0125320 B o o t B a s e ' s B L V \r .
0125340 U P E : \t \t 0 \r \r l v U P E : \t
0125360 \t U P E \r l v R u n B L V : \t R
0125400 u n B L V \r l v B o o t B L V :
0125420 \t B o o t B L V \r \r f i r s t F
0125440 r a m e : \t 1 7 6 7 7 4 \r \r l v
0125460 D i s p l a y : \t 4 2 0 \r l v A
0125500 c t i v e : \t 4 5 3 \r l v K A d
0125520 d r e s s : \t 5 2 3 \r \r . B a s
0125540 i c B o o t I n i t : \t B a s i
0125560 c B o o t I n i t \r . F u l l B
0125600 o o t I n i t : \t F u l l 376 \0 020
0125620 D 213 B o o t I n i t \r \r \t . e n
0125640 d \r 377 \0 \0 T e l e S w a t . a s
0125660 m \0 373 223 363 w w \0 \0 376 001 \0 350 q ;
0125700 T e l e S w a t . a s m \r ; C
0125720 o p y r i g h t X e r o x C
0125740 o r p o r a t i o n 1 9 7 9 \r
0125760 ; L a s t m o d i f i e d
0126000 A u g u s t 1 0 , 1 9 7 9
0126020 5 : 2 4 P M b y B o g g
0126040 s \r \r ; o u t g o i n g p r
0126060 o c e d u r e s \r . e n t I n
0126100 L d , O u t L d \r \r ; i n c
0126120 o m i n g p r o c e d u r e s
0126140 \r . b e x t U p d a t e T i m
0126160 e r \r \r \t . s r e l \r \r I n L d
0126200 : \t \t . I n L d \r O u t L d : \t
0126220 \t . O u t L d \r \r i l 1 : \t \t .
0126240 i l 1 \r M o v e B l o c k : \t .
0126260 M o v e B l o c k \r u s e r 376 001
0126300 \0 3 371 C u r s o r : \t . u s e r
0126320 C u r s o r \r s w a t C u r s o
0126340 r : \t . s w a t C u r s o r \r e
0126360 t h e r S t a t e : \t . e t h e
0126400 r S t a t e \r p b i : \t \t . p b
0126420 i \r \r \t . n r e l \r \r \t \t \t ;
0126440 s t r u c t u r e P B I : \t /
0126460 / P a c k e t B u f f e r \r \t
0126500 \t \t ; [ \r e D e s t S r c =
0126520 0 \t \t ; e D e s t b y t e
0126540 ; e S r c b y t e \r e T y p
0126560 e = 1 \t \t ; e T y p e w
0126600 o r d \r \t \t \t ; / / T h e
0126620 P u p b e g i n s h e r e .
0126640 \r l e n g t h = 2 \t \t ; l
0126660 e n g t h w o r d \r t y p e
0126700 = 3 376 001 \0 326 a \t \t ; t r a n
0126720 s p o r t b y t e ; t y p e
0126740 b y t e \r p u p I D = 4 \t
0126760 \t ; i d w o r d 2 \r d P o
0127000 r t = 6 \t \t ; d P o r t :
0127020 @ P o r t \r s P o r t = 1
0127040 1 \t \t ; s P o r t : @ P o r
0127060 t \r a d d r e s s = 1 4 \t \t
0127100 ; a d d r e s s w o r d \r v
0127120 a l u e = 1 5 \t \t ; v a l
0127140 u e w o r d \r l e n B l o c k
0127160 = 1 6 \t \t ; l e n B l o c
0127200 k w o r d \r b l o c k = 1
0127220 7 \t \t ; b l o c k w o r d
0127240 m a x B l k L e n \r \t \t \t ; ]
0127260 \r \r m a x B l k L e n = 3 2
0127300 . \r l e n P B I 376 001 \0 222 355 =
0127320 2 + 1 1 + 3 + m a x B l k L e n
0127340 \r \r . l e n P B I : \t l e n P B
0127360 I \r \r e t h e r R e s e t : \t 3
0127400 \t ; r e s e t t h e E t h
0127420 e r n e t i n t e r f a c e \r
0127440 e t h e r I n p u t : \t 2 \t ;
0127460 s t a r t t h e E t h e r n
0127500 e t r e c e i v e r \r \r . e P
0127520 L o c : \t \t 6 0 0 \r . e E L o c
0127540 : \t \t 6 0 2 \r . e I C L o c : \t
0127560 6 0 4 \r . e I P L o c : \t 6 0 5
0127600 \r . e H L o c : \t \t 6 1 0 \r \f \r
0127620 ; C a l l w i t h i n t e
0127640 r r u p t s d i s a b l e d .
0127660 I t i s t h e c a l l
0127700 e r ' s r e s p o n s i 376 001 \0
0127720 270 u b i l i t y \r ; t o s
0127740 a v e a n d r e s t o r e
0127760 t h e i n t e r r u p t s y
0130000 s t e m s t a t e . \r ; R e
0130020 t u r n s t o t h e r e t
0130040 u r n a d d r e s s o f t
0130060 h e m o s t r e c e n t c
0130100 a l l o n O u t L d \r ;
0130120 w i t h A C 0 n o n z e r o
0130140 . \r . I n L d : \t j s r i i .
0130160 + 1 \t \t ; w e a r e g o i
0130200 n g t o u s e t h e E t
0130220 h e r n e t \r \t e t h e r S t
0130240 a t e \r \t m o v 3 0 \r \t l d
0130260 a 1 . e P L o c \t \t ; s o
0130300 s a v e i t s o l d s t
0130320 a t 376 001 \0 315 v e \r \t l d a 2
0130340 l e n E t h e r S t a t e \r \t j
0130360 s r i i . + 1 \r \t M o v e B
0130400 l o c k \r \r \t l d a 0 e t h
0130420 e r R e s e t \r \t s i o \t \t \t ;
0130440 r e s e t t h e i n t e r
0130460 f a c e \r \t l d a 1 c 3 7 7
0130500 \r \t a n d 1 0 \r \t s t a 0
0130520 @ . e H L o c \t \t ; o u r
0130540 h o s t a d d r e s s \r \r ;
0130560 e x c h a n g e c u r s o r s
0130600 \r \t j s r i i . + 1 \r \t u s
0130620 e r C u r s o r \r \t m o v 3
0130640 0 \t \t \t ; d e s t i n a t i o
0130660 n \r \t l d a 1 . c u r s o r
0130700 B i t M a p \t ; s o u r c e \r
0130720 \t l d a 2 376 001 \0 210 U l e n C
0130740 u r s o r \t \t ; l e n g t h \r
0130760 \t j s r i i . + 1 \t \t ; s a
0131000 v e u s e r c u r s o r \r \t
0131020 M o v e B l o c k \r \t l d a
0131040 0 . c u r s o r B i t M a p \t
0131060 ; d e s t i n a t i o n \r \t j
0131100 s r i i . + 1 \r \t s w a t C
0131120 u r s o r \r \t m o v 3 1 \t \t
0131140 \t ; s o u r c e \r \t l d a 2
0131160 l e n C u r s o r \t \t ; l e
0131200 n g t h \r \t j s r i i . + 1 \t
0131220 \t ; i n s t a l l s w a t
0131240 c u r s o r \r \t M o v e B l o
0131260 c k \r \r ; s e t u p t o r
0131300 e c e i v e a p a c k e t \r
0131320 . i l 1 : \t j s r i i 376 001 \0 351
0131340 303 . + 1 \r \t p b i \r \t s t a
0131360 3 @ . e I P L o c \r \t l d a
0131400 0 . l e n P B I \r \t s t a 0
0131420 @ . e I C L o c \r \t m k z e r
0131440 o 0 0 \r \t s t a 0 @ . e
0131460 P L o c \t \t ; d o n e w h e
0131500 n n o n z e r o \r \t l d a 0
0131520 e t h e r I n p u t \r \t s i o
0131540 \t \t \t ; s t a r t t h e r
0131560 e c e i v e r \r \r ; w a i t
0131600 f o r a p a c k e t t o
0131620 a r r i v e o r d a l l y
0131640 t o e x p i r e \r i l 2 : \t j
0131660 s r i i . + 1 \t \t ; k e e p
0131700 t h e c a l e n d a r c l
0131720 o c k u p d a t e d \r \t U p
0131740 d 376 001 \0 : 0 a t e T i m e r \r \t
0131760 l d a 0 d a l l y \r \t s n z
0132000 0 0 \t \t \t ; a r e w e
0132020 d a l l y i n g ? \r \t j m p
0132040 i l 3 \t \t ; n o \r \t l d a 1
0132060 @ . r t c \r \t s u b l # 1
0132100 0 s z c \t \t ; ( d a l l y -
0132120 @ r e a l T i m e C l o c k )
0132140 l e 0 ? \r \t j m p S w a p
0132160 R e p l y \t \t ; y e s . d a
0132200 l l y e x p i r e d \r i l 3 :
0132220 \t l d a 0 @ . e P L o c \t \t
0132240 ; r e c e i v e r s t a t u
0132260 s \r \t s n z 0 0 \t \t \t ; h
0132300 a s i t f i n i s h e d ? \r
0132320 \t j m p i l 2 \t \t ; n o \r
0132340 \f \r ; a 376 001 \0 < O p a c k e
0132360 t h a s a r r i v e d .
0132400 F i l t e r i t . \r \t l d a
0132420 3 @ . e I P L o c \t \t ; m a
0132440 k e a c 3 - > p b i \r \t l
0132460 d a 1 c 3 7 7 \r \t s e 0
0132500 1 \t \t \t ; g o o d r e c e i
0132520 v e r s t a t u s ? \r \t j m
0132540 p . i l 1 \t \t ; n o . r
0132560 e j e c t \r \r \t l d a 0 e D
0132600 e s t S r c , 3 \r \t a n d # 1
0132620 0 s n r \t \t ; z e r o s
0132640 o u r c e h o s t ? \r \t j m
0132660 p . i l 1 \t \t ; y e s .
0132700 r e j e c t \r \t m o v s 0 0
0132720 \r \t a n d # 1 0 s n r \t \t
0132740 ; b r o a d c a s t 376 001 \0 277 %
0132760 ? \r \t j m p . i l 1 \t \t ;
0133000 y e s . r e j e c t \r \r \t l
0133020 d a 0 e T y p e , 3 \r \t l d
0133040 a 1 t y p e P u p \r \t s e
0133060 0 0 \t \t \t ; d o e s i t
0133100 c l a i m t o b e a P u
0133120 p ? \r \t j m p . i l 1 \t \t ;
0133140 n o . r e j e c t \r \r \t l d
0133160 a 0 @ . e I C L o c \r \t l d
0133200 a 1 @ . e E L o c \r \t s u b
0133220 1 0 \t \t \t ; p a c k e t
0133240 l e n g t h r e p o r t e d
0133260 b y i n t e r f a c e \r \t l d
0133300 a 1 l e n g t h , 3 \r \t l d
0133320 a 2 c 5 \r \t a d d z r 2
0133340 1 \t \t ; l e n g t h p a c k
0133360 376 001 \0 307 264 e t c l a i m s t
0133400 o b e \r \t s e 1 0 \r \t j
0133420 m p . i l 1 \t \t ; t h e y
0133440 d i s a g r e e . r e j e c
0133460 t \r \r \t l d a 0 d P o r t +
0133500 1 , 3 \r \t s z 0 0 \t \t \t ;
0133520 h i g h h a l f o f d P o
0133540 r t . s o c k e t \r \t j m p
0133560 . i l 1 \t \t ; r e j e c t \r \t
0133600 l d a 0 d P o r t + 2 , 3 \r
0133620 \t l d a 1 s o c T e l e S w
0133640 a t \r \t s e 0 1 \t \t \t ; l
0133660 o w h a l f o f d P o r t
0133700 . s o c k e t \r \t j m p . i
0133720 l 1 \t \t ; r e j e c t \r \r ;
0133740 L o o k s g o o d s o f a
0133760 r . D 376 001 \0 352 ' i s p a t c
0134000 h o n p a c k e t t y p e
0134020 . \r \t l d a 0 t y p e , 3 \r
0134040 \t l d a 1 c 3 7 7 \r \t a n d
0134060 1 0 \t \t \t ; m a s k o f
0134100 f t r a n s p o r t b y t e
0134120 \r \t l d a 1 p t S w a t S t
0134140 o r e \r \t s n e 0 1 \t \t \t ;
0134160 p t S w a t S t o r e ? ( 2
0134200 0 0 b ) \r \t j m p S t o r e
0134220 \t \t ; y e s \r \t i n c 1 1
0134240 \r \t s n e 0 1 \t \t \t ; p t
0134260 S w a t F e t c h ? ( 2 0 1 b
0134300 ) \r \t j m p F e t c h \t \t ;
0134320 y e s \r \t i n c 1 1 \r \t s
0134340 n e 0 1 \t \t \t ; p t S w a
0134360 t S w a p ? ( 2 0 376 001 \0 022 l 2
0134400 b ) \r \t j m p S w a p \t \t ;
0134420 y e s \r \t i n c 1 1 \r \t s
0134440 n e 0 1 \t \t \t ; p t S w a
0134460 t S w a p R e p l y ? ( 2 0 3
0134500 b ) \r \t j m p S w a p R e p
0134520 l y \t \t ; y e s \r \t j m p .
0134540 i l 1 \t \t ; u n k n o w n t
0134560 y p e . r e j e c t \r \r . c
0134600 u r s o r B i t M a p : \t 4 3 1
0134620 \r l e n C u r s o r : \t 1 6 . \r
0134640 l e n E t h e r S t a t e : \t 9
0134660 . \r t y p e P u p : \t 1 0 0 0 \t
0134700 \t ; I ' m a P u p i n
0134720 a n E t h e r p a c k e t \r
0134740 s o c T e l e S w a t : \t 6 0 \t
0134760 \t ; w e l l k n o w n s 376
0135000 001 \0 x 0 e r v e r s o c k e t
0135020 \r c 3 7 7 : \t \t 3 7 7 \r p t S w
0135040 a t S t o r e : \t 2 0 0 \r l e n
0135060 D a l l y : \t 5 * 2 7 . \t \t ;
0135100 ~ 5 s e c o n d s i n u n
0135120 i t s o f R T C t i c k s
0135140 ( 3 8 m s ) \r c 5 : \t \t 5 \r
0135160 d a l l y : \t \t 0 \r . r t c : \t
0135200 \t 4 3 0 \t \t ; - > r e a l
0135220 t i m e c l o c k \r \f \r . O u
0135240 t L d : \t s t a 3 O u t L d
0135260 R e t \r \t m k z e r o 0 0 \r
0135300 \t s t a 0 @ . d u m p e r F
0135320 l g \t ; p a g e 0 i s O
0135340 K \r \t j m p 1 3 \r \r O u t L
0135360 d R e t : \t . b l k 1 \r . d u
0135400 m p e r 376 001 \0 205 7 F l g : \t 7 0
0135420 6 \r \r S w a p R e p l y : l d
0135440 a 0 d a l l y \r \t s n z 0
0135460 0 \t \t \t ; a r e w e d a
0135500 l l y i n g ? \r \t j m p s a
0135520 1 \t \t ; n o . h m m m . \r
0135540 \t l d a 0 . c u r s o r B i
0135560 t M a p \r \t j s r i i . + 1 \t
0135600 \t ; r e s t o r e u s e r
0135620 c u r s o r \r \t u s e r C u r
0135640 s o r \r \t m o v 3 1 \r \t l d
0135660 a 2 l e n C u r s o r \r \t j
0135700 s r i i . + 1 \r \t M o v e B
0135720 l o c k \r \t l d a 0 . e P L
0135740 o c 1 \t \t ; r e s t o r e E
0135760 t h e r n e t s t a t e \r \t j
0136000 s r i i . + 1 \r 376 001 \0 322 V \t
0136020 e t h e r S t a t e \r \t m o v
0136040 3 1 \r \t l d a 2 l e n E t
0136060 h e r S t a t e \r \t j s r i i
0136100 . + 1 \r \t M o v e B l o c k \r
0136120 \t m k z e r o 1 1 \t \t ; n
0136140 o l o n g e r d a l l y i n
0136160 g \r \t s t a 1 d a l l y \r \t
0136200 l d a 3 O u t L d R e t \r \t
0136220 j m p 1 3 \t \t \t ; r e s u
0136240 m e u s e r p r o g r a m \r
0136260 \r S t o r e : \t l d a 0 v a
0136300 l u e , 3 \r \t s t a 0 @ a d
0136320 d r e s s , 3 \r \t j m p S e n
0136340 d B l k \r \r F e t c h : \t l d a
0136360 0 @ a d d r e s s , 3 \r \t s
0136400 t a 0 v a l u e , 3 \t \t 376 001
0136420 \0 T 231 ; f a l l t h r o u g
0136440 h i n t o S e n d B l k \r \r
0136460 ; s e e i f u s e r i s
0136500 r e q u e s t i n g a b l
0136520 o c k . \r S e n d B l k : l d a
0136540 0 l e n g t h , 3 \r \t l d a
0136560 1 l e n A c k P u p \r \t s g
0136600 e u 0 1 \t \t ; l o n g e
0136620 n o u g h t o r e q u e s t
0136640 a b l o c k ? \r \t j m p
0136660 s b 1 \t \t ; n o \r \t l d a 2
0136700 l e n B l o c k , 3 \r \t s n z
0136720 2 2 \t \t \t ; i s h e r
0136740 e q u e s t i n g o n e ? \r \t
0136760 j m p s b 1 \t \t ; n o \r \t
0137000 l d a 1 . m a x B l k L e n
0137020 \r \t s 376 001 \0 350 W g e u 1 2 \r
0137040 \t m o v 1 2 \t \t ; M a x
0137060 ( r e q u e s t e d l e n g t
0137100 h , o u r l i m i t ) \r \t s
0137120 t a 2 l e n B l o c k , 3 \t
0137140 ; # w o r d s w e a r e
0137160 s e n d i n g \r \t n e g 2
0137200 0 \r \t l d a 1 a d d r e s s
0137220 , 3 \r \t a n d 0 1 \t \t \t ;
0137240 s o u r c e b a s e a d d r
0137260 e s s = a d d r e s s &
0137300 - l e n g t h \r \t l d a 0 .
0137320 b l o c k \r \t a d d 3 0 \t \t
0137340 \t ; d e s t i n a t i o n =
0137360 P B I . b l o c k \r \t j s r i
0137400 i . + 1 \t \t ; m o v e t h
0137420 e b l o c k 376 001 \0 370 221 i n t
0137440 o t h e p a c k e t \r \t M
0137460 o v e B l o c k \r \t j s r i i
0137500 . + 1 \r \t p b i \r s b 1 : \t m
0137520 k z e r o 0 0 \r \t j m p S
0137540 e n d A c k \r \r . m a x B l k L
0137560 e n : \t m a x B l k L e n \r . b
0137600 l o c k : \t \t b l o c k \r \r S w
0137620 a p : \t m k z e r o 0 0 \r \t
0137640 s t a 0 l e n B l o c k , 3
0137660 \r \t l d a 0 l e n D a l l y
0137700 \r \t l d a 1 @ . r t c \r \t a
0137720 d d 1 0 \t \t \t ; f a l l
0137740 t h r o u g h i n t o S e n
0137760 d A c k \r \f \r S e n d A c k : s
0140000 t a 0 d a l l y \r \r \t l d a
0140020 1 l e n C u r s o r \t 376 001 \0
0140040 245 017 \t ; I n v e r t t h e
0140060 c u r s o r \r \t n e g 1 1 \r
0140100 \t l d a 2 . c u r s o r B i
0140120 t M a p \r s a 2 : \t l d a 0
0140140 0 2 \r \t c o m 0 0 \r \t s t
0140160 a 0 0 2 \r \t i n c 2 2
0140200 \r \t i n c 1 1 s z r \r \t
0140220 j m p s a 2 \r \r \t l d a 0
0140240 e D e s t S r c , 3 \t ; e x c
0140260 h a n g e E t h e r n e t a
0140300 d d r e s s e s \r \t m o v s 0
0140320 0 \r \t s t a 0 e D e s t S
0140340 r c , 3 \r \r \t l d a 2 l e n
0140360 B l o c k , 3 \r \t m o v z l 2
0140400 2 \t \t ; c o n v e r t t o
0140420 b y t e s \r \t l d a 1 l e
0140440 n A 376 001 \0 001 \f c k P u p \r \t a d
0140460 d 1 2 \r \t s t a 2 l e n
0140500 g t h , 3 \t \t ; P u p . l e n
0140520 g t h \r \r \t m k m i n u s o n e
0140540 0 0 \r \t a d d o r 0 2 \t
0140560 \t ; ( P u p . l e n g t h - 1
0140600 ) / 2 = c h e c k s u m o
0140620 f f s e t \r \t a d d 3 2 \t \t
0140640 \t ; P u p b a s e a d d r
0140660 e s s \r \t s t a 0 2 , 2 \t \t
0140700 ; 2 a c c o u n t s f o r
0140720 t h e e n c a p s u l a t i
0140740 o n \r \t \r \t l d a 0 p t S w
0140760 a t A c k \r \t s t a 0 t y p
0141000 e , 3 \t \t ; P u p . t y p e \r
0141020 \r \t l d a 0 s P o r t , 3 \t
0141040 \t ; e x c h 376 001 \0 375 036 a n g e
0141060 P u p p o r t s \r \t l d a
0141100 1 d P o r t , 3 \r \t s t a 0
0141120 d P o r t , 3 \r \t s t a 1
0141140 s P o r t , 3 \r \t l d a 0 s
0141160 P o r t + 1 , 3 \r \t l d a 1
0141200 d P o r t + 1 , 3 \r \t s t a 0
0141220 d P o r t + 1 , 3 \r \t s t a
0141240 1 s P o r t + 1 , 3 \r \t l d a
0141260 0 s P o r t + 2 , 3 \r \t l d
0141300 a 1 d P o r t + 2 , 3 \r \t s
0141320 t a 0 d P o r t + 2 , 3 \r \t
0141340 s t a 1 s P o r t + 2 , 3 \r
0141360 \r \t l d a 0 c 3 7 7 7 \t \t ;
0141400 d e l a y a b o u t 4 m
0141420 s t o e n s u r e t h a t
0141440 \r \t n e g 0 0 \t \t \t 376 001 \0
0141460 P ; o u r a c k i s h e
0141500 a r d \r \t i n c 0 0 s z r
0141520