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