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