$ od -c -N 50000 [Indigo]<Spruce>12>SprucePrinPenguin.sr!1
0000000 / / P R I N T \r
0000020 / / e r r o r s 5 0 0 0 \r /
0000040 / \r \r g e t " S p r u c e P r
0000060 i n t e r s . d " \r g e t " S
0000100 p r u c e D o c . d " \r g e t
0000120 " S p r u c e F o n t . d " \r g
0000140 e t " S p r u c e B a n d . d
0000160 " \r g e t " s p r u c e M i s
0000200 c . d " \r g e t " S p r u c e
0000220 F i l e s . d " \r g e t " O r
0000240 b i t . d " \r \r / / o u t g o
0000260 i n g p r o c e d u r e s \r e
0000300 x t e r n a l \r \t [ \r \t D r i v
0000320 e P r i n t e r \r \t ] \r \r / /
0000340 i n c o m i n g p r o c e d u
0000360 r e s \r e x t e r n a l \r \t [ \r
0000400 \t S p r u c e E r r o r \r \t M a
0000420 x ; M i n \r \t C a l l S w a t
0000440 \r \t I n i t R a m \r / / S p r u
0000460 c e P r i n t \r \t A d d T o B i
0000500 n \r \t A n n o u n c e \r \t A w a
0000520 i t P a g e S y n c \r \t P r i n
0000540 t N e x t \r \t R e a d B a n d s
0000560 \r \t R e a d C l o c k \r \t R e a
0000600 d F o n t \r / / C U R S O R \r \t
0000620 C u r s o r C h a r ; C u r s
0000640 o r D i g i t \r / / S p r u c
0000660 e P r i n t R e s \r \t D o F u n
0000700 c ; R O S S t a t u s \r / /
0000720 T i m e r ( d e b u g o \0 006
0000740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @
0000760 \0 \0 001 336 \0 \0 \0 \0 \f 315 \0 \0 366 357 370 366
0001000 n l y ) \r \t S e t T i m e r ;
0001020 T i m e r H a s E x p i r e d \r
0001040 \t ] \r \r / / i n c o m i n g
0001060 s t a t i c s \r e x t e r n a l
0001100 \r \t [ \r \t B a n d F i l e \r \t b
0001120 a n d R e c o r d S i z e \r \t B
0001140 i n C o u n t e r s \r \t b r e a
0001160 k P a g e \r \t b r e a k P a g e
0001200 C o p y \r \t C a p a b i l i t i
0001220 e s \r \t D e b u g \r \t D e b u g
0001240 S y s t e m \r \t d e b u g T r a
0001260 i l \r \t F A v a l u e \r \t F u n
0001300 c \r \t k n o c k R e s u l t \r \t
0001320 l o g B a n d R e c o r d S i z
0001340 e \r \t L o w A d r \r \t M e a s u
0001360 r e ; C l o s e M e a s u r e
0001400 ; T i c k M e a s u r e ; I
0001420 n i t M e a s u r e ; m e a s
0001440 u r e T a b l e \r \t n B a n d s
0001460 \r \t n P a g e s P r i n t e d \r
0001500 \t n R e c s \r \t n u m M u s t P
0001520 r i n t \r \t n u m P r i n t e d
0001540 \r \t p r i n t e r F o r w a r d
0001560 \r \t r o s 1 2 \r \t r o s 1 3 \r \t
0001600 s c a n T i c k s \t \t / / #
0001620 o f 3 8 u s e c . t i c k
0001640 s i n 4 p r i n t e r s
0001660 c a n l i n e s . \r \t s t o p
0001700 s P r i n t i n g \r \t x m F o n
0001720 t s \t / / F o n t d a t \0 006
0001740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @
0001760 \0 \0 001 336 376 \0 \0 \0 \n 315 \0 \0 366 357 370 366
0002000 a w i l l b e r e a d i
0002020 n t o B a n k 1 v i a B
0002040 a n k 0 , i f s e t \r \t ]
0002060 \r \r / / i n t e r n a l s t
0002100 a t i c s \r s t a t i c \r \t [ \r
0002120 \t i m a g e T i m e o u t \r \t r
0002140 o s C o u n t = 0 / / P
0002160 i m l i c o / p u f f i n / p e
0002200 n g u i n c o m m a n d c o
0002220 u n t \r \t p r i n t S e q \r \t
0002240 t w o s i d e d \r \t c u r B i n
0002260 ; n e x t B i n \r \t c u r H a
0002300 n d l i n g ; n e x t H a n d
0002320 l i n g \r \t s w i t c h B i n
0002340 = f a l s e \t / / f o r d
0002360 e l a y e d b i n s w i t c
0002400 h i f i n t e r m e d i a t
0002420 e b r e a k p a g e n e e
0002440 d e d \r \t n e x t C o p y \r \t n
0002460 P a g e s ; n B r e a k s ;
0002500 b k P a g e ; n C o p i e s ;
0002520 f i r s t P a g e E v e n ;
0002540 l a s t P a g e O d d ; n D o
0002560 u b l e s ; n S h e e t s ; \r
0002600 \t n A u x S i d e s ; a u x I
0002620 n c r ; n A u x B r e a k s ;
0002640 i n c r ; r e l I m a g e I
0002660 n d e x ; t o t S h e e t s ;
0002700 t o t A u x S i d \0 006 020 @ 377 v
0002720 037 \0 002 { 035 \0 \0 ( \0 \0 @ \0 \0 301 212
0002740 001 213 301 223 001 224 301 237 001 240 301 245 001 246 301 264
0002760 001 265 001 312 374 \0 \0 \0 \b 315 \0 \0 354 345 356 354
0003000 e s \r \t d e b D e l a y = 0
0003020 / / d e b u g g i n g : d
0003040 e l a y p e r p a g e t o
0003060 s i m u l a t e p r i n t i
0003100 n g . \r \t ] \r \r / / F i l e
0003120 - w i d e s t r u c t u r e
0003140 a n d m a n i f e s t d e c
0003160 l a r a t i o n s . \r \r m a n i
0003200 f e s t [ \r \t A u x C o u n t
0003220 = 1 9 \t \t / / k e e p c o
0003240 u n t o f s h e e t s i n
0003260 A u x t r a y i n B i n
0003300 C o u n t e r s ! 1 9 \r \t A u x
0003320 R e c o v e r y C o u n t =
0003340 2 0 \t / / n u m b e r o f
0003360 f i r s t s i d e s t o b
0003400 e r e p l a c e d i n B i
0003420 n C o u n t e r s ! 2 0 \r \t s i
0003440 g b a n d = 1 0 0 \r \t R T C
0003460 = # 4 3 0 \r \t e T i c k s =
0003500 4 \t \t / / t i m e t o s p e
0003520 n d c h e c k i n g s c a n
0003540 n i n g \r \t f I T O = 1 5 *
0003560 2 7 \t \t / / 1 5 s e c o n d s
0003600 t o g e t f i r s t s h
0003620 e e t t h r u \r \t r I T O =
0003640 2 * 2 7 \t \t / / 2 s e c o n
0003660 d s t o g e t s u b s e q
0003700 u e n t s h e e t s t h r u
0003720 . \r \t t i m e O u t = 1 5 * \0 006
0003740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @
0003760 \0 \0 001 336 372 \0 \0 \0 006 315 \0 \0 366 357 370 366
0004000 2 7 / / t i m e t o w a
0004020 i t f o r s t a n d b y s
0004040 t a t u s t o a p p e a r \r
0004060 \t p r i n t H y s t e r e s i s
0004100 = 3 0 / / p r i n t t
0004120 h i s m a n y b e f o r e
0004140 a l l o w i n g s u s p e n s
0004160 i o n , e a c h t i m e i
0004200 n \r \t d e b u g T r a i l S i z
0004220 e = 1 0 * 3 \r \t m i n D o c
0004240 u m e n t E r r o r = 3 0 0
0004260 / / D o c u m e n t i n h
0004300 e r e n t l y h a r d t o
0004320 p r i n t \r / / c o m m a n d
0004340 s t o P e n g u i n \r \t p R
0004360 e s e t C o u n t = # 6 0 0
0004400 0 0 \t / / 6 0 0 0 x - r e s
0004420 e t y o u r c o u n t o f
0004440 c o m m a n d s r e c e i v
0004460 e d f r o m m e \r \t p N e w
0004500 L E D = # 6 2 4 0 0 \t \t / /
0004520 6 5 n m x - l a s t 2 n
0004540 i b b l e s c o n t a i n d
0004560 e c i m a l d i g i t s \r \t p
0004600 S e t L E D = # 6 3 0 0 2 \t
0004620 \t / / 6 6 0 2 x - d i s p l
0004640 a y l a s t v a l u e s e
0004660 n t w i t h p N e w L E D \r
0004700 \t p P r i n t = # 6 3 0 0 1
0004720 \t \t \t / / 6 6 0 1 x - p \0 006
0004740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @
0004760 \0 \0 001 336 370 \0 \0 \0 004 315 \0 \0 366 357 370 366
0005000 r i n t a p a g e \r \t p S S
0005020 M a i n = # 6 3 0 4 0 \t \t /
0005040 / 6 6 2 0 x - p a g e i s
0005060 s i n g l e s i d e d f r o
0005100 m m a i n t r a y \r \t p S S
0005120 A u x = # 6 3 0 4 1 \t \t / /
0005140 6 6 2 1 x - p a g e i s
0005160 s i n g l e s i d e d f r o m
0005200 a u x t r a y \r \t p T S F i r
0005220 s t = # 6 3 0 4 2 \t \t / /
0005240 6 6 2 2 x - p a g e i s f
0005260 i r s t s i d e o f d u p
0005300 l e x ( g o e s f r o m m
0005320 a i n t o a u x ) \r \t p T S
0005340 S e c o n d = # 6 3 0 4 3 \t
0005360 \t / / 6 6 2 3 x - p a g e
0005400 i s s e c o n d s i d e o
0005420 f d u p l e x ( a u x t o
0005440 s o m e o u t p u t b i n
0005460 ) \r \t p S e t B i n = # 6 3
0005500 1 0 0 \t \t / / 6 6 4 0 x - p
0005520 o s i t i o n b i n s ( t o
0005540 b i n i n d i c a t e d i
0005560 n l a s t f i v e b i t s
0005600 ) \r \t p C l e a r M a l f =
0005620 # 6 3 0 5 0 \t / / 6 6 2 8 x -
0005640 m o v e m a l f i n d i c
0005660 a t i o n t o s t a t u s
0005700 \r \t p I g T S C E r r = # 6
0005720 3 0 0 4 \t \t / / 6 0 0 4 x \0 006
0005740 020 @ 377 v 037 \0 002 { 035 \0 \0 ( \0 \0 @
0005760 \0 \0 001 336 366 \0 \0 \0 002 315 \0 \0 366 357 370 366
0006000 - i g n o r e t s c e r r
0006020 o r i n d i c a t i o n \r / /
0006040 p r i n t S e q v a l u e s
0006060 : \r \t w a r m u p = 1 \r \t s
0006100 t a n d b y = 2 \r \t p r e p
0006120 r i n t = 3 \r \t p r i n t i
0006140 n g = 4 \r \t c y c l e d o w
0006160 n = 5 \r \t m a l f C l e a r
0006200 = 6 \r \t m a i n S e q E r r
0006220 = 1 0 7 \r \t s u b S e q E r
0006240 r = 1 0 6 \r \t a b n o r m a
0006260 l = 1 1 3 \r \t p o w e r O n
0006300 = 1 2 3 \r \t \t ] \r \r \r / /
0006320 - - - - - - - - - - - - - - - -
*
0006400 - - - - - - - - - - - \r / / P
0006420 r i n t \t \t I n i t i a l i z a
0006440 t i o n \r / / - - - - - - - -
0006460 - - - - - - - - - - - - - - - -
*
0006540 - - - \r \r / / R e t u r n s
0006560 - 1 i f p r i n t i n g i
0006600 s s u c c e s s f u l l y c
0006620 o m p l e t e d , e l s e n
0006640 P a g e s P r i n t e d , s o
0006660 c a n p i c k u p w h e
0006700 r e w e l e f t o \0 006 020 @
0006720 377 v 037 \0 002 { 035 \0 \0 ( \0 \a 020 @ 377 v
0006740 037 \0 002 { 035 \0 \0 ( & 001 \0 315 \0 \0 @
0006760 \0 \0 001 314 364 \0 \0 \0 016 364 \0 \0 365 346 370 366
0007000 f f . \r \r l e t D r i v e P r
0007020 i n t e r ( p D o c , n P a g
0007040 e s A l r e a d y P r i n t e d
0007060 , l v F a i l u r e C o d e )
0007100 = v a l o f \r [ \r \t l e t m
0007120 e a s u r e V e c = v e c
0007140 5 \r \t i f ( D e b u g S y s t
0007160 e m & # 4 0 0 0 ) n e 0
0007200 t h e n C a l l S w a t ( "
0007220 D r i v e P r i n t e r " ) \r \t
0007240 u n l e s s n P a g e s A l r
0007260 e a d y P r i n t e d t h e n
0007300 B i n C o u n t e r s ! A u x
0007320 C o u n t = 0 / / i f
0007340 n o p a g e s p r i n t e
0007360 d , s h o u l d n ' t b e
0007400 p a p e r i n a u x t r a
0007420 y \r \t l e t C o m m T a b = v
0007440 e c 8 \r \t C o m m T a b =
0007460 ( C o m m T a b + 1 ) & ( - 2 )
0007500 \r \r \t l e t k n o c k K n o c
0007520 k = f a l s e \t \t / / t i
0007540 m e t o l e t s o m e b o
0007560 d y i n i f t r u e \r \t t
0007600 w o s i d e d = p D o c > >
0007620 D o c G . d u p l e x n e 0
0007640 \r n P a g e s , n B r e a k s
0007660 = p D o c > > D o c G . n P
0007700 a g e s , b r e a k P a g e \r
0007720 n P a g e s = n P a \0 \a 020 @
0007740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0007760 \0 \0 001 334 376 315 \0 \0 \f 364 \0 \0 366 356 370 366
0010000 g e s - n B r e a k s \r b k
0010020 P a g e = n P a g e s * ( s
0010040 i z e P a g e G / 1 6 ) + p D
0010060 o c > > D o c G . P a g e s
0010100 / / i f t h e r e i s o
0010120 n e \r n C o p i e s = p D o
0010140 c > > D o c G . n C o p i e s \r
0010160 l e t p a g e = p D o c >
0010200 > D o c G . P a g e s \t \t / /
0010220 p o i n t e r t o f i r s t
0010240 p a g e \r f i r s t P a g e E
0010260 v e n = ( p a g e > > P a g
0010300 e G . w h i c h S i d e e q
0010320 0 ) ? 1 , 0 \r p a g e = (
0010340 n P a g e s - 1 ) * ( s i z
0010360 e P a g e G / 1 6 ) + p a
0010400 g e \t \t / / p o i n t e r
0010420 t o l a s t p a g e \r l a s
0010440 t P a g e O d d = ( p a g e
0010460 > > P a g e G . w h i c h S i d
0010500 e n e 0 ) ? 1 , 0 \r n D o
0010520 u b l e s = ( n P a g e s
0010540 - f i r s t P a g e E v e n
0010560 - l a s t P a g e O d d ) / 2
0010600 \r n S h e e t s = n D o u b
0010620 l e s + f i r s t P a g e E
0010640 v e n + l a s t P a g e O d
0010660 d \r t e s t p r i n t e r F o
0010700 r w a r d i f s o \r [ n
0010720 A u x S i d e s , a u \0 \a 020 @
0010740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0010760 \0 \0 001 334 374 315 \0 \0 \n 364 \0 \0 366 356 370 366
0011000 x I n c r , n A u x B r e a k
0011020 s , i n c r , n B r e a k s
0011040 = n D o u b l e s + l a
0011060 s t P a g e O d d , l a s t P
0011100 a g e O d d , n B r e a k s ,
0011120 f i r s t P a g e E v e n ,
0011140 0 ] \r i f n o t \r [
0011160 n A u x S i d e s , a u x I n
0011200 c r , n A u x B r e a k s ,
0011220 i n c r = n D o u b l e s
0011240 + f i r s t P a g e E v e n ,
0011260 f i r s t P a g e E v e n ,
0011300 0 , l a s t P a g e O d d ]
0011320 \r t o t A u x S i d e s = n
0011340 A u x S i d e s * n C o p i
0011360 e s + n A u x B r e a k s \r
0011400 t o t S h e e t s = n C o p
0011420 i e s * ( t w o s i d e d ? n
0011440 S h e e t s , n P a g e s ) \r
0011460 \t c u r B i n = 0 \r \t l e t
0011500 o v e r f l o w B i n = 0
0011520 \t \t / / u s u a l l y i s
0011540 . . . \r \t t e s t ( C a p
0011560 a b i l i t i e s & m M a i
0011600 l b o x ) n e 0 \r \t i f s o
0011620 \r \t \t [ \r \t \t u n l e s s B i
0011640 n C o u n t e r s ! 0 > 5 0
0011660 d o / / c a n ' t m o
0011700 v e t r a y s \r \t \t \t [
0011720 / / f i n d t h e \0 \a 020 @
0011740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0011760 \0 \0 001 334 372 315 \0 \0 \b 364 \0 \0 366 356 370 366
0012000 b i n w e w o u l d l i k
0012020 e i t t o g o i n \r \t \t
0012040 \t l e t m t r a y = s e l
0012060 e c t o n ( l v p D o c > >
0012100 D o c G . C r e a t S t r ) > >
0012120 S T R . c h a r ^ 1 i n t o \r
0012140 \t \t \t \t [ \r \t \t \t \t c a s e $
0012160 A : c a s e $ a : 1 8 \r \t
0012200 \t \t \t c a s e $ B : c a s e
0012220 $ b : 1 7 \r \t \t \t \t c a s e
0012240 $ C : c a s e $ c : 1 6
0012260 \r \t \t \t \t c a s e $ D : c a
0012300 s e $ d : 1 5 \r \t \t \t \t c a
0012320 s e $ E : c a s e $ e :
0012340 1 4 \r \t \t \t \t c a s e $ F :
0012360 c a s e $ f : 1 3 \r \t \t \t \t
0012400 c a s e $ G : c a s e $ g
0012420 : 1 2 \r \t \t \t \t c a s e $ H
0012440 : c a s e $ I : c a s e
0012460 $ h : c a s e $ i : 1 1 \r
0012500 \t \t \t \t c a s e $ J : c a s
0012520 e $ K : c a s e $ j : c
0012540 a s e $ k : 1 0 \r \t \t \t \t c
0012560 a s e $ L : c a s e $ l :
0012600 9 \r \t \t \t \t c a s e $ M :
0012620 c a s e $ m : 8 \r \t \t \t \t c
0012640 a s e $ N : c a s e $ O :
0012660 c a s e $ n : c a s e $
0012700 o : 7 \r \t \t \t \t c a s e $ P
0012720 : c a s e $ Q : c \0 \a 020 @
0012740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0012760 \0 \0 001 334 370 315 \0 \0 006 364 \0 \0 366 356 370 366
0013000 a s e $ p : c a s e $ q :
0013020 6 \r \t \t \t \t c a s e $ R :
0013040 c a s e $ r : 5 \r \t \t \t \t c
0013060 a s e $ S : c a s e $ s :
0013100 4 \r \t \t \t \t c a s e $ T :
0013120 c a s e $ U : c a s e $ V
0013140 : c a s e $ t : c a s e
0013160 $ u : c a s e $ v : 3 \r \t
0013200 \t \t \t c a s e $ W : c a s e
0013220 $ w : 2 \r \t \t \t \t c a s e
0013240 $ X : c a s e $ Y : c a s
0013260 e $ Z : c a s e $ x : c
0013300 a s e $ y : c a s e $ z :
0013320 1 \r \t \t \t \t d e f a u l t :
0013340 0 \r \t \t \t \t ] \r \t \t \t i f B i
0013360 n C o u n t e r s ! m t r a y
0013400 < 5 0 d o c u r B i n =
0013420 m t r a y / / i f t h e
0013440 r e i s r o o m \r \t \t \t ] \r
0013460 \t \t ] \r \t i f n o t \r \t \t [ \r \t
0013500 \t i f ( C a p a b i l i t i e
0013520 s & m M u l t i B i n ) n
0013540 e 0 d o / / f i l l i n
0013560 g b i n s f r o m b o t t
0013600 o m u p - f i n d 1 s t
0013620 n o n f u l l \r \t \t \t [ u
0013640 n t i l ( B i n C o u n t e
0013660 r s ! ( c u r B i n ) < 5 0
0013700 ) % ( c u r B i n e q 1
0013720 8 ) d o \r \t \t \t \t [ \0 \a 020 @
0013740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0013760 \0 \0 001 334 366 315 \0 \0 004 364 \0 \0 366 356 370 366
0014000 c u r B i n = c u r B i n
0014020 + 1 ] \r \t \t \t o v e r f l
0014040 o w B i n = 1 8 \r \t \t \t ]
0014060 \r \t \t ] \r \t l e t b i n M a x
0014100 = ( c u r B i n e q o v
0014120 e r f l o w B i n ) ? 2 0 0 ,
0014140 5 0 \r \r \t I n i t i a l i z e
0014160 H a r d w a r e ( ) \r \t I n i t
0014200 M e a s u r e ( m e a s u r e T
0014220 a b l e , 2 0 0 0 , m e a s
0014240 u r e V e c ) \r \t l e t b a c
0014260 k u p = 0 \r \t l e t x p o
0014300 r t M o d e l = 0 \r \t @ l v
0014320 F a i l u r e C o d e = (
0014340 R O S C o m m a n d ( p R e s e
0014360 t C o u n t ) % R O S C o m
0014400 m a n d ( p I g T S C E r r ) )
0014420 ? 1 2 1 , 0 \r \t @ l v F a i
0014440 l u r e C o d e = R O S C h
0014460 e c k ( ) \r \t i f @ l v F a i
0014500 l u r e C o d e r e s u l t i
0014520 s S e t u p R e c o v e r y (
0014540 p D o c , l v F a i l u r e C
0014560 o d e , l v x p o r t M o d
0014600 e l , n P a g e s A l r e a d
0014620 y P r i n t e d ) \r \t l e t
0014640 n e e d F o n t s , n e e d I
0014660 n i t = t r u e , t r u e \r
0014700 \t l e t F o n t T a b l e ,
0014720 n f R e c s , L e f \0 \a 020 @
0014740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0014760 \0 \0 001 334 364 315 \0 \0 002 364 \0 \0 366 356 370 366
0015000 t O v e r , L e f t O v e r G
0015020 u a r d = n i l , n i l
0015040 , n i l , n i l \r \t l e t
0015060 b u f = n i l \r \t l e t
0015100 t i m = n i l \r \t i m a g
0015120 e T i m e o u t = f I T O
0015140 / / a l l o w p e n g u i n
0015160 t o g e t r e a d y \r \t i
0015200 f B i n C o u n t e r s ! A u
0015220 x R e c o v e r y C o u n t d
0015240 o n P a g e s P r i n t e d
0015260 = B i n C o u n t e r s ! A u
0015300 x C o u n t \r \t l e t n e x t
0015320 P a g e = N e x t S h e e t ( p
0015340 D o c , n P a g e s P r i n t
0015360 e d ) \r / / P r i n t ( c o
0015400 n t . ) \t \t L o o p \r \r [ P r
0015420 i n t L o o p \r \t / / F i n d
0015440 o u t w h i c h p a g e
0015460 t o p r i n t n e x t : \r \t
0015500 p a g e = n e x t P a g e \r \t i
0015520 f p a g e e q 0 t h e n
0015540 [ k n o c k K n o c k =
0015560 f a l s e ; b r e a k ] /
0015600 / F i n i s h e d ! \r \t i f
0015620 k n o c k K n o c k t h e n
0015640 b r e a k / / g o l e t
0015660 s o m e b o d y i n \r \r \t i f
0015700 n e e d F o n t s d o \t / /
0015720 R e a d i n f \0 \a 020 @ 377 v
0015740 037 \0 002 { 035 \0 \0 ( & 001 \0 364 \0 \0 @
0015760 \0 \0 001 332 362 315 \0 \0 \v 220 \0 \0 365 355 370 366
0016000 o n t a n d r e l o c a t e
0016020 t h e p o i n t e r s t o
0016040 c h a r a c t e r s : \r \t \t [
0016060 \r \t \t l e t f o n t = p a g e
0016100 > > P a g e G . f o n t L o a d
0016120 * ( s i z e F o n t G / 1 6 )
0016140 + p D o c > > D o c G . F o n t
0016160 s \r \t \t F o n t T a b l e =
0016200 R e a d F o n t ( f o n t , L
0016220 o w A d r , n R e c s ) \t / /
0016240 c a l l r e t u r n s l
0016260 o c a t i o n o f I C C t
0016300 a b l e \r \t \t u n l e s s x m
0016320 F o n t s d o f o r i = 0
0016340 t o p D o c > > D o c G . I
0016360 C C t o t a l - 1 d o / /
0016400 i f r a s t e r s a r e i
0016420 n b a n k 1 , t h e y s
0016440 t a r t a t 0 \r \t \t \t F o n
0016460 t T a b l e ! i = F o n t T a b
0016500 l e ! i + L o w A d r \r \t \t
0016520 F o n t T a b l e = F o n t T a
0016540 b l e - 1 0 0 0 0 0 b \r \r \t \t /
0016560 / F i g u r e o u t w h e
0016600 r e b u f f e r s a r e . \r
0016620 \t \t l e t n R e c o r d s =
0016640 x m F o n t s ? ( p D o c > >
0016660 D o c G . I C C t o t a l + b a
0016700 n d R e c o r d S i z e - 1 )
0016720 r s h i f t l o g B a \0 \a 020 @
0016740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0016760 \0 \0 001 334 376 364 \0 \0 \t 220 \0 \0 366 356 370 366
0017000 n d R e c o r d S i z e , \r \t \t
0017020 \t \t f o n t > > F o n t G . n R
0017040 e c o r d s \r \t \t n f R e c s =
0017060 n R e c s - n R e c o r d s /
0017100 / m a x a l l o w a b l e
0017120 b a n d l i s t s i z e \r
0017140 \t \t L e f t O v e r = L o w A d
0017160 r + ( f o n t > > F o n t G . n
0017200 R e c o r d s l s h i f t l
0017220 o g B a n d R e c o r d S i z e
0017240 ) \r \t \t L e f t O v e r G u a r
0017260 d = L e f t O v e r + ( l o
0017300 S i z e & ( - 4 ) ) - 4 \r \t \t b
0017320 u f = ( L e f t O v e r + l
0017340 o S i z e + 8 ) & ( - 2 ) / /
0017360 ~ ~ a l l t h e 4 ' s ,
0017400 8 ' s a n d 1 0 ' s i n
0017420 h e r e a r e c o w a r d
0017440 l y s l a c k \r \t \t n e e d F
0017460 o n t s = f a l s e \r \t \t ]
0017500 \r \r \t / / N o w r e a d i
0017520 n t h e b a n d s f o r
0017540 t h i s p a g e \r \t R e a d B
0017560 a n d s ( p a g e , b u f ,
0017600 n f R e c s , n B a n d s ) \r
0017620 \r \t i f n e e d I n i t d
0017640 o \t / / i f t h i s i
0017660 s t h e f i r s t t i m e
0017700 t h r u o r p a p e r h
0017720 a n d l i n g c h a n \0 \a 020 @
0017740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0017760 \0 \0 001 334 374 364 \0 \0 \a 220 \0 \0 366 356 370 366
0020000 g e d \r \t \t [ \r \t \t i f s t o
0020020 p s P r i n t i n g e q b i
0020040 n F u l l t h e n [ @ l v
0020060 F a i l u r e C o d e = 1 3
0020100 0 ; b r e a k ] \r \t \t / /
0020120 I n i t i a l i z e t h e O
0020140 r b i t , e t c . \r \t \t I n
0020160 i t i a l i z e H a r d w a r e
0020200 ( ) \r \t \t / / w a i t f o r
0020220 r e a d y o r s o m e s
0020240 e r i o u s c o n d i t i o n
0020260 o r f o r l o n g e n o
0020300 u g h \r \t \t t i m = @ R T C
0020320 \r \t \t u n l e s s D e b u g
0020340 d o \r \t \t \t [ \r \t \t \t l e t x
0020360 = R O S C h e c k ( s t a n
0020400 d b y ) \r \t \t \t u n l e s s x
0020420 t h e n b r e a k / / r
0020440 e a d y \r \t \t \t i f x > 0
0020460 t h e n r e s u l t i s S
0020500 e t u p R e c o v e r y ( p D o
0020520 c , l v F a i l u r e C o d e
0020540 , l v x p o r t M o d e l ,
0020560 n P a g e s P r i n t e d ,
0020600 x ) \r \t \t \t / / r e s u l t
0020620 w a s - 1 : n o t r e a
0020640 d y y e t , b u t m a y
0020660 b e s o o n . H a v e w
0020700 e w a i t e d l o n g e n
0020720 o u g h ? \r \t \t \t i f \0 \a 020 @
0020740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0020760 \0 \0 001 334 372 364 \0 \0 005 220 \0 \0 366 356 370 366
0021000 ( @ R T C - t i m ) > t
0021020 i m e O u t r e s u l t i s
0021040 S e t u p R e c o v e r y ( p D
0021060 o c , l v F a i l u r e C o d
0021100 e , l v x p o r t M o d e l
0021120 , n P a g e s P r i n t e d ,
0021140 1 2 0 ) \r \t \t \t ] r e p e a
0021160 t \r \r \r \t \t x p o r t M o d e l
0021200 = 0 \t \t / / p a p e r c
0021220 l e a r e d f r o m t r a n
0021240 s p o r t m e c h a n i s m \r
0021260 \t \t / / t e l l p e n g u i
0021300 n t o p r i n t a p a g
0021320 e a n d h o w t o h a n
0021340 d l e t h e p a p e r \r \t \t
0021360 c u r H a n d l i n g = n e
0021400 x t H a n d l i n g \r \t \t l e t
0021420 b i n = n e x t B i n \r \t
0021440 \t t e s t ( n e x t B i n e
0021460 q o v e r f l o w B i n ) &
0021500 ( c u r B i n n e o v e r
0021520 f l o w B i n ) t h e n \t / /
0021540 s w i t c h i n g t o o v
0021560 e r f l o w b i n : d o
0021600 b r e a k p a g e \r \t \t \t [
0021620 n P a g e s P r i n t e d =
0021640 n P a g e s P r i n t e d -
0021660 1 ; b i n M a x = 2 0 0 ;
0021700 b i n = c u r B i n ; s w
0021720 i t c h B i n = t r \0 \a 020 @
0021740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0021760 \0 \0 001 334 370 364 \0 \0 003 220 \0 \0 366 356 370 366
0022000 u e ] \r \t \t \t o r [ s w i
0022020 t c h B i n = f a l s e ]
0022040 \r \t \t i f R O S C o m m a n d
0022060 ( p S e t B i n + 2 + b i n
0022100 ) % R O S C o m m a n d (
0022120 c u r H a n d l i n g ) % R
0022140 O S C o m m a n d ( p P r i n t
0022160 ) d o \r \t \t \t [ @ l v F a i
0022200 l u r e C o d e = 1 2 2 ;
0022220 b r e a k ] \r \r \t \t c u r B i
0022240 n = n e x t B i n \r \r \t \t /
0022260 / T r y t o e m p t y O
0022300 r b i t b u f f e r s t o
0022320 c l e a r t h e m . T h i
0022340 s i s t o m i n i m i z e
0022360 t o n e r d u m p i n g o
0022400 n f i r s t ( b l a n k )
0022420 p a g e . \r \t \t c o m p i l e i
0022440 f l o S i z e l s 2 5 6
0022460 t h e n [ f o o = n i l ]
0022500 \r \t \t f o r i = 0 t o 3 1
0022520 d o D o F u n c ( f R e a d
0022540 B l o c k , 2 5 6 , L e f t
0022560 O v e r ) \r \r \t \t n e e d I n i
0022600 t = f a l s e \r \t \t ] \r \r \r
0022620 / / - - - - - - - - - - - - -
0022640 - - - - - - - - - - - - - - - -
*
0022700 - - - - - - - - - - - - - - \r /
0022720 / P r i n t \t \t r \0 \a 020 @ 377 v
0022740 037 \0 002 { 035 \0 \0 ( & 001 001 220 \0 \0 @
0022760 \0 \0 001 332 366 364 \0 \0 026 | \0 \0 365 355 370 366
0023000 e a l p r i n t i n g f u n
0023020 c t i o n \r / / - - - - - - -
0023040 - - - - - - - - - - - - - - - -
*
0023120 - - - - \r \r \t / / f i r s t ,
0023140 s e t u p t o d i s p l
0023160 a y p a g e n u m b e r w
0023200 e ' r e p r i n t i n g o n
0023220 p e n g u i n ' s l e d \r \t
0023240 n P a g e s P r i n t e d = n P
0023260 a g e s P r i n t e d + 1 \r \t l
0023300 e t m , n = n i l , n
0023320 i l \r \t m , n , m = n P
0023340 a g e s P r i n t e d r e m
0023360 1 0 0 , m r e m 1 0 , (
0023400 m / 1 0 ) l s h i f t 4 \r \r
0023420 \t / / a n d b u i l d t a b
0023440 l e s o o r b i t w i l l
0023460 s e n d t h e m t h r u
0023500 d u r i n g p a g e i m a g
0023520 i n g \r \t C o m m T a b ! 0 =
0023540 1 8 0 \t \t \t \r \t C o m m T a
0023560 b ! 1 = # 6 2 4 0 0 + m
0023600 + n \t \t / / s e t u p l e
0023620 d s a n d \r \t C o m m T a b !
0023640 2 = 1 5 0 \r \t C o m m T a b
0023660 ! 3 = # 6 3 0 0 2 \t \t / / d
0023700 i s p l a y ' e m \r \t C o m m T
0023720 a b ! 4 = - 1 \t \t \t \0 \a 020 @
0023740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0023760 \0 \0 001 334 377 220 \0 \0 024 | \0 \0 366 356 370 366
0024000 / / t h i s w i l l b e
0024020 s e t t o a n a p p r o p
0024040 r i a t e b a n d n u m b e
0024060 r i f t h e r e i s a n
0024100 o t h e r p a g e \r \t C o m m
0024120 T a b ! 5 = # 6 3 0 0 1 \t \t
0024140 / / c o m m a n d t o p r i
0024160 n t a n o t h e r p a g e \r
0024200 \t C o m m T a b ! 6 = - 1 \t
0024220 \t \r \r \t / / S t a r t O r b
0024240 i t w o r k i n g o n t h
0024260 e p r e s e n t p a g e . \r
0024300 \t D o F u n c ( f C o n t r o l
0024320 , # 2 1 ) \t \t / / R e s e t ,
0024340 c l e a r b e h i n d \r \t D
0024360 o F u n c ( f R O S C o m m a n
0024400 d , a d B u f f e r R e s e t
0024420 ) \r \r \t L e f t O v e r ! 0 = 0
0024440 \t \t \t / / I n i t i a l i z e
0024460 L e f t O v e r t a b l e \r \t
0024500 L e f t O v e r G u a r d ! 1 =
0024520 - 1 \r \t t i m = @ R T C \r \r \t /
0024540 / S t a r t t h e m i c r
0024560 o c o d e ! ! ! ! \r \t D o F u n
0024600 c ( f S l o t , C o m m T a b
0024620 , 2 0 0 0 0 , n B a n d s -
0024640 1 , F A v a l u e , L e f t
0024660 O v e r , \r \t \t \t F o n t T a b
0024700 l e , b u f - 1 , n i l ,
0024720 n i l , ( n e x t C o \0 \a 020 @
0024740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0024760 \0 \0 001 334 375 220 \0 \0 022 | \0 \0 366 356 370 366
0025000 p y l s h i f t 5 ) + 4 ) \r
0025020 \t i f D e b u g t h e n [
0025040 w h i l e ( @ R T C - t i m
0025060 ) < d e b D e l a y l o o
0025100 p ; t i m = @ R T C ]
0025120 / / ~ ~ d e l a y \r \t \r / /
0025140 A s s u m e t h e p a g e
0025160 w e a r e p r i n t i n g
0025200 w i l l b e O K a n d p
0025220 r e p a r e f o r w h a t e
0025240 v e r c o m e s n e x t : \r
0025260 \r \t r o s C o u n t = r o s
0025300 C o u n t + 2 \t \t / / f o
0025320 r t h e l e d s e t t i n
0025340 g c o m m a n d s \r \t C u r s
0025360 o r D i g i t ( n P a g e s P r
0025400 i n t e d ) \r \r \t / / S e e
0025420 w h o ' s ( m a y b e ) k n
0025440 o c k i n g a t m y d o o
0025460 r : i f w e a r e n o t
0025500 p l a n n i n g t o d e f
0025520 e r t o s p o o l e r , \r \t
0025540 / / d o n ' t t r o u b l
0025560 e t o s h u t d o w n h
0025600 e r e , j u s t t o f i n
0025620 d t h a t o u t t h e r e
0025640 . W o u l d b e t o o e
0025660 x p e n s i v e \r \t i f ( D e
0025700 b u g S y s t e m & # 3 0 ) e
0025720 q 0 & n u m P r i \0 \a 020 @
0025740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0025760 \0 \0 001 334 373 220 \0 \0 020 | \0 \0 366 356 370 366
0026000 n t e d g e n u m M u s t P
0026020 r i n t & k n o c k R e s u
0026040 l t & \r \t \t ( n P a g e s P r
0026060 i n t e d - n P a g e s A l r e
0026100 a d y P r i n t e d ) > p r
0026120 i n t H y s t e r e s i s \r \t
0026140 t h e n k n o c k K n o c k
0026160 = t r u e \r \r \t / / F i n
0026200 d n e x t p a g e t o w
0026220 o r k o n : \r \t n e x t P a g
0026240 e = N e x t S h e e t ( p D o c
0026260 , n P a g e s P r i n t e d )
0026300 \r \r \t n e e d I n i t = t r
0026320 u e \r \t i f ( n o t k n o c
0026340 k K n o c k ) & n e x t P a
0026360 g e & / / i f n o b o
0026400 d y w a i t i n g a n d t
0026420 h e r e i s m o r e t o
0026440 d o \r \t \t ( n e x t B i n e q
0026460 c u r B i n ) & ( n e x
0026500 t H a n d l i n g e q c u r
0026520 H a n d l i n g ) & /
0026540 / a n d p e n g u i n d o
0026560 e s n ' t n e e d a p a u
0026600 s e \r \t \t ( n o t s w i t c h
0026620 B i n ) & ( s t o p s P r i
0026640 n t i n g e q f a l s e )
0026660 t h e n \t / / a n d n o f
0026700 o r c e d b i n s w i t c h
0026720 t h e n c o n t i n \0 \a 020 @
0026740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0026760 \0 \0 001 334 371 220 \0 \0 016 | \0 \0 366 356 370 366
0027000 u e p r i n t i n g . \r \t \t \t
0027020 \t \t \t \t / / e n a b l e i n
0027040 t e r b a n d c o m m u n i c
0027060 a t i o n w i t h p e n g u
0027100 i n t o s e t u p t h e
0027120 n e x t r e v o l u t i o n
0027140 \r \t \t \t \t \t \t \t / / k e e p
0027160 t r a c k o f w h a t I '
0027200 v e s e n t s o w e d o
0027220 n ' t g e t o u t o f s
0027240 y n c \r \t \t [ \r \t \t n e e d I n
0027260 i t = f a l s e \r \t \t C o m
0027300 m T a b ! 4 = s i g b a n d
0027320 \r \t \t r o s C o u n t = r o
0027340 s C o u n t + 1 \r \t \t ] \r
0027360 \t n e e d F o n t s = ( n e
0027400 x t P a g e > > P a g e G . f o
0027420 n t L o a d n e p a g e > >
0027440 P a g e G . f o n t L o a d )
0027460 & ( n e x t P a g e n e 1
0027500 ) \r \r \r / / N o w s e e i
0027520 f w e a c t u a l l y p r
0027540 i n t e d t h i s p r o p e
0027560 r l y . W a i t f o r O
0027600 r b i t t o a n n o u n c e
0027620 i t i s f i n i s h e d .
0027640 \r \r \t w h i l e @ # 7 2 0 n
0027660 e 0 d o i f ( @ R T C -
0027700 t i m ) g r i m a g e T i m
0027720 e o u t t h e n \r \t \t \0 \a 020 @
0027740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0027760 \0 \0 001 334 367 220 \0 \0 \f | \0 \0 366 356 370 366
0030000 [ \r \t \t I n i t i a l i z e H a
0030020 r d w a r e ( ) \t \t / / c l e
0030040 a r h a r d w a r e , # 7 2
0030060 0 \r \t \t / / M a c h i n e
0030100 d e a d o r O r b i t g o
0030120 t b e h i n d a n d i t
0030140 w a s n ' t d e t e c t e d \r
0030160 \t \t / / W i l l g e n e r
0030200 a l l y b e o v e r r i d e
0030220 n b y m o r e s p e c i f
0030240 i c a n a l y s i s \r \t \t @ l
0030260 v F a i l u r e C o d e = 1
0030300 0 3 / / M a n u a l i n t
0030320 e r v e n t i o n r e q u i r
0030340 e d \r \t \t b r e a k \r \t \t ] \r \t
0030360 / / C h e c k O r b i t s
0030400 t a t u s \r \t l e t n o n F
0030420 = 0 \r \t l e t s t a t = F u
0030440 n c ! 9 \t \t / / O r b i t p r
0030460 i n t i n g s t a t u s . \r \t
0030500 / / F a t a l e r r o r d
0030520 e t e c t e d b y m i c r o
0030540 c o d e - - i n v a l i d
0030560 B a n d e n t r y - - p o
0030600 s s i b l y b r o k e n p r
0030620 o c e s s o r \r \t i f s t a t
0030640 < < S T A T U S . i n v a l i d
0030660 B a n d E n t r y t h e n \r \t
0030700 \t [ I n i t i a l i z e H a r
0030720 d w a r e ( ) ; \r \t \t \0 \a 020 @
0030740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0030760 \0 \0 001 334 365 220 \0 \0 \n | \0 \0 366 356 370 366
0031000 i f L e f t O v e r G u a
0031020 r d ! 1 e q - 1 t h e n
0031040 S p r u c e E r r o r ( 1 0 1 0
0031060 , @ 1 , @ 2 ) / / e l s
0031100 e , a s s u m e t h a t \r \t
0031120 \t \t / / b a d b a n d e n t
0031140 r y i s s i m p l y r e s
0031160 u l t o f l e f t o v e r
0031200 o v e r f l o w \r \t \t ] \r \t t e
0031220 s t s t a t < < S T A T U S .
0031240 p r e m a t u r e P a g e A b o
0031260 r t t h e n [ A n n o u n
0031300 c e ( 1 6 ) ; n o n F = 3
0031320 0 1 ] \r \t o r i f s t
0031340 a t < < S T A T U S . b e h i n
0031360 d t h e n [ A n n o u n c
0031400 e ( 1 6 ) ; n o n F = 3 0
0031420 0 ] \r \t i f s t a t < < S T
0031440 A T U S . t i m e o u t t h e
0031460 n [ A n n o u n c e ( 1 7 )
0031500 ; @ l v F a i l u r e C o d e
0031520 = 1 0 2 ] \r \t i f L e f
0031540 t O v e r G u a r d ! 1 n e
0031560 - 1 t h e n \r \t [ A n n
0031600 o u n c e ( 1 8 ) ; n o n F
0031620 = 3 1 0 ] / / t h e n
0031640 c h e c k p o s s i b l e
0031660 n e x t p a g e d a t a e
0031700 n c l o b b e r m e n t \r \t i f
0031720 n o n F t h e n @ \0 \a 020 @
0031740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0031760 \0 \0 001 334 363 220 \0 \0 \b | \0 \0 366 356 370 366
0032000 l v F a i l u r e C o d e =
0032020 n o n F \r \r \t / / N o w t r
0032040 y f o r m o r e s p e c i
0032060 f i c e n g i n e s t a t u
0032100 s c h e c k \r \t l e t r u n
0032120 n i n g = n e e d I n i t ?
0032140 c y c l e d o w n , p r i n t
0032160 i n g \r \t l e t p r i n t i n
0032200 g S e c o n d S i d e = ( r
0032220 u n n i n g e q p r i n t i
0032240 n g ) & ( c u r H a n d l i
0032260 n g e q p T S S e c o n d )
0032300 \r \t \t t i m = @ R T C \r \t \t
0032320 u n l e s s D e b u g d o \r
0032340 \t \t \t [ \r \t \t \t l e t x =
0032360 R O S C h e c k ( r u n n i n
0032400 g , p r i n t i n g S e c o n
0032420 d S i d e ) \r \t \t \t u n l e s s
0032440 x t h e n b r e a k / /
0032460 t h a t ' s w h a t w e
0032500 e x p e c t e d \r \t \t \t i f x
0032520 > 0 d o [ @ l v F a i l
0032540 u r e C o d e = x ; b r
0032560 e a k ] \r \t \t \t / / r e s u
0032600 l t w a s - 1 : o k i
0032620 f c y c l e d o w n e x p e
0032640 c t e d a n d s t i l l p
0032660 r i n t i n g \r \t \t \t i f (
0032700 r u n n i n g e q p r i n t
0032720 i n g ) % ( ( @ R T \0 \a 020 @
0032740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0032760 \0 \0 001 334 361 220 \0 \0 006 | \0 \0 366 356 370 366
0033000 C - t i m ) > 2 7 ) d
0033020 o \r \t \t \t \t [ \r \t \t \t \t @ l v
0033040 F a i l u r e C o d e = 1 1
0033060 4 ; b r e a k \r \t \t \t \t ] \r \t
0033100 \t \t ] r e p e a t \r \t \r \r \t /
0033120 / N o w w a i t f o r p
0033140 a g e s y n c t o g o o
0033160 f f \r \t u n l e s s A w a i t
0033200 P a g e S y n c ( 0 ) t h e n
0033220 @ l v F a i l u r e C o d e
0033240 = 1 0 1 \r \r / / N o w d e c
0033260 i d e w h a t t o d o : \r
0033300 \t i f ( @ l v F a i l u r e C
0033320 o d e > 0 ) & ( @ l v F
0033340 a i l u r e C o d e < m i n
0033360 D o c u m e n t E r r o r ) d
0033400 o [ b a c k u p = 1 ;
0033420 b r e a k ] \r \r \t i m a g e T
0033440 i m e o u t = r I T O \t + (
0033460 n e e d I n i t ? 1 1 * 2 7 , 0
0033500 ) \t / / n e x t i m a g e
0033520 s h o u l d b e o u t i n
0033540 l e s s t h a n 2 s e c
0033560 o n d s \r \t x p o r t M o d e l
0033600 = ( ( x p o r t M o d e l
0033620 & 3 ) l s h i f t 1 ) +
0033640 1 \r \t t e s t c u r H a n d
0033660 l i n g e q p T S F i r s t
0033700 t h e n \r \t \t [ \r \t \t B i n
0033720 C o u n t e r s ! A u x \0 \a 020 @
0033740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0033760 \0 \0 001 334 357 220 \0 \0 004 | \0 \0 366 356 370 366
0034000 C o u n t = ( B i n C o u n
0034020 t e r s ! A u x C o u n t ) +
0034040 1 \r \t \t i f B i n C o u n t e
0034060 r s ! A u x R e c o v e r y C o
0034100 u n t d o \r \t \t \t [ \r \t \t \t B
0034120 i n C o u n t e r s ! A u x R e
0034140 c o v e r y C o u n t = B i
0034160 n C o u n t e r s ! A u x R e c
0034200 o v e r y C o u n t - 1 \r \t \t
0034220 \t u n l e s s B i n C o u n t
0034240 e r s ! A u x R e c o v e r y C
0034260 o u n t d o n P a g e s P r
0034300 i n t e d = n P a g e s A l
0034320 r e a d y P r i n t e d \r \t \t \t
0034340 ] \r \t \t ] \r \t \t o r \t \t / /
0034360 n o t e t h a t b i n c
0034400 o u n t e r s n o t i n c r
0034420 e m e n t e d i f f i l l i
0034440 n g a u x t r a y \r \t \t [ \r
0034460 \t \t A d d T o B i n ( b i n M
0034500 a x , c u r B i n ) ; i f
0034520 ( c u r H a n d l i n g e q
0034540 p T S S e c o n d ) d o [
0034560 B i n C o u n t e r s ! A u x
0034600 C o u n t = ( B i n C o u n
0034620 t e r s ! A u x C o u n t ) -
0034640 1 ] \r \t \t ] \r ] P r i n t
0034660 L o o p r e p e a t \r \r \t I n
0034700 i t i a l i z e H a r d w a r e
0034720 ( ) \r \t C l o s e M e a \0 \a 020 @
0034740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0034760 \0 \0 001 334 355 220 \0 \0 002 | \0 \0 366 356 370 366
0035000 s u r e ( ) \r \t r e s u l t i s
0035020 ( k n o c k K n o c k % @
0035040 l v F a i l u r e C o d e ) ?
0035060 S e t u p R e c o v e r y ( p D
0035100 o c , l v F a i l u r e C o d e
0035120 , l v x p o r t M o d e l ,
0035140 n P a g e s P r i n t e d - b a
0035160 c k u p ) , - 1 \r ] \r / / -
0035200 - - - - - - - - - - - - - - - -
*
0035300 - - - - - - - - - \r / / c o d
0035320 e = R O S C h e c k ( e x p
0035340 e c t e d P r i n t S e q ) \r /
0035360 / - - - - - - - - - - - - - -
0035400 - - - - - - - - - - - - - - - -
*
0035460 - - - - - - - - - - - - \r \r / /
0035500 a n a l y z e R O S s t a
0035520 t u s \r / / c o d e = \t 0
0035540 i f t h e r e a r e n o
0035560 m a l f u n c t i o n s , R
0035600 O S i s r e a d y t o p
0035620 r i n t \r / / \t \t \t - 1 i f
0035640 t h e o n l y t h i n g w
0035660 r o n g i s t h a t p e n
0035700 g u i n n e e d s t o c y
0035720 c l e r o u n d \0 \a 020 @ 377 v
0035740 037 \0 002 { 035 \0 \0 ( & 001 \0 | \0 \0 @
0035760 \0 \0 001 332 353 220 \0 \0 \t 026 \0 \0 365 355 370 366
0036000 t o t h e e x p e c t e d
0036020 s t a t e \r / / \t \t \t o t h e r
0036040 w i s e , a c o d e f o r
0036060 t h e e r r o r d e t e c
0036100 t e d \r / / \t \t \t \r / / e x p
0036120 e c t e d P r i n t S e q \t w h
0036140 e r e c a l l e r t h i n k
0036160 s p e n g u i n s h o u l d
0036200 b e ( p r i n t i n g , c y
0036220 c l i n g d o w n , s t a n
0036240 d i n g b y , d o n ' t c
0036260 a r e ) \r \r / / R O S C h e c
0036300 k f i r s t s c r e e n s
0036320 t h e c u r r e n t s t a t
0036340 u s f o r a n y m a l f u
0036360 n c t i o n i n d i c a t i o
0036400 n s , a n d \r / / r e t u r
0036420 n s r i g h t a w a y i f
0036440 t h e r e a r e n o n e .
0036460 O t h e r w i s e , i t a
0036500 p p l i e s t h e c u r r e
0036520 n t s t a t u s \r / / a g a
0036540 i n s t a p r i n t e r - d
0036560 e p e n d e n t t a b l e o
0036600 f p o s s i b l e c o n d i
0036620 t i o n s , y i e l d i n g
0036640 a f a i l u r e \r / / c o d
0036660 e . \r / / A c h e c k v
0036700 e r i f i e s t h a t t h e
0036720 l a s e r i s o n \0 \a 020 @
0036740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0036760 \0 \0 001 334 376 | \0 \0 \a 026 \0 \0 366 356 370 366
0037000 a n d t h e p o l y g o n
0037020 i s \r / / s c a n n i n g
0037040 ( S O S / E O S a r e s e e
0037060 i n g t h i n g s ) , b y
0037100 m a k i n g s u r e t h a t
0037120 t h e l o w f o u r b i
0037140 t s o f t h e l i n e \r /
0037160 / c o u n t ( i n d i c a t
0037200 e d i n s t a t u s w o r
0037220 d ) a r e c h a n g i n g
0037240 . T h e c o d e r e a d s
0037260 t h e l i n e c o u n t ,
0037300 w a i t s \r / / a p p r o x
0037320 i m a t e l y t h e t i m e
0037340 n e e d e d f o r f o u r
0037360 s c a n l i n e s ( g e n
0037400 e r o u s m a r g i n ) , t
0037420 h e n r e a d s t h e \r / /
0037440 c o u n t a g a i n , r e
0037460 p o r t i n g a p r o b l e
0037500 m i f t h e v a l u e s
0037520 a r e e q u a l . T h i s
0037540 t e s t h a p p e n s o n l
0037560 y w h e n \r / / t h e r u
0037600 n n i n g p a r a m e t e r
0037620 i s f a l s e . T h e w a
0037640 i t t i m e ( s c a n T i c
0037660 k s ) i s c o m p u t e d
0037700 i n P r i n t I n i t , a s
0037720 : \r \r / / R e s o l u \0 \a 020 @
0037740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0037760 \0 \0 001 334 374 | \0 \0 005 026 \0 \0 366 356 370 366
0040000 t i o n S i s s c a l e d
0040020 b y 1 0 a s s t o r e d ,
0040040 P a p e r S p e e d I n c h e
0040060 s b y 1 0 0 . T h e ( f
0040100 a s t 1 0 b i t s o f ) \r
0040120 / / t h e R T C t i c k s
0040140 a t 3 8 u s e c . i n t
0040160 e r v a l s . T h u s t h e
0040200 # t i c k s w a n t e d
0040220 f o r f o u r l i n e s i
0040240 s : \r \r / / ( 4 l i n
0040260 e s x 1 0 ^ 6 u s e c / s
0040300 e c x 1 / 3 8 t i c k /
0040320 u s e c . ) / ( ( P a p e r
0040340 S p e e d I n c h e s / 1 0 0
0040360 x R e s o l u t i o n S / 1 0
0040400 ) l i n e s / s e c ) \r \r / /
0040420 o r a b o u t ( 1 0 6 x
0040440 1 0 ^ 3 ) / ( P a p e r S
0040460 p e e d I n c h e s / 1 0 0 x
0040500 R e s o l u t i o n S / 1 0 )
0040520 t i c k s - - a b o u
0040540 t 3 0 f o r D o v e r . \r
0040560 \r / / T h i s i s o n l y
0040600 a p p r o x i m a t e b e c
0040620 a u s e R O S S t a t u s t
0040640 i m e , a b o u t 1 0 t i
0040660 c k s f o r D o v e r , i
0040700 s n o t i n c l u d e d . \r
0040720 / / P a r t o f t \0 \a 020 @
0040740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0040760 \0 \0 001 334 372 | \0 \0 003 026 \0 \0 366 356 370 366
0041000 h e r e a s o n f o r w a
0041020 i t i n g f o u r l i n e
0041040 t i m e s i s t o a c c o
0041060 u n t f o r p o s s i b l e
0041100 d e l a y s i n o b t a i
0041120 n i n g \r / / t h e c o r r
0041140 e c t l i n e c o u n t s
0041160 t a t u s . L a t e r , t h
0041200 i s m e t h o d c a n b e
0041220 u s e d t o c h e c k f
0041240 o r c o r r e c t p o l y g
0041260 o n s p e e d . \r / / T h e
0041300 s c a n T i c k s s t a t i
0041320 c i s s h i f t e d l e f
0041340 t b y 6 t o m a t c h
0041360 t h e c l o c k r e a d i n
0041400 g f u n c t i o n ' s r e s
0041420 u l t s \r \r a n d R O S C h e
0041440 c k ( e x p e c t e d , p r i
0041460 n t i n g S e c o n d S i d e ;
0041500 n u m a r g s n a ) = v
0041520 a l o f \r \r [ \r i f n a <
0041540 2 t h e n p r i n t i n g S
0041560 e c o n d S i d e = f a l s
0041600 e \r r o s 1 2 = R O S S t a
0041620 t u s ( 1 2 ) \r r o s 1 3 =
0041640 R O S S t a t u s ( 1 3 ) \r l e
0041660 t s c a n n i n g , a u x
0041700 T r a y P r o b l e m = t r
0041720 u e , f a l s e \r \0 \a 020 @ 377 v
0041740 037 \0 002 { 035 \0 \0 ( & 001 001 026 \0 \0 @
0041760 \0 \0 001 332 370 | \0 \0 @ ] \0 ] 365 355 370 366
0042000 l e t m a l F n S t a t u s
0042020 = r o s 1 3 & # 7 7 \r l e t
0042040 a u x T r a y E m p t y = (
0042060 r o s 1 3 & # 1 0 0 ) n e
0042100 0 \r l e t m a i n T r a y E
0042120 m p t y = ( r o s 1 3 &
0042140 # 2 0 0 ) n e 0 \r l e t s
0042160 u b S e q = ( r o s 1 3 r
0042200 s h i f t 8 ) & 7 \r l e t m
0042220 a i n S e q = ( r o s 1 3
0042240 r s h i f t 1 1 ) & 7 \r l e t
0042260 m o d e = r o s 1 3 r s
0042300 h i f t 1 4 \r l e t p r i n
0042320 t S e q = s e l e c t o n
0042340 m a i n S e q i n t o \r \t [ \r
0042360 \t c a s e 1 : p o w e r O n
0042400 \r \t c a s e 2 : w a r m u p
0042420 \r \t c a s e 3 : s t a n d b
0042440 y \t \t \t \t \r \t c a s e 4 :
0042460 0 \r \t c a s e 5 : m a l f
0042500 C l e a r \t \t \t \t \r \t d e f a
0042520 u l t : m a i n S e q E r r \t
0042540 \t \t \t \t \t / / M a i n s e q e
0042560 r r o r \r \t ] \r u n l e s s n
0042600 a d o e x p e c t e d =
0042620 p r i n t S e q / / p r i
0042640 n t i n g n o t v a l i d
0042660 s t a t e i f n o t h i n g
0042700 e x p e c t e d \r u n l e s s
0042720 p r i n t S e q d o \0 \a 020 @
0042740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0042760 \0 \0 001 334 377 026 \0 \0 > ] \0 ] 366 356 370 366
0043000 [ p r i n t S e q = s e
0043020 l e c t o n s u b S e q i n
0043040 t o \r \t [ \r \t c a s e 0 : p
0043060 r i n t i n g \t \t \t \r \t c a s
0043100 e 1 : p r e p r i n t \t \t \t
0043120 \r \t c a s e 2 : c y c l e
0043140 d o w n \r \t c a s e 4 : a
0043160 b n o r m a l \r \t d e f a u l t
0043200 : s u b S e q E r r \t \t \t \t \t
0043220 / / s u b S e q e r r o r \r
0043240 \t ] ] \r l e t r e a d y =
0043260 \r \t ( p r i n t S e q e q
0043300 e x p e c t e d ) & / / p
0043320 e n g u i n i s w h e r e
0043340 w e t h i n k i t s h o u
0043360 l d b e \r \t ( m a l F n S t a
0043400 t u s e q 0 ) & \r \t ( n o
0043420 t m a i n T r a y E m p t y )
0043440 & \r \t ( ( r o s 1 2 & #
0043460 1 2 3 7 7 ) e q ( r o s C o
0043500 u n t & # 3 7 7 ) ) & /
0043520 / n o m a l f a n d n o
0043540 q u e u e p r o b l e m s \r \t
0043560 m o d e e q 1 / / a n d
0043600 p r i n t e r i s i n r
0043620 e m o t e p r i n t m o d e
0043640 \r \r i f r e a d y & ( p r
0043660 i n t S e q n e p r i n t i
0043700 n g ) t h e n \r \t [ \r \t l
0043720 e t l i n e C o u n t \0 \a 020 @
0043740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0043760 \0 \0 001 334 375 026 \0 \0 < ] \0 ] 366 356 370 366
0044000 = R O S S t a t u s ( 7 )
0044020 & # 1 7 0 0 0 0 \r \t l e t
0044040 r t c = R e a d C l o c k
0044060 ( ) \r \t u n t i l ( R e a
0044100 d C l o c k ( ) - r t c ) g e
0044120 s c a n T i c k s l o o p \r
0044140 \t s c a n n i n g = ( R
0044160 O S S t a t u s ( 7 ) & # 1 7 0
0044200 0 0 0 ) n e l i n e C o u n
0044220 t \r \t i f e x p e c t e d n
0044240 e c y c l e d o w n d o \t /
0044260 / c a n ' t c h e c k w h
0044300 i l e p a p e r m a y b e
0044320 m o v i n g \r \t \t [ \r \t \t
0044340 i f ( B i n C o u n t e r s !
0044360 A u x C o u n t e q 0 ) &
0044400 ( n o t a u x T r a y E m p
0044420 t y ) t h e n a u x T r a y
0044440 P r o b l e m = 7 2 \r \t \t ]
0044460 \r \t ] \r i f p r i n t i n g S
0044500 e c o n d S i d e & a u x T
0044520 r a y E m p t y t h e n a u
0044540 x T r a y P r o b l e m = 7
0044560 0 \r \r i f r e a d y & s c
0044600 a n n i n g & ( a u x T r a
0044620 y P r o b l e m e q f a l s
0044640 e ) % D e b u g r e s u l
0044660 t i s 0 \r \r / / i d e n t
0044700 i f y t h e p r o b l e m
0044720 o r c o n d i t i o n \0 \a 020 @
0044740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0044760 \0 \0 001 334 373 026 \0 \0 : ] \0 ] 366 356 370 366
0045000 p r e v e n t i n g r e a d
0045020 y \r \r l e t m a l f = s
0045040 e l e c t o n m a l F n S t a
0045060 t u s i n t o [ \r \t c a s e
0045100 1 : 8 1 \t \t / / p r o c e
0045120 s s o r i n t e r l o c k o
0045140 p e n \r \t c a s e 2 : 8 2 \t
0045160 \t / / z o n e I I A j a m
0045200 \r \t c a s e 3 : 8 3 \t \t / /
0045220 z o n e I I B j a m \r \t c
0045240 a s e 4 : 8 4 \t \t / / z o
0045260 n e I I I j a m \r \t c a s e
0045300 5 : 8 5 \t \t / / s o r t e
0045320 r i n t e r l o c k o p e n
0045340 \r / / \t c a s e 6 : 8 6 \t \t
0045360 / / s t o p p r i n t p u
0045400 s h b u t t o n p r e s s e
0045420 d : n o t u s e d i n r
0045440 e m o t e p r i n t . \r \t c a
0045460 s e 7 : 7 1 \t \t / / a u x
0045500 t r a y e m p t y \t \r \t c a
0045520 s e 8 : 1 1 5 \t \t / / m a
0045540 i n t r a y e m p t y -
0045560 s h o u l d n ' t h a p p e n
0045600 w i t h m a i n T r a y P r
0045620 o b l e m b e i n g w a t c
0045640 h e d . \r \t c a s e 9 : 1 0
0045660 8 \t \t / / i n k l o w \r \t c
0045700 a s e 1 0 : 1 0 9 \t / / t
0045720 r a y s d o n ' t m \0 \a 020 @
0045740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0045760 \0 \0 001 334 371 026 \0 \0 8 ] \0 ] 366 356 370 366
0046000 a t c h \r \t c a s e 1 1 : 1
0046020 1 0 \t / / f u s e r n o t
0046040 r e a d y \r \t c a s e 1 2 :
0046060 1 1 1 \t / / m a i n t r a y
0046100 p a p e r m i s f e e d \r \t
0046120 c a s e 1 3 : 8 0 \t \t / /
0046140 a u x t r a y p a p e r m
0046160 i s f e e d \r \t c a s e 1 4 :
0046200 1 1 2 \t / / c y c l e c o
0046220 n t r o l s t a t e e r r o
0046240 r \r \t c a s e 1 5 : 1 2 4 \t
0046260 / / p a p e r e x i t j a m
0046300 \r \t c a s e 1 6 : 1 2 5 \t /
0046320 / ( o u t p u t ) b i n e
0046340 n t e r j a m \r \t c a s e 0
0046360 : 0 \r \t d e f a u l t :
0046400 - 1 ] \r l e t n o R e s
0046420 p o n s e = E n g i n e C o
0046440 m m E r r ( r o s 1 2 ) \t / / c
0046460 h e c k s t a t u s o f s
0046500 p r u c e c o m m u n i c a t
0046520 i o n w i t h p e n g u i n
0046540 \r l e t c o d e = 0 \r \t t
0046560 e s t m o d e n e 1 t h
0046600 e n c o d e = 1 0 0 \t / /
0046620 l o c a l m o d e - P e
0046640 n g u i n n o t l i s t e n
0046660 i n g \r \t o r t e s t r o
0046700 s 1 2 < 0 t h e n c o d
0046720 e = 1 0 4 \t / / w \0 \a 020 @
0046740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0046760 \0 \0 001 334 367 026 \0 \0 6 ] \0 ] 366 356 370 366
0047000 a i t s t a t e - P e n g
0047020 u i n n o t l i s t e n i n
0047040 g \r \t o r t e s t m a l f
0047060 > 0 t h e n \r \t \t [ \r \t
0047100 \t l e t x = R O S C o m
0047120 m a n d ( p C l e a r M a l f )
0047140 \r \t \t u n l e s s ( a u x T
0047160 r a y P r o b l e m e q 7 0
0047200 ) d o c o d e = m a l f
0047220 \t / / g o o d m a l f u n c
0047240 t i o n c o d e \r \t \t ] \r \t
0047260 o r t e s t n o R e s p o
0047300 n s e t h e n c o d e =
0047320 1 1 6 \t / / p e n g u i n n
0047340 o t t a l k i n g \r \t o r
0047360 t e s t p r i n t S e q >
0047400 m a l f C l e a r t h e n c
0047420 o d e = p r i n t S e q \t / /
0047440 S t a t e e r r o r \r \t
0047460 o r t e s t m a l f t h e
0047500 n c o d e = 1 1 7 \t \t / /
0047520 u n k n o w n m a l f u n c
0047540 t i o n c o d e \r \t o r t
0047560 e s t n o t s c a n n i n g
0047600 t h e n c o d e = 1 1 8
0047620 \t / / l a s e r a p p e a r
0047640 s t o b e o f f \r \t o r
0047660 t e s t a u x T r a y P r o
0047700 b l e m t h e n c o d e =
0047720 a u x T r a y P r o b \0 \a 020 @
0047740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0047760 \0 \0 001 334 365 026 \0 \0 4 ] \0 ] 366 356 370 366
0050000 l e m \r \t o r t e s t m a
0050020 i n T r a y E m p t y t h e n
0050040 c o d e = 1 3 2 \r \t o r
0050060 t e s t p r i n t S e q n
0050100 e e x p e c t e d t h e n
0050120 c o d e = - 1 \r \t o r c
0050140 o d e = 1 1 9 \t / / c a n
0050160 ' t f i g u r e o u t w h
0050200 a t ' s w r o n g \r r e s u l
0050220 t i s c o d e \r ] \r / / N e
0050240 x t S h e e t ( p D o c , a f
0050260 t e r P a g e ) \r / / - - - -
0050300 - - - - - - - - - - - - - - - -
*
0050400 - - - - - - - - - - - - - - - \r
0050420 / / S e t u p p a p e r h
0050440 a n d l i n g i n f o , c o
0050460 p y n u m b e r a n d p o
0050500 i n t e r t o P a g e G s
0050520 t r u c t u r e t h a t d e
0050540 s c r i b e t h e n e x t
0050560 i m a g e . \r / / I t i
0050600 s a s s u m e d t h a t t
0050620 h e P a g e G e n t i t i e
0050640 s r e p r e s e n t c o n s
0050660 e c u t i v e l y n u m b e r
0050700 e d p a g e s . w h i c h
0050720 S i d e i d e n t i f \0 \a 020 @
0050740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0050760 \0 \0 001 334 363 026 \0 \0 2 ] \0 ] 366 356 370 366
0051000 i e s a \r / / p a g e a
0051020 s ' o d d ' o r ' e v e n
0051040 ' ; ' o d d ' p a g e s f
0051060 a c e t h e s a m e w a y
0051100 t h e b r e a k p a g e
0051120 d o e s - - u p , i n t h
0051140 e n o r m a l p e n g u i n
0051160 m o d e [ d o w n , i f
0051200 " p r i n t e r F o r w a r d "
0051220 ] . \r / / A l l p a g e
0051240 s a r e p a i r e d e x c
0051260 e p t : t h e b r e a k
0051300 p a g e , t h e f i r s t
0051320 p a g e i f i t i s " e
0051340 v e n " , t h e l a s t p
0051360 a g e i f i t i s " o d
0051400 d " \r / / N e x t S h e e t
0051420 m a k e s t w o p a s s e s
0051440 t h r u t h e d o c u m e
0051460 n t : \r / / * * o n t h e
0051500 f i r s t p a s s a l l
0051520 i m a g e s t h a t w i l l
0051540 b e f a c i n g d o w n
0051560 a r e p r i n t e d a n d
0051600 s t o r e d i n t h e a u
0051620 x t r a y i n r e v e r
0051640 s e o r d e r . \r / / * * o
0051660 n t h e s e c o n d p a s
0051700 s t h e p a g e s t h a t
0051720 w i l l b e f a c \0 \a 020 @
0051740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0051760 \0 \0 001 334 361 026 \0 \0 0 ] \0 ] 366 356 370 366
0052000 e u p i n t h e o u t p
0052020 u t b i n a r e p r i n t
0052040 e d . T h i s p a s s i s
0052060 c o m p l i c a t e d \r / /
0052100 \t b y t h e f a c t t h a
0052120 t t h e r e m a y b e f
0052140 a c e - d o w n s h e e t s
0052160 f o r w h i c h t h e r e
0052200 i s n o c o r r e s p o n d
0052220 i n g f a c e - u p i m a g
0052240 e \r / / \t - - t h e s e s
0052260 h e e t s m u s t b e p a
0052300 s s e d t h r u a t t h e
0052320 a p p r o p r i a t e t i m
0052340 e - - a n d b y t h e
0052360 f a c t t h a t t h e r e
0052400 m a y b e f a c e - u p s
0052420 h e e t s f o r w h i c h
0052440 \r / / \t t h e r e i s n o
0052460 c o r r e s p o n d i n g f a
0052500 c e - d o w n s h e e t - -
0052520 t h e s e s h e e t s m u
0052540 s t b e f e d f r o m t
0052560 h e m a i n t r a y i n s
0052600 t e a d o f t h e a u x .
0052620 \r \r a n d l e t N e x t S h
0052640 e e t ( p D o c , a f t e r P
0052660 a g e ) = v a l o f [
0052700 \r n e x t B i n = S e l e c
0052720 t B i n ( c u r B i n ) \0 \a 020 @
0052740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0052760 \0 \0 001 334 357 026 \0 \0 . ] \0 ] 366 356 370 366
0053000 \r i f ( n e x t B i n e q
0053020 0 ) & ( c u r B i n n e
0053040 0 ) & b r e a k P a g e
0053060 & ( a f t e r P a g e < n
0053100 P a g e s * n C o p i e s ) d
0053120 o \r \t / / s w i t c h i n
0053140 g t o o v e r f l o w b i
0053160 n - l e a v e b r e a k
0053200 p a g e i n m a i l b o x \r
0053220 \t [ n e x t H a n d l i n g
0053240 = p S S M a i n ; n e x t C
0053260 o p y = 1 0 0 1 ; b r e a
0053300 k P a g e C o p y = 1 0 0 2
0053320 \r \t r e s u l t i s b k P a g
0053340 e ] \r u n l e s s t w o s i
0053360 d e d & ( n P a g e s g
0053400 r 0 ) d o \r \t [ n e x t
0053420 H a n d l i n g = p S S M a
0053440 i n ; r e s u l t i s P r i
0053460 n t N e x t ( p D o c , l v
0053500 n e x t C o p y , a f t e r P
0053520 a g e ) ] \r l e t p a g e ,
0053540 c o p y = 0 , 0 \r t e s
0053560 t a f t e r P a g e l s t
0053600 o t A u x S i d e s i f s o \t
0053620 \t / / t h e n n e e d t o
0053640 f i l l A u x t r a y \r \t
0053660 [ \r \t n e x t H a n d l i n g
0053700 = p T S F i r s t \r \t c o p y
0053720 = a f t e r P a g e \0 \a 020 @
0053740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0053760 \0 \0 001 334 355 026 \0 \0 , ] \0 ] 366 356 370 366
0054000 / n A u x S i d e s \r \t t e
0054020 s t c o p y e q n C o p i
0054040 e s t h e n p a g e =
0054060 b k P a g e o r \r \t [ \r
0054100 \t n e x t C o p y = p r
0054120 i n t e r F o r w a r d ? n C
0054140 o p i e s - c o p y , c o p y
0054160 + 1 \r \t r e l I m a g e I n
0054200 d e x = ( a f t e r P a g e
0054220 r e m n A u x S i d e s ) *
0054240 2 + 1 - a u x I n c r \r
0054260 \t i f p r i n t e r F o r
0054300 w a r d d o r e l I m a g e
0054320 I n d e x = n P a g e s -
0054340 1 - r e l I m a g e I n d e x
0054360 \r \t p a g e = r e l I m
0054400 a g e I n d e x * ( s i z e
0054420 P a g e G / 1 6 ) + p D o
0054440 c > > D o c G . P a g e s \r \t
0054460 ] \r \t ] \r i f n o t \t / /
0054500 t h e n p u t p a p e r
0054520 o u t - f r o m a u x t
0054540 r a y o r a s s i n g l e
0054560 s h e e t s f r o m m a i
0054600 n t r a y \r \t [ \r \t a f t e r
0054620 P a g e = a f t e r P a g e
0054640 - t o t A u x S i d e s \r \t
0054660 n e x t H a n d l i n g = p
0054700 T S S e c o n d \r \t t e s t a
0054720 f t e r P a g e < n \0 \a 020 @
0054740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0054760 \0 \0 001 334 353 026 \0 \0 * ] \0 ] 366 356 370 366
0055000 A u x B r e a k s t h e n \t p
0055020 a g e = 1 o r \t \t / / n
0055040 o i m a g e - - j u s t
0055060 f e e d b r e a k p a g e t
0055100 h r u \r \t [ \r \t a f t e
0055120 r P a g e = a f t e r P a g
0055140 e - n A u x B r e a k s \r \t
0055160 t e s t a f t e r P a g e
0055200 < t o t S h e e t s i f s
0055220 o \t \t / / i f t h e r e a
0055240 r e m o r e d a t a p a g
0055260 e s . . . \r \t \t [ \r \t
0055300 \t c o p y = a f t e r P
0055320 a g e / n S h e e t s \r \t \t
0055340 n e x t C o p y = p r i n t
0055360 e r F o r w a r d ? c o p y +
0055400 1 , n C o p i e s - c o p
0055420 y \r \t \t r e l I m a g e I n
0055440 d e x = a f t e r P a g e
0055460 r e m n S h e e t s \r \t \t
0055500 t e s t ( r e l I m a g e I n
0055520 d e x + a u x I n c r ) e q
0055540 n S h e e t s t h e n p a
0055560 g e = 1 \t / / n o i m a
0055600 g e - - j u s t f e e d
0055620 p a g e t h r u \r \t \t o r
0055640 \t \t / / t h e r e i s a n
0055660 i m a g e t o d o \r \t \t
0055700 [ \r \t \t i f r e
0055720 l I m a g e I n d e x \0 \a 020 @
0055740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0055760 \0 \0 001 334 351 026 \0 \0 ( ] \0 ] 366 356 370 366
0056000 < i n c r d o n e x t H a
0056020 n d l i n g = p S S M a i
0056040 n / / s i n g l e s h e e
0056060 t \r \t \t l e t p a g e
0056100 I n d e x = ( a f t e r P a
0056120 g e r e m ( n S h e e t s
0056140 - a u x I n c r ) ) * 2 +
0056160 1 - i n c r \r \t \t u
0056200 n l e s s p r i n t e r F o r
0056220 w a r d d o p a g e I n d e
0056240 x = n P a g e s - 1 -
0056260 p a g e I n d e x \r \t \t
0056300 p a g e = p a g e I n d e
0056320 x * ( s i z e P a g e G / 1 6
0056340 ) + p D o c > > D o c G . P
0056360 a g e s \r \t \t ] \r \t \t
0056400 ] \r \t i f n o t \t \t /
0056420 / n o m o r e d a t a p
0056440 a g e s \r \t \t [ i f a f
0056460 t e r P a g e < t o t S h e
0056500 e t s + n B r e a k s d o
0056520 [ n e x t H a n d l i n g
0056540 = p S S M a i n ; p a g e
0056560 = b k P a g e ] ] \r \t ]
0056600 ] \r i f p a g e e q b k
0056620 P a g e t h e n n e x t C o
0056640 p y = b r e a k P a g e C o
0056660 p y \r r e s u l t i s p a g e
0056700 ] \r / / - - - - - - - - - -
0056720 - - - - - - - - - - - - \0 \a 020 @
0056740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0056760 \0 \0 001 334 347 026 \0 \0 & ] \0 ] 366 356 370 366
0057000 - - - - - - - - - - - - - - - -
*
0057060 - - - - - - - - - - - - - \r / /
0057100 S e t u p R e c o v e r y ( p
0057120 D o c , l v F a i l u r e C o
0057140 d e , l v X p o r t M o d e l
0057160 , r e s t a r t P a g e , c
0057200 o d e ; n u m a r g s n a )
0057220 \r / / - - - - - - - - - - - -
0057240 - - - - - - - - - - - - - - - -
*
0057340 - - - - - - - \r / / T h i s i
0057360 s t r u l y s e r i o u s
0057400 - S p r u c e a b o r t s
0057420 t h e f i l e a n d r e s
0057440 t a r t s f r o m t h e b
0057460 e g i n n i n g . \r / / \t $ $ 5
0057500 0 7 0 0 7 0 : s t a r t i n
0057520 g o v e r - A u x t r a
0057540 y e m p t y t o o s o o n
0057560 \r / / A u x t r a y s h o
0057600 u l d h a v e h a d a s
0057620 h e e t w i t h a f i r s
0057640 t s i d e - g o t l o s
0057660 t s o m e w h e r e \r / / $
0057700 $ 5 0 7 1 0 7 1 : A u x t
0057720 r a y e m p t y m a \0 \a 020 @
0057740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0057760 \0 \0 001 334 345 026 \0 \0 $ ] \0 ] 366 356 370 366
0060000 l f u n c t i o n \r / / M a
0060020 y b e s p u r i o u s \r / /
0060040 \t $ $ 5 0 7 2 0 7 2 : A u x
0060060 t r a y h a s t r a s h
0060100 i n i t - p l e a s e e
0060120 m p t y i t \r \r / / T h e s
0060140 e r e p r e s e n t e x t e
0060160 r n a l p r o b l e m s -
0060200 S p r u c e n e e d s u s e
0060220 r i n t e r v e n t i o n t
0060240 o r e c o v e r n i c e l y
0060260 \r / / i f t h e A u x t r
0060300 a y i s i n v o l v e d . \r
0060320 / / \t $ $ 5 0 8 0 0 8 0 : A
0060340 u x t r a y m i s f e e d \r
0060360 / / \t $ $ 5 0 8 1 0 8 1 : P
0060400 r o c e s s o r i n t e r l o
0060420 c k o p e n \r / / \t $ $ 5 0 8
0060440 2 0 8 2 : Z o n e I I A
0060460 j a m \r / / \t $ $ 5 0 8 3 0 8
0060500 3 : Z o n e I I B j a m \r
0060520 / / \t $ $ 5 0 8 4 0 8 4 : Z
0060540 o n e I I I j a m \r / / \t $
0060560 $ 5 0 8 5 0 8 5 : J a m -
0060600 R e m o v e 1 s h e e t
0060620 f r o m p a p e r p a t h /
0060640 a u x t r a y . \r / / \t $ $ 5
0060660 0 8 6 0 8 6 : J a m - R
0060700 e m o v e 2 s h e e t s f
0060720 r o m p a p e r p a \0 \a 020 @
0060740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0060760 \0 \0 001 334 343 026 \0 \0 " ] \0 ] 366 356 370 366
0061000 t h / a u x t r a y . \r / / \t
0061020 $ $ 5 0 8 7 0 8 7 : J a m
0061040 - R e m o v e 3 s h e e t
0061060 s f r o m p a p e r p a t
0061100 h / a u x t r a y . \r \r / / E
0061120 v e n i f t h e s e w e r
0061140 e d e t e c t e d w h i l e
0061160 p r i n t i n g , a s s u m
0061200 e P e n g u i n d i d n o
0061220 t s t a r t f e e d i n g
0061240 p a p e r \r / / ( l a s t p a
0061260 g e m u s t b e r e p r i
0061300 n t e d , b u t n o t h i n
0061320 g i n t h e p a p e r t
0061340 r a n s p o r t m e c h a n i
0061360 s m w a s d a m a g e d ) \r
0061400 / / \t $ $ 5 0 9 0 0 9 0 : M
0061420 a i n t r a y m i s f e e d
0061440 \r \r / / t h e s e a s s u m e
0061460 l a s t p a g e w a s p
0061500 r i n t e d s u c c e s s f u
0061520 l l y i f d e t e c t e d
0061540 w h i l e p r i n t i n g f
0061560 i r s t s i d e \r / / I f w
0061600 e a r e w r o n g , e r r
0061620 o r 7 0 w i l l o c c u r
0061640 \r / / \t $ $ 5 1 0 0 1 0 0 :
0061660 P r i n t e r i s i n l o
0061700 c a l m o d e . R e m o v e
0061720 A u d i t r o n k e \0 \a 020 @
0061740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0061760 \0 \0 001 334 341 026 \0 \0 ] \0 ] 366 356 370 366
0062000 y . \r / / \t $ $ 5 1 0 1 1 0 1
0062020 : R O S m a l f u n c t i o
0062040 n - P a g e s y n c n e
0062060 v e r w e n t o f f . \r / /
0062100 \t $ $ 5 1 0 2 1 0 2 : R O S
0062120 o r p r i n t i n g m a l
0062140 f u n c t i o n - O r b i t
0062160 t i m e d o u t \r / / \t -
0062200 - p a g e s y n c n e v e
0062220 r a r r i v e d , o r e n
0062240 g i n e d i e d , o r O r
0062260 b i t g o t b e h i n d . \r
0062300 / / \t $ $ 5 1 0 3 1 0 3 : R
0062320 O S o r p r i n t i n g m
0062340 a l f u n c t i o n - A l t
0062360 o p r o g r a m t i m e d
0062400 o u t \r / / \t w a i t i n g
0062420 f o r O r b i t m i c r o c
0062440 o d e ; p a g e s y n c n
0062460 e v e r a r r i v e d , o r
0062500 e n g i n e d i e d , o r
0062520 O r b i t g o t b e h i n
0062540 d . \r / / \t $ $ 5 1 0 4 1 0 4
0062560 : N o t r e a d y - c o
0062600 n t r o l l e r i s i n w
0062620 a i t s t a t e . \r / / \t $ $
0062640 5 1 0 5 1 0 5 : S o r t e r
0062660 i n t e r l o c k o p e n \r
0062700 / / \t $ $ 5 1 0 6 1 0 6 : b
0062720 a d 6 8 0 0 s u b s \0 \a 020 @
0062740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0062760 \0 \0 001 334 337 026 \0 \0 036 ] \0 ] 366 356 370 366
0063000 e q u e n c e c o d e \r / / \t
0063020 $ $ 5 1 0 7 1 0 7 : b a d
0063040 6 8 0 0 m a i n s e q u e n
0063060 c e c o d e \r / / \t $ $ 5 1 0
0063100 8 1 0 8 : I n k l o w \r /
0063120 / \t $ $ 5 1 0 9 1 0 9 : T r
0063140 a y s d o n ' t m a t c h \r
0063160 / / \t $ $ 5 1 1 0 1 1 0 : F
0063200 u s e r n o t r e a d y \r /
0063220 / \t $ $ 5 1 1 1 1 1 1 : M a
0063240 i n t r a y m i s f e e d \r
0063260 / / \t $ $ 5 1 1 2 1 1 2 : C
0063300 y c l e c o n t r o l s t a
0063320 t e e r r o r i n 6 8 0 0
0063340 \r / / \t $ $ 5 1 1 3 1 1 3 :
0063360 6 8 0 0 r e p o r t s a b n
0063400 o r m a l c o n d i t i o n ,
0063420 b u t d i d n o t s p e
0063440 c i f y w h a t i t i s \r
0063460 / / \t $ $ 5 1 1 4 1 1 4 U n
0063500 e x p e c t e d l y l o s t
0063520 P r i n t i n g s t a t e o
0063540 r d i d n ' t r e a c h e
0063560 x p e c t e d C y c l e d o w
0063600 n s t a t e \r / / ( \t P e n g
0063620 u i n P r i n t [ p r i n t
0063640 l o o p ] ) \r / / \t $ $ 5 1 1 5
0063660 1 1 5 : M a i n p a p e r
0063700 t r a y e m p t y \r / / \t $
0063720 $ 5 1 1 6 1 1 6 : P \0 \a 020 @
0063740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0063760 \0 \0 001 334 335 026 \0 \0 034 ] \0 ] 366 356 370 366
0064000 e n g u i n n o t c o m m u
0064020 n i c a t i n g - p l e a s
0064040 e c h e c k i t ( R O S C h
0064060 e c k ) \r / / \t $ $ 5 1 1 7 1
0064100 1 7 : P e n g u i n r e t u
0064120 r n e d u n k n o w n m a l
0064140 f u n c t i o n c o d e \r / /
0064160 \t $ $ 5 1 1 8 1 1 8 : L a s
0064200 e r a p p e a r s t o b e
0064220 o f f \r / / \t $ $ 5 1 1 9 1
0064240 1 9 : S o m e t h i n g i s
0064260 w r o n g , b u t d o n '
0064300 t k n o w w h a t \r \r / / T
0064320 h e s e a s s u m e t h e
0064340 l a s t p a g e w a s i m
0064360 a g e d c o r r e c t l y \r /
0064400 / \t $ $ 5 1 2 0 1 2 0 : T i
0064420 m e o u t w a i t i n g f o
0064440 r S t a n d b y - r e a d
0064460 y P e n g u i n , p l e a s
0064500 e . \r / / \t $ $ 5 1 2 1 1 2 1
0064520 P e n g u i n n o t c o m
0064540 m u n i c a t i n g - p l e
0064560 a s e c h e c k i t \r / / \t
0064600 ( P r i n t s t a r t u p )
0064620 \r / / \t $ $ 5 1 2 2 1 2 2 :
0064640 P e n g u i n i n s t a n d
0064660 b y , b u t w o n ' t a c
0064700 c e p t p r i n t c o m m a
0064720 n d \r / / $ $ 5 1 2 \0 \a 020 @
0064740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0064760 \0 \0 001 334 333 026 \0 \0 032 ] \0 ] 366 356 370 366
0065000 3 1 2 3 : P r i n t e r i
0065020 n p o w e r - o n m o d e :
0065040 P u s h S t a r t P r i n
0065060 t b u t t o n \r / / \t $ $ 5 1
0065100 2 4 1 2 4 : P a p e r e x
0065120 i t j a m : P l e a s e
0065140 c l e a r \r / / \t $ $ 5 1 2 5
0065160 1 2 5 : O u t p u t b i n -
0065200 e n t r y j a m : P l e a s
0065220 e c l e a r \r \r / / t h e s e
0065240 a r e p r e c a u t i o n a
0065260 r y s t o p s - s p r u c
0065300 e p r o c e e d s a f t e r
0065320 u s e r i n t e r v e n t i
0065340 o n \r / / \t $ $ 5 1 3 0 1 3 0
0065360 : O u t p u t b i n f u l
0065400 l : e m p t y i t t h e n
0065420 t y p e P \r / / $ $ 5 1
0065440 3 2 1 3 2 : M a i n t r a
0065460 y e m p t y - a d d p a
0065500 p e r \r \r / / t h e s e d o n
0065520 ' t s t o p p r i n t i n g
0065540 \r / / \t $ $ 5 3 0 0 3 0 0 :
0065560 S o m e p a g e s t o o c
0065600 o m p l i c a t e d , b u t
0065620 a l l w e r e p r i n t e d
0065640 \r / / \t O r b i t g o t b e
0065660 h i n d R O S , b u t p a
0065700 g e t e r m i n a t e d n o
0065720 r m a l l y . \r / / \t $ \0 \a 020 @
0065740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0065760 \0 \0 001 334 331 026 \0 \0 030 ] \0 ] 366 356 370 366
0066000 $ 5 3 0 1 3 0 1 : S o m e
0066020 p a g e s t o o c o m p l i
0066040 c a t e d , b u t p r i n t
0066060 i n g c o n t i n u e d \r / /
0066100 \t O r b i t g o t b e h i n
0066120 d R O S , q u i t e a r l
0066140 y w h e n S e n d V i d e o
0066160 w e n t a w a y . \r / / \t $
0066200 $ 5 3 1 0 3 1 0 : I n t e r
0066220 n a l p r o b l e m ; p l e
0066240 a s e i n f o r m S p r u c
0066260 e m a i n e n a n c e p e r
0066300 s o n n e l \r / / \t L e f t o
0066320 v e r t a b l e i s n o t
0066340 b i g e n o u g h . \r / /
0066360 - - - - - - - - - - - - - - - -
*
0066500 - - - \r / / S e t u p R e c o
0066520 v e r y ( p D o c , l v F a i
0066540 l u r e C o d e , l v X p o r
0066560 t M o d e l , r e s t a r t P
0066600 a g e , c o d e ; n u m a r
0066620 g s n a ) \r / / - - - - - -
0066640 - - - - - - - - - - - - - - - -
*
0066720 - - - - - - - - - - - - \0 \a 020 @
0066740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0066760 \0 \0 001 334 327 026 \0 \0 026 ] \0 ] 366 356 370 366
0067000 - - - - - - - - - - - - - - - -
0067020 - \r \r a n d l e t S e t u p
0067040 R e c o v e r y ( p D o c , l
0067060 v F a i l u r e C o d e , l v
0067100 X p o r t M o d e l , r e s t
0067120 a r t P a g e , c o d e ; n
0067140 u m a r g s n a ) = v a
0067160 l o f \r [ \r t e s t n a e q
0067200 5 t h e n [ @ l v F a i
0067220 l u r e C o d e = c o d e
0067240 ] o r [ c o d e = @ l
0067260 v F a i l u r e C o d e ] \r u
0067300 n l e s s c o d e r e s u l
0067320 t i s r e s t a r t P a g e \r
0067340 i f c o d e < 7 5 r e s
0067360 u l t i s 0 / / p a p e r
0067400 i n a u x t r a y d i d n
0067420 ' t c o m e o u t e v e n
0067440 w i t h 2 n d s i d e i
0067460 m a g e s \r l e t b a c k u p
0067500 = 0 \r i f c o d e <
0067520 8 5 t h e n \r \t [ \r \t l e t
0067540 x p m = @ l v X p o r t M o d
0067560 e l \r \t w h i l e x p m n e
0067600 0 d o [ b a c k u p =
0067620 b a c k u p + ( x p m &
0067640 1 ) ; x p m = x p m
0067660 r s h i f t 1 ] \r \t i f b
0067700 a c k u p d o \r \t \t [ s t
0067720 o p s P r i n t i n g \0 \a 020 @
0067740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0067760 \0 \0 001 334 325 026 \0 \0 024 ] \0 ] 366 356 370 366
0070000 = ( b a c k u p l s h i f t
0070020 8 ) + j a m ; i f t w
0070040 o s i d e d d o @ l v F a i
0070060 l u r e C o d e = b a c k u
0070100 p + 8 4 ] \r \t ] \r b a c k
0070120 u p = b a c k u p + n P
0070140 a g e s P r i n t e d - r e
0070160 s t a r t P a g e \r l e t n
0070200 F i r s t S i d e s , n S e c
0070220 o n d S i d e s , n S i n g l
0070240 e S h e e t s = 0 , 0 ,
0070260 0 \r i f ( n P a g e s P r i
0070300 n t e d g e b a c k u p )
0070320 & ( r e s t a r t P a g e g
0070340 e ( n P a g e s P r i n t e d
0070360 - b a c k u p ) ) d o
0070400 / / f o r e a c h d e s t r
0070420 o y e d s h e e t \r \t \t [ \r \t
0070440 \t l e t x = N e x t S h e
0070460 e t ( p D o c , r e s t a r t
0070500 P a g e - 1 ) \r \t \t t e s t n
0070520 e x t H a n d l i n g e q p
0070540 T S F i r s t t h e n n F i
0070560 r s t S i d e s = n F i r s
0070600 t S i d e s + 1 \r \t \t o r
0070620 t e s t n e x t H a n d l i n
0070640 g e q p T S S e c o n d t
0070660 h e n n S e c o n d S i d e s
0070700 = n S e c o n d S i d e s
0070720 + 1 \r \t \t o r n S i \0 \a 020 @
0070740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0070760 \0 \0 001 334 323 026 \0 \0 022 ] \0 ] 366 356 370 366
0071000 n g l e S h e e t s = n S i
0071020 n g l e S h e e t s + 1 \r \t
0071040 \t i f r e s t a r t P a g e
0071060 e q ( n P a g e s P r i n t e
0071100 d - b a c k u p ) t h e n
0071120 b r e a k \r \t \t r e s t a r t
0071140 P a g e = r e s t a r t P a
0071160 g e - 1 \r \t \t ] r e p e a
0071200 t \r t e s t B i n C o u n t e
0071220 r s ! A u x R e c o v e r y C o
0071240 u n t t h e n B i n C o u n
0071260 t e r s ! A u x R e c o v e r y
0071300 C o u n t = B i n C o u n t
0071320 e r s ! A u x R e c o v e r y C
0071340 o u n t + b a c k u p o r \r
0071360 \t B i n C o u n t e r s ! A u x
0071400 R e c o v e r y C o u n t =
0071420 M a x ( n S e c o n d S i d e s
0071440 - n F i r s t S i d e s ,
0071460 0 ) \r r e s u l t i s r e s t
0071500 a r t P a g e \r ] \r / / - - -
0071520 - - - - - - - - - - - - - - - -
*
0071560 - - - - - - \r / / I n i t i a
0071600 l i z e H a r d w a r e , R O
0071620 S C o m m a n d , E n g i n e
0071640 C o m m E r r , S e l e c t B
0071660 i n . \r / / - - - - - - - - -
0071700 - - - - - - - - - - - - - - - -
0071720 - - - - - - - - - - - - \0 \a 020 @
0071740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0071760 \0 \0 001 334 321 026 \0 \0 020 ] \0 ] 366 356 370 366
0072000 - - - - \r \r a n d I n i t i a
0072020 l i z e H a r d w a r e ( ) b
0072040 e \r [ \t i f D e b u g r e t
0072060 u r n \r \t I n i t R a m ( 0 ) \t
0072100 \t \t / / R e s e t a l l R A
0072120 M t a s k s , r e s t a r t
0072140 T r i d e n t i f n e c e
0072160 s s a r y \r \t D o F u n c ( f C
0072200 o n t r o l , 1 ) \t \t / / R e
0072220 s e t O r b i t \r ] \r \r a n d
0072240 R O S C o m m a n d ( c o m m
0072260 a n d ) = v a l o f \r \t [ \r
0072300 \t r o s C o u n t = ( c o m
0072320 m a n d e q p R e s e t C o
0072340 u n t ) ? 0 , r o s C o u n
0072360 t + 1 \r \t D o F u n c ( f R
0072400 O S C o m m a n d , c o m m a
0072420 n d ) \r \t i f D e b u g r e
0072440 s u l t i s 0 \r \t l e t t i
0072460 m = @ R T C \r \t u n t i l
0072500 ( @ R T C - t i m ) g e
0072520 e T i c k s d o \r \t \t [ \r
0072540 \t \t r o s 1 2 = R O S S t a
0072560 t u s ( 1 2 ) \r \t \t i f ( r o
0072600 s C o u n t & # 3 7 7 ) e
0072620 q ( r o s 1 2 & # 3 7 7 )
0072640 t h e n b r e a k \r \t \t
0072660 ] \r \t r e s u l t i s E n g i
0072700 n e C o m m E r r ( r o s 1 2 )
0072720 \r \t ] \r \r a n d l e t \0 \a 020 @
0072740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0072760 \0 \0 001 334 317 026 \0 \0 016 ] \0 ] 366 356 370 366
0073000 E n g i n e C o m m E r r ( x
0073020 ) = v a l o f \r \r / / r e
0073040 t u r n s \r / / \t 1 - i f
0073060 c o u n t k e p t b y p
0073100 e n g u i n d o e s n o t
0073120 a g r e e w i t h r o s C o
0073140 u n t \r / / \t 2 - i f a
0073160 c o m m a n d w a s r e j e
0073200 c t e d b e c a u s e p e n
0073220 g u i n d i d n ' t r e c o
0073240 g n i z e i t \r / / \t 3 -
0073260 i f p e n g u i n d i d n '
0073300 t a c c e p t a c o m m a
0073320 n d b e c a u s e i t s b
0073340 u f f e r s w e r e f u l l
0073360 ( o f o t h e r c o m m a
0073400 n d s ) \r \t [ \r \t i f ( x &
0073420 # 3 7 7 ) n e ( r o s C o
0073440 u n t & # 3 7 7 ) r e
0073460 s u l t i s 1 \r \t i f ( x
0073500 & # 1 0 0 0 0 ) e q # 1 0
0073520 0 0 0 r e s u l t i s 2
0073540 + ( x & # 2 0 0 0 e q 0 ?
0073560 0 , 1 ) \r \t r e s u l t i s 0
0073600 \r \t ] \r \r a n d S e l e c t B
0073620 i n ( b i n ) = v a l o f \r
0073640 [ \r l e t t r a y = 0 \r i
0073660 f ( ( C a p a b i l i t i e s
0073700 & m M a i l b o x ) n e
0073720 0 ) & ( B i n C o u \0 \a 020 @
0073740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0073760 \0 \0 001 334 315 026 \0 \0 \f ] \0 ] 366 356 370 366
0074000 n t e r s ! b i n l e 5 0 )
0074020 & ( B i n C o u n t e r s !
0074040 0 l e 5 0 ) t h e n t r
0074060 a y = b i n \r i f ( ( C a
0074100 p a b i l i t i e s & m M u
0074120 l t i B i n ) n e 0 ) t h
0074140 e n \r \t [ \r \t t e s t ( B i n
0074160 C o u n t e r s ! b i n < 5
0074200 0 ) t h e n t r a y = b
0074220 i n \r \t o r t r a y = M i
0074240 n ( b i n + 1 , 1 8 ) \r \t ] \r
0074260 r e s u l t i s t r a y \r ] \r
0074300 \r / / D e c e m b e r 1 5 ,
0074320 1 9 7 8 1 0 : 0 4 A M
0074340 f i r s t c u t - d e r i
0074360 v e d f r o m p u f f i n p
0074400 r i n t , s o r t o f . \r /
0074420 / J a n u a r y 2 , 1 9 7
0074440 9 4 : 4 0 P M m o r e
0074460 w o r k o n R O S C h e c k
0074500 \r / / J a n u a r y 4 , 1
0074520 9 7 9 3 : 1 2 P M f i r
0074540 s t c u t a t x p o r t M
0074560 o d e l , m o r e w o r k
0074600 o n R O S C h e c k \r / / J
0074620 a n u a r y 1 5 , 1 9 7 9
0074640 3 : 5 3 P M f i x R O S
0074660 C o m m a n d \r / / J a n u a
0074700 r y 1 9 , 1 9 7 9 3 : 0
0074720 4 P M c l e a n u p \0 \a 020 @
0074740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0074760 \0 \0 001 334 313 026 \0 \0 \n ] \0 ] 366 356 370 366
0075000 a n d b e a u t i f i c a t
0075020 i o n \r / / J a n u a r y 3
0075040 0 , 1 9 7 9 1 1 : 0 8 A
0075060 M c h a n g e o r d e r o
0075100 f t e s t s i n E n g i n
0075120 e C o m m E r r \r / / F e b r
0075140 u a r y 1 4 , 1 9 7 9 9
0075160 : 4 7 A M t u r n o n l
0075200 e d c o n t r o l - - r e
0075220 l e a s e 2 \r / / F e b r u
0075240 a r y 2 8 , 1 9 7 9 3 :
0075260 1 9 P M i n c r e a s e p
0075300 r i n t H y s t e r e s i s t
0075320 o 3 0 \r / / M a r c h 1 ,
0075340 1 9 7 9 1 2 : 2 6 P M
0075360 b e t o u g h e r o n u n
0075400 e x p e c t e d p r i n t i n
0075420 g s t a t e f r o m 6 8 0
0075440 0 \r / / A p r i l 1 0 , 1
0075460 9 7 9 1 2 : 4 5 P M f i
0075500 r s t c u t - t w o s i d
0075520 e d p r i n t i n g \r / / A
0075540 p r i l 1 7 , 1 9 7 9 1
0075560 0 : 0 1 P M c l e a n u p \r
0075600 / / M a y 2 2 , 1 9 7 9
0075620 1 1 : 2 4 A M u p g r a d
0075640 e t o o s 1 6 \r / / M a
0075660 y 2 3 , 1 9 7 9 2 : 1 9
0075700 P M , f i x m e a s u r e
0075720 i n t e r f a c e \r / \0 \a 020 @
0075740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0075760 \0 \0 001 334 311 026 \0 \0 \b ] \0 ] 366 356 370 366
0076000 / J u n e 2 8 , 1 9 7 9
0076020 4 : 4 0 P M , a l l o w
0076040 f o r s p u r i o u s ' a u
0076060 x t r a y e m p t y ' m s g
0076100 a n d p r i m i t i v e e
0076120 r r o r r e c o v e r y \r / /
0076140 A u g u s t 6 , 1 9 7 9
0076160 1 0 : 4 9 A M , u s e S
0076200 e t u p P r i n t i n S p r
0076220 u c e P r i n t ; h a n d l e
0076240 s i m p l e x , o v e r f l
0076260 o w p r o t e c t i o n , o
0076300 u t p u t m o d e s \r / / A
0076320 u g u s t 1 0 , 1 9 7 9
0076340 4 : 1 4 P M , f i r s t c
0076360 u t n e w e r r o r h a n
0076400 d l i n g \r / / A u g u s t
0076420 1 4 , 1 9 7 9 5 : 0 6 P
0076440 M , m o r e c l e a n u p
0076460 w o r k \r / / A u g u s t 2
0076500 1 , 1 9 7 9 1 0 : 2 0 A
0076520 M , p u t o u t b r e a k
0076540 p a g e i f c h a n g i n
0076560 g b i n s , c l e a n u p \r
0076600 / / A u g u s t 2 9 , 1 9
0076620 7 9 2 : 0 3 P M , m u l
0076640 t i b i n d o e s n ' t u s
0076660 e s a m e o v e r f l o w
0076700 b i n a s m a i l b o x \r /
0076720 / S e p t e m b e r \0 \a 020 @
0076740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0076760 \0 \0 001 334 307 026 \0 \0 006 ] \0 ] 366 356 370 366
0077000 1 3 , 1 9 7 9 9 : 4 8 A
0077020 M , f o r c e u s e r i n
0077040 t e r a c t i o n f o r j a
0077060 m o n t w o s i d e d p
0077100 r i n t \r / / S e p t e m b e
0077120 r 1 3 , 1 9 7 9 4 : 4 5
0077140 P M , f i x h a n d l i n
0077160 g o f j a m o n 4 t h
0077200 s h e e t \r / / S e p t e m b
0077220 e r 2 0 , 1 9 7 9 9 : 5
0077240 5 A M , w o r k o n e r
0077260 r o r m e s s a g e s \r / /
0077300 S e p t e m b e r 2 8 , 1 9
0077320 7 9 9 : 5 8 A M , i f
0077340 f i l e i s j u s t a b
0077360 r e a k p a g e , t r e a t
0077400 a s s i n g l e s i d e \r
0077420 / / O c t o b e r 3 , 1 9
0077440 7 9 4 : 2 4 P M , u s e
0077460 n e w P a g e G s t r u c
0077500 t u r e \r / / O c t o b e r
0077520 1 7 , 1 9 7 9 3 : 1 9 P
0077540 M , e n a b l e b i n - p o
0077560 s i t i o n i n g c o m m a n
0077600 d s \r / / O c t o b e r 2 6
0077620 , 1 9 7 9 1 2 : 1 6 P M
0077640 , p u t ' M O R E I N O
0077660 V E R F L O W B I N ' b r e
0077700 a k p a g e i n m a i l b o
0077720 x \r / / O c t o b e r \0 \a 020 @
0077740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0077760 \0 \0 001 334 305 026 \0 \0 004 ] \0 ] 366 356 370 366
0100000 2 6 , 1 9 7 9 3 : 5 9
0100020 P M , i n c r e a s e t i m
0100040 e o u t t o 1 1 s e c o n
0100060 d s t o a l l o w b i n
0100100 m o v e m e n t t o c o m p
0100120 l e t e \r / / J a n u a r y
0100140 1 5 , 1 9 8 0 1 0 : 1 2
0100160 P M , r e m o v e k l u d g
0100200 e f o r s p u r i o u s a
0100220 u x t r a y e m p t y m s
0100240 g o n s w i t c h t o 2
0100260 n d s i d e \r / / \t \t " \t a d
0100300 d e r r o r s 1 2 4 & 1
0100320 2 5 f o r e x i t j a m s
0100340 \r / / F e b r u a r y 2 7 ,
0100360 1 9 8 0 , 4 : 2 7 P M ,
0100400 t r y t o g e t i n t e r
0100420 m e d i a t e b r e a k p a
0100440 g e s i n r i g h t b i n
0100460 \r / / M a r c h 3 , 1 9 8
0100500 0 1 2 : 0 6 P M , t r y
0100520 s o m e m o r e \r / / J u l
0100540 y 1 6 , 1 9 8 0 , 4 : 3 8
0100560 P M , i f t h e r e i s
0100600 a b r e a k p a g e b r
0100620 e a k P a g e v a l u e i s
0100640 1 ( i n s t e a d o f t
0100660 r u e ) \r / / J u l y 2 3 ,
0100700 1 9 8 0 , 4 : 0 7 P M ,
0100720 c y c l e d o w n g \0 \a 020 @
0100740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0100760 \0 \0 001 334 303 026 \0 \0 002 ] \0 ] 366 356 370 366
0101000 r a c e f u l l y i f b i n
0101020 f u l l \r / / J a n u a r
0101040 y 2 9 , 1 9 8 1 1 0 : 5 8
0101060 A M , f i x u p i n t e r
0101100 m e d i a t e b r e a k p a g
0101120 e a g a i n \r / / \r \r \0 \0 \0
0101140 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0101720 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \a 020 @
0101740 377 v 037 \0 002 { 035 \0 \0 ( & 001 \0 \0 @
0101760 \0 \0 \0 ] 301 026 \0 \0 \0 ] \0 ] 366 356 370 366
0102000