$ od -c -N 50000 [Indigo]<Spruce>12>sources>SprucePrinPuffin.Sr!1 0000000 / / P R I N T \r 0000020 / / e r r o r s 1 0 0 0 \r / 0000040 / \r \r g e t " s p r u c e . d 0000060 " \r g e t " S p r u c e F i l 0000100 e s . d " \r g e t " O r b i t 0000120 . d " \r \r / / o u t g o i n g 0000140 p r o c e d u r e s \r e x t e 0000160 r n a l \r \t [ \r \t D r i v e P r 0000200 i n t e r \r \t ] \r \r \r / / i n 0000220 c o m i n g p r o c e d u r e 0000240 s \r e x t e r n a l \r \t [ \r \t S 0000260 p r u c e E r r o r \r \t M a x \r 0000300 \t M i n \r \t I n i t R a m \r / / 0000320 S p r u c e P r i n t \r \t A d d 0000340 T o B i n \r \t A n n o u n c e \r 0000360 \t A w a i t P a g e S y n c \r \t 0000400 P r i n t N e x t \r \t R e a d B 0000420 a n d s \r \t R e a d C l o c k \r 0000440 \t R e a d F o n t \r / / C U R S 0000460 O R \r \t C u r s o r C h a r \r \t 0000500 C u r s o r D i g i t \r / / S 0000520 p r u c e P r i n t R e s \r \t D 0000540 o F u n c \r \t R O S S t a t u s 0000560 \r / / T i m e r ( d e b u g 0000600 o n l y ) \r \t S e t T i m e r 0000620 \r \t T i m e r H a s E x p i r e 0000640 d \r / / O S \r \t Z e r o \r \t D i 0000660 s a b l e I n t e r r u p t s \r 0000700 \t E n a b l e I n t e r r u p t 0000720 s \r \t ] \r \r / / i n c o m \0 006 0000740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0000760 \0 \0 001 336 \0 \0 \0 \0 Z 360 \0 360 366 357 370 366 0001000 i n g s t a t i c s \r e x t e 0001020 r n a l \r \t [ \r \t s c a n T i c 0001040 k s \t \t / / # o f 3 8 u 0001060 s e c . t i c k s i n 4 0001100 p r i n t e r s c a n l i n 0001120 e s . \r \t l o g B a n d R e c o 0001140 r d S i z e \r \t b a n d R e c o 0001160 r d S i z e \r \t n P a g e s P r 0001200 i n t e d \r \t r o s 1 2 \r \t r o 0001220 s 1 3 \r \t D e b u g \r \t D e b u 0001240 g S y s t e m \r \t F u n c \r \t d 0001260 e b u g T r a i l \r \t k n o c k 0001300 R e s u l t \r \t n u m P r i n t 0001320 e d \r \t n u m M u s t P r i n t 0001340 \r \t C a p a b i l i t i e s \r \t 0001360 I n i t M e a s u r e / / 0001400 e n g i n e c o n t r o l m 0001420 o n i t o r i n g s t u f f \r 0001440 \t C l o s e M e a s u r e \r \t T 0001460 i c k M e a s u r e \r \t M e a s 0001500 u r e \r \t m e a s u r e T a b l 0001520 e \r \t x m F o n t s \t / / F o 0001540 n t d a t a w i l l b e 0001560 r e a d i n t o B a n k 1 0001600 v i a B a n k 0 , i f 0001620 s e t \r \t n R e c s \r \t L o w A 0001640 d r \r \t F A v a l u e \r \t n B a 0001660 n d s \r \t s t o p s P r i n t i 0001700 n g \r \t ] \r \r \f \r / / i n t e 0001720 r n a l s t a t i c s \r s \0 006 0001740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0001760 \0 \0 001 336 376 \0 \0 \0 X 360 \0 360 366 357 370 366 0002000 t a t i c \r \t [ \r \t r e v o l u 0002020 t i o n \r \t r e v s P e r P a g 0002040 e = 3 \r \t r o s C o u n t 0002060 = 0 / / P i m l i c o / p 0002100 u f f i n c o m m a n d c o 0002120 u n t \r \t r o s c p r o b = 0002140 0 \r \t p r i n t S e q = 1 0 \r 0002160 \t / / d e l a y ~ ~ ~ ~ d 0002200 e b u g g i n g : d e l a y 0002220 p e r p a g e t o s i m u 0002240 l a t e p r i n t i n g \r \t d 0002260 e b D e l a y = 0 / / d 0002300 e l a y n o d e l a y s t 0002320 d . \r \t / / d e l a y ~ ~ 0002340 ~ ~ \r \t ] \r \r / / F i l e - w 0002360 i d e s t r u c t u r e a n 0002400 d m a n i f e s t d e c l a 0002420 r a t i o n s . \r \r m a n i f e 0002440 s t [ \r \t s i g b a n d = 0002460 1 8 0 \r \t e T i c k s = 4 \r 0002500 \t t i m e O u t = 1 5 * 2 7 \r \t 0002520 p r i n t H y s t e r e s i s 0002540 = 1 5 / / p r i n t t h 0002560 i s m a n y b e f o r e a 0002600 l l o w i n g s u s p e n s i 0002620 o n , e a c h t i m e i n 0002640 \r \t / / ~ ~ a b o v e 0002660 n u m b e r m a y w a n t 0002700 t o i n c r e a s e f o r 0002720 l a r g e r u n s , o r \0 006 0002740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0002760 \0 \0 001 336 374 \0 \0 \0 V 360 \0 360 366 357 370 366 0003000 s o m e t h i n g ? \r \t R T C 0003020 = # 4 3 0 \r \t d e b u g T r a i 0003040 l S i z e = 1 0 * 3 \r \r \t / 0003060 / F a i l u r e C o d e r 0003100 a n g e s - - s e e R O S 0003120 C h e c k \r \t m a x N o t R e a 0003140 d y = 9 / / n o t r e 0003160 a d y , b u t p r o b a b l 0003200 y w i l l b e s o o n \r \t 0003220 m a x M a n u a l = 1 9 / 0003240 / M a n u a l i n t e r v e 0003260 n t i o n r e q u i r e d \r \t 0003300 m a x J a m = 9 9 \t / / E 0003320 r r o r d u r i n g o p e r 0003340 a t i o n \r \t m i n D o c u m e 0003360 n t E r r o r = 3 0 0 / / 0003400 D o c u m e n t i n h e r e 0003420 n t l y h a r d t o p r i 0003440 n t \r \r / / p r i n t S e q 0003460 v a l u e s : \r \t w a r m u p 0003500 = 1 \r \t s t a n d b y = 2 0003520 \r \t p r i n t i n g = 3 \r \t 0003540 e n d o f r u n = 4 \r \t l o 0003560 w p a p e r = 5 \r \t b a d f 0003600 e e d = 6 \r \t b a d s t r i 0003620 p = 7 \r \t c l e a r i n g = 0003640 8 \r \t m a l f C l e a r = 0003660 9 \r \t \t ] \r \r \f \r / / - - - - 0003700 - - - - - - - - - - - - - - - - 0003720 - - - - - - - - - - - - - - \0 006 0003740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0003760 \0 \0 001 336 372 \0 \0 \0 T 360 \0 360 366 357 370 366 0004000 - - - - - - - - - - - - - - - - 0004020 - - - - - - - - - \r / / P r i 0004040 n t \t \t I n i t i a l i z a t i 0004060 o n \r / / - - - - - - - - - - 0004100 - - - - - - - - - - - - - - - - * 0004160 - \r \r / / R e t u r n s - 1 0004200 i f p r i n t i n g i s 0004220 s u c c e s s f u l l y c o m 0004240 p l e t e d , e l s e n P a 0004260 g e s P r i n t e d , s o c 0004300 a n p i c k u p w h e r e 0004320 w e l e f t o f f . \r \r l 0004340 e t D r i v e P r i n t e r ( 0004360 p D o c , n P a g e s A l r e 0004400 a d y P r i n t e d , l v F a 0004420 i l u r e C o d e ) = v a l 0004440 o f \r [ \r \t l e t m e a s u r 0004460 e V e c = v e c 5 \r \t l e 0004500 t C o m m T a b = v e c 1 0 0004520 \r \t C o m m T a b = ( C o m m T 0004540 a b + 1 ) & ( - 2 ) \r \t l e t 0004560 k n o c k K n o c k = f a l 0004600 s e \t \t / / t i m e t o l 0004620 e t s o m e b o d y i n i 0004640 f t r u e \r \r / / W e e x 0004660 p e c t t h a t a t t h i 0004700 s t i m e t h e p r i n t 0004720 e r ' s t r a n s p o r t \0 006 0004740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0004760 \0 \0 001 336 370 \0 \0 \0 R 360 \0 360 366 357 370 366 0005000 s h a v e b e e n c l e a 0005020 r e d f r o m p r e v i o u 0005040 s r u n s , a n d t h a t 0005060 w e a r e \r / / s t a r t 0005100 i n g o n a f r e s h s 0005120 h e e t . S i n c e t h e r 0005140 e a r e t h r e e i m a g 0005160 e s f o r e a c h s h e e 0005200 t , r e v o l u t i o n s h 0005220 o u l d b e 0 \r \t n P a g e 0005240 s P r i n t e d = ( n P a g 0005260 e s P r i n t e d / r e v s P e 0005300 r P a g e ) * r e v s P e r P a 0005320 g e \r \t r e v o l u t i o n = 0 0005340 \r \r / / t h e c o m m a 0005360 n d t o p u f f i n t o 0005400 s e l e c t c o l o r d e p 0005420 e n d s o n r e v o l u t i 0005440 o n \r / / t h e c o m m a n 0005460 d t o d e t e r m i n e w 0005500 h a t t o d o w i t h t 0005520 h e p a p e r d e p e n d s 0005540 o n r e v o l u t i o n \r \t 0005560 l e t c o l o r = v e c 0005600 5 \r \t l e t p a p e r A c t i 0005620 o n = v e c 5 \r \t t e s t 0005640 r e v s P e r P a g e e q 0005660 3 i f s o \r \t \t [ \r \t \t c o l 0005700 o r ! 0 = # 6 3 0 4 1 \t \t / 0005720 / m a g e n t a f o r f \0 006 0005740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0005760 \0 \0 001 336 366 \0 \0 \0 P 360 \0 360 366 357 370 366 0006000 i r s t r e v \r \t \t c o l o r 0006020 ! 1 = # 6 3 0 2 1 \t \t / / y 0006040 e l l o w f o r s e c o n d 0006060 r e v \r \t \t c o l o r ! 2 = 0006100 # 6 3 1 0 1 \t \t / / c y a n 0006120 f o r t h i r d r e v o l u 0006140 t i o n \r \t \t c o l o r ! 3 = 0006160 # 6 3 0 4 1 \t \t / / m a g e n 0006200 t a f o r f i r s t r e v 0006220 , n e x t s h e e t \r \t \t c 0006240 o l o r ! 4 = # 6 3 0 2 1 \t 0006260 \t / / y e l l o w f o r s e 0006300 c o n d r e v , n e x t s 0006320 h e e t \r \t \t p a p e r A c t i 0006340 o n ! 0 = # 6 3 2 0 3 \t \t / 0006360 / f e e d p a p e r o n r 0006400 e v 1 \r \t \t p a p e r A c t i 0006420 o n ! 1 = # 6 3 0 0 3 \t \t / 0006440 / n o a c t i o n o n r e v 0006460 2 \r \t \t p a p e r A c t i o n 0006500 ! 2 = # 6 3 1 0 3 \t \t / / s 0006520 t r i p p a p e r o n r e 0006540 v 3 \r \t \t p a p e r A c t i o 0006560 n ! 3 = # 6 3 2 0 3 \t \t / / 0006600 f e e d p a p e r o n r e 0006620 v 1 , n e x t s h e e t \r 0006640 \t \t p a p e r A c t i o n ! 4 0006660 = # 6 3 0 0 3 \t \t / / n o a c 0006700 t i o n o n r e v 2 , n 0006720 e x t s h e e t \r \t \t ] \r \0 006 0006740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0006760 \0 \0 001 336 364 \0 \0 \0 N 360 \0 360 366 357 370 366 0007000 \t i f n o t \r \t \t [ \r \t \t c o l 0007020 o r ! 0 = # 6 3 0 4 1 \t \t / 0007040 / m a g e n t a f o r f i r 0007060 s t r e v \r \t \t c o l o r ! 1 0007100 = # 6 3 0 2 1 \t \t / / y e l 0007120 l o w f o r s e c o n d r 0007140 e v \r \t \t c o l o r ! 2 = # 0007160 6 3 1 0 1 \t \t / / c y a n f o 0007200 r t h i r d r e v o l u t i 0007220 o n \r \t \t c o l o r ! 3 = # 0007240 6 3 2 0 1 \t \t / / b l a c k f 0007260 o r f o u r t h r e v o l u 0007300 t i o n \r \t \t c o l o r ! 4 = 0007320 # 6 3 0 4 1 \t \t / / m a g e n 0007340 t a f o r f i r s t r e v 0007360 , n e x t s h e e t \r \t \t c 0007400 o l o r ! 5 = # 6 3 0 2 1 \t 0007420 \t / / y e l l o w f o r s e 0007440 c o n d r e v , n e x t s 0007460 h e e t \r \t \t p a p e r A c t i 0007500 o n ! 0 = # 6 3 2 0 3 \t \t / 0007520 / f e e d p a p e r o n r 0007540 e v 1 \r \t \t p a p e r A c t i 0007560 o n ! 1 = # 6 3 0 0 3 \t \t / 0007600 / n o a c t i o n o n r e v 0007620 2 \r \t \t p a p e r A c t i o n 0007640 ! 2 = # 6 3 0 0 3 \t \t / / n 0007660 o a c t i o n o n r e v 3 0007700 \r \t \t p a p e r A c t i o n ! 3 0007720 = # 6 3 1 0 3 \t \t / / s \0 006 0007740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0007760 \0 \0 001 336 362 \0 \0 \0 L 360 \0 360 366 357 370 366 0010000 t r i p p a p e r o n r e 0010020 v 4 \r \t \t p a p e r A c t i o 0010040 n ! 4 = # 6 3 2 0 3 \t \t / / 0010060 f e e d o n r e v 1 , n 0010100 e x t s h e e t \r \t \t p a p e 0010120 r A c t i o n ! 5 = # 6 3 0 0010140 0 3 \t \t / / n o a c t i o n o 0010160 n r e v 2 , n e x t s h 0010200 e e t \r \t \t ] \r / / D u r i n 0010220 g t h e r u n w e n e e 0010240 d t o t r a c k t h e l 0010260 o c a t i o n o f s h e e t 0010300 s w e h a v e a l r e a d 0010320 y p r i n t e d . B i t s 0010340 1 3 , 1 4 a n d 1 5 o 0010360 f x p o r t M o d e l < o n 0010400 > \r / / r e p r e s e n t s 0010420 h e e t s i n t r a n s p o 0010440 r t s C , B a n d A , 0010460 r e s p e c t i v e l y . x p 0010500 o r t M o d e l i s s h i f 0010520 t e d l e f t a f t e r e 0010540 v e r y r e v o l u t i o n ; 0010560 \r / / ' 1 ' i s o r ' d 0010600 o n t o i t a f t e r r e 0010620 v o l u t i o n s w h e r e 0010640 p a p e r A c t i o n w a s 0010660 ' s t r i p ' . \r \t l e t x p 0010700 o r t M o d e l = 0 \r \t I n 0010720 i t i a l i z e H a r d w a \0 006 0010740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0010760 \0 \0 001 336 360 \0 \0 \0 J 360 \0 360 366 357 370 366 0011000 r e ( t r u e ) \r \t I n i t M e 0011020 a s u r e ( m e a s u r e T a b 0011040 l e , 2 0 0 0 , m e a s u r 0011060 e V e c ) \r \t R O S C o m m a n 0011100 d ( # 6 3 0 1 0 , l v r o s 0011120 c p r o b ) / / r e 0011140 s e t r e m o t e p r i n t 0011160 i n g q u e u e \r \t r o s c p 0011200 r o b = r o s c p r o b & 3 0011220 \t \t / / d o n ' t c a r e i 0011240 f t h e s e c o m m a n d s 0011260 i g n o r e d \r \t i f r o s 0011300 c p r o b t h e n [ @ l v 0011320 F a i l u r e C o d e = r 0011340 o s c p r o b + 7 7 ; C l o s 0011360 e M e a s u r e ( ) ; r e s u 0011400 l t i s n P a g e s P r i n t 0011420 e d ] \r \t l e t n e e d F o 0011440 n t s , s t a r t R u n , n 0011460 e e d I n i t = t r u e , t 0011500 r u e , t r u e \r \t l e t n 0011520 C , c o p y , F o n t T a b 0011540 l e , n f R e c s , L e f t 0011560 O v e r , L e f t O v e r G u 0011600 a r d = n i l , n i l , 0011620 n i l , n i l , n i l , n 0011640 i l \r \t l e t c u r b u f , 0011660 b u f 1 = n i l , n i l \r 0011700 \t l e t n p , t i m = n 0011720 i l , n i l \r \t l e t n \0 006 0011740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0011760 \0 \0 001 336 356 \0 \0 \0 H 360 \0 360 366 357 370 366 0012000 e x t P a g e = P r i n t N e x 0012020 t ( p D o c , l v c o p y , 0012040 n P a g e s P r i n t e d ) \r 0012060 \t l e t n e x t N e x t = P r 0012100 i n t N e x t ( p D o c , l v 0012120 n C , n P a g e s P r i n t 0012140 e d + 1 ) \r \f / / P r i n t 0012160 ( c o n t . ) \t \t \r \r [ P r i n 0012200 t L o o p \r / / F i n d o u 0012220 t w h i c h p a g e t o 0012240 p r i n t n e x t : \r \t l e t 0012260 p a g e = n e x t P a g e \r \t 0012300 i f p a g e e q 0 t h e 0012320 n [ k n o c k K n o c k = 0012340 f a l s e ; b r e a k ] \r 0012360 \t i f k n o c k K n o c k t 0012400 h e n b r e a k / / g o 0012420 l e t s o m e b o d y i n \r 0012440 \t i f s t o p s P r i n t i n 0012460 g e q b i n F u l l d o 0012500 [ @ l v F a i l u r e C o d e 0012520 = 1 3 0 ; b r e a k ] \r \r 0012540 / / R e a d i n f o n t 0012560 a n d r e l o c a t e t h e 0012600 p o i n t e r s t o c h a 0012620 r a c t e r s : \r i f n e 0012640 e d F o n t s d o \r \t [ \r \t l 0012660 e t f o n t = p a g e > > P a 0012700 g e G . f o n t L o a d * ( s i 0012720 z e F o n t G / 1 6 ) + p \0 006 0012740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0012760 \0 \0 001 336 354 \0 \0 \0 F 360 \0 360 366 357 370 366 0013000 D o c > > D o c G . F o n t s \r 0013020 \t \t / / N e x t c a l l r 0013040 e t u r n s l o c a t i o n 0013060 o f I C C t a b l e , \r \t \t 0013100 F o n t T a b l e = R e a d 0013120 F o n t ( f o n t , L o w A d 0013140 r , n R e c s ) \r \t \t u n l e 0013160 s s x m F o n t s d o f o 0013200 r i = 0 t o p D o c > > D 0013220 o c G . I C C t o t a l - 1 d 0013240 o / / i f r a s t e r s 0013260 a r e i n b a n k 1 , t 0013300 h e y s t a r t a t 0 \r \t 0013320 \t \t F o n t T a b l e ! i = F o 0013340 n t T a b l e ! i + L o w A 0013360 d r \r \t F o n t T a b l e = F o 0013400 n t T a b l e - 1 0 0 0 0 0 b \r 0013420 \r / / F i g u r e o u t w 0013440 h e r e t h e b u f f e r 0013460 i s . \r \t \t l e t n R e c o r 0013500 d s = x m F o n t s ? ( p D 0013520 o c > > D o c G . I C C t o t a 0013540 l + b a n d R e c o r d S i z e 0013560 - 1 ) r s h i f t l o g B a 0013600 n d R e c o r d S i z e , \r \t \t 0013620 \t \t f o n t > > F o n t G . n R 0013640 e c o r d s \r \t n f R e c s = ( 0013660 n R e c s - n R e c o r d s ) \r 0013700 \t L e f t O v e r = L o w A d r 0013720 + ( n R e c o r d s l s h \0 006 0013740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0013760 \0 \0 001 336 352 \0 \0 \0 D 360 \0 360 366 357 370 366 0014000 i f t l o g B a n d R e c o r 0014020 d S i z e ) \r \t L e f t O v e r 0014040 G u a r d = L e f t O v e r 0014060 + ( l o S i z e & ( - 4 ) ) - 4 0014100 \r \t c u r b u f = ( L e f t 0014120 O v e r + l o S i z e + 8 ) & ( 0014140 - 2 ) / / ~ ~ a l l t h 0014160 e 4 ' s , 8 ' s a n d 1 0014200 0 ' s i n h e r e a r e 0014220 c o w a r d l y s l a c k \r \t 0014240 n e e d F o n t s = f a l s 0014260 e \r \t ] \r \r / / N o w r e a 0014300 d i n t h e b a n d s f 0014320 o r t h i s p a g e \r R 0014340 e a d B a n d s ( p a g e , c 0014360 u r b u f , n f R e c s ) \r \r 0014400 i f n e e d I n i t d 0014420 o \r \t [ \r / / I n i t i a 0014440 l i z e t h e O r b i t , 0014460 e t c . \r \t I n i t i a l i z 0014500 e H a r d w a r e ( f a l s e ) 0014520 \r \t l e t n p = n i l \r \t 0014540 l e t t i m = @ R T C \r 0014560 / / w a i t f o r r e a d 0014600 y o r s o m e s e r i o u 0014620 s c o n d i t i o n o r f 0014640 o r l o n g e n o u g h \r \t 0014660 u n l e s s D e b u g d o \r 0014700 \t \t [ \r \t \t n p = R O S C h 0014720 e c k ( l v F a i l u r e C \0 006 0014740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0014760 \0 \0 001 336 350 \0 \0 \0 B 360 \0 360 366 357 370 366 0015000 o d e , n P a g e s A l r e a 0015020 d y P r i n t e d , s t a n 0015040 d b y , l v x p o r t M o d 0015060 e l ) \r \t \t i f n p e q - 0015100 1 b r e a k / / r e a d y 0015120 \r \t \t i f n p g e 0 r e 0015140 s u l t i s n p \r \t \t / / r e 0015160 s u l t w a s - 2 : n o 0015200 t r e a d y y e t , b u t 0015220 m a y b e s o o n . H 0015240 a v e w e w a i t e d l o 0015260 n g e n o u g h ? \r \t \t i f 0015300 ( @ R T C - t i m ) > t 0015320 i m e O u t d o [ @ l v F 0015340 a i l u r e C o d e = 5 ; 0015360 C l o s e M e a s u r e ( ) ; 0015400 r e s u l t i s n P a g e s P 0015420 r i n t e d ] \r \t \t ] r e p e 0015440 a t \r \r / / e s t a b l i 0015460 s h q u e u e e n t r i e s 0015500 : a n u l l e n t r y a 0015520 n d t h e f i r s t t w o 0015540 r e a l e n t r i e s \r \r \t 0015560 R O S C o m m a n d ( # 6 3 0 2 0015600 0 , l v r o s c p r o b ) \t 0015620 / / f o r n u l l r e v o 0015640 l u t i o n \r \t R O S C o m m 0015660 a n d ( # 6 3 0 2 0 , l v r 0015700 o s c p r o b ) \t / / a p p e 0015720 n d n e w q u e u e e \0 006 0015740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0015760 \0 \0 001 336 346 \0 \0 \0 @ 360 \0 360 366 357 370 366 0016000 n t r y \r \t R O S C o m m a n 0016020 d ( # 6 3 2 0 4 , l v r o s 0016040 c p r o b ) \t \t / / l i g h t s 0016060 o u r c e = v i d e o \r \t R 0016100 O S C o m m a n d ( c o l o r ! 0016120 r e v o l u t i o n , l v r 0016140 o s c p r o b ) / / s e l e 0016160 c t t o n e r t o u s e 0016200 t h i s r e v \r \t R O S C o m 0016220 m a n d ( p a p e r A c t i o n 0016240 ! r e v o l u t i o n , l v 0016260 r o s c p r o b ) / / f e e 0016300 d , s t r i p o r n o t h 0016320 i n g \r \t R O S C o m m a n d ( 0016340 # 6 3 0 2 0 , l v r o s c p 0016360 r o b ) \t / / a p p e n d n 0016400 e w q u e u e e n t r y \r 0016420 \t R O S C o m m a n d ( # 6 3 2 0016440 0 4 , l v r o s c p r o b ) 0016460 \t \t / / l i g h t s o u r c e 0016500 = v i d e o \r \t R O S C o m m 0016520 a n d ( c o l o r ! ( r e v o l 0016540 u t i o n + 1 ) , l v r o s 0016560 c p r o b ) / / s e l e c t 0016600 t o n e r t o u s e n e 0016620 x t r e v \r \t R O S C o m m a 0016640 n d ( p a p e r A c t i o n ! ( 0016660 r e v o l u t i o n + 1 ) , l 0016700 v r o s c p r o b ) / / f 0016720 e e d , s t r i p o r \0 006 0016740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0016760 \0 \0 001 336 344 \0 \0 \0 > 360 \0 360 366 357 370 366 0017000 n o t h i n g \r \t R O S C o m m 0017020 a n d ( # 6 3 0 0 6 , l v r 0017040 o s c p r o b ) \t \t / / s t a 0017060 r t e n g i n e \r \r \t i f r 0017100 o s c p r o b d o [ @ l v F 0017120 a i l u r e C o d e = r o s 0017140 c p r o b + 7 4 ; b r e a k ] 0017160 \r / / T r y t o e m p t y 0017200 O r b i t b u f f e r s t 0017220 o c l e a r t h e m . T 0017240 h i s i s t o m i n i m i 0017260 z e t o n e r d u m p i n g 0017300 o n f i r s t ( b l a n k 0017320 ) p a g e . \r \t c o m p i l e 0017340 i f l o S i z e l s 2 5 6 0017360 t h e n [ f o o = n i l 0017400 ] \r \t f o r i = 0 t o 3 1 0017420 d o D o F u n c ( f R e a d 0017440 B l o c k , 2 5 6 , L e f t 0017460 O v e r ) \r \r \t A w a i t P a g 0017500 e S y n c ( 0 ) \t / / W a i t 0017520 f o r s e n d V i d e o t o 0017540 g o o f f . \r \t n e e d I n 0017560 i t = f a l s e \r \t ] \r \f / 0017600 / P r i n t ( c o n t . ) \t 0017620 \t \r \r \t / / n o w s e t u p 0017640 t o b u i l d t h e n e 0017660 x t e n t r y w h i l e b 0017700 a n d s f o r t h i s i m 0017720 a g e a r e g o i n g \0 006 0017740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0017760 \0 \0 001 336 342 \0 \0 \0 < 360 \0 360 366 357 370 366 0020000 o u t - a c t i o n d i 0020020 s a b l e d f o r n o w . \r 0020040 \t \t C o m m T a b ! 0 = - 1 \r \t 0020060 \t C o m m T a b ! 1 = # 6 3 0 2 0020100 0 \t \t / / a p p e n d n e w 0020120 q u e u e e n t r y \r \t \t C o 0020140 m m T a b ! 2 = s i g b a n d 0020160 - 1 0 / / w i l l b e 0020200 s e t t o 3 w h e n w 0020220 e ' r e r e a d y \r \t \t C o m 0020240 m T a b ! 3 = # 6 3 2 0 4 \t \t / 0020260 / l i g h t s o u r c e _ s 0020300 e t v i d e o \r \t \t C o m m T a 0020320 b ! 4 = s i g b a n d - 2 0 0020340 \r \t \t C o m m T a b ! 5 = c o 0020360 l o r ! ( r e v o l u t i o n + 0020400 2 ) \r \t \t C o m m T a b ! 6 = s 0020420 i g b a n d - 3 0 \r \t \t C o 0020440 m m T a b ! 7 = p a p e r A c t 0020460 i o n ! ( r e v o l u t i o n + 0020500 2 ) \r \t \t C o m m T a b ! 8 = - 0020520 1 \r \r / / S t a r t O r b i 0020540 t w o r k i n g o n t h e 0020560 p r e s e n t p a g e . \r \t 0020600 D o F u n c ( f C o n t r o l , 0020620 # 2 1 ) \t \t / / R e s e t , 0020640 c l e a r b e h i n d \r \t D o 0020660 F u n c ( f R O S C o m m a n d 0020700 , a d B u f f e r R e s e t ) 0020720 \r \r \t L e f t O v e r ! 0 = \0 006 0020740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0020760 \0 \0 001 336 340 \0 \0 \0 : 360 \0 360 366 357 370 366 0021000 0 \t \t \t / / I n i t i a l i z e 0021020 L e f t O v e r t a b l e \r 0021040 \t L e f t O v e r G u a r d ! 1 0021060 = - 1 \r \t t i m = @ R T C \r / / 0021100 S t a r t t h e m i c r o 0021120 c o d e ! ! ! ! \r \t D o F u n c 0021140 ( f S l o t , C o m m T a b , 0021160 2 0 0 0 0 , n B a n d s - 1 0021200 , F A v a l u e , L e f t O 0021220 v e r , \r \t \t \t F o n t T a b l 0021240 e , c u r b u f - 1 , n i l 0021260 , n i l , ( c o p y l s h 0021300 i f t 5 ) + 4 ) \r \r i f D e 0021320 b u g t h e n / / ~ ~ d e 0021340 l a y \r \t [ / / ~ ~ d e l a 0021360 y \r \t w h i l e ( @ R T C - t 0021400 i m ) < d e b D e l a y l 0021420 o o p \t / / ~ ~ d e l a y \r \t 0021440 t i m = @ R T C / / ~ ~ 0021460 d e l a y d o n ' t i n v o 0021500 k e t i m e o u t c o d e 0021520 b e l o w \r \t ] / / ~ ~ d e 0021540 l a y \r \t \r / / A s s u m e 0021560 t h e p a g e w e a r e 0021600 p r i n t i n g w i l l b e 0021620 O K : \r \t \t n P a g e s P r i 0021640 n t e d = n P a g e s P r i n t 0021660 e d + 1 \r \t \t C u r s o r D i g 0021700 i t ( n P a g e s P r i n t e d 0021720 ) \r / / S e e w h o ' s \0 006 0021740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0021760 \0 \0 001 336 336 \0 \0 \0 8 360 \0 360 366 357 370 366 0022000 ( m a y b e ) k n o c k i n 0022020 g a t m y d o o r \r / / 0022040 T h i s l o g i c i s c o 0022060 p i e d f r o m S p r u c e 0022100 U t i l s R e s : i f w e 0022120 a r e n o t p l a n n i n g 0022140 t o d e f e r t o s p o 0022160 o l e r , \r / / d o n ' t 0022200 t r o u b l e t o s h u t 0022220 d o w n h e r e , j u s t 0022240 t o f i n d t h a t o u t 0022260 t h e r e . W o u l d b e 0022300 t o o e x p e n s i v e \r \t 0022320 i f ( D e b u g S y s t e m & 0022340 # 3 0 ) e q 0 & n u m P 0022360 r i n t e d g e n u m M u s 0022400 t P r i n t & k n o c k R e 0022420 s u l t & \r \t ( n P a g e s P 0022440 r i n t e d - n P a g e s A l r 0022460 e a d y P r i n t e d ) > p 0022500 r i n t H y s t e r e s i s & 0022520 \r \t r e v o l u t i o n e q 0022540 r e v s P e r P a g e / / 0022560 s t r i p p i n g - - t o 0022600 p r e v e n t c l e a r i n g 0022620 a p a r t i a l l y p r i 0022640 n t e d s h e e t \r \t t h e 0022660 n k n o c k K n o c k = t 0022700 r u e \r \r \t n e x t P a g e , 0022720 c o p y = n e x t N e x \0 006 0022740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0022760 \0 \0 001 336 334 \0 \0 \0 6 360 \0 360 366 357 370 366 0023000 t , n C \r \t n e x t N e x t 0023020 = P r i n t N e x t ( p D o c 0023040 , l v n C , n P a g e s P 0023060 r i n t e d + 1 ) \r \r \t i f ( 0023100 n o t k n o c k K n o c k ) 0023120 & n e x t N e x t t h e n \t 0023140 / / U n l e s s t h i s p a 0023160 g e g e t s m e s s e d u 0023200 p w e w i l l c o n t i n 0023220 u e p r i n t i n g . \r \t \t / 0023240 / W e w a n t t o b e s 0023260 u r e t h a t p u f f i n ' 0023300 s q u e u e w o n ' t e m 0023320 p t y . T e l l o r b i t 0023340 t o s e n d o u t t h e 0023360 ' a p p e n d q e n t r y 0023400 ' n o w . \r \t \t [ \r \t \t 0023420 C o m m T a b ! 0 = s i g b 0023440 a n d / / e n a b l e i n 0023460 t e r b a n d R O S c o m m 0023500 a n d \r \t \t r o s C o u n 0023520 t = r o s C o u n t + 4 0023540 / / a n d k e e p i n 0023560 s y n c \r \t \t i f ( n e 0023600 x t P a g e > > P a g e G . f o 0023620 n t L o a d n e p a g e > > 0023640 P a g e G . f o n t L o a d ) 0023660 t h e n n e e d F o n t s 0023700 = t r u e \r \t \t ] \r \f / / 0023720 P r i n t ( c o n t . ) \t \0 006 0023740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0023760 \0 \0 001 336 332 \0 \0 \0 4 360 \0 360 366 357 370 366 0024000 \t N o w s e e i f w e a 0024020 c t u a l l y p r i n t e d 0024040 t h i s p a g e p r o p e r 0024060 l y . \r \r / / F i r s t , 0024100 w a i t f o r O r b i t 0024120 t o a n n o u n c e i t i 0024140 s f i n i s h e d . \r \t l e t 0024160 i m a g e T i m e o u t = 0024200 1 5 * 2 7 \r \t w h i l e @ # 7 0024220 2 0 n e 0 d o i f ( @ 0024240 R T C - t i m ) g r i m a g 0024260 e T i m e o u t t h e n \r \t \t 0024300 [ \r \t \t B l a s t ( ) \t \t / / 0024320 c l e a r h a r d w a r e , 0024340 # 7 2 0 \r \t \t / / M a c h i 0024360 n e d e a d o r O r b i t 0024400 g o t b e h i n d a n d 0024420 i t w a s n ' t d e t e c t 0024440 e d \r \t \t / / W i l l g e 0024460 n e r a l l y b e o v e r r 0024500 i d e n b y m o r e s p e 0024520 c i f i c a n a l y s i s \r \t 0024540 \t @ l v F a i l u r e C o d e 0024560 = 1 9 / / M a n u a l i 0024600 n t e r v e n t i o n r e q u 0024620 i r e d \r \t \t b r e a k \r \t \t ] 0024640 \r / / C h e c k O r b i t 0024660 s t a t u s \r \t l e t n o n F 0024700 = 0 \r \t l e t s t a t = F 0024720 u n c ! 9 \t \t / / O r b i t \0 006 0024740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0024760 \0 \0 001 336 330 \0 \0 \0 2 360 \0 360 366 357 370 366 0025000 p r i n t i n g s t a t u s 0025020 . \r \t / / F a t a l e r r o 0025040 r d e t e c t e d b y m i 0025060 c r o c o d e - - i n v a l 0025100 i d B a n d e n t r y - - 0025120 p o s s i b l y b r o k e n 0025140 p r o c e s s o r \r \t i f s 0025160 t a t < < S T A T U S . i n v a 0025200 l i d B a n d E n t r y t h e 0025220 n \r \t \t [ I n i t i a l i z e 0025240 H a r d w a r e ( t r u e ) ; 0025260 \r \t \t i f L e f t O v e r 0025300 G u a r d ! 1 e q - 1 t h 0025320 e n S p r u c e E r r o r ( 1 0025340 0 1 0 , @ 1 , @ 2 ) / / 0025360 e l s e , a s s u m e t h a 0025400 t \r \t \t \t / / b a d b a n d 0025420 e n t r y i s s i m p l y 0025440 r e s u l t o f l e f t o v 0025460 e r o v e r f l o w \r \t \t ] \r 0025500 \t t e s t s t a t < < S T A T 0025520 U S . p r e m a t u r e P a g e 0025540 A b o r t t h e n [ A n n 0025560 o u n c e ( 1 6 ) ; n o n F 0025600 = 3 0 1 ] \r \t o r i f 0025620 s t a t < < S T A T U S . b e 0025640 h i n d t h e n [ A n n o 0025660 u n c e ( 1 6 ) ; n o n F = 0025700 3 0 0 ] \r \t i f s t a t < 0025720 < S T A T U S . t i m e o u \0 006 0025740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0025760 \0 \0 001 336 326 \0 \0 \0 0 360 \0 360 366 357 370 366 0026000 t t h e n [ A n n o u n c 0026020 e ( 1 7 ) ; @ l v F a i l u r 0026040 e C o d e = 1 8 ] \r \t i f 0026060 L e f t O v e r G u a r d ! 1 0026100 n e - 1 t h e n \t [ 0026120 A n n o u n c e ( 1 8 ) ; n o 0026140 n F = 3 1 0 ] \r \t i f n 0026160 o n F t h e n @ l v F a i l 0026200 u r e C o d e = n o n F \r / 0026220 / N o w t r y f o r m o 0026240 r e s p e c i f i c e n g i 0026260 n e s t a t u s c h e c k \r 0026300 \t l e t r u n n i n g = p 0026320 r i n t i n g \r \t i f n e x t 0026340 P a g e e q 0 d o r u 0026360 n n i n g = e n d o f r u n 0026400 \r \t n p = R O S C h e c k ( l v 0026420 F a i l u r e C o d e , n P a 0026440 g e s A l r e a d y P r i n t e 0026460 d , r u n n i n g , l v x 0026500 p o r t M o d e l ) \r \r / / N 0026520 o w w a i t f o r p a g e 0026540 s y n c t o g o o f f \r 0026560 \t u n l e s s A w a i t P a g 0026600 e S y n c ( 0 ) t h e n @ l 0026620 v F a i l u r e C o d e = 1 0026640 6 \r \r / / N o w d e c i d e 0026660 w h a t t o d o : \r \t l e t 0026700 m a l f u n c t i o n = @ 0026720 l v F a i l u r e C o d e \r \0 006 0026740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0026760 \0 \0 001 336 324 \0 \0 \0 . 360 \0 360 366 357 370 366 0027000 \t i f m a l f u n c t i o n 0027020 g e m i n D o c u m e n t E r 0027040 r o r t h e n m a l f u n c 0027060 t i o n = 0 / / w i l l 0027100 n o t s t o p \r \t i f r e 0027120 v o l u t i o n e q 3 t h 0027140 e n A d d T o B i n ( 5 0 ) \t 0027160 / / i f s t r i p p i n g , 0027200 a d d t o c o u n t o f 0027220 s h e e t s o u t \r \r / / N 0027240 o w r e a c t t o t h e 0027260 a n a l y s i s : i f a t 0027300 t h i s p o i n t n o t h i 0027320 n g i s w r o n g a n d 0027340 s h e e t s a r e f e e d i 0027360 n g , s t e a m a h e a d . 0027400 \r \r \t t e s t m a l f u n c t 0027420 i o n \r \t i f n o t \r \t [ 0027440 / / a d j u s t m o d e 0027460 l o f P u f f i n ' s t r 0027500 a n s p o r t s y s t e m \r \t 0027520 x p o r t M o d e l = 0027540 ( x p o r t M o d e l l s h 0027560 i f t 1 ) + ( r e v o l u t i 0027600 o n e q ( r e v s P e r P a 0027620 g e - 1 ) ? 1 , 0 ) \r \t 0027640 r e v o l u t i o n = ( r e 0027660 v o l u t i o n + 1 ) r e m 0027700 r e v s P e r P a g e / / p 0027720 u f f i n d r u m r e v \0 006 0027740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0027760 \0 \0 001 336 322 \0 \0 \0 , 360 \0 360 366 357 370 366 0030000 o l u t i o n \r \t ] \r \t i f 0030020 s o \r \t [ \r \t I n i t i a l i z 0030040 e H a r d w a r e ( t r u e ) \r 0030060 \t l e t b a c k u p = n 0030100 P a g e s P r i n t e d - 1 r 0030120 e m r e v s P e r P a g e \t / 0030140 / i f m a l f u n c t i o n 0030160 d e t e c t e d o u t s i d 0030200 e o f R O S C h e c k , s 0030220 e t n p \r \r \t i f m a l f u 0030240 n c t i o n e q 3 % m a 0030260 l f u n c t i o n e q 9 % 0030300 m a l f u n c t i o n e q 0030320 1 d o \r \t \t [ \r \t \t t e s t 0030340 n e x t P a g e \r \t \t i f n o 0030360 t [ C l o s e M e a s u r 0030400 e ( ) ; r e s u l t i s - 1 0030420 ] \t / / n o m o r e t o 0030440 d o \r \t \t i f s o \r \t \t \t 0030460 [ \r \t \t \t n P a g e s P r i n t 0030500 e d = n P a g e s P r i n t 0030520 e d - b a c k u p \r \t \t \t b 0030540 r e a k / / O u t o f R 0030560 u n n i n g L o o p \r \t \t \t ] \r 0030600 \t \t ] \r \t i f n p e q - 1 0030620 t h e n n p = n P a g e 0030640 s P r i n t e d - b a c k u p \r 0030660 \t / / a c c o u n t f o r 0030700 p r e v i o u s i n c r e m e 0030720 n t \r \t n P a g e s P r i n \0 006 0030740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0030760 \0 \0 001 336 320 \0 \0 \0 * 360 \0 360 366 357 370 366 0031000 t e d = M a x ( n p - 1 , 0031020 n P a g e s A l r e a d y P r i 0031040 n t e d ) \r \t b r e a k \r \t ] \r 0031060 \r ] P r i n t L o o p r e p e 0031100 a t \r \r \t I n i t i a l i z e H 0031120 a r d w a r e ( t r u e ) \r \t C 0031140 l o s e M e a s u r e ( ) \r \t r 0031160 e s u l t i s ( k n o c k K n 0031200 o c k % @ l v F a i l u r e 0031220 C o d e ) ? n P a g e s P r i 0031240 n t e d , - 1 \r ] \r \f \r / / 0031260 - - - - - - - - - - - - - - - - * 0031360 - - - - - - - - - - \r / / n P 0031400 a g e s P r i n t e d = R O 0031420 S C h e c k ( l v F a i l u r e 0031440 C o d e , n P a g e s A l r e 0031460 a d y P r i n t e d , r u n n 0031500 i n g , \r / / \t \t l v X p o r 0031520 t M o d e l ) a d d e 0031540 d f o r p u f f i n \r / / 0031560 - - - - - - - - - - - - - - - - * 0031660 - - - - - - - - - - \r \r / / a 0031700 n a l y z e R O S s t a t u 0031720 s \r / / n P a g e s P r i \0 006 0031740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0031760 \0 \0 001 336 316 \0 \0 \0 ( 360 \0 360 366 357 370 366 0032000 n t e d = - 1 i f t h e 0032020 r e a r e n o m a l f u n 0032040 c t i o n s , R O S i s r 0032060 e a d y t o p r i n t \r / / 0032100 \t \t \t o t h e r w i s e , t h 0032120 e n u m b e r o f p a g e 0032140 s t o r e p o r t a s h 0032160 a v i n g b e e n p r i n t 0032200 e d \r / / @ l v F a i l u r e 0032220 C o d e w i l l c o n t a i 0032240 n a n a n a l y s i s o f 0032260 t h e c u r r e n t s t a 0032300 t e . T h e c o d e v a l 0032320 u e s a r e \r / / \t \t \t d e s 0032340 c r i b e d b e l o w . \r / / 0032360 n P a g e s A l r e a d y P r 0032400 i n t e d p l a c e s a l 0032420 o w e r b o u n d o n t h 0032440 e n P a g e s P r i n t e d 0032460 r e s u l t . T h i s \r / / 0032500 \t \t \t p r e v e n t s l o o p 0032520 s t h r o u g h t h i s c 0032540 o d e f r o m b a c k i n g 0032560 u p t o o f a r . \r / / 0032600 r u n n i n g \t \t t r u e i f 0032620 c a l l e r t h i n k s m 0032640 a i n d r i v e i s a l l 0032660 o w e d t o b e o n f o 0032700 r " r e a d y " \r / / \t \t \t r 0032720 e s u l t , f a l s e o \0 006 0032740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0032760 \0 \0 001 336 314 \0 \0 \0 & 360 \0 360 366 357 370 366 0033000 t h e r w i s e ( w a i t i n 0033020 g f o r r e a d y ) . \r \r / 0033040 / R O S C h e c k f i r s t 0033060 s c r e e n s t h e c u r 0033100 r e n t s t a t u s f o r 0033120 a n y m a l f u n c t i o n 0033140 i n d i c a t i o n s , a n d 0033160 \r / / r e t u r n s r i g h 0033200 t a w a y i f t h e r e 0033220 a r e n o n e . O t h e r w 0033240 i s e , i t a p p l i e s 0033260 t h e c u r r e n t s t a t 0033300 u s \r / / a g a i n s t a 0033320 p r i n t e r - d e p e n d e n 0033340 t t a b l e o f p o s s i 0033360 b l e c o n d i t i o n s , 0033400 y i e l d i n g a f a i l u 0033420 r e \r / / c o d e a n d a 0033440 n e w p a g e v a l u e 0033460 - - t h e l a s t p a g e 0033500 c e r t a i n t o h a v e 0033520 b e e n r e l i a b l y \r / 0033540 / p r i n t e d . O n e p 0033560 o s s i b l e c o n d i t i o 0033600 n i s " n o m a l f u n c 0033620 t i o n d e t e c t e d " , 0033640 w h i c h w i l l o n l y \r 0033660 / / b e i s s u e d f o r 0033700 p r i n t e r s t h a t g 0033720 i v e n o p o s i t i v \0 006 0033740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0033760 \0 \0 001 336 312 \0 \0 \0 $ 360 \0 360 366 357 370 366 0034000 e i n d i c a t i o n w h e 0034020 n t h e y a r e m e r e l 0034040 y \r / / b u s y d o i n g 0034060 n o r m a l t h i n g s . \r / 0034100 / N . B . @ l v F a i l u r 0034120 e C o d e i s n o t c h a 0034140 n g e d w h e n n o c o n 0034160 d i t i o n s a r e f o u n 0034200 d \r \r / / T h e f a i l u r 0034220 e c o d e s d i v i d e i 0034240 n t o r a n g e s : \r / / 0 0034260 - 9 \t \t N o t r e a d y , b 0034300 u t n o i n d i c a t i o n 0034320 o f p r o b l e m s o r 0034340 w i l l c l e a r u p a u 0034360 t o m a t i c a l l y \r / / \t \t 0034400 ( i n c l u d e s f u s e r 0034420 c o l d , w a r m u p m o d 0034440 e , c l e a r i n g r e v o 0034460 l u t i o n s , e t c . ) \r / 0034500 / 1 0 - 1 9 \t M a n u a l i 0034520 n t e r v e n t i o n r e q u 0034540 i r e d b e f o r e m a c h 0034560 i n e c a n b e c o m e r 0034600 e a d y \r / / \t \t ( p a p e r 0034620 l o w , p o w e r n o t t 0034640 h e r e , e t c . ) \r / / 2 0034660 0 - 9 9 \t J a m s a n d o t 0034700 h e r o p e r a t i o n a l 0034720 m a l f u n c t i o n s ( \0 006 0034740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0034760 \0 \0 001 336 310 \0 \0 \0 " 360 \0 360 366 357 370 366 0035000 m a n y c o d e s p r o v i 0035020 d e d s o t h a t \r / / \t \t 0035040 e a c h d e v i c e c a n 0035060 r e p o r t m a c h i n e - d 0035100 e p e n d e n t j a m e x p 0035120 l a n a t i o n s ) \r / / 1 0 0035140 0 - 2 0 0 \t I n h e r e n t p 0035160 r o b l e m s ( e . g . , i 0035200 n s u f f i c i e n t b a n d 0035220 w i d t h s o m e w h e r e ) 0035240 t h a t a r e \r / / \t \t n o 0035260 t c u r a b l e b y m e r 0035300 e m o r t a l s . A t t e m 0035320 p t s t o i m p r o v e t 0035340 h e s i t u a t i o n s h o 0035360 u l d b e \r / / \t \t a b a n d 0035400 o n e d . \r / / 2 0 0 - 3 0 0 0035420 \t I n h e r e n t p r o b l e 0035440 m s e n c o u n t e r e d , 0035460 b u t t h e y d i d n o t 0035500 t e r m i n a t e p r i n t 0035520 i n g . O n e \r / / \t \t s h o 0035540 u l d e x p e c t t h a t 0035560 o n e o r m o r e p a g e 0035600 s w e r e i m p r o p e r l 0035620 y i m a g e d . \r \r / / A 0035640 c h e c k , d e s i g n e d 0035660 c h i e f l y f o r D o v e 0035700 r , v e r i f i e s t h a t 0035720 t h e l a s e r i s \0 006 0035740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0035760 \0 \0 001 336 306 \0 \0 \0 360 \0 360 366 357 370 366 0036000 o n a n d t h e p o l y g 0036020 o n i s \r / / s c a n n i n 0036040 g ( S O S / E O S a r e s 0036060 e e i n g t h i n g s ) , b 0036100 y m a k i n g s u r e t h 0036120 a t t h e l o w f o u r 0036140 b i t s o f t h e l i n e 0036160 \r / / c o u n t ( i n d i c 0036200 a t e d i n s t a t u s w 0036220 o r d ) a r e c h a n g i 0036240 n g . T h e c o d e r e a 0036260 d s t h e l i n e c o u n 0036300 t , w a i t s \r / / a p p r 0036320 o x i m a t e l y t h e t i 0036340 m e n e e d e d f o r f o 0036360 u r s c a n l i n e s ( g 0036400 e n e r o u s m a r g i n ) , 0036420 t h e n r e a d s t h e \r 0036440 / / c o u n t a g a i n , 0036460 r e p o r t i n g a p r o b 0036500 l e m i f t h e v a l u e 0036520 s a r e e q u a l . T h i 0036540 s t e s t h a p p e n s o 0036560 n l y w h e n \r / / t h e 0036600 r u n n i n g p a r a m e t e 0036620 r i s f a l s e . T h e 0036640 w a i t t i m e ( s c a n T 0036660 i c k s ) i s c o m p u t e 0036700 d i n P r i n t I n i t , 0036720 a s : \r \r / / R e s o l u \0 006 0036740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0036760 \0 \0 001 336 304 \0 \0 \0 036 360 \0 360 366 357 370 366 0037000 t i o n S i s s c a l e d 0037020 b y 1 0 a s s t o r e d , 0037040 P a p e r S p e e d I n c h e 0037060 s b y 1 0 0 . T h e ( f 0037100 a s t 1 0 b i t s o f ) \r 0037120 / / t h e R T C t i c k s 0037140 a t 3 8 u s e c . i n t 0037160 e r v a l s . T h u s t h e 0037200 # t i c k s w a n t e d 0037220 f o r f o u r l i n e s i 0037240 s : \r \r / / ( 4 l i n 0037260 e s x 1 0 ^ 6 u s e c / s 0037300 e c x 1 / 3 8 t i c k / 0037320 u s e c . ) / ( ( P a p e r 0037340 S p e e d I n c h e s / 1 0 0 0037360 x R e s o l u t i o n S / 1 0 0037400 ) l i n e s / s e c ) \r \r / / 0037420 o r a b o u t ( 1 0 6 x 0037440 1 0 ^ 3 ) / ( P a p e r S 0037460 p e e d I n c h e s / 1 0 0 x 0037500 R e s o l u t i o n S / 1 0 ) 0037520 t i c k s - - a b o u 0037540 t 3 0 f o r D o v e r . \r 0037560 \r / / T h i s i s o n l y 0037600 a p p r o x i m a t e b e c 0037620 a u s e R O S S t a t u s t 0037640 i m e , a b o u t 1 0 t i 0037660 c k s f o r D o v e r , i 0037700 s n o t i n c l u d e d . \r 0037720 / / P a r t o f t h e \0 006 0037740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0037760 \0 \0 001 336 302 \0 \0 \0 034 360 \0 360 366 357 370 366 0040000 r e a s o n f o r w a i t 0040020 i n g f o u r l i n e t i 0040040 m e s i s t o a c c o u n 0040060 t f o r p o s s i b l e d 0040100 e l a y s i n o b t a i n i 0040120 n g \r / / t h e c o r r e c 0040140 t l i n e c o u n t s t a 0040160 t u s . L a t e r , t h i s 0040200 m e t h o d c a n b e u 0040220 s e d t o c h e c k f o r 0040240 c o r r e c t p o l y g o n 0040260 s p e e d . \r / / T h e s 0040300 c a n T i c k s s t a t i c 0040320 i s s h i f t e d l e f t 0040340 b y 6 t o m a t c h t h 0040360 e c l o c k r e a d i n g 0040400 f u n c t i o n ' s r e s u l 0040420 t s \r \r \f / / R O S C h e c k 0040440 ( c o n t ) \r \r a n d R O S 0040460 C h e c k ( l v F a i l u r e C 0040500 o d e , n P a g e s A l r e a 0040520 d y P r i n t e d , e x p e c 0040540 t e d , l v X p o r t M o d e 0040560 l ) = v a l o f \r [ \r r o s 0040600 1 2 = R O S S t a t u s ( 1 0040620 2 ) \r r o s 1 3 = R O S S t 0040640 a t u s ( 1 3 ) \r l e t s c 0040660 a n n i n g = t r u e \r l 0040700 e t m o d e , m a i n S e q 0040720 , s u b S e q , m a l F \0 006 0040740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0040760 \0 \0 001 336 300 \0 \0 \0 032 360 \0 360 366 357 370 366 0041000 n S t a t u s = n i l , n 0041020 i l , n i l , n i l \r m a l 0041040 F n S t a t u s , s u b S e q 0041060 , m a i n S e q , m o d e 0041100 = r o s 1 3 & # 3 7 7 , ( r 0041120 o s 1 3 r s h i f t 8 ) & 7 0041140 , ( r o s 1 3 r s h i f t 0041160 1 1 ) & 7 , r o s 1 3 r s h 0041200 i f t 1 4 \r \r s w i t c h o n 0041220 m a i n S e q i n t o \r \t [ 0041240 \r \t c a s e 1 : c a s e 2 0041260 : p r i n t S e q = w a r 0041300 m u p ; e n d c a s e \t \t / / 0041320 p o w e r o n , w a r m u p 0041340 \r \t c a s e 3 : p r i n t S 0041360 e q = s t a n d b y ; e n d 0041400 c a s e \t \t \t \t / / \r \t c a s 0041420 e 4 : s w i t c h o n s u 0041440 b S e q i n t o \r \t \t [ \r \t \t 0041460 c a s e 0 : p r i n t S e q 0041500 = p r i n t i n g ; e n d 0041520 c a s e \t \t \t / / \r \t \t c a s 0041540 e 1 : p r i n t S e q = 0041560 e n d o f r u n ; e n d c a s 0041600 e \t \t \t / / \r \t \t c a s e 2 0041620 : p r i n t S e q = l o w 0041640 p a p e r ; e n d c a s e \r \t 0041660 \t c a s e 3 : p r i n t S e 0041700 q = b a d f e e d ; e n d 0041720 c a s e \r \t \t c a s e 4 : \0 006 0041740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0041760 \0 \0 001 336 276 \0 \0 \0 030 360 \0 360 366 357 370 366 0042000 p r i n t S e q = b a d s 0042020 t r i p ; e n d c a s e \r \t \t 0042040 c a s e 5 : p r i n t S e q 0042060 = c l e a r i n g ; e n d 0042100 c a s e \r \t \t d e f a u l t : 0042120 p r i n t S e q = 8 6 \t \t \t 0042140 \t \t / / s u b S e q e r r o 0042160 r \r \t \t ] ; e n d c a s e \r \t 0042200 c a s e 5 : p r i n t S e q 0042220 = m a l f C l e a r ; e n 0042240 d c a s e \t \t \t \t / / \r \t d e 0042260 f a u l t : p r i n t S e q 0042300 = 8 8 \t \t \t \t \t \t / / M a i n 0042320 s e q e r r o r \r \t ] \r \r / / 0042340 r e a d y i f n o t i n 0042360 l o c a l m o d e a n d 0042400 i f p r i n t e r - s p e c i 0042420 f i c t e s t s i n d i c a 0042440 t e r e a d y \r l e t r e a 0042460 d y = \r \t ( p r i n t S e q 0042500 e q e x p e c t e d ) & 0042520 / / p u f f i n i s w h e 0042540 r e w e t h i n k i t s 0042560 h o u l d b e \r 0042600 m a l F n S t a t u s 0042620 e q 0 & ( r o s 1 2 & 0042640 # 1 7 3 7 7 ) e q r o s C o 0042660 u n t & / / n o m a l f 0042700 a n d n o q u e u e p r o 0042720 b l e m s \r \t \t m o d e e \0 006 0042740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0042760 \0 \0 001 336 274 \0 \0 \0 026 360 \0 360 366 357 370 366 0043000 q 1 / / a n d p u f f i 0043020 n i s i n r e m o t e p 0043040 r i n t m o d e \r \r i f r e 0043060 a d y & ( p r i n t S e q 0043100 n e p r i n t i n g ) t h e 0043120 n \r \t [ \r \t l e t l i n e 0043140 C o u n t = R O S S t a t u 0043160 s ( 7 ) & # 1 7 0 0 0 0 \r \t 0043200 l e t r t c = R e a d 0043220 C l o c k ( ) \r \t u n t i l 0043240 ( R e a d C l o c k ( ) - r t 0043260 c ) g e s c a n T i c k s 0043300 l o o p \r \t s c a n n i n g 0043320 = ( R O S S t a t u s ( 7 ) 0043340 & # 1 7 0 0 0 0 ) n e l i n 0043360 e C o u n t \r \t ] \r \r i f r e 0043400 a d y & s c a n n i n g % 0043420 D e b u g r e s u l t i s 0043440 - 1 \r \r / / A n a l y z e t 0043460 a b l e s t o i d e n t i f 0043500 y t h e p r o b l e m o r 0043520 c o n d i t i o n p r e v e 0043540 n t i n g r e a d y \r l e t 0043560 t a b = t a b l e [ / 0043600 / e r r o r c o d e , , m 0043620 a c h i n e c o d e \r \t 1 0 0043640 l s h i f t 8 + # 3 2 / 0043660 / 1 A 2 / 2 l o w p a p 0043700 e r . \r \t 5 2 l s h i f t 8 0043720 + # 0 0 / / 0 0 X \0 006 0043740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0043760 \0 \0 001 336 272 \0 \0 \0 024 360 \0 360 366 357 370 366 0044000 m i s s e d . \r \t 5 3 l s h 0044020 i f t 8 + # 0 4 / / 0 0044040 4 m a l f u n c t i o n m e 0044060 m o r y s e t . \r \t 5 4 l s 0044100 h i f t 8 + # 1 0 / / 0044120 0 8 1 / 1 F I R E ! ! ! ! ! 0044140 ! ! ! \r \t 5 5 l s h i f t 8 0044160 + # 1 6 / / 0 E 1 / 4 0044200 T r a n s p o r t A . \r \t 5 0044220 6 l s h i f t 8 + # 3 4 0044240 / / 1 C 2 / 3 P a p e r 0044260 g r i p . \r \t 5 7 l s h i f 0044300 t 8 + # 3 6 / / 1 E 0044320 2 / 4 T r a n s p o r t B . 0044340 \r \t 5 8 l s h i f t 8 + 0044360 # 5 0 / / 2 8 3 / 1 F u 0044400 s e r i n t e r l o c k o p 0044420 e n . \r \t 5 9 l s h i f t 8 0044440 + # 5 4 / / 2 C 3 / 3 0044460 B o t t o m t r a y i n t 0044500 e r l o c k o p e n . \r \t 6 0 0044520 l s h i f t 8 + # 5 6 0044540 / / 2 E 3 / 4 T r a n s p 0044560 o r t C j a m . \r \t 6 1 l 0044600 s h i f t 8 + # 7 4 / / 0044620 3 C 4 / 3 F r o n t d o 0044640 o r o p e n . \r \t 6 2 l s h 0044660 i f t 8 + # 1 1 6 / / 4 0044700 E 5 / 4 T o n e r c a l l 0044720 . \r \t 6 3 l s h i f t 8 \0 006 0044740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0044760 \0 \0 001 336 270 \0 \0 \0 022 360 \0 360 366 357 370 366 0045000 + # 1 5 0 / / 6 8 7 / 1 0045020 F u n c t i o n a l i n t e 0045040 r l o c k o p e n . \r \t 0 0045060 ] \r \r \f / / C o n d i t i o n 0045100 i n t e r p r e t e r \r l e t 0045120 x = E n g i n e C o m m E 0045140 r r ( r o s 1 2 ) \r i f x n 0045160 e 0 d o [ x = x + 7 0045200 1 ] \r l e t c o d e = 0 0045220 \r \t t e s t m o d e n e 1 0045240 t h e n c o d e = 1 1 \t 0045260 \t / / ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 0045300 ~ ~ ~ ~ ~ \r \t o r t e s t 0045320 r o s 1 2 < 0 t h e n c 0045340 o d e = 5 0 \r \t o r t e 0045360 s t m a l F n S t a t u s e 0045400 q 0 t h e n c o d e = 0045420 p r i n t S e q > m a l f 0045440 C l e a r ? p r i n t S e q , 0045460 x \r \t o r t e s t # 2 0045500 0 0 l e m a l F n S t a t u 0045520 s & m a l F n S t a t u s 0045540 l e # 2 4 0 t h e n c o d 0045560 e = 6 4 \r 0045600 / / 8 0 - A 0 0045620 T e v e n t s m i s s e d 0045640 \r \t o r w h i l e @ t a b 0045660 d o \r \t \t [ \r \t \t l e t e n 0045700 t r y = @ t a b \r \t \t i f 0045720 m a l F n S t a t u s e q \0 006 0045740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0045760 \0 \0 001 336 266 \0 \0 \0 020 360 \0 360 366 357 370 366 0046000 ( e n t r y & # 3 7 7 ) t h 0046020 e n [ c o d e = e n t r 0046040 y r s h i f t 8 ; b r e a 0046060 k ] \r \t \t t a b = t a b 0046100 + 1 \r \t \t ] \r / / R O S C h 0046120 e c k ( c o n t ) \r \r / / C 0046140 o d e s g e n e r a t e d e 0046160 l s e w h e r e : \r / / \t 7 - 0046200 - n o s p e c i f i c m a 0046220 l f u n c t i o n d e t e c t 0046240 e d , b u t s o m e t h i n 0046260 g i s w r o n g \r / / \t 1 6 0046300 - - p a g e s y n c n e 0046320 v e r t u r n e d o f f \r / 0046340 / \t 1 7 - - s e v e r a l 0046360 c o n s e c u t i v e u n i d 0046400 e n t i f i e d e r r o r s \r 0046420 / / \t 1 8 - - O r b i t t 0046440 i m e d o u t - - p a g e 0046460 s y n c n e v e r a r r i 0046500 v e d , o r e n g i n e d 0046520 i e d o r g o t b e h i n 0046540 d \r / / \t 1 9 - - A l t o 0046560 c o d e t i m e d o u t - 0046600 - s a m e s y m p t o m s \r 0046620 / / \t 3 0 0 - - O r b i t 0046640 g o t b e h i n d , b u t 0046660 p a g e t e r m i n a t e d 0046700 n o r m a l l y \r / / \t 3 0 1 0046720 - - O r b i t g o t b \0 006 0046740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0046760 \0 \0 001 336 264 \0 \0 \0 016 360 \0 360 366 357 370 366 0047000 e h i n d , h a d t o q u 0047020 i t e a r l y \r / / \t 3 1 0 0047040 - - L e f t o v e r t a b 0047060 l e g o t t o o l a r g e 0047100 . P l e a s e r e p o r t 0047120 t o f i x e r . \r \r / / N o 0047140 o t h e r e x p l i c i t 0047160 p r o b l e m s , r e p o r t 0047200 l o c a l m o d e , o r 0047220 l a s e r o f f , o r u n 0047240 k n o w n p r o b l e m \r \t u 0047260 n l e s s c o d e d o \r \t 0047300 \t [ \r \t \t t e s t s c a n n i 0047320 n g i f n o t c o d e = 0047340 1 \r \t \t i f s o \r \t \t [ \r \t \t i 0047360 f p r i n t S e q n e e x 0047400 p e c t e d r e s u l t i s 0047420 - 2 \r \t \t c o d e = 7 \r \t \t ] 0047440 \r \t \t ] \r \t @ l v F a i l u r e 0047460 C o d e = c o d e \r \t l e 0047500 t r e v s P e r P a g e = 0047520 3 + ( C a p a b i l i t i e 0047540 s & m B l a c k H o u s i n g 0047560 ) ? 1 , 0 \r \t l e t b a c k u 0047600 p = n P a g e s P r i n t e 0047620 d r e m r e v s P e r P a g 0047640 e / / r e p r i n t s h 0047660 e e t o n d r u m i f a 0047700 n y \r \t s w i t c h o n c o d 0047720 e i n t o \r \t \t [ \r \t \t c \0 006 0047740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0047760 \0 \0 001 336 262 \0 \0 \0 \f 360 \0 360 366 357 370 366 0050000 a s e 5 8 t o 6 5 : \r \t \t 0050020 c a s e 5 2 t o 5 4 : 0050040 / / r e p r i n t s h e e t 0050060 a t C t r a n s p o r t i 0050100 f a n y \r \t \t \t i f @ l v X 0050120 p o r t M o d e l & 4 n e 0050140 0 d o b a c k u p = b 0050160 a c k u p + r e v s P e r P 0050200 a g e \r \t \t c a s e 5 7 : 0050220 / / r e p r i n t s h e e t 0050240 a t B t r a n s p o r t i 0050260 f a n y \r \t \t \t i f @ l v X 0050300 p o r t M o d e l & 2 n e 0050320 0 d o b a c k u p = b 0050340 a c k u p + r e v s P e r P 0050360 a g e \r \t \t c a s e 5 5 : 0050400 / / r e p r i n t s h e e t 0050420 a t A t r a n s p o r t i 0050440 f a n y \r \t \t \t i f @ l v X 0050460 p o r t M o d e l & 1 n e 0050500 0 d o b a c k u p = b 0050520 a c k u p + r e v s P e r P 0050540 a g e \r \t \t c a s e 2 : c a 0050560 s e 7 : c a s e 8 : c a 0050600 s e 1 1 t o 5 1 : \r \t \t \t 0050620 i f n P a g e s P r i n t e d 0050640 r e m r e v s P e r P a g e 0050660 e q 0 d o \r \t \t \t \t / / r 0050700 e p r i n t s h e e t w e 0050720 t h i n k w e s h o u l \0 006 0050740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0050760 \0 \0 001 336 260 \0 \0 \0 \n 360 \0 360 366 357 370 366 0051000 d h a v e s t r i p p e d 0051020 f r o m d r u m \r \t \t \t b 0051040 a c k u p = b a c k u p + 0051060 r e v s P e r P a g e \r \t \t ] 0051100 \r \t @ l v X p o r t M o d e l 0051120 = 0 \r \t r e s u l t i s M a 0051140 x ( n P a g e s A l r e a d y P 0051160 r i n t e d , n P a g e s P r 0051200 i n t e d - b a c k u p ) \r ] \r 0051220 \f / / - - - - - - - - - - - - 0051240 - - - - - - - - - - - - - - - - 0051260 - - - - - - - - - - - - - \r / / 0051300 H a r d w a r e s e t u p 0051320 f o r v a r i o u s d e v i 0051340 c e s . \r / / - - - - - - - - 0051360 - - - - - - - - - - - - - - - - * 0051420 - \r \r a n d I n i t i a l i z 0051440 e H a r d w a r e ( r e s e t E 0051460 n g i n e S e q ) b e \r [ \t i 0051500 f D e b u g r e t u r n \r \t 0051520 I n i t R a m ( 0 ) \t \t \t / / R 0051540 e s e t a l l R A M t a s 0051560 k s , r e s t a r t T r i d 0051600 e n t i f n e c e s s a r y 0051620 \r \t D o F u n c ( f C o n t r o 0051640 l , 1 ) \t \t / / R e s e t O 0051660 r b i t \r \r \t i f r e s e t E 0051700 n g i n e S e q d o \r \t [ \r 0051720 \t R O S C o m m a n d ( # 6 \0 006 0051740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0051760 \0 \0 001 336 256 \0 \0 \0 \b 360 \0 360 366 357 370 366 0052000 0 0 0 0 , l v r o s c p r o 0052020 b ) \t \t / / R e s e t c o m 0052040 m a n d c o u n t \r \t i f r 0052060 o s c p r o b e q 0 d o \r 0052100 \t \t [ \r \t \t R O S C o m m a n d 0052120 ( # 6 3 0 5 0 , l v r o s c 0052140 p r o b ) \t \t \t / / R e a d 0052160 o u t m a l f u n c t i o n 0052200 d a t a , c l e a r m a l f 0052220 . \r \t \t r o s c p r o b = r 0052240 o s c p r o b & 3 \r \t \t ] \r 0052260 \t ] \r ] \r \r a n d B l a s t ( 0052300 ) b e I n i t i a l i z e H 0052320 a r d w a r e ( f a l s e ) \r \r 0052340 a n d R O S C o m m a n d ( x 0052360 , l v E r r o r ; n u m a r 0052400 g s n a ) b e \r \t [ \r \t t e 0052420 s t x e q # 6 0 0 0 0 i 0052440 f s o r o s c p r o b , r o 0052460 s C o u n t = 0 , 0 \r \t i 0052500 f n o t r o s C o u n t = 0052520 r o s C o u n t + 1 \r \t D o 0052540 F u n c ( f R O S C o m m a n d 0052560 , x ) \r \t u n l e s s ( n a 0052600 n e 2 ) % D e b u g d 0052620 o \r \t \t [ \r \t \t l e t t i m , 0052640 g o o d = @ R T C , f a 0052660 l s e \r \t \t u n t i l ( @ R T 0052700 C - t i m ) g e e T i c 0052720 k s d o \r \t \t \t [ \r \t \0 006 0052740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0052760 \0 \0 001 336 254 \0 \0 \0 006 360 \0 360 366 357 370 366 0053000 \t \t r o s 1 2 = R O S S t a 0053020 t u s ( 1 2 ) \r \t \t \t i f ( r 0053040 o s C o u n t & # 3 7 7 ) 0053060 e q ( r o s 1 2 & # 1 7 3 0053100 7 7 ) t h e n [ g o o d 0053120 = t r u e ; b r e a k ] \r 0053140 \t \t \t ] \r \t \t i f n o t g 0053160 o o d t h e n @ l v E r r o 0053200 r = E n g i n e C o m m E r 0053220 r ( r o s 1 2 ) \r \t \t ] \r \t ] \r 0053240 \r a n d l e t E n g i n e C 0053260 o m m E r r ( x ) = v a l o 0053300 f \r \t [ \r \t i f ( x & # 1 0053320 0 0 0 0 ) e q # 1 0 0 0 0 0053340 d o \r \t \t [ \r \t \t i f ( x 0053360 & # 4 0 0 0 ) e q # 4 0 0 0053400 0 r e s u l t i s 3 \r \t \t i 0053420 f ( x & # 2 0 0 0 ) e q 0053440 # 2 0 0 0 r e s u l t i s 0053460 2 \r \t \t i f ( x & # 1 0 0 0053500 0 ) e q # 1 0 0 0 r e s 0053520 u l t i s 3 \r \t \t r e s u l t 0053540 i s 4 \r \t \t ] \r \t i f ( x & 0053560 # 3 7 7 ) n e ( r o s C o 0053600 u n t & # 3 7 7 ) r e s u 0053620 l t i s 1 \r \t r e s u l t i s 0053640 0 \r \t ] \r \r \r / / B W B . N 0053660 o v e m b e r 1 3 , 1 9 7 8 0053700 1 2 : 3 6 P M d e r i v 0053720 e d f r o m s p r u c e \0 006 0053740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0053760 \0 \0 001 336 252 \0 \0 \0 004 360 \0 360 366 357 370 366 0054000 p r i n t \r / / D e c e m b e 0054020 r 1 1 , 1 9 7 8 r e s e t 0054040 r e m o t e q u e u e d o 0054060 e s n ' t a p p e n d q e 0054100 n t r y a n y m o r e . P 0054120 o l i s h i t u p s o m e . 0054140 \r / / J a n u a r y 2 , 1 0054160 9 7 9 3 : 4 1 P M m o d 0054200 i f y R O S C h e c k t o 0054220 p r e s e r v e s t a t u s 0054240 \r / / F e b r u a r y 2 3 , 0054260 1 9 7 9 4 : 0 9 P M c 0054300 l e a n u p \r / / M a r c h 0054320 7 , 1 9 7 9 2 : 1 1 P M 0054340 a d d 4 - c o l o r c a p 0054360 a b i l i t y \r / / A p r i l 0054400 2 7 , 1 9 7 9 1 1 : 4 5 0054420 A M , a d d D o v e r E 0054440 n g i n e C o n t r o l M o 0054460 n i t o r i n g c o d e , s 0054500 e e S p r u c e M e a s u r e 0054520 , b y S w i n e h a r t \r / 0054540 / \t a d d a b i l i t y 0054560 t o p l a c e f o n t s i 0054600 n b a n k 1 - - s e e 0054620 a l l u s e s o f x m F o 0054640 n t s \r / / \t r e p a i r 0054660 b u g i n B a n k B l t i 0054700 n t e r f a c e f o r x m F 0054720 o n t s s t u f f \r / / \0 006 0054740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0054760 \0 \0 001 336 250 \0 \0 \0 002 360 \0 360 366 357 370 366 0055000 M a y 1 7 , 1 9 7 9 4 : 0055020 4 3 P M r e p a i r e r r 0055040 o r s \r / / M a y 2 3 , 1 0055060 9 7 9 3 : 0 8 P M , f i 0055100 x m e a s u r e i n t e r f 0055120 a c e \r / / A u g u s t 1 , 0055140 1 9 7 9 3 : 1 4 P M , 0055160 m B l a c k b e c a m e m B 0055200 l a c k H o u s i n g ? ? ! ! 0055220 \r / / F e b r u a r y 2 , 0055240 1 9 8 1 4 : 3 0 P M , 0055260 d o n ' t s w a t i f b a 0055300 d b a n d e n t r y p r o 0055320 b a b l y d u e t o l e f 0055340 t o v e r o v e r f l o w \r \r 0055360 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0055720 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 006 0055740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @ 0055760 \0 \0 \0 360 246 \0 \0 \0 \0 360 \0 360 366 357 370 366 0056000