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