$ od -c -N 50000 [Indigo]<Spruce>12>sources>SprucePrinPimlico.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 \a \0 035 \0 \0 ( \0 \0 @ 0000760 \0 \0 001 336 \0 \0 \0 \0 @ 035 \0 035 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 n P a g e s P r 0001160 i n t e d \r \t b a n d R e c o r 0001200 d S i z e \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 I n i t M e a s u r e / / 0001360 e n g i n e c o n t r o l 0001400 m o n i t o r i n g s t u f 0001420 f \r \t C l o s e M e a s u r e \r 0001440 \t T i c k M e a s u r e \r \t M e 0001460 a s u r e \r \t m e a s u r e T a 0001500 b l e \r \t x m F o n t s \t / / 0001520 F o n t d a t a w i l l b 0001540 e r e a d i n t o B a n k 0001560 1 v i a B a n k 0 , i 0001600 f s e t \r \t n R e c s \r \t L o 0001620 w A d r \r \t F A v a l u e \r \t n 0001640 B a n d s \r \t s t o p s P r i n 0001660 t i n g \r \t ] \r \r \f \r / / i n 0001700 t e r n a l s t a t i c s \r s 0001720 t a t i c \r \t [ \r \t r o s C \0 006 0001740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0001760 \0 \0 001 336 376 \0 \0 \0 > 035 \0 035 366 357 370 366 0002000 o u n t = 0 / / P i m l 0002020 i c o / p u f f i n c o m m a 0002040 n d c o u n t \r \t r o s S y n 0002060 c E r r o r = f a l s e / 0002100 / P i m l i c o / p u f f i n 0002120 - - s y n c p r o b l e m 0002140 \r \t s t a r t R u n = t r u 0002160 e \r \t / / d e l a y ~ ~ ~ ~ 0002200 d e b u g g i n g : d e l a 0002220 y p e r p a g e t o s i 0002240 m u l a t e p r i n t i n g \r 0002260 \t d e b D e l a y = 0 / / 0002300 d e l a y n o d e l a y 0002320 s t d . \r \t / / d e l a y 0002340 ~ ~ ~ ~ \r \t ] \r \r / / F i l e 0002360 - w i d e s t r u c t u r e 0002400 a n d m a n i f e s t d e c 0002420 l a r a t i o n s . \r \r m a n i 0002440 f e s t [ \r \t e T i c k s = 0002460 4 \t \r \t t i m e O u t = 1 5 * 0002500 2 7 \r \t p r i n t H y s t e r e 0002520 s i s = 1 5 / / p r i n 0002540 t t h i s m a n y b e f o 0002560 r e a l l o w i n g s u s p 0002600 e n s i o n , e a c h t i m 0002620 e i n \r \t / / ~ ~ a b 0002640 o v e n u m b e r m a y w 0002660 a n t t o i n c r e a s e 0002700 f o r l a r g e r u n s , 0002720 o r s o m e t h i n g ? \r \0 006 0002740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0002760 \0 \0 001 336 374 \0 \0 \0 < 035 \0 035 366 357 370 366 0003000 \t R T C = # 4 3 0 \r \t d e b u g 0003020 T r a i l S i z e = 1 0 * 3 0003040 \r \r \t / / F a i l u r e C o 0003060 d e r a n g e s - - s e e 0003100 R O S C h e c k \r \t m a x N o 0003120 t R e a d y = 9 / / n o 0003140 t r e a d y , b u t p r o 0003160 b a b l y w i l l b e s o 0003200 o n \r \t m a x M a n u a l = 0003220 1 9 / / M a n u a l i n t 0003240 e r v e n t i o n r e q u i r 0003260 e d \r \t m a x J a m = 9 9 \t 0003300 / / E r r o r d u r i n g 0003320 o p e r a t i o n \r \t m i n D o 0003340 c u m e n t E r r o r = 3 0 0003360 0 / / D o c u m e n t i n 0003400 h e r e n t l y h a r d t o 0003420 p r i n t \r \t \t ] \r \r \r \f \r / 0003440 / - - - - - - - - - - - - - - 0003460 - - - - - - - - - - - - - - - - * 0003520 - - - - - - - - - - - - - \r / / 0003540 P r i n t \t \t I n i t i a l i 0003560 z a t i o n \r / / - - - - - - 0003600 - - - - - - - - - - - - - - - - * 0003660 - - - - - \r \r / / R e t u r n 0003700 s - 1 i f p r i n t i n g 0003720 i s s u c c e s s f u l \0 006 0003740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0003760 \0 \0 001 336 372 \0 \0 \0 : 035 \0 035 366 357 370 366 0004000 l y c o m p l e t e d , e l 0004020 s e \r / / n P a g e s P r i n 0004040 t e d , s o c a n p i c k 0004060 u p w h e r e w e l e f 0004100 t o f f . \r \r l e t D r i v 0004120 e P r i n t e r ( p D o c , n 0004140 P a g e s A l r e a d y P r i n 0004160 t e d , l v F a i l u r e C o 0004200 d e ) = v a l o f \r [ \r \t l 0004220 e t m e a s u r e V e c = 0004240 v e c 5 \r \t l e t C o m m T 0004260 a b = v e c 3 \r \t C o m m T a 0004300 b = ( C o m m T a b + 1 ) & ( - 0004320 2 ) \r \t C o m m T a b ! 0 = - 1 0004340 \r \r \t I n i t i a l i z e H a r 0004360 d w a r e ( t r u e ) \r \t I n i 0004400 t M e a s u r e ( m e a s u r e 0004420 T a b l e , 2 0 0 0 , m e a 0004440 s u r e V e c ) \r \t l e t k n 0004460 o c k K n o c k = f a l s e 0004500 \t \t / / t i m e t o l e t 0004520 s o m e b o d y i n i f 0004540 t r u e \r \t l e t n e e d I n 0004560 i t , n e e d F o n t s = 0004600 t r u e , t r u e \r \t l e t 0004620 c o p y , n f R e c s , L e 0004640 f t O v e r , L e f t O v e r 0004660 G u a r d , F o n t T a b l e 0004700 , b u f = n i l , n i l 0004720 , n i l , n i l , n i \0 006 0004740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0004760 \0 \0 001 336 370 \0 \0 \0 8 035 \0 035 366 357 370 366 0005000 l , n i l \r \t l e t n p = 0005020 n i l \r \t l e t n e x t P a 0005040 g e = P r i n t N e x t ( p 0005060 D o c , l v c o p y , n P 0005100 a g e s P r i n t e d ) \r \r \f / 0005120 / - - - - - - - - - - - - - - - 0005140 - - - - - - - - - - - - - - - - 0005160 - \r / / P r i n t l o o p \r / 0005200 / - - - - - - - - - - - - - - - 0005220 - - - - - - - - - - - - - - - - 0005240 - - - \r \r [ P r i n t l o o p \r 0005260 \t l e t p a g e = n e x t P a 0005300 g e / / F i n d o 0005320 u t w h i c h p a g e t o 0005340 p r i n t n e x t : \r \t i f 0005360 p a g e e q 0 t h e n 0005400 [ k n o c k K n o c k = f 0005420 a l s e ; b r e a k ] \r \t i 0005440 f k n o c k K n o c k t h e 0005460 n b r e a k / / g o l e 0005500 t s o m e b o d y i n \r \t i 0005520 f s t o p s P r i n t i n g 0005540 e q b i n F u l l t h e n 0005560 [ @ l v F a i l u r e C o d e 0005600 = 1 3 0 ; b r e a k ] \r 0005620 \r \t i f n e e d F o n t s d 0005640 o \r \t [ \t \t \t \t / / R e a d 0005660 i n f o n t a n d r e l o 0005700 c a t e t h e p o i n t e r 0005720 s t o c h a r a c t e r \0 006 0005740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0005760 \0 \0 001 336 366 \0 \0 \0 6 035 \0 035 366 357 370 366 0006000 s : \r \t l e t f o n t = p a g 0006020 e > > P a g e G . f o n t L o a 0006040 d * ( s i z e F o n t G / 1 6 0006060 ) + p D o c > > D o c G . F o n 0006100 t s \r \t \t / / N e x t c a l 0006120 l r e t u r n s l o c a t i 0006140 o n o f I C C t a b l e , 0006160 \r \t \t F o n t T a b l e = R 0006200 e a d F o n t ( f o n t , L o 0006220 w A d r , n R e c s ) \r \t \t u 0006240 n l e s s x m F o n t s d o 0006260 f o r i = 0 t o p D o c 0006300 > > D o c G . I C C t o t a l - 0006320 1 d o / / i f r a s t e 0006340 r s a r e i n b a n k 1 0006360 , t h e y s t a r t a t 0006400 0 \r \t \t \t F o n t T a b l e ! i 0006420 = F o n t T a b l e ! i + L 0006440 o w A d r \r \t F o n t T a b l e 0006460 = F o n t T a b l e - 1 0 0 0 0 0006500 0 b \r \r \t \t l e t n R e c o r 0006520 d s = x m F o n t s ? ( p D 0006540 o c > > D o c G . I C C t o t a 0006560 l + b a n d R e c o r d S i z e 0006600 - 1 ) r s h i f t l o g B a 0006620 n d R e c o r d S i z e , \r \t \t 0006640 \t \t f o n t > > F o n t G . n R 0006660 e c o r d s \r \t n f R e c s = ( 0006700 n R e c s - n R e c o r d s ) \r 0006720 \t L e f t O v e r = L o w A \0 006 0006740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0006760 \0 \0 001 336 364 \0 \0 \0 4 035 \0 035 366 357 370 366 0007000 d r + ( n R e c o r d s l s h 0007020 i f t l o g B a n d R e c o r 0007040 d S i z e ) \r \t L e f t O v e r 0007060 G u a r d = L e f t O v e r 0007100 + ( l o S i z e & ( - 4 ) ) - 4 0007120 \r \t b u f = ( L e f t O v e 0007140 r + l o S i z e + 8 ) & ( - 2 ) 0007160 / / ~ ~ a l l t h e 4 0007200 ' s , 8 ' s a n d 1 0 ' s 0007220 i n h e r e a r e c o w 0007240 a r d l y s l a c k \r \t n e e 0007260 d F o n t s = f a l s e \r \t 0007300 ] \r \r \t R e a d B a n d s ( 0007320 p a g e , b u f , n f R e c 0007340 s ) \t \t \t / / N o w r e a d 0007360 i n t h e b a n d s f o 0007400 r t h i s p a g e \r \r i f 0007420 n e e d I n i t d o \r \t [ \r \t 0007440 I n i t i a l i z e H a r d w a 0007460 r e ( f a l s e ) \t \t \t / / I 0007500 n i t i a l i z e t h e O r 0007520 b i t , e t c . \r \t l e t t 0007540 i m = @ R T C \r u n l 0007560 e s s D e b u g d o / / 0007600 w a i t f o r r e a d y 0007620 o r s o m e s e r i o u s 0007640 c o n d i t i o n o r f o r 0007660 l o n g e n o u g h \r \t [ \r 0007700 \t n p = R O S C h e c k ( l 0007720 v F a i l u r e C o d e , \0 006 0007740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0007760 \0 \0 001 336 362 \0 \0 \0 2 035 \0 035 366 357 370 366 0010000 n P a g e s A l r e a d y P r i 0010020 n t e d , f a l s e ) \r \t i f 0010040 n p e q - 1 b r e a k 0010060 / / r e a d y \r \t i f @ l v 0010100 F a i l u r e C o d e > m a 0010120 x N o t R e a d y % ( @ R T 0010140 C - t i m ) > t i m e O u t 0010160 r e s u l t i s n p \r \t ] 0010200 r e p e a t \r \r / / T r y t 0010220 o e m p t y O r b i t b u 0010240 f f e r s t o c l e a r t 0010260 h e m . T h i s i s t o 0010300 m i n i m i z e t o n e r 0010320 d u m p i n g o n f i r s t 0010340 ( b l a n k ) p a g e . \r \t 0010360 c o m p i l e i f l o S i z e 0010400 l s 2 5 6 t h e n [ f 0010420 o o = n i l ] \r \t f o r i = 0010440 0 t o 3 1 d o D o F u n 0010460 c ( f R e a d B l o c k , 2 5 0010500 6 , L e f t O v e r ) \r \r \t D 0010520 o F u n c ( f C o n t r o l , 0010540 2 1 b ) \r / / T u r n o f f 0010560 a d C o m m a n d B e a m O n 0010600 , i f o n , r e v e r t 0010620 t o n o r m a l m o d u l a 0010640 t i o n - - \r / / ~ ~ c a u 0010660 s e s g l i t c h \t A d C o m 0010700 m a n d ( A d a p t e r S c a l 0010720 e s ) \r \t D o F u n c ( f R \0 006 0010740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0010760 \0 \0 001 336 360 \0 \0 \0 0 035 \0 035 366 357 370 366 0011000 O S C o m m a n d , a d B u f 0011020 f e r R e s e t ) \r \t \t R O S C 0011040 o m m a n d ( # 6 3 3 4 6 ) \t / 0011060 / S t a r t , u s i n g s 0011100 t d . 3 c o l o r v i d e 0011120 o q u e u e \r \t \t A w a i t P 0011140 a g e S y n c ( 0 ) \r \t n e e d 0011160 I n i t = f a l s e \r \t ] \r 0011200 \r \t \t l e t n C = n i l \r 0011220 \t \t n e x t P a g e = P r i 0011240 n t N e x t ( p D o c , l v 0011260 n C , n P a g e s P r i n t e 0011300 d + 1 ) \r \t \t u n l e s s n e 0011320 x t P a g e d o R O S C o m 0011340 m a n d ( # 6 3 0 3 0 ) / / 0011360 S t o p P r i n t ( a t e 0011400 n d o f c o p y ) \r \r / / 0011420 S t a r t O r b i t w o r k 0011440 i n g o n t h e p r e s e 0011460 n t p a g e . \r \t D o F u n c 0011500 ( f C o n t r o l , # 2 1 ) \t 0011520 \t / / R e s e t , c l e a r 0011540 b e h i n d \r \t D o F u n c ( f 0011560 R O S C o m m a n d , a d B u 0011600 f f e r R e s e t ) \r \r \t L e f 0011620 t O v e r ! 0 = 0 \t \t \t / / I n 0011640 i t i a l i z e L e f t O v e 0011660 r t a b l e \r \t L e f t O v e 0011700 r G u a r d ! 1 = - 1 \r \t l e t 0011720 t i m = @ R T C \r / / S \0 006 0011740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0011760 \0 \0 001 336 356 \0 \0 \0 . 035 \0 035 366 357 370 366 0012000 t a r t t h e m i c r o c o 0012020 d e ! ! ! ! \r \t D o F u n c ( f 0012040 S l o t , C o m m T a b , 2 0012060 0 0 0 0 , n B a n d s - 1 , 0012100 F A v a l u e , L e f t O v e 0012120 r , \r \t \t \t F o n t T a b l e , 0012140 b u f - 1 , n i l , n i l 0012160 , ( c o p y l s h i f t 5 0012200 ) + 4 ) \r \r i f D e b u g t 0012220 h e n / / ~ ~ d e l a y \r \t 0012240 [ / / ~ ~ d e l a y \r \t w h 0012260 i l e ( @ R T C - t i m ) < 0012300 d e b D e l a y l o o p \t / 0012320 / ~ ~ d e l a y \r \t t i m = 0012340 @ R T C / / ~ ~ d e l a y 0012360 d o n ' t i n v o k e t i 0012400 m e o u t c o d e b e l o w 0012420 \r \t ] / / ~ ~ d e l a y \r \f 0012440 \r / / A s s u m e t h e p 0012460 a g e w e a r e p r i n t 0012500 i n g w i l l b e O K : \r 0012520 \t n P a g e s P r i n t e d = n 0012540 P a g e s P r i n t e d + 1 \r \t 0012560 C u r s o r D i g i t ( n P a g 0012600 e s P r i n t e d ) \r \t c o p y 0012620 = n C \r / / S e e w h o 0012640 ' s ( m a y b e ) k n o c k 0012660 i n g a t m y d o o r \r / 0012700 / T h i s l o g i c i s 0012720 c o p i e d f r o m S p \0 006 0012740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0012760 \0 \0 001 336 354 \0 \0 \0 , 035 \0 035 366 357 370 366 0013000 r u c e U t i l s R e s : i f 0013020 w e a r e n o t p l a n 0013040 n i n g t o d e f e r t o 0013060 s p o o l e r , \r / / d o 0013100 n ' t t r o u b l e t o s 0013120 h u t d o w n h e r e , j 0013140 u s t t o f i n d t h a t 0013160 o u t t h e r e . W o u l 0013200 d b e t o o e x p e n s i 0013220 v e \r \t i f ( D e b u g S y s 0013240 t e m & # 3 0 ) e q 0 & 0013260 n u m P r i n t e d g e n u 0013300 m M u s t P r i n t & k n o 0013320 c k R e s u l t & \r \t ( n P a 0013340 g e s P r i n t e d - n P a g e 0013360 s A l r e a d y P r i n t e d ) 0013400 > p r i n t H y s t e r e s 0013420 i s \r \t t h e n k n o c k 0013440 K n o c k = t r u e \r \r \t i 0013460 f ( n e x t P a g e > > P a g 0013500 e G . f o n t L o a d n e p 0013520 a g e > > P a g e G . f o n t L 0013540 o a d ) d o n e e d F o n t 0013560 s = t r u e \r \r / / N o w 0013600 s e e i f w e a c t u a 0013620 l l y p r i n t e d t h i s 0013640 p a g e p r o p e r l y . 0013660 F i r s t , w a i t f o r 0013700 O r b i t t o a n n o u n 0013720 c e i t i s f i n i s \0 006 0013740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0013760 \0 \0 001 336 352 \0 \0 \0 * 035 \0 035 366 357 370 366 0014000 h e d . \r \t l e t i m a g e T 0014020 i m e o u t = 1 0 * 2 7 \r 0014040 \t w h i l e @ # 7 2 0 n e 0014060 0 d o i f ( @ R T C - t i 0014100 m ) g r i m a g e T i m e o 0014120 u t t h e n \r \t \t [ \r \t \t B l 0014140 a s t ( ) \t \t / / c l e a r 0014160 h a r d w a r e , # 7 2 0 \r \t 0014200 \t / / M a c h i n e d e a 0014220 d o r O r b i t g o t b 0014240 e h i n d a n d i t w a s 0014260 n ' t d e t e c t e d \r \t \t 0014300 / / W i l l g e n e r a l l 0014320 y b e o v e r r i d e n b 0014340 y m o r e s p e c i f i c 0014360 a n a l y s i s \r \t \t @ l v F a 0014400 i l u r e C o d e = 1 9 / 0014420 / M a n u a l i n t e r v e 0014440 n t i o n r e q u i r e d \r \t 0014460 \t b r e a k \r \t \t ] \r / / C h 0014500 e c k O r b i t s t a t u s 0014520 \r \t l e t n o n F = 0 \r \t 0014540 l e t s t a t = F u n c ! 9 \t 0014560 \t / / O r b i t p r i n t i n 0014600 g s t a t u s . \r \t / / F a 0014620 t a l e r r o r d e t e c t 0014640 e d b y m i c r o c o d e 0014660 - - i n v a l i d B a n d 0014700 e n t r y - - p o s s i b l 0014720 y b r o k e n p r o c e \0 006 0014740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0014760 \0 \0 001 336 350 \0 \0 \0 ( 035 \0 035 366 357 370 366 0015000 s s o r \r \t i f s t a t < < S 0015020 T A T U S . i n v a l i d B a n 0015040 d E n t r y t h e n \r \t \t [ 0015060 I n i t i a l i z e H a r d w a 0015100 r e ( t r u e ) ; \r \t \t i 0015120 f L e f t O v e r G u a r d ! 0015140 1 e q - 1 t h e n S p r 0015160 u c e E r r o r ( 1 0 1 0 , @ 0015200 1 , @ 2 ) / / e l s e , 0015220 a s s u m e \r \t \t \t / / t h a t 0015240 b a d b a n d e n t r y 0015260 i s s i m p l y r e s u l t 0015300 o f l e f t o v e r o v e 0015320 r f l o w \r \t \t ] \r \t t e s t 0015340 s t a t < < S T A T U S . p r e 0015360 m a t u r e P a g e A b o r t 0015400 t h e n [ A n n o u n c e ( 0015420 1 6 ) ; n o n F = 3 0 1 0015440 ] \r \t o r i f s t a t < 0015460 < S T A T U S . b e h i n d t 0015500 h e n [ A n n o u n c e ( 1 0015520 6 ) ; n o n F = 3 0 0 ] 0015540 \r \t i f s t a t < < S T A T U 0015560 S . t i m e o u t t h e n [ 0015600 A n n o u n c e ( 1 7 ) ; @ 0015620 l v F a i l u r e C o d e = 0015640 1 8 ] \r \t i f L e f t O v e 0015660 r G u a r d ! 1 n e - 1 t 0015700 h e n \r \t [ A n n o u n c 0015720 e ( 1 8 ) ; n o n F = \0 006 0015740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0015760 \0 \0 001 336 346 \0 \0 \0 & 035 \0 035 366 357 370 366 0016000 3 1 0 ] \r \t i f n o n F t 0016020 h e n @ l v F a i l u r e C o 0016040 d e = n o n F \r / / N o w 0016060 t r y f o r m o r e s p 0016100 e c i f i c e n g i n e s t 0016120 a t u s c h e c k \r \r \t n p = 0016140 R O S C h e c k ( l v F a i l u 0016160 r e C o d e , n P a g e s A l 0016200 r e a d y P r i n t e d , t r 0016220 u e ) \r \r / / N o w w a i t 0016240 f o r p a g e s y n c t 0016260 o g o o f f \r \t u n l e s s 0016300 A w a i t P a g e S y n c ( 0 0016320 ) t h e n @ l v F a i l u r 0016340 e C o d e = 1 6 \r \r / / N o 0016360 w d e c i d e w h a t t o 0016400 d o : \r \t l e t m a l f u n 0016420 c t i o n = @ l v F a i l u 0016440 r e C o d e \r \t i f m a l f u 0016460 n c t i o n g e m i n D o c 0016500 u m e n t E r r o r t h e n 0016520 m a l f u n c t i o n = 0 0016540 / / w i l l n o t s t o p 0016560 \r \r / / N o w r e a c t t 0016600 o t h e a n a l y s i s : 0016620 i f a t t h i s p o i n t 0016640 n o t h i n g i s w r o n 0016660 g a n d s h e e t s a r e 0016700 f e e d i n g , s t e a m 0016720 a h e a d . \r \r \t u n l e \0 006 0016740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0016760 \0 \0 001 336 344 \0 \0 \0 $ 035 \0 035 366 357 370 366 0017000 s s ( ( n P a g e s P r i n t 0017020 e d r e m 3 ) n e 2 ) 0017040 % m a l f u n c t i o n d 0017060 o [ A d d T o B i n ( 5 0 ) 0017100 ; l o o p ] \r \r \t \t I n i t 0017120 i a l i z e H a r d w a r e ( t 0017140 r u e ) \r \t \t / / i f m a l 0017160 f u n c t i o n d e t e c t e 0017200 d o u t s i d e o f R O S 0017220 C h e c k , s e t n p \r \r 0017240 \t \t l e t b a c k u p = 1 0017260 / / w r o n g ? \r \t \t i f 0017300 n p e q - 1 t h e n n p 0017320 = n P a g e s P r i n t e d 0017340 - b a c k u p \r \t \t / / a c c 0017360 o u n t f o r p r e v i o u 0017400 s i n c r e m e n t \r \t \t n P 0017420 a g e s P r i n t e d = M a 0017440 x ( n p - 1 , n P a g e s A l 0017460 r e a d y P r i n t e d ) \r \t \t 0017500 b r e a k \r ] P r i n t l o o p 0017520 r e p e a t \r \r \t I n i t i a 0017540 l i z e H a r d w a r e ( t r u 0017560 e ) \r \t C l o s e M e a s u r e 0017600 ( ) \r \t r e s u l t i s ( k n 0017620 o c k K n o c k % @ l v F a 0017640 i l u r e C o d e ) ? n P a g 0017660 e s P r i n t e d , - 1 \r ] \r 0017700 \f \r / / - - - - - - - - - - - 0017720 - - - - - - - - - - - - - - \0 006 0017740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0017760 \0 \0 001 336 342 \0 \0 \0 " 035 \0 035 366 357 370 366 0020000 - - - - - - - - - - - - - - - - * 0020060 - \r / / n P a g e s P r i n t 0020100 e d = R O S C h e c k ( l v 0020120 F a i l u r e C o d e , n P a 0020140 g e s A l r e a d y P r i n t e 0020160 d , r u n n i n g , \r / / \t 0020200 \t l v X p o r t M o d e l ) 0020220 a d d e d f o r p u f 0020240 f i n \r / / - - - - - - - - - 0020260 - - - - - - - - - - - - - - - - * 0020360 - \r \r / / a n a l y z e R O 0020400 S s t a t u s \r / / n P a g 0020420 e s P r i n t e d = - 1 i 0020440 f t h e r e a r e n o m 0020460 a l f u n c t i o n s , R O S 0020500 i s r e a d y t o p r i 0020520 n t \r / / \t \t \t o t h e r w i s 0020540 e , t h e n u m b e r o f 0020560 p a g e s t o r e p o r t 0020600 a s h a v i n g b e e n 0020620 p r i n t e d \r / / @ l v F a 0020640 i l u r e C o d e w i l l c 0020660 o n t a i n a n a n a l y s 0020700 i s o f t h e c u r r e n 0020720 t s t a t e . T h e c \0 006 0020740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0020760 \0 \0 001 336 340 \0 \0 \0 035 \0 035 366 357 370 366 0021000 o d e v a l u e s a r e \r / 0021020 / \t \t \t d e s c r i b e d b e 0021040 l o w . \r / / n P a g e s A l 0021060 r e a d y P r i n t e d p l a 0021100 c e s a l o w e r b o u n 0021120 d o n t h e n P a g e s P 0021140 r i n t e d r e s u l t . T 0021160 h i s \r / / \t \t \t p r e v e n 0021200 t s l o o p s t h r o u g h 0021220 t h i s c o d e f r o m 0021240 b a c k i n g u p t o o f 0021260 a r . \r / / r u n n i n g \t \t 0021300 t r u e i f c a l l e r t 0021320 h i n k s m a i n d r i v e 0021340 i s a l l o w e d t o b 0021360 e o n f o r " r e a d y " 0021400 \r / / \t \t \t r e s u l t , f a 0021420 l s e o t h e r w i s e ( w 0021440 a i t i n g f o r r e a d y 0021460 ) . \r \r / / R O S C h e c k 0021500 f i r s t s c r e e n s t h 0021520 e c u r r e n t s t a t u s 0021540 f o r a n y m a l f u n c 0021560 t i o n i n d i c a t i o n s 0021600 , a n d \r / / r e t u r n s 0021620 r i g h t a w a y i f t 0021640 h e r e a r e n o n e . O 0021660 t h e r w i s e , i t a p p 0021700 l i e s t h e c u r r e n t 0021720 s t a t u s \r / / a g a \0 006 0021740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0021760 \0 \0 001 336 336 \0 \0 \0 036 035 \0 035 366 357 370 366 0022000 i n s t a p r i n t e r - d 0022020 e p e n d e n t t a b l e o 0022040 f p o s s i b l e c o n d i 0022060 t i o n s , y i e l d i n g 0022100 a f a i l u r e \r / / c o d 0022120 e a n d a n e w p a g e 0022140 v a l u e - - t h e l a 0022160 s t p a g e c e r t a i n 0022200 t o h a v e b e e n r e l 0022220 i a b l y \r / / p r i n t e d 0022240 . O n e p o s s i b l e c 0022260 o n d i t i o n i s " n o 0022300 m a l f u n c t i o n d e t e 0022320 c t e d " , w h i c h w i l 0022340 l o n l y \r / / b e i s s 0022360 u e d f o r p r i n t e r s 0022400 t h a t g i v e n o p o 0022420 s i t i v e i n d i c a t i o 0022440 n w h e n t h e y a r e 0022460 m e r e l y \r / / b u s y d 0022500 o i n g n o r m a l t h i n 0022520 g s . \r / / N . B . @ l v F 0022540 a i l u r e C o d e i s n o 0022560 t c h a n g e d w h e n n 0022600 o c o n d i t i o n s a r e 0022620 f o u n d \r \r / / T h e f 0022640 a i l u r e c o d e s d i v 0022660 i d e i n t o r a n g e s : 0022700 \r / / 0 - 9 \t \t N o t r e a 0022720 d y , b u t n o i n d \0 006 0022740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0022760 \0 \0 001 336 334 \0 \0 \0 034 035 \0 035 366 357 370 366 0023000 i c a t i o n o f p r o b l 0023020 e m s o r w i l l c l e a 0023040 r u p a u t o m a t i c a l 0023060 l y \r / / \t \t ( i n c l u d e s 0023100 f u s e r c o l d , w a r 0023120 m u p m o d e , c l e a r i 0023140 n g r e v o l u t i o n s , 0023160 e t c . ) \r / / 1 0 - 1 9 \t M 0023200 a n u a l i n t e r v e n t i 0023220 o n r e q u i r e d b e f o 0023240 r e m a c h i n e c a n b 0023260 e c o m e r e a d y \r / / \t \t 0023300 ( p a p e r l o w , p o w e 0023320 r n o t t h e r e , e t c 0023340 . ) \r / / 2 0 - 9 9 \t J a m s 0023360 a n d o t h e r o p e r a 0023400 t i o n a l m a l f u n c t i 0023420 o n s ( m a n y c o d e s 0023440 p r o v i d e d s o t h a t 0023460 \r / / \t \t e a c h d e v i c e 0023500 c a n r e p o r t m a c h 0023520 i n e - d e p e n d e n t j a 0023540 m e x p l a n a t i o n s ) \r 0023560 / / 1 0 0 - 2 0 0 \t I n h e r 0023600 e n t p r o b l e m s ( e . 0023620 g . , i n s u f f i c i e n t 0023640 b a n d w i d t h s o m e w 0023660 h e r e ) t h a t a r e \r / 0023700 / \t \t n o t c u r a b l e b 0023720 y m e r e m o r t a l s \0 006 0023740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0023760 \0 \0 001 336 332 \0 \0 \0 032 035 \0 035 366 357 370 366 0024000 . A t t e m p t s t o i m 0024020 p r o v e t h e s i t u a t 0024040 i o n s h o u l d b e \r / / 0024060 \t \t a b a n d o n e d . \r / / 0024100 2 0 0 - 3 0 0 \t I n h e r e n t 0024120 p r o b l e m s e n c o u n 0024140 t e r e d , b u t t h e y 0024160 d i d n o t t e r m i n a t 0024200 e p r i n t i n g . O n e \r 0024220 / / \t \t s h o u l d e x p e c 0024240 t t h a t o n e o r m o 0024260 r e p a g e s w e r e i m 0024300 p r o p e r l y i m a g e d . 0024320 \r \r / / r i g h t b y t e 0024340 i s s t a t u s c o d e 0024360 r e t u r n e d f r o m m a 0024400 c h i n e , \r / / \t l e f t b 0024420 y t e i s s t a t u s c o 0024440 d e r e t u r n e d f r o m 0024460 R O S C h e c k \r \r / / A 0024500 c h e c k , d e s i g n e d 0024520 c h i e f l y f o r D o v e 0024540 r , v e r i f i e s t h a t 0024560 t h e l a s e r i s o n 0024600 a n d t h e p o l y g o n 0024620 i s \r / / s c a n n i n g 0024640 ( S O S / E O S a r e s e e 0024660 i n g t h i n g s ) , b y 0024700 m a k i n g s u r e t h a t 0024720 t h e l o w f o u r \0 006 0024740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0024760 \0 \0 001 336 330 \0 \0 \0 030 035 \0 035 366 357 370 366 0025000 b i t s o f t h e l i n e 0025020 \r / / c o u n t ( i n d i c 0025040 a t e d i n s t a t u s w 0025060 o r d ) a r e c h a n g i 0025100 n g . T h e c o d e r e a 0025120 d s t h e l i n e c o u n 0025140 t , w a i t s \r / / a p p r 0025160 o x i m a t e l y t h e t i 0025200 m e n e e d e d f o r f o 0025220 u r s c a n l i n e s ( g 0025240 e n e r o u s m a r g i n ) , 0025260 t h e n r e a d s t h e \r 0025300 / / c o u n t a g a i n , 0025320 r e p o r t i n g a p r o b 0025340 l e m i f t h e v a l u e 0025360 s a r e e q u a l . T h i 0025400 s t e s t h a p p e n s o 0025420 n l y w h e n \r / / t h e 0025440 r u n n i n g p a r a m e t e 0025460 r i s f a l s e . T h e 0025500 w a i t t i m e ( s c a n T 0025520 i c k s ) i s c o m p u t e 0025540 d i n P r i n t I n i t , 0025560 a s : \r \r / / R e s o l u t i 0025600 o n S i s s c a l e d b y 0025620 1 0 a s s t o r e d , P 0025640 a p e r S p e e d I n c h e s 0025660 b y 1 0 0 . T h e ( f a s 0025700 t 1 0 b i t s o f ) \r / / 0025720 t h e R T C t i c k s \0 006 0025740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0025760 \0 \0 001 336 326 \0 \0 \0 026 035 \0 035 366 357 370 366 0026000 a t 3 8 u s e c . i n t 0026020 e r v a l s . T h u s t h e 0026040 # t i c k s w a n t e d 0026060 f o r f o u r l i n e s i 0026100 s : \r \r / / ( 4 l i n 0026120 e s x 1 0 ^ 6 u s e c / s 0026140 e c x 1 / 3 8 t i c k / 0026160 u s e c . ) / ( ( P a p e r 0026200 S p e e d I n c h e s / 1 0 0 0026220 x R e s o l u t i o n S / 1 0 0026240 ) l i n e s / s e c ) \r \r / / 0026260 o r a b o u t ( 1 0 6 x 0026300 1 0 ^ 3 ) / ( P a p e r S 0026320 p e e d I n c h e s / 1 0 0 x 0026340 R e s o l u t i o n S / 1 0 ) 0026360 t i c k s - - a b o u 0026400 t 3 0 f o r D o v e r . \r 0026420 \r / / T h i s i s o n l y 0026440 a p p r o x i m a t e b e c 0026460 a u s e R O S S t a t u s t 0026500 i m e , a b o u t 1 0 t i 0026520 c k s f o r D o v e r , i 0026540 s n o t i n c l u d e d . \r 0026560 / / P a r t o f t h e r 0026600 e a s o n f o r w a i t i n 0026620 g f o u r l i n e t i m e 0026640 s i s t o a c c o u n t 0026660 f o r p o s s i b l e d e l 0026700 a y s i n o b t a i n i n g 0026720 \r / / t h e c o r r e c \0 006 0026740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0026760 \0 \0 001 336 324 \0 \0 \0 024 035 \0 035 366 357 370 366 0027000 t l i n e c o u n t s t a 0027020 t u s . L a t e r , t h i s 0027040 m e t h o d c a n b e u 0027060 s e d t o c h e c k f o r 0027100 c o r r e c t p o l y g o n 0027120 s p e e d . \r / / T h e s 0027140 c a n T i c k s s t a t i c 0027160 i s s h i f t e d l e f t 0027200 b y 6 t o m a t c h t h 0027220 e c l o c k r e a d i n g 0027240 f u n c t i o n ' s r e s u l 0027260 t s \r \r \f / / R O S C h e c k 0027300 ( c o n t ) \r \r a n d R O S 0027320 C h e c k ( l v F a i l u r e C 0027340 o d e , n P a g e s A l r e a 0027360 d y P r i n t e d , r u n n i 0027400 n g , l v X p o r t M o d e l 0027420 ) = v a l o f \r [ \r \r l e t 0027440 r o s 8 = R O S S t a t u 0027460 s ( 8 ) \r l e t r o s 9 = 0027500 R O S S t a t u s ( 9 ) \r l e t 0027520 l o c a l M o d e , s c a n 0027540 n i n g = n i l , t r u e 0027560 \r l e t s e q S t a t u s , 0027600 m a l F n S t a t u s = n i 0027620 l , n i l \r \r s e q S t a t u 0027640 s , m a l F n S t a t u s , 0027660 s e q S t a t u s = R O S S 0027700 t a t u s ( 1 3 ) , s e q S t 0027720 a t u s & # 3 7 7 , s e q \0 006 0027740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0027760 \0 \0 001 336 322 \0 \0 \0 022 035 \0 035 366 357 370 366 0030000 S t a t u s r s h i f t 8 \r 0030020 \r l e t r e a d y = \r \t R 0030040 O S S t a t u s ( 1 2 ) g e 0030060 0 & m a l F n S t a t u s 0030100 e q 0 / / & \r \t / / 0030120 ( s e q S t a t u s e q 3 0030140 % / / 3 = s t a n d b y , 0030160 4 = p r i n t i n g , 9 = c l 0030200 e a r i n g \r \t / / ( 0030220 r u n n i n g & ( s e q S t 0030240 a t u s e q 4 % s e q S 0030260 t a t u s e q 9 ) ) ) \r i f 0030300 r e a d y t h e n \r \t [ \r \t 0030320 l o c a l M o d e = ( R O S 0030340 S t a t u s ( 0 ) & # 2 0 0 0 0 0030360 ) n e 0 \r \t u n l e s s r 0030400 u n n i n g d o \r \t [ \r \t 0030420 l e t l i n e C o u n t 0030440 = R O S S t a t u s ( 7 ) & 0030460 # 1 7 0 0 0 0 \r \t l e t 0030500 r t c = R e a d C l o c k ( 0030520 ) \r \t u n t i l ( R e a d 0030540 C l o c k ( ) - r t c ) g e 0030560 s c a n T i c k s l o o p \r \t 0030600 s c a n n i n g = ( R O 0030620 S S t a t u s ( 7 ) & # 1 7 0 0 0030640 0 0 ) n e l i n e C o u n t 0030660 \r \t ] \r \t i f l o c a l M 0030700 o d e % n o t s c a n n i 0030720 n g t h e n r e a d y \0 006 0030740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0030760 \0 \0 001 336 320 \0 \0 \0 020 035 \0 035 366 357 370 366 0031000 = f a l s e \r \t ] \r \r i f r 0031020 e a d y % D e b u g r e s 0031040 u l t i s - 1 \r \r / / A n a 0031060 l y z e t a b l e s t o i 0031100 d e n t i f y t h e p r o b 0031120 l e m o r c o n d i t i o n 0031140 p r e v e n t i n g r e a d 0031160 y \r \r l e t t a b = t a b 0031200 l e [ / / e r r o r c o 0031220 d e , , m a c h i n e c o d 0031240 e \r \t 1 0 l s h i f t 8 + 0031260 # 3 2 / / 1 A 2 / 2 l 0031300 o w p a p e r . \r \t 5 2 l s 0031320 h i f t 8 + # 0 0 / / 0031340 0 0 X m i s s e d . \r \t 5 3 0031360 l s h i f t 8 + # 0 4 0031400 / / 0 4 m a l f u n c t i o 0031420 n m e m o r y s e t . \r \t 5 0031440 4 l s h i f t 8 + # 1 0 0031460 / / 0 8 1 / 1 F I R E ! 0031500 ! ! ! ! ! ! ! \r \t 5 5 l s h i 0031520 f t 8 + # 1 6 / / 0 E 0031540 1 / 4 T r a n s p o r t A 0031560 . \r \t 5 6 l s h i f t 8 + 0031600 # 3 4 / / 1 C 2 / 3 P 0031620 a p e r g r i p . \r \t 5 7 l 0031640 s h i f t 8 + # 3 6 / / 0031660 1 E 2 / 4 T r a n s p o r 0031700 t B . \r \t 5 8 l s h i f t 0031720 8 + # 5 0 / / 2 8 \0 006 0031740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0031760 \0 \0 001 336 316 \0 \0 \0 016 035 \0 035 366 357 370 366 0032000 3 / 1 F u s e r i n t e r l 0032020 o c k o p e n . \r \t 5 9 l s 0032040 h i f t 8 + # 5 4 / / 0032060 2 C 3 / 3 B o t t o m t r 0032100 a y i n t e r l o c k o p e 0032120 n . \r \t 6 0 l s h i f t 8 0032140 + # 5 6 / / 2 E 3 / 4 0032160 T r a n s p o r t C j a m . 0032200 \r \t 6 1 l s h i f t 8 + 0032220 # 7 4 / / 3 C 4 / 3 F r 0032240 o n t d o o r o p e n . \r \t 0032260 6 2 l s h i f t 8 + # 1 0032300 1 6 / / 4 E 5 / 4 T o n e 0032320 r c a l l . \r \t 6 3 l s h i 0032340 f t 8 + # 1 5 0 / / 6 8 0032360 7 / 1 F u n c t i o n a l 0032400 i n t e r l o c k o p e n . \r 0032420 \t 0 ] \r / / C o d e s g 0032440 e n e r a t e d e l s e w h e 0032460 r e : \r / / \t 7 - - n o s 0032500 p e c i f i c m a l f u n c t 0032520 i o n d e t e c t e d , b u 0032540 t s o m e t h i n g i s w 0032560 r o n g \r / / \t 1 6 - - p a 0032600 g e s y n c n e v e r t u 0032620 r n e d o f f \r / / \t 1 7 - 0032640 - s e v e r a l c o n s e c 0032660 u t i v e u n i d e n t i f i 0032700 e d e r r o r s \r / / \t 1 8 0032720 - - O r b i t t i m e d \0 006 0032740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0032760 \0 \0 001 336 314 \0 \0 \0 \f 035 \0 035 366 357 370 366 0033000 o u t - - p a g e s y n 0033020 c n e v e r a r r i v e d , 0033040 o r e n g i n e d i e d 0033060 o r g o t b e h i n d \r / / 0033100 \t 1 9 - - A l t o c o d e 0033120 t i m e d o u t - - s a 0033140 m e s y m p t o m s \r / / \t 3 0033160 0 0 - - O r b i t g o t 0033200 b e h i n d , b u t p a g e 0033220 t e r m i n a t e d n o r m 0033240 a l l y \r / / \t 3 0 1 - - O 0033260 r b i t g o t b e h i n d , 0033300 h a d t o q u i t e a r 0033320 l y \r / / \t 3 1 0 - - L e f 0033340 t o v e r t a b l e g o t 0033360 t o o l a r g e . P l e a 0033400 s e r e p o r t t o f i x 0033420 e r . \r \f / / R O S C h e c k 0033440 ( c o n t ) \r \r / / C o n d 0033460 i t i o n i n t e r p r e t e 0033500 r \r \r l e t c o d e = 0 \r 0033520 \r \t \t t e s t r o s S y n c E 0033540 r r o r t h e n c o d e = 0033560 5 1 \r \t \t o r t e s t R 0033600 O S S t a t u s ( 1 2 ) < 0 0033620 t h e n c o d e = 5 0 \r 0033640 \t \t o r t e s t m a l F n 0033660 S t a t u s e q 0 t h e n 0033700 c o d e = s e l e c t o n 0033720 s e q S t a t u s i n t \0 006 0033740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0033760 \0 \0 001 336 312 \0 \0 \0 \n 035 \0 035 366 357 370 366 0034000 o \r \t \t \t [ c a s e 1 : c 0034020 a s e 2 : 2 ; c a s e 9 0034040 : c a s e 1 0 : 3 ; c a 0034060 s e 4 : 8 ; c a s e 5 0034100 t o 8 : 9 ; d e f a u l t 0034120 : 0 ] \r \t \t o r t e s t 0034140 # 2 0 0 l e m a l F n S t 0034160 a t u s & m a l F n S t a t 0034200 u s l e # 2 4 0 t h e n 0034220 c o d e = 6 4 \r 0034240 / / 8 0 0034260 - A 0 T e v e n t s m i s 0034300 s e d \r \t \t o r w h i l e 0034320 @ t a b d o \r \t \t \t [ \r \t \t \t 0034340 l e t e n t r y = @ t a b 0034360 \r \t \t \t i f m a l F n S t a t 0034400 u s e q ( e n t r y & # 3 7 0034420 7 ) t h e n [ c o d e = 0034440 e n t r y r s h i f t 8 ; 0034460 b r e a k ] \r \t \t \t t a b 0034500 = t a b + 1 \r \t \t \t ] \r \r 0034520 / / N o o t h e r e x p l 0034540 i c i t p r o b l e m s , r 0034560 e p o r t l o c a l m o d e 0034600 , o r l a s e r o f f , 0034620 o r u n k n o w n p r o b l 0034640 e m \r u n l e s s c o d e d 0034660 o c o d e = l o c a l M o 0034700 d e ? 1 1 , s c a n n i n g 0034720 e q 0 ? 1 3 , 7 \r @ \0 006 0034740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0034760 \0 \0 001 336 310 \0 \0 \0 \b 035 \0 035 366 357 370 366 0035000 l v F a i l u r e C o d e = 0035020 c o d e \r l e t b a c k u p 0035040 = c o d e l e m a x M a 0035060 n u a l ? 0 , 1 \r r e s u l 0035100 t i s M a x ( n P a g e s A l 0035120 r e a d y P r i n t e d , n P 0035140 a g e s P r i n t e d - b a c k 0035160 u p ) \r ] \r \f / / - - - - - - 0035200 - - - - - - - - - - - - - - - - * 0035240 - - - \r / / H a r d w a r e 0035260 s e t u p f o r v a r i o u 0035300 s d e v i c e s . \r / / - - 0035320 - - - - - - - - - - - - - - - - * 0035360 - - - - - - - \r \r a n d I n i 0035400 t i a l i z e H a r d w a r e ( 0035420 s t o p ) b e \r [ \t i f D e 0035440 b u g r e t u r n \r \t I n i t 0035460 R a m ( 0 ) \t \t \t / / R e s e t 0035500 a l l R A M t a s k s , 0035520 r e s t a r t T r i d e n t 0035540 i f n e c e s s a r y \r \r \t D 0035560 o F u n c ( f C o n t r o l , 0035600 1 ) \t \t / / R e s e t O r b i 0035620 t \r \r \t r o s C o u n t , r o 0035640 s S y n c E r r o r = 0 , 0035660 f a l s e \r \t R O S C o m m a n 0035700 d ( # 6 0 0 0 0 , f a l s e ) 0035720 \t \t / / R e s e t c o m \0 006 0035740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0035760 \0 \0 001 336 306 \0 \0 \0 006 035 \0 035 366 357 370 366 0036000 m a n d c o u n t \r \t R O S C 0036020 o m m a n d ( # 6 3 0 5 0 ) \t \t 0036040 \t / / R e a d o u t m a l 0036060 f u n c t i o n d a t a , c 0036100 l e a r m a l f . \r \t / / R 0036120 O S C o m m a n d ( # 6 3 2 1 7 0036140 ) \t \t \t / / S e t P a g e S y 0036160 n c E v e n t t o 2 5 \r \t i 0036200 f s t o p t h e n R O S C 0036220 o m m a n d ( # 6 3 0 4 0 ) \t / 0036240 / S t o p n o w . \r ] \r \r a 0036260 n d B l a s t ( ) b e I n 0036300 i t i a l i z e H a r d w a r e 0036320 ( f a l s e ) \r \r a n d R O S 0036340 C o m m a n d ( x , s y n c ; 0036360 n u m a r g s n a ) b e \r 0036400 \r \t [ \r \t i f n a < 2 t h e 0036420 n s y n c = 4 \r \t l e t 0036440 g o o d = t r u e \r \t f o r 0036460 i = 1 t o s y n c ? 0036500 s y n c , 1 d o \r \t [ \r 0036520 \t D o F u n c ( f R O S C o 0036540 m m a n d , x ) \r \t u n l 0036560 e s s s y n c b r e a k \r \t 0036600 l e t t i m = @ R T C 0036620 ; g o o d = f a l s e \r \t 0036640 w h i l e ( @ R T C - t i 0036660 m ) l e 2 5 d o i f ( 0036700 r o s C o u n t & # 3 7 7 ) e 0036720 q ( R O S S t a t u s ( 1 \0 006 0036740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0036760 \0 \0 001 336 304 \0 \0 \0 004 035 \0 035 366 357 370 366 0037000 2 ) & # 3 7 7 ) t h e n \r \t \t 0037020 [ g o o d = t r u e ; b 0037040 r e a k ] \r \t i f g o o 0037060 d b r e a k \r \t R O S C o 0037100 m m a n d ( # 6 0 0 0 0 , f a 0037120 l s e ) \r \t r o s C o u n t 0037140 , r o s S y n c E r r o r = 0037160 0 , f a l s e \r \t ] \r \t 0037200 u n l e s s g o o d d o r 0037220 o s S y n c E r r o r = t r 0037240 u e \r \t r o s C o u n t = r 0037260 o s C o u n t + 1 \r \t ] \r / / 0037300 F e b r u a r y 1 6 , 1 9 7 0037320 9 1 0 : 1 2 A M d e r i 0037340 v e d f r o m S p r u c e p 0037360 r i n t v 8 \r / / A p r i l 0037400 2 7 , 1 9 7 9 3 : 5 1 0037420 P M p u t i n s p r u c e 0037440 1 0 s t u f f - s t i l 0037460 l n e e d s w o r k \r / / 0037500 M a y 1 7 , 1 9 7 9 4 : 0037520 4 2 P M r e p a i r e r r 0037540 o r s \r / / M a y 2 3 , 1 0037560 9 7 9 2 : 4 1 P M , f i 0037600 x i n t e r f a c e t o m 0037620 e a s u r e s t u f f \r / / 0037640 F e b r u a r y 2 , 1 9 8 1 0037660 4 : 2 7 P M , d o n ' 0037700 t s w a t i f b a d b a 0037720 n d e n t r y p r o b a \0 006 0037740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0037760 \0 \0 001 336 302 \0 \0 \0 002 035 \0 035 366 357 370 366 0040000 b l y d u e t o l e f t o 0040020 v e r o v e r f l o w \r \0 \0 \0 0040040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0040720 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 006 0040740 020 @ 377 v 037 \0 \a \0 035 \0 \0 ( \0 \0 @ 0040760 \0 \0 \0 035 300 \0 \0 \0 \0 035 \0 035 366 357 370 366 0041000