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