$ 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