$ od -c -N 50000 [Indigo]<AltoSource>BCPLSOURCES.DM!1 0000000 377 \0 \0 B C P L X \0 373 226 W 347 j \0 \0 0000020 376 001 \0 341 266 / / B C P L X - 0000040 D e c l a r a t i o n s f o r 0000060 t h e B C P L C o m p i l 0000100 e r , u s e d t h r o u g h 0000120 o u t t h e C o m p i l e r 0000140 . \r / / C o p y r i g h t X 0000160 e r o x C o r p o r a t i o n 0000200 1 9 8 0 \r / / S w i n e h a 0000220 r t , 5 - 9 - 7 7 - - / S 0000240 s w i t c h \r / / p a r a m 0000260 e t e r i z e F i l e L e n g 0000300 t h , e t c . v i a s t a 0000320 t i c s - - S w i n e h a r 0000340 t , 6 M a y 7 7 \r / / i 0000360 n c r e a s e F i l e N a m e 0000400 L e n g t h t o 4 0 - E 0000420 d i t b 376 001 \0 343 315 y B o g g 0000440 s 2 A p r 7 7 \r / / p u 0000460 l l S W A l t o c . . i m e 0000500 < S W I N E H A R T > B C P L X 0000520 . ; 2 2 8 - M A R - 7 5 0000540 1 3 : 1 5 : 3 4 E D I 0000560 T B Y S W I N E H A R T \r \r 0000600 / / l a s t m o d i f i e d 0000620 b y B u t t e r f i e l d , 0000640 J a n u a r y 8 , 1 9 8 0 0000660 1 1 : 1 2 A M \r / / - 0000700 a d d C o u n t e r J u n t a 0000720 e x t e r n a l - 1 / 8 / 0000740 8 0 \r / / - S W U n s i g n 0000760 e d C o m p a r e s , i f t 0001000 r u e , e n a b l e u l s , 0001020 u l e , u g e , 376 001 \0 P ~ 0001040 a n d u g t - 5 / 8 \r / / 0001060 - S W S t a c k S t r i n g 0001100 s , i f t r u e , p u t 0001120 s t r i n g s a n d t a b l 0001140 e s o n s t a c k - 5 / 0001160 5 \r / / - a d d U s c , 0001200 M y F r a m e , G o t o L a b 0001220 e l , C l o s e C O M C M , 0001240 R e s t a r t B C P L , \r / / 0001260 a n d C a l l S u b s y s 0001300 e x t e r n a l s - 5 / 5 0001320 \r / / - S W N o E x t E x t 0001340 s , - E g l o b a l s w i 0001360 t c h , a l l o w E X T E R 0001400 N A L & E X T E R N A L - 0001420 2 / 1 2 \r / / - S W G e 376 0001440 001 \0 374 027 t L I N E s , - G g 0001460 l o b a l s w i t c h , d o 0001500 n ' T " L I N E " g e t f 0001520 i l e s - 2 / 2 / 7 9 \r \r m 0001540 a n i f e s t \r [ H 1 = 0 0001560 ; H 2 = 1 ; H 3 = 2 ; H 4 0001600 = 3 ; H 5 = 4 ; H 6 = 5 ; 0001620 H 7 = 6 / / S e l e c 0001640 t o r s f o r t r e e n o 0001660 d e s . \r N A M E L E N 0001700 G T H = 2 4 \r / / / * D C S 0001720 * r e m o v e F i l e N a m 0001740 e L e n g t h , e t c . - - 0001760 S e e E x t e r n a l s , 0002000 b e l o w \r G e t n a m 0002020 e N = 2 \t / / S i z e 0002040 o f a 376 001 \0 + 025 G e t n a m 0002060 e V e n t r y \r G e t 0002100 l i n e N = 3 \t / / S i 0002120 z e o f a G e t l i n e V 0002140 e n t r y \r M a x E r 0002160 r o r s = 6 4 \r ] \r \r e 0002200 x t e r n a l \r [ \r / / \t M A 0002220 I N 1 \r M a i n ; O v 0002240 e r l a y ; B C P L r e p o r 0002260 t ; W r i t e L i n e ; W r 0002300 i t e L i n e s ; H e l p \r 0002320 A b o r t \r V e r 0002340 s i o n \r S o u r c e N 0002360 a m e ; B i n N a m e ; O u 0002400 t p u t N a m e ; D e v i c e 0002420 ; S o u r c e D e v i c e \r / 0002440 / / * D C S * C 376 001 \0 7 @ o m 0002460 p i l e d D e c l a r a t i o 0002500 n s \r D I C T N a m e 0002520 / / / * N a m e o f F i l 0002540 e c o n t a i n i n g c o m 0002560 p i l e d d i c t i o n a r y 0002600 \r D E C L N a m e / / 0002620 / * N a m e o f f i l e 0002640 c o n t a i n i n g c o m p i 0002660 l e d d e c l . l e x e m e 0002700 s \r \r / / \t s w i t c h e s i 0002720 n M A I N 1 \r S W H e 0002740 l p ; S W D e b u g ; S W L 0002760 i s t ; S W L e x T r a c e ; 0003000 S W C a e T r a c e ; S W S 0003020 a e T r a c e ; S W O c o d e 0003040 ; S W C o d e \r S 376 001 0003060 \0 207 311 W L e x L i s t ; S W C 0003100 a e L i s t ; S W S a e L i s 0003120 t ; S W T r n L i s t ; S W 0003140 P a s s O n e L i s t ; S W P 0003160 a s s T w o L i s t \r S 0003200 W L i s t C o d e ; S W P a s 0003220 s O n e C o d e ; S W P a s s 0003240 T w o C o d e ; S W F a s t F 0003260 r a m e \r S W T T O f i 0003300 l e ; S W T T O t y p e ; S 0003320 W O u t p u t ; S W W a i t ; 0003340 S W U p p e r C a s e ; S W 0003360 L o w e r C a s e ; S W O n e 0003400 C a s e \r / / / * D C S * F i 0003420 l e N a m e , # G e t F 0003440 i l e p a r a m e t e r s \r 0003460 376 001 \0 264 m F i l e N a m e 0003500 L e n g t h ; G e t F i l e M 0003520 a x ; G e t n a m e T ; G e 0003540 t l i n e T ; D v e c \r 0003560 S W G e t L I N E s / / 0003600 " L I N E " g e t f i l e s 0003620 - G l o b a l / - G S w 0003640 i t c h s e t s t h i s f 0003660 a l s e \r S W N o E x t 0003700 E x t s / / n o E X T E 0003720 R N A L & E X T E R N A L 0003740 - G l o b a l / - E S w i 0003760 t c h s e t s t h i s f a 0004000 l s e \r S W S t a c k S 0004020 t r i n g s / / i f t r 0004040 u e , p u t s t r i n g s 0004060 a n d t a b l 376 001 \0 < v e s 0004100 o n s t a c k \r S W U 0004120 n s i g n e d C o m p a r e s 0004140 / / i f t r u e , e n a 0004160 b l e u l t , u l e , u g 0004200 e , a n d u g t \r / / / * D 0004220 C S * C o m p i l e d D e c 0004240 l a r a t i o n s \r S W 0004260 P r e p a r e / / / * G l o 0004300 b a l / G S w i t c h - - 0004320 c o m p i l e D e c l a r a 0004340 t i o n s t h i s r u n \r 0004360 S W U s e D e c l / / / 0004400 * L o c a l / G - - t h e 0004420 s e f i l e s c o n t a i n 0004440 c o m p i l e d d e c l s . 0004460 \r S W A l t o \r 376 001 \0 0004500 b 037 S W N o x i o s \r / / 0004520 / * D C S * C o m m a n d l 0004540 i n e m a n i f e s t s \r 0004560 S W P a r a m s e t \r / / / 0004600 * D C S * S y m b o l T a b 0004620 l e C o m p a c t i o n N C 0004640 G P a s s \r R e a l S 0004660 y m C o u n t ; R e a l S y m 0004700 S i z e \r \r / / \t f u n c t i o 0004720 n s a n d r o u t i n e s 0004740 i n M A I N 2 \r N e x 0004760 t p a r a m ; N e x t s t a t 0005000 i c ; N e x t e n t r y \r 0005020 N e w v e c ; Z e r o v e 0005040 c ; I n i t F r e e \r 0005060 L i s t 1 ; L i s t 2 ; L i 0005100 s t 376 001 \0 L n 3 ; L i s t 4 ; 0005120 L i s t 5 ; L i s t 6 ; L 0005140 i s t 7 \r I s F i l e \r 0005160 O p e n I n p u t ; O 0005200 p e n T e m p ; O p e n O u t 0005220 p u t \r R e s e t S t r 0005240 e a m ; R e n a m e T e m p \r 0005260 C l o s e I n p u t ; 0005300 C l o s e T e m p ; C l o s e 0005320 O u t p u t \r R e a d w 0005340 o r d ; R e a d a d d r ; W 0005360 r i t e w o r d ; W r i t e a 0005400 d d r \r W W ; W a i t 0005420 ; W r i t e S ; W r i t e O 0005440 ; W r i t e N \r I n i 0005460 t B C P L ; c l o s e c h a n n 0005500 e l ; s y s c 376 001 \0 z 026 a l l e 0005520 r r o r \r / / / * D C S * p r 0005540 e c o m p i l e d d e c l a r 0005560 a t i o n s s t u f f \r 0005600 R e a d S e q u e n t i a l ; 0005620 W r i t e S e q u e n t i a l 0005640 ; R e a d W o r d ; W r i t 0005660 e W o r d ; \r L e n g t 0005700 h ; C h a r \r P o s i 0005720 t i o n ; R e p o s i t i o n 0005740 \r R e a d c h ; W r i 0005760 t e c h \r P a c k s t r 0006000 i n g ; U n p a c k s t r i n 0006020 g ; M o v e s t r i n g \r 0006040 I n i t C O M C M ; R e a 0006060 d C O M C M ; B a d S w i t c 0006100 h ; E r r o r ; F i 376 001 \0 307 0006120 \b x F i l e N a m e ; f i l e 0006140 n a m e ; s w \r U s c 0006160 ; M y F r a m e ; G o t o L 0006200 a b e l ; C l o s e C O M C M 0006220 ; R e s t a r t B C P L ; C 0006240 a l l S u b s y s ; C o u n t 0006260 e r J u n t a \r D e c V 0006300 a l u e ; O c t V a l u e \r 0006320 F r e e M a x ; D i c t 0006340 F r e e M a x ; T r e e F r e 0006360 e M a x ; C o d e F r e e M a 0006400 x ; F r e e l i s t P \r 0006420 R e p o r t c o u n t \r 0006440 I s t r e a m ; O s t r e a 0006460 m \r T T I s t r e a m ; 0006500 T T O s t r e a m ; O u t p 0006520 u 376 001 \0 250 330 t S t r e a m ; E 0006540 r r o r S t r e a m \r S 0006560 o u r c e S t r e a m ; S o u 0006600 r c e L e n g t h \r L e 0006620 x S t r e a m \r D i c t 0006640 i o n a r y ; D i c t S t r e 0006660 a m ; D i c t L e n g t h \r 0006700 T r e e ; T r e e O f f 0006720 s e t \r O c o d e S t r 0006740 e a m \r C o d e S t r e 0006760 a m \r C o d e ; P C \r 0007000 G e t n a m e V ; G e 0007020 t n a m e P \r G e t l i 0007040 n e V ; G e t l i n e P \r 0007060 C u r f i l e ; C u r l i 0007100 n e \r \r / / O v e r l a y l 0007120 i m i t v 376 001 \0 \f 210 a l u e s 0007140 \r F r e e m a x ; D i 0007160 c t F r e e L i m i t ; T r e 0007200 e F r e e L i m i t ; C o d e 0007220 F r e e L i m i t \r \r / / \t t h 0007240 e r o u t i n e s t h a t 0007260 d o t h e w o r k \r 0007300 R e a d S o u r c e \t \t / / 0007320 i n L E X \r C o n s t 0007340 r u c t T r e e \t / / i n 0007360 C A E \r D e c l a r e N 0007400 a m e s \t / / i n S A E \r 0007420 T r a n s l a t e T r e 0007440 e \t / / i n T R N 016 \r 0007460 G e n e r a t e C o d e \t / 0007500 / i n C G 016 \r ] \r \r m 0007520 a n i f e s t / 376 001 \0 q 022 0007540 / S p e c i f i c a t i o n 0007560 o f T X - 2 - - m a c h 0007600 i n e o n w h i c h t h e 0007620 c o m p i l e r r u n s . \r 0007640 [ B i t s p e r b y t e 0007660 = 8 \r B y t e 0007700 s p e r w o r d = 2 \r 0007720 B y t e s p e r a d d r 0007740 = 2 \r B i t s 0007760 p e r a d d r = 1 6 \r 0010000 B i t s p e r w o r d = 0010020 1 6 \r B y t e m a s 0010040 k = # 3 7 7 \r S t r 0010060 i n g L e n g t h = 2 5 0 0010100 \r S t r i n g M a x O b 0010120 \t = 2 5 0 \r W o r d S 0010140 376 \0 > 200 i i z e O b \t = 1 6 0010160 \r B y t e S i z e O b \t 0010200 = 8 \r S a v e s p 0010220 a c e s i z e = 4 \r ] \r 0010240 \r \r \r 377 \0 \0 B C P L 0 . b c p l 0010260 \0 373 226 W 351 \f \0 \0 376 001 \0 ( 327 / / 0010300 B C P L 0 . b c p l - B C P 0010320 L M a i n p r o g r a m \r / 0010340 / C o p y r i g h t X e r o 0010360 x C o r p o r a t i o n 1 9 0010400 8 0 \r / / S w i n e h a r t , 0010420 9 M a y 7 7 , a l w a y 0010440 s t y p e d e s t f i l e 0010460 r e p o r t l i n e \r / / 0010500 S w i n e h a r t , 6 M a y 0010520 7 7 , f i l e l e n g t h 0010540 s - > s t a t i c s \r / / 0010560 C a l l e d f r o m I n . . 0010600 C P L < S W I N E H A R T > B C 0010620 P L 0 . ; 3 4 - A P R 0010640 - 7 5 0 7 : 2 9 : 4 9 0010660 E D I T B Y S W I N E 376 001 \0 0010700 271 3 H A R T \r / / p u l l S 0010720 W A l t o c . . . i m e < S W 0010740 I N E H A R T > B C P L 0 . ; 2 0010760 2 8 - M A R - 7 5 1 3 0011000 : 1 8 : 1 5 E D I T B 0011020 Y S W I N E H A R T \r \r / / 0011040 l a s t m o d i f i e d b y 0011060 B u t t e r f i e l d , M a 0011100 y 9 , 1 9 7 9 2 : 1 8 0011120 P M \r / / - S W U n s i g n 0011140 e d C o m p a r e s , O ( O 0011160 z ) g l o b a l s w i t c h 0011200 , u n s i g n e d c o m p a 0011220 r e s - 5 / 8 \r / / - S 0011240 W S t a c k S t r i n g s , I 0011260 ( I F S ) g l o b a l s w 0011300 i t 376 001 \0 6 205 c h , s t r i n 0011320 g s a n d t a b l e s o n 0011340 s t a c k - 5 / 4 \r / / 0011360 - M a i n , a l l o w m u 0011400 l t i p l e s o u r c e f i 0011420 l e s - 5 / 3 \r / / - S 0011440 W N o E x t E x t s , M a i n 0011460 , - E g l o b a l s w i t 0011500 c h , a l l o w E X T E R N 0011520 A L & E X T E R N A L - 0011540 2 / 1 2 \r / / - S W G e t L 0011560 I N E s , M a i n , a d d 0011600 - G g l o b a l s w i t c h 0011620 , d o n ' T " L I N E " g 0011640 e t f i l e s - 2 / 2 \r / 0011660 / - W r i t e L i n e s , 0011700 u s e U s c 376 001 \0 005 W t o 0011720 e x t e n d i t s r a n g e 0011740 - 2 / 2 / 7 9 \r \r g e t " 0011760 b c p l x " \r g e t " b c p l 0012000 i o x " \r \r / / e x t e r n a l 0012020 s t r e a m v e c \r \r s t a t 0012040 i c [ \r / / s t r e a m v e c 0012060 = 0 \r V e r s i o n \t \t = n 0012100 i l \r f i l e n a m e \t \t = n i 0012120 l \r s w \t \t = n i l \r S o u r c 0012140 e N a m e \t \t = n i l \r B i n N 0012160 a m e \t \t = n i l \r O u t p u t 0012200 N a m e \t \t = n i l \r S o u r c 0012220 e D e v i c e \t \t = n i l \r D e 0012240 v i c e \t \t = n i l \r / / / * D 0012260 C S * P r e c o m p i l e d 0012300 D e c l a r a t i o n s 376 001 \0 376 0012320 371 \r D E C L N a m e = n i l 0012340 / / / * C o m p i l e d d 0012360 e c l . l e x e m e s f i l 0012400 e \r D I C T N a m e = n i l 0012420 / / / * C o m p i l e d d 0012440 i c t i o n a r y f i l e \r B 0012460 C P L n a m e \t = n i l \r L E X 0012500 n a m e \t \t = n i l \r C A E n a 0012520 m e \t \t = n i l \r S A E n a m e 0012540 \t \t = n i l \r T R N n a m e \t \t 0012560 = n i l \r N C G n a m e \t \t = n 0012600 i l \r F r e e M a x \t \t = n i l 0012620 \r D i c t F r e e L i m i t \t = 0012640 n i l \r T r e e F r e e L i m i 0012660 t \t = n i l \r C o d e F r e e L 0012700 i m i t \t = n i l \r F r e e l i 0012720 s 376 001 \0 R 202 t P \t \t = n i l \r R 0012740 e p o r t c o u n t \t \t = n i l 0012760 \r I s t r e a m \t \t = n i l \r O 0013000 s t r e a m \t \t = n i l \r T T I 0013020 s t r e a m \t \t = n i l \r T T O 0013040 s t r e a m \t \t = n i l \r O u t 0013060 p u t S t r e a m \t \t = n i l \r 0013100 E r r o r S t r e a m \t \t = n i 0013120 l \r S o u r c e S t r e a m \t \t 0013140 = n i l \r S o u r c e L e n g t 0013160 h \t \t = n i l \r L e x S t r e a 0013200 m \t \t = n i l \r D i c t i o n a 0013220 r y \t \t = n i l \r D i c t S t r 0013240 e a m \t \t = n i l \r D i c t L e 0013260 n g t h \t \t = n i l \r / / / * D 0013300 C S * 2 S y m b o l T a b l 0013320 e C o m p 376 001 \0 272 4 a c t i o 0013340 n N C G P a s s \r R e a l S 0013360 y m C o u n t \t \t = 0 \r R e a l 0013400 S y m S i z e \t \t = 0 \r T r e e 0013420 \t \t = n i l \r T r e e O f f s e 0013440 t \t \t = n i l \r O c o d e S t r 0013460 e a m \t \t = n i l \r C o d e S t 0013500 r e a m \t \t = n i l \r C o d e \t 0013520 \t = n i l \r / / / * D C S * n 0013540 e x t 4 u s e d t o b e 0013560 m a n i f e s t \r F i l e N a 0013600 m e L e n g t h = n i l \r G e t 0013620 F i l e M a x \t = n i l \r G e t 0013640 n a m e T \t \t = n i l \r G e t l 0013660 i n e T \t \t = n i l \r G e t n a 0013700 m e V \t \t = n i l \r G e t n a m 0013720 e P \t \t = n i l \r G e 376 001 \0 230 $ 0013740 t l i n e V \t \t = n i l \r G e t 0013760 l i n e P \t \t = n i l \r C u r f 0014000 i l e \t \t = n i l \r C u r l i n 0014020 e \t \t = n i l \r m y F r a m e \t 0014040 \t = n i l \r ] \r \r s t a t i c 0014060 [ \r S W H e l p \t \t = f a l s e 0014100 \r S W D e b u g \t \t = f a l s e 0014120 \r S W L i s t \t \t = f a l s e \r 0014140 S W L e x T r a c e \t \t = f a l 0014160 s e \r S W C a e T r a c e \t \t = 0014200 f a l s e \r S W S a e T r a c e 0014220 \t \t = f a l s e \r S W O c o d e 0014240 \t \t = f a l s e \r S W C o d e \t 0014260 \t = f a l s e \r S W L e x L i s 0014300 t \t \t = f a l s e \r S W C a e L 0014320 i s t \t \t = f a l s e \r S W S a 0014340 376 001 \0 { 223 e L i s t \t \t = f a l 0014360 s e \r S W T r n L i s t \t \t = f 0014400 a l s e \r S W P a s s O n e L i 0014420 s t \t \t = f a l s e \r S W P a s 0014440 s T w o L i s t \t \t = f a l s e 0014460 \r S W P a s s O n e C o d e \t \t 0014500 = f a l s e \r S W P a s s T w o 0014520 C o d e \t \t = f a l s e \r S W L 0014540 i s t C o d e \t \t = f a l s e \r 0014560 S W W a i t \t \t \t = t r u e \r S 0014600 W U p p e r C a s e \t \t = f a l 0014620 s e \r S W L o w e r C a s e \t \t 0014640 = f a l s e \r S W O n e C a s e 0014660 \t \t = f a l s e \r S W T T O f i 0014700 l e \t \t = f a l s e \r S W T T O 0014720 t y p e \t \t = f a l s e \r S W O 0014740 u t p u t 376 001 \0 345 016 \t \t = f a l 0014760 s e \r S W A l t o \t \t \t = n i 0015000 l / / i n i t t e d i n 0015020 I N I T B C P L \r S W N o x i o 0015040 s \t \t = f a l s e \r / / / * D C 0015060 S * P r e c o m p i l e d D 0015100 e c l a r a t i o n s \r S W P r 0015120 e p a r e = f a l s e / 0015140 / / * G l o b a l / G - - 0015160 c o m p i l e d e c l a r a 0015200 t i o n s \r S W U s e D e c l 0015220 = f a l s e / / / * L o 0015240 c a l / G - - u s e p r 0015260 e c o m p i l e d d e c l a r 0015300 a t i o n s \r / / / * D C S * 0015320 P r e c o m p i l e d D e c l 0015340 a r a t i o n s \r S 376 001 \0 340 245 W 0015360 P a r a m s e t = f a l s e 0015400 / / / * L o c a l / V o 0015420 r / M - - c o m m a n d 0015440 l i n e m a n i f e s t s \r / 0015460 / / S ( g l o b a l ) o r 0015500 n / S ( l o c a l ) : I s 0015520 s u e c a l l o n f a s t 0015540 g e t f r a m e , r e t u r 0015560 n \r S W F a s t F r a m e \t \t = 0015600 f a l s e \r S W G e t L I N E 0015620 s = t r u e / / G l o 0015640 b a l / - G , d o n ' t " 0015660 L I N E " g e t f i l e s , 0015700 s e t s t h i s f a l s e 0015720 \r S W N o E x t E x t s = t 0015740 r u e / / G l o b a l 376 0015760 001 \0 351 z / - E , a l l o w E 0016000 X T E R N A L & E X T E R N 0016020 A L , s e t s t h i s f a 0016040 l s e \r S W S t a c k S t r i n 0016060 g s = f a l s e / / i f 0016100 t r u e , p u t s t r i n 0016120 g a n d t a b l e s o n 0016140 s t a c k \r S W U n s i g n e d 0016160 C o m p a r e s = f a l s e 0016200 / / i f t r u e , e n a 0016220 b l e u l s , u l e , u g 0016240 e , a n d u g t \r ] \r \r \r / 0016260 / - - - - - - - - - - - - - - - 0016300 - - - - - - - - - - - - - - - - * 0016360 - - - - 376 001 \0 215 A - - - - - - - 0016400 - - \r l e t M a i n ( p a r a 0016420 m v e c ) b e \r / / - - - - - 0016440 - - - - - - - - - - - - - - - - * 0016540 - - - - - - - \r [ \r / / C a 0016560 l l e d f r o m I n i t B C 0016600 P L i n s y s t e m - d e p 0016620 e n d e n t \r / / f i l e ( 0016640 B C P L D O S , B C P L A L T 0016660 O , B C P L R D O S . . . ) \r 0016700 l e t f N L = F i l e N a 0016720 m e L e n g t h / B y t e s p e 0016740 r w o r d + 1 \r G e t n a m e T 0016760 = G e t F i l 376 001 \0 7 V e M 0017000 a x * G e t n a m e N - 1 \r G e 0017020 t l i n e T = 2 * G e t F i 0017040 l e M a x * G e t l i n e N - 1 0017060 / / g e t s u s c o m 0017100 i n g a n d g o i n g \r l e 0017120 t v e c L e n , V e c = 0017140 ( 1 5 + G e t F i l e M a x ) * 0017160 f N L + G e t n a m e T + G e t 0017200 l i n e T + 4 0 , v e c L e n 0017220 \r D v e c ( M a i n , l v V e 0017240 c ) ; f o r i = 0 t o 0017260 v e c L e n d o V e c ! i 0017300 = 0 \r I n i t F r e e ( F r 0017320 e e M a x ) \r \r B C P L n a m e 0017340 = V e c \r L E X n a m e = 0017360 B C P L n a m e + f N 376 001 0017400 \0 300 212 L \r C A E n a m e = L 0017420 E X n a m e + f N L \r S A E 0017440 n a m e = C A E n a m e + 0017460 f N L \r T R N n a m e = S 0017500 A E n a m e + f N L \r N C G 0017520 n a m e = T R N n a m e + 0017540 f N L \r \r f i l e n a m e = 0017560 N C G n a m e + f N L / 0017600 / n e e d s F i l e N a m e 0017620 L e n g t h + 1 1 \r s w = f 0017640 i l e n a m e + F i l e N a m e 0017660 L e n g t h + 1 1 / / n e e 0017700 d s 2 7 \r \r R e a d C O M C M 0017720 ( ) \r F i x F i l e N a m e ( B 0017740 C P L n a m e , " " , 0 ) \r 0017760 F i x F i l e N a m e ( L E X n 0020000 a m e 376 001 \0 I s , " . Y L " , 0020020 0 ) \r F i x F i l e N a m e ( 0020040 C A E n a m e , " . Y C " , 0020060 0 ) \r F i x F i l e N a m e ( S 0020100 A E n a m e , " . Y S " , 0 0020120 ) \r F i x F i l e N a m e ( T R 0020140 N n a m e , " . Y T " , 0 ) 0020160 \r F i x F i l e N a m e ( N C G 0020200 n a m e , " . Y G " , 0 ) \r 0020220 \r f o r i = 1 t o s w 0020240 ! 0 s w i t c h o n s w ! i 0020260 i n t o \r [ \r c a 0020300 s e $ D : S W D e b u g = 0020320 t r u e ; l o o p \r c 0020340 a s e $ H : S W H e l p , 0020360 S W D e b u g = t r u e , 0020400 t r u e ; l o 376 001 \0 212 005 o p \r 0020420 c a s e $ F : i f S 0020440 W T T O t y p e d o B a d S 0020460 w i t c h ( i ) ; S W T T O f 0020500 i l e = t r u e ; l o o p 0020520 \r c a s e $ T : i f 0020540 S W T T O f i l e d o B a d 0020560 S w i t c h ( i ) ; S W T T O 0020600 t y p e = t r u e ; l o o 0020620 p \r c a s e $ A : S W 0020640 O u t p u t , S W L i s t C o 0020660 d e = t r u e , t r u e ; 0020700 l o o p \r c a s e $ W 0020720 : S W W a i t = t r u e ; 0020740 l o o p \r c a s e $ P 0020760 : S W W a i t = f a l s e 0021000 ; l o o p \r c a s 376 001 \0 0021020 @ p e $ S : i f S W A l t 0021040 o t h e n S W F a s t F r a 0021060 m e = # 7 4 4 0 0 ; l o o 0021100 p \r c a s e $ U : S W 0021120 U p p e r C a s e , S W O n e 0021140 C a s e = t r u e , t r u 0021160 e ; l o o p \r / / c a 0021200 s e $ X : S W A l t o = 0021220 t r u e ; l o o p \r / / 0021240 c a s e $ N : S W N o x i 0021260 o s = t r u e ; l o o p \r 0021300 c a s e $ G : S W P r 0021320 e p a r e = t r u e ; l o 0021340 o p \r c a s e - $ G : 0021360 S W G e t L I N E s = f a l 0021400 s e ; l o o p \r c a s e 0021420 - 376 001 \0 322 024 $ E : S W N o E 0021440 x t E x t s = f a l s e ; 0021460 l o o p \r c a s e $ I : 0021500 S W S t a c k S t r i n g s 0021520 = t r u e ; l o o p \r 0021540 c a s e $ O : S W U n s i g 0021560 n e d C o m p a r e s = t r 0021600 u e ; l o o p \r d e f a 0021620 u l t : B a d S w i t c h ( i 0021640 ) \r ] \r \r S o u r c e N a 0021660 m e = s w + 2 7 \r B i n N a 0021700 m e = S o u r c e N a m e + 0021720 f N L \r O u t p u t N a m e = 0021740 B i n N a m e + f N L \r S o u 0021760 r c e D e v i c e = O u t p 0022000 u t N a m e + f N L \r D e v i c 0022020 e = S o u 376 001 \0 237 177 r c e D 0022040 e v i c e + f N L \r D E C L N a 0022060 m e = D e v i c e + f N L \r 0022100 D I C T N a m e = D E C L N 0022120 a m e + f N L / / D I C T N 0022140 a m e n e e d s f N L \r \r m 0022160 y F r a m e = M y F r a m e 0022200 ( ) \r l e t m o r e S o u r c 0022220 e s = R e a d C O M C M ( ) 0022240 l s h i f t 8 ; \r l e t r 0022260 e a d s = 0 \r [ \r 0022300 i f f i l e n a m e ! 0 e 0022320 q - 1 t h e n [ m o r e 0022340 S o u r c e s = 0 ; b r e 0022360 a k ] \r t e s t s w ! 0022400 0 e q 0 \r i f s 0022420 o \r [ 376 001 \0 216 0022440 226 \r t e s t 0022460 S o u r c e N a m e ! 0 e q 0022500 0 \r i f 0022520 s o F i x F i l e N a m e ( S 0022540 o u r c e N a m e , " " , D 0022560 e v i c e ) \r 0022600 i f n o t \r 0022620 [ \r 0022640 i f r e a d 0022660 s n e 1 % n o t S W A 0022700 l t o t h e n \r 0022720 E r r o r ( " 0022740 T w o s o u r c e f i l e 0022760 n a m e s " ) \r 0023000 C l o s e C O M C 0023020 M ( ) ; b r e a k ; \r 0023040 376 001 \0 214 376 0023060 ] \r i f B i 0023100 n N a m e ! 0 e q 0 t h e 0023120 n F i x F i l e N a m e ( B i 0023140 n N a m e , " . B R " , D e 0023160 v i c e ) \r i 0023200 f O u t p u t N a m e ! 0 e 0023220 q 0 t h e n F i x F i l e 0023240 N a m e ( O u t p u t N a m e , 0023260 " . B T " , D e v i c e ) \r 0023300 i f S W P r 0023320 e p a r e t h e n \r 0023340 [ \r 0023360 F i x F i l e N a m e 0023400 ( D E C L N a m e , " . B L " 0023420 , D e v i c e ) \r 0023440 376 001 \0 363 317 F i x F i 0023460 l e N a m e ( D I C T N a m e , 0023500 " . B D " , D e v i c e ) \r 0023520 ] \r 0023540 ] \r i 0023560 f n o t f o r i = 1 t 0023600 o s w ! 0 s w i t c h o n 0023620 s w ! i i n t o \r 0023640 [ \r c a 0023660 s e $ A : S W O u t p u t , 0023700 S W L i s t C o d e = t r 0023720 u e , t r u e \r 0023740 c a s e $ F : i f S W 0023760 T T O t y p e d o B a d S w 0024000 i t c h ( i ) \r 0024020 i f s w ! 0024040 i e q $ F d o 376 001 \0 277 261 0024060 S W T T O f i l e = t r u e 0024100 \r 0024120 F i x F i l e N a m e ( O 0024140 u t p u t N a m e , " . B T " 0024160 , D e v i c e ) \r 0024200 l o o p 0024220 \r \r c a s e 0024240 $ R : F i x F i l e N a m e ( 0024260 B i n N a m e , " . B R " , 0024300 D e v i c e ) \r 0024320 l o o p \r \r 0024340 c a s e $ C 0024360 : t e s t S o u r c e N a m 0024400 e ! 0 e q 0 \r 0024420 t h e n 0024440 F i x F i l e N a m e ( S o u r 0024460 376 001 \0 @ \b c e N a m e , " " , 0024500 D e v i c e ) \r 0024520 o r 0024540 E r r o r ( " T W O S O U R C 0024560 E F I L E N A M E S " ) \r 0024600 0024620 l o o p \r \r 0024640 c a s e $ G : \r 0024660 i f S W 0024700 P r e p a r e t h e n E r r 0024720 o r ( " / G B o t h G l o b 0024740 a l a n d L o c a l " ) \r 0024760 0025000 S W U s e D e c l = t r u 0025020 e ; \r 0025040 F i x F i l e N a m e 0025060 ( D E C L 376 001 \0 l 346 N a m e , 0025100 " . B L " , D e v i c e ) \r 0025120 0025140 F i x F i l e N a m e ( D I C 0025160 T N a m e , " . B D " , D e 0025200 v i c e ) \r 0025220 l o o p \r \r 0025240 / / / * D C S * 0025260 c o m m a n d l i n e m a n 0025300 i f e s t s - - s e e e n 0025320 t e r p a r a m s ( ) i n L 0025340 E X \r / / / * 0025360 n u m b e r / V s e t s 0025400 m a n i f e s t v a l u e - 0025420 - d e f a u l t i s 0 \r 0025440 / / / * n a 0025460 m e / M d o e s 376 001 \0 341 276 " 0025500 m a n i f e s t n a m e = 0025520 c u r r e n t - n u m b e r " \r 0025540 / / / * 5 - 9 0025560 - 7 7 n u m b e r / S s e t 0025600 s g e t f r a m e c a l l 0025620 v a l u e t o n u m b e r 0025640 ( o c t a l ) \r 0025660 / / / * e n t r y o f 0025700 n a m e s m u s t b e d 0025720 e l a y e d u n t i l e n t 0025740 e r p a r a m s i n L E X \r 0025760 c a s e $ V 0026000 : \r c a s e 0026020 $ M : \r c a s 0026040 e $ S : \r 0026060 S W P a r a m s e t = 376 0026100 001 \0 A i t r u e / / / * W 0026120 i l l r e r e a d C O M . C 0026140 M i n L E X \r 0026160 l o o p \r 0026200 c a s e $ L : \r 0026220 c a s e $ T : \r 0026240 [ \r 0026260 S W O u t p u t 0026300 = t r u e \r 0026320 u n l e s s i e q 0026340 1 & s w ! 0 l e 2 d o 0026360 B a d S w i t c h ( i ) \r 0026400 l e t L , 0026420 T = s w ! 1 e q $ L , 0026440 s w ! ( s w ! 0 ) e q $ T 0026460 \r f o r 0026500 j = 376 001 \0 p 340 1 t o f 0026520 i l e n a m e ! 0 d o s w i 0026540 t c h o n f i l e n a m e ! j 0026560 i n t o \r 0026600 [ \r 0026620 c a s e $ L : S 0026640 W L e x L i s t , S W L e x T 0026660 r a c e = L , T ; l o o 0026700 p \r 0026720 c a s e $ C : S W C a e L 0026740 i s t , S W C a e T r a c e 0026760 = L , T ; l o o p \r 0027000 c a s e 0027020 $ S : S W S a e L i s t , 0027040 S W S a e T r a c e = L , 0027060 T ; l o o p \r 0027100 c a 376 001 \0 9 ] s e 0027120 $ T : S W T r n L i s t , 0027140 S W O c o d e = L , T ; 0027160 l o o p \r 0027200 c a s e $ 1 : S W P 0027220 a s s O n e L i s t , S W P a 0027240 s s O n e C o d e = L , T 0027260 ; l o o p \r 0027300 c a s e $ 2 : S 0027320 W P a s s T w o L i s t , S W 0027340 P a s s T w o C o d e = L , 0027360 T ; l o o p \r 0027400 d e f a u l t : 0027420 B a d S w i t c h ( i ) \r 0027440 ] \r 0027460 i = s 0027500 w ! 0 \r 376 001 0027520 \0 W z l o o p \r 0027540 ] \r \r 0027560 d e f a u l t : B a d S w 0027600 i t c h ( i ) \r 0027620 ] \r m o r e S o u r c e 0027640 s = ( m o r e S o u r c e s 0027660 & # 1 7 7 4 0 0 ) + R e 0027700 a d C O M C M ( ) ; r e a d s 0027720 = r e a d s + 1 ; \r 0027740 ] r e p e a t \r \r \r i f S 0027760 o u r c e N a m e ! 0 e q 0 0030000 d o E r r o r ( " N o s o 0030020 u r c e f i l e n a m e " ) 0030040 \r i f S o u r c e D e v i c e 0030060 ! 0 e q 0 d o M o v e s 0030100 t r i n g ( S o u r c e N a m e 0030120 , S 376 001 \0 _ G o u r c e D e v 0030140 i c e ) \r i f B i n N a m e ! 0030160 0 e q 0 d o E r r o r ( 0030200 " N o b i n a r y f i l e 0030220 n a m e " ) \r \r t e s t S W T 0030240 T O f i l e % ( S W O u t p 0030260 u t & n o t S W T T O t y 0030300 p e ) \r i f s o \r 0030320 [ \r i f O u t 0030340 p u t N a m e ! 0 e q 0 t 0030360 h e n E r r o r ( " N o o u 0030400 t p u t f i l e n a m e " ) 0030420 \r O u t p u t S t r 0030440 e a m = O p e n O u t p u t 0030460 ( O u t p u t N a m e ) \r 0030500 ] \r i f n o t [ 0030520 O u t p u t S t 376 001 \0 234 246 r e a 0030540 m = T T O s t r e a m ; O 0030560 u t p u t N a m e ! 0 = 0 0030600 ] \r \r t e s t S W T T O f i l 0030620 e \r i f s o E r r o r S 0030640 t r e a m = O u t p u t S t 0030660 r e a m \r i f n o t E r 0030700 r o r S t r e a m = T T O s 0030720 t r e a m \r \r O s t r e a m = 0030740 T T O s t r e a m \r \r / / / * 0030760 D C S * M o d i f i c a t i o 0031000 n s t o c l e a n u p , 0031020 a d d p r i n t i n g f o r 0031040 S W P r e p a r e \r f o r i 0031060 = 0 t o ( O u t p u t S t r 0031100 e a m e q T T O s t r e a m 0031120 ? 0 , 1 ) d o \r 376 001 \0 0031140 036 354 [ \r W r i t e S ( B 0031160 C P L n a m e ) ; W W ( $ * s 0031200 ) \r W r i t e N ( V e r s 0031220 i o n r s h i f t 8 ) ; W 0031240 W ( $ . ) ; W r i t e N ( V e 0031260 r s i o n & # 3 7 7 ) ; \r 0031300 W r i t e S ( " - - " ) 0031320 \r t e s t S W P r e p a 0031340 r e \r i f s o [ 0031360 W r i t e S ( D E C L N a m e ) 0031400 ; W r i t e S ( " , " ) ; 0031420 W r i t e S ( D I C T N a m e 0031440 ) ] \r i f n o t \r 0031460 [ \r 0031500 i f O u t p u t N a m 0031520 e ! 0 n e 0 d o [ W r 0031540 i t 376 001 \0 j ' e S ( O u t p u t 0031560 N a m e ) ; W r i t e S ( " 0031600 , " ) ] \r 0031620 W r i t e S ( B i n N a m e ) ; 0031640 \r ] \r W 0031660 r i t e S ( " = " ) ; W r 0031700 i t e S ( S o u r c e N a m e ) 0031720 ; W W ( $ * n ) \r O s 0031740 t r e a m = O u t p u t S t 0031760 r e a m \r ] \r \r G e t n a 0032000 m e V = D I C T N a m e + f 0032020 N L ; G e t n a m e P = 0 0032040 \r l e t n v = G e t n a m 0032060 e V + G e t n a m e T + 1 \r f o 0032100 r i = 0 t o G e t n a 0032120 m e T b y G e t n a m e N 0032140 d o [ G e 376 001 \0 k 212 t n a m 0032160 e V ! i = n v ; n v = 0032200 n v + f N L ] \r G e t l i 0032220 n e V = n v ; G e t l i n 0032240 e P = 0 \r \r / / T h i s 0032260 H e r e ' s T h e C o m p 0032300 i l e r \r \r I n i t F r e e ( D 0032320 i c t F r e e L i m i t ) \r O v 0032340 e r l a y ( L E X n a m e , D 0032360 i c t F r e e L i m i t + 1 ) \r 0032400 i f S W H e l p d o H e l 0032420 p ( " L E X S T A R T " ) \r S 0032440 W L i s t = S W L e x L i s 0032460 t \r R e a d S o u r c e ( ) \r i 0032500 f S W H e l p d o H e l p 0032520 ( " L E X E N D " ) \r \r / / / 0032540 * D C S * P r e c o m 376 001 \0 025 0032560 W p i l e d D e c l a r a t i 0032600 o n s \r i f S W P r e p a r e 0032620 t h e n g o t o A b o r t 0032640 \r \r I n i t F r e e ( T r e e F 0032660 r e e L i m i t ) \r O v e r l a 0032700 y ( C A E n a m e , T r e e F 0032720 r e e L i m i t + 1 ) \r i f S 0032740 W H e l p d o H e l p ( " C 0032760 A E S T A R T " ) \r S W L i s 0033000 t = S W C a e L i s t \r C o 0033020 n s t r u c t T r e e ( ) \r i f 0033040 S W H e l p d o H e l p ( 0033060 " C A E E N D " ) \r u n l e s 0033100 s R e p o r t c o u n t e q 0033120 0 g o t o A b o r t \r O v 0033140 e r l a y ( S A E n a m e , T 0033160 r 376 001 \0 350 e e F r e e L i m i 0033200 t + 1 ) \r i f S W H e l p d 0033220 o H e l p ( " S A E S T A R 0033240 T " ) \r S W L i s t = S W S 0033260 a e L i s t \r D e c l a r e N a 0033300 m e s ( ) \r i f S W H e l p 0033320 d o H e l p ( " S A E E N D 0033340 " ) \r O v e r l a y ( T R N n a 0033360 m e , T r e e F r e e L i m i 0033400 t + 1 ) \r i f S W H e l p d 0033420 o H e l p ( " T R N S T A R 0033440 T " ) \r S W L i s t = S W T 0033460 r n L i s t \r T r a n s l a t e 0033500 T r e e ( ) \r i f S W H e l p 0033520 d o H e l p ( " T R N E N 0033540 D " ) \r \r u n l e s s R e p o 0033560 r t c o u n 376 001 \0 217 y t e q 0033600 0 g o t o A b o r t \r \r I n 0033620 i t F r e e ( C o d e F r e e L 0033640 i m i t ) \r C o d e S t r e a m 0033660 = O p e n O u t p u t ( B i 0033700 n N a m e ) \r O v e r l a y ( N 0033720 C G n a m e , C o d e F r e e 0033740 L i m i t + 1 ) \r i f S W H e 0033760 l p d o H e l p ( " N C G 0034000 S T A R T " ) \r i f S W L i s 0034020 t C o d e d o S W P a s s T 0034040 w o L i s t , S W P a s s T w 0034060 o C o d e = t r u e , t r 0034100 u e \r G e n e r a t e C o d e ( 0034120 ) \r i f S W H e l p d o H 0034140 e l p ( " N C G E N D " ) \r \r 0034160 A b o r t : \r G o 376 001 \0 263 ^ 0034200 t o L a b e l ( m y F r a m e , 0034220 l o c a l A b o r t ) \r l 0034240 o c a l A b o r t : \r \r t e s t 0034260 R e p o r t c o u n t e q 0034300 0 \r i f n o t \r [ 0034320 \r O s t r e a m = 0034340 T T O s t r e a m \r W 0034360 r i t e N ( R e p o r t c o u n 0034400 t ) \r W r i t e S ( " 0034420 E R R O R " ) ; u n l e s s 0034440 R e p o r t c o u n t e q 0034460 1 d o W W ( $ S ) \r 0034500 W r i t e S ( " I N " ) ; 0034520 W r i t e S ( S o u r c e N a 0034540 m e ) \r W W ( $ * n ) 0034560 \r u n l e s s O u t 0034600 376 001 \0 ? D p u t N a m e ! 0 e 0034620 q 0 d o C l o s e O u t p 0034640 u t ( O u t p u t S t r e a m , 0034660 O u t p u t N a m e ) \r 0034700 ] \r i f s o \r 0034720 [ \r u n l e s s S W 0034740 P r e p a r e d o C l o s e 0034760 O u t p u t ( C o d e S t r e a 0035000 m , B i n N a m e ) \r 0035020 O s t r e a m = E r r o r 0035040 S t r e a m \r f o r 0035060 i = 0 t o ( O u t p u t S t 0035100 r e a m e q E r r o r S t r 0035120 e a m ? 0 , 1 ) d o t e 0035140 s t S W P r e p a r e \r 0035160 i f s o [ W r i t 0035200 e S ( " 376 001 \0 024 266 f i n i s h 0035220 e d * n " ) ] \r 0035240 i f n o t \r 0035260 [ \r W 0035300 W ( $ * n ) ; W r i t e S ( B 0035320 i n N a m e ) ; W r i t e S ( 0035340 " - - " ) ; W r i t e O ( 0035360 P C ) ; W W ( $ * s ) ; \r 0035400 W W ( $ ( ) ; 0035420 W r i t e N ( P C ) ; W W ( 0035440 $ ) ) ; W r i t e S ( " W O 0035460 R D S * n " ) \r 0035500 O s t r e a m = O u t 0035520 p u t S t r e a m \r 0035540 ] \r u n l e 0035560 s s O u t p u t N a m e ! 0 0035600 e q 0 d o \r 376 001 \0 311 271 0035620 C l o s e O u t p u t ( O u 0035640 t p u t S t r e a m , O u t p 0035660 u t N a m e ) \r ] \r i 0035700 f m o r e S o u r c e s e q 0035720 0 t h e n f i n i s h ; \r 0035740 C l o s e I n p u t ( S o u r c 0035760 e S t r e a m ) ; \r R e s t a r 0036000 t B C P L ( m o r e S o u r c e 0036020 s r s h i f t 8 , m o r e 0036040 S o u r c e s & # 3 7 7 ) ; 0036060 \r ] \r \r / / - - - - - - - - - - 0036100 - - - - - - - - - - - - - - - - * 0036200 - - \r a n d B C P L r e p o 376 0036220 001 \0 024 311 r t ( n , M e s s a g 0036240 e ) b e \r / / - - - - - - - - 0036260 - - - - - - - - - - - - - - - - * 0036360 - - - - \r [ \r O s t r e a 0036400 m = n g e 0 ? E r r 0036420 o r S t r e a m , T T O s t r 0036440 e a m \r i f n l s 0 0036460 d o [ S W D e b u g = t 0036500 r u e ] \r W r i t e S ( " 0036520 E R R O R " ) \r \r R e p o 0036540 r t c o u n t = R e p o r t 0036560 c o u n t + 1 \r \r l e t 0036600 f = l v n - 6 \r 0036620 i f S 376 001 \0 \0 247 W D e b u g 0036640 % M e s s a g e e q 0 d 0036660 o \r [ \t W r i t e N ( n 0036700 ) \r ] \r t e s t 0036720 S W D e b u g \r i f n o t 0036740 W r i t e S ( " : " ) \r i 0036760 f s o \r [ \t W r i t e S 0037000 ( " F R O M " ) \r \t l e t 0037020 p = f ! 0 - ( S W N o x 0037040 i o s ? 0 , # 2 0 0 ) \r \t W 0037060 r i t e O ( p ! 1 ) \r \t W r i t 0037100 e S ( " I N " ) \r \t l e t 0037120 q = p ! 0 - ( S W N o x 0037140 i o s ? 0 , # 2 0 0 ) \r \t W 0037160 r i t e O ( q ! 2 - 2 ) \r \t 0037200 W r i t e S ( " , F R A M E 0037220 A T " ) \r \t W 376 001 \0 027 352 r i 0037240 t e O ( q ) \r \t W W ( $ * n ) \r 0037260 ] \r \r i f M e s 0037300 s a g e n e 0 d o W r i 0037320 t e S ( M e s s a g e ) \r W 0037340 W ( $ * n ) \r \r i f R e p 0037360 o r t c o u n t g r M a x E 0037400 r r o r s d o \r [ \t O 0037420 s t r e a m = T T O s t r e 0037440 a m \r \t W r i t e S ( " T O O 0037460 M A N Y E R R O R S * n " ) \r 0037500 \t g o t o A b o r t \r 0037520 ] \r \r ] \r \r a n d W r i t e 0037540 L i n e ( l i n e ) = W r i 0037560 t e L i n e s ( l i n e , 0 , 0037600 1 ) \r \r a n d W r i t e L i 0037620 n e s ( l i n e , l i n e 376 001 0037640 \0 206 023 o f f s e t , l i n e c 0037660 o u n t ) = v a l o f \r [ \r 0037700 s t a t i c [ P r e v f 0037720 i l e = - 1 ; P r e v l i 0037740 n e = - 1 ] \r \r l e t 0037760 c h = n i l \r \r l e t 0040000 i = 0 \r w h i l e U 0040020 s c ( l i n e , G e t l i n e 0040040 V ! i ) g r 0 d o \r 0040060 [ \t i f i e q G e t l i 0040100 n e P d o [ l i n e = 0040120 G e t l i n e V ! i ; b r e a 0040140 k ] \r \t i = i + G e t 0040160 l i n e N \r ] \r l 0040200 e t f i l e = G e t l i n 0040220 e V ! ( i + 1 ) \r u n l e s 0040240 s f 376 001 \0 002 017 i l e e q C 0040260 u r f i l e d o \r [ \t 0040300 C l o s e I n p u t ( S o u r c 0040320 e S t r e a m , G e t n a m e 0040340 V ! C u r f i l e ) \r \t C u r f 0040360 i l e = f i l e \r \t S o u r 0040400 c e S t r e a m = O p e n I 0040420 n p u t ( G e t n a m e V ! C u 0040440 r f i l e ) \r ] \r 0040460 l i n e = l i n e - ( G 0040500 e t l i n e V ! i - G e t l 0040520 i n e V ! ( i + 2 ) ) \r i f 0040540 l i n e l e 0 d o l i 0040560 n e = 0 \r \r R e p o s i 0040600 t i o n ( S o u r c e S t r e a 0040620 m , l i n e ) \r u n l e s 0040640 s l i n e o f 376 001 \0 322 o f s e 0040660 t e q 0 d o \r t e s t 0040700 l i n e o f f s e t l s 0 0040720 \r t h e n [ l i n e = 0040740 B a c k 1 ( l i n e ) \r \t l 0040760 i n e o f f s e t = l i n e 0041000 o f f s e t + 1 \r 0041020 ] r e p e a t u n t i l l i 0041040 n e o f f s e t e q 0 \r 0041060 o r i f l i n e o f f s e t 0041100 g r 0 d o \r 0041120 [ l i n e = F o r w a r d 0041140 1 ( l i n e ) \r \t l i n e o f 0041160 f s e t = l i n e o f f s e 0041200 t - 1 \r ] r e p 0041220 e a t u n t i l l i n e o f f 0041240 s e t e q 0 \r \r i 376 001 \0 0041260 276 320 f P r e v l i n e e q 0041300 l i n e & P r e v f i l e 0041320 e q f i l e r e s u l t i s 0041340 f a l s e \r P r e v l i n 0041360 e , P r e v f i l e = l i 0041400 n e , f i l e \r \r R e p o 0041420 s i t i o n ( S o u r c e S t r 0041440 e a m , l i n e ) \r f o r 0041460 i = 1 t o l i n e c o 0041500 u n t d o \r [ [ R e a 0041520 d c h ( S o u r c e S t r e a m 0041540 , l v c h ) \r ] r 0041560 e p e a t w h i l e c h e q 0041600 $ * n \r W W ( c h 0041620 ) \r [ R e a d c h ( S 0041640 o u r c e S t r e a m , l v 0041660 c h 376 001 \0 254 022 ) \r i 0041700 f c h e q # 7 7 7 b r e 0041720 a k \r W W ( c h ) \r 0041740 ] r e p e a t u n t i 0041760 l c h e q $ * n \r ] \r 0042000 \r r e s u l t i s t r u e 0042020 \r \r ] \r \r a n d B a c k 1 ( l 0042040 i n e ) = v a l o f \r [ \r 0042060 l e t c h = n i l \r \r 0042100 [ l i n e = l i n e - 0042120 1 \r i f l i n e l 0042140 e 0 r e s u l t i s 0 \r 0042160 R e p o s i t i o n ( S o 0042200 u r c e S t r e a m , l i n e 0042220 ) \r R e a d c h ( S o u 0042240 r c e S t r e a m , l v c h 0042260 ) \r ] r 376 001 \0 342 255 e p e a 0042300 t w h i l e c h e q $ * n 0042320 \r [ l i n e = l i n e 0042340 - 1 \r i f l i n e 0042360 l e 0 r e s u l t i s 0 0042400 \r R e p o s i t i o n ( 0042420 S o u r c e S t r e a m , l i 0042440 n e ) \r R e a d c h ( S 0042460 o u r c e S t r e a m , l v 0042500 c h ) \r ] r e p e a t u n 0042520 t i l c h e q $ * n \r \r 0042540 r e s u l t i s l i n e + 0042560 1 \r ] \r \r a n d F o r w a r 0042600 d 1 ( l i n e ) = v a l o f 0042620 \r [ \r l e t c h = n i 0042640 l \r \r R e p o s i t i o n ( 0042660 S o u r c e S t r e a m 376 001 \0 307 0042700 375 , l i n e ) \r [ R e a 0042720 d c h ( S o u r c e S t r e a m 0042740 , l v c h ) \r l i n 0042760 e = l i n e + 1 \r ] 0043000 r e p e a t w h i l e c h 0043020 e q $ * n \r [ R e a d c 0043040 h ( S o u r c e S t r e a m , 0043060 l v c h ) \r l i n e 0043100 = l i n e + 1 \r ] r 0043120 e p e a t u n t i l c h e q 0043140 $ * n % c h e q # 7 7 0043160 7 \r [ R e a d c h ( S o u 0043200 r c e S t r e a m , l v c h 0043220 ) \r l i n e = l i n 0043240 e + 1 \r ] r e p e a t 0043260 w h i l e c h e q $ * n \r 0043300 \r 376 \0 022 ' 347 r e s u l t i s 0043320 l i n e \r ] \r 377 \0 \0 B C P L 1 0043340 . b c p l \0 373 226 W 350 020 \0 \0 376 001 \0 0043360 { 206 / / B C P L 1 . b c p l 0043400 - B C P L C o m p i l e r 0043420 - - I O r o u t i n e s \r / 0043440 / C o p y r i g h t X e r o 0043460 x C o r p o r a t i o n 1 9 0043500 8 0 \r / / U s e D v e c t 0043520 o a l l o c a t e F i l e N 0043540 a m e L e n g t h - - S w i 0043560 n e h a r t , 6 M a y 7 7 0043600 \r \r g e t " b c p l x " \r g e 0043620 t " b c p l i o x " \r \r s t r 0043640 u c t u r e [ b l a n k b 0043660 i t 1 5 ; O D D B I T b i 0043700 t 1 ] \r \r l e t P a c k s 0043720 t r i n g ( u , p ) b e \r 0043740 [ \r l e t n = u ! 0 \r 0043760 376 001 \0 354 205 l e t i , j 0044000 = 0 , 0 \r [ p ! j = 0044020 u ! i l s h i f t 8 \r 0044040 i = i + 1 ; i f 0044060 i g r n r e t u r n \r 0044100 p ! j = p ! j + ( u 0044120 ! i & # 3 7 7 ) \r i 0044140 = i + 1 ; i f i g 0044160 r n r e t u r n \r j 0044200 = j + 1 \r ] r e p 0044220 e a t \r ] \r \r a n d U n p a 0044240 c k s t r i n g ( p , u ) b 0044260 e \r [ \r l e t n = p ! 0044300 0 r s h i f t 8 \r l e t 0044320 i , j = 0 , 0 \r [ 0044340 u ! i = p ! j r s h i f 0044360 t 8 \r 376 001 \0 247 % i = 0044400 i + 1 ; i f i g r 0044420 n r e t u r n \r u ! i 0044440 = p ! j & # 3 7 7 \r 0044460 i = i + 1 ; i f 0044500 i g r n r e t u r n \r 0044520 j = j + 1 \r ] 0044540 r e p e a t \r ] \r \r a n d M 0044560 o v e s t r i n g ( p 1 , p 2 0044600 ) b e \r [ \r l e t n = 0044620 p 1 ! 0 r s h i f t 8 \r 0044640 t e s t n e q 0 \r t 0044660 h e n n = p 1 ! 0 \r o 0044700 r n = n / 2 \r f o 0044720 r i = 0 t o n d o 0044740 p 2 ! i = p 1 ! i \r ] \r \r 0044760 a n d L e n g t h ( p 376 001 \0 256 0045000 367 ) = p ! 0 r s h i f t 0045020 8 \r \r a n d C h a r ( p , n 0045040 ) = v a l o f \r [ \r l e 0045060 t i = n r s h i f t 1 0045100 \r t e s t ( n & 1 ) 0045120 e q 0 \r t h e n r e s u 0045140 l t i s p ! i r s h i f t 0045160 8 \r o r r e s u l t i 0045200 s p ! i & # 3 7 7 \r ] \r 0045220 \r a n d W r i t e S ( s ) b 0045240 e \r [ l e t u = v e c 0045260 2 5 6 \r U n p a c k s t r i 0045300 n g ( s , u ) \r f o r i 0045320 = 1 t o u ! 0 d o W 0045340 W ( u ! i ) \r ] \r \r a n d W 0045360 r i t e N ( n ) b e \r [ i f 0045400 376 001 \0 277 353 n l s 0 d o 0045420 [ n = - n ; W W ( $ - ) 0045440 ] \r l e t z s w = f 0045460 a l s e \r l e t k = 1 0045500 0 0 0 0 \r f o r i = 1 0045520 t o 4 d o \r [ l 0045540 e t d = n / k \r 0045560 i f z s w % ( d n e 0 0045600 ) d o \r [ W 0045620 W ( d + $ 0 ) ; z s w = t 0045640 r u e ] \r n = n 0045660 r e m k \r k = 0045700 k / 1 0 \r ] \r W W ( 0045720 n + $ 0 ) \r ] \r \r a n d W r 0045740 i t e O ( n ) b e \r [ l e t 0045760 z s w = t r u e \r f o 0046000 r i = 376 001 \0 g 034 1 5 t o 0046020 3 b y - 3 d o \r 0046040 [ l e t d = ( n r s h 0046060 i f t i ) & # 7 \r 0046100 t e s t z s w & ( d e 0046120 q 0 ) \r t h e n [ 0046140 W W ( $ * s ) ] \r 0046160 o r [ W W ( d + $ 0 ) ; 0046200 z s w = f a l s e ] \r 0046220 ] \r W W ( ( n & # 0046240 7 ) + $ 0 ) \r ] \r \r a n d 0046260 C l o s e I n p u t ( c h a n 0046300 n e l ) b e c l o s e c h a 0046320 n n e l ( c h a n n e l ) \r 0046340 \r a n d C l o s e O u t p u t 0046360 ( c h a n n e l ) b e c l o 0046400 s e c h a n n e l ( c 376 001 \0 255 o 0046420 h a n n e l ) / / w i l l 0046440 f l u s h b u f f e r i n 0046460 c l o s e c h a n n e l \r \r a n 0046500 d C l o s e T e m p ( c h a n 0046520 n e l , c h ) b e c l o s 0046540 e c h a n n e l ( c h a n n e l 0046560 ) / / w i l l f l u s h 0046600 b u f f e r i n c l o s e c 0046620 h a n n e l \r \r a n d s y s c 0046640 a l l e r r o r ( c a l l , a 0046660 c , s t r e a m ; n u m a r 0046700 g s n a r g s ) b e \r [ l 0046720 e t c a l l a c = v e c 0046740 3 ; f o r i = 0 t o 0046760 3 d o c a l l a c ! i = 0047000 a c ! i \r \r O s t r e a m 0047020 376 001 \0 202 s = T T O s t r e a m 0047040 \r W r i t e S ( " U N E X P 0047060 E C T E D S Y S T E M C A L 0047100 L E R R O R " ) \r W r i 0047120 t e O ( c a l l a c ! 2 ) \r \r 0047140 [ W r i t e S ( " O N C 0047160 A L L " ) ; W r i t e O ( c 0047200 a l l ) ; W W ( $ * n ) ] \r 0047220 i f S W H e l p d o H 0047240 e l p ( " S Y S T E M C A L L 0047260 E R R O R " ) \r f i n i s 0047300 h \r ] \r \r a n d B a d S w i 0047320 t c h ( i ) b e \r [ \t / / i l 0047340 l e g a l s w i t c h d e t 0047360 e c t e d - - a b o r t \r 0047400 O s t r e a m = T T O s t 0047420 r e a m \r 376 001 \0 033 251 l e t 0047440 n = F i l e N a m e L e n g 0047460 t h / 2 ; D v e c ( B a d S w 0047500 i t c h , l v n ) ; P a c k 0047520 s t r i n g ( f i l e n a m e , 0047540 n ) \r W r i t e S ( n ) \r 0047560 f o r i = 1 t o s 0047600 w ! 0 d o [ W W ( $ / ) ; 0047620 W W ( s w ! i ) ] \r W r 0047640 i t e S ( " - - B A D S W 0047660 I T C H " ) ; W W ( s w ! i 0047700 ) ; W W ( $ * n ) \r i f 0047720 S W H e l p d o H e l p ( " 0047740 H E L P " ) \r f i n i s h \r 0047760 ] \r \r a n d E r r o r ( m e 0050000 s s a g e ) b e \r [ \t / / f a 0050020 t a l e r r o r 376 001 \0 \f 243 d 0050040 e t e c t e d - - a b o r t 0050060 \r O s t r e a m = T T O 0050100 s t r e a m \r W W ( $ * n ) 0050120 ; W r i t e S ( m e s s a g e 0050140 ) ; W W ( $ * n ) \r i f 0050160 S W H e l p d o H e l p ( " 0050200 H E L P " ) \r f i n i s h \r 0050220 ] \r \r a n d F i x F i l e N 0050240 a m e ( N e w n a m e , e x t 0050260 , d e v ) b e \r [ \t \r l 0050300 e t u d e v = F i l e N a 0050320 m e L e n g t h ; D v e c ( F 0050340 i x F i l e N a m e , l v u 0050360 d e v ) \r l e t d e v s w 0050400 = f a l s e \r l e t n 0050420 = 0 \r [ n = n 376 0050440 001 \0 344 001 + 1 \r i f n 0050460 g r f i l e n a m e ! 0 d 0050500 o \r [ \t l e t v 0050520 = v e c 3 \r \t U n p a c k s 0050540 t r i n g ( e x t , v ) \r \t f 0050560 o r i = 1 t o v ! 0 0050600 d o f i l e n a m e ! ( n + i 0050620 - 1 ) = v ! i \r \t f i l e n 0050640 a m e ! 0 = f i l e n a m e 0050660 ! 0 + v ! 0 \r \t b r e a k \r 0050700 ] \r i f 0050720 f i l e n a m e ! n e q $ . 0050740 b r e a k \r i f f i 0050760 l e n a m e ! n e q $ : d 0051000 o d e v s w = t r u e \r 0051020 ] r e p e a t \r l e t 0051040 u n a m 376 001 \0 334 c e = f i l 0051060 e n a m e \r t e s t d e v 0051100 n e 0 & d e v ! 0 n e 0051120 0 & n o t d e v s w t 0051140 h e n U n p a c k s t r i n g 0051160 ( d e v , u d e v ) \r \t \t \t \t 0051200 \t o r u d e v ! 0 = 0 \r 0051220 i f u d e v ! 0 g e 4 0051240 & u d e v ! 4 e q $ : 0051260 d o \r [ \t \r \t u n a m e 0051300 = f i l e n a m e - 4 \r 0051320 \t u n a m e ! 0 = f i l e n 0051340 a m e ! 0 + 4 \r \t f o r i 0051360 = 1 t o 4 d o u n a 0051400 m e ! i = u d e v ! i \r 0051420 ] \r i f u n a m e ! 0051440 ( u n a m e ! 0 ) 376 001 \0 \n w e 0051460 q $ . d o u n a m e ! 0 0051500 = u n a m e ! 0 - 1 \r 0051520 P a c k s t r i n g ( u n a m e 0051540 , N e w n a m e ) \r f i l 0051560 e n a m e ! 0 = n - 1 \r 0051600 ] \r \r a n d D e c V a l u e 0051620 ( n a m e ) = v a l o f \r [ 0051640 \t / / g e t d e c i m a l n 0051660 u m b e r f r o m u n p a c 0051700 k e d s t r i n g \r l e t 0051720 n = 0 \r f o r i = 0051740 1 t o n a m e ! 0 d o \r 0051760 [ \t u n l e s s $ 0 0052000 l e n a m e ! i & n a m e 0052020 ! i l e $ 9 d o \r \t \t E r 0052040 r o r ( " B A D D E C I M 376 001 0052060 \0 243 343 A L N U M B E R " ) \r \t 0052100 n = n * 1 0 + ( n a m e 0052120 ! i - $ 0 ) \r ] \r 0052140 r e s u l t i s n \r ] \r \r a 0052160 n d O c t V a l u e ( n a m e 0052200 ) = v a l o f \r [ \t / / g e 0052220 t o c t a l n u m b e r f 0052240 r o m u n p a c k e d s t r 0052260 i n g \r l e t n = 0 \r 0052300 f o r i = 1 t o n 0052320 a m e ! 0 d o \r [ \t u 0052340 n l e s s $ 0 l e n a m e 0052360 ! i & n a m e ! i l e $ 0052400 7 d o \r \t \t E r r o r ( " B A 0052420 D O C T A L N U M B E R " ) 0052440 \r \t n = n * 8 + ( n a m 0052460 e ! i 376 001 \0 363 K - $ 0 ) \r 0052500 ] \r r e s u l t i s n 0052520 \r ] \r \r a n d Z e r o v e c 0052540 ( n ) = v a l o f \r [ l e 0052560 t v = N e w v e c ( n ) \r 0052600 f o r i = 0 t o n 0052620 d o v ! i = 0 \r r e 0052640 s u l t i s v \r ] \r a n d L 0052660 i s t 1 ( a ) = v a l o f \r 0052700 [ l e t v = N e w v e c 0052720 ( 1 - 1 ) \r v ! 0 = a \r 0052740 r e s u l t i s v \r ] \r a 0052760 n d L i s t 2 ( a , b ) = 0053000 v a l o f \r [ l e t v = 0053020 N e w v e c ( 2 - 1 ) \r v ! 0053040 0 , v ! 1 = a , b \r 0053060 r e s u l t i s 376 001 \0 001 a v \r 0053100 ] \r a n d L i s t 3 ( a , b , 0053120 c ) = v a l o f \r [ l e t 0053140 v = N e w v e c ( 3 - 1 ) 0053160 \r v ! 0 , v ! 1 , v ! 2 0053200 = a , b , c \r r e s 0053220 u l t i s v \r ] \r a n d L i 0053240 s t 4 ( a , b , c , d ) = v 0053260 a l o f \r [ l e t v = N 0053300 e w v e c ( 4 - 1 ) \r v ! 0 0053320 , v ! 1 , v ! 2 , v ! 3 0053340 = a , b , c , d \r r 0053360 e s u l t i s v \r ] \r a n d 0053400 L i s t 5 ( a , b , c , d , e ) 0053420 = v a l o f \r [ l e t v 0053440 = N e w v e c ( 5 - 1 ) \r 0053460 v ! 0 , v ! 1 , v ! 376 001 \0 0053500 / t 2 , v ! 3 , v ! 4 = 0053520 a , b , c , d , e \r 0053540 r e s u l t i s v \r ] \r a n d 0053560 L i s t 6 ( a , b , c , d , e 0053600 , f ) = v a l o f \r [ l e 0053620 t v = N e w v e c ( 6 - 1 0053640 ) \r v ! 0 , v ! 1 , v ! 0053660 2 , v ! 3 , v ! 4 , v ! 5 0053700 = a , b , c , d , e 0053720 , f \r r e s u l t i s v 0053740 \r ] \r a n d L i s t 7 ( a , b 0053760 , c , d , e , f , g ) = v a 0054000 l o f \r [ l e t v = N e 0054020 w v e c ( 7 - 1 ) \r v ! 0 , 0054040 v ! 1 , v ! 2 , v ! 3 , 0054060 v ! 4 , v ! 5 , v ! 6 = 0054100 a , 376 001 \0 023 005 b , c , d , 0054120 e , f , g \r r e s u l 0054140 t i s v \r ] \r \r a n d N e x 0054160 t p a r a m ( ) = v a l o f 0054200 \r [ s t a t i c [ n e x t 0054220 p = 0 ] \r n e x t p 0054240 = n e x t p + 1 ; r e s 0054260 u l t i s n e x t p \r ] \r a n 0054300 d N e x t e n t r y ( ) = 0054320 v a l o f \r [ s t a t i c [ 0054340 n e x t e = 0 ] \r n 0054360 e x t e = n e x t e + 1 0054400 ; r e s u l t i s n e x t e 0054420 \r ] \r a n d N e x t s t a t i 0054440 c ( ) = v a l o f \r [ s t 0054460 a t i c [ n e x t s = 0 0054500 ] \r n e 376 \0 # x 370 x t s 0054520 = n e x t s + 1 ; r e s 0054540 u l t i s n e x t s \r ] \r \r 377 0054560 \0 \0 B C P L A L T O . b c p l \0 0054600 373 226 X 001 R \0 \0 376 001 \0 z p / / B 0054620 C P L A L T O . b c p l - B 0054640 C P L A l t o - s p e c i f i 0054660 c f u n c t i o n s \r / / C 0054700 o p y r i g h t X e r o x C 0054720 o r p o r a t i o n 1 9 8 0 \r 0054740 / / S w i n e h a r t , 6 0054760 M a y 7 7 , F i l e l e n 0055000 g t h s - > s t a t i c s \r 0055020 / / E d i t b y B o g g s 0055040 t o i n c r e a s e s i z 0055060 e o f s o u r c e f i l e 0055100 n a m e 1 A p r 7 7 \r / 0055120 / E d i t s b y S p r o u 0055140 l l t o c o n v e r t t o 0055160 n e w O S S e p t e m b e 0055200 r 7 , 1 9 7 6 \r / / 376 001 \0 033 0055220 % I n i t B C P L c a l l s 0055240 M a i n < S W I N E H A R T > 0055260 B C P L A L T O . ; 9 0055300 4 - A P R - 7 5 0 7 : 5 4 : 2 0055320 9 E D I T B Y S W I 0055340 N E H A R T \r / / p u l l S 0055360 W A l t o c . . . i m e < S W 0055400 I N E H A R T > B C P L A L T O 0055420 . ; 8 2 8 - M A R - 7 5 0055440 1 3 : 2 4 : 1 1 E D I 0055460 T B Y S W I N E H A R T \r / 0055500 / < S W I N E H A R T > B C P 0055520 L A L T O . ; 5 2 1 - M 0055540 A R - 7 5 1 1 : 4 4 : 3 3 0055560 E D I T B Y S W I N E H 0055600 A R T \r \r / / l a s t m o d 0055620 i 376 001 \0 303 275 f i e d b y B u 0055640 t t e r f i e l d , M a r c h 0055660 1 0 , 1 9 8 0 4 : 3 9 0055700 P M \r / / - I n i t B C P L 0055720 , p r i n t d a t e o f 0055740 M a r c h 1 0 , 1 9 8 0 - 0055760 3 / 1 0 \r / / - R e s t a 0056000 r t B C P L , a d d C o u n 0056020 t e r J u n t a a n d a d d 0056040 R e s t a r t A f t e r C o u 0056060 n t e r J u n t a - 1 / 8 \r 0056100 / / - c o n v e r t t o 0056120 O S 1 7 : g e t b c p l f 0056140 i l e s . d a n d r e m o v 0056160 e n o L o g - 1 / 7 / 8 0 0056200 \r / / - i n c o r p o r a t 0056220 e P a x t 376 001 \0 s \n o n ' s 0056240 G e t F i l e M a x i n c r e 0056260 a s e f r o m 2 5 t o 5 0056300 0 - 5 / 8 \r / / - a d d 0056320 R e s t a r t B C P L - 5 0056340 / 5 \r / / - I n i t B C P L 0056360 , c h a n g e d a t e - 0056400 5 / 4 \r / / - R e a d C O M 0056420 C M , a d d a r g u m e n t 0056440 a n d r e s u l t ; a n d 0056460 a d d C l o s e C O M C M 0056500 - 5 / 4 \r / / - R e a d C 0056520 O M C M , a d d m i n u s 0056540 s w i t c h e s - 2 / 2 / 7 0056560 9 \r \r g e t " b c p l x " \r g 0056600 e t " b c p l i o x " \r g e t 0056620 " s t r e a m s . d 376 001 \0 003 274 0056640 " \r g e t " a l t o f i l e s 0056660 y s . d " \r g e t " s y s d e 0056700 f s . d " \r g e t " b c p l f 0056720 i l e s . d " \r \r / / O u t g o 0056740 i n g p r o c e d u r e s \r e 0056760 x t e r n a l \r [ \r o p 0057000 e n f i l e \r I n i t T o R 0057020 e a d \r ] \r \r \r / / I n c 0057040 o m i n g O S p r o c e d u 0057060 r e s \r e x t e r n a l [ \r \t 0057100 O p e n F i l e \r \t C l o s e s 0057120 \r \t G e t s \r \t P u t s \r \t F i 0057140 l e P o s \r \t S e t F i l e P o 0057160 s \r \t R e s e t s \r \t E n d o f 0057200 s \r \t T r u n c a t e D i s k S 0057220 t r e a m \r \t W r i t e B l o c 0057240 376 001 \0 Y 1 k \r \t R e a d B l o c 0057260 k \r \t W s \r \t C a l l S w a t \r 0057300 \t G e t C u r r e n t F a \r \t J 0057320 u m p T o F a \r \t M o v e B l o 0057340 c k \r \r \t k e y s \r \t d s p \r \t 0057360 f p C o m C m \r \t ] \r \r m a n i 0057400 f e s t [ \r \t z f r a m e m a 0057420 x = # 3 3 5 \r \t z f r a m e 0057440 n e x t = # 3 3 6 \r \t z f r 0057460 a m e f i r s t = # 3 3 7 \r 0057500 \r \t w a i t d e f a u l t = 5 \r 0057520 \t ] \r \r s t a t i c [ 0057540 c s t r e a m = 0 ] 0057560 / / u s e d b y R e a d C 0057600 O M C M a n d C l o s e C O 0057620 M C M \r s t a t i c [ B c p 0057640 l R u n C 376 001 \0 344 326 f a ; B c 0057660 p l O v e r l a y C n t ; B c 0057700 p l P a r a m V e c ] \r \r / / 0057720 T h e f i r s t 4 w o r 0057740 d s o f p a r a m e t e r 0057760 v e c t o r a r e u s e d 0060000 f o r P C ' s \r / / n a m e 0060020 d A , B , C , D - - s e e 0060040 l o a d b c p l . c m . T 0060060 h e n e x t l F P * 3 a r 0060100 e \r / / u s e d f o r F P 0060120 ' s f o r t h e t h r e e 0060140 t e m p o r a r y f i l e s 0060160 ( B c p l . S c r a t c h * ) 0060200 \r m a n i f e s t F P P a 0060220 r a m O f f s e t = 4 \r \r l e t 0060240 I n i t B C P L ( 376 001 \0 3 261 p 0060260 a r a m v e c , n i l , c f a ) 0060300 b e \r [ \r T T O s t r 0060320 e a m = - 1 \r T T I s t 0060340 r e a m = - 1 \r O s t r 0060360 e a m = - 1 ; I s t r e a 0060400 m = - 1 ; \r V e r s i o 0060420 n = ( 2 l s h i f t 8 ) 0060440 + 2 \r S W A l t o = 0060460 t r u e / / d e f a u l t 0060500 - - c o m p i l e A L T O 0060520 c o d e \r W r i t e S ( " A 0060540 l t o B C P L o f M a r c 0060560 h 1 0 , 1 9 8 0 * N " ) \r 0060600 D i c t F r e e L i m i t = 0060620 p a r a m v e c ! 1 - 1 \r 0060640 T r e e F r e e L i m i t = 376 0060660 001 \0 363 344 p a r a m v e c ! 2 - 0060700 1 \r C o d e F r e e L i m i 0060720 t = p a r a m v e c ! 3 - 1 0060740 \r F r e e M a x = D i c 0060760 t F r e e L i m i t \r F i l 0061000 e N a m e L e n g t h = 4 0 0061020 / / * D C S . . . \r G e 0061040 t F i l e M a x = 5 0 \r / / 0061060 S a v e C F A , a n d r 0061100 e m e m b e r t h a t i t 0061120 d e n o t e s o v e r l a y 0061140 0 \r B c p l O v e r l a y C 0061160 n t = 0 \r B c p l R u n C f 0061200 a = c f a \r B c p l P a r a 0061220 m V e c = p a r a m v e c \r \r / 0061240 / C A L L T H E C O M P I 0061260 L E R \r 376 001 \0 220 302 M a i n ( 0061300 p a r a m v e c ) \r \r ] \r \r 0061320 a n d R e s t a r t B C P L ( 0061340 d e l e t e P o s , c o p y P 0061360 o s ) b e \r [ \r l 0061400 e t s = o p e n N l o g ( 0061420 " C O M . C M " , k s T y p e 0061440 R e a d W r i t e , f p C o m 0061460 C m ) ; \r l e t d e l e 0061500 t e = c o p y P o s - d 0061520 e l e t e P o s ; \r l e t 0061540 p = c o p y P o s ; \r 0061560 [ \r S e t F 0061600 i l e P o s ( s , 0 , p ) ; 0061620 i f E n d o f s ( s ) t h 0061640 e n b r e a k ; l e t c 0061660 = G e t s ( s ) 376 001 \0 = 367 ; \r 0061700 S e t F i l e P o s 0061720 ( s , 0 , p - d e l e t 0061740 e ) ; P u t s ( s , c ) ; \r 0061760 p = p + 1 ; 0062000 \r ] r e p e a t \r 0062020 S e t F i l e P o s ( s , 0062040 0 , p - d e l e t e ) ; 0062060 T r u n c a t e D i s k S t r 0062100 e a m ( s ) ; C l o s e s ( s 0062120 ) ; \r C o u n t e r J u n 0062140 t a ( R e s t a r t A f t e r C 0062160 o u n t e r J u n t a ) \r ] 0062200 \r \r a n d R e s t a r t A f t 0062220 e r C o u n t e r J u n t a ( ) 0062240 b e \r [ \r l e t 0062260 s = o p e n N l o g ( 0 376 001 0062300 \0 333 207 , k s T y p e R e a d O 0062320 n l y , l v B c p l R u n C 0062340 f a > > C F A . f p ) ; \r 0062360 C a l l S u b s y s ( s , 0 , 0062400 0 , B c p l P a r a m V e c 0062420 ) ; \r ] \r \r a n d I n i 0062440 t T o R e a d ( x ) b e \r 0062460 [ \r r e t u r n \r ] \r \r 0062500 a n d s y s c a l l ( c a l l 0062520 , a c ) = v a l o f \r [ \r 0062540 C a l l S w a t ( " U n e x 0062560 p e c t e d S Y S C A L L " ) 0062600 \r ] \r \r a n d R e a d c h ( s 0062620 t r e a m , l v c ) b e \r [ 0062640 \r r v l v c = s t r e a m 0062660 e q - 1 ? \r \t G e t s ( k e 0062700 y s ) 376 001 \0 372 026 , \r \t ( E n d o 0062720 f s ( s t r e a m ) ? # 7 7 0062740 7 , G e t s ( s t r e a m ) 0062760 ) \r ] \r \r a n d W r i t e c h 0063000 ( s t r e a m , c ) b e \r [ 0063020 \r i f s t r e a m e q - 1 0063040 t h e n s t r e a m = d s p 0063060 \r P u t s ( s t r e a m , c ) 0063100 \r ] \r \r a n d W W ( c h ) 0063120 b e \r [ \r s t a t i c [ 0063140 n e w l i n e c o u n t = 0 0063160 ] \r l e t n e w l i n e 0063200 = c h e q $ * n \r t 0063220 e s t n e w l i n e \r i f 0063240 n o t n e w l i n e c o u n t 0063260 = 0 \r i f s o [ i 0063300 f n e w l i n 376 001 \0 020 ~ e c o 0063320 u n t g e 2 r e t u r n \r 0063340 \t n e w l i n e c o u n t 0063360 = n e w l i n e c o u n t + 0063400 1 \r \t ] \r \r i f S W O 0063420 n e C a s e d o \r i f 0063440 $ a l e c h & c h l 0063460 e $ z d o c h = c h 0063500 + ( $ A - $ a ) \r \r t e s 0063520 t O s t r e a m e q - 1 \r 0063540 t h e n \r \t [ \t P u t s ( d 0063560 s p , c h ) \r \t i f n e w l 0063600 i n e & S W W a i t d o 0063620 W a i t ( ) \r ] \r 0063640 o r \r \t [ \t P u t s ( O s t r e 0063660 a m , c h ) \r \t i f n e w 0063700 l i n e d o \r \t [ 376 001 \0 0063720 356 263 s t a t i c [ l a s t f 0063740 o r m f e e d = 0 ] \r \t 0063760 i f P o s i t i o n ( O 0064000 s t r e a m ) g r l a s t f 0064020 o r m f e e d + # 2 0 0 0 0 d 0064040 o \r \t \t [ l a s t f o r m f e 0064060 e d = P o s i t i o n ( O s 0064100 t r e a m ) ; W W ( # 1 4 ) 0064120 ] \r \t ] \r ] \r 0064140 ] \r \r a n d W a i t ( ) b e 0064160 \r [ \r s t a t i c [ w a 0064200 i t c o u n t = w a i t d e 0064220 f a u l t ] \r w a i t c o 0064240 u n t = w a i t c o u n t 0064260 - 1 \r i f w a i t c o u 0064300 n t n e 0 r e t u r n \r 0064320 w 376 001 \0 246 L a i t c o u n t = 0064340 w a i t d e f a u l t \r W s 0064360 ( " T y p e a n y c h a r a 0064400 c t e r t o p r o c e e d : 0064420 " ) \r G e t s ( k e y s ) \r 0064440 ] \r \r a n d R e a d w o r d 0064460 ( s t r e a m , l v w ) b e 0064500 \r [ \r r v l v w = ( G e 0064520 t s ( s t r e a m ) l s h i f 0064540 t 8 ) + G e t s ( s t r 0064560 e a m ) \r ] \r \r / / d i f f 0064600 e r e n t f r o m R e a d w 0064620 o r d i n D O S \r a n d R 0064640 e a d W o r d ( s t r e a m ) 0064660 = v a l o f \r [ \r l e 0064700 t w = n i l \r R e a d 0064720 w o r d ( s t 376 001 \0 265 324 r e a m 0064740 , l v w ) \r r e s u l t 0064760 i s w \r ] \r \r a n d R e 0065000 a d a d d r ( s t r e a m , l 0065020 v a ) b e \r [ R e a d a d d 0065040 r = R e a d w o r d \r R 0065060 e a d w o r d ( s t r e a m , 0065100 l v a ) \r ] \r \r a n d W r i 0065120 t e w o r d ( s t r e a m , w 0065140 ) b e \r [ \r P u t s ( s t r e 0065160 a m , w r s h i f t 8 ) \r 0065200 P u t s ( s t r e a m , w 0065220 ) \t / / O S w i l l m a s 0065240 k l o w 8 b i t s \r ] \r 0065260 \r / / d i f f e r e n t f r 0065300 o m W r i t e w o r d i n 0065320 D O S \r a n d W r i t 376 001 \0 204 0065340 372 e W o r d ( s t r e a m , w 0065360 ) b e W r i t e w o r d ( s 0065400 t r e a m , w ) \r \r a n d W r 0065420 i t e a d d r ( s t r e a m , 0065440 a ) b e \r [ W r i t e a d d 0065460 r = W r i t e w o r d \r 0065500 W r i t e w o r d ( s t r e a m 0065520 , a ) \r ] \r \r a n d d o s 0065540 p o i n t e r ( b c p l n a m e 0065560 , d o s n a m e ) b e \r 0065600 C a l l S w a t ( " d o s p o i 0065620 n t e r u n e x p e c t e d l 0065640 y c a l l e d " ) \r \r a n d 0065660 R e a d S e q u e n t i a l ( s 0065700 t r e a m , w d , c t ) b e \r 0065720 [ \r / / m u s t 0065740 s 376 001 \0 ` V t a r t o n c o 0065760 r e , m e m o r y w o r d 0066000 b o u n d a r i e s \r / / 0066020 c t m u s t b e e v e n 0066040 i f s u b s e q u e n t c 0066060 a l l s a r e t o w o r k 0066100 \r R e a d B l o c k ( s t 0066120 r e a m , w d , c t ) \r 0066140 ] \r \r a n d W r i t e S e q 0066160 u e n t i a l ( s t r e a m , w 0066200 d , c t ) b e \r [ \r 0066220 / / m u s t s t a r t o 0066240 n c o r e , m e m o r y w 0066260 o r d b o u n d a r i e s \r 0066300 / / c t m u s t b e 0066320 e v e n i f s u b s e q u e 0066340 n t c a l 376 001 \0 X 342 l s a r 0066360 e t o w o r k \r W r i 0066400 t e B l o c k ( s t r e a m , 0066420 w d , c t ) \r ] \r \r a n 0066440 d o p e n f i l e ( n a m e , 0066460 t y p ; n u m a r g s n ) 0066500 = v a l o f \r [ i f n a 0066520 m e e q 0 r e s u l t i s 0066540 - 1 \r i f n a m e ! 0 0066560 e q 0 r e s u l t i s - 1 0066600 \r \r i f n e q 1 t h e n 0066620 t y p = k s T y p e R e a d W 0066640 r i t e \r l e t r = O p e 0066660 n F i l e ( n a m e , t y p , 0066700 1 , ( ( t y p e q k s T 0066720 y p e R e a d O n l y ) ? v e 0066740 r L a t e s t , v e 376 001 \0 336 v 0066760 r L a t e s t C r e a t e ) ) \r 0067000 i f r e q 0 t h e n [ 0067020 W s ( " C a n ' t o p e n 0067040 f i l e : " ) ; E r r o r ( n 0067060 a m e ) ] \r r e s u l t i s 0067100 r \r ] \r \r a n d O p e n I n p 0067120 u t ( n a m e ) = o p e n f 0067140 i l e ( n a m e , k s T y p e 0067160 R e a d O n l y ) \r \r a n d O 0067200 p e n O u t p u t ( n a m e ) 0067220 = o p e n f i l e ( n a m e , 0067240 k s T y p e W r i t e O n l y 0067260 ) \r \r a n d c l o s e c h a n 0067300 n e l ( c h n l ) b e C l o 0067320 s e s ( c h n l ) \r \r a n d P 0067340 o s i t i o n ( c h n l ) = 0067360 376 001 \0 253 J F i l e P o s ( c h n 0067400 l ) \r \r a n d R e p o s i t i 0067420 o n ( c h a n n e l , p o s ) 0067440 b e S e t F i l e P o s ( c 0067460 h a n n e l , 0 , p o s ) \r 0067500 \r a n d R e s e t S t r e a m 0067520 ( c h a n n e l ) b e R e s 0067540 e t s ( c h a n n e l ) \r \r a n 0067560 d I s F i l e ( n a m e ) = 0067600 v a l o f \r [ \r l e t s = 0067620 O p e n F i l e ( n a m e , 0067640 k s T y p e R e a d O n l y ) ; 0067660 i f s e q 0 t h e n 0067700 r e s u l t i s f a l s e \r C 0067720 l o s e s ( s ) ; r e s u l t 0067740 i s t r u e \r ] \r \r / / O p e 0067760 n a f 376 001 \0 253 034 i l e p o 0070000 s s i b l e f r o m F P , 0070020 a n d n o l o g g i n g . . 0070040 . . \r a n d o p e n N l o g ( 0070060 n m , t y p , f p ) = v 0070100 a l o f \r [ \r l e t s = O 0070120 p e n F i l e ( n m , t y p , 0070140 1 , 0 , f p ) \r i f 0070160 s e q 0 t h e n C a l l 0070200 S w a t ( " C a n n o t o p e 0070220 n v i t a l f i l e " , n 0070240 m ) \r r e s u l t i s s \r 0070260 ] \r \r a n d O p e n T e m p ( 0070300 c h ) = v a l o f \r [ \r 0070320 l e t n a m e = F i l e N 0070340 a m e L e n g t h / 2 ; D v e 0070360 c ( O p e n T e m p 376 001 \0 ? C , 0070400 l v n a m e ) \r U n p a c 0070420 k s t r i n g ( " B c p l . S c 0070440 r a t c h 0 " , f i l e n a m 0070460 e ) \r f i l e n a m e ! ( f 0070500 i l e n a m e ! 0 ) = c h \r 0070520 F i x F i l e N a m e ( n a 0070540 m e , " " , " " ) \r / / S 0070560 p e e d u p o p e n i n g 0070600 t h e s e f i l e s : \r c 0070620 o m p i l e i f l F P * 3 + F 0070640 P P a r a m O f f s e t g r 0070660 2 5 t h e n [ f o o = n i 0070700 l ] \r l e t f r o m F p 0070720 = B c p l P a r a m V e c + ( 0070740 s e l e c t o n c h i n t o 0070760 \r \t [ \r \t c a s e $ l : F 376 0071000 001 \0 235 271 P P a r a m O f f s e t 0071020 \r \t c a s e $ d : F P P a r 0071040 a m O f f s e t + l F P \r \t c a 0071060 s e $ c : F P P a r a m O f 0071100 f s e t + l F P * 2 \r \t d e f a 0071120 u l t : C a l l S w a t ( " t 0071140 e m p " ) \r \t ] ) \r l e t 0071160 f p = v e c l F P \r M o 0071200 v e B l o c k ( f p , f r o m 0071220 F p , l F P ) \r l e t s 0071240 = o p e n N l o g ( n a m e , k 0071260 s T y p e R e a d W r i t e , f 0071300 p ) \r f o r i = 0 t o 0071320 l F P - 1 d o i f f p ! i 0071340 n e f r o m F p ! i t h e 0071360 n \r \t [ \r \t M o v e B l o c k ( 0071400 f r o m 376 001 \0 327 ( F p , f p , 0071420 l F P ) \r \t l e t t = o p e 0071440 n N l o g ( 0 , k s T y p e R 0071460 e a d W r i t e , l v B c p 0071500 l R u n C f a > > C F A . f p ) 0071520 \r \t S e t F i l e P o s ( t , 0071540 0 , ( o f f s e t S V . B L 0071560 V / 1 6 ) * 2 ) \r \t W r i t e B 0071600 l o c k ( t , B c p l P a r a 0071620 m V e c , ( s i z e B L V . 0071640 o v e r l a y A d d r e s s / 1 0071660 6 ) ) \r \t C l o s e s ( t ) \r \t 0071700 b r e a k \r \t ] \r r e s u l 0071720 t i s s \r ] \r \r a n d O v e 0071740 r l a y ( n a m e ) b e \r [ \r 0071760 l e t h = v e c 1 6 0072000 \r U n p a c k 376 001 \0 230 236 s t 0072020 r i n g ( n a m e , h ) \t \t / 0072040 / F i n d o u t w h i c h 0072060 o n e \r l e t c = h ! ( h 0072100 ! 0 ) \r l e t o v N u m = 0072120 s e l e c t o n c i n t o \r 0072140 \t [ \r \t c a s e $ L : 1 \r \t 0072160 c a s e $ C : 2 \r \t c a s e 0072200 $ S : 3 \r \t c a s e $ T : 0072220 4 \r \t c a s e $ G : 5 \r \t 0072240 d e f a u l t : C a l l S w a 0072260 t ( " B a d o v e r l a y n 0072300 a m e " ) \r \t ] \r l e t s 0072320 = o p e n N l o g ( 0 , k 0072340 s T y p e R e a d O n l y , l 0072360 v B c p l R u n C f a > > C F 0072400 A . f p ) \r J u m p T o 376 001 0072420 \0 234 ] F a ( s , l v B c p l 0072440 R u n C f a > > C F A . f a ) \r 0072460 \t [ \r \t R e a d B l o c k ( s , 0072500 h , 1 6 ) \r \t R e a d B l o 0072520 c k ( s , h ! 0 , h ! 1 ) \r 0072540 \t l e t e x t r a = ( h ! 4 ) 0072560 & # 3 7 7 \t \t / / M o r e t o 0072600 r e a d t o f i n i s h 0072620 p a g e \r \t i f e x t r a t 0072640 h e n \r \t f o r i = e x t 0072660 r a * 2 t o 5 1 1 d o u 0072700 n l e s s E n d o f s ( s ) 0072720 t h e n G e t s ( s ) \r \t G e 0072740 t C u r r e n t F a ( s , l v 0072760 B c p l R u n C f a > > C F A 0073000 . f a ) \r \t B c p l O v e r l a 0073020 y C n 376 001 \0 + t = B c p l O v 0073040 e r l a y C n t + 1 \r \t ] r e 0073060 p e a t u n t i l B c p l O v 0073100 e r l a y C n t e q o v N u 0073120 m \r C l o s e s ( s ) \r ] 0073140 \r \r a n d H e l p ( M e s s a 0073160 g e ) b e \r [ \r W r i t e S ( 0073200 M e s s a g e ) \r C a l l S w a 0073220 t ( " H e l p c a l l e d " , 0073240 M e s s a g e ) \r ] \r \r a n d 0073260 C l o s e C O M C M ( ) b e 0073300 [ C l o s e I n p u t ( c s t 0073320 r e a m ) ; c s t r e a m = 0073340 0 ; ] \r \r a n d R e a d C 0073360 O M C M ( f i l e p o s ; n u 0073400 m a r g s n a ) = v a l 0073420 o f \r [ \t / / r 376 001 \0 033 305 e a d 0073440 t h e n e x t n a m e a 0073460 n d s w i t c h l i s t f 0073500 r o m C O M . C M \r i f 0073520 c s t r e a m e q 0 d o 0073540 c s t r e a m = o p e n N l o g 0073560 ( " C O M . C M " , k s T y p 0073600 e R e a d O n l y , f p C o m 0073620 C m ) \r i f n a g e 1 0073640 t h e n S e t F i l e P o s 0073660 ( c s t r e a m , 0 , f i l 0073700 e p o s ) \r f i l e p o s 0073720 = F i l e P o s ( c s t r e a 0073740 m ) \r \r f i l e n a m e ! 0 , 0073760 s w ! 0 = 0 , 0 \r l e t n 0074000 o s w i t c h e s , n o t o k 0074020 e n , i = t r u e , 376 001 \0 0074040 210 305 t r u e , 1 \r \t [ t o k e \r 0074060 \t R e a d c h ( c s t r e a m , 0074100 l v f i l e n a m e ! i ) \r 0074120 \t s w i t c h o n f i l e n a 0074140 m e ! i i n t o \r \r \t [ \r \t 0074160 c a s e $ * S : i f n o 0074200 t o k e n t h e n l o o p ; 0074220 b r e a k / / m a y b e g 0074240 i n w i t h b l a n k s \r 0074260 \r \t c a s e $ * N : u n 0074300 l e s s n o t o k e n d o 0074320 b r e a k \t / / o t h e r w i s 0074340 e f a l l t h r u a n d \r 0074360 \t i = 1 \t \t / / f o r c e 0074400 i t t o l o o k l i k e 0074420 t h e b e g i n n i n g \r \t c 0074440 a s 376 001 \0 261 321 e # 7 7 7 : \r \t 0074460 i f i e q 1 t h e n [ 0074500 \t / / e n d o f c o m . c m ; 0074520 b e g i n n i n g o f l i 0074540 n e \r \t \t C l o s e I n p u t ( 0074560 c s t r e a m ) \r \t \t c s t r e 0074600 a m = 0 \r \t \t f i l e n a m 0074620 e ! 0 = - 1 \r \t \t r e s u l 0074640 t i s f i l e p o s ] \r \t b 0074660 r e a k \r \r \t c a s e $ / : 0074700 n o s w i t c h e s = f 0074720 a l s e ; b r e a k \r \r \t d 0074740 e f a u l t : \r \t i f i g r 0074760 F i l e N a m e L e n g t h 0075000 d o E r r o r ( " f i l e n 0075020 a m e t o o l o n g " ) \r \t 0075040 i = i + 376 001 \0 h a 1 ; 0075060 n o t o k e n = f a l s e \r 0075100 \t ] \r \t ] t o k e r e p e a 0075120 t \r \r f i l e n a m e ! 0 = 0075140 i - 1 \r i f n o s w i t 0075160 c h e s t h e n r e s u l t 0075200 i s f i l e p o s \r \r l e t 0075220 j , c = 1 , n i l ; 0075240 n o t o k e n = t r u e ; 0075260 l e t m i n u s = f a l s 0075300 e ; \r [ s w l o o p \r R e a d c 0075320 h ( c s t r e a m , l v c ) 0075340 \r i f c g e $ a & c 0075360 l e $ z t h e n c = c - $ 0075400 a + $ A \r s w i t c h o n c 0075420 i n t o \r \t [ s w c a s e s \r \t 0075440 c a s e $ * S : i f 376 001 \0 8 0075460 6 n o t o k e n t h e n l 0075500 o o p / / o r f a l l 0075520 t h r o u g h t o b r e a k 0075540 \r \t c a s e $ * N : c a s e 0075560 # 3 7 7 : b r e a k \r \t c 0075600 a s e $ / : l o o p \r \t c a 0075620 s e $ - : m i n u s = t 0075640 r u e ; l o o p \r \t c a s e 0075660 $ A t o $ Z : n o t o k e 0075700 n = f a l s e \r \t s w ! j 0075720 = ( m i n u s ? - c , c 0075740 ) ; j = j + 1 ; m i 0075760 n u s = f a l s e ; \r \t ] s 0076000 w c a s e s \r ] s w l o o p 0076020 r e p e a t \r s w ! 0 = j 0076040 - 1 \r r e s u l t i s f i l 0076060 e 376 001 \0 364 y p o s \r ] \r \r \r a 0076100 n d I n i t F r e e ( c o d e 0076120 t o p ) b e \r [ / / e x t e 0076140 r n a l [ F r e e B o t t o m 0076160 ] / / R e s e t f r e e 0076200 s p a c e b o t t o m a n d 0076220 z f r a m e m a x \r F r e 0076240 e l i s t P = c o d e t o p 0076260 + 1 \r r v z f r a m e 0076300 m a x = c o d e t o p + 0076320 1 ] \r \r a n d N e w v e c 0076340 ( n ) = v a l o f \r [ n v \r 0076360 / / e x t e r n a l [ M a x T 0076400 o p ] \r m a n i f e s t [ s 0076420 t a c k o f f s e t = 4 ] 0076440 \r l e t o l d v , n e w v 0076460 = F r e e 376 001 \0 255 R l i s t P 0076500 , F r e e l i s t P + n + 0076520 1 \r \r i f ( n e w v < 0076540 0 ? t r u e , / / i f 0076560 n e w v i n u p p e r m e 0076600 m o r y , a l l i s l o s 0076620 t \r ( ( l v n ) - s 0076640 t a c k o f f s e t < 0 ? 0076660 f a l s e , / / i f s t 0076700 a c k s t i l l i n u p p 0076720 e r \r \t \t \t \t 0076740 / / m e m o r y , 0076760 a l l i s w e l l \r 0077000 ( n e w v g r ( l v n 0077020 - s t a c k o f f s e t ) 0077040 ) ) ) / / e l s e , n o 0077060 r m a l t e s t \r 376 \0 246 B 351 0077100 t h e n [ \r \t r v z f r a m 0077120 e m a x = r v z f r a m e 0077140 m a x - # 1 0 0 0 \r \t E r r 0077160 o r ( " O u t o f F r e e 0077200 S t o r a g e : P r o g r a m 0077220 t o o B i g " ) \r 0077240 ] \r \r F r e e l i s t P = 0077260 n e w v ; r v z f r a m e m 0077300 a x = F r e e l i s t P \r 0077320 \r \r r e s u l t i s o l d v 0077340 \r ] n v \r \r 377 \0 \0 B C P L D O S 0077360 . b c p l \0 373 226 W 352 * \0 \0 376 001 \0 0077400 036 356 / / B C P L D O S . b c p 0077420 l - B C P L D O S - s p e 0077440 c i f i c f u n c t i o n s \r 0077460 / / C o p y r i g h t X e r 0077500 o x C o r p o r a t i o n 1 0077520 9 8 0 \r / / S w i n e h a r t 0077540 , 6 M a y 7 7 , f i l e 0077560 l e n g t h s - > s t a t 0077600 i c s \r / / I n i t B C P L 0077620 c a l l s M a i n < S W I N E 0077640 H A R T > B C P L D O S . ; 5 0077660 4 - A P R - 7 5 0 7 : 0077700 5 6 : 1 9 E D I T B Y 0077720 S W I N E H A R T \r / / p u 0077740 l l S W A l t o c . . . i m e 0077760 < S W I N E H A R T > B C P L 0100000 D O 376 001 \0 367 > S . ; 3 2 0100020 8 - M A R - 7 5 1 3 : 2 2 : 2 0100040 9 E D I T B Y S W I 0100060 N E H A R T \r \r \r g e t " b c 0100100 p l x " \r g e t " b c p l i o 0100120 x " \r \r e x t e r n a l [ \r b 0100140 u f f e r i o \r d i s p l a y s 0100160 t r e a m \r R e a d c h K L U D 0100200 G E \r s t r e a m v e c \r s y s 0100220 c a l l \r W r i t e c h K L U D 0100240 G E \r I n i t T o R e a d \r o p 0100260 e n f i l e \r ] \r \r m a n i f e 0100300 s t [ \r \t z f r a m e m a x 0100320 = # 3 3 5 \r \t z f r a m e n e 0100340 x t = # 3 3 6 \r \t z f r a m 0100360 e f i r s t = # 3 3 7 \r \t z 0100400 r e t u r n 376 001 \0 237 5 = # 3 0100420 6 6 \r \t ] \r \r / / s y 0100440 s t e m - d e p e n d e n t m 0100460 a n i f e s t s , u s e d b 0100500 y I n i t B C P L \r \r m a n i 0100520 f e s t \r [ \r S T R 0100540 E A M s i z e = ( ( s i z e 0100560 S T R E A M + 1 5 ) / 1 6 0100600 ) \r s t r e a m v e c s i 0100620 z e = 7 \r ] \r s t r u 0100640 c t u r e [ b l a n k b i 0100660 t 1 5 ; O D D B I T b i t 0100700 1 ] \r \r l e t I n i t B C 0100720 P L ( p a r a m v e c ) b e \r 0100740 [ \r V e r s i o n = 0100760 ( 2 l s h i f t 8 ) + 0 0101000 \r S W A l t o = 376 001 \0 310 0101020 224 f a l s e / / d e f a u l 0101040 t - - c o m p i l e N O V 0101060 A c o d e \r \r T T O s t r 0101100 e a m = O p e n O u t p u t 0101120 ( 0 ) \r T T I s t r e a m 0101140 = O p e n I n p u t ( 0 ) \r 0101160 O s t r e a m = T T O s t 0101200 r e a m ; I s t r e a m = 0101220 T T I s t r e a m ; \r \r l e 0101240 t v = v e c s t r e a m 0101260 v e c s i z e \r s t r e a m 0101300 v e c = v \r l e t s t 0101320 r e a m t a b l e s = v e c 0101340 ( s t r e a m v e c s i z e + 0101360 1 ) * S T R E A M s i z e \r \r 0101400 F r e e M a x = p a r a m 0101420 v 376 001 \0 240 270 e c ! # 3 7 - 1 \r 0101440 / / L i m i t s a r e M a 0101460 x ' s \r D i c t F r e e L 0101500 i m i t = F r e e M a x - 0101520 ( p a r a m v e c ! 1 + 1 ) \r 0101540 T r e e F r e e L i m i t 0101560 = F r e e M a x - ( p a r 0101600 a m v e c ! 2 + 1 ) \r C o d 0101620 e F r e e L i m i t = F r e 0101640 e M a x - ( p a r a m v e c 0101660 ! 3 + 1 ) \r F i l e N a m e 0101700 L e n g t h = 2 0 \r G e 0101720 t F i l e M a x = 1 2 \r 0101740 f o r i = 0 t o 7 d 0101760 o \r [ \r s t 0102000 r e a m v e c ! i = s t r e 0102020 a m t a b l 376 001 \0 x 352 e s \r 0102040 s t r e a m t a b l e s 0102060 = s t r e a m t a b l e s + 0102100 S T R E A M s i z e + 1 \r 0102120 ] \r \r \r / / C A L L 0102140 T H E C O M P I L E R \r 0102160 M a i n ( p a r a m v e c ) \r \r 0102200 ] \r \r a n d s y s c a l l 0102220 ( c a l l , a c ) = v a l 0102240 o f \r [ l e t e r r = s 0102260 y s c a l l p r o c ( c a l l , 0102300 a c ) \r i f e r r e q 0102320 - 1 r e s u l t i s 0 \r 0102340 i f e r r e q 0 d o 0102360 e r r = # 1 5 \r r e s 0102400 u l t i s e r r \r ] \r \r a n 0102420 d P o s i t i o n ( 376 001 \0 202 277 0102440 s t r e a m ) = v a l o f \r 0102460 [ \r i f s t r e a m l s 0102500 0 t h e n r e s u l t i s 0102520 - 1 \r l e t c h a n n e 0102540 l = s t r e a m > > S T R E 0102560 A M . c h a n n e l \r u n l 0102600 e s s 0 l e c h a n n e l 0102620 & c h a n n e l l e 7 0102640 r e s u l t i s - 1 \r l e 0102660 t v = # 4 3 0 / / D O 0102700 S c h a n n e l t a b l e 0102720 i n p a g e o n e \r l e 0102740 t t = v ! c h a n n e l 0102760 / / D O S d e s c r i p t o r 0103000 f o r t h e c h a n n e l 0103020 \r l e t b y t e n u m = 0103040 376 001 \0 A 035 t ! # 2 5 / / w o 0103060 r d 2 5 i s b y t e n u 0103100 m b e r i n c u r r e n t 0103120 b l o c k \r l e t b l o k 0103140 n u m = t ! # 2 4 / / w o 0103160 r d 2 4 i s c u r r e n t 0103200 b l o c k n u m b e r \r 0103220 l e t d o s p o s = ( ( b 0103240 l o k n u m * 2 5 5 ) l s 0103260 h i f t 1 ) + b y t e n u 0103300 m \r i f s t r e a m > > S 0103320 T R E A M . a c t i o n e q 0103340 w r i t e a c t t h e n \r 0103360 r e s u l t i s d o 0103400 s p o s + s t r e a m > > S 0103420 T R E A M . c o u n t \r i f 0103440 d o s p 376 001 \0 020 206 o s e q 0103460 0 t h e n r e s u l t i s 0103500 0 \r r e s u l t i s d o 0103520 s p o s - ( s t r e a m > > 0103540 S T R E A M . m a x - s t r 0103560 e a m > > S T R E A M . c o u n 0103600 t ) - 1 \r ] \r \r a n d b u f 0103620 f e r i o ( s t r e a m , o p 0103640 r , c o u n t ) = v a l o 0103660 f \r [ \r s y s a c ! 0 = 0103700 ( l v s t r e a m > > S T R E 0103720 A M . b y t e b u f f e r ) l 0103740 s h i f t 1 \r s y s a c ! 0103760 1 = c o u n t \r s y s 0104000 a c ! 2 = s t r e a m > > S 0104020 T R E A M . c h a n n e l \r 0104040 r e s u l t i s s 376 001 \0 \0 017 y 0104060 s c a l l ( o p r , s y s a c 0104100 ) \r ] \r \r a n d H e l p ( M e 0104120 s s a g e ) b e \r [ \r l e 0104140 t v = v e c 3 \r l e 0104160 t m = v e c 6 4 \r U 0104200 n p a c k s t r i n g ( M e s s 0104220 a g e , m ) \r f o r i 0104240 = 1 t o m ! 0 d o [ 0104260 v ! 0 = m ! i ; s y s c a 0104300 l l ( s y s p c h a r , v ) 0104320 ] \r U n p a c k s t r i n g 0104340 ( " - - H E L P * n " , m 0104360 ) \r f o r i = 1 t o 0104400 m ! 0 d o [ v ! 0 = 0104420 m ! i ; s y s c a l l ( s y s 0104440 p c h a r , v ) ] \r \r 376 0104460 001 \0 i ~ s y s d e b u g p r o c 0104500 ( ) \r \r r e t u r n \r ] \r \r 0104520 a n d R e a d c h ( s t r e a 0104540 m , l v c ) b e \r [ R c h 0104560 \r l e t n u m b y t e s 0104600 = 1 \r R e a d c h K L U D G E 0104620 : / / T H I S I S T H 0104640 E E N T R Y P O I N T F R 0104660 O M R E A D W O R D ! ! U G 0104700 H ! ! ! ! \r l e t v = 0104720 v e c 2 \r t e s t s t r 0104740 e a m e q - 1 \r i f 0104760 s o / / t t y s i m u l t 0105000 a t i o n \r f o r 0105020 i = 1 t o n u m b y t e 0105040 s d o [ s y s c a l l ( s y 0105060 s g c h 376 001 \0 207 226 a r , s y s 0105100 a c ) \r v ! i = 0105120 s y s a c ! 0 & # 3 7 7 0105140 ] \r i f n o t [ f i l 0105160 e i o / / t a l k i n 0105200 g t o a r e a l f i l e 0105220 ! \r f o r i = 1 t 0105240 o n u m b y t e s d o \r 0105260 [ m a i n l o o p \r 0105300 l e t c o u n t = s t r e 0105320 a m > > S T R E A M . c o u n t 0105340 \r i f c o u n t g 0105360 r s t r e a m > > S T R E A 0105400 M . m a x t h e n \r 0105420 [ \r l e t 0105440 e r r = b u f f e r i o ( s 0105460 t r e a m , s y 376 001 \0 g 362 s r 0105500 d s , m a x s t r e a m b y t 0105520 e s ) \r l e t n 0105540 u m = s y s a c ! 1 \r 0105560 s t r e a m > > S T R E 0105600 A M . m a x = n u m - 1 0105620 \r / / d i s p l a y s t 0105640 r e a m ( s t r e a m ) ; W r 0105660 i t e S ( " e r r = " ) ; W r i 0105700 t e O ( e r r ) ; W W ( $ * N ) 0105720 \r i f e r r t 0105740 h e n u n l e s s e r r e 0105760 q 6 d o s y s c a l l e r 0106000 r o r ( s y s r d s , s y s a 0106020 c , \r s t r e a m 0106040 ) \r i f n u m 0106060 e q 0 t h e n [ \r 376 001 0106100 \0 347 U v ! 1 , 0106120 v ! 2 = # 7 7 7 , # 7 7 0106140 7 \r b r e 0106160 a k ] \r c o u n 0106200 t = 0 \r ] \r 0106220 v ! i = s t r e a m 0106240 > > S T R E A M . b y t e b u f 0106260 f e r ^ c o u n t \r s 0106300 t r e a m > > S T R E A M . c o 0106320 u n t = c o u n t + 1 \r 0106340 l o o p \r ] m 0106360 a i n l o o p \r ] f i l e i 0106400 o / / t a l k i n g 0106420 t o a r e a l f i l e ! \r 0106440 / / f o r i = 1 t o n 0106460 u m b y t e s d o [ W W ( 0106500 v ! i 376 001 \0 341 X ) ; W r i t e 0106520 O ( v ! i ) ; W W ( $ * N ) 0106540 ] \r i f n u m b y t e s 0106560 e q 1 t h e n \r 0106600 [ @ l v c = v ! 1 ; r 0106620 e t u r n ] \r v ! 2 < < 0106640 L E F T H A L F = v ! 1 \r 0106660 @ l v c = v ! 2 \r ] R c h 0106700 \r \r a n d W r i t e c h ( s t 0106720 r e a m , c h ) b e \r [ W c 0106740 h \r l e t n u m b y t e s 0106760 = 1 \r W r i t e c h K L U D 0107000 G E : / / < < < < E N 0107020 T R Y P O I N T f o r W 0107040 r i t e w o r d ! ! ! ! ( U 0107060 G H ! ! ) \r i f s t r e a m > 0107100 > S T R E A M . 376 001 \0 250 e a c t 0107120 i o n n e w r i t e a c t 0107140 t h e n [ W r i t e O ( s t 0107160 r e a m ) ; \r H e l p ( " w r i 0107200 t i n g a r e a d s t r e 0107220 a m " ) ] \r l e t v = 0107240 v e c 2 \r t e s t n u m 0107260 b y t e s e q 1 \r i f s 0107300 o v ! 1 = c h \r i f n 0107320 o t [ v ! 1 = c h < 0107340 < L E F T H A L F ; v ! 2 0107360 = c h < < R I G H T H A L F 0107400 ] \r t e s t s t r e a m e 0107420 q - 1 \r i f s o f o 0107440 r i = 1 t o n u m b y 0107460 t e s d o [ s y s a c ! 0 0107500 = v ! i \r s 376 001 \0 0107520 d T y s c a l l ( s y s p c h a 0107540 r , s y s a c ) \r ] 0107560 \r i f n o t [ f i l e i o \r 0107600 f o r i = 1 t o n u 0107620 m b y t e s d o \r [ m a i n 0107640 l o o p \r \r l e t c o u n 0107660 t = s t r e a m > > S T R 0107700 E A M . c o u n t \r i f c 0107720 o u n t g r m a x b y t e i 0107740 n d e x t h e n \r [ \r 0107760 i f b u f f e r i o ( 0110000 s t r e a m , s y s w r s , 0110020 m a x s t r e a m b y t e s ) 0110040 t h e n \r s y s c a 0110060 l l e r r o r ( s y s w r s , 0110100 s y s a c , s t r e a m ) \r 0110120 376 001 \0 361 033 c o u n t = 0110140 0 \r ] \r s t r e a 0110160 m > > S T R E A M . b y t e b u 0110200 f f e r ^ c o u n t = v ! i 0110220 \r s t r e a m > > S T R E 0110240 A M . c o u n t = c o u n t 0110260 + 1 \r l o o p \r ] 0110300 m a i n l o o p \r ] f i l e i 0110320 o \r ] W c h \r \r / / n o t e 0110340 t h i s c o d e a s s u m e 0110360 s t h e b u f f e r b e g 0110400 i n s a n d e n d s o n \r 0110420 / / e v e n w o r d b o u 0110440 n d r i e s . \r a n d R e a d 0110460 w o r d ( s t r e a m , l v w 0110500 ) b e \r [ \r i f s t r e a m 0110520 > > S T R E A 376 001 \0 212 202 M . a c 0110540 t i o n n e r e a d a c t 0110560 t h e n [ W r i t e O ( s t 0110600 r e a m ) ; \r H e l p ( " r e a 0110620 d i n g a w r i t e - s t r 0110640 e a m " ) ] \r l e t n u m 0110660 b y t e s = 2 \r l e t 0110700 c = s t r e a m > > S T R E 0110720 A M . c o u n t \r i f c < 0110740 < O D D B I T % ( c + 1 0110760 g r s t r e a m > > S T R E 0111000 A M . m a x ) t h e n g o t 0111020 o R e a d c h K L U D G E \r 0111040 @ l v w = s t r e a m > > 0111060 S T R E A M . w o r d b u f f e 0111100 r ^ ( c r s h i f t 1 ) \r 0111120 s t r e a m > > S T R 376 001 \0 326 0111140 n E A M . c o u n t = c + 0111160 2 \r r e t u r n \r l 0111200 e t v = v e c 2 5 / / 0111220 A L L O C A T E E N O U G H 0111240 S T A C K S P A C E U G H 0111260 , U G H ! ! ! \r ] \r \r a n d 0111300 R e a d a d d r ( s t r e a m , 0111320 l v a ) b e \r [ R e a d a 0111340 d d r = R e a d w o r d \r 0111360 R e a d w o r d ( s t r e a m 0111400 , l v a ) \r ] \r \r a n d W r 0111420 i t e w o r d ( s t r e a m , 0111440 w ) b e \r [ \r i f s t r e a 0111460 m > > S T R E A M . a c t i o n 0111500 n e w r i t e a c t t h e 0111520 n [ W r i t e O ( s t r e a 0111540 m 376 001 \0 256 ~ ) ; \r H e l p ( " w 0111560 r i t i n g a r e a d s t 0111600 r e a m " ) ] \r l e t n u 0111620 m b y t e s = 2 \r l e t 0111640 c = s t r e a m > > S T R 0111660 E A M . c o u n t \r i f c < < 0111700 O D D B I T % ( c + 1 0111720 g r s t r e a m > > S T R E A 0111740 M . m a x ) t h e n g o t o 0111760 W r i t e c h K L U D G E / 0112000 / g o t o i s f a s t ! 0112020 U G H ! ! ! ! ! \r s t r 0112040 e a m > > S T R E A M . w o r d 0112060 b u f f e r ^ ( c r s h i f t 0112100 1 ) = w \r s t r e a 0112120 m > > S T R E A M . c o u n t 0112140 = c + 376 001 \0 374 032 2 \r 0112160 r e t u r n \r l e t v = 0112200 v e c 2 5 / / A L L O C 0112220 A T E E N O U G H S T A C K 0112240 S P A C E U G H , U G H ! ! 0112260 ! \r ] \r \r a n d W r i t e a 0112300 d d r ( s t r e a m , a ) b 0112320 e \r [ W r i t e a d d r = 0112340 W r i t e w o r d \r W r i t 0112360 e w o r d ( s t r e a m , a ) 0112400 \r ] \r a n d W W ( c h ) b e 0112420 \r [ \r s t a t i c [ n e 0112440 w l i n e c o u n t = 0 ] 0112460 \r l e t n e w l i n e = 0112500 c h e q $ * n \r t e s 0112520 t n e w l i n e \r i f n o 0112540 t n e w l i n e c o 376 001 \0 213 G 0112560 u n t = 0 \r i f s o 0112600 [ i f n e w l i n e c o u n 0112620 t g e 2 r e t u r n \r 0112640 n e w l i n e c o u n t = 0112660 n e w l i n e c o u n t + 0112700 1 \r ] \r \r i f S W 0112720 O n e C a s e d o \r i 0112740 f $ a l e c h & c h 0112760 l e $ z d o c h = c h 0113000 + ( $ A - $ a ) \r \r t e 0113020 s t O s t r e a m e q - 1 0113040 \r t h e n \r [ s y 0113060 s a c ! 0 = c h ; s y s c 0113100 a l l ( s y s p c h a r , s y 0113120 s a c ) \r i f n e w l 0113140 i n e d o \r [ s 0113160 376 001 \0 1 \n y s a c ! 0 = # 1 0113200 2 ; s y s c a l l ( s y s p c 0113220 h a r , s y s a c ) \r 0113240 i f S W W a i t d o W 0113260 a i t ( ) ] \r ] \r 0113300 o r \r [ W r i t e c 0113320 h ( O s t r e a m , c h ) \r 0113340 i f n e w l i n e d o 0113360 \r [ s t a t i c 0113400 [ l a s t f o r m f e e d 0113420 = 0 ] \r i f 0113440 P o s i t i o n ( O s t r e a m 0113460 ) g r l a s t f o r m f e e 0113500 d + # 2 0 0 0 0 d o \r 0113520 [ l a s t f o r m f 0113540 e e d = P o s i t i o n ( O 0113560 s t r e a 376 001 \0 035 267 m ) ; W W 0113600 ( # 1 4 ) ] \r ] 0113620 \r ] \r ] \r \r a n d W 0113640 a i t ( ) b e \r [ \r s t a 0113660 t i c [ w a i t c o u n t 0113700 = 2 0 ; w a i t d e f a u l 0113720 t = 2 0 ] \r w a i t c 0113740 o u n t = w a i t c o u n t 0113760 - 1 \r i f w a i t c o 0114000 u n t n e 0 r e t u r n \r 0114020 \r l : l e t v = v e c 3 0114040 \r v ! 0 = # 7 ; s y s 0114060 c a l l ( s y s p c h a r , v 0114100 ) \r v ! 0 = $ : ; s y 0114120 s c a l l ( s y s p c h a r , 0114140 v ) \r l e t n = - 1 \r 0114160 s y s c a l l ( 376 001 \0 W 336 s 0114200 y s g c h a r , v ) \r l e 0114220 t c h = v ! 0 & # 1 7 0114240 7 \r \r m : s w i t c h o n c h 0114260 i n t o \r [ c a s e 0114300 # 1 5 : u n l e s s n e 0114320 q - 1 d o w a i t d e f a 0114340 u l t = n \r w 0114360 a i t c o u n t = w a i t d 0114400 e f a u l t \r v ! 0114420 0 = # 1 5 ; s y s c a l l 0114440 ( s y s p c h a r , v ) \r 0114460 r e t u r n \r 0114500 c a s e # 1 2 : u n l e s s 0114520 n n e - 1 d o n = 0114540 1 \r w a i t c o u 0114560 n t = n \r v 376 0114600 001 \0 315 305 ! 0 = # 1 5 ; s y 0114620 s c a l l ( s y s p c h a r , 0114640 v ) \r r e t u r n 0114660 \r c a s e # 3 3 : H 0114700 e l p ( " P A U S E " ) \r 0114720 g o t o l \r c 0114740 a s e $ 0 t o $ 9 : s y 0114760 s c a l l ( s y s p c h a r , 0115000 v ) \r n = c h 0115020 - $ 0 \r [ s 0115040 y s c a l l ( s y s g c h a r , 0115060 v ) ; c h = v ! 0 & 0115100 # 1 7 7 \r u n 0115120 l e s s $ 0 l e c h & 0115140 c h l e $ 9 b r e a k \r 0115160 s y s c a l l ( 0115200 s y s p 376 001 \0 | 022 c h a r , v 0115220 ) \r n = n 0115240 * 1 0 + ( c h - $ 0 ) \r 0115260 ] r e p e a t \r 0115300 g o t o m \r 0115320 d e f a u l t : v ! 0 = 0115340 $ ? ; s y s c a l l ( s y s 0115360 p c h a r , v ) \r 0115400 g o t o l \r ] \r ] \r 0115420 \r a n d R e a d S e q u e n t 0115440 i a l ( s t r e a m , w d , c t 0115460 ) b e \r [ \r s y s 0115500 a c ! 0 = w d l s h i f t 0115520 1 \r s y s a c ! 1 = c t 0115540 l s h i f t 1 \r s y s a 0115560 c ! 2 = s t r e a m > > S T 0115600 R E A M . c h a n 376 001 \0 314 x n e 0115620 l \r l e t e r r = s 0115640 y s c a l l ( s y s r d s , s y 0115660 s a c ) \r u n l e s s e 0115700 r r r e t u r n \r s y s 0115720 c a l l e r r o r ( s y s r d s 0115740 , s y s a c ) \r ] \r \r a n 0115760 d W r i t e S e q u e n t i a 0116000 l ( s t r e a m , w d , c t ) 0116020 b e \r [ \r s y s a c 0116040 ! 0 = w d l s h i f t 1 0116060 \r s y s a c ! 1 = c t 0116100 l s h i f t 1 \r s y s 0116120 a c ! 2 = s t r e a m > > S 0116140 T R E A M . c h a n n e l \r 0116160 l e t e r r = s y s c a 0116200 l l ( s y s w r s , s y s a 376 001 0116220 \0 ] 215 c ) \r u n l e s s 0116240 e r r r e t u r n \r s y 0116260 s c a l l e r r o r ( s y s w r 0116300 s , s y s a c ) \r ] \r \r a 0116320 n d R e a d W o r d ( s t r e 0116340 a m ) = v a l o f \r [ 0116360 \r l e t w = n i l \r 0116400 R e a d S e q u e n t i a 0116420 l ( s t r e a m , ( l v w ) , 0116440 1 ) \r r e s u l t i s w 0116460 \r ] \r \r a n d W r 0116500 i t e W o r d ( s t r e a m , w 0116520 ) b e \r W r i t e S e q 0116540 u e n t i a l ( s t r e a m , ( 0116560 l v w ) , 1 ) \r \r a n d d 0116600 o s p o i n t e r ( b c p l n a 0116620 m e , 376 001 \0 275 6 d o s n a m e 0116640 ) = v a l o f \r [ \r M o 0116660 v e s t r i n g ( b c p l n a m 0116700 e , d o s n a m e ) \r l e 0116720 t n = d o s n a m e ! 0 0116740 r s h i f t 8 \r i f ( n 0116760 & 1 ) e q 1 d o d o 0117000 s n a m e ! ( n / 2 + 1 ) = 0117020 0 \r r e s u l t i s ( d o 0117040 s n a m e l s h i f t 1 ) + 0117060 1 \r ] \r \r a n d O p e n I n p 0117100 u t ( n a m e ) = v a l o f 0117120 \r [ \r i f n a m e e q 0117140 0 r e s u l t i s - 1 \r 0117160 i f n a m e ! 0 e q 0 r 0117200 e s u l t i s - 1 \r r e s 0117220 u l t i s n e 376 001 \0 261 e w s t 0117240 r e a m ( n a m e , r e a d a 0117260 c t ) \r ] \r \r a n d O p e n 0117300 O u t p u t ( n a m e ) = v 0117320 a l o f \r [ \r i f n a m e 0117340 e q 0 r e s u l t i s - 0117360 1 \r i f n a m e ! 0 e q 0117400 0 r e s u l t i s - 1 \r \r 0117420 l e t d o s n a m e = 0117440 F i l e N a m e L e n g t h ; 0117460 D v e c ( O p e n O u t p u t , 0117500 l v d o s n a m e ) \r s 0117520 y s a c ! 0 = d o s p o i n 0117540 t e r ( n a m e , d o s n a m 0117560 e ) \r l e t d e l e t e e 0117600 r r = s y s c a l l ( s y s 0117620 d e l e t e , s y s a c 376 001 \0 0117640 311 323 ) \r i f d e l e t e e 0117660 r r u n l e s s d e l e t e 0117700 e r r e q # 1 2 d o \r 0117720 [ O s t r e a m = T T O 0117740 s t r e a m \r W r i t e 0117760 S ( " E R R O R : C A N ' T 0120000 D E L E T E F I L E * " " 0120020 ) ; W r i t e S ( n a m e ) \r 0120040 W r i t e S ( " * " * n 0120060 " ) \r f i n i s h \r 0120100 ] \r l e t c r e a t e e r 0120120 r = s y s c a l l ( s y s c 0120140 r e a t e , s y s a c ) \r 0120160 i f c r e a t e e r r d o \r 0120200 [ O s t r e a m = 0120220 T T O s t r e a m \r 0120240 376 001 \0 < $ W r i t e S ( " E 0120260 R R O R : C A N ' T C R E 0120300 A T E F I L E * " " ) ; W 0120320 r i t e S ( n a m e ) \r 0120340 W r i t e S ( " * " * n " ) 0120360 \r f i n i s h \r 0120400 ] \r r e s u l t i s n 0120420 e w s t r e a m ( n a m e , w 0120440 r i t e a c t ) \r ] \r \r a n d 0120460 O p e n T e m p ( c h , i n 0120500 p u t f l a g ; n u m a r g s 0120520 n a r g s ) = v a l o f \r 0120540 [ \r i f n a r g s e q 0120560 1 t h e n i n p u t f l a g 0120600 = f a l s e \r l e t n 0120620 a m e = F i l e N a m e L e 0120640 n g t h / 2 ; 376 001 \0 206 8 D v e 0120660 c ( O p e n T e m p , l v n a 0120700 m e ) \r U n p a c k s t r i 0120720 n g ( " $ $ $ . B 0 " , f i l 0120740 e n a m e ) \r f i l e n a m 0120760 e ! ( f i l e n a m e ! 0 ) = 0121000 c h \r F i x F i l e N a m 0121020 e ( n a m e , " " , " " ) \r 0121040 l e t c h a n n e l = 0121060 i n p u t f l a g ? O p e n I 0121100 n p u t ( n a m e ) , O p e n 0121120 O u t p u t ( n a m e ) \r r 0121140 e s u l t i s c h a n n e l \r 0121160 ] \r \r a n d R e p o s i t i 0121200 o n ( s t r e a m , p o s ) 0121220 b e \r [ \r l e t c h a n n 0121240 e l = n i l \r i 376 001 \0 001 0121260 331 f s t r e a m l s 0 r 0121300 e t u r n \r f l u s h b u f 0121320 f e r ( s t r e a m ) \r i f 0121340 P o s i t i o n ( s t r e a m 0121360 ) e q p o s t h e n r e 0121400 t u r n \r c h a n n e l = 0121420 s t r e a m > > S T R E A M . 0121440 c h a n n e l \r u n l e s s 0121460 0 l e c h a n n e l & 0121500 c h a n n e l l e 7 t h 0121520 e n r e t u r n \r l e t 0121540 b l o k n u m = ( p o s r 0121560 s h i f t 1 ) / 2 5 5 \r 0121600 l e t b y t e n u m = p 0121620 o s - ( ( b l o k n u m * 0121640 2 5 5 ) l s h i f t 1 ) \r 0121660 376 001 \0 342 223 l e t v = # 0121700 4 3 0 \r l e t t = v ! 0121720 c h a n n e l \r t ! # 2 5 0121740 = b y t e n u m \r t ! # 2 0121760 4 = b l o k n u m \r t ! 0122000 # 1 7 = t ! # 1 7 % # 4 0122020 / / s e t " f i r s t w r 0122040 i t e " b i t i n s t a t 0122060 u s w o r d \r t e s t s 0122100 t r e a m > > S T R E A M . a c 0122120 t i o n e q w r i t e a c t 0122140 \r t h e n s t r e 0122160 a m > > S T R E A M . m a x = 0122200 m a x b y t e i n d e x \r 0122220 o r r e a d b u f f 0122240 e r ( s t r e a m ) \r ] \r \r a n 0122260 d R e s e 376 001 \0 260 213 t S t r e 0122300 a m ( c h a n n e l ) b e R 0122320 e p o s i t i o n ( c h a n n e 0122340 l , 0 ) \r \r a n d I s F i l 0122360 e ( n a m e ) = v a l o f \r 0122400 [ \r l e t d o s n a m e 0122420 = F i l e N a m e L e n g t h 0122440 ; D v e c ( I s F i l e , l v 0122460 d o s n a m e ) \r s y s a 0122500 c ! 0 = d o s p o i n t e r 0122520 ( n a m e , d o s n a m e ) \r 0122540 s y s a c ! 1 = s y s a 0122560 c ! 0 \r l e t e r r = 0122600 s y s c a l l ( s y s r e n a m 0122620 e , s y s a c ) \r r e s u 0122640 l t i s e r r n e # 1 2 \r 0122660 ] \r \r a n d I n i t 376 001 \0 373 356 0122700 T o R e a d ( s t r e a m ) b 0122720 e \r [ \r i f s t r e a m > 0122740 > S T R E A M . a c t i o n e 0122760 q r e a d a c t t h e n r 0123000 e t u r n \r f l u s h b u f 0123020 f e r ( s t r e a m ) \r r e 0123040 a d b u f f e r ( s t r e a m ) 0123060 \r ] \r \r a n d o p e n f i l e 0123100 ( b c p l n a m e ) = v a l 0123120 o f \r [ \r l e t d o s n 0123140 a m e = F i l e N a m e L e 0123160 n g t h ; D v e c ( o p e n f 0123200 i l e , l v d o s n a m e ) \r 0123220 i f b c p l n a m e e q 0123240 0 r e s u l t i s - 1 \r 0123260 i f b c p l n a m e ! 0 e 0123300 376 001 \0 311 S q 0 r e s u l t i 0123320 s - 1 \r \r l e t c h a n 0123340 n e l = 7 \r l e t v 0123360 = # 4 3 0 / / D O S c h 0123400 a n n e l t a b l e i n p 0123420 a g e o n e \r f o r i 0123440 = 0 t o 7 d o \r 0123460 i f ( v ! i & # 1 0 0 0123500 0 0 0 ) n e 0 d o [ c 0123520 h a n n e l = i ; b r e a 0123540 k ] \r \r s y s a c ! 0 = 0123560 d o s p o i n t e r ( b c p l 0123600 n a m e , d o s n a m e ) \r 0123620 s y s a c ! 1 = 0 \r s 0123640 y s a c ! 2 = c h a n n e l 0123660 \r l e t e r r = s y s 0123700 c a l l ( 376 001 \0 231 L s y s o p e 0123720 n , s y s a c ) \r i f e 0123740 r r t h e n c h a n n e l 0123760 = s y s a c ! 2 + # 1 0 0 0124000 0 \r l e t s = 0 \r 0124020 f o r i = 0 t o 7 d 0124040 o / / t h e r e a r e s 0124060 e v e n c h a n n e l s p o 0124100 s s o b i l e \r [ \r 0124120 i f s t r e a m v e c ! i 0124140 l s 0 l o o p \r s 0124160 = s t r e a m v e c ! i \r 0124200 s t r e a m v e c ! i = 0124220 s + # 1 0 0 0 0 0 \r 0124240 b r e a k \r ] \r i 0124260 f s e q 0 t h e n [ 0124300 W r i t e S ( 376 001 \0 . S " 0124320 c a n ' t o p e n " ) \r 0124340 W r i t e S ( b c p l n 0124360 a m e ) \r E r r o r 0124400 ( " - - o u t o f s t r e a 0124420 m s " ) \r ] \r s 0124440 > > S T R E A M . c h a n n e l 0124460 = c h a n n e l \r s > > 0124500 S T R E A M . m a x = m a x 0124520 b y t e i n d e x \r \r r e s u l 0124540 t i s s \r ] \r \r a n d c l o 0124560 s e c h a n n e l ( s t r e a m 0124600 ) b e \r [ \r i f s t r e 0124620 a m e q - 1 r e t u r n \r 0124640 f l u s h b u f f e r ( s t 0124660 r e a m ) \r s y s a c ! 2 0124700 = s t r e a m > > S T R E A 376 0124720 001 \0 254 276 M . c h a n n e l \r 0124740 l e t e r r = s y s c a l 0124760 l ( s y s c l o s e , s y s a 0125000 c ) \r i f e r r d o \r 0125020 s y s c a l l e r r o r ( 0125040 s y s c l o s e , s y s a c , 0125060 s t r e a m ) \r r e t u r 0125100 n s t r e a m ( s t r e a m ) \r 0125120 ] \r \r a n d n e w s t r e a m 0125140 ( n a m e , a c t i o n ) = 0125160 v a l o f \r [ \r l e t s 0125200 = o p e n f i l e ( n a m e 0125220 ) \r i f s > > S T R E A M 0125240 . c h a n n e l g r # 1 0 0 0125260 0 d o \r [ \r O 0125300 s t r e a m = T T O s t r e 0125320 a m \r 376 001 \0 302 361 l e t 0125340 m = s > > S T R E A M . c h 0125360 a n n e l e q # 1 0 1 2 ? 0125400 \r " E R R O R : 0125420 N O F I L E N A M E D * " 0125440 " , \r s > > 0125460 S T R E A M . c h a n n e l e 0125500 q # 1 0 2 1 ? \r 0125520 " E R R O R : N O 0125540 F R E E C H A N N E L F O R 0125560 * " " , \r 0125600 " E R R O R : C A N ' 0125620 T O P E N F I L E * " " \r 0125640 W r i t e S ( m ) ; W 0125660 r i t e S ( n a m e ) ; W r i 0125700 t e S ( " * " * n " ) \r 0125720 f i n i s h \r 376 001 \0 \f 025 0125740 ] \r s > > S T R E A M . a c 0125760 t i o n = a c t i o n \r 0126000 s > > S T R E A M . c o u n t 0126020 = 0 \r t e s t a c t i o 0126040 n e q r e a d a c t \r 0126060 i f s o r e a d b u f f e r 0126100 ( s ) \r i f n o t s > 0126120 > S T R E A M . m a x = m a 0126140 x b y t e i n d e x \r r e s 0126160 u l t i s s \r ] \r \r a n d r 0126200 e t u r n s t r e a m ( s t r e 0126220 a m ) b e \r [ \r f o r i 0126240 = 0 t o 7 d o \r 0126260 [ \r i f ( s t r e a 0126300 m v e c ! i & # 7 7 7 7 7 ) 0126320 e q s t r e a m t h e 376 001 0126340 \0 033 z n \r [ \r 0126360 s t r e a m v e c ! i = 0126400 s t r e a m \r r e 0126420 t u r n \r ] \r 0126440 ] \r E r r o r ( " c a n ' 0126460 t r e t u r n s t r e a m " 0126500 ) \r ] \r \r a n d f l u s h b u 0126520 f f e r ( s t r e a m ) b e \r 0126540 [ \r i f s t r e a m > > S 0126560 T R E A M . a c t i o n e q 0126600 w r i t e a c t t h e n \r 0126620 [ \r 0126640 i f ( s t r e a m > > S T R 0126660 E A M . c o u n t n e 0 ) 0126700 t h e n \r b u 0126720 f f e r i o ( s t r e a m , s 0126740 y s w 376 001 \0 u 276 r s , s t r e 0126760 a m > > S T R E A M . c o u n t 0127000 ) \r ] \r s 0127020 t r e a m > > S T R E A M . c o 0127040 u n t = 0 \r s t r e a m 0127060 > > S T R E A M . m a x = m 0127100 a x b y t e i n d e x \r ] \r a n 0127120 d r e a d b u f f e r ( s t r 0127140 e a m ) b e \r [ \r b u f f 0127160 e r i o ( s t r e a m , s y s 0127200 r d s , m a x s t r e a m b y 0127220 t e s ) \r s t r e a m > > S 0127240 T R E A M . m a x = s y s 0127260 a c ! 1 - 1 \r s t r e a m 0127300 > > S T R E A M . c o u n t = 0127320 0 \r s t r e a m > > S T 0127340 R E A M . a c t 376 001 \0 207 c i o n 0127360 = r e a d a c t \r ] \r \r a n 0127400 d d i s p l a y s t r e a m ( 0127420 s ) b e \r [ \r W r i t e S 0127440 ( " * N D i s p l a y a s t 0127460 r e a m . . . * N " ) \r f o 0127500 r i = 0 t o ( o f f s 0127520 e t S T R E A M . b y t e b u 0127540 f f e r + 1 5 ) / 1 6 d o W 0127560 r i t e O ( s ! i ) \r W r i 0127600 t e S ( " * N " ) \r ] \r \r a n d 0127620 O v e r l a y ( n a m e , l 0127640 o c ) b e \r [ \r l e t s 0127660 = o p e n f i l e ( n a m e 0127700 ) / / c i r c u m v e n t " 0127720 O p e n I n p u t " b e c a u 0127740 s e w e d o n ' t \r / 376 001 \0 0127760 215 326 / w a n t i o b u f 0130000 f e r e d f o r u s \r l 0130020 e t c h = s > > S T R E A 0130040 M . c h a n n e l \r l e t 0130060 h = v e c 1 5 \r s y s 0130100 a c ! 0 = h l s h i f t 0130120 1 \r s y s a c ! 1 = 3 2 0130140 \r s y s a c ! 2 = c h \r 0130160 s y s c a l l ( s y s r d s 0130200 , s y s a c ) \r s y s a c 0130220 ! 0 = l o c l s h i f t 0130240 1 \r s y s a c ! 1 = h ! 0130260 1 l s h i f t 1 \r s y s 0130300 a c ! 2 = c h \r s y s c 0130320 a l l ( s y s r d s , s y s a 0130340 c ) \r l e t n = n i l 0130360 \r 376 001 \0 3 020 s y s a c ! 0 0130400 = l v n l s h i f t 1 \r 0130420 s y s a c ! 1 = 2 \r 0130440 s y s a c ! 2 = c h \r s 0130460 y s c a l l ( s y s r d s , s 0130500 y s a c ) \r l e t p = v 0130520 e c 1 \r f o r i = 1 0130540 t o n d o \r [ s y s 0130560 a c ! 0 = p l s h i f t 0130600 1 \r s y s a c ! 1 = 0130620 4 \r s y s a c ! 2 = 0130640 c h \r s y s c a l l ( s 0130660 y s r d s , s y s a c ) \r 0130700 @ ( p ! 0 ) = p ! 1 + 0130720 l o c \r ] \r c l o s e 0130740 c h a n n e l ( s ) \r ] \r \r a n 0130760 d R e a d C 376 001 \0 ) \ O M C M 0131000 ( ) b e \r [ \t / / r e a d t 0131020 h e n e x t n a m e a n d 0131040 s w i t c h l i s t f r o 0131060 m C O M . C M \r s t a t i 0131100 c [ c s t r e a m = # 1 0131120 0 0 0 0 0 ] \r i f c s t 0131140 r e a m e q # 1 0 0 0 0 0 0131160 d o c s t r e a m = O p e 0131200 n I n p u t ( " C O M . C M " ) 0131220 \r l e t i = 1 \r [ 0131240 \t R e a d c h ( c s t r e a m , 0131260 l v f i l e n a m e ! i ) \r 0131300 \t i f f i l e n a m e ! i e 0131320 q 0 b r e a k \r \t i f i 0131340 g r F i l e N a m e L e n g t 0131360 h d o E r r o r ( " 376 001 \0 364 0131400 9 B A D F I L E N A M E " ) 0131420 \r \t i f f i l e n a m e ! i 0131440 e q # 3 7 7 d o \r \t [ \t 0131460 C l o s e I n p u t ( c s t r e 0131500 a m ) \r \t \t f i l e n a m e ! 0 0131520 = - 1 \r \t \t c s t r e a m 0131540 = # 1 0 0 0 0 0 / / / * D C 0131560 S * s o c a n r e - r e a 0131600 d i n L E X \r \t \t r e t u r 0131620 n \r \t ] \r \t i = i 0131640 + 1 \r ] r e p e a t \r 0131660 f i l e n a m e ! 0 = i - 0131700 1 \r \r l e t s = n i l 0131720 \r l e t i , j = 0 , 0131740 0 \r f o r k = 1 t 0131760 o 4 d o \r [ \t R e a 0132000 d 376 001 \0 U 213 c h ( c s t r e a m 0132020 , l v s ) \r \t f o r l = 0132040 1 t o 8 d o \r \t [ \t 0132060 i f ( s & # 2 0 0 ) n e 0132100 0 d o \r \t \t [ \t j = 0132120 j + 1 \r \t \t \t s w ! j = 0132140 i + $ A \r \t \t ] \r \t 0132160 \t i = i + 1 \r \t \t s = 0132200 s l s h i f t 1 \r \t 0132220 ] \r ] \r s w ! 0132240 0 = j \r ] \r \r a n d I n 0132260 i t F r e e ( m a x ) b e \r [ 0132300 F r e e l i s t P = m a x 0132320 \r r v z f r a m e m a x 0132340 = m a x \r ] \r \r a n d N e w 0132360 v e c ( n ) = v a l o f \r [ 0132400 l e t v 376 001 \0 331 3 = F r 0132420 e e l i s t P - n \r i f 0132440 v l s l v v d o \r \t [ 0132460 r v z f r a m e m a x = 0132500 r v z f r a m e m a x + 1 0132520 0 0 0 \r \t E r r o r ( " O U 0132540 T O F F R E E S T O R A G 0132560 E - - P R O G R A M I S 0132600 T O O B I G " ) \r \t ] \r F 0132620 r e e l i s t P = v - 1 0132640 \r r v z f r a m e m a x 0132660 = v \r r e s u l t i s v 0132700 \r ] \r \r a n d D v e c ( r o u 0132720 t , l v N ) b e \r [ l e t 0132740 r s l t = ( l v r o u t ) 0132760 - 4 \r l e t F S O ( ) b 0133000 e [ l e t v = 376 001 \0 < g 0133020 v e c 3 1 0 0 0 ; v = 0133040 v ] \r l e t n e w M a x 0133060 = r s l t + @ l v N + 0133100 1 \r i f n e w M a x > 0133120 @ z f r a m e m a x t h e n 0133140 F S O ( ) \r @ z f r a m e 0133160 n e x t = n e w M a x \r 0133200 @ l v N = r s l t \r / / * * 0133220 * ! ! ! T h i s w i l l 0133240 s t o p w o r k i n g i f 0133260 R E T U R N c o d e i s c 0133300 h a n g e d \r r s l t = 0133320 ( @ z r e t u r n ) + 1 / / 0133340 b y p a s s r e s e t t i n g 0133360 z f r a m e n e x t \r r s 0133400 l t ( ) / / r e t u r n s \r 0133420 376 \0 002 ] 017 ] \r 377 \0 \0 B C P L R D 0133440 O S . b c p l \0 373 226 W 347 P \0 \0 376 0133460 001 \0 206 i \r / / B C P L R D O S 0133500 . b c p l - B C P L R D O 0133520 S - s p e c i f i c f u n c t 0133540 i o n s \r / / C o p y r i g h 0133560 t X e r o x C o r p o r a t 0133600 i o n 1 9 8 0 \r / / S w i n 0133620 e h a r t , 6 M a y 7 7 , 0133640 f i l e l e n g t h s - > 0133660 s t a t i c s \r / / * * d 0133700 e n o t e s d e c l a r a t i 0133720 o n s o r f u n c t i o n s 0133740 d i f f e r e n t f r o m 0133760 D O S B C P L . \r \r g e t " 0134000 b c p l x " \r \r e x t e r n a l 0134020 [ \r b u f f e r i o \r d i s p 0134040 l a y s t r e a m \r R e a d c h 0134060 K L U D 376 001 \0 215 374 G E \r s t r e 0134100 a m v e c \r s y s c a l l \r W r 0134120 i t e c h K L U D G E \r I n i t 0134140 T o R e a d \r o p e n f i l e \r 0134160 ] \r \r m a n i f e s t [ \r \t z 0134200 f r a m e m a x = # 3 3 5 \r 0134220 \t z f r a m e n e x t = # 3 0134240 3 6 \r \t z f r a m e f i r s t 0134260 = # 3 3 7 \r \t z r e t u r n 0134300 = # 3 6 6 \r \t ] \r \r / 0134320 / s y s t e m - d e p e n d e 0134340 n t m a n i f e s t s , u s 0134360 e d t h r o u g h o u t \r \r \r 0134400 m a n i f e s t [ \r m a x 0134420 w o r d i n d e x = 5 \r 0134440 m a x b y t e i n d e x = m 0134460 a x w o r d i n d 376 001 \0 \b \n e x 0134500 * 2 + 1 \r m a x s t r e 0134520 a m b y t e s = m a x b y t 0134540 e i n d e x + 1 \r r e a 0134560 d a c t = 0 \r w r i t e 0134600 a c t = 1 \r ] \r \r s t r 0134620 u c t u r e S T R E A M [ \r 0134640 c h a n n e l w o r d \r 0134660 a c t i o n w o r d \r 0134700 c o u n t w o r d \r 0134720 m a x w o r d \r 0134740 [ b y t e b u f f e r ^ 0 , m 0134760 a x b y t e i n d e x b y t e 0135000 1 ] = \r [ w o r d 0135020 b u f f e r ^ 0 , m a x w o r d 0135040 i n d e x w o r d 1 ] \r ] \r 0135060 s t r u c t u r e [ L E 376 001 0135100 \0 034 270 F T H A L F b y t e 1 0135120 ; R I G H T H A L F b y t e 0135140 1 ] \r \r / / * * \r m a n i 0135160 f e s t \r [ s y s g c h a r 0135200 = 1 7 b 8 \r s y s p c h a 0135220 r = 2 0 b 8 \r s y s o p 0135240 e n = 3 0 b 8 + # 7 7 \r 0135260 s y s c l o s e = 3 1 b 8 0135300 + # 7 7 \r s y s c r e a t e 0135320 = 1 6 b 8 \r s y s d e l e 0135340 t e = 1 b 8 \r s y s r d s 0135360 = 3 2 b 8 + # 7 7 \r 0135400 s y s w r s = 3 5 b 8 + 0135420 # 7 7 \r s y s r e n a m e 0135440 = 2 b 8 \r s y s g c h n 0135460 = 4 2 b 8 + # 7 7 \r s y s 0135500 s p o 376 001 \0 6 232 s = 4 7 b 0135520 8 + # 7 7 \r s y s g p o s 0135540 = 5 0 b 8 + # 7 7 \r ] \r \r \r 0135560 / / * * \r m a n i f e s t [ 0135600 \r s y s c a l l p r o c = 0135620 # 1 0 0 4 3 6 \r s y s d e b u 0135640 g p r o c = # 1 0 0 4 3 7 \r 0135660 s y s a c = # 4 4 0 \r 0135700 s y s t e m p 1 = # 4 4 4 \r 0135720 s y s t e m p 2 = # 4 4 5 0135740 \r ] \r \r / / s y s t e m 0135760 - d e p e n d e n t m a n i f 0136000 e s t s , u s e d b y I n 0136020 i t B C P L \r \r m a n i f e s t 0136040 \r [ \r S T R E A M s 0136060 i z e = ( ( s i z e S T R 0136100 E A M + 1 5 376 001 \0 D 262 ) / 1 0136120 6 ) \r s t r e a m v e c s 0136140 i z e = 7 \r ] \r s t r 0136160 u c t u r e [ b l a n k b 0136200 i t 1 5 ; O D D B I T b i 0136220 t 1 ] \r \r l e t I n i t B 0136240 C P L ( p a r a m v e c ) b e 0136260 \r [ \r V e r s i o n = 0136300 ( 2 l s h i f t 8 ) + 0136320 0 \r S W A l t o = f a l 0136340 s e / / d e f a u l t - - 0136360 c o m p i l e N O V A c o 0136400 d e \r \r T T O s t r e a m 0136420 = O p e n O u t p u t ( 0 ) \r 0136440 T T I s t r e a m = O p 0136460 e n I n p u t ( 0 ) \r O s t 0136500 r e a m = T T O s t r 376 001 \0 0136520 c ~ e a m ; I s t r e a m = 0136540 T T I s t r e a m ; \r \r l 0136560 e t v = v e c s t r e a 0136600 m v e c s i z e \r s t r e a 0136620 m v e c = v \r l e t s 0136640 t r e a m t a b l e s = v e 0136660 c ( s t r e a m v e c s i z e 0136700 + 1 ) * S T R E A M s i z e \r \r 0136720 F r e e M a x = p a r a 0136740 m v e c ! # 3 7 - 1 \r / / L 0136760 i m i t s a r e M a x ' s 0137000 \r D i c t F r e e L i m i t 0137020 = F r e e M a x - ( p a 0137040 r a m v e c ! 1 + 1 ) \r T r 0137060 e e F r e e L i m i t = F r 0137100 e e M a x - ( p a r a m v e 0137120 c ! 376 001 \0 004 267 2 + 1 ) \r C o 0137140 d e F r e e L i m i t = F r 0137160 e e M a x - ( p a r a m v e 0137200 c ! 3 + 1 ) \r F i l e N a m 0137220 e L e n g t h = 2 0 \r G 0137240 e t F i l e M a x = 1 2 \r 0137260 f o r i = 0 t o 7 0137300 d o \r [ \r s 0137320 t r e a m v e c ! i = s t r 0137340 e a m t a b l e s \r s 0137360 t r e a m t a b l e s = s t 0137400 r e a m t a b l e s + S T R 0137420 E A M s i z e + 1 \r 0137440 ] \r \r \r / / C A L L T H E 0137460 C O M P I L E R \r M a i n 0137500 ( p a r a m v e c ) \r \r ] \r 0137520 \r a n d s y 376 001 \0 222 ! s c a l 0137540 l ( c a l l , a c ) = v a 0137560 l o f \r [ l e t e r r = 0137600 s y s c a l l p r o c ( c a l l 0137620 , a c ) \r i f e r r e 0137640 q - 1 r e s u l t i s 0 \r 0137660 i f e r r e q 0 d 0137700 o e r r = # 1 5 \r r e 0137720 s u l t i s e r r \r ] \r \r a 0137740 n d P o s i t i o n ( s t r e 0137760 a m ) = v a l o f \r [ \r 0140000 i f s t r e a m l s 0 t 0140020 h e n r e s u l t i s - 1 \r 0140040 l e t c h a n n e l = 0140060 s t r e a m > > S T R E A M . c 0140100 h a n n e l \r u n l e s s 0140120 0 l e c h a n n e l 376 001 \0 p 0140140 c & c h a n n e l l e 7 0140160 r e s u l t i s - 1 \r / / 0140200 * * D O S h a s n o s y 0140220 s c a l l f o r p o s i t i 0140240 o n \r s y s a c ! 2 = 0140260 c h a n n e l \r l e t e 0140300 r r = s y s c a l l ( s y s 0140320 g p o s , s y s a c ) \r 0140340 i f e r r d o s y s c a l 0140360 l e r r o r ( s y s g p o s , 0140400 s y s a c ) \r i f s y s 0140420 a c ! 0 n e 0 d o \r 0140440 [ O s t r e a m = T T O s 0140460 t r e a m \r W r i t e 0140500 S ( " E r r o r : F i l e P 0140520 o s i t i o n > # 1 7 7 7 7 0140540 7 376 001 \0 271 237 * N " ) \r 0140560 f i n i s h \r ] \r l 0140600 e t d o s p o s = s y s a 0140620 c ! 1 \r / / * * ^ ^ \r i 0140640 f s t r e a m > > S T R E A M 0140660 . a c t i o n e q w r i t e 0140700 a c t t h e n \r 0140720 r e s u l t i s d o s p o s 0140740 + s t r e a m > > S T R E A M 0140760 . c o u n t \r i f d o s p 0141000 o s e q 0 t h e n r e s 0141020 u l t i s 0 \r r e s u l 0141040 t i s d o s p o s - ( s t 0141060 r e a m > > S T R E A M . m a x 0141100 - s t r e a m > > S T R E A 0141120 M . c o u n t ) - 1 \r ] \r \r a 0141140 n d b u f 376 001 \0 372 b f e r i o 0141160 ( s t r e a m , o p r , c o 0141200 u n t ) = v a l o f \r [ \r 0141220 s y s a c ! 0 = ( l v s 0141240 t r e a m > > S T R E A M . b y 0141260 t e b u f f e r ) l s h i f t 0141300 1 \r s y s a c ! 1 = 0141320 c o u n t \r s y s a c ! 2 0141340 = s t r e a m > > S T R E A M 0141360 . c h a n n e l \r r e s u l 0141400 t i s s y s c a l l ( o p r , 0141420 s y s a c ) \r ] \r \r a n d H 0141440 e l p ( M e s s a g e ) b e \r 0141460 [ \r l e t v = v e c 0141500 3 \r l e t m = v e c 0141520