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