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