IMD 1.17: 29/05/2011 12:21:18 td14 primary 1-3-85 >o:~W!{> " OC > S>O31! >2|N#Fx2CN#FC$#^#V^#VS#~2#~2<2###~2#^#VSN#FCC*KB0KC:( [0!' #"* (,*#"+))[R%! !!Cy͏qput+[[R8 uty7?R#|(/ sr +utwwNFqpnf^:(#~W#:G)[7?K R0!!=NFx(ENF C$7?KnfB8C[0MD!'  |:o!=!NFnfB#>,(0W}_nfRut=RDM!C7*![3*:G*!w0͘!4͘ !͙>O3F#Nů  SYS: Which .SYS file to load 0 = CPM 1 = OSLOAD ? SelectReadFile not found error: file C3>L~~ÃG3x(OxAG:>G~ > 2<:4O y~ 8 q *@~(͙8ͺ{ͣ:72:>2>2?7O> 2<> :?G /_~(!& *1::{  _ O(  :<= L{((glrZwZ:4hZ::hZ:>hZZ>2< ~ ( w:728F8 <2:y2>:7W:0*3K5B(7:8Gz?"B*3"5:7G28xG![120G!> z:(8 DZP>w(>>w~Can't recognize density of disk in$Read$Write$Seek$ error on track $ sector $ side $ drive $ $~Can't recognize density of disk in$Read$Write$Seek$ error on2,...,VALN ) x;2 Where Y (Y e;G ) ;\Top of memor ;q}P9x:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/21/84) 1D _76;# &\͹/ͧ8ͳ:}C=t*yC { -( ]2]swC :}C N:tC(>_*( Kw0D {wC:}C 4O:tCy(=<8 ` K*(wX7&>: !}C :!\}C~ (~ ( Copyright 1984, Software 2000, Inc. h8~~o8h8  *#D.$*rCR~/w/w(+"rC*rC| f*rC|?</ 0y:r!vC6*rC&R"yC=:vC !=[yC'!3:vC ́~/w/wdd#| R  ͎ͳ!vC68fo8`g"yC8Wo8Qg"{C͟*yCͳͱ*yC[{Cͳ͹*{Cͳ8+*rC|(R8 [{C*yC8w #z BB78~!!D5 6C}C7!!D[!DRɯ!Cw#<2!D}C<}C:}C=WA!~Cn~#!'͜͜d͜ ͜ R0y 0|ͺ} 80~#_OSMASTERSYS!G"#DbFE;7.F'.[#D"#DFatal error loading O/S: to retry not founTestingK of memorno errorBad Memory @ loading from to, size, unexpected end-of-fil, not enough memor, bad memorZZ!9u5t6o8>Cs6ð~.ZfZ ~.ZfZ"DR8K8n/f0*Dͳ"Du/t0u1t2Y8t.Zu Z*Dn5f6Zf 6.63n9f:|(o8n3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!Y86.o8~/Zf !,!0!:08h!  o84o8O ^#V|45555o85o8o86664,,hH"$o8,,o8o8o8,Ge 1!o8o8o8,,o844o8.5"656o8@5o86o8o8o8o8-!-o8o83"L5o-+-l!o8o8o8o!!!2/0H0o8Z0o8o8o8o8o8o8o8o8o8o8o8o8o8k5N"o8B, d8o8ͬ#(o8X(5o8ͬ# 'K8 ~(o8o8 -~< %"~wo8>Zn~@-)o8 ̀o8d8o8|$-vN++~˾o8o8~@i(6@w@K8.%[-u1t2 .ͬ,.F&/d8v&ͅ%7K8~? wl)=B,)$=8K8#~@ w#ɷd8*& .͑,.}w3}oͬ,=8ͧ&-Z~"8`o8d8)>o8'*͚" 1ͧ&͚+ "ZVo8 6&8ͧ&,3,Y)ͼ" Oy (0'*o8=8F\~3 =8D8D8 Ao8->84 "|$ ,o8I  ͬ#> o8-6& -4d8=8F\E~3 =8D8D8d8o8->8m "|$ eo8I  Mͬ#:# ;o8o8 Co8' :-4o8|$ -o8I  ͬ#:# o8-6w3-6d8)o8o8-4~ >w##4<"(7-#˾B,o8 (ͬ# o8 )K8 #˾:# o8o8>d8"("( ~"8Ao8d8o8͚"ͧ&͚+o8- #͑,~x" ~w(x=(#?(M& [&# 4(#NxFz͢"pz~x?(`,/wxͬ,ͼ"( ~x?Vo8K8 ~"8o8d8)>o8͚"<o8K8#ͧ&# ˾x880#[N( -"w&ͼ" o8%=8͒-F\i~3 X ͡-D88( ͬ#> Yo8&d8%=8͒-F\ͩ~3 X ͡-D8d8(ͬ#:#> o8o8d8o8'o8w3-~iw-~hw-~gw)o87I -~wi#~+w#~#~G~#O>>~Ox ##y|$>7o8-p##q=-~wg-~wh=8D8ì-"d8))(swgwhwi~@͚" ͧ&!ͼ" w3("Zn(:~@(46@͚" +ͧ& ~ -nˮo8(!o8-(w@fi^hVgX=(n&ͳ,-G)MDa~g8++~h8###~i8~wg++~wh###~wi-~^##Vg{怄O>G{GzGz_>-#q#p#wo8)'*8u)+~8# ͤ+ s1r2ͳ,Y8~w/~`8)nfY8~w1~w2~w/~w0~`8~1͛438[D42()~1o8ѷ`852 }/o|/g"D{ozg"D{Oz(>g~1w6o8<2oY8)ͅ+8w+6'*8+T*`8)+͝&~("#`8͑,#`8(#ͬ,+8)ͅ+-ˮo8 o8o87͢"%$6x6z"(D+<6x?~x?(O`,ͧ& 1#6&͑,*&%F&ͬ,/*&$F&1#&- ç&ͅ+K8͚+)>o8͑,#| 5$ J-ͧ&~@n(K8# ~##-~X,8w###6&V$~o8)(*o8$  V$o8O-`,/G-n&)))))}o-D()= -˾##6#6#y=(n&ͳ,+R8 s#̓,(r#ݯ->###> wͧ&K8## #˿##-~o8)(BK8͚+ @$% 7ͅ+82ͧ&͚+ ( K8 -X,8###w&-˾o8$-n6l-~@K8#M&+ͬ,Nl6l1&ͅ%ql͘,X&1&v&(c+)8:!"D-! b&+b&#O`,/ݦx_{(*D|g}oR0+ͬ,1&*&z&F&+8 v&&+ͬ,-͝&~(9x(((( #&(~(Q(K#&(`,/O :#˯~0+~lM& ͑,[&Y^( >wAwB~l?Å%O?^CVDD+,( ~l?(+sCrDnEfF|!uEtF~O*D )"DYD+=) ͢'͙(D~#͛4O ?' +  )###4y, !+++̓( y,/OG(6".--~-8=)))0̓,(r+sJ)!DD~#͛42Dͷ(!Dw#r#sZѯD ̓(!DRDM!x(6=8u't()ͷ()s$r%w&-G)y,-ѳ_-N-`,G-<8= K8 ̓,( ^(#Vz[[-([#~([͸-~1w#~#o8(6~#v-(< Î~#2h)Խ)h)ˇԽ)ͳ,+R͑,:bk##B8B0! <ͬ,ͧ&{_G~  (w&ì,x-~ ##~Z~ =K8#$~# !* # yDIRDSKD+ͅ+++ 6 #6#6#6#6#6#&w+6,++*6ͻ+ 8(6&,+ ͳ,+u)~=w> O6ͻ+ (6&^J){ +0%͝&~( ,3,J)~86&D++͝&6&>7͝&~(0- ͑,+0!͝&~ - &ͬ,͝&6#>7w+~͑,+͝&ͬ,~  N###~< =y >ɯ~#͛4_!D~#38:Do:D>7 ~/ͻ+ط +,͝&#<_#{ x7NF >8= ɯwAwB,,Rͳ,+B0,Rn&-)= ͑,#ì,-! ^#̓,(V#z)-~?(w#w#wͧ& ɯvy,O̓,y(-G7~=~ =nAfBD+!( ~l?(++uAtBnf!D8~1w=~=d8K8D8~1 ~@Z~(w@>d8~1=w\^1;G)=8s#r#wK8u7t8K8u9t:Zv 9~1(Zn ,w@0ZZZZZ:Dw@:o8w=>`8~1w[Oz<(!Er7Oqn7f8|>-#N#N#Fp+q+q-#4#4#4K8~?(=~=l K8 ~    K8~nLfMuLtMnNfOuNtO^PVQsPrQn0!D^#V+R( 7+:D(G72D2D*.:Do:DgY8!,F|`8~1o8~1͛4OF2y<( 1}o|g"Dˀ!Dy<( 1}o|`1^#V!DR$1d2y(#### x u2v Ez2~=1R2 u2~(+11 1Z2u2p(42h $1ƒ0͂2Æ0[Dy38Z2x42=y<(8x(4@(x`` )!D ^#Vz(y2~ p+p!D pj(!D^#V!DR( ! ˶@`Î!D^#V!DR͙1(d2####N#͉2w#~#> ##q#~*8>)~>62˾k2~2p2~w 6!:Dݾ06k2~v-(< +2k2~#w# ut=Z242Î͂27!6!D7͂27!D7z26z287 u+t,   ͂2n+f,~#Û4*DDRK8Z~(1͔4f4~wx4w.~K8 ͔4s#r^ V n4~0>`8w6~8&4=t4N F! ~=38âqpn f!͘74^V~F?3?nf| )R0=T3 =v3:!R0nf NFq p utsrNF nfR0; ut43ѷn f NF DM!Rut4nf#~wnf^VRx4~v-=<(͘7~=4%ut ~_!D^#Vz %6x4 ~v-( Î͔4r+ss r   6~_!E~~#w^#V^ V _! E~Z*o8u1t2:LEd8K8^#V#~#4W~4_*  ;G 4d84#w ;x2 K8q#p#z5w#{5w 0 !!!!K8|<("ME*MEY8:Dw[o8o86/Z~(w0!.u1t2!Y8=8MDK8R8o8Y8s1r2q/p0`8U6 0 ( ( ( ͮ5d8~1O!OE 0 ( 6~G 54ò6U6d8N1ò6~1O<(<(<²6 P6P6U6d8K8:PE~#ͮ5K8o8P6d8K8|<(}2PE:PEd8K8^#V#~#foz~#ͮ56c6KTÈ6P6 o8o836OSSLAVEASYSk:6666#6LAVEASYSk3MASTER CM13BUFFERS CM 7 777,$7$7TD14DSDDONEBACKUP M BANK CMBNKMGR RELBNKREQ RELBNKTST CM BOOTF CM BUFFERS CM CHANGE CM CONDR REL CONREM RELCOPY CM$CPMSUP RELCRUN2 COMCRUN2 COMDATE CM DELETE MDIR CMFASLOD REL FORMAT8 M!"GEN M3#$%&IOMEGA MAC^'()*+,IOMEGA REL-LABEL CM.LSTCTS REL/LSTPAR REL0MASTER CM1MCDSS REL 2MONITOR CM!345(6;6;MPMSUP REL6MSGFMT REL7NETFWD REL8NETLOD REL9NETREQ REL:;NETSVC REL<=OSBOOT REL>OSLOAD COMg?@ABCDEOSLOAD FIVOSLOAD SYSgFGHIJKLOSMASTERSYSMNOPQRSTOSMASTERSYS]UVWXYZOSSLAVE SYS~[\]^_`abOSSLAVEASYScdefghijOSSLAVEASYSkOSSLAVEBSYSlmnopqrsOSSLAVEBSYS tOSSLAVECSYSuvwxyz{|OSSLAVECSYS }OSSLAVEDSYS~OSSLAVEDSYS PATCH RELPRINT CMPRINTER COMQUEMGR REL RENAME CMRTCNUL RELS6BNK RELS6DSK REL S6DST58FRELS6LDR48 GENS6LDR8 DO rKH?H?s1!>!>!"!"!" !">ͻ{s1r>{s1>{s1͵>{vJD@WOZ_ekoúý2. %YYY+CJ CLPYL!"_P=)!KJx( 0< [L0<"o2qN`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{>`G-ZCZCS6LDR8 GENS6LDR8 PARS6LOAD RELS6MLT48 GEN S6MLT5 GEN S6MLT8 BAKS6MLT8 DO S6MLT8 GEN S6MLT8 PARS6NIT RELS6RTC RELS6SIO REL S6SOM RELSET CMSETMX80 INTSHOW CMSLVRES RELSSBNK RELSSBOOT RELSSCKTDR RELSSLAVBK4DO SSLAVBKABAKSSLAVBKAGENSSLAVTD14PRIMARYOOSLOAD SYSg #OSMASTERSYS OSMASTERSYS]$%CHANGE MOSLOAD COMg !"OSSLAVEASYS&'()*+,-OSSLAVEASYS.OSSLAVEBSYS/0l !"#SSLAVBKCPAR12OSSLAVECSYS89:;<=>?OSSLAVECSYS @OSSLAVEDSYSABCDEFGHOSSLAVEDSYS IBACKUP M BANK MBNKTST MBOOTF M BUFFERS MCOPY M$JKLDATE M MDELETE MNDIR MOPDO M QDRIVE M RERASEDIRMSFIXDIR MTFIXMAP MUFORMAT5 MVWFORMAT8 MXYGEN M3Z[\]LABEL M^MAPDIR M_MASTER M`MONITOR M!abcPRINT MdPRINTER OMeSET MfgSHOW MhTYPE MiVERIFY MjkRENAME MlmFMT548 COMnoWS COMnpqrstuvWSMSGS OVRwxyz{|}~WSMSGS OVRCWSOVLY1 OVRWSOVLY1 OVR^BATLSHP BASCRAPS BASTYP MEARNINT BASERNINT BASLOANPAY BASMILEAGE BASSETMX80 BAS SETUP BASTAXDEPRCBASTEST1 BASUNDRLINEBASIOMEGA MAC^IOMEGA RELCBAS2 COMCBAS2 COMCRUN2 COMCRUN2 COMPROJECT LST S6DSK REL DREQUATEIBEQUATE IB6WORDSTARATAM80INITMAUTOLOADMBATCH MBOOTH MDUMP MFIFO M FORMATH MFORMATPCMHDU MLOGOFF M LOGON MPARK OMPRLTOCOMMQUEUE OMRECEIVE MRELCVT MSEND MBNKMGR RELBNKREQ RELCONDR RELCONREM RELCPMSUP RELDMA5F RELDMA5R RELDSPOOL REL FASLOD RELLSTCTS RELLSTETX RELLSTPAR RELLSTXON RELMCDSS REL MPMSUP RELMSGFMT RELNETFWD RELNETLOD RELNETREQ RELNETSVC RELOSBOOT RELPATCH RELQUEMGR REL RTCNUL RELS6BNK RELS6DST58FRELS6LOAD RELS6NIT RELS6RTC RELS6SIO REL S6SOM RELSLVRES RELSSBNK RELSSBOOT RELSSCKTDR RELSSLOAD RELSSLSTPARRELSSNIT RELSSRTC RELSSSIO2 REL SSSIO4 REL SSSOM REL STDLOADRREL   STDLOADRRELSTDMASTRRELSTDMASTRREL !"#STDMASTRREL $STDSINGLREL%&'()*+,STDSINGLREL1-./0STDSLAVEREL12345678STDSLAVEREL9S6DST58FPATK:;<=>L80 COMT?@ABCDSTDSPOOLRELIJKLMNOPSTDSPOOLRELJQRSTUSUBMIT RELVTRK0BOOTRELWVECINT RELXS6LDR8 PARYS6DST58FMACLZ[SSLAVBKAGEN\SSLAVBKCGEN^M80 COMEFGH]_`aSSLAVBKDPAR34SSLAVE PARdeS6LDR48 GENfS6LDR8 GENgS6MLT48 GEN hS6MLT5 GEN iS6MLT8 GEN jSSLAVBKDGEN 5OSSLAVEBSYS$OSSLAVEBOLD67bkmnOSSLAVEBOLD SSLAVBNKGEN oSSLAVE GENpCONDR MACqrDMA5F MACsDMA5R MACtDSKTBL MACuLSTCTS MAC vLSTETX MACwxLSTPAR MACyzLSTXON MAC{|MCDSS MACv}~PARK MACS6BNK MAC S6DSK MACS6DSK MAC BATLSHP INT S6LOAD MACS6NIT MACS6RTC MACS6SIO MACS6SIO MAC S6SOM MACSLVRES MACSSBNK MACSSBOOT MAC$SSCKTDR MAC$SSLOAD MAC SSLSTPARMACSSNIT MACSSRTC MACSSSIO2 MACSSSIO2 MAC SSLAVBKAPARM80 COMcSSSOM MACTRK0BDOSMAC^TRK0BIOSMACTRK0BIOSMACTRK0BIOSMACTRK0BOOTMAC VECINT MACSETMX80 INTMEGASTATCOMDBASE COMDBASE COMDBASEAPPOVRDBASEBROOVR DBASEJOIOVRDBASEMAIOVR7DBASEMODOVRDBASEMSCOVRDBASEMSGCOM>DBASERPGOVRDBASESRTOVR DBASETTLOVR DBASEUPDOVR OSSLAVEESYS   TRK0DSDDDROSSLAVEESYSSSLAVBKEPARSSLAVBKEBAKOSSLAVEFSYSSSLAVBKBPAR%'SSLAVBKEGENOSSLAVEFSYSS6MLT8 PARTRK0SSDDDRTRK0SSSDDRS6MLT8 BAK*+SSLAVBKBBAK(.SSLAVBKBGEN )LSTCTB REL&SSLAVBKBBAK -:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/21/84) 1D _76;# &\͹/ͧ8ͳ:}C=t*yC { -( ]2]swC :}C N:tC(>_*( Kw0D {wC:}C 4O:tCy(=<8 ` K*(wX7&>: !}C :!\}C~ (~ ( Copyright 1984, Software 2000, Inc. h8~~o8h8  *#D.$*rCR~/w/w(+"rC*rC| f*rC|?</ 0y:r!vC6*rC&R"yC=:vC !=[yC'!3:vC ́~/w/wdd#| R  ͎ͳ!vC68fo8`g"yC8Wo8Qg"{C͟*yCͳͱ*yC[{Cͳ͹*{Cͳ8+*rC|(R8 [{C*yC8w #z BB78~!!D5 6C}C7!!D[!DRɯ!Cw#<2!D}C<}C:}C=WA!~Cn~#!'͜͜d͜ ͜ R0y 0|ͺ} 80~#_OSMASTERSYS!G"#DbFE;7.F'.[#D"#DFatal error loading O/S: to retry not founTestingK of memorno errorBad Memory @ loading from to, size, unexpected end-of-fil, not enough memor, bad memorZZ!9u5t6o8>Cs6ð~.ZfZ ~.ZfZ"DR8K8n/f0*Dͳ"Du/t0u1t2Y8t.Zu Z*Dn5f6Zf 6.63n9f:|(o8n3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!Y86.o8~/Zf !,!0!:08h!  o84o8O ^#V|45555o85o8o86664,,hH"$o8,,o8o8o8,Ge 1!o8o8o8,,o844o8.5"656o8@5o86o8o8o8o8-!-o8o83"L5o-+-l!o8o8o8o!!!2/0H0o8Z0o8o8o8o8o8o8o8o8o8o8o8o8o8k5N"o8B, d8o8ͬ#(o8X(5o8ͬ# 'K8 ~(o8o8 -~< %"~wo8>Zn~@-)o8 ̀o8d8o8|$-vN++~˾o8o8~@i(6@w@K8.%[-u1t2 .ͬ,.F&/d8v&ͅ%7K8~? wl)=B,)$=8K8#~@ w#ɷd8*& .͑,.}w3}oͬ,=8ͧ&-Z~"8`o8d8)>o8'*͚" 1ͧ&͚+ "ZVo8 6&8ͧ&,3,Y)ͼ" Oy (0'*o8=8F\~3 =8D8D8 Ao8->84 "|$ ,o8I  ͬ#> o8-6& -4d8=8F\E~3 =8D8D8d8o8->8m "|$ eo8I  Mͬ#:# ;o8o8 Co8' :-4o8|$ -o8I  ͬ#:# o8-6w3-6d8)o8o8-4~ >w##4<"(7-#˾B,o8 (ͬ# o8 )K8 #˾:# o8o8>d8"("( ~"8Ao8d8o8͚"ͧ&͚+o8- #͑,~x" ~w(x=(#?(M& [&# 4(#NxFz͢"pz~x?(`,/wxͬ,ͼ"( ~x?Vo8K8 ~"8o8d8)>o8͚"<o8K8#ͧ&# ˾x880#[N( -"w&ͼ" o8%=8͒-F\i~3 X ͡-D88( ͬ#> Yo8&d8%=8͒-F\ͩ~3 X ͡-D8d8(ͬ#:#> o8o8d8o8'o8w3-~iw-~hw-~gw)o87I -~wi#~+w#~#~G~#O>>~Ox ##y|$>7o8-p##q=-~wg-~wh=8D8ì-"d8))(swgwhwi~@͚" ͧ&!ͼ" w3("Zn(:~@(46@͚" +ͧ& ~ -nˮo8(!o8-(w@fi^hVgX=(n&ͳ,-G)MDa~g8++~h8###~i8~wg++~wh###~wi-~^##Vg{怄O>G{GzGz_>-#q#p#wo8)'*8u)+~8# ͤ+ s1r2ͳ,Y8~w/~`8)nfY8~w1~w2~w/~w0~`8~1͛438[D42()~1o8ѷ`852 }/o|/g"D{ozg"D{Oz(>g~1w6o8<2oY8)ͅ+8w+6'*8+T*`8)+͝&~("#`8͑,#`8(#ͬ,+8)ͅ+-ˮo8 o8o87͢"%$6x6z"(D+<6x?~x?(O`,ͧ& 1#6&͑,*&%F&ͬ,/*&$F&1#&- ç&ͅ+K8͚+)>o8͑,#| 5$ J-ͧ&~@n(K8# ~##-~X,8w###6&V$~o8)(*o8$  V$o8O-`,/G-n&)))))}o-D()= -˾##6#6#y=(n&ͳ,+R8 s#̓,(r#ݯ->###> wͧ&K8## #˿##-~o8)(BK8͚+ @$% 7ͅ+82ͧ&͚+ ( K8 -X,8###w&-˾o8$-n6l-~@K8#M&+ͬ,Nl6l1&ͅ%ql͘,X&1&v&(c+)8:!"D-! b&+b&#O`,/ݦx_{(*D|g}oR0+ͬ,1&*&z&F&+8 v&&+ͬ,-͝&~(9x(((( #&(~(Q(K#&(`,/O :#˯~0+~lM& ͑,[&Y^( >wAwB~l?Å%O?^CVDD+,( ~l?(+sCrDnEfF|!uEtF~O*D )"DYD+=) ͢'͙(D~#͛4O ?' +  )###4y, !+++̓( y,/OG(6".--~-8=)))0̓,(r+sJ)!DD~#͛42Dͷ(!Dw#r#sZѯD ̓(!DRDM!x(6=8u't()ͷ()s$r%w&-G)y,-ѳ_-N-`,G-<8= K8 ̓,( ^(#Vz[[-([#~([͸-~1w#~#o8(6~#v-(< Î~#2h)Խ)h)ˇԽ)ͳ,+R͑,:bk##B8B0! <ͬ,ͧ&{_G~  (w&ì,x-~ ##~Z~ =K8#$~# !* # yDIRDSKD+ͅ+++ 6 #6#6#6#6#6#&w+6,++*6ͻ+ 8(6&,+ ͳ,+u)~=w> O6ͻ+ (6&^J){ +0%͝&~( ,3,J)~86&D++͝&6&>7͝&~(0- ͑,+0!͝&~ - &ͬ,͝&6#>7w+~͑,+͝&ͬ,~  N###~< =y >ɯ~#͛4_!D~#38:Do:D>7 ~/ͻ+ط +,͝&#<_#{ x7NF >8= ɯwAwB,,Rͳ,+B0,Rn&-)= ͑,#ì,-! ^#̓,(V#z)-~?(w#w#wͧ& ɯvy,O̓,y(-G7~=~ =nAfBD+!( ~l?(++uAtBnf!D8~1w=~=d8K8D8~1 ~@Z~(w@>d8~1=w\^1;G)=8s#r#wK8u7t8K8u9t:Zv 9~1(Zn ,w@0ZZZZZ:Dw@:o8w=>`8~1w[Oz<(!Er7Oqn7f8|>-#N#N#Fp+q+q-#4#4#4K8~?(=~=l K8 ~    K8~nLfMuLtMnNfOuNtO^PVQsPrQn0!D^#V+R( 7+:D(G72D2D*.:Do:DgY8!,F|`8~1o8~1͛4OF2y<( 1}o|g"Dˀ!Dy<( 1}o|`1^#V!DR$1d2y(#### x u2v Ez2~=1R2 u2~(+11 1Z2u2p(42h $1ƒ0͂2Æ0[Dy38Z2x42=y<(8x(4@(x`` )!D ^#Vz(y2~ p+p!D pj(!D^#V!DR( ! ˶@`Î!D^#V!DR͙1(d2####N#͉2w#~#> ##q#~*8>)~>62˾k2~2p2~w 6!:Dݾ06k2~v-(< +2k2~#w# ut=Z242Î͂27!6!D7͂27!D7z26z287 u+t,   ͂2n+f,~#Û4*DDRK8Z~(1͔4f4~wx4w.~K8 ͔4s#r^ V n4~0>`8w6~8&4=t4N F! ~=38qpn f!͘74^V~F?3?nf| )R0=T3 =v3:!R0nf NFq p utsrNF nfR0; ut43ѷn f NF DM!Rut4nf#~wnf^VRx4~v-=<(͘7~=4%ut ~_!D^#Vz %6x4 ~v-( Î͔4r+ss r   6~_!E~~#w^#V^ V _! E~Z*o8u1t2:LEd8K8^#V#~#4W~4_*  ;G 4d84#w ;x2 K8q#p#z5w#{5w 0 !!!!K8|<("ME*MEY8:Dw[o8o86/Z~(w0!.u1t2!Y8=8MDK8R8o8Y8s1r2q/p0`8U6 0 ( ( ( ͮ5d8~1O!OE 0 ( 6~G 54ò6U6d8N1ò6~1O<(<(<²6 P6P6U6d8K8:PE~#ͮ5K8o8P6d8K8|<(}2PE:PEd8K8^#V#~#foz~#ͮ56c6KTÈ6P6 o8o8TP6:TEo6:YEOĽ6o6O:UE:VEʎ:XE(:WE ~YwYo8Yf(o8 ~;=_!QEF#^#V!`E7K8|"^E!\E57[`E!`ER(^#V#7##~6*ZE#"ZE:\E*^E+"^E|!\E4SdE!""fE!""hE6# x {fE*hE*dEM*fE~#<(=7 ~# ~ xD##>)))))))';7;7d;7 ;7 R0y 0OͲ6N#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#r8N˹Ͳ6~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!o8Rog_8;;| 7{_@( (M=(J_@!E~ 5_@:E_@O8_@:E_@_@!E~O_@~#8 !E69!E87sE~(=(3=ʬ:=[;=(m> 2E9 :Q:> 2E9 6:Q:> 2E͔;¥::E~ ˟~(2E~G; ; n f "Enf +"E> [;6 ;; V:EO:E_(2ED< ; :E :E :E <~0O 2ED<~<~3<>2ED<<~3<~>͔;>/!Ef>2Eͣ<> !<6> D3<_!E!E"E!"E!E~> <:E2E(2Eo8D2Eo8ͣ< !E6:E>  sjE1E 2E:E=< :EO:ZE2E02E2E:ZE2E !E87> {jEM> > < ^#V|< n f ^!E<`M5=0M?5=(50=0M 5A=M;5R=(5c= (>t=4M=M= M=M=. %>=4M=S(>M=           !E6V>!E87sE~r>=ʚ>=?=ʦ?=>?z?> @*EF "EE? >?z?>0*EF "E@E? ?z?> @N@E? :E(T@{Eͦ??z?*E:E>P:Ew(y @>N?>n f "Enf}|~2E~2E2E!E4!E5?:E'''G:E怰G:Ew x@@:EG:E8 :EG_>(˘N?u?:EO!E ~(6?T@><>N??u t ~''''!E_ E>@:Ep:EwG@/@63@!E6!Ewg!/@7!E878{( A=(.=;A=ʿB=B=B=CxKF*E(KF*FxN>x 3*F|(+"F*E~#*E+KE R0YPSE!F4!F6*F|(+"F*F~#*F+KF R0YPSF!F4!F6x> :F@(y>:F@(y>x> )(:F@((yy2FA6! F6(:F@((yy2FA6!$F6>:F@(:F!A7! F87>:F@(:F!A7!$F87sjE1EB]B{jEMG!FnO~(˹:TE *E"E!"F*E[FRSF*Eq#*E+KE R0YPSEF!FͷBG!FnO~(˹:TE *F"F!"F*F[FRSF*Fq#*F+KF R0YPSFF!FͷB=87x!F(!FqyOx:E( Gy2E!Fx(!F~>y(q(Wx(>yQx(>yPZ(Z!*F47>Zf /N/^1!+F(y(( (  {04n6o8rn!"+i:o&###P"w:lG,'ܦ !P'q $! Pw#w#]Ts#r#s#r# #s#r 9*|!d!e "e* # q+ :O=o&' :,(G!P:-(G!PP12)͇6̀"͎b>2!>o>>> >>G^>͆͗͆͆͆͆Æ*2P"4"8":! }2!" ! ! *P"""*P"""D!" >G>> >d !*":2>s#{"%*!̓:-‹*%{#ɷ( ʣ2.( :.…Ë͆گɷyʓ=(J=(M=(D=(G((9=((t(s!(tʣ2/"{(8:/o <2/oݔݔ>Yf { (i(:(K f(!{ 0 Y6U4R͆/͆/(7=(:͋ѷ{<({21z(!20:21z :S'S)2/͋ .>@Ć!/6 *| s"!{*!6;͋͋$nͅ ͋(ɖɖO:G:(G:_:W͋͵{*!͋͋{*!!-~6͆޷ ǜ<(  >̓>2!"2P!"Q ͅͅO2͋͆*[Rl!!"'")ZYf ͋,>̓͆͋ͅ:0_ͅ:1_ ͅ>@Æ!>+r+s+w"2:޷:-*##R>2-*|[+R18*'| *)|ʋ{#*%>'d  R0y 0_ͅ Å-އ`~( =(=(:-Rea-Writ -Not read- error, Drive:~AOQ~(D-, Track:nfͷ-, Sector:nfͷ^Vz( - -ͷ- (Retry,~( -Ignore,-Abort)Ϸ(dAO::˗=~ :< $nT2L/ 0:y099RA9:9ͤ g!~(76͘(0*##~#2~#2~#( OSX!~6 [ T#~ʣO#"ͪ 6ԙ*"tS: M!~ 6C#6O#6MT: (: ͧX^99!T#"|*+|:~;:7~7#A޷# !"> 9> _::  >̓b^#V#~#foͤ!ͤw1w2 !ͷR8B( (o87(!.(?:(B!R8!(/ o8 $kb o8 !!!p>(G!~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2:= =2Ào(:.*(w#6?# (8=(,( O:(yA޷b| s1r26#ͷ͹6#6 #!~(# ě (!V:w+ ^qs#r~1< ~=20~@21b|(/~CwN#:0O[ySͪ!6͈͔͘(@ͤ(~( #! P #####:w#:w#qy(#*!"ޯ!6!"ͤ!"^#V+R*|:>2:h&!j!jFˆ>N  ͔ :iG/!jί>̓̓!j~1 ˎ:k<=_̓Ẓ1~ Ӟ͋͋ZZ~( Zw(Zow@Z(Z~(B(( !(Nѷ(#:OG!R~# ~(###YĞ66Ğ~Zf(!I0!,0O N#Fx( x(!'Ğnf u t Nʬ͋͋:w[6@Zݣ| ;!!Pܷ bujtk:wN! ~<(.^%V&:OG!R~# ~###(N !e͉<(w6~֣| ~Yw#~ƣ<~(  !uetfneffnjfk͋͋Ͱ͋ͅ_N! ! ~( (wʦV####^#Vz(Ϳs#r!!~#w@~w70͋U-6͸! 6!!w#w#w~(<=( =(,6͟O͸(7!~=(-͸! A͟6͸!ͅѷ !!4 #4 #4Ͱ͏͸(~(͋͟ͅ͸7E( N! p>ͅÅJ"|J͆"|>ÆJ#~J[|t"t͆"yw}o|~J[{ozg}/o|/gN#͡~wb! z<(ez<(=(=w{(wzw Ϳ^#VN!~ ɷ( #~#fo!!O ! ~N! ͋!"p(${2͋(:J[}o|g"*["}o|gp)(>00W͋H[͋!e~!5~#ZZN!9u5t6ͤ͆a.~.ZfZ ~.ZfZ"ibn/f0*Na1"u/t0u1t2pt.Zu Z*n5f6Zf 6.63n9f:|(Ͱn3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!p6.~/Zf !*,!0!08h!  \ʔO ^#V|I+Jx~҄ߤϵϻN8>2Aƪ3cGM a4Sŭ㮯KFpz]ΎvιD:Mڕ`sٱ*T8ɑ!Ө7 ̰͋{ͥ*(Ͳ֩(5ͥ* 'b ~(˽U÷ m~< ͒l~wͲ>Zn~@^~ؾ [F̲{;^vN++~˾͕¼~@i(6@qw@b͂e͒[{u1t2͉*͗Ĵe/{7b~? wl~=^eTb#~@ w#ɷ{ͨ͐͞}w3}o*T%OZ8ުͲ{^>ͥ 1% "ZV 6`8%͜ͱ׷: Oy (0ͥͳTF\V~3 T[[G Aͧķm>84 " ,?ǮR *> ?m6g m4Z{TF\ë~3 T[[G{eŷm>8m " e?ǮR M>*ĸ ;? C͖ :m4? -?ǮR *ĸ >?m6w3Zm6{~ؾY4~ >w##4{Z(Y^( 8ͿͲ{S%ŚFY ̓S~xtY ~w(x=(#?(˴ ٴ͙ 4ͦNxFz pz~x?(޺/wx*:( ~x?Ԭͳb 8qͲ{^>º}b#%# ˾x880#[N( mlw`: ͳr%TF\~3 ֮[i8( *> Y?g{r%TF\'~3 ֮[i{޷(*ĸ> ?{͖?w3m~iwY~hwc~gw~ؾ7Ǯm~wi#~+w#~#~G~#O>>~Ox ##y>7?Yp##q=c~wgY~whT[*Z{~^(swgwhwi~@ %: w3("Zn(:~@(46@ +% ~ ^nˮr(}^(w@fi^hVgX=(n&1uG)MDa~g8++~h8###~i8~wg++~wh###~wim~^##Vg{怄O>G{GzGz_>m#q#p#wßͥ͝8H~8# " s1r21p~w/~w͝nfp~w1~w2~w/~w0~w~1:J[42()~1Wѷw52 }/o|/g"{ozg"{Oz(>g~1w6͟<Đop͝86ͥ8ZҸw͝Z~(t̓w͙wͦ*b8~^ˮ͕ f7 ͒e6x6zZ(¹<6x?~x?(O޺% ͯ6`ͨ͒Ĵ*/ͨwĴͯ`F %bg>#| 5w J^%~@n(b# ~##Y~ֺ8w###6`Բ~ͳ^(*###> w%b## #˿##^~^(Bb @W͒ 782% ( b Yֺ8###w`^˾ͳe^n6lF~@b#˴+*Nl6lͯqlִͯ(cl)8:!"F! +#O޺/ݦx_{(*|g}oR0+*ͯͨzʏĴb8 ʏl*F~(9x(((( ͡(~(Q(K͡(޺/O :#˯~0+~l˴ ٴY^( >wAwB~l?O?^CVD¹ͅ( ~l?(lsCrDnEfF|!uEtF~O* )"Y¹=K ~#:O ?' +  )###4 !+++ /OG(6"h^m~h8=)))0(r+sȷ! ~#:25!w#r#sZѯ !RDM!x(6Tu't()5)s$r%w&uG)mѳ_mNY޺Gu<8= b ( ^(#Vz[[O([#~([6~1w#~#͟Ƿ(6~#(< ~#É;ˇ;1+R:bk##B8B0! <*%{_G~  (w`*xY~ ##~Z~ =b#$~#  # yDIRDSK¹Z͂ 6 #6#6#6#6#6#`6͕H͂o69 8(6`͕B 1+~=w> O69 (6`^ȷ{ b0%~( ͜ͱȷ~86`¹Z6`>7~(0F b0!~ F `*6#>7~Z*~  N###~< =y >ɯ~#:_!~#J:o:>7 ~/9ط B͕#<_#{ x7NF >8= ɯwAwB͕ͅR1+B0ͅRn&u)= #*F! ^#(V#z~Y~?(w#w#w% ɯvOy(uG7~=~ =nAfB¹!( ~l?(l+uAtBnf![~1w=~={b[~1 ~@Z~(w@>{~1=w\^1͹G)Ts#r#wbu7t8bu9t:Zv 9~1(Zn ,w@0ZZZZZ:w@:w=>w~1w[Oz<(!e͉Oqn7f8|>m#N#N#Fp+q+qm#4#4#4b~?(=~=l b ~    b~nLfMuLtMnNfOuNtO^PVQsPrQf~[(  [~(  [~(>>O~YwY͠(( (!>~((Gy( ([f(ͯ>~Yw!1Pܷ7#VBbks#r#s#r#6#w#T]s#r#s#r)~I4I "!>ïw####^~@(n(b~#=x~=:<>N͠(>v ͯF7>ˮF>˶F۷ >?^n>ˮ[n6N!"ͤ(3>~` &Nͼѷ(+!~( ԿSͯ[z( B>B>7!ײN!"Y~2#˾##~2ͤ(@N:0 ~2N"#˾##0~2 :w6#b ͯ7*|>N͠(Nͯ7^ˮ8((^8( ^ˮ͋YN##FNnI#Y~ ##~++q##p*INb#~I)7p8pԿn9f:w9w:n5f6!9u5t6~[~w[u5t6u9t:=N)÷R ^#V+"5IN#####~@~#w@N1F2u1t2q1p2w@>ïNF /~͠( >~ ͯ ++++7~IG> 2)70:O!7͸!~= /> 2!70!R NN͠7> >2!7͸0)÷R ~I(0= !R^~@O(n(b=~=:<:G#y ( (/((?($O~?(O޺/O ï/~ؾ{F\<(@͐· G· A! Pܷ 8####DMm#~#~#~`iq#p#q#pͶ(%*w3~\<(G^#Vm#~#~#~ͯOw+w+wy[^[vN͠((Ͷ ( ͯ>[v( 7{~ؾ{F\͐ ·{Ͷ( *w3 [^Ͷrط( * ?xS>m#~##<ɯ2(+####DM~## 2m# # # /!4DM^#VBN'>~=>sJrKnJfKN^#VuGtHN####N+nGfH{[F{! ## (^#VT####^͓Ͳ c #w#w#w#w m4 55M/(;x Y~##((6+6I ^?׷!!~շw3>ѷ>{!N#F#~#foB8x>{[F{!!!^#Vr+s## ($!Pѷ =`i T##~#+< w#w+͓Ͳ !~շw3 >!'!'I{9`ͳѯ!^'V( Y~##(?Y6##6*?m6xͳ>$)6"hͳN#Fp+qm#~q#~p#~6w+w+w~3(N#F p+qƷ/{> 2[ ! R^#Vb#~!N#F###~#!^#Vr+s~2(/{~1Ww~1͟w~RwR~SwS}o|g"${ ~1͟Ƿw{/ݦRwRz/ݦSwS*${/oz/g"$~1{ݦROzݦS*$ͲC$wRwSͲ*$}O|>~R/O~S/G:J !-^#V+R( :&(G72*2':&o:'gp!|w~1͟Ƿ~1:OF2y<( ͫ}o|g"+ˀ!1y<(ͫ}o|^#V!1Ry(#### x v E~= ~(+vm ͳp(h $ͳ"!%[+yJx=y<(8x(4@(x`` )!5 ^#Vz(y͉~ p+p! p!1^#V!1R( ! ˶@` !1^#V!1R8(####N#(w#~#> ##q#~*8>)~>6̷͐˾ ~͉~w 6!:&ݾ06 ~(< ~#w# ut= !!6!-!!1ڷ۷ u+t,   !n+f,~#:*11RbZ~(13~ww.~b 3s#r^ V ~0>ww6~8=N F! ~=8qpn f!ͯ;^V~F?nf| )R0= =:!R0nf NFq p utsrNF nfR0; utͮ̈́ѷn f NF DM!Rutͮnf#~wnf^VRη~=<(ͯ~=%ut ~_!5^#Vz %6η ~( 3r+ss r   6~_!e~~#w^#V^ V _!U~Z*Ru1t2:{b^#V#~#|W~|_*  ùG ͚{͚#w ͹x2 bq#p#zͺw#{ͺw 0 !!!!b|<("*p:w[VÍ6/Z~(w0!.u1t2!pTMDbi͆ps1r2q/p0w 0 ( ( ( M{~1O! 0 ( 6~G t4Q{N1Q~1O<(<(_~ (͚("*"-> b|(m~@2C C*|( d*d!o ("6!%o "b !wͫx3>w!P####͚͓*####͸͓*|(͸ͱ*|ı0++++~@:w@ͫw@*|!^#V+R!""F#6#fO(6 0(. (/(2(.0q#o&q5Yv(^ͦԷY;Uo< Y6<Yn(YYv ͖͒ ͦN<;UYvYn͒0 V< ͹0>( G&#6 NZF\Z6\ͫA(Zp\*ͫ*y=Ng:1oùT#[[n@:1w@Nu@h>_6N|!uUtVnUfVh|!uWtXnWfX-އ`-Spooler error (Ignore, Abort)Ϸ(dAO:=:<o,(N!BN#F!BB(!! # ++ c4!B-!8A66S!FN#F!FB( !͆ 4!F A!^#V#N#~#fo z͟!˾!!F#~< +++w@8 !Vٯ ~<(ͫ͑>!6@!BN#F!BB(  +!FN#F!FB(  +####6#KRq#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kb-!b~#<(=(#F!S:O~#(###= !^#V=7~#fo!x"JSMy2L # # !Jw#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut !0[0R(!.~(:,0 !P,(BZ!0!4[4R(!/~(:-0 !P-( Z!44!i"nb"l~02k*np*lu1t2:kw0:pw/!k4~<6#4~<6#4~6[n!RSnb|( iw͹!r1!z!^#V !"Pѷ"6#z !-:yw<2y! +p+qMD!q#p!s#r#q#p!zib bVp ^#V!s1!rv .( ͼ{M!M!z"u{Q.˾(.~˶!r!r~˾!z"54>b|(*| s#r!"usw1*w!r*|!9͗[!R(^#V#<##*u|(!z~=Xw!z!"u:z(!r˶*|"w{w*p#"p*s#"s!Ks"sx!^#V!R!^#VBr+s(0##^#V+++!!ܷ!z>͊5## ͊~4##^#Vy ####*|####v ~#fos#rbPpw"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['*[R>B"~s#r#b"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+q*+F+N+V+^ s#r#* !^#V!R*R +V+^##"~#<(= ~# ~ xD##>)))))))'d  R0y 0OQN#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#r3N˹Q~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!ޯRog_;;| 7bs1r2 :=~=_͹߷wmwb !"ͺͱ((*RS( *"6 *4*6#"ͺͱ(s*~#"(b$o&u=7)u t!ͯ^>V?sr8W*+++KB8HR8Ds>r?~$w~%w~&w6̷͐ v(Y޺ͫwb""Üb! !ë:{~12!͹}(7jp^=͹{!͹|(7jp^=͹=C)! ps#r#^=͹+w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#pb)0 ͹b6# ֆ! Ɇކކކކކކb!*/:Rw3~121:1">w{( (N=(=(g6=6*6|*:N>ͮ !*6+"6*:~#*4K2 R0[4S::<(:=>*q#"!=4> f!:=! !- {( =(.==ʜ===xK*(K*xN>x 3*|(+"*~#*+K R0YPS!4!*|(+"*~#*+K R0YPS!4!x> :@(y>:@(y>x> )(:@((yy2pf!(:@((yy2f!>:@(:!p!>:@(:!!s1:{MG!nO~(˹: *"!"*[RS*q#*+K R0YPS!͔G!nO~(˹: *"!"*[RS*q#*+K R0YPS!͔=x!(!qyOx:( Gy2!x(!~>y(q(Wx(>yQx(>yPZ(Zs1!4~<86͏͈{l!X~N{((5<:O>>:O!qf͟!:>!!!3!3s'~(=(3=ʁ=0=(m> 2 ͼ &>/ :#I> 2 ͼ 6&>/ :# ͼ &z/ :#I> 2 iz:$~ ˟~(2$~ n f "Bnf +"D>I~2~2n f "BF!@)+"D2#iz͏~!$_ ˞W:( N98O~( ́( Ny<:$:$W!#w*B[D"B!4!5Q: : *'!3!!3"'=2 {'>06ͳ V:0O:$_(2$ ͳ :. :$ :0 ͞~0O!y( ^#Vz ##u t > < ݾ>2!~͞~>2!͞~~>i>/!$f>2%x> !<> !%~6/ȯ~͞f(2$2!:ݾ(ͫ w~2ͫ~ >_!)!-"B!"D!$~>:$2$(2L͆!?:!ѣ>2!͆x !9:">  s1 2":%=c :&O:p2&02%2%:p2& !9> {M> > ͗ ^#V|͗ n f ^!`M50M?5(50M 5M;5'(58 (I4MZMk M|M. %4MS(M           !w!w~f=ʅ=@=/=ʤ>2I// w w ~G!_u t >2( !b >> 2( !4 >ɯnfwwwwww^Vw|2}2~2ͦn f "~2R >@QR(>Q!RO y@~P#*RO(y ~P#PORG(P y >*RO(y Pw#}o|g @2 @2 @2 @2y(=A:=2f![F 8A >y )>y &+~(!:8F#( ):q22): :Bl˖ˆ^˞!#####~=+45!2`Vn(v~(  _ >yf:B!`ˆf \>yF J:Bl~(˾˶ˮ:qO"y( >y![!`:cˎ˶˾z4:W>c~@@z~<ˆ:g."g{yy! >y! ! [C{  :=!406[FN x_(ˎN!!`x_ N!!>yyxG 7 x 7x5 5 x>x =_!:pw!:p<::_!N !_z6!1>!*[C{ 1>^G>>>>!">>>!>!F͕!˾~(!͕@p#: (![S+~!S^#V#N#F +*"> > :2MS 2-̓;337ÐiËͰãi~0=(M=([:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 04/04/84) 1X!~(G#~!8 xH  :ʧG!"!~#;(H (;,(7:(3*('A8,0(A0;<a{ N͏ Enter drive(s) to be changed:͏ Invalid drive(s) requested ͏ Following drive(s) in use: ͏ Change drive(s)͏ Enter when change complete͏ Unable to free drive(s): ͕~#;(_$L`2@33 3 3 3 3&3&3!2!2 ",32*,3 # q?l{*ͼʹ ͻ<(C >2!" އO2*[Rͪ! >+r+s+w"2!""Yf M:_>@ô*|F{*|:{*>'&&d& & R0y 0__~( =(=(:_Rea_Writ _Not read_ error, Drive:~AO~(D_, Track:nf_, Sector:nf^Vz( _ -_ (Retry,~( _Ignore,_Abort)|(͛͛sO:ّ:=~F:<Fo&A:͢ C#"!~('6͖( %*#~#2Nz%[ %͢J ʹʹ\: D!'~ 6C#6O#6M%q%^! !6# 6 #!6 7?( c??.(7:( !'7?ȷ:7x7:A?<2c(:.*(:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1 Pxʕ+Pš:\=2:l=2:©:®:As:AsEb ( 88 )ʳʹ! +¿¿>*"8!""*|ͤ*BR0 *+"*[R(O[R8""ͤ""(g:_(( q:_8w(*[""J( V |S*#""*+"|͎8ͣ.)ͽ$'Q{p{͔{͵!ˆ8 :G{G;(!O: _PѷPP>22!"!"*"2<2!""!""As*ͳ8bO: 7(:( : ٷ8 ))))))):=)'d  R0x  0s a{ JVR8 Insert source disk in drive8 Insert destination disk in drive8 Enter to begin copying8 Rea8 Writ8 Copy aborte8 Successful cop8 Non-privileged user8 No source drive specified8 No destination drive specified8 Unable to lockout source drive8 Unable to lockout destination drive8 Source drive not ready 8 Destination drive not ready 8 Disk types not identical 8 Insufficient memory for copy8 error, Drive:8, Track:8 (Retry, Ignore, Abort)8 Unable to execute from bank 1>~#s? (_O: 7(:( : ٷ8 ))))))):=)'d  R0x  0s a{ JVR8 Insert source disk in drive8 Insert destination disk in drive8 Enter to begin copying8 Rea8 Writ8 Copy aborte8 Successful cop8 Non-privileged user8 No source drive specified8 No destination drive specified:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/22/84) 1 Px(B!]~ (V~#(# (085 01Gy8,8)8&8#8 8Oy0_+P   2  +P 0:y(0__  $ Current bank number: $ Invalid bank number requested $ Non-privileged user $ Insufficient memory in bank 0 $O: 7(:( : ٷ8 ))))))):=)'d  R0x  0s a{ JVR8 Insert source disk in drive8 Insert destination disk in drive8 Enter to begin copying8 Rea8 Writ8 Copy aborte8 Successful cop8 Non-privileged user8 No source drive specified8 No destination drive specified18I!+7O ^#Vz*/Zz( !l=7ͥ7©N/!a ~w!. 6^(8~[~@Zn( Z~(͔~#?(~#<#~&wf(͆~ƀwSut)͜7© ͔. n(s1r2####v( ^>V?7ͥ7© ͔ N)͜7© ͔ wO B;7³^V N-qZN( ^`VaNb~cs r q w ~JK^#Vz(0##~ !#~ #~ #~ #~ #~ 6!͈³KN#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf ^V͹ UN- L~W E(> ~w^V )F(~͗w6 6>}þ[`e"K^#Vz>N#F#p+q^#V#~#w`~#wa~#wb~wcZ!6/q͔ u1t2~qqw>~0!8JY~2<($=(!S=!81(/N\F]B " q2s0q~4(=OS! >.>~/w>~/wy4çy|iO TURBO PATTYPE CMVECINT< RELVERIFY CMWS COMnWSMSGS OVRWSMSGS< OVRCWSOVLY1 OVRc[ __WSOVLY1 OVR^STDMASTRREL >STDSLAVEREL STDSLAVEREL!TAXDEPRCINT "CBAS2 COM#&'=()*+,BATLSHP BAS$%CBAS2 COM-.TAXDEPRCBAS/2TAXDEPRCBAK01>CRAPS BAS34DISKSPECBAS 5EARNINT BAS6ERNINT BAS78<LOANPAY BAS9:MILEAGE BAS;SETMX80 BAS <SETUP BAS=>>TEST1 BAS?###6#K1q#p#>w#s#r#s#r#w#w#w##w!A~#<(=(#F!2:.~#(###= !^#V=7~#fo!![R(%!È!B![R(%!È!Bnf ^Vsrut ͔|( ͛/é.!L1!TQ!^#V!p!!͈ѷ!6#z !-:Sw<2S! +p+qMD!q#p!s#r#q#p!TC͔͛ <5͔͚â ^#V%!`Bs1!Lv v( {M!M!T"O{[˾v(~˶*V!L!L~˾!T"5'4>͔|(*V s#r!Z"OsQ1*Q!L*V!9[`!`R(^#V###*O|(!TQ~=w!TC!"O:T(!L˶*V"Q{Q*J#"J*M#"M!KM"Mx!\^#V!\R!^#VBr+s(0##^#V+++%!\B!Z5Q!TC>_5##<_~4h##^#V%y ####͔͈͢é"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s[!%*[R>KB"s#r#͔"!^#V!R(U*+F+N R(+:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/14/84) 1D Px(g+P² 22:\ :] (L:l :m (D:] ( 8Q ;ͬ8H 7:m (< 0 .ͧ` <8Ur͕ͳ!\:k(:i2pw2D* R`pw!(S!l:{(:y2pw2D`pwѷ!*+R0pw:\29*":l!>29=2>2!"P(C:!@)=KCe"Kx(eDS*R!""`P*#"*["*+"| !x :̀:̀_͟ѻ ͟ѻ`  ` Operation successfu` Non-privileged user` No source drive or filename specified` No destination drive or filename specified` Can't find source file` Can't read boot tracks` Can't write destination file` Can't write boot tracks` Not enough memory` Reading source file:` Writing destination file:` Reading boot tracks:` Writing boot tracks:` Unable to execute from bank 1f~#rg_wѷ!*+R0pw:\29*":l!>29=2>2!"P(C:!@)=KCe"Kx(eDS*R!""`P*#"*["*+"| !x :̀:̀_͟ѻ ͟ѻ`  ` Operation successfu` Non-privileged user` No source drive or filename specified` No destination drive or filename specified` Can't find source file` Can't read boot tracks` Can't write destination file` Can't write boot tracks` Not enough memory` Reading source file:` Writing destination f:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/21/84) 1T*"#^#V!T6#s#r++"P"20!F( Px[PP":o&͛:G7g.<͛:? >@o&͛+P !F "*%͛; O:(,:(F A8[0:7=2*~#"h| }82!Ʒ͡UhR( 8<0)2!Ʒ{!  ( 08 0 )))_!4*+"'͹͹d͹ ͹ R0x  0 NS Number of Buffers: Length of Buffers: Local System Size: Memory Available : Non-privileged user Minimum number of buffers = 2  Invalid buffer size requested  Maximum number of buffers = 255 ~#_te destination file` Can't write boot tracks` Not enough memory` Reading source file:` Writing destination f:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/21/84) 11 _$6;# &\͹/ͧ8ͳ:}0=t*y0 { -( ]2]sw0 :}0 N:t0(>_*( Kw0D {w0:}0 4O:t0y(=<8 ` K*(wX7&>: !}0 :!\}0~ (~ ( Copyright 1984, Software 2000, Inc. h%~~o%h%  *#1.$*r0R~/w/w(+"r0*r0| f*r0|?</ 0y:r!v06*r0&R"y0=:v0 !=[y0'!3:v0 ́~/w/wdd#| R  ͎ͳ!v068fo8`g"y08Wo8Qg"{0͟*y0ͳͱ*y0[{0ͳ͹*{0ͳ8+*r0|(R8 [{0*y08w #z BB78~!!15 60}07!!1[!1Rɯ!0w#<2!1}0<}0:}0=WA!~0n~#!'͜͜d͜ ͜ R0y 0|ͺ} 80~#_OSMASTERSYS!4"#1b3E;$.3'[#1"#1Fatal error loading O/S: to retry not founTestingK of memorno errorBad Memory @ loading from to, size, unexpected end-of-fil, not enough memor, bad memorZZ!9u5t6o%>0s#ð~.ZfZ ~.ZfZ"1R%K%n/f0*1ͳ"1u/t0u1t2Y%t.Zu Z*1n5f6Zf 6.63n9f:|(o%n3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!Y%6.o%~/Zf !,!0!:08h!  o%!o%O ^#V|!""""o%"o%o%###!hH " $ o%o%o% o%G e 1o% o%o%o%!!o%.""#5#o%@"o%#o%o%o%o%!o%o%3L"o+lo%o%o%o/Ho%Zo%o%o%o%o%o%o%o%o%o%o%o%o%k"No%B d%o%ͬ(o%X(5o%ͬ 'K% ~(o%o% ~< ~wo%>Zn~@o% ̀[Fo%d%o%|vN++~˾o%o%~@i(6@ w@K%[u1t2 ͬF/d%vͅ7K%~? wl=B=%K%#~@ w#ɷd%* ͑}w3}oͬ=%ͧZ~8` o%d%>o%'͚ 1͚ͧ "ZVo% 68ͧ3Yͼ Oy (0'o%=%F\ ~3 =%D%D% Ao%>84 "| ,o%I ͬ> o%6 4 d%=%F\E ~3 =%D%D% d%o%>8m "| eo%I M ͬ: ;o%o% Co% :4o%| -o%I ͬ:  o%6w3 6d%o%o%4~ >w##4<(7#˾Bo% (ͬ o% K% #˾: o%o%>d%( ( ~8A o%d%o%͚ ͚ͧ o%   ͑~x  ~w(x=(#?(M [ 4(NxFz͢pz~x?(`/wxͬͼ( ~x?V o%K% ~8 o%d%>o%͚< o%K%#ͧ# ˾x880#[N( wͼ o% %=%͒F\i ~3 X ͡D% 8( ͬ> Yo%d% %=%͒F\ͩ ~3 X ͡D% d%(ͬ:> o%o%d%o%o%w3~iw~hw~gwo%7I ~wi#~+w#~#~G~#O>>~Ox ##y|>7o%p##q=~wg~wh=%D%ìd%(swgwhwi~@͚ ͧͼ w3("Zn(:~@(46@͚ +ͧ ~ nˮo%(o%(w@fi^hVgX=(n&ͳG)MDa~g8++~h8###~i8~wg++~wh###~wi~^##Vg{怄O>G{GzGz_>#q#p#wo%'8u~8# ͤ s1r2ͳY%~w/~`%nfY%~w1~w2~w/~w0~`%~1͛!3%[142()~1o%ѷ`%52 }/o|/g"1{ozg"1{Oz(>g~1w6o%<oY%ͅ8w6'8T`%͝~(`%͑`%(ͬ8ͅˮo% o%o%7͢6x6z(D<6x?~x?(O`ͧ 16͑*Fͬ/*F1 çͅK%͚>o%͑#| 5 Jͧ~@n(K%# ~##~X8w###6V~o%(*o%  Vo%O`/Gn&)))))}oD()= ˾##6#6#y=(n&ͳ+R8 s#̓(r#ݯ>###> wͧK%## #˿##~o%(BK%͚ @ 7ͅ82͚ͧ ( K% X8###w˾o%n6l~@K%#M+ͬNl6l1ͅql͘X1v(c)8:!"1! b+b#O`/ݦx_{(*1|g}oR0+ͬ1*zF8 vͬ͝~(9x(((( #(~(Q(K#(`/O :#˯~0+~lM ͑[Y^( >wAwB~l?ÅO?^CVDD( ~l?(sCrDnEfF|!uEtF~O*1 )"1YD= ͙͢1~#͛!O ?' +  )###4y !+++̓ y/OG(6"~8=)))0̓(r+sJ!11~#͛!21ͷ!1w#r#sZѯ1 ̓!1RDM!x(6=%u't()ͷ)s$r%w&G)yѳ_N`G<8= K% ̓( ^(#Vz[[([#~([͸~1w#~#o%(6~#v(< Î~#hԽhˇԽͳ+R͑:bk##B8B0! <ͬͧ{_G~  (wìx~ ##~Z~ =K%#$~# ! # yDIRDSKDͅ 6 #6#6#6#6#6#w66ͻ 8(6 ͳ+u~=w> O6ͻ (6^J{ 0%͝~( 3J~86D͝6>7͝~(0 ͑0!͝~  ͬ͝6#>7w~͑ͬ͝~  N###~< =y >ɯ~#͛!_!1~#3%:1o:1>7 ~/ͻط ͝#<_#{ x7NF >8= ɯwAwBRͳ+B0Rn&)= ͑#ì! ^#̓(V#z~?(w#w#wͧ ɯvyO̓y(G7~=~ =nAfBD!( ~l?(+uAtBnf!D%~1w=~=d%K%D%~1 ~@Z~(w@>d%~1=w\^1;G)=%s#r#wK%u7t8K%u9t:Zv 9~1(Zn ,w@0ZZZZZ:1w@:o%w=>`%~1w[Oz<(!2r$Oqn7f8|>#N#N#Fp+q+q#4#4#4K%~?(=~=l K% ~    K%~nLfMuLtMnNfOuNtO^PVQsPrQn!1^#V+R( $+:1(G72121*:1o:1gY%!,3|`%~1o%~1͛!OF2y<( }o|g"1ˀ!1y<( }o|`^#V!1R$dy(#### x uv Ez~=R u~(+ Zup(4h $ƒ͂Æ[1y3%Zx4=y<(8x(4@(x`` )!1 ^#Vz(y~ p+p!1 pj!1^#V!1R( ! ˶@`Î!1^#V!1R͙(d####N#͉w#~#> ##q#~*8>)~>6˾k~p~w 6!:1ݾ06k~v(< +k~#w# ut=Z4Î͂$!6!1$͂$!1$z#z8$ u+t,   ͂n+f,~#Û!*11RK%Z~(1͔!f!~wx!w.~K% ͔!s#r^ V n!~0>`%w6~8&!=t!N F! ~= 8qpn f!͘$!^V~F? ?nf| )R0=T  =v :!R0nf NFq p utsrNF nfR0; ut! ѷn f NF DM!Rut!nf#~wnf^VRx!~v=<(͘$~=!%ut ~_!1^#Vz %6x! ~v( Î͔!r+ss r   6~_!2~~#w^#V^ V _! 2~Z*o%u1t2:L2d%K%^#V#~#!W~!_*  ;G !d%!#w ;x2 K%q#p#z"w#{"w 0 !!!!K%|<("M2*M2Y%:1w[o%o%6/Z~(w0!.u1t2!Y%=%MDK%R%o%Y%s1r2q/p0`%U# 0 ( ( ( ͮ"d%~1O!O2 0 ( 6~G "4ò#U#d%N1ò#~1O<(<(<²# P#P#U#d%K%:P2~#ͮ"K%o%P#d%K%|<(}2P2:P2d%K%^#V#~#foz~#ͮ"#c#KT2̀#P# o%o%TP#:T2o#:Y2OĽ#o#O:U2:V2ʎ:X2(:W2 ~YwYo%Yf(o% ~;=_!Q2F#^#V!`2$K%|"^2!\25$[`2!`2R(^#V#$##~#*Z2#"Z2:\2*^2+"^2|!\24Sd2!""f2!""h26# x {f2*h2*d2M*f2~#<(=$ ~# ~ xD##>)))))))';$;$d;$ ;$ R0y 0OͲ#N#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#r%N˹Ͳ#~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!o%Rog_%;;| 7{_-( (M=(J_-!2~ 5_-:2_-O%_-:2_-_-!2~O_-~#% !2#&!28$s2~(=(3=ʬ'=[(=(m> 22& 'Q'> )Z' :2t'> 22& 6'Q'> )Z' :2 & 'Q'z3)Z' :2t'> 22͔(¥':2~ ˟~(22~G( ( n f "2nf +"2> )t'~22~22n f "2F!@)+"222͔(¥' (ͺ)~!2_ ˞W:2( N98O~( ͬ)( Ny<:2:2W!2w*2[2"2!24!25Ͳ#:2G(:2*2!28$!#!2#"2=22{2>[(6 (( V:2O:2_(22D) ( :2 :2 :2 )~0O)!y( ^#Vz ##u t > 22D)~)~3)>22D))~3)~>͔(>/!2f>22ͣ)> !<#> D)!2~6/ȯ~)f(22D)22:2ݾ(( w~22(~ >3)_!2!2"2!"2!2~> ):222(22o%D)!2:23)ѣ>22o%ͣ) !2#:2>  sj212 22:2=) :2O:Z22202222:Z222 !28$> {j2M> > ) ^#V|) n f ^!2)`M5*0M?5*(50*0M 5A*M;5R*(5c* (+t*4M*M* M*M*. %+*4M*S(+M*           !2#V+!28$s2~r+=ʚ+=,=ʦ,=+,z,> -*2F "2E, +,z,>0*2F "2-E, ,z,> -N-E, :2(T-{2ͦ,,z,*2:2>P:2w(y -+N,+n f "2nf}|~22~2222!24!25,:2'''G:2怰G:2w x-@:2G:28 :2G_>(˘N,u,:2O!2 ~(6,T-><+N,,u t ~''''!2_ 2>-:2p:2wG-/-#3-!2#!2wg!/-$!28$%{( .=(.=;.=ʿ/=/=/=0xK3*2(K3*3xN>x 3*3|(+"3*2~#*2+K2 R0YPS2!34!3#*3|(+"3*3~#*3+K3 R0YPS3!34!3#x> :3@(y>:3@(y>x> )(:3@((yy23.#! 3#(:3@((yy23.#!$3#>:3@(:3!.$! 38$>:3@(:3!.$!$38$sj212/]/{j2MG!3nO~(˹:T2 *2"2!"3*2[3RS3*2q#*2+K2 R0YPS23!3ͷ/G!3nO~(˹:T2 *3"3!"3*3[3RS3*3q#*3+K3 R0YPS33!3ͷ/=8$x!3(!3qyOx:2( Gy22!3x(!3~>y(q(Wx(>yQx(>yPZ(Z!*34$>Zf /N/^1!+3(y(( (  {04n6o%1111&&D+1$% `2`2 02222Ëy(χ2222L`2@33 3 3 3 3&3&3!2!2 ",32*,3 # q+ 43>2!>o>>> >>G^>o%343o%o%o%o%o%o%o%D)!U)"! }24!." !4 !4 *2""2"2"2*3""3"3"3D20#DDDD99D>1$8 `E`E 0EEEEËy(χEEEEL`2@FF F F F F&F&F!E!E ",FE*,F # q+ 4F>2!>o>>> >>G^>o8FGFo8o8o8o8o8o8o8D n$f%N&F' n(f) s(r) b wO B7Znfu]t^YV("~?(=O!e ~#V?ͳuts^V N-qZN( ^aVbNc~ds r q w ~ͫ^#Vz(0##~ !#~ #~ #~ #~ #~ 8!PܷͫN#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf NFdN-=ַ~ ([ S ~w^V YV ~w6 6nf NFW(` //W_//////###w#ͫ^#Vz>N#F#p+q^#V#~#wa~#wb~#wc~wdͺ6/b͂ {u1t2/h~qOwy{>/͆>/͆>~\w0/~0!R8MY~2<($=(!ͳ=!R84(2N]F^B % q2s0 ~4(=Oͳ!͉~4!R8`q4ͳN]F^ͺ8I(p>6w#:OG!RN#Fpib6/u1t2p ~.>###6.>cq#p~2!R8q26.>g !t.>/͆>ɯZN~0(!e=(!=(!=(60>bͺ>~0R6.>h/ɯ2~2/~1!eR6!e/~12q16!ew#R6~#(< O ~<7ȯ~N˹q##~#foͺ>~w !b~#<( = (#~w :OG!S~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P$ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}""COLDSTRTAUTWARMSTRTAUTOSSLAVE SYSxx, --111$ 6d-PRINT-?0000044::>>BBFF@||@>@ 55;;Ëy(χ Advanced Digital Corp. Super Six up.$yyprtvxz|~ABCDEF 37;@DJD@WOZ_ekoúý2. %YYY+C2 C4PYL!"_P=)!K2x( 0< [40<"W2Y6`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $-PRINT-?0000044::>>BBFF@||@@! \c "CC:o&###r"w:r=o& I :O(G!r͔:P(G!r12͉ͨͨͨ"HͨͨÄ>2ͣG@è^G>>>>O! s#r+}! }2!" ! ! *\r"^"`"b*ur"w"y"{D!rͻ:rG!v:(####+:w>!û:G} I>s;{7"=*9ͦ:Ee*={;ɷ( }2F( :Fͨ߯ɷym=(J=(M=(D=(G((9=((t(s!(t}¯2G"{(8:Go <2Goķͷ>Yf { (i(:(K ͆(!{ 0 Y6U4Rͯ//(7=(:ѷ{<({2Iz(!2H:2Iz :S?SA2G ͨ>@Ĩ!G6 *7| s7"9{7*96;ͦ$n ͡(ͣͣ͡:G:(G:_:W͏{7*9{7*9!E~6ͨ ͡<( >ͦ>2!"2P!"Q ɇO2͸*[5RF!!"?"ACZYf ,>ͦͨ:H_:I_ >@è!|>+r+s+w"2::E*##R>2E*[CRSeZ*?|*A|e{;*=>'d  R0y 0_ Ò~( =(=(:úOReaOWrit ONot readO error, Drive:~AOq~(DO, Track:nfO, Sector:nf^Vz( O -O (Retry,~( OIgnore,OAbort)Ϸ(..̈́cO:đ:=~:<$n. &/ 0:y0,A:~ g!~(76r(0*##~#2~#2~#( OS2!~6 [ .#~}O#"̈́ 6ͮ*"6NS: '!~ 6C#6O#6M.:$(:"́2^!6.#"6|*6+|:~;:7~7#c# !"> > _::  >æ̈́^#V#~#fo~!~ȯw1w2 !͑,8B( (I87(!.(?:(B!,8!(/ I8 $kb I8 !!!Ò>(G!~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2:= =2ZI(:.*(w#6?# (8=(,( O:(yc̈́| s1r26#͓͑6#6 #!~(# (!V:w+ ^qs#r~1< ~=2H~@2I ̈́|(/~™N#:0O[yS̈́!6brn(@~(~( #! r #####:w#:w#qy(#*!:2!6!"~!:^#V+R*|:>2:>!!Fˆ>N  n :_/!ί>ͦͦ!~1 ˎ:<=_æZZ!9u5t6ͨ2è~.ZfZ ~.ZfZ"͋̈́n/f0*ͫ"u/t0u1t2͒t.Zu Z*n5f6Zf 6.63n9f:|(n3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!͒6..~/Zf !,!0!208h!  6ʴͨO ^#V|iKjΘΞҤgmn̨t ̨&4>̙}ͮ=Ζf\oYc̨ αm̨$ȨAҨ*Ψ!}~1w=~=Ý̈́}~1 ~@Z~(w@>Ý~1=w\^13G)vs#r#ẅ́u7t8̈́u9t:Zv 9~1(Zn ,w@0ZZZZZ:w@:w=>Ù~1w[Oz<(!ͫOqn7f8|>1#N#N#Fp+q+q1#4#4#4̈́~?(=~=l ̈́ ~    ̈́~nLfMuLtMnNfOuNtO^PVQsPrQZ*uu1t2:Ý̈́^#V#~#͜W~͜_*  3G ͺÝͺ#w 3x2 ̈́q#p#zw#{w 0 !!!!̈́|<("*Ò:w[ͨè6/Z~(w0!.u1t2!ÒvMD̈́͋ͨ͒s1r2q/p0Ù 0 ( ( ( mÝ~1O! 0 ( 6~G ͔4qÝN1q~1O<(<(_~ (ͺ("*"> ̈́|(m~@2 C*|( ̈́*̈́!͏ ("6!%͏ "̈́ !w%ʷ͘ >Ù!2r####ͺͳ*####ͳ*|(*|0++++~@:w@%w@*|!^#V+R!""F#6#͆O(6 0(. (/(2(.0q#o&q5Yv(^ӷY[u͏<ʆY6<Yn(YYv ͲͶ N<[uYvYnͲP)V< 35P>( G&#6):NZF\Z6\%A(Zp\J5:%Jy=ng:Io3v#}}n@:Iw@nu@͈>_6n|!uUtVnUfV͈|!uWtXnWfXÒOSpooler error (Ignore, Abort)Ϸ(..̈́cO:=:<Ï%-Ù%-Ù%-%-%-Ù%-%-ÙN1F2˸~/Zf @ʨ!*,!,O ^#Vz*s&Yz( !h7=}շ 7w.w37cͯշ U׷O֯~/Zf(!-!]O ~w!. ~@Zn( Z~(Zf 6^(#̈́~#?(~#<#~[~%wf(v~ƀwZf ~/ Ð ̈́. #n(s1r2###v( ^>V?utڷ^V N-qZN( ^aVbNc~ds r q w ~B^#Vz(0##~ !#~ #~ #~ #~ #~ 8!rN#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf NFN-͸۷~ ([ S ~w^V YV ~͸wI6 6nf NF(ÆÔڛ؛؛ڛ؛ڛقbbڏڏ|g|| jppppppp$ڏ^#Vz>N#F#p+q^#V#~#wa~#wb~#wc~wd&6/}̈́F ?u1t2͛,~q}Owyĝ>͛>͛>~\w0Û~0!;8MY~2<($=(!=!;84(2N]F^B % q2s0}շ ~4(=O!ͫ~4!;8`q4͇N]F^&8I(>w#:rG!uN#F͋̈́6/}u1t2͒ ~.>###6.>'q#p~2!;8q26.>g}g !t.>͛>ɯZNj~0(!=(!=(!=(60>̈́&>~0;6.>͡/ɯ2~2/~1!;!/~1͞ڷq1!w#;6~#͸̷(< ÆO ~<7ȯ~N˹q##~#fo&>~w !~#<( = (#~w :rG!v~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P!vF~  ![x++++'!iN#F!iB( !m  !i2 xR(!V >}͡(N!eN#F!eB(!! # ++ cͯ!e2ͨ![cI66S!iN#F!iB( ! ͯ!i2 c!^#V#N#~#fo !˾!!F#~< +++wͻ8 !V̔ޯ ~<(& >c!6ͻ!eN#F!eB(  ͦ!iN#F!iB(  ͦ####6#Kuq#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kbͨ!~#<(=(#F!v:r~#(###= !^#V=7~#fo!"mSpy2o # # ͚!mw#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut !S[SR(!Q~(:O0 !rO(B!S2!W[WR(!R~(:P0 !rP( !W24!̈́|( ͋ Ù3!1!$!^#VB!"rѷ"6#z !-:w<2! +p+qMD!q#p!s#r#q#p!͋̈́ ,̈́xÒ ^#V!2s1!v P( {M!M!"{QP˾(P~˶!!~˾!"54>̈́|(* s#r!"s1*!*!9͹[!R(^#V#^##*|(!$~=zw!!":(!˶*"{*#"*#"!K"x!^#V!R!^#VBr+s(0##^#V+++!2!$!>ͬ5##,ͬ~4<##^#Vy ####*####v ~#fos#r̈́r͒Ù"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['*[R>B"Xs#r#̈́"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+q*+F+N+V+^ s#r#*,!^#V!R*R +V+^##"~#<(= ~# ~ xD##>)))))))'d  R0y 0OqN#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#rUN˹q~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!Rog_;;| 72 ́!$"!: !,/0!08%h!x 2ʋ2ʹֆ! O ^#V|̈́ !! 6%ʷ 'l8%ʷ ͋ͯ=(>%w.!:> *+++K5BRZF(!45(!(s1G{:1G|!\*>è~1(# :*+++[5R8[R8 2:>Ù222222222#2222 FN } 222222 _2 2222 22q2222#44HH2222222222%12<222T2222222%2n2222222t22n|2*o |: * |!N*"*" : o>p2 *R0!["S&KB$: O|Kx x2x2!xX2ѷcxXc2[!"* N#Fx !*SV |S͹*͹"^||1G*>*|2%*|2S2*:د2 2tl2t!!"C 1*!: ZF( *: v!{=_ZF( :({2 s\>ZF(:: ~\cͯշ U KU׷ E~. "v( l0wOv(͋ͯVP6.cw0ͯշ > 4U׷ .Ov(͋ͯV(P63ï~/"cG>͋ͯѷ Iͯ  %1~<w~/"U׷ O w3w3~/"ï:Ý~12!3}(7jzÒ^=3Ý!3|(7jÒ^=3=)!(͒s#r#^=3+w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#p̈́)0 3,̈́6#{-( (M=(J-!8~ 5-:7-O͊-:7--!9~O-~#O !C~̹{((5>>>:AO!Bq͈!D:B>!!D!KX~{((5g-:JO-{( =(.= =ʓ=ʽ==xKd*b(K}*{xN>x 3*d|(+"d*b~#*\+K^ R0YPSb!f4!i*}|(+"}*{~#*u+Kw R0YPS{!4!x> :h@(y>:@(y>x> )(:h@((yy2ga͈!o(:@((yy2͈!>:h@(:g!a!o>:@(:!!s1.{MG!hnO~(˹Ͷ: *`"b!"d*\[dRSd*`q#*\+K^ R0YPS`f!i͋G!nO~(˹Ͷ: *y"{!"}*u[}RS}*yq#*u+Kw R0YPSy!͋=x!h(!qyOx:[( Gy2[!hx(!~>y(q(Wx(>yQx(>yPZ(Zy(=()!b@p#!˾v(˶!!!~( !bF!> s1> !!{Î*y #"~wN! ~<(.^%V&:rG!u~# ~###(N !ͫ<(w36~'| ~Yw#~<~(  !uetfneffnjfk$ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}::COLDSTRTAUTWARMSTRTAUT1$H -PRINT-?000SSWW]]aaeeii@|  FF @kkqq|| Advanced Digital Corp. Banked Super Slave A ready.$ $OSSLAVE SYS37;@DJD@WOZ_ekoúý2. %YYY+CJ CLPYL!"_P=)!KJx( 0< [L0<"o2qN`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1r>{s1>{s1͵>{vJD@WOZ_ekoúý2. %YYY+CJ CLPYL!"_P=)!KJx( 0< [L0<"o2qN`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{>?C!Mc.h"͞:o&###"w:F=o&hͤ :#(G!:$(G!&12͉"v>2ͣGnM^G>>>>O! s#r+}! }2L!" !B !B !B !B **","."0*C"E"G"I*\"^"`"b*u"w"y"{D!Fͻ:FG!J:(####+:w>!û:GQhͤ>s{ "* :*{ɷ( . ؿ2'( :Z`?ݯɷyȾ=(J=(M=(D=(G((9=((t(s!(tؿ2"{(8:o <2oj>Yf { (ji(:(K (!{ 0 Y6U4R />/(7=(:T`ѷT{<({2z(!2:Z2z :SS2`J >@!6 * | s " { * 6;``$nZ< `(<<<<:G:(G:_:W`S{ * ``{ * S!~6< <(`> >>2!"2P!۽"Q ZLJZO2`*[ R͡!!""͞ZYf `,>`ZK:_Z:_ Z>@!׽>+r+s+w"2::*##R>2*n[Rͮõ*|A*|{*>'d  R0y 0_Z Zͪ~( =(=(:ͪReaͪWrit ͪNot readͪ error, Drive:~AO~(Dͪ, Track:nf4ͪ, Sector:nf4^Vz( ͪ -4ͪ (Retry,~( ͪIgnore,ͪAbort)j̷(͉͉;O::=~A:<A$n͉ǵ/ 0:y0nn͇An:n g!~(76(0p*##~#2~#2~#( OS͍!~6 [ ͉#~ؿO#" 6 *" -ʩS: ʂ!~ 6C#6O#6M͉:(:͍<ʮ=:!\<(-(\$<( -(l$*L8 {< L0O{=ր2y\g:=2:( :2*L0\ؿMC: :( :<͇^nn! ͉#" |* +|:~;:7~7#;# !"> n> _::  >^#V#~#fo!ůw1w2 !͇8B( (ͤ87(!.(?:(B!͇8!(/ ͤ8 $kb ͤ8 !!!>(G!~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2:= =2õͤ(:.*(w#6?# (8=(,( O:(y;| s1r26#6#6 #!~(# (!V:w+ ^q2:T(!V!VFˆ>N J  :U3(/!Vί>!V~1 ˎ:W<=_ZZ#!9u5t6!͍6~.ZfZ ~.ZfZ"Xn/f0*X#6"Xu/t0u1t2t.Zu Z*Xn5f6Zf 6.63n9f:|(-n3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!6.͉~/Zf !,!0!08h!  ʑͣO ^#V|ʦr06W]flr H~1=w\^1͎G)s#r#wu7t8u9t:Zv 9~1(Zn ,w@0ZZZZZ:Zw@:w=>~1w[Oz<(!\Oqn7f8|>͌#N#N#Fp+q+q͌#4#4#4~?(=~=l  ~    ~nLfMuLtMnNfOuNtO^PVQsPrQZ*Iu1t2:^#V#~#W~_*  ÎG #w ͎x2 q#p#z5w#{5w 0 !!!!|<("*:[w[6/Z~(w0!.u1t2!MDs1r2q/p0o 0 ( ( ( ~1O! 0 ( 6~G 4oN1~1O<(<(< jj̷o:~#fj ; SSLAVBKC.PAR file to generate an "OSSLAVEC.SYS" (banked) USRSOM = 0D,0A,' ARROW PRECISION PRODUCTS -- Banked Super Slave C ready.$' SRHDRV = 0FF ;SEARCH SYSTEM DISK FOR .COM FILES COMPAT = 0F8 ;FILE/RECORD LOCKING COMPATIBILITY FLAGS ;CPMVER = 022 ;INHIBIT CB-80 RECORD LOCKING CONBR = 0CF ;USE 19.2K BAUD TERMINAL FOR CONSOLE WITH CTS ;CONBR = 08E ;USE 9600 BAUD TERMINAL FOR CONSOLE CTSBR = 6E ;9600 BAUD CTS PRINTER ATNCHR = 0 ;USE "BREAK" KEY FOR ATTENTION ; ; CLSSTR IS THE CLEAR SCREEN STRING THAT IS SENT TO THE ; TERMINAL TO CLEAR THE SCREEN WHEN EVER THE CLEAR SCREEN ; CHARACTER IS SENT TO THE CONSOLE DRIVER. ; MAXIMUM LENGTH IS 8 BYTES. ; LAST CHARACTER OF STRING MUST HAVE HIGH BIT SET. ;CLSSTR = 0C,1A,1B,2A+80,80,80,80,80 ;THIS IS THE DEFAULT STRING ; PRTMOD = 0 ;DEFAULT PRINT MODE = SPOOLED ; PTRAST = 01,LSTDRA ; PRINTER = SERIAL ;QUEAST+12 = 0,(0),0,(0); QUEUE ASSIGNMENT TABLE, LOCALLY GENERATED QUEUE ;DSPPAT+6 = 7,8 ; PRINTER G USES QUEUE G, PRINTER H USES QUEUE H ;QUEPTR = 7 ; COME UP ON PRINTER G ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE UP TO 5 ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM START AUTOLOAD FILE NAME ; 1.4 chain to program patch (ALL CONFIGURATIONS) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db  THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE UP TO 5 ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ",+~w_ n]f^u]t^((hhh8(h8((8((h@P!|F~ ̓!a|++++'!oN#F!oB( !s  !o6 |R(!V >ͥ(N!kN#F!kB(!! # ++ cͳ!k6ͬ!agM66S!oN#F!oB( ! ͳ!o6 g!^#V#N#~#fo !˾!!F#~< +++wͿ8 !V̘ޯ ~<(*>g!6Ϳ!kN#F!kB(  ͪ!oN#F!oB(  ͪ####6#K{q#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kbͬ!~#<(=(#F!|:x~#(###= !^#V=7~#fo!"sSvy2u # # ͞!sw#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut !Y[YR(!W~(:U0 !vU(B!Y6!][]R(!X~(:V0 !vV( !]64!͈|( ͏Ý7!1!(!^#VF ; SSLAVBKD.PAR file to generate an "OSSLAVED.SYS" (banked) USRSOM = 0D,0A,' ARROW PRECISION PRODUCTS -- Banked Super Slave D ready.$' SRHDRV = 0FF ;SEARCH SYSTEM DISK FOR .COM FILES COMPAT = 0F8 ;FILE/RECORD LOCKING COMPATIBILITY FLAGS ;CPMVER = 022 ;INHIBIT CB-80 RECORD LOCKING CONBR = 08F ;USE 19.2K BAUD TERMINAL FOR CONSOLE ;CONBR = 0CE ;USE 9600 BAUD TERMINAL FOR CONSOLE CTSBR = 0CE ;9600 BAUD CTS PRINTER ATNCHR = 0 ;USE "BREAK" KEY FOR ATTENTION ; ; CLSSTR IS THE CLEAR SCREEN STRING THAT IS SENT TO THE ; TERMINAL TO CLEAR THE SCREEN WHEN EVER THE CLEAR SCREEN ; CHARACTER IS SENT TO THE CONSOLE DRIVER. ; MAXIMUM LENGTH IS 8 BYTES. ; LAST CHARACTER OF STRING MUST HAVE HIGH BIT SET. ;CLSSTR = 0C,1A,1B,2A+80,80,80,80,80 ;THIS IS THE DEFAULT STRING ; PRTMOD = 0 ;DEFAULT PRINT MODE = DIRECT ; PTRAST = 01,LSTDRA ; PRINTER = SERIAL ;QUEAST+18 = 0,(0),0,(0); QUEUE ASSIGNMENT TABLE, LOCALLY GENERATED QUEUE ;DSPPAT+8 = 9,0A ; PRINTER I USES QUEUE I, PRINTER J USES QUEUE J  ;QUEPTR = 9 ; COME UP ON PRINTER I ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM START AUTOLOAD FILE NAME ; 1.4 chain to program patch (ALL CONFIGURATIONS) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db ILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM STAR  %5~<w~/"Y׷ S w3w3~/"ó:á~12!7}(7j~Ö^=7á!7|(7jÖ^=7=)!.͖s#r#^=7+w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#p͈)0 70͈6#ʁʎʖֆ!c ɬu{͈!*=:{w3~12?:?x 3*d|(+"d*b~#*\+K^ R0YPSb!f4!i*}|(+"}*{~#*u+Kw R0YPS{!4!x> :h@(y>:@(y>x> )(:h@((yy2gg͌!o(:@((yy2͌!>:h@(:g!g!o >:@(:!! s1 4{MG!hnO~(˹ͼ: *`"b!"d*\[dRSd*`;SSLAVBKD.GEN file to generate an "OSSLAVED.SYS" (banked) STDSLAVE ;STANDARD NETWORKING SLAVE BNKMGR ;BANKED MEMORY MANAGER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING ;LSTXON ;XON/OFF PRINTER DRIVER 1200 BAUD ;LSTETX ;ETX PRINTER SERIAL DRIVER SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS ;SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPOOL ;DESPOOLER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING ;LSTXON ;XON/OFF PRINTER DRIVER 1200 BAUD ;LSTETX ;ETX PRINTER SERIAL DRIVER SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS ;SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPObD!c":o&###H"w:-=o&_ : (G!Hj: (G!H͡12͉~\~"H~~Z>2ͣG@~^G>>>>O! s#r+}! }2!^" ! ! *H"""*'H")"+"-D!ͻ:-G!1:(####+:w>!xû:G& !Hq $! Hw#w#]Ts#r#s#r# #s#r _>s{"*|:;*{ɷ( ʩ S2͢( :~ͺܯɷyC=(J=(M=(D=(G((9=((t(s!(tS2"{(8:o <2oč͍>Yf { (i(:{(K \(!v{ 0 Y6U4Rͅ/͹/(7=(:ϽѷϽ{<({2z(!2:A2z :SS2 ~>@~!6 *| s"{*6;|]f$nͷ w(ͷyͷyͷ[wķ:G:(G:_:Wοe{*{*ο!~6~ķ~ w<(͹ >|>2!"2P!V"Q ƇO2͎*[R!!""ZYf ,>|~:_:_ >@~!R>+r+s+w"2::*##R>2*U[R);0*|ʼ*|;{*>'͗͗d͗ ͗ R0y 0_ %V~( =(=(:_Ð%Rea%Writ %Not read% error, Drive:~AOG~(D%, Track:nfͯ%, Sector:nfͯ^Vz( % -ͯ% (Retry,~( %Ignore,%Abort)˷(Z9O:_:{=~ʼ:p<ü$n/ 0:y0A:T g!~(76H(0*##~#2~#2~#( OS!~6 [ #~SO#"Z 6̈́*"ͨ$S: !~ 6C#6O#6M:(:W<)=R:W!\TT_ͷ(ͨ(\͟ͷ( ͨ(l͟*8 {< 0O{=ր2y:=2:( :W2*0S4C: :( :<^!#"|*+|:~;:7~7#9# !"> > _::  >|Z^#V#~#foT!Tůw1w2 !g8B( (87(!.(?:(B!8!(/ 8 $kb 8 !!!h>(G!~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2:= =20(:.*(w#6?# (8ͥ=(,( O:(y9Z| s1r26#gi6#6 #!~(# t (!V:w+ ^qͷs#r~1< ~=2~@2öZ|(/~oN#:0O[ySZ!68HD(@T(~( #! H #####:w#:w#qy(#*!!6!"T!^#V+R*|:>2:;ͣ!=!=Fˆ>N  D :<ͣ/!=ί>||!=~1 ˎ:><=_|ZZ͞!9u5t6͜~ͱ~~.ZfZ ~.ZfZ"?aZn/f0*?͞ͱ́"?u/t0u1t2ht.Zu Z*?n5f6Zf 6.63n9f:|(ͨn3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!h6.~/Zf !z,!0!08h!h  ʊ~O ^#V|?!@ntz=C˫˱D~~~~~~~~~Jgt~~~~~~~~ oSʄlʱ<2E/9~~~ʇC~̷ƭ~~~~~~~~Ϣ1w~~!S~1w=~=sZS~1 ~@Z~(w@>s~1=w\^1 G)Ls#r#wZu7t8Zu9t:Zv 9~1(Zn ,w@0ZZZZZ:Aw@:w=>o~1w[Oz<(!ĆOqn7f8|>#N#N#Fp+q+q#4#4#4Z~?(=~=l Z ~    Z~nLfMuLtMnNfOuNtO^PVQsPrQZ*0u1t2:ssZ^#V#~#rW~r_*  G ͐s͐#w x2 Zq#p#zͰw#{Ͱw 0 !!!!Z|<("t*th:Bw[~~6/Z~(w0!.u1t2!hLMDZa~hs1r2q/p0o 0 ( ( ( Cs~1O!v 0 ( 6~G j4GsN1G~1O<(<(2ͣG@~^G>>>>O! s#r+}! }2!^" ! ! *H"""*'H")"+"-D!ͻ:-G!1:(####+:w>!xû:G& !Hq $! Hw#w#]Ts#r#s#r# #s#r _>s{"*|:;*{ɷ( ʩ S2͢( :~ͺܯɷyC=(J=(M=(D=(G((9=((t(s!(tS2"{(8:o <2oč͍>Yf { (i(:{(K \(!v{ 0 Y6U4Rͅ/͹/(7=(:ϽѷϽ{<({2z(!2:A2z :SS2 ~>@~!6 *| s"{*6;|]f$nͷ w(ͷyͷyͷ[wķ:G:(G:_:Wοe{*{*ο!~6~ķ~ w<(͹ >|>2!"2P!V"Q ƇO2͎*[R!!""ZYf ,>|~:_:_ >@~!R>+r+s+w"2::*##R>2*U[R);0*|ʼ*|;{*>'͗͗d͗ ͗ R0y 0_ %V~( =(=(:_Ð%Rea%Writ %Not read% error, Drive:~AOG~(D%, Track:nfͯ%, Sector:nfͯ^Vz( % -ͯ% (Retry,~( %Ignore,%Abort)˷(Z9O:_:{=~ʼ:p<ü$n/ 0:y0A:T g!~(76H(0*##~#2~#2~#( OS!~6 [ #~SO#"Z 6̈́*"ͨ$S: !~ 6C#6O#6M:(:W<)=R:W!\TT_ͷ(ͨ(\͟ͷ( ͨ(l͟*8 {< 0O{=ր2y:=2:( :W2*0S4C: :( :<^!#"|*+|:~;:7~7#9# !"> > _::  >|Z^#V#~#foT!Tůw1w2 !g8B( (87(!.(?:(B!8!(/ 8 $kb 8 !!!h>(G!~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2:= =20(:.*(w#6?# (8ͥ=(,( O:(y9Z| s1r26#gi6#6 #!~(# t (!V:w+ ^qͷs#r~1< ~=2~@2öZ|(/~oN#:0O[ySZ!68HD(@T(~( #! H #####:w#:w#qy(#*!!6!"T!^#V+R*|:>2:;ͣ!=!=Fˆ>N  D :<ͣ/!=ί>||!=~1 ˎ:><=_|ZZ͞!9u5t6͜~ͱ~~.ZfZ ~.ZfZ"?aZn/f0*?͞ͱ́"?u/t0u1t2ht.Zu Z*?n5f6Zf 6.63n9f:|(ͨn3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!h6.~/Zf !z,!0!08h!h  ʊ~O ^#V|?!@ntz=C˫˱D~~~~~~~~~Jgt~~~~~~~~ oSʄlʱ<2E/9~~~ʇC~̷ƭ~~~~~~~~Ϣ1w~~!S~1w=~=sZS~1 ~@Z~(w@>s~1=w\^1 G)Ls#r#wZu7t8Zu9t:Zv 9~1(Zn ,w@0ZZZZZ:Aw@:w=>o~1w[Oz<(!ĆOqn7f8|>#N#N#Fp+q+q#4#4#4Z~?(=~=l Z ~    Z~nLfMuLtMnNfOuNtO^PVQsPrQZ*0u1t2:ssZ^#V#~#rW~r_*  G ͐s͐#w x2 Zq#p#zͰw#{Ͱw 0 !!!!Z|<("t*th:Bw[~~6/Z~(w0!.u1t2!hLMDZa~hs1r2q/p0o 0 ( ( ( Cs~1O!v 0 ( 6~G j4GsN1G~1O<(<(_~ (͐("*"> Z|(m~@2 C*|( Z*Z!e ("6!%e "Z !wƷn>o!H####͉͐*####͉ͮ*|(ͮͧ*|ħ0++++~@:w@w@*|!^#V+R!""F#6#\O(6 0(. (/(2(.0q#W6Yv!!H;=!4~:860+D~To&q5Yv(^͜зY1Ke<\Y6<Yn(YYv ͈͌ ͜N<1KYvYn͈&V< &>( G&#6NZF\Z6\A(Zp\  y=Dg:o L#SSn@:w@Du@^>_6D|!uUtVnUfV^|!uWtXnWfX%V%Spooler error (Ignore, Abort)˷(Z9O:=:~<eooooN1F2˸~/Zf @~!,!,O ^#Vz*.Yz( !>7=Sҷ 7w.w379ͅҷ ͠+Է%ӯ͢~/Zf(!!3O ~w!. ~@Zn( Z~(Zf 6^(#Z~#?(~#<#~[~%wf(L~ƀwZf ~/ f Z. #n(s1r2###v( ^>V?ut͵׷^V N-qZN( ^aVbNc~ds r q w ~^#Vz(0##~ !#~ #~ #~ #~ #~ 8!H޷N#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf NF͵N-͎ط~ ([ S ~w^V YV ~͎w6 6nf NFͨ(͢\jqqיաqqqqqqX88eeeR=RR@FFFFFFFe^#Vz>N#F#p+q^#V#~#wa~#wb~#wc~wd6/SZ u1t2q~qSOwys>qU>q͸>~\w0q~0!͔8MY~2<($=(!=!͔84(2N]F^B % q2s0Sҷ ~4(=O!́~4!͔8`q4]N]F^8I(Ͳ>w#:-G!0N#FͲaZ6/Su1t2h ~.>###6.>q#p~2!͔8q26.>=Sg !t.>q>ɯZN~@~0(!C=(!=(!=(60>Z>~0͔6.>~~w/ɯ2~2/~1!C͔!C/~1t׷q1!Cw#͔6~#͎ɷ(< \O  ~<7ȯ~N˹q##~#fo>~w !@~#<( = (#~w :-G!1~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P!1F~ U!N++++'!$N#F!$B( !(  !$ NR(!V ͡͡>&w(N! N#F! B(!! # ++ cͅ! ~!966S!$N#F!$B( ! ͅ!$ 9!^#V#N#~#fo !˾!!F#~< +++w͑8 !Vjۯ ~<(>9!6͑! N#F! B(  |!$N#F!$B(  |####6#K0q#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kb~!@~#<(=(#F!1:-~#(###= !^#V=7~#fo!"(S+y2* # # p!(w#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut ![R(! ~(: 0 !H (Bͫ!![R(! ~(: 0 !H ( ͫ!4!Z|( ao !K1!S!^#V!"Hѷ"6#z !-:Rw<2R! +p+qMD!q#p!s#r#q#p!SaZ ZNh ^#V!_s1!Kv &( ʹ{M!M!S"N{Q&˾(ͺ&~˶!K!K~˾!S"54>Z|(*U s#r!Y"NsP1*P!K*U!9͏[_!_R(^#V#4##*N|(!S~=Pw!S!"N:S(!K˶*U"P{P*I#"I*L#"L!KL"Lx![^#V![R!^#VBr+s(0##^#V+++![!Yݷ!S>͂5##͂~4##^#Vy ####*U####v ~#fos#rZHho"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['*[R>B".s#r#Z"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+q*+F+N+V+^ s#r#*!^#V!R*R +V+^##"~#<(= ~# ~ xD##>)))))))'d  R0y 0OGN#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#r+N˹G~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!~Rog_;;| 72W!$"!f: !r,/0!08%h!N aʏֆ!` O ^#V|Z !! 6Ʒ 'B8Ʒ aͅ=(>w.͡!:> *+++KBR͡ZF(!45(!(s1G{:1GR!\*>è~1(# :*+++[R8[~R8 2:>o$S5YGWn *DJͺnR2*E R: ͺ* R!N*"*":o>p2͚*R0!["SKB:ORKx NN!N.ѷ9N.9[!"* N#Fx !*S͝,RS͏ͽ*͏"4||1G*>*|*|S*:د2JBJ!!" 1*!ͭ:ZF( *: L!{=_ZF( :({2s\>ZF(::~\9ͅҷ U͠ K+Է E~. "v( B0w%v(aͅV͢&͢6.͡9w0ͅҷ >͠ 4+Է .%v(aͅV͢(&͢63Å͡~/"̪9G>aͅѷ Iͅ ͠ %~<w~/"+Է % w3w3͢~/"̹Å:s~12! }(7jPh^= s! |(7jzh^= =)!hs#r#^= +w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#pZ)0  Z6#{( (M=(J!~ 5:O`:!~O~#% !X~̕{((5:O(  {( z=(.=ʲ=<=f=r=ʔxK*(K/*-xN>x 3*|(+"*~#*+K R0YPS!4!*/|(+"/*-~#*'+K) R0YPS-!14!4x> :@(y>:3@(y>x> )(:@((yy2 ^!!(:3@((yy224^!:>:@(:! !!>:3@(:2!4!:s1z{MG!nO~(˹_:{ *"!"*[RS*q#*+K R0YPS!4G!3nO~(˹_:{ *+"-!"/*'[/RS/*+q#*'+K) R0YPS+1!44=x!(!3qyOx: ( Gy2 !x(!3~>y(q(Wx(>yQx(>yPZ(Zy(=()!A @p#!@˾v(˶!Mݯ!G!@~( !M F!Gݯ> s1> !@!A{d*Xy #"X~wN! ~<(.^%V&:-G!0~# ~###(N !Ć<(w6~| ~Yw#~<~(  !uetfneffnjfk ͪYN! ! ~( (wN####^#Vz(͹s#r!!~#w@~w70O'6Ͳ! 6!w#w#w~(<=( =(,6͙OͲ"1!~=('Ͳ A͙6Ͳ!ѷ !!4 #4 #4͉ͪͲ"~(͙Ͳ1?( N! p>ƷDy"D̀">~D#~B[ny"ǹ"yq}o|~B[{ozg}/o|/gN#͛~oZ! z<(ez<(=(=o{(wzo ͹^#VN! ɷ( #~#fo!!O ! ~N! $ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}COLDSTRTAUTWARMSTRTAUT1$ }-PRINT-?000 $$~~~@UU[[__R  @##66<<CCIIOO||S Advanced Digital Corp. Banked Super Slave C ready.$   $OSSLAVE SYS37;@DJD@WOZ_ekoúý2. %YYY+C CPYL!"_P=)!Kx( 0< [0<"*2, `i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'͗>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1>{s1x>{s1^>{vOZ_ekoúý2. %YYY+C CPYL!"_P=)!Kx( 0< [0<"*2, `i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'͗>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1bD!c":o&###H"w:-=o&_ : (G!Hj: (G!H͡12͉~\~"H~~Z>2ͣG@~^G>>>>O! s#r+}! }2!^" ! ! *H"""*'H")"+"-D!ͻ:-G!1:(####+:w>!xû:G& !Hq $! Hw#w#]Ts#r#s#r# #s#r _>s{"*|:;*{ɷ( ʩ S2͢( :~ͺܯɷyC=(J=(M=(D=(G((9=((t(s!(tS2"{(8:o <2oč͍>Yf { (i(:{(K \(!v{ 0 Y6U4Rͅ/͹/(7=(:ϽѷϽ{<({2z(!2:A2z :SS2 ~>@~!6 *| s"{*6;|]f$nͷ w(ͷyͷyͷ[wķ:G:(G:_:Wοe{*{*ο!~6~ķ~ w<(͹ >|>2!"2P!V"Q ƇO2͎*[R!!""ZYf ,>|~:_:_ >@~!R>+r+s+w"2::*##R>2*U[R);0*|ʼ*|;{*>'͗͗d͗ ͗ R0y 0_ %V~( =(=(:_Ð%Rea%Writ %Not read% error, Drive:~AOG~(D%, Track:nfͯ%, Sector:nfͯ^Vz( % -ͯ% (Retry,~( %Ignore,%Abort)˷(Z9O:_:{=~ʼ:p<ü$n/ 0:y0A:T g!~(76H(0*##~#2~#2~#( OS!~6 [ #~SO#"Z 6̈́*"ͨ$S: !~ 6C#6O#6M:(:W<)=R:W!\TT_ͷ(ͨ(\͟ͷ( ͨ(l͟*8 {< 0O{=ր2y:=2:( :W2*0S4C: :( :<^!#"|*+|:~;:7~7#9# !"> > _::  >|Z^#V#~#foT!Tůw1w2 !g8B( (87(!.(?:(B!8!(/ 8 $kb 8 !!!h>(G!~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2:= =20(:.*(w#6?# (8ͥ=(,( O:(y9Z| s1r26#gi6#6 #!~(# t (!V:w+ ^qͷs#r~1< ~=2~@2öZ|(/~oN#:0O[ySZ!68HD(@T(~( #! H #####:w#:w#qy(#*!!6!"T!^#V+R*|:>2:;ͣ!=!=Fˆ>N  D :<ͣ/!=ί>||!=~1 ˎ:><=_|ZZ͞!9u5t6͜~ͱ~~.ZfZ ~.ZfZ"?aZn/f0*?͞ͱ́"?u/t0u1t2ht.Zu Z*?n5f6Zf 6.63n9f:|(ͨn3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!h6.~/Zf !z,!0!08h!h  ʊ~O ^#V|?!@ntz=C˫˱D~~~~~~~~~Jgt~~~~~~~~ oSʄlʱ<2E/9~~~ʇC~̷ƭ~~~~~~~~Ϣ1w~~!S~1w=~=sZS~1 ~@Z~(w@>s~1=w\^1 G)Ls#r#wZu7t8Zu9t:Zv 9~1(Zn ,w@0ZZZZZ:Aw@:w=>o~1w[Oz<(!ĆOqn7f8|>#N#N#Fp+q+q#4#4#4Z~?(=~=l Z ~    Z~nLfMuLtMnNfOuNtO^PVQsPrQZ*0u1t2:ssZ^#V#~#rW~r_*  G ͐s͐#w x2 Zq#p#zͰw#{Ͱw 0 !!!!Z|<("t*th:Bw[~~6/Z~(w0!.u1t2!hLMDZa~hs1r2q/p0o 0 ( ( ( Cs~1O!v 0 ( 6~G j4GsN1G~1O<(<(_~ (͐("*"> Z|(m~@2 C*|( Z*Z!e ("6!%e "Z !wƷn>o!H####͉͐*####͉ͮ*|(ͮͧ*|ħ0++++~@:w@w@*|!^#V+R!""F#6#\O(6 0(. (/(2(.0q#W6Yv!!H;=!4~:860+D~To&q5Yv(^͜зY1Ke<\Y6<Yn(YYv ͈͌ ͜N<1KYvYn͈&V< &>( G&#6NZF\Z6\A(Zp\  y=Dg:o L#SSn@:w@Du@^>_6D|!uUtVnUfV^|!uWtXnWfX%V%Spooler error (Ignore, Abort)˷(Z9O:=:~<eooooN1F2˸~/Zf @~!,!,O ^#Vz*.Yz( !>7=Sҷ 7w.w379ͅҷ ͠+Է%ӯ͢~/Zf(!!3O ~w!. ~@Zn( Z~(Zf 6^(#Z~#?(~#<#~[~%wf(L~ƀwZf ~/ f Z. #n(s1r2###v( ^>V?ut͵׷^V N-qZN( ^aVbNc~ds r  q w ~^#Vz(0##~ !#~ #~ #~ #~ #~ 8!H޷N#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf NF͵N-͎ط~ ([ S ~w^V YV ~͎w6 6nf NFͨ(͢\jqqיաqqqqqqX88eeeR=RR@FFFFFFFe^#Vz>N#F#p+q^#V#~#wa~#wb~#wc~wd6/SZ u1t2q~qSOwys>qU>q͸>~\w0q~0!͔8MY~2<($=(!=!͔84(2N]F^B % q2s0Sҷ ~4(=O!́~4!͔8`q4]N]F^8I(Ͳ>w#:-G!0N#FͲaZ6/Su1t2h ~.>###6.>q#p~2!͔8q26.>=Sg !t.>q>ɯZN~@~0(!C=(!=(!=(60>Z>~0͔6.>~~w/ɯ2~2/~1!C͔!C/~1t׷q1!Cw#͔6~#͎ɷ(< \O  ~<7ȯ~N˹q##~#fo>~w !@~#<( = (#~w :-G!1~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P!1F~ U!N++++'!$N#F!$B( !(  !$ NR(!V ͡͡>&w(N! N#F! B(!! # ++ cͅ! ~!966S!$N#F!$B( ! ͅ!$ 9!^#V#N#~#fo !˾!!F#~< +++w͑8 !Vjۯ ~<(>9!6͑! N#F! B(  |!$N#F!$B(  |####6#K0q#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kb~!@~#<(=(#F!1:-~#(###= !^#V=7~#fo!"(S+y2* # # p!(w#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut ![R(! ~(: 0 !H (Bͫ!![R(! ~(: 0 !H ( ͫ!4!Z|( ao !K1!S!^#V!"Hѷ"6#z !-:Rw<2R! +p+qMD!q#p!s#r#q#p!SaZ ZNh ^#V!_s1!Kv &( ʹ{M!M!S"N{Q&˾(ͺ&~˶!K!K~˾!S"54>Z|(*U s#r!Y"NsP1*P!K*U!9͏[_!_R(^#V#4##*N|(!S~=Pw!S!"N:S(!K˶*U"P{P*I#"I*L#"L!KL"Lx![^#V![R!^#VBr+s(0##^#V+++![!Yݷ!S>͂5##͂~4##^#Vy ####*U####v ~#fos#rZHho"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['*[R>B".s#r#Z"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+q*+F+N+V+^ s#r#*!^#V!R*R +V+^##"~#<(= ~# ~ xD##>)))))))'d  R0y 0OGN#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#r+N˹G~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!~Rog_;;| 72W!$"!f: !r,/0!08%h!N aʏֆ!` O ^#V|Z !! 6Ʒ 'B8Ʒ aͅ=(>w.͡!:> *+++KBR͡ZF(!45(!(s1G{:1GR!\*>è~1(# :*+++[R8[~R8 2:>o$S5YGWn *DJͺnR2*E R: ͺ* R!N*"*":o>p2͚*R0!["SKB:ORKx NN!N.ѷ9N.9[!"* N#Fx !*S͝,RS͏ͽ*͏"4||1G*>*|*|S*:د2JBJ!!" 1*!ͭ:ZF( *: L!{=_ZF( :({2s\>ZF(::~\9ͅҷ U͠ K+Է E~. "v( B0w%v(aͅV͢&͢6.͡9w0ͅҷ >͠ 4+Է .%v(aͅV͢(&͢63Å͡~/"̪9G>aͅѷ Iͅ ͠ %~<w~/"+Է % w3w3͢~/"̹Å:s~12! }(7jPh^= s! |(7jzh^= =)!hs#r#^= +w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#pZ)0  Z6#{( (M=(J!~ 5:O`:!~O~#% !X~̕{((5:O(  {( z=(.=ʲ=<=f=r=ʔxK*(K/*-xN>x 3*|(+"*~#*+K R0YPS!4!*/|(+"/*-~#*'+K) R0YPS-!14!4x> :@(y>:3@(y>x> )(:@((yy2 ^!!(:3@((yy224^!:>:@(:! !!>:3@(:2!4!:s1z{MG!nO~(˹_:{ *"!"*[RS*q#*+K R0YPS!4G!3nO~(˹_:{ *+"-!"/*'[/RS/*+q#*'+K) R0YPS+1!44=x!(!3qyOx: ( Gy2 !x(!3~>y(q(Wx(>yQx(>yPZ(Zy(=()!A @p#!@˾v(˶!Mݯ!G!@~( !M F!Gݯ> s1> !@!A{d*Xy #"X~wN! ~<(.^%V&:-G!0~# ~###(N !Ć<(w6~| ~Yw#~<~(  !uetfneffnjfk ͪYN! ! ~( (wN####^#Vz(͹s#r!!~#w@~w70O'6Ͳ! 6!w#w#w~(<=( =(,6͙OͲ"1!~=('Ͳ A͙6Ͳ!ѷ !!4 #4 #4͉ͪͲ"~(͙Ͳ1?( N! p>ƷDy"D̀">~D#~B[ny"ǹ"yq}o|~B[{ozg}/o|/gN#͛~oZ! z<(ez<(=(=o{(wzo ͹^#VN! ɷ( #~#fo!!O ! ~N! $ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}COLDSTRTAUTWARMSTRTAUT1$ }-PRINT-?000 $$~~~@UU[[__R  @##66<<CCIIOO||S Advanced Digital Corp. Banked Super Slave D ready.$  $OSSLAVE SYS37;@DJD@WOZ_ekoúý2. %YYY+C CPYL!"_P=)!Kx( 0< [0<"*2, `i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'͗>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1>{s1x>{s1^>{vOZ_ekoúý2. %YYY+C CPYL!"_P=)!Kx( 0< [0<"*2, `i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'͗>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/16/84) 1 22M2N:\ 3:] ,:e %:k :l :m :u :{ !J!~( 2OO :P(:Q{ O: { (: { ( !K!K!"͉ # 6#!m? *͉ # ~w#y 86#:\2:l2G:=QxO:=Zx 4:MO:N *! O~#  !:MO c :KG O U:JW(Nl !:M !:N͋ >2OO :P(:Q{ O: { (: { :±ͬ  :K !:N2 !:N͙ :_!~ X!~:Kw¥G OͰ >2OO :P(:Q{ O: { : { /   !:M !:M !:N (1: !:MF^ Ͳ :KW( !ͨ  E!:N:Kg!~ oG O’ !:MW>2OO :P(:Q{ O: { (: { M !:M  (1:" !:M 1:, (  *+"|*#~/ 0:y0 > 99~#=&A9>>~#9*%[R R0x C!J˞!"*"t ~ :J_ *#"[R8*"*|(t ~ ~ *+":J_(* 4 0 U :K( Ê l =( :KoX !~X * k A d Y ͓u ͼ( ( k O 00  !:Ml = !J4 u 4 c k A9͊ :K( 4 !Kn( !Ͳ  p A  Y *! ͼ( ( p O E U :Ko 0 * !J˞!" !:M:Ko͊ ! * c p A94 ͧ 2222=2 :2ͬ 2!""Yͧ !*#"| !4ͬ "*#"| !4ͧ ͬ :2!Xc * yc ͡c c * 4 4 c c 2c `c ͓ͧ ͬ ͧ ͬ _P_PP! (#˾[*"͠ ~#fo͙ K ))) )K :M:N:_ ѻ  ѻ͸c   8 \ 2M͌ c  8 l 2Nͥ c !!~! ~*R|7"6 #6 7"R| *T !U^#"R6 !Jæ:\:l=a{ YNABCERX Invalid filename 1 Invalid filename 2 Ambiguous filename not permitted with option B Destination drive read only Ambiguous filename: confirm individual files (y/n)? copy to same filename Ok to copy  to  (y/n)? already exists,ok to delete? (y/n) not copiedread only FIFO file, not copiedFIFO file, not deleted  not copiednot delete copied to  Ok to delete source file? (y/n) File not found Insert next source disk in drive:  Enter when change complete Unable to lock out destination drive  Unable to free drive  Insert next destination disk in drive:  Unable to open source file Unable to create destination file Unable to read source file Unable to write destination file Unable to close source file Unable to close destination file Unable to set attributes on source file Unable to set attributes on destination file Insufficient memory for copy  Non-privileged user Insufficient memory not found  ~#9 (_VHation drive  Unable to free drive  Insert next destination disk in drive:  Unable to open source file Unable to create destination file Unable to read source file Unable to write destination file Unable to close source file Unable to close destination file Unable to set attributes on source file Unable to set attributes on destination file Insufficient memory for copy  Non-privileged user Insufficient memory not found 9COPYRIGHT 1984, SOFTWARE 2000 INC. (VERSION 01/04/84) 1X!~Q͐w!N#*ͯ .͐ͯ   > ͸ ͐"!w* ͗!>>͸ ͗!6#!N#!>!:(rͪ:G ":O x2{2z2*:W:_:G P<͐w* ͗!>ͪ"ͪ *x2{2z2 PR!w : "A!6T]ʁ08Y (3!:0o:g2::8bA8-[0)!R8w#:0o:gd2:(,  !կ(b#( y2(*b: :2: :2:(a: x2lj*&:=0C:*&!k=(^#!:= 0;;!b:('S6 #*&+T]6 #:S 6*#2{2z2ßb:W:_:!R!|D)0)0>2 :(:͜O:͜(:͜(!ˎ!ˆ!" ͊*! ~ P!~ M:G O0:O(G>2 :(:͜O:͜(:͜(F;/6 ͊*#w:\ < MW(  *+"|*#ôd:/ 0:y0 > :\=A*#~#~#foK ))) )K ::_ ѻ  ѻ;Ô J8\!c:k:i2yÔ*|7"ssg#g7"| * !^#"6 !Ìa{ YN Destination drive read only Ambiguous filename: confirm individual files (y/n)? Ok to delete (y/n)? read only FIFO file, not deleted not delete File not found Invalid filename Insufficient memory Network error Non-privileged user~# _Hc#ôd:/ 0:y0 > :\=A*#~#~#foK ))) )K ::< COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/15/84) 1$  2l 2m ^͈ͲOG;(iO:~i !k :k(:i2m :] :e !] 6?#>?2h6P(~2s ==G72u "n Sp y2r +|2t 6K <(: :< ![ _ P x2 {2 z2 " :\=B_!k ˎ !" " " *$ Sx R "v :S \ȇ_!~"  !A^#:t (V#z(#" !"z "| * |(b"~ *~ [| R<"z ͺ[  O~# *z ͺ ^#VK r+sê*z 8"~ "| #"z *~ [| R * |(+" * *R8h* [z R()* ]T+* *  [ s#r*z [ s#rS * K " K B8" Ñ!k ˎ<<<  %* |" !" !k ˆ[ :u !8 = R8!k :k G>(=2 !k N != K B8: O* +B0S * " " " (: G!   :k G(    * |* +" | 6 ( :G%:k G* (* " ^#Vr+s[ R06ͺ#^#V:u G!2 0<O:k Gy(Ni͖* +" ##(!\   !!g ~(  (H)     *p |<(͛ͨ  (2 * V;* +|    :m o&2 q:\=A !]  *   :u G!2 0<N͖ * a: (* * &+T]~# :   >*!R!|D)0)0>2 x0~#foKv )) ))Kx :m :l _ѻ ѻ/  ~#!k N 0(__a{ L  to Continue  REMAININ  DISK READ ONL  FIL  DISPLAYE  Insufficient memory JanFebMarAp rMayJunJulAugSepOctNovDec  Network error  Non-privileged user ? AB02 } : =<<:  x2s !r^R#8( 2 2 2 y2 }2 :  :  : / :x ~(   ~#:k O:G ͓@B͓͓̀'͓͓̀d͓ ͓}0: (  R0x : >2 x0~#foKv )) ))Kx :m :l _ѻ ѻ/  ~#!k N 0(__a{ L  to Continue  REMAININ  DISK READ ONL  FIL  DISPLAYE  Insufficient memory JanFebMarAp<{}COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/16/84) 1B 22:k(:i2}͌͛*|( _̈́1@:\<2\!e~ 6D#6O!"!~_#6!#~ (#~ #~ (O#'("( +*#")@s#r+#~ȹ 6!\ w#MTR!"!e#~ ($R6$!hw#M\\TR!">:G:Oȸ(!!808:00T])))_|( *R8)@^#V~( ~#(_ȹ__ȹ_!5 6MT> !>[R~!>5 6@M\TR![>Rw:]:]_|ѻ |ѻ}  ! ~#: 0:y(0!\~#@>:>.> > ~#! DELETE >>M\TR!~: Px!fM\TRMTM\PT]  Unable to activate DO file $ Non-privileged user $808:00T])))_|( *R8)@^#V~( ~#(_ȹ__ȹ_!5 6MT> !>[R~!>5 6@M\TR![>Rw:]:]_|ѻ |ѻ}  ! ~#: 0:y(0!\~#@>:>.> > ~#! DELETE >>M\TR!~: Px!fM\TRMTM\PT]  Unable to activate DO file $ Non-privileged user $:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1Iu G;(!&ˆ͛O:͛ 2'P(z2-==G72."(S*y2,P(S"/S1C325<(: :< !_:\=_ͥ:'Ap^!^^ *(:,_R!:.G260<:-!7j= 26*!:,o&:-)= 26^ G!@:5)=26m*/26͓*126͹*326^ :-(^ ~#p9@B99'99d9 9}0pR0x :6  >26x0pd~#pe!&F __a{ L^ Disk drive characteristics, drive^ Maximum data capacity :^^ Allocation block size :^ Number of directory entries:^ Physical sector size :^ Physical sectors per track :^ Physical tracks per disk :^ Number of reserved tracks :^ medi^Fixe^Removabl^ Network error ? _ͥ:'Ap^!^^ *(:,_R!:.G260<:-!7j= 26*!:,o&:-)= 26^ G!@:5)=26m*/26͓*126͹*326^ :-(^ ~#p9@B99'99d9 9}0pR0x :6  >26x0pd~#pe!&F __a{ L^ Disk drive characteristics, drive^ Maximum data capacity :^^ Allocation block size :^ Number of directory entries:^ Physical sector size :^ Physical sectors per track :^ Physical tracks per disk :^ Number of reserved tracks :^ medi^Fixe^Removabl:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1@ Pxʯ:\2=2_Pѷ¹P :(:O:(:(!:A_  :(:O:(:ʿ¹!q#"*#"(¹!F(P:_ P r g!"! V: O:< I!" 9 .:_ P "!F sx )@V  a{ $YN Ok to erase directory on drive $ (Y/N)? $ Directory erased, $ Non-privileged user$ No drive specified$ Unable to erase directory$non-$hashed$ Hashed directory desired (Y/N)? $ Erasing directory $$ DIRctors per track :^ Physical tracks per disk :^ Number of reserved tracks :^ medi^Fixe^Removabl :COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1 Pxʱ:\2<=2a_Pѷ»P(:E9(:F9( !`G:aA_n(:E9(:F9»»: :<('»»»»:»:<»!:`(˾:`(»»» z  u p D!`˶!  !~0 !` 6# !`v( 0*]#"] "w!`~  B <<<!<":a_ P:a_*P+b :d9O:c a{ $YN Ok to reorganize directory on drive $ (Y/N)? $ Directory reorganized, $ Non-privileged user$ No drive specified$ Unable to reorganize directory$non-$hashed$ Hashed directory desired (Y/N)? $ Reorganizing directory - DO NOT INTERRUPT $$ DIR:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1 Px:\=2y_PѷP:yA_6(:d[(:e[:y_PSz Pѷ ?Pg*zR(1!RT,͚́ͤ !;ͬT 'd  R0x  0h M| :~[O:} a{ YNT Disk map regenerateT Allocation block(s)TgaineTlosT Unable to regenerate disk mapT Ok to regenerate disk map on driveT (Y/N)?T Regenerating disk mapT Non-privileged useT No drive specifieZ~#h\_PARK OM:COPYRIGHT 1983, SOFTWARE 2000, INC. (VERSION 06/30/83) 1=  Px)+PE:\k=2 i: O°: ͓͊ h Insert disk to be formatted in drive: Aͣ)h Enter to begin formatting͒ ( Oh>2 ͨʴh Starting format pass *` " !" h:\ 2 2 ͽ>2 ͨ(h FormaͲT(z(͆ h Format aborteT! 4! 5 * #" * +" | h Successful format Starting verify pasih Insert disk to be verified in drive: Aͣ)h Enter to begin verifying͒ ( Ohh >2 ! " ͨ&!*j BR8 * B C 2 !" !j " * " h!" * |*j BR0 * +" * [ R(9[ R8" " ͨ(h VerifͲT(* [ " z(͆ h Verify aborteT* #" * +" |jh Successful verifTh Non-privileged userOh Unable to execute from bank 1Oh No format drive specifiedOh Unable to lockout format driveOh Format drive not ready qh Insufficient memory to formatUh Insufficient memory to verify: O +.h Verify drive not ready : Oqð! ˆh : GOqðG;(! ʹR V _PѷP Ph error, Drive:: Aͣh, Track:* 3h (Retry, Ignore, Abort))h͒ʹA7( R(I h ))))))): =)z͆'QQdQ Q R0x  0ͣ n~#ͣo (_a{ :[ |(*!j *R>!j T]6:[ (6N := _:^ 2 GO !> 8zw#p:] _!:[ (!^#V#^#VSY j !> /N#F#F#~#: : ~#*Y ~!j " R" :[ :] (2 : :_ (2 ɪ.:z" 2 ?(?????NTZ??? ?????_?(?????NTZ??? ??????_?(?????NTZ??? ???????? _?PN? ???2N? ??NTZ???N? ??????N_?PN? ???2N? ??NTZ???N? ????????"N_?PN? ???2N? ??NTZ???N? ????????????BN_2b 2c 2d 2e 2f  :c ?!b ͑ Enter density (Single/Double):̀ ( ʹ S( D(͑ S(![ 6:d :!b ͑ Enter number of sides (1/2):̀ (1( 2(͑ 02\ :e L!b ͑ Enter number of tracks (3=35, 4=40, 8=80):̀ ( 3(4( 8(͑ #3((4(Py2` :f B!b ͑ Enter format type (TurboDOS/Cpm):̀ ( ʹ T( C(͑ !] 6C(44:[ (4!w :] _:[ (+~2^ !z :] (+~2_ :b G͑ G;(ʹ S D 2c 1 2 2d 3  4 8 2e T C 2f  6*T:tg  :h :i ͗ ~#ͣ _a{  ???2N? ??NTZ???N? ??????N_?PN? ???2N? ??NTZ???N?  :COPYRIGHT 1983, SOFTWARE 2000, INC. (VERSION 06/30/83) 1  Px)+PE:\k=2E i:] O°:E ͓͊ h Insert disk to be formatted in drive:E Aͣ)h Enter to begin formatting͒ ( Oh>2D ͨʴh Starting format pass * "^ !"F h: 2` 2A ͽ>2D ͨ(h FormaͲT(z(͆ h Format aborteT!A 4!` 5 *F #"F *^ +"^ | h Successful format Starting verify pasih Insert disk to be verified in drive:E Aͣ)h Enter to begin verifying͒ ( Ohh >2D !R "N ͨ&!* BR8 *W B CB 2D !"F ! "N *Y "^ h!"H *B |* BR0 *B +"B *W [H R(9[B R8"J "L ͨ(h VerifͲT(*H [J "H z(͆ h Verify aborteT*F #"F *^ +"^ |jh Successful verifTh Non-privileged userOh Unable to execute from bank 1Oh No format drive specifiedOh Unable to lockout format driveOh Format drive not ready qh Insufficient memory to formatUh Insufficient memory to verify:] O +.h Verify drive not ready :] Oqð!] ˆh :] GOqðG;(!] ʹR V _PѷPD Ph error, Drive::E Aͣh, Track:*F 3h (Retry, Ignore, Abort))h͒ʹA7( R(I h ))))))):V =)z͆'QQdQ Q R0x  0ͣ n~#ͣo (_a{ : |(*! *R>! T]6: (6N : _: 2J GO ! 8zw#p: _!: (!^#V#^#VS  ! /N#F#F#~#:F :A ~#* ~! "N R"L : : (2H :A : (2I ɪ.:z" 2 ?(?????NTZ??? ?????_?(?????NTZ??? ??????_?(?????NTZ??? ???????? _?PN? ???2N? ??NTZ???N? ??????N_?PN? ???2N? ??NTZ???N? ????????"N_?PN? ???2N? ??NTZ???N? ????????????BN_2 2 2 2 ͷ : ?!  Enter density (Single/Double): ( 8 S( D( S(! 6: :!  Enter number of sides (1/2): (1( 2( 02 : B!  Enter format type (TurboDOS/Cpm): ( 8 T( C( ! 6C(44: (4! : _: (+~2 ! : (+~2 : G G;(8 S D 2 1 2 2 T C 2 6*T:t  : :  ~#'  _a{ MNTZ??? ??????_?(?????NTZ??? ???????? _?PN? ???2N? ??NTZ???N? ??????N_?PN? ???2N? ??NTZ???N? :COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/20/84) !1d͑Z$ L ;͋kCopyright 1984, Software 2000, Inck  2222!:o(!!"q(%(ͣͿ͆Ϳ!\~#~!n?n:k( :i222:{(:y2!0 !l~ :#~!0!!u~!0!e~!8!k#!SYS(!F;(B9O!:*9(0:+9(-:,9(":-9(+:.9(:/9(%""˞"!(08 8  8 0))))o9:!\( ( ( 8!%R8#w#6+R}w#"!\5 6:> !\[\R~k *!^#"6{k !F#^~ 6 *|8:p!!x!o[S(~!!REL*|7"!#7"|^#V#~#fo6!_6 !`I8B( ($87(!.(?:(@!h8!(/ $8 $kb $8 !!_!>(G!`~#08:030O:n<(>2n:lG88888 0 2lx=("A8Q0@O:_ y2_:n= =2n7$(:.*(w#6?# ;7,Q6#IK6#6 #a{ 0>2*"  :b8:2b((#(((?(  ʼ͚2t!͌(![)t?SYM? ͚8!n[cRt!n[cs#rt!Zt!br+6t*c"pt*c"nt!͌(3!͌(E[o&~@(p0O#"c͚t4p0![;Rp8t!p8^#V*cRt2<![)>2t?ORIG??UNIT?!F(Nˆˎ*| *c| :b= *b|(!>!nDM6+6!b r+s= tUnB!^¸*":W(###[bS"b"V"z"m[dS"d"X"|[xS"l"`"[fSz(+$."f"Z"~"[hS"h"\"[jS"j"^"""w"*#"[hSR"h"\[fSz(R."f"Z"":g( [R8"w"~"[\[ZR"["[xSR"l"`"[dSR"d"X"|[bSR"b"V"z"m[jSSR""z(!!"j"^"*[R"(.*[R( [*"*"!:W(+++"!e[(S*[R(&".*R",[R8 bk 6\pU>2W*"  !"T>2S>2!n6#6= :b8:2b(6(_(d({ \ v  C ʎ ʗ  :X :cw*T#"Ts#r*T##"T\ ͚2\ ! ͌(![)\ ?SYM? ͚8!n[cR\ !n[cs#r\ :W(p02a![)>2_DM|\ ^#Vp+q*q#p#s#r#"\ *c"p\ :b*c2S"T\ *c"n\ |([z( >2" >!nDM!b  r+s= > U8 *| *V"[,:_(! g(! W( [6#s#r*[R0^#V#N#F#^#V r+s*"z:!͏ :o(:͜:͜:.͜:/͜*,[.~͜#z / 0:{0_~#= A_: .~# (_U ͔!W˞Nf + *T'(=(:WG (s#r#s#:WOf _ "T̓ 2W] :WW( ˗2W!R:V+(-!W:WO ,o (((> (08: ' " !W!WN(>=2V!![6#6 O![~04^qo )(> :\?(p_Ͷ!W!!0))))oo > 08:8A8G0G*T͋ !W^ ͋ !WN (w#"To > >'2V (=( ,(+(-2V!"\:0<:0͋ (;( a{ ͋ !\5 6:0 !\[\R~(_ 8!W> ɯ2b2c2d2[=2Z!\> w#W2X 2bW2c`W2Y( 2bW"cHW2Z808W2bW"c:Z(%0W2[(O!\Ww# :Z:^(i* [R?͌![F#![[ S*T]0 [R#  Nwy#:O:O![͑+:O; ![͑*c͠:bo&P^ '"^+`#:G7Nͣ ====== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ===:G ![͑ :G!͠>!nZ  !b͠͠ :OͭT* [R; ͑~#^#V( !V͠#^#|ͧ}Ͱ 80_:@0 : <: 2   2:<2^˻~#(~#!~98 6k 4k^#!4!ij}lg!^5 6!\5 6: !\[\R~wÈ!*[*Rw!*5 6: ç::<ö:*(͜:*"[R*[R?":(:29!w#<2^2\:<:p0!z[p?8 7!?UND? ~#^#V( !V!͌>!͌>!͌>>?PAGE??BANK??INIT?:b*c:S*T!b^#Vo&+)>!VR8'!ѷR8!z[R[,= a{ |S}S\ 80_w^˻~#(k w_ͥ:ͥ_ͼѻ ͼѻ=  !4͕͕͕͕͕͕͜͜͜͜͜͜XMSLUKk Pass k Duplicate symbol:k Pass k Undefined symbol:k Writing output filek Processing parameter file: k Last Symbol is Undefined k Sorting symbol tabl MODULE-RELATIVE SYMBOL TABLE Symbols defined in module ABSOLUTE LOAD MAP MODULE PROG SEG DATA SEG PAGE SEG BANK SEG INIT SEG COMM SEG TOTA NAME BASE SIZE BASE SIZE BASE SIZE BASE SIZE BASE SIZE SIZ ABSOLUTE SYMBOL TABLEͅFile name missing from commanͅInvalid input file namͅSerial number violatioͅNot enough memorͅVacuous input file(sͅUnexpected EOF in input filͅDisk is fulͅCan't make output filͅNo input fileͅCan't open input filͅLoad address out-of-boundk Multiple defined starting addresͅNon-privileged use!! GENo COM~ PAR ?BEG? ?END? ?BBEG??BEND? file(sͅUnexpected EOF in input filͅDisk is fulͅCan't make output filͅNo input fileͅCan't open input filͅLoad address out-of-boundk Multiple defined starting addresͅNon-privileged use!! GENo COM~:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1:\ :] :e :\ <2:=_Pѷ eP:\=_ P I: >:! 3: ,:< &!] :" :  $   $ Disk label written$ Unable to label disk$ Invalid disk label$$ DIR9@B99'99d9 9}0pR0x :6  >26x0pd~#pe!&F __a{ L^ Disk drive characteristics, drive^ Maximum data capacity :^^ Allocation block size :^ Number of directory entries:^ Physical sector size :^ Physical sectors per track :^ Physical tracks per disk :^ Number of reserved tracks :^ medi^Fixe^Removablc:!o~: +~2@2=  =< >2a=Y!c #~2b+~(|ͤI.:b eͤI:a<2a@>2a:  No drive specified (as in "MAPDIR A:") $ Map of directory on drive ("|" = active entry, "e" = unused, "." = erased) $ $$ DIR $ Map of directory on dri .:_ P "!F sx )@V  a{ $YN Ok to erase directory on drive $ (Y/N)? $ Directory erased, $ Non-privileged user$ No drive specified$ Unable to erase directory$non-$hashed$ Hashed directory desired (Y/N)? $ Erasing directory $$ DIRctors per track :^ Physical tracks per disk :^ Number of reserved tracks :^ medi^Fixe^Removabl <COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1 Px(f !P(W< J P _( : :_!P!~(G#~_)[t 1!P  Console attached to master processor $ Console detached from master processor $ Console already attached to master processor $ Non-privileged user $ Remote console driver not present $_ P:a_*P+b :d9O:c a{ $YN Ok to reorganize directory on drive $ (Y/N)? $ Directory reorganized, $ Non-privileged user$ No drive specified$ Unable to reorganize directory$non-$hashed$ Hashed directory desired (Y/N)? $ Reorganizing directory - DO NOT INTERRUPT $$ DIR:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/31/84) 1ͧ !"8!>":͓*[R8.|("<++"8!>":͓0*<ͧInsufficient memorØe:_ ODGDDog DC( = K8 7(DN D ͧChecksuØ.#8N _#0ͧLinker controØW*8}N|- D ͧByte coun]g.D$eoO}wݾ #ͧMemor3[<z(*:R0 *:~#":ѷͧInsufficient memorͧ error ^~#+ 052484143954;9 1; TurboDOS Moni;tor, Copyright 1984, 6;*Software 2000, Inc![;?$" !"   2 2;T 1;  *!V ͟F;i~?DA_ !(;~^#V"5D;|;RY~Y;):͐.;ͺR͐ʹ";Hͺ~͐>} S;ʹHͺ~͐&;  # ( (+͐&  F;@08G~ẁq&;(F0#͂Lʹ@|;= !̀ C (C VA;RL1,VAL2 ) ;g Calculate sum/diffT;|erence D (D ADDR1,9;ADDR2 ) D;ump memory E (E ADg;DR ),; Examine memory F ; (F ADDR1,ADDR2,VAL,3;REP ) Fill memory; G (G [ADDR] ;$ ) Goto adz;9dress H (H \;N ) He;clp I (I PORT P;x ) InputT; port L (L FILENAM ;E [ADDR] ) Lo;ad file M (M ADDR1;,ADDR2,ADDR3,REP ) j;Move memory O (O P;ORT,VAL +; ) Output port P ; (P ADDR Q;5 ) Put memory QL;J (Q ;_ ) Quit R ;t(R ADDR1,ADDR2 1; ) Ram test S ; (S FILENAME [ADDR1,A;DDR2]) Save file T; (T ADDR1,ADDR2 ; ) Type memor;y V (V ADDR1,ADDR2I;,ADDR3 ) Verify; memory W (W VAL1,a;1VAL2,...,VALN ) ;FWhere Y (Y Q;[ ) To\;pp of memorʹ̀};Hxʹ@͔8t;@: : (f: (:; 2 Ϳ@ @ ;$a2 | !" F;͐ ;  +"  Ϳ; ͈InvalidP; file na meVFileH;- not fou ndV~;B@F0# L@M;WYʹ@ ((w#q;lA& + +À9;@+" * #q@F0;  A* #yf F0;   SG ʹ;:  : : ; (: I2 Ϳ ;A g2 n;|(" ̀|(" +;* $* ̀4;)9 S  H͂SF;? s6 (#6̀c;T"[ +F#Unable ;ito create output filep;~"VͿ@ @; Unable to write oZ;utput fi leVͿ  '; Unable to; close output fileV;@Invalid file name;IVʹ$ͺ~(+; 0>`͐& >} S{;' ĉf>S-;<@e3@* |(~ GO;Qgj-9̀Z~K;f( ~ #+[;{+S3 Hʹ!~;H* |7"  ;Bͱ#ͱ7" |!͟;~0 O)) ) ;@͇̀| #" ;!̈́~808 ))));o͇0~#& ,;|̀}@#;$0:8 & 0 ?;9?F#V|}! ;O$5V   (;dVʹ͑ͺ~ ͺG;yB͇ * |7;( ~#7(H"  7 ; !8 ^#" 6  S;: : d;_ @ѻ; Non-privileged us;erV {a-;   ; !_; 6O; K; `~; ui; T;  ;id file name;IVʹ$ͺ~(+; 0>`͐& >} S{;' ĉf>S-;<@e3@* |(~ GO;Qgj-9̀Z~K;f( ~ #+[;{+S3 Hʹ!~;H* |7"  ;Bͱ#ͱ7" |!͟;~0 O)) ) ;@͇̀| #" ;!̈́~808 ))));o͇0~#& ,;|̀}@#;$0:8 & 0 ?;9?F#V|}! ;O$5V   (;dVʹ͑ͺ~ ͺG;yB͇ * |7;( ~#7(H"  7 ; !8 ^#" 6  S;: : d;_ @ѻ; Non-privileged us;erV {a-;   ; !_; 6O; K; ` :COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1P*B"E:D2Gh8rO:͛(/:͛():͛(0:͛(4:͛(%:͛()4>2Bq8m<2C2C<2C>2Bq8N2D!?`:?G(=[B:DGP:B= *:C($=g.H:D<P([E:GGPͪP:B((.:DA.:C(  :C( :C@. CP"B2D̈́ ̈́ (̈́= ̈́A?:7=2*@~#"@͛a{ PQFCOD Invalid Request  Printing is toSPOOLER on DRIVE to QUEUEPRINTEROFFLINCONSOL"~#.#_ ???2N? ??NTZ???N? ??????N_?PN? ???2N? ??NTZ???N? :COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1? 1 28_O:XO(/:YO(/:ZO(*:[O($:\O(:]O(% <> >>22!:G([:GP :GP 2"^:Al:(}@:= ͇͕͠Ͷ 8 8 (8= 8A?:7=2*~#"Oa{ QSGBTOͶ PrinterͶ Assigned toͶQUEUEͶ (StoppedͶOFFLINͶ Invalid Requestͼ~#_MNTZ??? ??????_?(?????NTZ??? ???????? _?PN? ???2N? ??NTZ???N? ??????N_?PN? ???2N? ??NTZ???N? :COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/16/84) 1s  222:\ :] :e !Q!~( (>2 :(:O:(:(!Rˎ!Rˆ!" ͭ:RG O E:Q_(>x>2 :(:O:(:ʁ ͭ *#S (=(˾#:\ ͋͒ ; !~(:@~(:@#~(:@#~(:@͛((4 4 *+"|*#å͢:/ 0:y0 > @@*#~#@A@:\=~#foK ))) )K A8!\:k:i2ͷý*j|7"^#^7"j| *l !m^#"j6 :͛:͛_͵ѻ ͵ѻý !Q×a{ YNFRGA Destination drive read only Drivenot already set toread/writread onl Ambiguous filename: confirm individual files (y/n)? Ok to set attributes (y/n)?se File not found Invalid filename Non-privileged user Insufficient memory Network error~#@ _nH((4 4 *+"|*#å͢:/ 0:y0 > @@*#~#@A@:\=~#foK ))) )K A8!\:k:i2ͷý*j|7"^#^7"j| *l !m^#"j6 :͛:͛_͵ѻ ͵ѻý !Q×a{ YNFRGA Destination drive read only Drivenot already set toread/writread onl Ambiguous filename: confirm individual files (y/n)? Ok to set attributes (y/n)?se File not found Invalid filename Non-privileged user Insufficient memory Network error~#@ _nH:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/16/84) 1j  2 2 2 :] :e :m :u !M !~( c͏!M F :l(!\ :{( :y! :m :u ͑:S GT ;(!N  O:  ˎ :  ˆ:\=J_P |7!" *j S R͂͆͆ " :S \ȇ_!~t" !" " * |(J" * [ R<" +[  O~# v* 8" " #" * [ R * |([+" * 2 *R8D* [ R()* B]T+* 2*  * B[ s#rS ßͪ<<<* |" !] ~#?(L:N  EY>2   : (: O: (: ( !N ˎ!N ˆ!" +#  6#m ?  ~w#6#:\2 2 ! ~( !  X:N G O O:M O(H͓! ͨ! ʹ>2   : (: O: (: ʵ  ʉ2 !   O~#  !  ! : _!~ J!~ G:N G O Q>2   : (: O: (: ʵ XS !   F: , !   < FP! $ (0  0  * +" |* #c: / 0:y0 > < < ~#= A<  # #~#< B~#fo;K ))) )K ͈8 \q2 x͈8lq͑! !~! ~*P |7"  ͥ#ͥ7"P | *R  !S ^#"P 6 : : _ѻ ѻ !M Úa{ YN Invalid drive letter usage Destination drive read only Ambiguous filename: confirm individual files (y/n)? Ok to rename  to  (y/n)? rename to same filename already exists, ok to delete? (y/n)  read only FIFO file, not deleted delete not renamed to  File not found Invalid filename 1 Invalid filename 2 Insufficient memory Network error Non-privileged user Invalid user number usage ~#<   _T H ! ~*P |7"  ͥ#ͥ7"P | *R  !S ^#"P 6 : : _ѻ ѻ !M Úa{ YN Invalid drive letter usage Destination drive read only Ambiguous filename: confirm individual files (y/n)? Ok to rename  to  (y/n)? rename to same filename already exists, ok to delete? (y/n)  read only FIFO file, not deleted delete not renamed to  File not found Invalid filename 1 Invalid filename 2 Insufficient memory Network error Non-privileged user Invalid u1e`r`:0802U>2R:R >`:S >D >2Q`:N(Y :R >2L2O"`:N(Y >2=:Q(>>2T:O >(2L>2M! "D!"F!"H"JN`:U0Yk` Y> YfW2P͔> ͥK`z$! ~ #(! ͽ 2Nµ:= :Q( :P(82P͔ ( ʦB:L(=z>ͥ*D*F>2P͔z *H*J *D*F t```:C 2S`:ʃN :MO"B^#~f(# *BF#~# w#r#:Pw#s#w# :P=G:S:T+w#2Sɯ23  1 >P:3 aX{X__ := `)`K` g`K`z$ DISK ERROR: $  `> "@:M2>2?~:P(>> ( 2N :>=(2>#:?f:?<2? 8`:N`:P1`z$`~$`:N$`:ʦSʆR f2P͔*@%f2P͔S:PG:UX WRITE ERROR: $"@`.G(`Lx@(`?x (6`2x(B`%x(S`x(]` x(g`????1Ɛ'@'Y FORMATTING $FMT548 3.2 $ Enter Disk Drive To Be Formatted (0-3) : $ Enter Density, Single or Double (S,D) : $ Format Single or Double Sided (S,D) : $ Format System Tracks only (Y,N) : $ Supress Format Verification (Y,N) : $ Insert Diskett Into Drive $ And Press The Return Key $ Formatting Complete$ Option (CR to Exit, C to Continue) : $ Option (CR for Same Parameters, N for New Parameters) : $ FORMATTING & VERIFYING$ TRACK $ $ FORMATTING TRACK $ SIDE= $, TRACK= $, SECTOR= $, STATUS= $ FATAL READ VERIFY ERROR DETECTED: $ OPTION (CR to Exit, S to Skip, R to Retry) ? $DRIVE NOT READY$DISK IS WRITE PROTECTED$WRITE FAULT$RECORD NOT FOUND$CRC ERROR$LOST DATA$DATA REQUEST$ FORMATTING ABORTED$   ( fPN 2N N BNfNN|2>:f3)0R3>)30R3=363D>3E>3 >0f3xG3x0:R3 2N N BNfNN|2>:f3)0R3>)30R3=363D>3E>3 >0f3xG3x0:R3ystem Tracks only (Y,N) : $ Supress Format Verification (Y,N) : $ Insert Diskett Into Drive $ And Press The Return Key $ Formatting Complete$ Option (CR to Exit, C to Continue) : $ Option (CR for Same Parameters, N for New Parameters) : $ FORMATTING & VERIFYING$ TRACK $ $ FORMATTING TRACK $ SIDE= $, TRACK= $, SECTOR= $, STATUS= $ FATAL READ VERIFY ERROR DETECTED: $ OPTION (CR to Exit, S to Skip, R to Retry) ? $DRIVE NOT READY$DISK IS WRITE PROTECTED$WRITE FAULT$RECORD NOT FOUND$CRC ERROR$LOST DATA$DATA REQUEST$ FORMATTING ABORTED$   ( f,,O -  COPYRIGHT (C) 1980 MicroPro International Corporation  MicroPro WordStar release 2.10 serial # WS500108  Lear-Siegler ADM-3A terminal  Teletype-like printer  No communications protocol  CP/M List Output driver (LST:) "=8f4PP=  P sB@ @..Y[]{}AEIOU.:+-JP aJacc d d+d@BBDtdarg:a d Cca  BHf KIf 0Mf 1Nf 2Of 3Pf 4Qf 5Rf 6Sf 7Tf 8Uf 9Vf     D2w0         )       "$4& (*,.068F2       (EU)\)D20}b   -__7777w} nwWx2z7W:Go~~56   YZRCDTTVV2CCTTBT2STTTTTTTTTTCBTTTTVUUUVUUVVSSVUfVVTVVTUVVgVVUTVTVUTTTTTTSTTRRTRfTTTTSSSTTfTTTTVTVU!>6NIQYdXfjly%27?QXivYN @@@@ on () off () INTERNAL ERRORFATAL NAME OF  TO FILEMERGE-Print a file РԠ Š *** FATAL ERR F25: NOT ENUF MEMORY $ File  not found. Menus &  messages will display as @@@@ only.  WAIT  PRINT\PAUSED merge-printing\ \editing\no\file\ ڽ ׽ *** Press ESCAPE Key *** INTERRUPTED***  E*** I***   F: G! B~x7Ɂ*<:27i[ i*7|/͓ i* x:<*P="J="L=ͨ*N=k [ <ͩ "L= ͓ !J=T8Tk> > * W_ !2<{ ȯ2wͱ n!<>( !<% ñ !<@ !<@ !<@ !<@ O >( !<H !<~ H > B>2o3w#͞%  ͞% w#- 6> Y% ! > ONOFI%% }Y% &͞%9/& rh !I6_d&ax>2G:I6!< !<͡*F=ͺ!<͡!<á*<*2<>*<_:<<=* &7*H=#~+º:<}:<3! &͢ 2 &> '#~+}:<3~ #~U\#~U#*<͢ :<#~U  +&!vo:<}D>:<:!Z>GO o>^#~ > Gm*<:<ʌ/|: &> Gî> &+|#>Ä!".g|,-:G6G}> GG!<~6!I6x!<^3f x!g2GO!<> C>~M>- ? i!<~<> ?@W w!"<2 2*<&*<"<**<> :H6*<|:<* G*<|ʮÝ @C̀ 6?!<~5^@@!<4!xt:G6>:H6/!J6!<6> ͈̈:<7*<*27Ó &͓ iª:̓ ²iē :G6͖>:G6>:&:< =!"7"7<=G:776*T=~76p#~<`"T=xG:7x* P_x20<:z<*2<ʱ*%<:-~5*<:žx ʞg> n> ڞ!B:)<~ˆ=<<*<-ʜҚ<>P Ix_&.y2<:<!~<4!<4x*<:-2< :<=|g}o|*<&*<*G  +~ x 6# $%%$o>g/DMxɅo|gg}o|g^#V#~#fo# _Gzt{xɾ~~/w~͙#Á à ͩ :.,;?!0?:[A?a{ɷ @&N#w@w#6:#6 9 46.#:6 Dw# 9Sg2 [{:m|S|_ {26_|=!•sn)|Gʵ°HGxy"!8.&*w8"y88n):88͝2*6!!ͽx9!:8!8~68<>.&g!Bɷ (&;F>!#X |G!"X}O)|! ʧ!!~6w<§x7ʰQ! q#~w&^#V#[ J^#V+ѷJ~[ u#͢:8298͞>28!94!N98ͩ!9́́*N9*kC!P9"7:8M9k?:kʱX%}):9=!;ʞ=ʛz29!:8ͩگ[ >Bͩگ!:B;k~!L͑0ʷ:19*-9+##+!<~/͊ $͞ ~͊ $ ̓ -6#~<!Z7"X7(:7/3̀ [ <*X7~Ͳ3*7*7"7kU2O8:7/*6.'!ʏʏ͙~p>!J>O ͝2*X7~*V7~Ͳw#~<®!Z7"V7:6/!:O *-9+w*|6!2#8:ͺa>:ͽa>!a*Byę!Z7"V7"X7P  G:6Ox_:I x  yON#F ܀ څ_p+qʀ À&![ *29:IO&:H=!µ D":6#  + `c"ͬ ͞  !6 ͬ6*6>+̬,&e":6 ͬ*6-e">u͑ʊJʷ !>B:7PNR:7T:7VL$ͷ&ͯ$G*!8*!86*29G͂#͢^#͢V=BXZ++O:6Gy_f:Lm>~G. ˆ> ͦ:6xã Ҡ ʠ ʠ>^ͦ@ͦ ڬ:6 z Ԋ O ͞ !6  4*-9w# 6*/9+4:H= :I*/9B"/9*-9B5*#9͞ *I&*)98&&> -C O:] yO:u y"*6g2> Ou ͊ !6 w!!:6 *-9~G:19w2$8͞ "-9:6 !$8~ 5*-9~w219*6c":T8o& !&!*6kc"i*%8:'8o*6}9!o!'8:Y!<=&=Q!I!:6~<=#~O `!!g2:H=!:I…!=O":6!~ £!# –!yB +~ ʩ!̓ !!m~@!!A> O !͞ 6 # ! !~!!@!:6:"":">2626'":26ͤ!@!]"͞ *6À"6"!@!ͧ*H-&"6" "/9:6!̓ ͐":H!:d"*^\:]¥"!J͹"!S͹"!X^!^!:`G{O O I"d*#9*/98*-9/o&U\*#9:IO" "*+#}!++)>2P8*6"e8ͷ $ $$&!,#T#T#c#*e8l!c"'#!~y#y#y#™# $ʌ#ʌ# ܌#*6%! ¨##Þ#!µ##-#!#45#>!))#U)#\)!̷oy^͂>IÂy <2P8+q#ͯ$:6:H͊$<2Z82Y82X82V8ͯ$ >\$y$Z$$ >!69!l2×2:U8!V8$~:6!)8!"X8"Z82V82U82O82S8!͊$2T8×2͊$!:$:$:$:GOi%:7$ ỳ x$i!͞%2%͞%_:%W~C%#4%###$%~.%#^#VE%&͞% I% I%!I%ړ%ʕ%0ړ% ғ%T])))_͞%ڎ%ʐ%0ڎ% o%|7͞%×%x 7 7 77?999999999999999999999999999999999999&:9*:,:.:0:2:4:6:9::<:999@:B:D:99!J&&]"ͽ&,!&2S/:[82Y8!͘$&ͽ>ͽ21q$2Z8:[82Y8ͷ!—&2V8Ϳ$a/!#8~6*X7~1!:86:8ďI!!R&i:#8&o&)%^#Vo&DIͽ:8/!7)'5:$8z *6! !ͽp!̞ z *_8|!7D'[ g227*29"c8͝':7^'b(r:8Œ':7ʆ'':7{'b(tb(v!6s(b(x)]:IO'!õ::8*08'*-8':/8(>':=82-8*29"c8͝'O×'G:IPx''*29*c8/'> (}(| (>^(@!6\#(> (( )(#*49++*c8wk?(#"c8:7](:)Z(:6!28''^#V#p(~#(s(:&!+!8“(2]8(!]8N6ͱ2q!\8FwO(:^8(:&>(2]8!)8(2]82\8/2^82^854:I=G(= (y2:6!5)~[ :8͕^:]8͗2an):+/+)>!+Fw>2O82D8e)w)2B8 :)8Q)2C8:E8ʆ)G:+:T8•)o#}!W8w=Ң)<<)x:+;)[ ):D8=͗2aw)!W8wG:)8 )!B8e):F8B):B8!T88:B8W:C8;)_:F8!E8<~*:G8~** +:N8/<_y!E8;**qy!F8m*<2F8i,z<2D8[ !L8:8m*:E8m*z2C8{*z{*!C8*2D8*29"c8:E8O:G8G/!zp(b(||*c8 "c8&x/*!~p(y**>B(:I':B8Wi,!P8452G82N8*89"J8:L8+2M87\\,ͧ+:M82L8p,a:IO *296 #=+#7+ x G +:G8G*J8+F+N 2G8a~++++DM>2N8>.!7,### k+#~‚+  +7,~+2L8*89"J8*696+r+s k+:M8+++~wT,ø+*H8 !3, ~.,#+ ,~$,&,6.#w#w#> *H8BAINuHEvREwCOxOVy$$z7c"H8&>2M8j͑*89},#p+q&+F+N <Ú,#Vp+^qBKÚ,+V+^ ov,ڋ,˜, ,,à,!915>,!915,:7!,3H"*525!9"5=-̈́.:] -3$a/>/:K6,:U7,*57-(&a/-Ä.:]!W-!l ,!4~Ļ7 !L6 d!7 :26-!V.!!!S!m!ͺ-#ͺ-#ͺ-#ͺ-:`26:c2+|26ͽjd!7 :26-6"Q.:6Â*."49:II++"29"89a."69"9"!9*:6).*HL&bj ./+#"#9"-9*H-"")9"+9."'9/"%9:6*Hm-Y.|!]p.>o&))))>.go/2ʹ..>2'8:H2)8=2,8=2+8.:;9*L9>.& 8!!6~..6!n"7*\":9"<9">9*>9"@9"B9"D9"F9"H9"J9*!9"L9:H'/y'/6 /:I@'/'/~!9"7>.&!* /,/ 5!"o8"q82n8*52:8/2?8S/!"_8"X8"Z8:T8͗2!m/ͫ&>2P8!7~/++! ,3:8hO*w/د283;':7/*<9">922P8|=4/=S_/^#V,32-82.82/82V8Ϳ$>2P8]1͋0/2-8G:8(0x t0?G~t080+0#~x0:8<#^#V++P2P8͋0902.8O~x0###~t0#]0d07#^#V|N9!E$0*6[ \20[ ̩00Y8ʼ0=!ͽ!$0=!ͽp9.'>2@8\20̓ #!!ͪ)}(:8 1ͱ2=!%8\2:8ĀZ.'[ :W8!D8wo:801:)8o:T8Y1!B8G1!D8S1o&&![ l!<31):Q8!A8\26<:8G:6O*7|!O8ʃ16:Q8!S8ᠡʓ16[ 2;'ͯ$:7!t9:7!v9:Q812S8ͽr91x/1,21.!"%8Z$:T82W8:Q81!S8~6!r9*7|!"7Z$:T82U82>2O8!7~6ȯ2O8:IP92!N9:5̓ 6"8͝22O8a/:8ďP!T8u2w:8ʅ2:+8=2w~=!B8e)!\8(ͣ2ì\ͣ2û\:8ʭ233:T8!W8w!D8w!]8w*>9"@9"B9>2?8: /!28!7 ! 7!76.!86/:28ɯ2727~#28~28#"8O3}28|28"8O3~#28~#28"8:8=>$G&{3Ē3i`)`4^#V*8 *8)))f4N!8 :86i`)`4^#V#^#V#E4~#fo)DM!"q#p#N#Fi4 ~>)(& 36464 3~>'(&#:8>,(&8 >*(&w!84>+(&# 4^#V>((&!8:8wͩ>&(&Q4!$~(&͞>>Ely'76'77 77277#77`7g77n77'7,7]7  ******************************************************************************************************YOU MAY NOW REPLACE THE DISKS YOU REMOVED EARLER.******8*********** FAILURE *******************ORDSTAR HAS FAILED INTHE DETERMINATION IT AS ATTEMPTING.PLEASECHECKYOUR RINTE AND SYSTEM.IF ALL ELSE FAILS RESET OUR SYSTEM AND TRY INSTALLING AAINoDTTO RERY THS OPEZ7Z7???????????!*8!S*8"8You are trying to run an uninstalled WORDSTAR.Plea*(&w!84>+(&# 4^#V>((&!8:8wͩ>&(&Q4!$~(&͞>>Ely'76'77 77277#77`7g77n77'7,7]7 COPYRIGHT(C) 1980 MICROPRO INTERNATIONAL, SAN RAFAEL, CALIFORNIA, USA. ALL RIGHTS RESERVED. WordStar 2.1 Message Texts bvC < t(1p Y#`$y$%$$%%>&l&&&&'i"%W&&bb=bsrbb((9)w)))P*Z*n****b*;+T++++b}0?~C]f\:LzR JbEbbbbbb"+#$!&b$$$K,bV,V,V,V,l,l,V,b,,b- -'-]---b.".bb.b?..b../5/@/L/k/m////(b//b0bK0bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb D=create or edit a Document file H=set Help level  N=create or edit a Non-document file X=eXit to system  M=Merge-print a file P=  F=File directory+ Y=delete a file  L=change Logged disk drive O=cOpy a file  R=Run a program E=rEname a file  For maximum help (full menu display),  select Help Level 3 by typing ^JH3.  This message will clear when a key is pressed.  TO HYPHENATE, PRESS -. Before pressing -, you may  move cursor: ^S=cursor left, ^D=cursor right.  If hyphenation not desired, type ^B.  CURSOR: ^A=left word ^S=left char ^D=right char ^F=right word  ^E=up line ^X=down line  SCROLL: ^Z=up line ^W=down line ^C=up screen ^R=down screen  DELETE: DEL=char left ^G=char right ^T=word right ^Y=entire line  OTHER: ^V=insert off/on ^I=tab RETURN=end para ^U=stop  ^N=insert a RETURN ^B=reform to end para ^L=find/replace again  HELP: ^J displays menu of information commands  PREFIX KEYS ^Q ^J ^K ^O ^P display menus of additional commands CURSOR: ^A=left word ^S=left char ^D=right char  ^F=right word ^E=up line ^X=down line SCROLL: ^Z=up line ^W=down ^C=up screen ^R=downDELETE: DEL=char left ^G=right ^T=word ^Y=lineOTHER: ^V=insert off/on ^I=tab RETURN=end para ^U=stop ^N=insert a RETURN ^B=reform ^L=find/replace againPREFIX KEYS ^Q ^J ^K ^O ^P display additional menus  ^Q PREFIX (to cancel prefix, press SPACE bar) CURSOR: S=left Side E=top X=bottom D=right enD line  R=beginning file C=end file 0-9,B,K,V,P=to markerSCROLL: Z=continuous up W=continuous down DELETE TO END LINE: DEL=left Y=right FIND, REPLACE: F=Find a string A=find And substituteREPEAT NEXT COMMAND: Q=repeat until key pressed  ^Q PREFIX (to cancel prefix, press SPACE bar)  CURSOR: S=left Side screen E=top screen X=bottom D=right enD line  R=beginning file C=end file 0-9, B, K, V, P = to marker  SCROLL: Z=continuous up W=continuous down  DELETE TO END LINE: DEL=left Y=right  FIND, REPLACE: F=Find a string A=find And substitute  REPEAT NEXT COMMAND: Q=repeat until key pressed  ^K PREFIX (to cancel prefix, press SPACE bar) END EDIT/SAVE: D=Done X=done,eXit S=Save,reedit Q=abandonMARK BLOCK: B=Block start K=blocK end H=Hide/displayBLOCK OPERATIONS: V=moVe block C=Copy block Y=delete blockADDITIONAL FILES R=Read file W=Write block J=delete file & PRINTING: O=cOpy file E=rEname P=DISK & DIRECTORY: L=Log disk F=File directory+PLACE MARKERS: 0-9 = set/hide place marker 0-9  ^K PREFIX (to cancel prefix, press SPACE bar)  END EDIT/SAVE: D=Done edit X=done, eXit S=Save, reedit Q=abandon  MARK BLOCK: B=Block start K=blocK end H=Hide/display  BLOCK OPERATIONS: V=moVe block C=Copy block Y=delete block W=Write  ADDITIONAL FILES R=Read file W=Write block J=delete file  & PRINTING: O=cOpy file E=rEname file P=  DISK & DIRECTORY: L=change Logged disk F=File directory+  PLACE MARKERS: 0-9 = set/hide place marker 0-9 ^P PREFIX: Put Control Character in File V=subscript T=superscript Y=ribbon color changeS=underScore B=Boldface D=Double strike A=alternate pitch N=standard pitch X=strikeout begin/endO=non-break space F=phantom space G=phantom rubout C=pause H=overprint char RETURN=overprint lineQ,W,E,R=user printer controls SPACE=cancel prefix ^P PREFIX: Put Control Character in File  V=subscript begin/end T=superscript begin/end Y=ribbon color change  S=underScore begin/end B=Boldface begin/end D=Double strike begin/end  A=alternate pitch N=standard pitch X=strikeout begin/end  O=non-break space F=phantom space G=ph. rubout (see manual)  C=pause when printing H=overprint next character RETURN=overprint next line  Q, W, E, R = user printer controls SPACE=cancel prefix ^O PREFIX: on-screen formatting commands S=line Spacing C=Center cursor line F=margins/tabs from lineL=Left margin X=margin release E=soft Entry #R=Right margin W=Word wrap  D= , ctrl dspy%I=set tab stop J=Justify! P=Page display (N=clear tab V=Var tabs" T=ruler display&G=para tab H=Hyphen-Help$ SPACE=cancel prefix ^O PREFIX: on-screen formatting commands  S=set line Spacing C=Center cursor line F=margins/tabs from File line  L=set Left margin X=margin release E=soft hyphen Entry#  R=set Right margin W=Word wrap  D= , print ctrl dspy%  I=set tab stop J=Justification! P=Page break display (  N=clear tab stop V=Variable tabs" T=ruler display &  G=paraGraph tab H=Hyphen-Help$ SPACE=cancel prefix  ^J PREFIX: help commands  H = display and set Help level M = Margins and tabs  F = Flags in right screen column S = Status line  I = command Index; entering text R = Ruler line  B = paragraph reform (^B command) V = moVing text  D = Dot commands, print controls P = Place markers  SPACE=cancel prefix  ^S=delete character ^Y=delete entry ^F=File directory  ^D=restore character ^R=Restore entry ^U=cancel command  TYPE ^KP TO CONTINUE PRINT  TO RETURN CURSOR TO POSITION BEFORE SAVE,  TYPE ^QP BEFORE TYPING ANYTHING ELSE.  TYPE 1-9 TO VARY SPEED, SPACE TO STOP *** WARNING:  WRONG VERSION OF WSMSGS.OVR --  SOME MESSAGES MAY BE INCORRECT. *** *** WARNING  SCREENS OVER 48 LINES HIGH OR 120 COLUMNS WIDE  HAVE NOT BEEN TESTED AND DEBUGGED. PROCEED WITH  CAUTION; REDUCE WIDTH IF BUGS ENCOUNTERED. *** WARNING: DISK FULL,  DELETING OLD .BAK FILE TO MAKE SPACE  (NORMALLY, THE PREVIOUS BACKUP FILE IS DELETED  ONLY AFTER EDIT IS SUCCESSFULLY COMPLETED).  CAN'T DISPLAY PAGE BREAKS IN A NON-DOCUMENT FILE *** WARNING: WORD TOO LONG TO FIT MARGINS  PUT AT FILE BEGINNING FOR CORRECT PAGE BREAK DISPLAY  Normally press RETURN only, or enter one or more of:  number=repeat count, B=search Backwards, W=whole Words only, U=ignore case, N=replace w/o asking, G=replace in entire file. HELP LEVELS  3 all menus and explanations displayed  2 main editing menu (1-control-char commands) suppressed  1 prefix menus (2-character commands) also suppressed  0 command explanations (including this) also suppressed  CURRENT HELP LEVEL IS  ENTER Space OR NEW HELP LEVEL (0, 1, 2, OR 3):  The LOGGED DISK (or Current Disk or Default Disk) is the  disk drive used for files except those files for which  you enter a disk drive name as part of the file name.  WordStar displays the File Directory of the Logged Disk.  THE LOGGED DISK DRIVE IS NOW  NEW LOGGED DISK DRIVE (letter, colon, RETURN)?  Use this command to create and alter program source files  and other non-documents. Word wrap defaults off;  tabbing defaults to fixed (TAB chars in file; 8-col stops);  page breaks not shown; hi bit flags not used in file.  For normal word processing uses, use the "D" command instead.  Use this command to create a new document file,  or to initiate alteration of an existing document file.  A file name is 1-8 letters/digits, a period,  and an optional 0-3 character type.  File name may be preceded by disk drive letter A-D  and colon, otherwise current logged disk is used.  WARNING: You are editing the same file as you are printing.  WordStar will not allow you to save the edited version  until the print has completed or has been abandoned.  ALLOW PRINT TO FINISH BEFORE EDITING A FILE.  YOUR SYSTEM DOES NOT HAVE ENOUGH MEMORY TO  PERMIT SIMULTANEOUS EDITING AND PRINTING.  CAN'T EDIT A FILE WHILE MERGE-PRINTING --  FINISH OR ABANDON MERGE-PRINT BEFORE EDITING  FINISHING PRINT BEFORE EXIT  (type ^U to cancel exit command) ... FINISHING PRINT OF SAME FILE BEFORE SAVING  (Type ^U to cancel Save command) ...  FINISHING PRINT OF .BAK FILE BEFORE SAVING  (Type ^U to cancel Save command) ...  ABANDONING UNCHANGED  ABANDON EDITED VERSION OF INVALID  NAME:    NOT FOUND  Now printing file  "Y" TO ABANDON PRINT, "N" TO RESUME, ^U TO HOLD: PRINT?  For default press RETURN for each question: START AT PAGE NUMBER (RETURN for beginning)?  STOP AFTER PAGE NUMBER (RETURN for end)?  NUMBER OF COPIES (RETURN for 1)?  DISK  OUTPUT (Y/N):  OUTPUT  NAME?  USE FORM FEEDS (Y/N):  SUPPRESS PAGE FORMATTING (Y/N):  PAUSE FOR PAPER CHANGE BETWEEN PAGES (Y/N):  Ready printer, press RETURN: WARNING: You are printing the same file as you are editing.  The last saved version will be printed, not reflecting un-  saved changes. Furthermore, WordStar will not allow you to  save the file being edited while the print is in progress.  END EDIT (^KD) BEFORE STARTING PRINT.  YOUR SYSTEM DOES NOT HAVE ENOUGH MEMORY TO  PERMIT SIMULTANEOUS EDITING AND PRINTING.  TOO LITTLE MEMORY FOR MERGE-PRINT  *** PRINT OUTPUT DISK IS FULL. PRINT PAUSED. *** THAT PLACE MARKER NOT SETBLOCK BEGINNING NOT MARKED  (OR MARKER IS UNDISPLAYED)BLOCK END NOT MARKED  (OR MARKER IS UNDISPLAYED)BLOCK END MARKER BEFORE BEGINNING MARKERBLOCK TOO LONG -  MOVE OR DELETE IN TWO SMALLER BLOCKSTHAT FILE EXISTS ON DESTINATION DISK.  DELETE EXISTING FILE FIRST,  OR USE A DIFFERENT DISKETTE.DISK FULLINVALID COPY LENGTHADDRESS IN "HOLE" (TSTADR)MEMORY FULL (MAK256)MEMORY SHORTAGE (MKSP)POINTER > 64K FROM CURSOR (PPTOAD)NOT ENOUGH MEMORY  OR YOUR OPERATING SYSTEM IS NOT  RELOCATED TO MAKE ALL RAM AVAILABLE DISKETTE DIRECTORY FULL CLOSE FAILURE -  SYSTEM FAILURE, OR YOU CHANGED DISKETTES RENAME FAILURE -  SYSTEM FAILURE, OR YOU CHANGED DISKETTES INVALID SCREEN HEIGHT OR WIDTH  MESSAGE  Can't edit a file of type .BAK or .$$$  -- rEname or cOpy before editing BAD OVLY #BAD OVERLAY FILE, OR  WRONG VERSION OVERLAY FILE Overlay file  Not Found FILE  NOT FOUND  (The seperately sold file   is required for use of Merge-print.)  NOT FOUNDPROGRAM IS AN EMPTY FILE!?PROGRAM TOO BIG FOR  MEMORY AVAILABLE UNDER WordStar LET PRINT COMPLETE BEFORE RUNNING A PROGRAM  NOT ENOUGH MEMORY TO USE "RUN PROGRAM" COMMAND  File  Not Found --  Can't Run a program unless  is available.  FILE  ALREADY EXISTS FILE  NOT ON SAME DRIVE  TOO LITTLE MEMORY TO COPY WHILE  EDITING OR MERGE-PRINTING  FILE  EXISTS -- OVERWRITE? (Y/N): FILE  IN USE BY WordStar   P=   Press space bar after reading screen: *** Invalid Dot Command Ignored: *** File Not Found *** But found, and will use, *** Cannot change disk in drive , request ignored Insert diskette with file then press RETURN: *** No .DF before .RV: *** WARNING: Overlong data value truncated *** Invalid variable name in .RV command ignored *** WARNING: Data exhausted, null value(s) used ***** Print Directives *****  PRINT CONTROL CHARACTERS may be entered anywhere in a line  to invoke underlining, boldface, subscripts, pauses, etc.  They are entered by typing ^P and a letter. A directory  of most print controls is given on the ^P PREFIX MENU;  see manual for more.  DOT COMMANDS are special lines beginning with a period and  a two-letter code. They control page breaks, headings,  page numbering, page layout, etc. Dot commands are  typed in like other text.  Space bar for DOT COMMAND SUMMARY, ^U to return to editing:  ***** Dot Commands *****  PUT EACH DOT COMMAND ON SEPARATE LINE, WITH . IN COL 1  .PA new PAge  .CP n new page if less than n lines left on this page  .OP Omit Page numbers when printing, starting this page  .PN print Page Numbers, starting this page (default)  .PN n set Page Number to n, print page numbers  .PC n Page number Column (default 33 (30 if 64-col screen))  .PO n Page Offset: extra indent when printed (default 8)  .. text comment, not printed  press space bar for next frame:  .HE text HEading used until next .HE (default blank)  .FO text FOooting (replaces page number) (blank)  .PL n Paper Length: total number of lines (default 66)  .MT n Margin at Top: # lines, top paper to text (3)  .MB n Margin at Bottom: # lines, end text to end paper (8)  # lines text on page is PL - MT - MB (defaults to 55)  .HM n Heading Margin: blank lines between head and text (2)  .FM n Footing Margin: blank lines, text to footing (2)  FOR PAGE BREAKS TO DISPLAY AS THEY WILL PRINT, USE  .PL,.MT,.MB, AND .LH (next frame) AT FILE BEGINNING ONLY.  Depress space bar for next frame:  THE FOLLOWING WORK ONLY WITH INCREMENTAL PRINTERS:  .LH n Line Height in 48ths of an inch (default 8)  .CW n Character Width in 120ths of an inch, for standard or  alternate pitch, whichever is in use (see ^P menu).  (default 12 for standard, 10 for alternate)  .SR n Subscript / Superscript Roll in 48ths of an inch (3)  .UJ OFF/ON "MicroJustification" off/on (default ON)  Use insure that printed column alignment exactly  matches screen, e.g. for tabular material:  Put .UJ OFF before table, put .UJ ON after table.  Space for next frame, ^U to return to editing:  SPECIAL CHARACTERS in HEADINGS (.HE) and FOOTINGS (.FO):  # prints as current page number  \ do not interpret next character as a special character  ^K do not print following spaces if on even-numbered page  PAGE NUMBER POSITIONING: If a footing text is specified (.FO  dot command), the default bottom center page number is not  printed. Use a # in heading or footing to position page  number where desired. ^K followed by spaces followed by #  may be used to produce alternating left/right page numbers.  Space for next frame, ^U to return to editing:  ***** Merge-Print Dot Commands *****  .DF filename specify Data File for .RV  .RV name,name,name,... Read Variable values from data file  .AV "prompt",name Ask operator for Variable value  &name& anywhere in doc't prints as variable value. variable names are letter then 0-39 letters, digits, -'s. .FI filename Insert document File  .DM message Display Message  See manual for details and additional commands. Merge-Print  is an optional feature, operational only if MERGPRIN.OVR is  on your diskette. Press any key to return to editing:  ***** STATUS LINE (top line of screen) *****  ^JS at left end of line is command now executing  A:NAME.TYP is name of file you are now editing  PAGE n is page number of cursor (disregards .PN's)  LINE n is printout line on page of cursor position  COL n is printout column on line of cursor position  INSERT ON shows if character insertion is on (^V command)  MAR REL shows if margins are released (^OX command)  decimal shows during decimal tabbing  LINE SPACING n shows if line spacing is not 1 (^OS command)  PRINT PAUSE shows if printer is stopped (^KP to resume)  when WAIT appears, stop typing. Press space bar:  If page break display is OFF (^OP command) or edit  was started with N command, then Status Line shows  FC=nnnn FL=nnnn in place of PAGE n LINE n .   FC=nnnn cursor position in characters (bytes) from  beginning of file  FL=nnnn cursor position in file lines from beginning  of file, including dot command lines   space bar:  ***** FLAG CHARACTERS (rightmost column of screen) *****  < line ends in "hard" carriage return, entered by user  space this line break arose from word wrap or paragraph  reform, and may moved on subsequent reform  + this line of document continues on next screen line  - next line will overprint this line  ? unrecognized or incomplete dot command  M Merge-Print (optional feature) dot command  P page break  : this screen line is before beginning of document  . after end of document press space bar:  COMMANDS TO -- ARE --  move cursor on main and ^Q menus  scroll file up or down on main menu; also find (^QF)  delete text on main and ^Q menus; also ^KY  move or copy text on ^K menu  end edit / save file ^KD; see ^K menu  print (while editing) ^KP  set tabs and margins on ^O menu  reformat text ^B; ^JB gives info  find a string; replace ^QF; ^QA; ^L repeats last  press space bar for "entering text":  ***** ENTERING TEXT *****  To enter text at cursor position, just type the text.  Use RETURN key for paragraph end or other fixed line break;  let word wrap form lines within paragraph.  Type ^V to turn insertion off (to overtype) or back on.   ^N may be used to create blank lines ahead of cursor,  as before inserting a paragraph.  Use ^B to realign margins after corrections.  ^JM shows info on margins, tabs, table entry, outline entry. press space bar after reading:  ***** TO MOVE A BLOCK OF TEXT *****  1. Put cursor on first character, type ^KB to mark start.  2. Put cursor after last character, type ^KK to mark end  (for end line, use start next line to include RETURN).  3. Put cursor at destination, type ^KV to move the text,  or ^KC to make a duplicate copy.  To undisplay markers afterwards, use ^KH.  ^KB and ^KK may be entered in either order, with or without  other intervening commands.  All above commands are on ^K menu. press space bar:  ***** PARAGRAPH REFORM (^B) *****  To realign margins of a paragraph after corrections, place  cursor at beginning of paragraph and type ^B.  To change margins of paragraph already entered, set margins  (^OL, ^OR), place cursor at paragraph beginning, type ^B. To change between justified and ragged right, or change line  spacing, set desired justification (^OJ) & line spacing  (^OS), place cursor at paragraph beginning, and type ^B.  To obtain WordStar's help in hyphenating long words, place  cursor at beginning of paragraph and type ^B.  press space bar for more:  ^B reforms lines to end of paragraph as indicated by "hard"  carriage return (< in rightmost column).  Thus, it is important not to use RETURN between lines  within a paragraph when entering text.  ^B may be used to form hanging indents, change margins in  mid-paragraph, etc. The exact rule is:  "^B starts on the cursor line, at the left margin col-  umn, or at the cursor position, whichever is farther  left, and proceeds to the next 'hard' carriage return".  press space bar:  ***** Hyphen-Help *****   ^B will occasionally stop before the end of the paragraph  and ask you whether you wish a word hyphenated.  Following the instructions that appear on the screen, move  the cursor if desired to adjust the hyphen position,  then press "-" to hyphenate, or ^B to not hyphenate.  To turn off "hyphen-help", type ^OH.  press space bar:  ***** MARGINS *****  To set left margin: Type ^OL. WordStar will asks for column.  Type desired column number 1-240 and press RETURN.  Or, to use column of cursor in file, just press ESCAPE.  To set right margin: type ^OR, proceed as above.  To set both margins to match text in a line already entered:  place cursor in that line, type ^OF.  To temporarily set left margin to next tab stop: type ^OG.  Margins apply to text subsequently entered. To remarginate  text already entered: set margins and use ^B.  press space bar after reading:  ***** LINE SPACING AND JUSTIFICATION *****   To set line spacing: type ^OS. WordStar will ask for line  spacing. Enter a digit 1 thru 9.  To turn justification off (for ragged right format),  or to turn justification back on: type ^OJ.  Line spacing and justification settings apply to text  subsequently entered; they may be applied to previously  entered text with the paragraph reform command (^B).  press space bar for "Tab Stops":  ***** TAB STOPS *****   To set a tab: type ^OI. WordStar will ask for column number.  Type column number and press RETURN. Or, to use cursor  column, press the ESCAPE key. To set a decimal tab stop,  type "#" before typing column number or pressing ESCAPE.  To clear a tab stop or all tab stops: type ^ON.  To tab: type ^I, or press TAB key if present. Tabbing  inserts spaces to next tab stop if insertion (^V) is on.  Tabbing advances cursor over text if insertion is off.  press space bar:  ENTERING A COLUMNAR TABLE -- We Suggest:   Set a tab stop for each column of table.  Clear all other tab stops.  If not at end file, turn on insertion (^V),  or use ^N to make blank lines.  Tab (^I) after entering each table item. After last column  on a line, tabbing will move to first item on next line.  space bar:  OUTLINE FORMAT TEXT ENTRY -- We Suggest:  Set tab stops at desired indentations.  Set right margin as desired.  For each item:  Type ^OG's as required for item number indentation.  Type item number.  Type ^OG.  Type text of item, without using RETURN.  At end of item, press RETURN. Left margin resets.  Press RETURN again if blank line desired.  press space bar:  ***** RULER LINE *****   L----!----!----!----!----!----!----!----!---------R   L Left margin (set with ^OL)  R Right margin (set with ^OR)  ! regular tab stop (set with ^OI, clear with ^ON)  # decimal tab stop (set with ^OI, clear with ^ON)  - other positions between margins   press space bar after reading:  ***** PLACE MARKERS *****   Up to 10 place markers, identified by numbers (n) 0-9,  may be set in a file while the file is being edited.  To set place marker n at the cursor position: type ^Kn.  will display to indicate the marker position.  To return the cursor to place marker n: type ^Qn any  time during the same edit.  To remove the from the display: type ^Kn when the  cursor is already at the marker position.  press space bar:  ***** OTHER MARKER & RELATED COMMANDS *****   The block beginning marker, ¾, and the block end marker,  ˾, are set and moved to in a similar manner; the  text between these markers can be moved (^KV), copied  (^KC), deleted (^KY), or written to a file (^KW).   ^QP moves cursor to its position before preceding command.   ^QV moves cursor to start of last find/replace, or to  source of text for last block move or copy.  press space bar:  IF THIS DISPLAYS YOU ARE USING WRONG VERSION OF WSMSGS.OVR ext for last block move or copy.  press spaceg edited.  To set place marker n at the cursor position: type ^Kn.  will display to indicate the marker position.  To return the cursor to place marker n: type ^Qn any  time during the same edit.  To remove the from the display: type ^Kn when the  cursor is already at the marker position.  press space bar:  ***** OTHER MARKER & RELATED COMMANDS *****   The block beginning marker, ¾, and the block end marker,  ˾, are set and moved to in a similar manner; the  text between these markers can be moved (^KV), copied  (^KC), deleted (^KY), or wri COPYRIGHT (C) 1980, MICROPRO INTERNATIONAL, SAN RAFAEL, CALIFORNIA, USA. ALL RIGHTS RESERVED. WordStar release 2.10 overlay file number 1. overlays for no-file commands and editing  NOSEY, AREN'T YOU?   PDý>BE>?>O>Z>c>I>08y>͍>@2>͖> i>͖>i>/y>:>:>̍>7>>x ʡ>/{/:>><2X?>2<)@*R=>6#"R=B[>D?B *C 3C DC8@,B  @ :?@:?-C6#J? J?~<`~CO?s?H@*f<:j2<2<:{@>@>čA#*S ͍A"h<"R={2j2{<AA:<@3B!%<B#|k/"6<:.<_ C*6<|*9>/ C  >͉C!#>+D:O|kjC!oC/yKʁCyOҁC#zx!a:5*=+D×C*4<*7>+kC*8)SC";<*8+DñC͉C&!aD!,!D> (D>!,>*<-,BGDͱB+D!"  Ln~an#.:*? п́#~+:Šn~Ҋn@##|7sm"lnʤnnhmÔn`m$lʏn!8ʼnͽP:nnͽN:nhmén!8 6á8!z6>l!l!7+o:8o!\+o!lq+o:7'o!<+o:G6! =+o# _ͽ\:'oosm&l`m(lIoʎonlonhmToͽV:q$ͷ&!ʇo#~͂copK>2l:7!G6!8wGOy*@98ͩox27lqNl:\2l:lq2\3ͯ$:8§lͽ9?o$ólͽ9EoSo&lqllol8l282O8:+26:6+).m:t8m3\!2l͂lq!eÂ5m&Nm5mm!D9K*D9yLlq$!L9xMͲL6LyhL6L!"o8!L9xJ*J9͈EdKcm6LͿl:7,ͯ$i$9͑0̀ ķ&:7:7,Ám9åm9>2A7G*7|!:Œo:7uoͯ$:6m!9L$:T82V8&$\!N6m,l2l3$q$*+2*6"g8"!8*g8!L$#+w#W$~OnuncnFnncnǴcnxGxL$}!++)ͽ :a$": nկ {nnͬn.“n#ͬn ʨń7nʿn ¬nn¸n>  n~n#.:*? п́#~+:n~n@##|7ͯ$:7ėooi$:'o:7Đo:oi$:͑0̀ ķ&:7*oi$.lEoÑ0ͽ0l!d6q$ͽ*lio!eo#~Âq$ͷ&*:9*L9/!)k?!9"7!8Ûo!\< _7?]n JlOlUl4EDBACKUP$$$BAKNEW FILE>2A7`l͐l͟lMm3:L6:b26>.m:2626:I!چl~<26>2L6!qe >2qe!l]ʼl!l]l!:"7-!q !28 2[2h2k2}.*!9"q"L9l*:9*L9/|<2828|D!"{8>28#m)"}8*m28!B7wȷ!  >2%!:7!G6w!\~zwlq:lrmw:\~m>2s88 !l~8!l !N6\:s8ʽm6 #:lq !d6lq!6~:s8lq> (&\>m2[m2t8ͽl$uq!l:A7.m:+26:6+);):7Hn*n!:"7:6=*7!a!6Gn5!9"7m8!z6#$>$q$O*+2*6"g8"!8*g8!L$#+w#W$~[m͉momomGy=ʁmxL$}!++)ͽ :a$": ma$$: mկ mmm.§m#m ʼḿ7mm mmm>  m~m#.:*? п́#~+:n~n@##|7:q!qʛnf!qf>(&>(&ͧn!qgqRNzWqbNof!@9K*@9ͳI2!qof}nͧn}nDn!qfoq&9gʘnEÉn}n!qf!qfo7n*>9*L9/*qk> (&2NI&[ ixg"q8!B9I*H9*B9w# n"B9z̈EEn!o!qf:q>(&:q>(&:q>(&p çlïl2m#9IWWFIND? REPLACE WITH? OPTIONS? (? FOR INFO) *** NOT FOUND: "REPLACE\(Y/N):  ???6"2m>ôl2m>267O#$$ͽlq$!6#247yl>,ͽlq$! 7#247>)L$*6!77 >297287:47/m!ͽl!)7 #nl5mԸ':@7Hm:77g"g*97";74n&!qͬf͚mqm*;7|!l!lR&:67m*;7|ʄm+";7:=7Qm&:77LYL2͞ ̈́nr͞oڲm̈́nm͈E&͍mңm:77"gg7 :77:57+n:87$nĞnm:77:57*H9BÈE͔d:57*H9BE*29! 7cnͮI:77:7+n[ 0*F9IÈE!6r:>7Incn[ncn>+wy<<+w#y257~~nwn>  > # fn+q#:>7:77–nMÙn_M?ÈE! l"_8\2.'0n@Yʺn>N!6͂̓ 7*-9~͊ $̓ *a8!$n#!!n&ͷ́n͗ooo#?oa$z97B"o-(o>277G6o>2@72=7N@o287WKo>2>7UVo>2?7> ͽ"l͂ͽ$lq$7~͗o#bk))ܓo0_ܓo"97ro!0?::77o!H9o*H9oÈE!D9o*F9IpòoKGyOxG-pp p#o+Wp#oo#Bpp #&ppWppѷ p 8pWp# 2p2p7 Mp+Wp GpGp7ɮ`p jpˆpAډpG[҄p:?7ʄpxxɮʺpʪpȮ>ʸp~͗o>Ҩp~>ɛmllll(l:lÈlÙlmTMbM7lͣ+lE%cͷMMMlͣ@l#F*+q:%8O~`oly\olol Zl~~wy\…lDM2q6͇RzfTMbM͋͝dËl:Lq*6Weڳl*6+++͈hڶl*6"62Lq!qͱf(*=8"08!:8{!Tal!a"38>2:8!"08:Q8*]q:\qlq.M2m!qg*`qTM2mm%c!qqa>2Q87ɯ2bq{͹mm6m{͹m*m7?Cmͧm{xm͹m͓mʆmͧm>2bq͹m͓msmE7:bq7͹mSʝmD m͹m-7+q͏N"`q#{ʿm&bM? ܀ ڿm7*mɾ#45mo3OmemtmÎmnJnmmmmn nânnmm9s{IQ0 ENTER space OR NEW LINE SPACING (1-9): LEFT MARGIN COLUMN NUMBERumn)? (ESCAPE for cursor col RIGHT For decimal tab stop enter "#" and decimal point column  SETJUMNF TAB AT COL CLEAR./; A for all)? i$?lͷ͂1< 2)!28~6qm6(!D7Alͳm2626<<<26===!6w!6wzo(=xm*"q|}m>m<>! n!!{!"{!#{!${!%{2!&({:'!(m!9"7El!P7oͶm_z#6n_n_n(y!5 ÁnGl!P7Áo;nͶm_{m!5Bzn)))){/w!=6+ʙn~ʈn™n{25(xgon+E!qͱf7o*eq*6/*6*cq|n[}n!qg> kF-n!qgxgoo+͈E4o:cq~m:eq=͘m(nTM*Oq"cq͎g͊7͟gͯo *cq"OqTM*Oq"eq:Oq_͎g͊͟gͯJoBo!1n#6n-]nBoÁo$L$#Gy¯ó#ʭo!¯oW#́7oó{ƒo҃o~:0#bk))BoOpl !/ COMMAND? WHAT???   NOT FOUND  Enter name of program you wish to Run,  optionally followed by appropriate arguments.  Example (shows disk space): STAT :7m!F:"7,/~k!H:m28>3!|!  !͞!J:m!~!"|~2|!=8"|ͯ$:6!lZ$:T82V8&$$a$l$ͽlL$!QpM#ḿyoңmͽlwm!y6C#6O#6M̞mͽlwmy͒n#y͒n23y4y~# myL$!+~w2Z8͑0w="w*y A,/! !5!~y/++/.!yy//!yy8!5|y8̓oo!~5|8! Dկ ˜nfon.°n#n ń7nn*n nnn>?nn> n n~o#.: пկ ofo4o.,o#4oõnRoGo 4oRo@o>  Ho~]o#*?ó#~+:~o~~o@##|7~#fo"o#/"ooooooog*os#zw+|o~w#+|›o*oF#"oxG o8 Hit`m a66m3fmm6`mٳ `16lٶt found *** *** file  bad (too big ??!@&*) *** *** file  bad (too short~$zn++Ts#r+##s#ra++nT#r+s+r+saT8ɛ{1g|*"g|*"i|k|q{9o|t{y{ʃz{ʃzڃz!\!yt{!4yt{@{{>1e|*g|"*i|"!!k|l{!x|l{|{z!|{ͦ{!|{{ |{||$:||*|:||> 2]!|{ͦ{!|{yʁz {*g|>2n|{2n|x|"{:n|"{1e|!|{Áz!y"*!={l{!!i{l{!r|"q{${:|x~# t{^#V+~#ʕ{͠{Æ{!~͆{Æ{O> ì{2n|>*_y;{{N#!Ϳ{5x>4!||!||!||!|!|{{!|{ͦ{8d Hit any key to return to WordStar: Replace diskette with file , hit any key: *** file  still not found *** *** file  bad (too big ??!@&*) *** *** file  bad (too short) *** ***  found is bad or incompatible version *** ^C Cannot return to WordStar. Replace system disk (if removed), Hit any key to return to Operating System: WS.COM zo(ll:8:77E4>ul:7ul!7~6Cl:73 >2 <ͯ$:8]lͽ9!6ͽ9m>2 <27/2 <27:8ao<! < G6!ͯ$m>$q$O*+2*6"g8*g8!L$#+w#W$~Pn~ndndnGy=vnxL$}!++)ͽ :a$":na$$:nկ „nn͵n.œn#͵n ʱń7nn µnnn>  n~n#.:*? п́#~+:o~o@##|7͘$*6&!bkL$#́68qNʲEڵE*H98"H9`i ͧGG>ͧGGG:GG*q͙Gs#r!"q*q#"q*q&)*qg:'2Hq|bk+5\:kq*q*q:'HͼG!GG!G% HHLHTHPLiHMToHMBuHCP0HPAH͗% G> ͧG*q#"q͗% H>ͧGHGY%H͗% H*q*q#k%HHY%HH͗%g}2 qÑH! qxH!qxH!qY%HH͗%vW{͘HͰH| HO: q* !f q*q*q* q/|H`h: q/<_H Hi`"qa 2qx%I  II HJI`IH:'IJI`I3IH:qOqI*q+"q:XIJI>2q!q454%*q+"q*q+"q͙GX"q*D9/A|#O ʋI wIxMI:q1I*F9NͽL*F9qI͋Ig2OI JIIºI ͐F  *F9*H9k!F9!F9KxaͣJz{JKI>G&>28!D9jJ*q*u8k-J"u8!H9jJYJ/*w8kGJ"w8*y8kUJ"y8a*8*~/K`i)\wJ!<9#k+ڐJJͺJJ!J9kaJ++++ÓJ!:9K ͺJҫJ####K9kK++Ts#r+##s#ra++KT#r+s+r+sa!H9T86KͣKa:8GO ͣK3K (KaKdKa!n84F!8HK=O:8=GdKaK VK`*o8*F9/*D9k*q*u8klqҎK;ÛK$*u8#"u8"D9*J9ͲL»K:8WIzLK*q8*H9kڻL*w8YJkK\BL*y8YJk8L;L$*y8+"y8ͲL"J9;G+~# %L> .LaͲLͣJ6KM*}8!L9MhLͲL6L!L9L*J9́LԚLwL28"J9 kLaK&87İ[7ĩ~ʫL#œL7>>:[!87:kq76LK!D9L*D9&lqͰaK"D9 LaK6K*}8ͣJkM*{8)$$MMO>G&xJͣJk*M)|Lɯ2 qNDM*H92 q/2 q*F9NM*J98K*H92 qTMxlM~# ! q~6ʋM2 q*H9*J98xq͏N9L2Mx7*J9ɯ2 qN*H9ұM*D98>2 q*F9îMͷMxM+~ ! q~6M=2 q!D9T8xq͏NͽLͣMx7RNg>_q:~EW o g _ Wz}|{ wN*F9k*H9k>G&͚NcNqNʽN*F9ڭN*H9}o|g_P&!\öNRNN{O>G&z$O*H9*J9/#k+NYLN*H9>-O<>G&*F9*D9/k$OͽL O*F9z7>2 q&:H!EAO~=2)8=2,8=2+8 ]`i"-q "/q͠H>28a/]P*38:kʣO::8ʣO!;8~6AP0͛_ڟO:98*78*387O2:82;8Oͫ&*y /OyªO!ax ڪO*38"58"38"78y2>8x2=8:.8!:8O2-8÷/qRNqbNñf:68P.'$:T8> l2\22T8[ ͯ$,2Z$:T82V8ɯ2T82O8:6!a$9M _M͈E_MͣOPmPZP!%ʊP ܀ %7]P!?8~6%QcTP`i+~+++°P6! ^#V{P\?Gͱ2G:)8P>Px=]MTckbN7>~\͇R/S+Q*-q~Q[|RQ] +Q \#SQ*S|RKRP͝Qq͓Q{<%cq͓Q{%cq͓Q{c[ 2Hq:6!qͱfGuQ!qg*/qDM9gĈEg26:Hq*S+QRN :%8]`i"+qRNmV:%q2&8*&q" q""q:(q2q[ :q\Z R:q=]!ER R RRNmV*Dq*"q""qQ>?2$q!@8~6/[ #R#!̓ !:28=2R>R9R7>R(!285whԁhZ|RcT\ER!+8!HoRͷZ#SKR)\͝2*SKR>ÄR:)8]2q:qW!ER! 45ʧRYTÑR=6++++!ERR! ~ʷRYT!ERRRRNVSmV#N S͆\[9TRzbg 整9TMTzWbN͆\bN:,8=,S>]! BS~wSS MS~SS_SVSMT0T1SRN:q!EmV MT!E$TzS $T $T#NR͆\ SmV#NSZ9TMTR:q!E$TåS9ToS #T#NS$TZRS͆\ T$T $T WbNMT!ET$TbN0TbS:)8 TʮU:DqU/U:%ʾU4UU@U:!6T̀ NU:%pU>^TʮU@TʮÙ UUV!ʍU;U*Dq##"DqaU> &™U>~ʯU!Gqw#: qU*Bq"Dq*@q*>q: qUɯ2 qz2%q*DqzB"&q:Gq2(q!6! qF6TOx2 qy*Dq V*Dq++"Dq͟MM/V͚NͷMEVxbV+~  2V#xbV+~ # +HV>M#1qbNz2:q>29q2=qvX.M> 2Fq!"DqU:I_*29::q`WìVTEW:Gq! qW:;qVV{=VyWO VVw# Vxg{_zWy8O:;q2;q">q"@q*Dq"Bq*>q!;q5'XbMVWʴW ʮW~W ʙW ¦VÐW+2 q:pW W:pWW:iWW 2FqiW:9q29q#,YʐW:iW:W:iWW,Y> ʦVTEWsW ÄW:÷W:iWbMW WW,YWW#:pW@+> O;U*DqzB"Dq5q:9q͏NwXX6Y:GqGXw#X:Fqw[ 5qRN:>ULW͚NvXW22Gq!;q4aXa o  }!;qзXz!=qد2;qz2?ͫYiW͉Y`i{=ʴY~ʴY#ͫYw#͢ÑY!Gq!6:iWlY:':(7XZ9vYLHYPLYMTYMBYHMlYFMlYPClYPOlYSRlYUJlYBPlYCWlYPAkYCPlYPNkYOPkYHEkYFOkYIGkYPFYOJYIJYLMYLSYRMYCSYDMYSVYAVYRPYDFYRVYFIY!a1q͟MM%gZM"YkZ][ Z ̠ZMT!)8Zg2RNmV *q͑ͱ2͚\h[ \×\[ͱ2[ì\]!)8\\2h[\×\][!)8[\[W:6[:{'[þ\=[=[!!{j&!!:'8W"͞ *+98*)98 W͒\:6¹[:t[>[þ\:+ƒ[:T8!W8ʡ[:A8ʃ[2O8e)(]"> Jì\[[!t1[:'8W" [||g}oqPY!r8!pg2`iq\q\PY!r8![ \=+\͚NH\DMRNb\ԥ\g2cTԥ\K\r:EW |\|\#Nʋ\҆\i\7 †\::,8 ]ͥ\ ~q!E\:E ]!E/\W:Eq_\ \Gͱ2Oxͱ2!)8/<ͱ22qog))r DM!r [}:)3]>!6FO:28A] *_8|L]:7!s8O!\ #~ g] _]:I'}]'!N6s(,Yʡ]B(E*q#͊^b(E*q#͊^]B(E:q_*q-(͊^:$q(*_8| ^>+'p(*29*c8/e."a8:6!28'~#^>B( E:Lq1^>B($E=^>%B("E:)S^>0B((E0(`^g^+|g^xʊ^`i`^(Iz :^8:\8W(O*29:I=G:&^:+:6^_{!6z^!6w# ^^6+i,ä^> ^w#^6 i,z2]8>2^8{!6,__\:+8] àZ:+!E8\)*-q++++~a:%8!+8`Za:{!6]àZ*-q~͝2 \*Saa bMͣ+!6{:6:q=%cuc*F9++͈E>2q26a͸'P0*6ͷ2982/8;'! aNbbÔd!Iq6298-'b!Q845%brg!#45'b>Nb- ~:O8/!Iq!:8O2=8bcgG1cxGܔdlb!qJxkF ܔd!A85bhʔd2Q8_Mڲb͝ ܔd1c:6”d~ ܔdE*+q~###b~bw+w+w###rkҵb 1c!qͱf!qgM cMc#͙c!Mq4cF*"q+""qg*q-!c!ę!"Lq"Q8:Lq:67:q=ȷ%cͭćhYc!28~6(!A85:)=mc=cc!645ʂc͔d> kF> kFTMbMڤc›c+ J5\w#ͣ…cÈE͈EQ\xc:6!6w(Ը'͞ c[=ćRaeÝ2Ը'͞ c)\*S] c[́Rac\g?<:q%cM`F@d*+q~~wÑd_M͕aO͎d!q~y@d4 :Lq!Mq~Td5!qͱf!qg> kFͱf:qg_MͩM͓TMm`̏`%cEzf*+q:!q¨d: q Ұd~~w++++~~w>2Iq%cd:Lq!"q$"qͷMMd͙d#qÏNTed!""q[cz:60eTM*"q͈h҈EbM-e+͝-e#!"qqe͈EQ\> g:"> lb*"q͈h> kFGe*"q:"le{_ÎezʂeZe& 7 [e{teͰeZe2Lq2«e*6͈hte*6͈hZe 7ȷ{!5B~eo&" q*+q~e++++e~`e"+qDM#`_.MfÈE!")q* qU|f{bM+Bf͝#!)qq#:!q?ff+zf+͈EMGfͽfܝ2~###f6?\ͳf?\͋f!qw2a:6qRNz>q >#N>6qf6#w#w#w/}))q~wwf~~wwffͽff>(&>2WDM9gaz&͈E2n8g!qf_M&2!]N͈E"g[ RN{pg{\gTg|kg!kgkF 7> GJgOͯĠ2!"qyq́hͪg>2Iq2Nq͔hohhQ\oh*Zq*6/"]q+|ch͠k:!jQ\%cjQ\9h͈E2Q8*"q*6Èh*6*"qzʑh7?{xgTM*OqzhbM͊7ʽh+sjh~w#͟gÚh͈E*Oq*6"Oq/ErkTM&q>͏N!Qq  4ih> 2Yq:Uq:Xqi!9"74i!Yq5i*Vq"Zq*q"q*q"qnjͅj Fi͕a7͊7Ti>+w#_͛iW*Oq͟g*6*Oqti#͈hҔi:Vq”i"Vq+q>͏N:Vq{jʲizj>ʽi{ͯʶi2Xqzͯ>G!Qq~p#wzͷxiO#~q#wz2\q*Oqi#"Zq!Uq4+xq>͏N=j: q͟MMw2 q&q͟MMW&j6.M2njEjͅjWͯ,j͊7+͈E:)=_&>kF> kFMj&*6"OqErkTM:Nq͚Nq#N7bMʕjʕj+͈ETMbMڹjʜjQ\µj͕aÜj+ͿjE_M͙ zjͯ+6 -:RqG:]q!gq64j!TqjwO k!_q4 k<552hqx!Tq2iqq.MbM`kk&!Rq5_k͵:gqBk!Tq5Qk!hq5Qk!iq5Qk=<kckTMk:]q͈E!]qnk~G~w&xk>OxGkͳIrk:$/!Nq:Rq!!]q3 nlm{n!! k8l:81l>3l!9"7!@9Pn*<9"P="L="J="N="X="`="\="Z=6#"T="R= 6#"V="^="F="H="< s#r" <>s#r#:7l*@9 kl!v:"7">92>2<:G6m::l>2<=/l2<2<>m:>m:>m/2:G6! Wm:i!8i"_*]a"_a*?a"Aaw*Qa"`"`*=aw*daw*Sa"Waw+w/2_2_:2_>27:7ʀ 3 ,3%nͱ *F=3w#6*H=w#62-<:<2.<:2/<2<*":ėC!%<U<@!">2<[z?*R=S>>6#"R=!&>!<455Y?D>͓>>E? /C /C `??!B T? ʉ>6#͵> ͯ> #ͯ> ¥>~ɯ!<4͵>~<`~Cú>!<~X?~62<?2k<*h<͓>>#!k<44ͪ>~>"R=͙?*f<:j<?:k!<`B H:<̔B:<:%Dy!a %C+C *C*C!?<4x!:<4:<ͳC!a:=CG]C̀C!"<[:[nCͩC]C:=(=LX:Ox 3 O[[:%=7=Rd*<#WC:?<=2?<> ;CóC:=C͗CC!<C6C6:<ͩCCD!<4:=>2<ͩCD~D5>KC͗C!<~4:=:<?8D!Ca:<Da:MC>:zB:(>><2[2<͇?*R=[>¶>6#"R=!<>͢>hC C C C?A k? ʘ>o?ʘ>C6#ͨ> ͨ>~<`~Cí>>ͦ?*f<:j!9BK/!%<2z~6# Ox@?"f2<2<:{ @ +~<.@*V=++~*<>B@>B@>@#*SO#x@{a@> @"h<"R={2j2{<MAMAMAVAC'A2<͌BB~B5>1BzB!<~4:=:<? C!Ba*-<&(MC~#CPY{C*/<&!,<CB<=BAC:z2@<2A<>>">5>ɯC>!\=) K>w#"\=!\=T/zK>6#?>ͨ! <~6!Z=) ҁ> =2w>!|9"7͠K>"Z=N>͓ *`="Z="\=ɛ B:(<: !a æC:<!a:=BGCBfB!"<[:[TB͌BCB:=(=LX:Ox 3 O[:%=7=Rd*<#=B:=BzBڶB!<¯B6¶B6:<͌BÖBB!<4:=>2<͌BB~B5>1BzB!<~4:=:<10 REM THIS IS AN ARTILLERY DUEL GAME:ELEV VS. DIST. TO TARGET 40 PRINT "THIS IS A BATTLESHIP DUEL" 50 PRINT "A HIT WITHIN 100 YARDS OF TARGET WILL WIN THE GAME" 60 PRINT "THE MAX. RANGE IS 46,500 YARDS." 70 PRINT "THE ELEVATION IS IN DEGREES AND TENTHS OF DEGREES" 80 REM T=TARGET DIST.;I=DIST. OF SHOT;E=UNDER(-)OR OVER(+) DIST FROM TGT. 90 LET W2=0 95 RANDOMIZE 100 LET T=43000-30000*RND-1 110 LET S=0 120 PRINT 130 IF W2=0 THEN 550 REM TO 640 140 GO TO 590 150 PRINT "MIN. ELEV. IS ONE DEGREE" 160 GO TO 600 170 PRINT "MAX. ELEV. IS 89 DEGREES" 180 GO TO 600 190 IF B>45 THEN 320 200 PRINT "OVER TARGET BY ";ABS(E);"YDS-LOWER ELEVATION" 210 GO TO 600 220 PRINT "OVER TARGET BY ";ABS(E);"YDS-RAISE ELEVATION" 230 GO TO 600 240 IF B>45 THEN 370 260 PRINT "SHORT OF TARGET BY ";ABS(E);"YDS-RAISE ELEVATION" 270 GO TO 600 280 PRINT "SHORT OF TARGET";ABS(E);"YDS-LOWER ELEVATION" 290 GO TO 600 300 GO TO 310 310 PRINT " ***** TARGET DESTROYED ***** ";S;"ROUNDS EXPENDED" 320 IF S>2 THEN 350 330 PRINT " THAT'S DARN GOOD SHOOTING, SON!" 340 GO TO 470 350 IF S>4 THEN 380 360 PRINT "VERY GOOD SHOOTING. WE NEED MORE LIKE YOU." 370 GO TO 470 380 IF S>7 THEN 410 390 PRINT "ABOUT AVERAGE, TRY TO IMPROVE" 400 GO TO 470 410 IF S>10 THEN 450 420 PRINT "I GUESS YOU KNOW YOU'RE A LOUSY SHOT. YOU SHOULD " 430 PRINT "BE INSIDE WITH THE COOK, FOR ALL OUR SAKES" 440 GO TO 470 450 REM DELETED BAD LINE 460 PRINT " OUR FATHER WHO ART IN HEAVEN... ! " 470 PRINT 480 PRINT 490 PRINT 500 PRINT "DO YOU WANT TO PLAY ANOTHER GAME? ENTER YES OR NO" 510 INPUT R$ 520 IF R$="Y" THEN 550 530 IF R$="YES" THEN 550 540 GO TO 780 550 PRINT "THE ENEMY HAS BEEN SIGHTED, MAN YOUR GUNS!" 560 LET W2=1 570 PRINT 580 GO TO 100 590 PRINT "DISTANCE TO TARGET IS "; INT(T);"YDS" 600 PRINT 610 PRINT "ELEVATION:"; 620 INPUT B 630 IF B=90 THEN 730 640 IF B<1 THEN 150 650 LET S=S+1 660 LET B2=2*B/57.3 670 LET I=46500*SIN(B2) 680 LET X=T-I 690 LET E=INT(X) 695 IF E<-100 THEN 190 700 IF ABS(E)<100 THEN 300 710 IF E>100 THEN 240 730 PRINT 740 PRINT " #### BANG - YOU BLEW YOURSELF UP ####" 750 PRINT 760 GO TO 470 770 PRINT 780 PRINT 790 PRINT 9999 END  420 PRINT "I GUESS YOU KNOW YOU'RE A LOUSY SHOT. YOU SHOULD " 430 PRINT "BE INSIDE WITH THE COOK, FOR ALL OUR SAKES" 440 GO TO 470 450 REM DELETED BAD LINE 460 PRINT " OUR FATHER WHO ART IN HEAVEN... ! " 470 PRINT 480 PRINT 490 PRINT 500 PRINT "DO YOU WANT TO PLAY ANOTHER GAME? ENTER YES OR NO" 510 INPUT R$ 520 IF R$="Y" THEN 550 530 IF R$="YES" THEN 550 540 GO TO 780 550 PRINT "THE ENEMY HAS BEEN SIGHTED, MAN YOUR GUNS!" 560 LET W2=1 570 PRINT 580 GO TO 100 590 PRINT "DISTANCE TO TARGET IS "; INT(T);"YDS" 600 PRINT 610 PRINT "ELEVATION:"; 620 INPUT B 630 IF B=90 THEN 730 640 IF B<1 THEN 150 650 LET S=S+1 660 LET B2=2*B/57.3 670 LET I=46500*SIN(B2) 680 LET X=T-I 690 LET E=INT(X) 695 IF E<-100 THEN 190 700 IF ABS(E)<100 THEN 3010 REM THIS IS THE CRAP GAME PROGRAM 1/22/81 VERSION 20 DIM E$(13), F$(13),D$(3) 30 PRINT "1/22/81 VERSION OF *** CRAP GAME ***" 40 PRINT 40 PRINT "YOU PLAY AGAINST THE COMPUTER; MAY THE BEST MAN WIN!" 50 PRINT "TO BET, ENTER AMOUNT AS (-) DOLLARS" 60 PRINT 70 PRINT "TO STOP THE GAME, BET 0 DOLLARS" 80 PRINT 90 PRINT 100 PRINT "WHAT NUMBER BETWEEN 1 AND 711 IS LUCKY FOR YOU TODAY?" 110 INPUT A 120 PRINT 130 IF A<1 THEN 100 140 IF A>711 THEN 100 150 RANDOMIZE 152 LET X=RND-A 160 LET Y=INT(250*X)+50 170 PRINT "GOOD... YOU HAVE ";Y;" DOLLARS TO PLAY WITH" 180 Z=1 190 PRINT 200 PRINT "YOU ROLL FIRST" 210 PRINT 220 IF Z=1 THEN 290 230 PRINT 240 PRINT "YOU NOW HAVE ";Y;" DOLLARS" 250 PRINT 260 IF Y=0 THEN 650 270 PRINT "CHANGE THE DICE, TO THE LEFT" 280 PRINT 290 PRINT "HOW MUCH DO YOU BET?" 300 INPUT B 310 IF B=0 THEN 1030 320 IF B1 THEN 710 420 E=C+D 430 IF Z=2 THEN 810 440 IF E=2 THEN 510 450 IF E=3 THEN 510 460 IF E=7 THEN 550 470 IF E=11 THEN 550 480 IF E=12 THEN 510 490 PRINT "YOU ROLL ";C;" AND ";D;", SO YOUR POINT IS";E 500 GO TO 1060 510 PRINT "YOU ROLL ";C;" AND ";D;", AND CRAP OUT..." 520 LET Y=Y-B 530 IF Y=0 THEN 650 540 GO TO 590 550 PRINT "YOU ROLL ";C;" AND ";D;" AND PASS..." 560 GO TO 580 570 PRINT "YOU ROLL ";C;" AND ";D;" AND MAKE YOUR POINT..." 580 LET Y=Y+B 590 IF Y=0 THEN 650 600 PRINT 610 PRINT " YOU NOW HAVE ";Y;" DOLLARS" 620 PRINT 630 GO TO 290 640 PRINT 650 PRINT 660 PRINT 670 PRINT "YOU HAVE GONE BANKRUPT..... SORRY ABOUT THAT." 680 PRINT 690 PRINT 700 GO TO 1290 710 IF Z=2 THEN 920 720 IF F=E THEN 570 730 IF F=7 THEN 760 740 PRINT "YOU ROLL ";C;" AND ";D;" ...ROLL AGAIN." 750 GO TO 370 760 PRINT "YOU ROLL ";C;" AND ";D;" AND LOSE..." 770 LET Z=2 780 LET Y=Y-B 790 IF Y=0 THEN 650 800 GO TO 240 810 IF E=2 THEN 880 820 IF E=3 THEN 880 830 IF E=7 THEN 900 840 IF E=11 THEN 900 850 IF E=12 THEN 880 860 PRINT " I ROLL ";C;" AND ";D;" , SO MY POINT IS ";E; 870 GO TO 1060 880 PRINT " I ROLL ";C;" AND ";D;" AND CRAP OUT..." 890 GO TO 580 900 PRINT " I ROLL ";C;" AND ";D;" AND PASS..." 910 GO TO 520 915 REM BEGINNING OF THIRD PAGE 920 IF F=E THEN 1010 930 IF F=7 THEN 960 940 PRINT " I ROLL ";C;" AND ";D;" ...ROLL AGAIN." 950 GO TO 370 960 PRINT " I ROLL ";C;" AND ";D;" AND LOSE..." 970 LET Y=Y+B 980 IF Y=0 THEN 650 990 LET Z=1 1000 GO TO 240 1010 PRINT " I ROLL ";C;" AND ";D;" AND MAKE MY POINT." 1020 GO TO 520 1030 PRINT "THANKS FOR PLAYING THE GAME. AND CONGRATULATIONS FOR" 1040 PRINT "BEING ABLE TO QUIT WHILE YOU WERE AHEAD!" 1042 PRINT 1043 PRINT 1044 PRINT "ANY OTHER PLAYERS? ENTER Y OR N (N=END OF GAME!)" 1045 INPUT C$ 1046 IF C$="Y" THEN 50 1048 IF C$="N" THEN 1390 1050 PRINT 1052 GO TO 1044 1060 IF E=4 THEN 1110 1070 IF E=6 THEN 1170 1080 IF E=8 THEN 1200 1090 IF E=10 THEN 1260 1100 GO TO 370 1110 LET W=2 1120 LET U=7 1130 PRINT 1140 PRINT "THE ODDS ARE 8:1 YOU CAN'T MAKE IT THE HARD WAY..." 1150 PRINT 1160 GO TO 370 1170 LET W=3 1180 LET U=7 1190 GO TO 1130 1200 LET W=4 1210 LET U=7 1220 PRINT 1230 PRINT "THE ODDS ARE 10:1 THAT YOU CAN'T MAKE IT THE HARD WAY..." 1240 PRINT 1250 GO TO 370 1260 LET W=5 1270 LET U=7 1280 GO TO 1220 1290 PRINT 1300 PRINT 1310 PRINT "WOULD YOU LIKE TO PLAY ANOTHER GAME? ENTER Y OR N." 1320 INPUT D$ 1330 IF D$="Y" THEN 1360 1344 IF D$="N" THEN 1390 1346 GO TO 1310 1360 PRINT 1370 PRINT 1380 GO TO 100 1390 END NT." 1020 GO TO 520 1030 PRINT "THANKS FOR PLAYING THE GAME. AND CONGRATULATIONS FOR" 1040 PRINT "BEING ABLE TO QUIT WHILE YOU WERE AHEAD!" 1042 PRINT 1043 PRINT 1044 PRINT "ANY OTHER PLAYERS? ENTER Y OR N (N=END OF GAME!)" 1045 INPUT C$ 1046 IF C$="Y" THEN 50 1048 IF C$="N" THEN 1390 1050 PRINT 1052 GO TO 1044 1060 IF E=4 THEN 1110 1070 IF E=6 THEN 1170 1080 IF E=8:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/14/84) 1h 22($G;((!ͪO:ͪ :k(:i2S\ZH2| S\Z7!~#(l(h 0=(h (. (5 ( P!F G:OG> ͖!4.!6!4͖ ͊(͐( ͐(  } çS\Z :c:c_͂ѻ ͂ѻ   _:G(a{ $L File not found $ Non-privileged user $ to set attributes (y/n)?se File not found Invalid filename Non-privileged user Insufficient memory Network error~#@ _nHTAB(59);J 120 REM PRINTED HEADING COLUMNS FOR NO. TRACKS/INCH 130 PRINT 135 PRINT 140 PRINT TAB(74);"TRACK" 150 PRINT TAB(8);"DISTANCE TO EACH TRACK FOR EACH DENSITY LISTED BELOW";TAB(74);"NUMBER" 160 PRINT 200 FOR P=1 TO 200 REM CALCULATE FOR 300 TRACKS FOR EACH DENSITY 210 PRINT USING F$;P/A,P/B,P/C,P/D,P/E,P/F,P/G,P/H,P/I,P/J,P 300 NEXT P 999 CONSOLE 9999 END  PRINTER IS READY, ENTER 1, OR 0 TO QUIT" 45 PRINT 50 INPUT X 60 IF X<>1 THEN 999 70 LPRINTER 70.2 PRINT " FLOPPY DISK SPECIFICATIONS" 70.4 PRINT 71 PRINT A;A$;1/A;TAB(45);B$ PRINT B;A$;1/B;TAB(45);B$ PRINT C;A$;1/C;TAB(45);B$ PRINT D;A$;1/D;TAB(45);B$ 72 PRINT E;A$;1/E;TAB(45);B$:PRINT F;A$;1/F;TAB(45);B$ 73 PRINT G;A$;1/G;TAB(45);B$:PRINT H;A$;1/H;TAB(45);B$:PRINT I;A$;1/I;TAB(45);B$ 74 PRINT J;A$;1/J;TAB(45);B$ 76 PRINT 77 PRINT 80 PRINT" NUMBER OF TRACKS PER INCH" 90 PRINT 100 PRINT TAB(2);A;TAB(8);B;TAB(14);C;TAB(20);D;TAB(26);E;\ TAB(32);F;TAB(39);G;TAB(46);H;TAB(52);I;10 PRINT "EARNED INTEREST TABLE" 20 PRINT 29 REM - STATEMENTS 30 TO 230 REQUEST USER INPUT 30 PRINT "PRINCIPAL"; 40 INPUT P 50 PRINT "NOMINAL INTEREST RATE"; 60 INPUT I 69 REM - CONVERT PERCENT TO DECIMAL 70 I=I/100 80 PRINT "NUMBER OF DEPOSITS/WITHDRAWALS PER YEAR"; 90 INPUT N1 99 REM - DON'T ASK FOR AMOUNT IF FREQUENCY IS ZERO 100 IF N1=0 THEN 160 108 REM - DEPOSITS ARE ENTERED AS A POSITIVE NUMBER 109 REM - WITHDRAWALS ARE ENTERED AS A NEGATIVE NUMBER 110 PRINT "AMOUNT OF DEPOSIT/WITHDRAWAL"; 120 INPUT R 129 REM - INTEREST IS COMPOUNDED DAILY 130 N=360 139 REM - PRINT AT EACH DEPOSIT/WITHDRAWAL 140 L2=N1 150 GOTO 200 160 PRINT "NUMBER OF COMPOUNDING PERIODS PER YEAR"; 170 INPUT N 180 N1=0 189 REM - PRINT FOUR TIMES PER YEAR 190 L2=4 200 PRINT "START WITH WHAT YEAR"; 210 INPUT X 220 PRINT "END PRINTING WITH WHAT YEAR?"; 230 INPUT Y 239 REM - START PRINTING AT THE BEGINNING OF A YEAR 240 X=INT(X) 249 REM - INITIATE RUNNING TOTALS 250 B0=P 260 I1=0 270 I2=0 280 I3=0 290 K=66 300 P1=4 310 FOR J0=1 TO INT(Y)+1 319 REM - START PRINTING? 320 IF J0N1 THEN 560 529 REM-TIME TO MAKE DEPOSIT/WITHDRAWAL? 530 IF N2/N1>J1/N THEN 560 539 REM - CALCULATE NEW BALANCE 540 B0=B0+R 549 REM - COUNT DEPOSITS/WITHDRAWALS MADE PER YEAR 550 N2=N2+1 560 B2=B0*(1+I/N) 569 REM - I1=AMOUNT INTEREST WITH EACH COMPOUNDING PERIOD 570 I1=B2-B0 579 REM - I3=AMOUNT INTEREST ACCUMULATED BETWEEN POSTING 580 I3=I3+I1 589 REM - I2=TOTAL INTEREST ACCUMULATED TO DATE 590 I2=I2+I1 599 REM - ROUND AT INTEREST POSTING TIME 600 IF P2/P1>J1/N THEN 640 610 I2=FNR(I2) 620 B2=FNR(B2) 630 P2=P2+1 639 REM - YEAR TO START PRINTING? 640 IF J0=Y THEN 780 730 NEXT J1 739 REM - START PRINTING? 740 IF J0J1/N THEN 640 610 I2=FNR(I2) 620 B2=FNR(B2) 630 P2=P2+1 639 REM - YEAR TO START PRINTING? 640 IF J0=Y THEN 780 730 NEXT J1 739 REM - START PRINTING? 740 IF J0N*Y THEN 520 480 R=R+B0 490 A=A+B0 500 A1=A1+B0 510 B0=0 515 REM - SUM INTEREST PAID TO DATE 520 I2=I2+I1 525 REM - SUM INTEREST PAID THIS YEAR 530 I3=I3+I1 535 REM - SUM AMOUNT AMORTIZED THIS YEAR 540 A2=A2+A 545 REM - STARTED PRINTING? IF YES, PRINT COMPUTED VALUES IN TABLE 550 IF J0N*Y THEN 600 590 PRINT " LAST PAYMENT = $";(INT(R*100+.5))/100 595 REM - STARTED PRINTING? IF YES, PRINT YEARLY TOTALS 600 IF J0Y THEN 720 645 REM - INITIALIZE YEARLY VARIABLES 650 I3=0 660 A2=0 670 NEXT J0 675 REM - NEED TO PRINT A PARTIAL YEAR? 680 IF Y=J0 THEN 720 685 REM - ADJUST VARIABLES TO PRINT A PARTIAL YEAR 690 N1=((Y-INT(Y))*12)/12*N 700 J0=J0+1 710 GOTO 280 720 PRINT 722 CONSOLE 725 REM - RESTART OR END PROGRAM? 730 PRINT "CHANGE DATA AND RECOMPUTE? (1=YES, 0=NO)" 740 INPUT Z 750 IF Z=1 THEN 20 760 END 10 REM THIS PROGRAM PRINTS OUT MILEAGE REIMBURSMENT FORMS 20 REM FOUR PER PAGE 22 B$ ="-------------------------" 24 C$ ="---------------" 25 D$ ="(MONTH) (MILES)" 26 E$ ="@ 20C PER MILE EQUALS $ ." 30 PRINT " MILEAGE REIMBURSMENT FORM PROGRAM" 40 PRINT 50 PRINT " SIX FORMS PER PAGE WILL PRINT OUT" 60 PRINT 65 PRINT 68 PRINT 70 PRINT 72 PRINT" ENTER NUMBER OF PAGES OF FORMS TO BE PRINTED" 74 PRINT 76 PRINT" (ENTER 0 TO END PROGRAM)" 78 PRINT 79 PRINT 80 INPUT A 90 IF A=0 THEN 9999 94 LPRINTER WIDTH 132 REM SET PRINTER WIDTH TO 132 CHARACTERS 96 PRINT CHR$(15) REM SETS PRINTER TO CONDENSED PRINT SIZE 100 FOR I=1 TO A 104 FOR J=1 TO 3 REM THREE SETS PER PAGE COUNTER 110 PRINT TAB(5);"DATE";TAB(70);"DATE" 120 PRINT TAB(9);B$;TAB(74);B$ REM LINE FOR DATE 140 PRINT TAB(5);"MILEAGE FOR";TAB(70);"MILEAGE FOR" 150 PRINT TAB(16);C$;" ";C$;TAB(82);C$;" ";C$ 170 PRINT TAB(19);D$;TAB(85);D$ REM MONTH MILES 174 PRINT 180 PRINT TAB(5);E$;TAB(70);E$ REM @ 20C PER MILE EQUALS $ 190 PRINT TAB(30);C$;TAB(95);C$ 182 PRINT 186 PRINT TAB(5);"SIGNED";TAB(70);"SIGNED" 200 PRINT TAB(15);B$;TAB(80);B$ 220 PRINT TAB(5);"DATE PAID";TAB(70);"DATE PAID" 230 PRINT TAB(16);B$;TAB(80);B$ REM DATE PAID LINE 240 PRINT TAB(5);"CHECK # ";TAB(70);"CHECK #" 250 PRINT TAB(13);C$;TAB(78);C$ REM CHECK # LINE 264 PRINT 267 PRINT 268 PRINT 269 PRINT 270 NEXT J 272 FOR K=1 TO 7 REM END OF PAGE LINE SPACING TO NEXT PAGE TOP 274 PRINT 276 NEXT K 280 NEXT I REM NUMBER OF PAGES COUNTER 300 PRINT CHR$(18) REM SET PRINTER BACK TO 80 COLUMNS 400 CONSOLE REM BACK TO TERMINAL 9999 END DATE";TAB(70);"DATE" 120 PRINT TAB(9);B$;TAB(74);B$ REM LINE FOR DATE 140 PRINT TAB(5);"MILEAGE FOR";TAB(70);"MILEAGE FOR" 150 PRINT TAB(16);C$;" ";C$;TAB(82);C$;" ";C$ 170 PRINT TAB(19);D$;TAB(85);D$ REM MONTH MILES 174 PRINT 180 PRINT TAB(5);E$10 REM THIS PROGRAM SETS UP THE MX80 PRINTER FOR LISTINGS 20 REM IN CONDENSED (132 CHARACTER) PRINTING 30 REM WITH OR WITHOUT DOUBLE PRINT (DOUBLE PRINT IS DARKER) 100 PRINT 110 PRINT "ENTER 1 - CONDENSED PRINT - 132 CHARACTERS PER LINE" 112 PRINT "ENTER 2 - CONDENSED PRINT WITH DOUBLE PRINT (DARKER)" 114 PRINT "ENTER 3 - NORMAL PRINT WITH DOUBLE PRINT (DARKER)" 116 PRINT "ENTER 4 - NORMAL PRINT WITH NO ENHANCEMENTS" 117 PRINT "ENTER 5 - NORMAL PRINT WITH EMPHASIZED & DBL STRIKE" 118 PRINT 119 PRINT 120 PRINT " INPUT CHOICE" 122 PRINT 130 INPUT A 134 PRINT "ENTER 1 WHEN PRINTER IS READY" 135 INPUT B 136 IF B<> 1 THEN 134 138 LPRINTER 139 IF A=5 THEN 400 140 IF A<>2 THEN 150 141 LET X1% = 15 REM CONDENSED CHARACTERS 142 LET X2% = 27 REM ESC 144 LET X3% = 71 REM DOUBLE PRINTING COMMAND 146 GO TO 200 150 IF A<>1 THEN 160 152 LET X1% = 15 154 GO TO 172 REM GO TO PRINT 160 IF A<>3 THEN 170 162 LET X2% = 27 REM ESC 164 LET X3% = 71 REM DOUBLE PRINT 166 LET X1% = 18 REM NORMAL SIZE PRINT 168 GO TO 200 REM GO TO PRINT 170 LET X1% = 18 REM NORMAL SIZE PRINT 172 LET X2% = 27 REM ESC 174 LET X3% = 72 REM CANCELLS DOUBLE PRINT 200 PRINT CHR$(X1%);CHR$(X2%);CHR$(X3%) REM SEND COMMAND(S) TO PRINTER 210 PRINT CHR$(7) REM PRINTER BEEPS 300 CONSOLE 310 PRINT "TURN THE PRINTER TO OFF OR STANDBY" 320 GO TO 9999 400 PRINT CHR$(27);CHR$(71);CHR$(27);CHR$(69) REM DBL EMPHASIZED TO PRTR 410 GO TO 210 9999 END NT 120 PRINT " INPUT CHOICE" 122 PRINT 130 INPUT A 134 PRINT "ENTER 1 WHEN PRINTER IS READY" 135 INPUT B 136 IF B<> 1 THEN 134 138 LPRINTER 139 IF A=5 THEN 400 140 IF A<>2 THEN 150 141 LET X1% = 15 REM CONDENSED CHARACTERS 142 LET X2% = 27 REM ESC 144 LET X3% = 71 REM DOUBLE PRINTING COMMAND 146 GO TO 200 150 IF A<>1 THEN 160 152 LET X1% = 15 154 GO TO 172 REM GO TO PRINT 160 IF A<>3 THEN 170 162 LET X2% = 27 REM ESC 164 LET X3% = 71 REM DOUBLE PRINT 166 LET X1% = 18 REM NORMAL SIZE PR1.5 REM THIS PROGRAM SETS UP THE EPSON MX-80 PRINTER FOR PRINT SIZE,ETC. 2.0 REM CVE 9-12-81 10 FOR I=1 TO 12 REM PRINT 12 BLANK LINES 11 PRINT 12 NEXT I REM TO CLEAR SCREEN 16 PRINT " SET UP MENU FOR MX-80 PRINTER" 17 PRINT 18 PRINT " 1 - CONDENSED SIZE, 132 CHARACTERS PER LINE" REM ASCII 15 18.2 PRINT " (1 - CANNOT BE USED WITH EMPHASIZED PRINT)" 19 PRINT " 2 - DOUBLE WIDTH SIZE, 40 CHARACTERS PER LINE" REM ASCII 14 19.1 REM DOUBLE WIDTH IS AUTOMATICALLY CANCELLED AFTER EACH LINE PRINT 20 PRINT " 3 - DOUBLE WIDTH/COMPRESSED SIZE, 66 CHAR. PER LINE" REM 15,14 21 PRINT " 4 - NORMAL SIZE, 80 CHARACTERS PER LINE" REM ESC H OR ASCII 27,72 22 PRINT " 5 - DOUBLE STRIKE - 1/216TH OF AN INCH PAPER ADV. BETW. PRINTINGS" 22.5 PRINT " 6 - EMPHASIZED PRINT 1/216TH OF AN INCH ADV. BETWEEN TWO PRT" 22.6 PRINT " ( 6 - CANNOT BE USED WITH COMPRESSED SIZE PRINT)" 23 REM DOUBLE STRIKE IS ESC G OR ASCII 27,71; EMPHASIZED IS ESC E OR 27,69 24 PRINT 24.1 PRINT " SELECT ONE OF THE FIRST FOUR CHOICES, AND ENTER NUMBER" 24.2 PRINT 24.3 INPUT A 24.4 PRINT " IF YOU WANT DOUBLE STRIKE, ENTER 1, OTHERWISE ENTER 0" 24.5 PRINT 24.6 INPUT B 25 PRINT 25.50 PRINT " IF YOU WANT EMPHASIZED PRINT, ENTER 1, OTHERWISE ENTER 0" 25.51 INPUT C 25.52 IF C<>1 THEN 25.60 25.54 LET X5% = 27 REM ESC CODE FOR EMPHASIZED 25.55 LET X6% = 69 REM EMPHASIZE CODE 25.57 GO TO 26 25.60 LET X5% = 0 REM CANCELL CODE 25.62 LET X6% = 0 REM CANCELL CODE FOR EMPHASIZED 26 PRINT "ENTER WHAT YOU WANT PRINTED - UP TO 40 CHARACTERS" 26.1 PRINT 26.2 INPUT S$ 26.30 PRINT 26.35 PRINT " TURN PRINTER TO STANDBY OR NOT READY WHEN BUZZER SOUNDS - NOTE!" 26.38 PRINT 26.4 PRINT "ENTER 1 WHEN PRINTER IS READY" 26.5 PRINT 26.6 INPUT D 26.7 IF D=1 THEN 27 26.8 GO TO 26.4 27 REM PRINTER IS READY 30 LPRINTER 31 IF A<>3 THEN 31.50 31.1 LET X1% = 15 31.2 LET X2% = 14 31.4 GO TO 90 31.50 IF A<>1 THEN 31.55 31.52 LET X1% = 15 31.53 LET X2% = 0 31.54 GO TO 90 31.55 IF A<>2 THEN 31.6 31.57 LET X1% = 14 31.58 LET X2% = 0 31.59 GO TO 90 31.6 LET X2% = 0 31.8 LET X1% = 0 31.9 GO TO 90 90 IF B<>1 THEN 95 91 LET X3% = 27 92 LET X4% = 71 93 GO TO 100 95 LET X3% = 0 96 LET X4% = 0 100 REM 110 PRINT CHR$(X1%);CHR$(X2%);CHR$(X3%);CHR$(X4%);CHR$(X5%);CHR$(X6%);S$ 111 REM LINE 110 IS PRINT LINE WITH VARIABLES FOLLOWED BY PRINT STRING 112 PRINT CHR$(18);CHR$(20);CHR$(27);CHR$(72);CHR$(27);CHR$(70) 113 REM TURN OFF FEATURES IN LINE 112 14 PRINT CHR$(7) REM CAUSES PRINTER TO BEEP 115 CONSOLE 116 PRINT "ENTER 1 TO CONTINUE, 0 TO END PROGRAM *MAKE SURE PRNTR IS ON STNDBY" 116.2 INPUT E 117 IF E = 1 THEN 10 9999 END N BUZZER SOUNDS - NOTE!" 26.38 PRINT 26.4 PRINT "ENTER 1 WHEN PRINTER IS READY" 26.5 PRINT 26.6 INPUT D 26.7 IF D=1 THEN 27 26.8 GO TO 26.4 27 REM PRINTER IS READY 30 LPRINTER 31 IF A<>3 THEN 31.50 31.1 LET X1% = 15 31.2 LET X2% = 14 31.4 GO TO 90 31.50 IF A<>1 THEN 31.55 31.52 LET X1% = 15 31.53 LET X2% = 0 31.54 GO TO 90 31.55 IF A<>2 THEN 31.6 31.57 LET X1% = 110 FOR I=1 TO 24 12 PRINT 15 NEXT I REM END OF CLEAR SCREEN ROUTING 18 PRINT " TAX DEPRECIATION SCHEDULE" 19 PRINT 20 CONSOLE REM TURN PRINTER OFF HERE, OUTPUT TO TERMINAL 22 PRINT 30 PRINT" PURCHASE PRICE" REM INITIAL VALUE ROUNDED OFF TO NEAREST CENT 40 INPUT V 50 LET V=INT(V*100+.5)/100 60 PRINT " SALVAGE VALUE" REM END VALUE ROUNDED OFF TO NEAREST CENT 70 INPUT S 80 S=INT(S*100+.5)/100 90 D=V-S REM COMPUTE AMOUNT TO DEPRECIATE 100 PRINT"LIFE IN YEARS" REM LENGTH OF DEPRECIATION 110 INPUT Y 120 PRINT"ENTER 1 FOR SUM OF DIGITS METHOD, 2 FOR DECLINING BALANCE METHOD" 130 INPUT X 140 IF X=2 THEN 450 150 IF X<>1 THEN 120 160 R1=0 REM R1 IS THE CUMULATIVE AMOUNT DEPRECIATED 170 N=66 REM LINE PRINT COUNTER 180 PRINT 190 PRINT 192 PRINT"ENTER 1 IF YOU WANT PRINTED OUTPUT, 0 FOR CONSOLE OUTPUT" 193 INPUT A 194 IF A=0 THEN 200 195 IF A<>1 THEN 192 196 LPRINTER REM TURN PRINTER ON HERE 200 FOR I=1 TO Y 210 IF N<55 THEN 330 REM TEST FOR FULL PAGE 220 FOR I1=N TO 66 REM FULL PAGE COUNT, DO TOP OF FORM AND PRINT HEADINGS 230 PRINT 240 NEXT I1 250 N=7 260 PRINT " SUM OF DIGITS TAX DEPRECIATION" 270 PRINT " PRICE $";V 280 PRINT " SALVAGE VALUE $";S 290 PRINT " NET DEPRECIATED $";V-S 300 PRINT " LIFE";Y;"YEARS" 310 PRINT 320 PRINT "YEAR","DEPRECIATION","BALANCE" 330 R=2*D*(Y-I+1)/((Y+1)*Y) 340 R=INT(R*100+.5)/100 350 R1=R1+R REM ACCUMULATE DEPRECIATION 360 B=D-R1 REM COMPUTE BALANCE TO DEPRECIATE 370 IF B>0 THEN 410 REM TEST FOR COMPLETE DEPRECIATION 380 R1=R1+B 390 R=R+B 400 B=0 410 PRINT I,R,B 420 N=N+1 430 NEXT I 440 GOTO 700 450 PRINT "DECLINING BALANCE METHOD % (e.g. 150%)" 460 INPUT M 470 M=M/100 REM CONVERT PERCENT TO DECIMAL 472 PRINT"ENTER 1 FOR PRINTER OUTPUT, 0 FOR TERMINAL OUTPUT" 473 INPUT A 474 IF A=0 THEN 480 475 IF A<>1 THEN 472 476 LPRINTER 480 N=66 REM NUMBER OF LINES PER PAGE 490 R=D REM R IS AMOUNT LEFT TO DEPRECIATE 500 PRINT 510 FOR I=1 TO Y 520 IF N<55 THEN 650 REM TEST FOR FULL PRINTED PAGE 530 FOR I1=N TO 66 REM FOR NEXT PAGE AND PRINT HEADINGS 540 PRINT 550 NEXT I1 560 N=8 570 PRINT" DECLINING BALANCE TAX DEPRECIATION" 580 PRINT" PRICE $";V 590 PRINT" SALVAGE VALUE $";S 600 PRINT" NET DEPRECIATED $";D 610 PRINT" LIFE";Y;"YEARS" 620 PRINT" METHOD ";M*100;"%" 630 PRINT 640 PRINT"YEAR","DEPRECIATION","BALANCE" 650 R1=INT((R*M/Y)*100+.5)/100 REM COMPUTES DEPRECIATION ROUNDED TO NEAREST CT 660 R=R-R1 670 PRINT I,R1,R 680 N=N+1 690 NEXT I 700 PRINT 710 PRINT "MORE DATA? (1=YES,0=NO)"; 720 INPUT X 730 IF X=1 THEN 20 740 END IMAL 472 PRINT"ENTER 1 FOR PRINTER OUTPUT, 0 FOR TERMINAL OUTPUT" 473 INPUT A 474 IF A=0 THEN 480 475 IF A<>1 THEN 472 476 LPRINTER 480 N=66 REM NUMBER OF LINES PER PAGE 490 R=D REM R IS AMOUNT LEFT TO DEPRECIATE 500 PRINT 510 FOR I=1 TO Y 520 IFREM SPEED TEST 10 PRINT "INPUT NUMBER OF LOOPS" 20 INPUT A 30 IF A=0 THEN 99 40 FOR I=1 TO A 50 NEXT I 60 GO TO 10 99 END  420 PRINT "I GUESS YOU KNOW YOU'RE A LOUSY SHOT. YOU SHOULD " 430 PRINT "BE INSIDE WITH THE COOK, FOR ALL OUR SAKES" 440 GO TO 470 450 REM DELETED BAD LINE 460 PRINT " OUR FATHER WHO ART IN HEAVEN... ! " 470 PRINT 480 PRINT 490 PRINT 500 PRINT "DO YOU WANT TO PLAY ANOTHER GAME? ENTER YES OR NO" 510 INPUT R$ 520 IF R$="Y" THEN 550 530 IF R$="YES" THEN 550 540 GO TO 780 550 PRINT "THE ENEMY HAS BEEN SIGHTED, MAN YOUR GUNS!" 560 LET W2=1 570 PRINT 580 GO TO 100 590 PRINT "DISTANCE TO TARGET IS "; INT(T);"YDS" 600 PRINT 610 PRINT "ELEVATION:"; 620 INPUT B 630 IF B=90 THEN 730 640 IF B<1 THEN 150 650 LET S=S+1 660 LET B2=2*B/57.3 670 LET I=46500*SIN(B2) 680 LET X=T-I 690 LET E=INT(X) 695 IF E<-100 THEN 190 700 IF ABS(E)<100 THEN 3010 REM UNDERLINE TEST PROGRAM 100 PRINT "ENTER 1 WHEN PRINTER READY" 110 INPUT A 120 IF A <>1 THEN 100 130 LET L1$ ="THIS IS LINE ONE OF THE PRINT TEST*| | ]" 132 LET L2$ =" THIS IS LINE TWO OF THE TEST *************" 133 LET L3$ ="LINE THREE OF TEST *-*-*-*-*-*-*-*" 134 LET UL$ ="-----------------------------------|---------|---------|" 140 LPRINTER WIDTH 132 142 PRINT CHR$(15) REM SET PRINTER TO 132 CHAR PER LINE 143 REM GOSUB 150 143.1 PRINT L1$ 143.2 GOSUB 150 143.3 PRINT L2$ 143.4 GOSUB 150 143.5 PRINT L3$ 143.6 GOSUB 150 145 GO TO 200 150 REM PRINT CHR$(27);CHR$(49) REM SET LINE SP TO 7/72 IN FOR CLOSE UNDRLNE 151 PRINT CHR$(27);CHR$(65);CHR$(4); REM SET ESC A 152 PRINT CHR$(27);CHR$(50); REM ESC 2 FOR ONE DOT SPACING 160 PRINT UL$ 165 PRINT 170 REM PRINT CHR$(27);CHR$(49) REM ESC 1 SETS TO 7/72 IN SPACE BETW LINES 180 RETURN 200 PRINT CHR$(7) REM BEEP 210 CONSOLE 9999 END  TITLE TURBODOS OPERATING SYSTEM - IOMEGA DTC-10 DISK DRIVER .Z80 ; NAME ('IOMEGADR') ;MODULE ID ;***************************************************** ; Comment: ; this driver package is constructed in a way that should make ; it easy to add other SCSI drives to this interface. ; ; It is however at this time restricted to IOMEGA. ; It will handle up to 4 subsystems by changing the ; equates in two places. Hd0,1,2,3 and hddsks. ; ; author: Peter H. Mack (805) 527-0737 ; date: July 15,1983 ; rev: ------------ ;***************************************************** ; INCLUDE DREQUATE.LIB ;O/S SYMBOLIC EQUATES ; FALSE EQU 0 ;DEFINE LOGICAL VALUES TRUE EQU NOT FALSE ; ; ;*** Hard Disk selection choices *** ; IOMEGA EQU 1 ; Iomega 8 inch cartridge ; ;*** IOMEGA Disk equates *** ; HOFF EQU 1 ; Number of reserved tracks for loader ; ;*** IOMEGA Physical drives *** ; hd0 equ IOMEGA ; Set to type of drive or false if not used hd1 equ IOMEGA ; all drives must have same interface type hd2 equ IOMEGA ; i.e. all SA1000 type or all ST506 type hd3 equ IOMEGA ; TST MACRO DN ;physical hard disk defined IF HD&DN x defl 1 else x defl 0 endif endm hddsks defl 0 ;number of physical hard disk drives hdtst macro rept 4 tst %hddsks ;test all four physical drives iff x exitm endif .lall hddsks defl hddsks+1 .xall endm ;end rept endm ;end hdtst hdtst ;calculate number of physical hard disks ; ; dsktyp macro dn,typ .sfcond if typ eq IOMEGA strate&dn defl 10 ; 10 MS cyls&dn defl 306 heads&dn defl 4 fixed&dn defl false ;cartridge drive endif dks&dn defl heads&dn*(cyls&dn-hoff)*2 ;hard disk size in blocks ;dir&dn defl ((dks&dn / 128) + 1) ; DIR entries = blocks / 128 dir&dn defl 8 endm x defl 0 rept hddsks dsktyp %x,hd%x x defl x+1 endm dstdef macro dn ; Disk specifcation table defination macro .lall dst&dn: db 5 or (80h and fixed&dn) ; Block size 4K bytes dw dks&dn ; Total blocks db dir&dn ; Directory blocks db 2 ; Sector size 512 bytes dw 16*heads&dn ; Sectors per track dw cyls&dn ; Total tracks on disk dw hoff ; Reserved tracks .xall dstlen defl $-dst&dn endm ; ; ; scsi controller opcodes OPRDY EQU 0 OPZERO EQU 1 OPSENS EQU 3 OPFORM EQU 4 OPREAD EQU 8 OPWRIT EQU 10 OPSEK EQU 11 ;***************************************************** ; DTC-10 PORT ADDRESSES ;***************************************************** ; controller addresses CBASE EQU 050H BSTAT EQU CBASE+2 BCON EQU CBASE+1 DATAIN EQU CBASE+0 DATAOUT EQU CBASE+0 ;***************************************************** ; DTC -10 STATUS EQUATES ;***************************************************** ; controller status codes BUSY EQU 08H REQ EQU 80H SLCT EQU 40H DODATA EQU 02H ; ; ; ; ;*** Status and error bits ; secs equ 16 ;Physical sectors per track per head ; ; DSEG ;DATA STUFF ; DMXSPH: ;MUTUAL EXCLUSION SEMAPHORE DW 1 ;SEMAPHORE COUNT ..DMXH: DW ..DMXH ;SEMAPHORE P/D HEAD DW ..DMXH ; HDCSPH: ;HDC SEMAPHORE DW 0 ;SEMAPHORE COUNT ..HDCH: DW ..HDCH ;SEMAPHORE P/D HEAD DW ..HDCH ; dmaptr: ds 2 ;temporary dma pointer storage sector: ds 1 ;temporary sector storage seccnt: ds 1 ;temporary sector count storage drive: ds 1 ;temporary drive number storage ; ; cdb - command data block CDB: DS 1 ;(1) group/opcode DS 1 ;(2) lun/block msb (always 0) DS 1 ;(3) block addr msb DS 1 ;(4) block addr lsb DS 1 ;(5) number of data blocks DS 1 ;(6) special option (always 0) ; ;***************************************************** ; Main dispatcher routine ;***************************************************** ; CSEG ;CODE STUFF ; ; IOMEGA INITIALIZATION ; DSKIN@:: CALL DINIT ; RET ; DINIT: RET ; ; DISK CONTROLLER DRIVER BEGINS HERE ; DSKDR@:: LD HL,DMXSPH ;GET MUTUAL EXCLUSION SEMAPHORE CALL WAIT## ;DISPATCH IF NECESSARY CALL ..DD ;CALL DISK DRIVER PUSH AF ;SAVE RETURN CODE LD HL,DMXSPH ;GET MUTUAL EXCLUSION SEMAPHORE CALL SIGNAL## ;SIGNAL PROCESS AS READY POP AF ;RESTORE RETURN CODE RET ;DONE ; ..DD: LD A,(IX+PDRFCN) ;GET PD REQ FUNCTION NUMBER OR A ;PD REQ FUNCTION NUMBER=0? JP Z,RDDISK ;IF SO, CONTINUE DEC A ;PD REQ FUNCTION NUMBER=1? JP Z,WRDISK ;IF SO, CONTINUE DEC A ;PD REQ FUNCTION NUMBER=2? JP Z,RETDST ;IF SO, CONTINUE DEC A ;PD REQ FUNCTION NUMBER=3? JP Z,RETRDY ;IF SO, CONTINUE DEC A ;PD REQ FUNCTION NUMBER=4? JP Z,FORMAT ;IF SO, CONTINUE RET ;ELSE, DONE ; ;***************************************************** ; Return ready - opcode 3 ; returns ACC = 0ffh = ok ; 0 = error ;***************************************************** ; retrdy: ld a,oprdy ;iomega opcode ld (cdb),a call setcdb ret z call docom call cmpstat cpl ret ; and leave ;***************************************************** ; Return disk specification table - opcode 2 ; returns ACC = 0ffh = ok ; 0 = error ;***************************************************** ; retdst: call retrdy ;is drive ready or A jr nz,dstrdy ;if so skip ld (IX+pdrdst),A ; otherwise zero dst pointer ld (IX+pdrdst+1),A ret ; and return dstrdy: ld A,(IX+pdrdrv) ;get requested drive ld B,A ;and save for mult add A,A ;*2 add A,A ;*4 add A,B ;*5 add A,A ;*10 add A,B ;*11 ld HL,dstbase ;get base address of dst tables ld E,A ;make offset 16 bits ld D,0 add HL,DE ; and put together ld (IX+pdrdst),L ;save for return ld (IX+pdrdst+1),H or 0ffh ;set valid return flag ret ; and leave ; ;***************************************************** ; read disk - opcode 0 ; returns acc = 0 ok ; 0ffh error ;***************************************************** ; rddisk: ld a,opread ;set up command ld (cdb),a call setcdb jr z,rds02 ;exit error ld B,10 ;retrys rds01: push BC ld HL,cdb call docom call readdat pop BC and A ret z ;exit ok dec B jr nz,rds01 rds02: ld A,0FFH ret ;error exit ;***************************************************** ; write disk - opcode 1 ; returns acc = 0 ok ; 0ffh error ;***************************************************** ; wrdisk: ld A,opwrit ;set up command ld (cdb),A call setcdb jr z,wrts02 ;error ld B,10 wrts01: push BC ld HL,cdb call docom call writedat pop BC and A ret z ;exit ok dec B jr nz,wrts01 wrts02: ld A,0FFH ret ;error exit ;***************************************************** ; format routine Opcode - 4 ; (not applicable for iomega drive) ;***************************************************** ; format: xor A ; Otherwise set good return ret ; And leave ;***************************************************** ; load block cdb with block number and #blocks ; comment: the iomega drive system is addressed by block ; numbers this routine assumes a constant of 128 blocks per track ; If other drives are to be used, then this will have to be ; rewritten. ;***************************************************** selblk: ld L,(ix+pdrtrk) ld H,(ix+pdrtrk+1) call shftlh ;*2 call shftlh ;*4 call shftlh ;*8 call shftlh ;*16 call shftlh ;*32 call shftlh ;*64 ld E,(ix+pdrsec) ld D,(ix+pdrsec+1) add HL,DE ;add sectors call shftlh ;blocks = secs*2 ld A,H ld (cdb+2),A ld A,L ld (cdb+3),A ld A,(ix+pdrsc) ;sector count rlca ;mult * 2 ld (cdb+4),a ret ; ;***************************************************** ; set up cdb ; returns ACC = 0ffh = ok ; 0 = error ;***************************************************** ; setcdb: call seldrv ret z call selblk ld L,(ix+pdrdma) ld H,(ix+pdrdma+1) ld (dmaptr),HL or 0FFH ret ; ;***************************************************** ; select drive ; returns ACC = 0ffh = ok ; 0 = error ;***************************************************** ; seldrv: ld A,(IX+pdrdrv) ;get requested drive cp hddsks ;make sure valid drive number jp nc,selnrdy ;exit if not rlca ;put drive into proper place for command rlca rlca rlca rlca ld (cdb+1),a or 0FFH ;set worked flag ret selnrdy: xor 0 ;return not ready ret ;***************************************************** ; get controller ;***************************************************** GETCON: in a,(bstat) ;input from status port and busy ;mask select bit (busy) jr nz,getcon ;if busy, keep looping ld a,slct ;assert select out (bcon),a ;to get controller CBUSY: in a,(bstat) ;input bus status and busy ;look at busy jr z,cbusy ;loop until we aquire controller ld a,dodata ;data enable out (bcon),a ret ;***************************************************** ; do a command ;***************************************************** DOCOM: call getcon ;get controller call outcom ;output command ret ;***************************************************** ; output commands ;***************************************************** OUTCOM: ld HL,cdb ;load cdb pointer COMREQ: in A,(bstat) ;input from bus status ld C,A ;store in reg(c) or A ;set status flags jp p,comreq ;wait for req and 10H ;check for com/data ret z ;return if data req. ld A,C ;also see if controller and 40H ;switched direction ret z ;if it wants to send data,return ld a,(HL) out (dataout),a ;write commands to controller inc HL jr comreq ;loop as long as commands are requested. ;***************************************************** ; write data to disk ;***************************************************** WRITEDAT: ld HL,(dmaptr) ;load pointer to data DAREQ: in A,(bstat) ;input bus status ld C,A and req ;set flags jr z,dareq ;loop for req ld A,C and 10H jr nz,cmpstat ;on receipt of command complete status ld A,M ;get data out (dataout),a ;output to controller inc HL ;increment controller jr dareq ;go back for another byte CMPSTAT: in a,(datain) ;input completion status ld C,A ;place in c for further use. LREQ: in A,(bstat) ;looking for last req ld B,A ;save for checking and req ;check for req jr z,lreq ;loop until found in A,(datain) ;input last byte o A ;se i las byt no zero jr nz,seterr ;if last byte non zero ld A,C ;now check completion status and 09FH ;to see if it is zero jr nz,seterr ;if not zero xor a ret SETERR: ld a,0FFH ;set error flag ret ;***************************************************** ; read data from disk ;***************************************************** READDAT: ld HL,(dmaptr) ;load data pointer RDREQ: in A,(bstat) ;input bus status ld C,A ;store for further checking and req ;look for req jr z,rdreq ;else loop ld A,C and 10H ;check for com jr nz,cmpstat ;if com present must be complete in A,(datain) ;input data from controller ld (HL),A inc HL jr rdreq ;***************************************************** ; SHFTLH -- SHIFT LEFT HL 1 BIT POSITION ; CARRY CONTAINS MSB ;***************************************************** .8080 SHFTLH:: PUSH PSW ANA A ; CLEAR CARRY SHFL: MOV A,L ; SHIFT LOW RAL ; ROTATE 9-BIT ACC LEFT MOV L,A MOV A,H ; SHIFT HIGH RAL MOV H,A POP PSW RET .Z80 ;***************************************************** ; disk specification tables ;***************************************************** x defl 0 dstbase: rept hddsks ;define disk specification tables ; for all hard drives on controller dstdef %x x defl x+1 endm end tus ld C,A ;store for further checking and req ;look for req jr z,rdreq ;else loop ld A,C and 10H ;check for com jr nz,cmpstat ;if com present must be complete in A,(datain) ;input data from controller ld (HL),A inc HL jr rdreSQQ`dE4M-ISHFTLH Mk@e@ px@\". K% ` pA,f .hdO*YVzʨU/ $|amd3h 6,^ۧpct dO:C6[Pct {?#@3n$1D8DEYdD> 6 @`SC@XMX*v@@?*Ktnlͮ,ͮ,ͮ-VY2`іnqdoX!iSt `?_Fp8 =p)9(N`@>4,mfH6Dʐ ˘?40ðUe"{(|\(@)CP[2|@WGH6D2P<lwU9.o>H  2@T@$ @ DGA@2"Z"t") G]rB2bDdL) FB@" J8 =p)9ef %x x defl x+1 endm end tus ld C,A ;store for further checking and req ;look for req jr z,rdreq ;else loop ld A,C and 10H ;check for com jr nz,cmpstat ;if com present must be complete in A,(datain) ;input data from controller ld (HL),A inc HL jr rdreèE2 COPYRIGHT 1977,1978 SOFTWARE SYSTEMS'd  END # ()*+, -/: ;<= > ^ASEQ GEGOGT IFLELTNEONORTOABSANDASCATNCOSDEFDIMENDEXPFORFREINPINTLENLETLOGNOTOUT POSREMbRNDSGNSINSQRSUB!TABTANVALXOR"BUFF(CALL#CHR$DATAcELSE$FEND%FILE&GOTO'INT%LINE)MID$NEXT*OPEN+PEEKPOKE,READ-RECL.RECS/SADDSIZESTEP0STOP1STR$THEN2WEND3%LIST%PAGECHAINICLOSE4FLOATGOSUB5INPUT6LEFT$LOCAL7MATCHPRINT8USING9WHILE:WIDTH;%CHAIN%EJECTCOMMONREMARKbRENAMERETURN?RIGHT$UCASE$%NOLISTCONSOLEBRESTORECSAVEMEMD%INCLUDECOMMAND$CONCHAR%CONSTAT%LPRINTERGRANDOMIZEHINITIALIZEICav0]g  PAGE$OUT OF DISK SPACEOUT OF DIRECTORY SPACEDISK ERROR $BASNO SOURCE FILE: $.BAS$ERROR $ IN LINE$ AT POSITION$WARNING: INVALID CHARACTER IGNORED$ IN LINE$INCLUDE NESTING TO DEEP NEAR LINE$!Ks+q+p+q:K=2Ky*K:Kw*K#"K\ KK!K6!Kq*K& K :Kw:K<2Kڰz!Kq*K&!Kq:I!zI:I*KMͱ:I*KM͐:|I*K&:K !K4!Kp+q*K~$,*KN*K#"K!Kp+q!K6+6>!Kڠ!K60*K&2) K%I{*K&2) K%I+s#r!K6#4I:K/!KҔ*KMÙ !K4;:|I2K:I2K!I6!|I6 K !K6>@O:!K6>!K;*K&*I~ 1*K&*IN:K<2K   :I\͐zK:I/lI:Iһ K. *IDMK -ˆ:Jʞ:J2KKK¶`!K6!O"J. *IDMI -:J:J2I:III `!I6*IO>*`: :I6!O"K*J+I!Ks+6:K!Kڈ*KIt`*K"K:K<2KQ!I6#6#6!I6!I6!Kq*J#"J!Iڽ.!"J*J*J:Kw!Kr+s+q+p+q:zI. *I#"I:|I2K!|I6 *K|O*K}O *KDM- *KM-U:K2|I!L6!I6KK#I!LZ LU*KM*K*KDM-*KM !I6!K6:K!Kڙ *K&J N:K<2Kx U:I :|I2K!|I6 $ *KDM-U:K2|I!I6:L LU*KM*K>!J !K6= !K6::I2I' 2I  >!Jp :J=2J.!"*J&HI DM*I -7 "*J&HI ! ~2I` v:Jm !K6:Ý .*I< -{ !J6:I ʘ !I6Ý !I6# :I :zIҲ 9 !K6*K#"K :KI:I H :K<2KO!J :Iw:I :K!K!K2K!I6  :K<2K:I  :I!K6 :I<2IC !I6C >*I&*I~ :IHj O :I | 2Ik :I\‹ k O !Ks+p+q+p+q!K6KK#I :I 2I\ !K6í :I O *K*KM*K>\ } !I6͉!K6:!K/N! ~$H, :K<2K :yI :K<2KO! ~2K :!K/H :KA2KO> *KM! ^#V!{I6 !I6!|I6 !I6 !~I6 !}I6 !I6!I6 !I6+6*K& ~( :K<<2KO! >2J z 3 :l2J͙!I6#6!K6!K6!"K!I6!K6:!I6 O !I6!I6!I6#6:I/] :K2K*K"K:I ] *K+"K:I"!IҾ !I6F#6!I6 "ʩ :I › SU*KDM*K͌ :IҦ z O :I"ʵ z QqHE!I6E#6!I6!L6:I0 2I Ͷq !L6!I6<Ͷ:IH:IhH65:L.1!I6ç:I :I+H:I-HFEHҧ:I¤!I65Q/ҁ1<Qґ5Ü:I œO !I6ç1FB!L6:I=!L*L&I >11:L<2L´>!I1F.:I=2I!I6:I "I:I!I6:I-!I60!I6#60NB*KDM*K͌ ͎RͤY<L:I$l!I6<Ä:I%!I6<Ä!I6/:IF:INH:IHҸ!I6Mý!I6JO:Ib:I  2I} O:Ic3:I } *IM 2I,*I+"IO:I!IҺ!I6*I*I#I -!I6͙%!I6 O ýk :zI!I6+6!|I6ý:I2I:I2I:I2|Ik ý:zI!I' ͱk ý!Ks>I!IL3Ok ý:yIҫ!L6:I :LHҫ*L&I) q#p:Iғ3î:L<2L:I ʨ 2I^k ý-R3:I\} %O :zI!I6*K&J 6?O ( :I/4:I<2IO!I :Iw:I!I?w:I4!I6O  2I*I&I ~:I0O> /:Ia/>z!I/H:I.]!~Iҍ:I_2Iz:IAO>/]HQ͎HqHQ<ö͎:IAO><:I<2Iö:I O !I6!Kq*I#"I:zI*KM͟!"K!I6FH[!K6:I=!KW*K))))_"K:K<2K/*KFB‘!K6:I=!Kڍ*K)_"K:K<2Kh*K>!I~>3#HHҸ!I6!!K6:I!K*K)))*K) _"K:K<2K½*K|!I6*K*K&I ~2KA:K 2K:K> !I(>!K6*I& ~2K:K!K:K!K2K!K6*I&r) :K=:Iz*K&I :K=O*L ~:K<2K:K=2K:>:I O !I6Ͷ:I,:I H/ 2ITI:I!K*K_DM͌ 1.CONSTANT AREA: $CODE SIZE: $DATA STMT AREA: $VARIABLE AREA: $AQGFKLPBTNOCDEIJHXRrU[qZWpS\YVsvwx     &&PROD $PROGRAM CONTAINS $ UNMATCHED $ STATEMENT$FOR$WHILE$DEF$NO$ ERROR$ DETECTED$:yIePL>@_O!R"L*++"L"FL#6!L6#6*NL~=!Lڤ*L& *NL:L2L!L4|:L?*NL^*NL*NL ^"NL* L"NL^*NL"NL*L&PL) ^#V!Lq:LLH!L>I!zI6OT*KDM͌ !Lp+q*NL *Ls#r*NL >w*NL >"NL>NL0Iʊ*NL~2L*L|͍|;!L|>*NL#^#V"NLL>:L=O! *NL*L&*L :L=2L½>Í>*L>2LO*L"NL*L*NL wo*L#*NL -*NL :Lw*NL#q#p*NL 6*L&PL) *NLs#r:LLH+s#r*NL~!Lq*NL :L*NL w*NL ~*NL ^#V!Lq*NL :Lw*NL ~{2L!L6:L!Lͪto&PL"L*LNL%I*LN#F`i"Lê*NL#*LN#Fq#p:L<2L{2L!L6:L!L/ͪtO!PL *NL#N#Fq#ptO!PL *NLs#r:L<2L!!Oq:yIB*!OM͟! L6!JL6!L6!ML6!"L"L"I}2N2 O2 L2 L!L6!O6#!"L͉:yIҳm͟!J"L!L6#610$0!"Oq: L/*L#"L:yI/*"OM͟!$Op+q*#O|Oʹ*#O}Oʹ!&Op+q!%OHDM:IL/!}I: L/H$*KDMaʹ!1Oq:zI!{IJ *1OM-Uͯ,*1OM!* ^#Vî,î,-*OM/ҶUҐ_L3IʍLDg.ó*LDM@:LҮ* LMkókû!K6*%î,î,%î,:ML!ML6!L6î,!L6î,î,!L6î,!L6î,!L6î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,î,!ML6î,î,: LHO0I:8OHґ2ʹ$2î,:5Oª*HODMø*HO"NL_DM-î,!L6*NLN#Fî,î,*6OM0î, -î,_-î,î, 0î,î,/  .î,î,&0*6OMʹ.î,î,:8O6!0O6&0î,&0î,:7OaFMg.o*4OM.*7OM.î,:7O‚ʹØ:7O’0ʹØFMg. .*7OM.î,î,!0O6&0î,&0î,î, &0î,:4O*FODMʹ.ʹî,-î, -î, -*9OM.î,*OMG4î,:I*IF~.0*HO"NL{B*5OMk{!5ORNS~.U/!zIdSI~._DMʹ.*8OM?1!ʹî,.*OM//Җk@.*NLDM-î,0î,06*NO"LO6î,6î,6î,066î, -*OM/*NLDMM.*NLDMͭ-{O;.UFg.,*I& N-:I*I& >HO-*I& ~O;.*O&M ~AO!L6î, 5î,Iͻ4î,-î,.î,-î,.î,-î,-î,-î,.î,-î,:O=O! N :/O:/OHEF~.*L ^#V"NL:4O/:8OH.ʹ:4O ʹ_DMʹ.:8O" ʹ6 :4O1 ʹ6  ʹ:4OJ _DMʹʹ:4O҇ ʹ̈́7ʹ8ʹ̈́7ʹ9ʹ̈́7ʹ7ʹ*LN#F*L##*Ls#rî,*O&-N :?Ow6ʹ*L##N#F*L *Ls#r:7O2/OO.î,!I6>L0I+s#r"FL*FL#>*FL#w:HL<2HLî,:7O*!FMg.:/O:7OHJ!pʹg!:/O:7OHg!:ʹ.*/OM.î,:/O:O=O! N ~Hҟ!pʹ!:/O:O=O! N ~H!:ʹ:O=O! N :/Ow*L ^#V"NL_DM-î,B/î,B/î,*O&N ~"]ʹ`ʹͰ3_DMî,î,3î,B/6ʹ͌/î,:9OP"EI͕.:9O]":ʹ7ʹ͌/î,*HO"NL:yI|"*6OMk:L/Қ"1̈́ʹ*2O"HOB/î,*7OM.î,:yIҼ"ͬ.*NLq#p: L<2 L!L6+6î,:L"MPg.P#6ʹ -͌/*NL"2O*OM/2xO*7OM.*NL" L*NLDM-:yIM#:xO'#DFg.=#*L##"L*NL 6 @*LDMP#î,P7î,-î,-î,P7î,î,î,î,.*OMG4:8Oʒ#FI~.*FODMʹ.-ʹî,/î,î,î,l1î,l1î,*HO"NL: L$:6O#VC~.! L6*JO}Ok:8O#*JO}ʹ!I6î,m:2!I6î,î,'ʹ!I6î,h:2î,:8O$PI~.nʹ/2î,nʹ/2î,n2î,n2î,!I6î,î,?ʹ!I6î,:O=O! N ~D%SM:O=O!MN :O=O!-N ^N#F͌ I%cʹî,î,ͤ5î,ͤ5î,î,ͤ5î,ͤ5î,dʹî,dʹ4ʹî,!I6/&ʹî,!I6:O=O! N ~%FM:O=O!MN :O=O!-N ^N#F͌ :O=O! N ~%]ʹʹ/%ʹî,î,î,î,5ʹî,3î,3î,3B/:L &ʹî,2î,b/_DMbʹ2î,3-î,3:5OI|'*yO"I!{O6>!{Oڤ'*{O&I) N#F:{O<2{O'*KLDMÂ(!|I6:I2I:I2Ik :HL'*HL&)͚7:EL'*EL&-͚7:L'3͚7ʹʹ>!I;I(*IDM-!(7 : >I0I8(SA !{O6>!{Oy(U*{O&'O) N#F *{O&I) N#F-:{O<2{OC(.E î,/ʹî,Mʹî,jʹî,î,jʹî,î,:8Oʹ(SM~.î,/î,î,/î,î,î,/î,/î,kʹî,î,kʹ,î,/eʹî,/eʹî,/iʹî,î,l0î,fʹî,î,/oʹî,gʹî,:Lz)* L"NL̈́tʹ*2O"HOB/!L6+6À)DNg.î,:EL<2ELO!L *Ls#rî,:7O¯)EWg.:7O¼):ʹ7ʹ͌/*EL&-L) *NLs#rî,:EL)UWg. *6ʹ*EL&L) N#F*EL&-L) ^#V"NL*LDM:EL=2ELî,î,:7O7*SMg.<*yʹî,uʹî,î,~ʹ! L6î,:7Og*ʹl*ʹ*OMG4: L<2 Lî,: L<2 Lî,:7O—*ʹÜ*ʹ*OMG4: L<2 Lî,: L<2 Lî,:6O*CS͕.**JO"KL:7O*FSg.*zʹ:JL*DS~.*!JL6î,]`c  "%(+.147:=@CFILORUX[^adgor  &)CPr{RXaiqy !v!!!")","2"B"h""""S#Y#a#i#o#r#u#x####### $Q$l$o$z$$$$$$$$$$$$$ %L%O%U%[%^%d%j%r%%%%%%%&& &#&)&?&J&X&t&w&z&}&&&&&&&&'((((((((((((((((())))&)))1)9)<)G)O))))#*&*?*G*J*W*}*****O&M ~24O*O& ~26O*O& ~25O*O& N ~27O*O& ~29O*O& ~28O*O&MM) ^#V"FO*O&) ^#V"JO*O&) ^#V"HO*O&-M ~2;O*O& ~2O*O& ~2?O*O&M) ^#V"LO*O&) ^#V"NO!QOp+q*O&MM) *POs#r!SOp+q*O&MM) *ROs#r!TOq*O&M :TOw!UOq*O& N :UOw!VOq*O& N :VOw!WOq*O&M :WOw!XOq*O&-M :XOw!YOq*O&-M :YOw![Op+q*O&M) *ZOs#r!]Op+q*\O*DODM*?O͌ !_Op+q*^O*@ODM*=O͌ !aOp+q*`O*BODM*>O͌ *L#"L!cOp+q!bOHDM!dOq*dO&M n&N!eOq*eOM."L*eO&-M ~2L*eO&M ~2L!fOq*fOM.F!gOq*gOM/(/>>!O"L: O?2L!L6 !hOq:yIa/*HO"NL:hOLHDM: O<2 Ou/:O<2O./F/҃/*NLDM-b/_DM!8O:7Oʫ/MMg.>>:8O¿/FM~.>:7O/FMg.>͘/:9O/FM͕./:9O/]ʹ:7O0FMg.0:7O0]ʹ./:5O<25OO.!kOs+q+q .!7O:8Oʥ0:8O:7OH`0pʹâ0:8O:7OHҜ0ʹpʹ:0O/ҏ0ʹ!8O6.â0MMg.0:8O:kOH0FM~.:8O0*iOMʹ0:8O0*jOMʹ0*kOMʹ!0O6!lOq .:7O1:ʹ!7O6:8O01ʹ:ʹʹ!8O6.ͮ/>1*lOMʹ!mOq:mOT1k1:mOe1k1{2nO!4O:nOHҒ1NSg.Ù1*4OMk*7OM?1 ʹ*4OMʹʹ!oOq:oO1ʹ1:oO1ʹ1ʹ:8O:7OH1pʹ#2:8O:7OH2:ʹ#2͘/#21*8OMͲ1!I6;ʹ!pOq:7OL2SMg.:4O\2*FODM*pOMʹʹ!I6:4O~2*FODM:Iҏ2"1ͼ2ç2:IҠ2)*ͼ2ç2=<ͼ2:7O´2:ʹ*7OMͲ1!rOs+q:7O2*qOMʹ2*rOMʹ/:N<2N(2OOg.*N&N N^ʹ9ʹ!IL6!IL6*N&N :4Ow:HL=2HL=3!HL6UN~.w36ʹ*FL N#F!LH*FLq#p*FL#>w3*FL"FL`3*O&M 6*OM/*FL NL%IHҩ3#3ï3IN͕.-*OM/3U/!zI:L/H3:I 3*K+"K3*K"K!L6:?O2KͰ3:I 4ʹ46ʹ_DMUF4:L84{! L54FOg.F4{F4FBg.!sOq-*sOM/҆4;ʃ4UI*sO&MN) *sO&-N ^N#F͌ Ó4ͬ.DM@_"FODMͭ-:IҺ4!I6*L *NLs#r!uOp+q-ʹ!vO6*tO~!vO4*vO&*tONʹ:vO<2vO4:I5( 5ʹ4-: L5:7OD5@FO(I65*FODMC5ʹ*FODM.ʹ-*OM//қ5!wO6:I!wOڀ5*wO&I N0:wO<2wO_5$0*L#"LDM@k_DM:I5:7O»5,ʹ5:7O5pʹ+ʹ6:7O5$ʹ6:L/5:7O5pʹ#ʹ6!L6:5O /6*HO"NLͪ*NLDM-:;O=2;OO)._DM:5O ’6*HO"NL{!9Oʊ6{:9OH:6OH҄6*O& N 6!9O6pʹÊ6PF͕.*9OMͲ16!9O6:9O6HҼ6:ʹ6:9O6H6pʹ6PF͕.:;OO).:5O=25OO.:;O:5O )7:;O7NF͕.ʹ*LO"NL_DM:5O97NF~.:5OO! ~25OOʹ:yI҃7*O&M 6*OM.ͬ.DM*9OMk:5O!~O;I7SU*~O*I"IAE EFJLMJE !EFJLMEFJLMMJ JMEFJLM JEEFJ9;  EE #&'*+,-134568:=>?BCDEGHIJKM/E  J J  "2"'5 " "". "" " " """0"2""  EFJLM )J #%&'*+,-1345678:<=>?BCDGHIJKM( #&'*+,-134568:=>?BCDGHIJKM)J J  $   AE $ $J JEF9; $  $ """""""""0"""""""""/""  $ )J  $( )J     N%F  '(),./02679<E!&X  %*+-FN3: #Wdd8lhcdbaf$&cdba&cdba}>Dcdbaucd67[~@ p%'(,29:w:D/ ?CDyCD CD CDCD.Z\CDXCD]`CDCDCDCDCD0CD1CDCD&cdba*"#p%'(,2489::D)_p%'(,29::D+B!x egim kj--335;<=Y?@ACHHKIINJJOKKLLLMNQPRQSR[^_`bffhhiijjkllmmnn>uuvvvwwyyzz{{||}}{q     ^  ABvtIJa=o p~sxcdegtroqEFEHGTSYYYYYYUWTUVX!VFnsz#Z$%)&',PW(GM"\/+*-.2]O345601789;$&   #$%&(&&02356537899:;<9>&?@@@@@BCcdeeefghd(ijklmmmnopsxp{ppp~pppppppppppppppppp !#%')+.147:>@BDFHJLNQTWZ\_behlorux{~<<r<<| 33446688:::::<<<AADDDDFFSSTTUUVVWWZZZZZZZZZ[\]^^___``abcddeffgghiijkklmmnrrsttuuuvvwwxxx{{||}}}~~                     &    -3;<@N[kvCBASIC COMPILER VER 2.01$$$$1yIE UHH͡!I6:zI!yI;H!I6!O6!"L!O6!O6!M6:I8H>!L;I GjH*O&L) *Ls#rRH"O͇H_H*O+"O*O"OOO#I G*O7 :IF*O&M :Ow!O6:I!OvF*O&I N͡H!O4XF*O&-M :Iw*O& N :Iw*O&MN) *Ks#r͗H*O&-N w*O&MM) *Is#r*O:) ^#V"L!O6*O"OFOO#IFES͗H*K_DM͌ *O"O,F5H!L>IG_H:OI!Os:O<2OL(IM):IҽG:O2ORH"O*O&M ~2O*O&L) ^#V"O*O9 n&"O}OO#IHҠG*O#"OlG*Oe>) ^#V"L>I½G!I65H>!L;IHRH"O͇H*O8 n&"O}!O:I;IHH*O#"OG*O<) ^#V"L5HjH_H*O&L) q#pRH"LEÿEHH!zI6ÿEvK C*L?) ^#V*LC n&:O<2O †HOS*KDM*K͌ :OҖH( !O6:I!K!Oq*O&N :Ow:O<2OO>dHOV͗H*K_DM͌ _ogDM!>))H =H_og^#V|g}o I_{ozgO{ozgi`N#Fogo&og_{_z#W\ INT LST@CBASIC COMPILER V2 $:#M^ocO!fw6#6HKYEcO!{N!x ~ʱO!{N.qwL!{N!x 6!{~,F[OO! "{"{!{6#6,6#6!{q#p.~,F Ox P[O.w#p.e PCOPYRIGHT (C) 1977, 1978 SOFTWARE SYSTEMSxw #q        !q!q{`i!N#F+!!q#xw6 ɗyOxG~O#~G+~#q#0:?ɇ:=2:<2Я/2ɯ2!^ +T]~* yG+~#d#Æ+T]# Gʟ#~*Ê*!~!U/æY z/g{/o# |>|>!  + ! > W!z#? >!> '# P'> '#!~ȯw+6>+6=:7`i~G2x2#:W:r!ɯ' #u7>'w #Á7>'w #Ô>ë2|2:WD!:|w s\D!s!s:|w:sG2{xW!sDr"!̈́=:{G:K!tt!>̈́7tF!tg̀æ:{2͒æ"\J!Q!J!Q[2X!!"Y>2[*\~#"\J*Yt4=#Q*Yt=![5*Y#"Yô: FW!w#zW@Aw`i#}ͦ!-z@F@ W@_!~ȓ_Aw|{F@z+w>2 `i22?G!ұ̀ßt!~w: =2 ^:![Ü!̈́Ü!ͦ-ů2K>@2>2:=2~#ɯ :2Dx*{22$ W+n-q>2$0n|$.ʡEʯeʯG0:7y:/2y$ ʯG-_x$G$OxG{G!~+ 2!xw@ͦ-!"q|F|3}/o|/g#>2g^#V#}o|gL?*q07"q{7æ'd ! ~5* ~҄+" #0: ɷG>0͞x=Ò*z w#: :x :w 6,#"z :> >-!" >2 `i"z :s q:2w 2v 2x 2u 2y > ͞ > 2 -!s ~2u w͞:@2y !x YY6>2w > 2v 6!y pd2w /<2v  \:OŸ2w 2y K: ʐ=2 :| > Ğ} :| ʬ͞:x !y 6 y@G/%͞2 2| 2}  D: 2w Gy@w:| !} >: >: 4!w 5<2 :w !v G:x S :y OxGx} W?< =` zz!~} -q: « :} !|  :w : >-͞ G:~ OW*ʿ $¿ $ :} !|  O z͞ y͞:s :  :| : :w >0̞͌! !w ~' 5s͞ :w ͑2 :s < !t ~ҟ 6>.͞:x ` :y G:v X GY 2v x͑͌x !v ~x 5s͞` :v ͑:s Ÿ *z +~0” 6 È .ʚ #6 "z :x >E͞!y :s ¶ 5~ /<-Gy͞x/ Gy͞x0͞:} ͞2} 2| :s  > ͞:u 2s *z 2 2 `i#" " GOW~#% F /D &D !D \F #F NU # y2 z2 ! ~f : w* l 5* ~#" 2 ɯ2t : „ NN `i"z : # $© S $ >$͞: Ì *» S * >*à . S #>.  2 ; - S # .>-  >2| 2 O; >2|  \S ĞS Ì 2~  > 2~  S # ,0 >2  ! q.L >2t S #L @ !v q^_ S R !x q-p >2} S *z DM* #" ~: =2 >́ > x Þ: ¦ SN `i" xʱ 2 bk"z : / ! & \S ĞS ü ͍ S ʠ / ͍ S *z ́  x ͞ `i"z : #o /o !o &o $4 S $o >$͞ *F S *o >*. -] S #o .o >-. \S o ͞S *z `i~AҦ 6G>Mw!:A<2 )T])s_: =2 :}/o|/g#: WzQS D\D!~G w#!o|g~x>\\D^ͪ=S\ W2zD͙ Dͥ!2>ht\D D|}!#:Ġ\:@F 2>ApDQ\2!>t\D!>t^\:AO>҆/Gͪxͪ\\D^ WzDͥ/:ͪ:ͪ/ͥ!~w:<\^\>t\Dͪ\ñD!~>w2:A\\\qQ\Iͪ\D>At:!w\07HWgtA1A@P\d5bEHyed"BA1PYTAE(('@ @@I@hfffff?hfffffA>533333>=ii<0$;9"sU':9"sU'9BT8!%8hxVg 7"hC60wYEG417Gv@`v'b1AAPX#C`QI"U&Àe(HBCTbDvRWaGv"C%T$a'ÙH%Csrb"(HdA1AAXS&YA1AIy&cypt dYd?Sh&&iyv&3uF=84SY592xXT(E133@P5D @cbe@(u?Bp6W>W"f(@E3Sx\ͪ\Dͥ^\Éͪ! DM= ê*E##~ͮ*EN#F#!Dp+q>DdD>*D~!Dq:D_AO>/!Dq:D0O> /!Dp+q>DdDC*D~2D!D6:D!DC*D#"D*DN7 *Dw!D4 !OY !]ͱ Y *EN#FO`i"D*EN#F2D:DD͕C"DFDҖLS *DDMy""D*E^#V*DDMo*D*D*EN#FPY*DMo͵Y ͵*E*Ds#r*D+*DqB!!*E"D *E^#V"D!*E"D$*E^#V"D*D~2D!D6:D!Du*D*D M{>*D*D~`{>*D#"D*D#"D!D40{>͵Y ͵!4!HҙPM *E>oDҧ>*E~2DY !!H>*E^#V"D*E^#V"D*D~2D2D!D6:D!D *D&*D~\!D5!D4*D~2D!D>:D=2D:D!DO:DG:D<2DOJD:D">!Dq!D6+6:D!Dک:D!Dm>:D/*D&*D~\Hґ!D6âͬҟ!D4â>!D4V>*D&*D~2D:D:D?>:D#*D&*DN:D!*D&*DN!D6*D&*D:D!Dq!"D:DS;!!H7SS *E^#V"D*E*EN#Fq#pY 4!*EN#F!DoDH!HҊY ͵*E>w#6B!*E*EN#F*DCD!DsrD:D¼:D<*Ew*E:Dw:D*E^#V"D:D*E:D͖C*E~MD"D*ED͊C+"D?DMy""D?DM*Do*E*D wY ͵*E*Ds#rB!*EN#F`i*@E~2YE*@E#"@Eͅ )ͅ ):BEv:BE:CETH:DERH!E6ͅ ,)ͥ"Eͅ*@E~,ͅ )ͥ"E>EdDͅ>P!YE!YE6P:YE2DD*YEM*@Eo!D"@E:YE=2YE(*@E#"@E![Es+q!BE6:YE2XE*@E"VE:YE*@E:ZEH:[EH҄*@EN7 :BE<2BEO!BE Hq@:YE*@E~ HҤÅ!"]E!\E6:BE!\E*\E&BE >9~0H*]E!]EC*\E&BE >_"]E!\E4°*]E:XE2YE*VE"@ENO INTERMEDIATE LANGUAGE FILE $CRUN VER 2.03$$$$$$$$!"E!\"E:EiI) y y!6͑!@H"iE"O>҅VI "2oE*!nE6":nE<2nEO!oE Hqy$ʳÕ*nEoEI*iEDM\*iE"iE*ErD]Å:ETFcEgDFC FeEgD CC FaEgDDC F_EgD/PC FEgDBSC *E"iE*E"gEgíF"cE@H"iE"EF"eE*iE"gE"EF"aE*E"EF"_E*E "E*EF"EgD!ErDҭ]*E"lE"s:kE3"*gEw*gE#"gEp:kEp:kE*iE"E*E6"*E4 p:kE~"~:E:kE*lE"E^#V"EEgD>EdD+s#r!6:kE=2kE*E*kE& "E^#V"E*E##"E!"EEEWD*E^#V"EEgD>EdD+s#r!6*E###"E*E"EҘ*lE"lE&p:kE6:kE7H:kE`H:kEH<-*iEE͊C+s#r=p:kE.b-*iE^#V)))@H+s#r=p:kEp-=ó:EҐ͐*lElEEWDT *E 6I*E 6N*E 6T*E 6 *E 6*E :E y y  *E *E#"E!FD!"E*E6*E*iE w*iE#"iE*E~2kE"*iE#w"*iEw*iE##"iE"O`i-D"_MN *E"E>EdDʏ*E 6*E^#V"Em*E"E*E^#V"E>CD*E>oD¶*E ~*E ~H*E DM#*E^#V"EÖd @PEv2 IN LINE $ERROR $WARNING $IMPROPER INPUT - REENTER $AT LINE $1D͞21D͓30v! Gq:GҒ* G& Ý* G&  y y! Gp+q *E#"Eï* G ! Gp+q* G~$* GNy* G#" G!Gp+q*G)))!Gq+q!G6>!GS!G60*G&) GYDE*G&) GYD+s#r!G4*GMy!G4!Gr+s+q+p+q*G+"GFDʅ*G:Gw*G#"Gc!Gp+q*G|Oy*G}Oy>!EoDҵ(*EDM͞!"G T!"G͞*G#"G!GrD*GNy͹>GdD !Gp+q͞2*GDM͆ ! Gp+q͞9*GDM͆!!Gq*!GML :!G_:!G*E#"E*E"E>MD"E*E"E"E!#Gp+qE"GWD!%Gp+q*$GEYDڰ *$GN#F*E*$Gq#p*EDM*E|*EDM*E|*EDM&G|; *E&G|*EDM͈ *EN#F*E|*E~*E~*E>oD*E>oD*E~*E~*E#~*E#~!.Gq*E##:.Gw!/GqQ *E:/Go!*Eq#px!*E>w#6:ҕ!FO *E |!6*EDMD(!Ү!ͥô!ͪ *Eq#p*EDMDY *EDM*E"0G!"2G>0GdD"*0G ~"*0G0GWD>MD*2G"2G*0G^#V"0G!*2G!5Gp+q*E"6G>6GdDr"*6G ~e" *4G*6G6GWDFDe"*6G*6G^#V"6G."MO !9Gp+q>8GdD"!*8GDM"""DGdD#s#r"DG 6s#*DG##"DG^#V"DG>CDr#*DG ~r#s#*DG"FG*DG^#V"HG>oDʳ#*HG ~³#*HG*DGN#Fq#p`i"HG*DGs#r*E~2SGY !"JGQ *E"MG*E"OG!LG6*E~!LG$*EN#F*JGC+s#r"JGY !LG4#*MG"E*OG"E*JG*SG&C*E~<_DMy""MG"QG*E*QG w#6!LG6*E~!LGs$*QG##"QG*E*QGN#Fq#pY !LG4G$i *E*MGs#r*E~2XGY *E^#V"TGY *E^#V"YG*TGN#F!WGq+6:WG!VG$Y %*E*TG^#VN#FC*YG "YG!VG4±$%*TGYGYD$BS *TG##*YG*XG&C *Eq#p*TG##"TG![Gq*EDM͈ :[G%B!*E^#V"\G*\GN#Fw ҂%*\GN#F `i"^G5*\G*EYD*^G~H҂%*\GN#F#*EN#Fw %*EN#F `i"^G~%*^G#"^G*^G~xGdD5(FE *xG#"E*tG"E*vG"E*cGzG!o*eG+"eG'͸'nzG*cG!o (!G64' (:G<2G(*cG ښ(''|('ҵ(m' *cG 4ú(*gG6'͚'()Ͳ''/H(RW (eGgGWD)>'(')>xGdD )WD )#((ͨ' ('%)͸'()m')*cG "eG*eG#!iGrDD)>*eG#"eG>>kGdD!GqN)*mG#"mGkGgDH~)RE 3)҈);(Ͳ'/'Hҝ)f((*eG:Gw͞'*E>oD>dDH)FN *E~ͨ)O!G ^#V"cG>CD)UF *EN!G ^#V"xG (&*cG gG͊C#s#r#*cG ^#V"eG!*cG ^#V"kG:rGҐ* '**oG&G) ^#V"xG>CDc*EO *xG#"EY *cGDM#*oG&G) >w#6!rG6nþ*:sGҨ*\'¥*EM þ* '¾*H'¾*EM *cG#"G  T*E^#V"GDM*!G6**G~2G*G##~:>!GH$+*G#>*cGw!G55*G##"G> !G2+!G6 *G#"G!G6+O*G ~.!G:GHa+>+:G2GO>s+!G6*G*GM*Go+!Gҿ+!G:G#wO>ң+!G6*G*G&*G*GMo+  +͵Y :G<2G!Gs+q!G6:G2G:G!Gn,*G&*cGN7 2G*G&*cGw:qG*,:G*',!G6T,:G*:G:H:G?HT,FI :Gg,*G&*cG6?!G4+:sG!rG,Y *EN#F!GqPD>4!GHҨ,NB Y ͨ)2oGO!G >oD,FD Y -!oG6!G6:oG<2oGO!G >oD->!oG-TF ,*G&C"G)DMy""cG*oG&G) q#p (Ϳ*4*&*cG *Gs#r*gG"iG#*cG q#pm'(*cG :Gw*E!*cG N#Fq#pY *E"tG*E"vG)*!"mG!pG6Y N)ڮ-UR !*E#~H-RI (*cG ~-BR *EN#F +q#p'͸'';(*kG}*E#~H_C*kG|l_&C!9͙C"H*E^C"H!H)D*H "H*E#^l&C"H}*H|H͕C7DH ! Hs>H͹C)*cG +"eG'!H3D#s#r *cG : H.*'´.EC  *cG : Hw4**H} *cG wY 3).;(f(Ͳ'.f(*eG~.#(*eG~! Hq: H/W&/͗&:s !pG$/,[))/!pG6*E^#V" H>CDD/!H6K/* H~2H: H:s /Hd/"[)/! H6:H! H/* H~":s /Hґ/EQ : H* H~ H!s : HH/* HN[)/! H4l/:s /! H/"[)͵Y * H#" H*;( (*'0EC *cGDM#*R'*cGDM#!Hq:s {0i E !EFD!Es*EEq#p:Hp0!H6:E!Hm0*H&E N[)!H4O0s0&!s 6Y !H6:H<2HO>0*H&G) ^#V"cG>CD0/*H&G) >w#6*H&G) w#6Á0|0 Eͩ:E00!E"F*E& 6 *E&E FgDY *G"E͞Bn*E#"E!ErD91DO *E~*F#"F~:G‹1.2HF\Dl1*FE :Hw:H „1N)ҁ1ER È1:HO1:G—1>1:G£1"1!"FG12H ¸1ê1:G1!E"F:G1*F"F:G1*E"F:H"1!H6, 2!H6":G2*F#"FG12H!H:H+~ H52*F#"FG12H 2:H"[2G12H,:H H[2=2i ͤ1*F#DMy""H#*FDM*Fo*E*Hs#rB!*H*Fsͤ1>!FoD2*FDM*FI*EDM\y!2:G2Y 12*E6>2.3G>_T&͹*E"E"E*E"E+"E*E"E*E"E"E"E*E"E"E*EEEWDT*E"H*E*EgD*Hq#p*H##>w#6*H w#6*H^#V"H>w#6*H##*Es#r*E~3i *E#*E w*E>?*E#w*E~3 Q C*EN! B ^#V*EDMDY *EDMͪ*EDM\y!C*EDMD*EDMͥY *EDM\y!C*EDMDY *EDM*EDM\y!CCCC!a4 ^4*E|*E6AÝ4(!u4EN *E>w*EDM*EDMD*EDM*EDM\*EDḾY C*E*E͊Cs#rY C*E*EYD+s#rY C C*E*E^#VN#FC+s#rY :H5*ED#+s#rC C! 5ZD *Eq#p75*E*EN#F^#VC+s#rY :HM5*ED#+s#rC!!Hj5*E>w#654!!H҄5*E>w#65*E^#V"H!"H*EHWDڽ5*E^#V*HC"H*H"HҔ5*E*Hs#rY C*EN#F+q#pC*ED+s#rC*E*EͮC+s#rY C*E*ED+s#rY C C%ͱ Y CY Ci ; C C%Y Y C!OP!COP!C*E*E^#VN#FͺOP!C*ED+s#rCQ i *E*EN#Fq#pQ C*EDM͈ *E^#V"H*E*HN#Fq#pY Y C%Y Y Ci Q *E*Es#r*En&"EB!CDCQ *E#:E<2EO!E q#p*E^#V"EC*E&E) ^#V"E:E=2EQ7GR Cʹ#C̓$C0j7 1͘2CW&&Y C͗&&:s ڌ7͵Y C͌-͡--C͌--C0Ҵ7i 1C*E*E^N͢Y Y C!G6͘2C!G6_2C.C.Co,Ci Q *EN#F*E|Q C*E+"EC*E>wC008 1_2C*E^#V"!HDMw l8*!H~CD’9UC /*EN!G >w#6*EN!G w#6Y C*E>wC*EDM͙ Cͭi *DM^*EDM\C(!:*E>w#6: :*E>w#6:*E>w#6C*EDMͱC*EDM!C*EDM4Ci ; *EDM!*EDMͱCCC*EDM C*EFYD>dDHҌ:LT *EN#F ! +s#r!GrDҪ:*E^#V"GY C*EDḾCi !"$HͥCDM*$H|:ͪ*EDM\C*E"C (!H;NL ;*EDMCi >GdD*Eq#pC*EN͛*Ew#6C*E^#V"&HDM_;CA *&H#~2(H͵*E:(Hw#6Cy"")H*)H6*E*)H# w*E*)Hs#rB!CC*EN#F2+H͵*+H&*Eq#pCCC:s 2,H!s 6W&:E <E =`iwOEo!E5:Ew#6<*-H *E>w#6*-HDM#C!qG6y""cG "gGͿ*c'!0H6 *cG 6?i *E>w#6|C2/H==*E:/HO! *cG~͕C+s#r!0H6=*E>͖C7D+s#r*cGDM#!qG6C*E^#V"1HN*Eq#pCͅ23H͵Y ͵*E:3Hw#6C͖!C*E~=w*E~=Hү=IO Y *E~EEWD/E+YD/H!4HJ>͞\*EDMY C*EE͊C+:E<2Eo&)q#pY C*EN#F†>NU !s 6*EN#F ͵Y C0Cͨ)O!G ^#V"cG>CD>UD 0*EN!G >w#6*EN!G w#6Y C*F"F&!G6C*"F&!G6C3&C*EN#FͪY C!rG6o,!rG6C!sG6o,!sG6C*E^#V"5H*E*5H wY Y C!E6!"8H.27H ʴ?*8H#"8H!FDҞ?*8HE :7Hwñ?8H\D±?LF t?>!8HoD?!E6?*8H!Es*E&E ~ ?!E53&'C:G2:H!G6&*E>oD @?yY  y::H2GC*E^#V"F>CD*E>oDHH@WL &Y C*EN#F*EDM\CC*EDM͙ *EDMD *Eq#pCͮ@*E^#V";HN`i"=H*=HDMy"*Eq#p*=HDM*;HoB!*EN#FCXI C 2?H *?H& ͹Ci *E*@Es#rB!Ci  -A*E>w#66A*E>w#6Ci  *Ew#6C|0!E6!\"cGͿ*!"gGc'>!E6*E+"E͹C*E>oDB*EEWD"gG!y""cGͿ*c'*E3D+s#r>MDA 'AOS *EN#F +q#pPDA4'A*E>w#6A'A*cGDM#BY Y C334;4A44445P5555666+6,626;6A6O6Y6c6{6666677.7T7Z7`7p7|7777777777788&868o8r8x888888999'9?9q99999!:,:7:B:^:i:::::;4;E;w;;;;;;6r>>>>???,?))덑o|gC =C^#V))) DM!>))C =CYP뗖_>#Wi`/o/gi`N#Fog^#V) -D^#V|g}o 7D_{ozgO{ozgi`N#Fogo&og_{_z#Wi`N#FogPPCYP뗖_>#Wi`/o/gi`N#Fog^#V) -D^#V|g}o 7D_{ozgO{ozgi`N#Fogo&og_{_z#Wi`N#Fog CRAIG'S PROJECT LIST FILENAME ..........PROJECT DESCRIPTION............. DATE MULTUSRS.100 SYSTEM HOUSE FOR MULTI-USER S100 SYSTEMS 12/11/84 SINGLEBD.CPU SINGLE BOARD COMPUTERS FOR S100 COMPUTERS 12/11/84 IOMEGA2S.100 INTERFACING IOMEGA DRIVES TO S100 COMPUTERS 12/11/84 IOMEGA2.HP INTERFACING IOMEGA DRIVES TO HP COMPUTERS 12/11/84 IOMEGA2.DEC INTERFACING IOMEGA DRIVES TO DEC COMPUTERS 12/11/84 MAGIC.BOX THIS BOX ALLOWS IOMEGA TO REPLACE HARD DISKS SUCH AS 7900A, 7906A, 7920A 12/11/84 MAGICBOX.FLP THIS BOX ALLOWS IOMEGA TO REPLACE 1 OR MORE FLOPPY DISK DRIVES ON MICRO OR MINI SYSTEMS 12/11/84 MAGICBOX.TAP THIS BOX ALLOWS IOMEGA TO REPLACE 1 OR MORE TAPE DRIVES, FROM SMALL TO LARGE 9 TRACK 12/11/84 RAMDISK.BIG 256K RAM CHIP DISK EMULATOR FOR DISK DRIVES 12/11/84 CONTROL.FOT FOOT CONTROLLER  00 SYSTEM HOUSE FOR MULTI-USER S100 SYSTEMS 12/11/84 SINGLEBD.CPU SINGLE BOARD COMPUTERS FOR S100 COMPUTERS 12/11/84 IOMEGA2S.100 INTERFACING IOMEGA DRIVES TO S100 COMPUTERS 12/11/84 IOMEGA2.HP INTERFACING IOMEGA DRIVES TO HP COMPUTERS 12/11/84 IOMEGA2.DEC INTERFACING IOMEGA DRIVES TO DEC COMPUTERS 12/11/84 MAGIC.BOX THIS BOX ALLOWS IOMEGA TO REPLACE HARD DISKS SUCH AS 7900A, 7906A, 7920A 12/11/84 MAGICBOX.FLP THIS BOX ALLOWS IOMEGA TO REPLACE 1 OR MORE FLOPPY DISK DRIVES ON MICRO OR MINI SYSTEMS 12/11/84 MAGICBOX.TAP THIS BOX ALLOWS IOMEGA TO REPLACE 1 OR MORE TAPE DRIVES, FROM SMALL TO LARGE 9 TRACK 12/11/84 RAMDISK.BIG 256K RAM CHIP DISK EMULATOR FOR DISK DRIVES 12/11/84 CONTROL.FOT FOOT CONTROLLER ; ; ASCII EQUIVALENCES ; anul equ 00h ;NULL asoh equ 01h ;SOH astx equ 02h ;STX aetx equ 03h ;ETX aeot equ 04h ;EOT aenq equ 05h ;ENQ aack equ 06h ;ACK abel equ 07h ;BELL abs equ 08h ;BS aht equ 09h ;HT alf equ 0ah ;LF avt equ 0bh ;VT aff equ 0ch ;FF acr equ 0dh ;CR aso equ 0eh ;SO asi equ 0fh ;SI adle equ 10h ;DLE adc1 equ 11h ;DC1 adc2 equ 12h ;DC2 adc3 equ 13h ;DC3 adc4 equ 14h ;DC4 anak equ 15h ;NAK asyn equ 16h ;SYN aetb equ 17h ;ETB acan equ 18h ;CAN aem equ 19h ;EM asub equ 1ah ;SUB aesc equ 1bh ;ESC afs equ 1ch ;FS ags equ 1dh ;GS ars equ 1eh ;RS aus equ 1fh ;US asp equ 20h ;SPACE arub equ 7fh ;RUBOUT (DEL) ; Supports my drivers (K.A.) nul equ 00h ;NULL soh equ 01h ;SOH stx equ 02h ;STX etx equ 03h ;ETX eot equ 04h ;EOT enq equ 05h ;ENQ ack equ 06h ;ACK bel equ 07h ;BELL bs equ 08h ;BS ht equ 09h ;HT lf equ 0ah ;LF vt equ 0bh ;VT ff equ 0ch ;FF cr equ 0dh ;CR so equ 0eh ;SO si equ 0fh ;SI dle equ 10h ;DLE dc1 equ 11h ;DC1 dc2 equ 12h ;DC2 dc3 equ 13h ;DC3 dc4 equ 14h ;DC4 nak equ 15h ;NAK syn equ 16h ;SYN etb equ 17h ;ETB can equ 18h ;CAN em equ 19h ;EM sub equ 1ah ;SUB esc equ 1bh ;ESC fs equ 1ch ;FS gs equ 1dh ;GS rs equ 1eh ;RS us equ 1fh ;US spc equ 20h ;SPACE rub equ 7fh ;RUBOUT (DEL) ; wboot equ 0000h ;WARM START ENTRYPOINT iobyte equ 0003h ;I/O CONFIGURATION BYTE curdrv equ 0004h ;CURRENT DEFAULT DRIVE opsysc equ 0005h ;OPERATING SYSTEM ENTRYPOINT (CP/M) opsyst equ 0050h ;OPERATING SYSTEM ENTRYPOINT (TDOS) tfcb equ 005ch ;DEFAULT FILE CONTROL BLOCK tbuf equ 0080h ;DEFAULT DISK BUFFER ADDRESS tpa equ 0100h ;TRANSIENT PROGRAM AREA BASE ; .phase 0 ;WORKING STORAGE RELATIVE TO 0 ; pdrdp: ;PD REQUEST DESCRIPTOR PACKET pdrfcn: ds 1 ;PD REQUEST FUNCTION NUMBER pdrdrv: ds 1 ;PD REQUEST DRIVE NUMBER pdrtrk: ds 2 ;PD REQUEST TRACK NUMBER pdrsec: ds 2 ;PD REQUEST SECTOR NUMBER pdrsc: ds 2 ;PD REQUEST SECTOR COUNT pdrtc: ds 2 ;PD REQUEST TRANSFER COUNT pdrdma: ds 2 ;PD REQUEST DMA ADDRESS pdrdst: ds 2 ;PD REQUEST DRIVE SPEC TABLE ADDR pdrlen equ $-pdrdp ;PD REQUEST DESCRIPTOR PACKET LENGTH dsknfo: ;DISK TYPE INFORMATION blksiz: ds 1 ;BLOCK SIZE nmblks: ds 2 ;NUMBER OF BLOCKS nmbdir: ds 1 ;NUMBER OF DIRECTORY BLOCKS secsiz: ds 1 ;PHYSICAL SECTOR SIZE (2^N*128) sectrk: ds 2 ;PHYSICAL SECTORS PER TRACK trkdsk: ds 2 ;PHYSICAL TRACKS PER DISK restrk: ds 2 ;NUMBER OF RESERVED TRACKS dnfol equ $-dsknfo ;DISK INFO LENGTH ; .dephase h ;DEFAULT FILE CONTROL BLOCK tbuf equ 0080h ;DEFAULT DISK BUFFER ADDRESS tpa equ 0100h ;TRANSIENT PROGRAM AREA BASE ; .phase 0 ;WORKING STORAGE RELATIVE TO 0 ; pdrdp: ;PD REQUEST DESCRIPTOR PACKET pdrfcn: ds 1 ;PD REQUEST FUNCTION NUMBER pdrdrv: ds 1 ;PD REQUEST DRIVE NUMBER pdrtrk: ds 2 ;PD REQUEST TRACK NUMBER pdrsec: ds 2 ;PD REQUEST SECTOR NUMBER pdrsc: ds 2 ;PD REQUEST SECTOR COUNT pdrtc: ds 2 ;PD REQUEST TRANSFER COUNT pdrdma: ds 2 ;PD REQUEST DMA ADDRESS pdrdst: ds 2 ;PD REQUEST DRI .xlist .xcref ; ; ASCII EQUIVALENCES ; The Ron Raikes way anul equ 00h ;NULL asoh equ 01h ;SOH astx equ 02h ;STX aetx equ 03h ;ETX aeot equ 04h ;EOT aenq equ 05h ;ENQ aack equ 06h ;ACK abel equ 07h ;BELL abs equ 08h ;BS aht equ 09h ;HT alf equ 0ah ;LF avt equ 0bh ;VT aff equ 0ch ;FF acr equ 0dh ;CR aso equ 0eh ;SO asi equ 0fh ;SI adle equ 10h ;DLE adc1 equ 11h ;DC1 adc2 equ 12h ;DC2 adc3 equ 13h ;DC3 adc4 equ 14h ;DC4 anak equ 15h ;NAK asyn equ 16h ;SYN aetb equ 17h ;ETB acan equ 18h ;CAN aem equ 19h ;EM asub equ 1ah ;SUB aesc equ 1bh ;ESC afs equ 1ch ;FS ags equ 1dh ;GS ars equ 1eh ;RS aus equ 1fh ;US asp equ 20h ;SPACE arub equ 7fh ;RUBOUT (DEL) ; extras to support my drivers (K.A.) nul equ 00h ;NULL soh equ 01h ;SOH stx equ 02h ;STX etx equ 03h ;ETX eot equ 04h ;EOT enq equ 05h ;ENQ ack equ 06h ;ACK bel equ 07h ;BELL bs equ 08h ;BS ht equ 09h ;HT lf equ 0ah ;LF vt equ 0bh ;VT ff equ 0ch ;FF cr equ 0dh ;CR so equ 0eh ;SO si equ 0fh ;SI dle equ 10h ;DLE dc1 equ 11h ;DC1 dc2 equ 12h ;DC2 dc3 equ 13h ;DC3 dc4 equ 14h ;DC4 nak equ 15h ;NAK syn equ 16h ;SYN etb equ 17h ;ETB can equ 18h ;CAN em equ 19h ;EM sub equ 1ah ;SUB esc equ 1bh ;ESC fs equ 1ch ;FS gs equ 1dh ;GS rs equ 1eh ;RS us equ 1fh ;US spc equ 20h ;SPACE rub equ 7fh ;RUBOUT (DEL) ; ; OPERATING SYSTEM EQUIVALENCES ; wboot equ 0000h ;WARM START ENTRYPOINT iobyte equ 0003h ;I/O CONFIGURATION BYTE curdrv equ 0004h ;CURRENT DEFAULT DRIVE opsysc equ 0005h ;OPERATING SYSTEM ENTRYPOINT (CP/M) opsyst equ 0050h ;OPERATING SYSTEM ENTRYPOINT (TDOS) tfcb equ 005ch ;DEFAULT FILE CONTROL BLOCK tbuf equ 0080h ;DEFAULT DISK BUFFER ADDRESS tpa equ 0100h ;TRANSIENT PROGRAM AREA BASE ; wsfcn equ 0 ;FUNCTION 0 (WARM START) cifcn equ 1 ;FUNCTION 1 (CONSOLE INPUT) cofcn equ 2 ;FUNCTION 2 (CONSOLE OUTPUT) rcifcn equ 3 ;FUNCTION 3 (RAW CONSOLE INPUT) rcofcn equ 4 ;FUNCTION 4 (RAW CONSOLE OUTPUT) lofcn equ 5 ;FUNCTION 5 (LIST OUTPUT) dcfcn equ 6 ;FUNCTION 6 (DIRECT CONSOLE I/O) ribfcn equ 7 ;FUNCTION 7 (RETURN I/O BYTE) sibfcn equ 8 ;FUNCTION 8 (SET I/O BYTE) pbfcn equ 9 ;FUNCTION 9 (PRINT BUFFER) cibfcn equ 10 ;FUNCTION 10 (CONSOLE IN BUFFERED) csfcn equ 11 ;FUNCTION 11 (CONSOLE STATUS) rvnfcn equ 12 ;FUNCTION 12 (RETURN VERSN NUMBER) rdsfcn equ 13 ;FUNCTION 13 (RESET DISK SYSTEM) selfcn equ 14 ;FUNCTION 14 (SELECT DISK) offcn equ 15 ;FUNCTION 15 (OPEN FILE) cffcn equ 16 ;FUNCTION 16 (CLOSE FILE) sfffcn equ 17 ;FUNCTION 17 (SEARCH FOR 1ST FILE) snffcn equ 18 ;FUNCTION 18 (SEARCH FOR NEXT FILE) dffcn equ 19 ;FUNCTION 19 (DELETE FILE) rsffcn equ 20 ;FUNCTION 20 (READ SEQUENTIAL FILE) wsffcn equ 21 ;FUNCTION 21 (WRITE SEQ FILE) mffcn equ 22 ;FUNCTION 22 (MAKE FILE) rffcn equ 23 ;FUNCTION 23 (RENAME FILE) rlifcn equ 24 ;FUNCTION 24 (RETURN LOGIN VECTOR) rcdfcn equ 25 ;FUNCTION 25 (RETURN CURRENT DISK) sdfcn equ 26 ;FUNCTION 26 (SET DMA) ; wpdfcn equ 28 ;FUNCTION 28 (WRITE PROTECT DISK) rrofcn equ 29 ;FUNCTION 29 (RETURN R/O VECTOR) sfafcn equ 30 ;FUNCTION 30 (SET FILE ATTRIBUTES) dpbfcn equ 31 ;FUNCTION 31 (DISK PARAMETER BLOCK) srufcn equ 32 ;FUNCTION 32 (SET/RETURN USER) rrffcn equ 33 ;FUNCTION 33 (READ RANDOM FILE) wrffcn equ 34 ;FUNCTION 34 (WRITE RANDOM FILE) cfsfcn equ 35 ;FUNCTION 35 (COMPUTE FILE SIZE) srrfcn equ 36 ;FUNCTION 36 (SET RANDOM RECORD) rdfcn equ 37 ;FUNCTION 37 (RESET DRIVE) ; lkrfcn equ 42 ;FUNCTION 42 (LOCK RECORD) frrfcn equ 43 ;FUNCTION 43 (FREE RECORD) sscfcn equ 44 ;FUNCTION 44 (SET SECTOR COUNT) ; dfsfcn equ 46 ;FUNCTION 46 (DISK FREE SPACE) chnfcn equ 47 ;FUNCTION 47 (CHAIN TO PROGRAM) ; dt1fcn equ 104 ;FUNCTION 104 (SET DATE/TIME) dt2fcn equ 105 ;FUNCTION 105 (RETURN DATE/TIME) ; rsnfcn equ 107 ;FUNCTION 107 (RETURN S/N) srcfcn equ 108 ;FUNCTION 108 (SET/RETURN CODE) ; srtfcn equ 110 ;FUNCTION 110 (SET/RET TERMINATOR) pbcfcn equ 111 ;FUNCTION 111 (PRINT BLOCK TO CON) pblfcn equ 112 ;FUNCTION 112 (PRINT BLOCK TO LIST) ; mqfcn equ 134 ;FUNCTION 134 (MAKE QUEUE) oqfcn equ 135 ;FUNCTION 135 (OPEN QUEUE) dqfcn equ 136 ;FUNCTION 136 (DELETE QUEUE) urqfcn equ 137 ;FUNCTION 137 (UNCOND READ QUEUE) crqfcn equ 138 ;FUNCTION 138 (CONDIT READ QUEUE) uwqfcn equ 139 ;FUNCTION 139 (UNCOND WRITE QUEUE) cwqfcn equ 140 ;FUNCTION 140 (CONDIT WRITE QUEUE) dlyfcn equ 141 ;FUNCTION 141 (DELAY) dspfcn equ 142 ;FUNCTION 142 (DISPATCH) ttpfcn equ 143 ;FUNCTION 143 (TERMINATE TRANSIENT) ; pfnfcn equ 152 ;FUNCTION 152 (PARSE FILE NAME) rcnfcn equ 153 ;FUNCTION 153 (RET CONSOLE NUMBER) ; dt3fcn equ 155 ;FUNCTION 155 (RETURN DATE/TIME) ; rosfcn equ 0 ;FUNCTION 0 (RESET O/S) ctpfcn equ 1 ;FUNCTION 1 (CREATE/TERM PROCESS) dpfcn equ 2 ;FUNCTION 2 (DISPATCH PROCESS) amfcn equ 3 ;FUNCTION 3 (ALLOCATE MEMORY) dmfcn equ 4 ;FUNCTION 4 (DE-ALLOCATE MEMORY) smfcn equ 5 ;FUNCTION 5 (SEND MESSAGE) rmfcn equ 6 ;FUNCTION 6 (RECEIVE MESSAGE) sesfcn equ 7 ;FUNCTION 7 (SET ERROR SERVICE) serfcn equ 8 ;FUNCTION 8 (SET ERROR RETURN) sdtfcn equ 9 ;FUNCTION 9 (SET DATE/TIME) rdtfcn equ 10 ;FUNCTION 10 (RETURN DATE/TIME) rdmfcn equ 11 ;FUNCTION 11 (REBUILD DISK MAP) roufcn equ 12 ;FUNCTION 12 (RETURN ORIGIN/UNIT) scffcn equ 13 ;FUNCTION 13 (SET COMPATABILITY) logfcn equ 14 ;FUNCTION 14 (LOG ON/OFF) lffcn equ 15 ;FUNCTION 15 (LOAD FILE) adffcn equ 16 ;FUNCTION 16 (ACTIVATE DO FILE) aldfcn equ 17 ;FUNCTION 17 (AUTO LOAD DISABLE) sclfcn equ 18 ;FUNCTION 18 (SEND COMMAND LINE) ravfcn equ 19 ;FUNCTION 19 (RETURN ALV INFO) rdpfcn equ 20 ;FUNCTION 20 (RETURN DISK PARMS) srsfcn equ 21 ;FUNCTION 21 (SET/RET DISK STATUS) pdafcn equ 22 ;FUNCTION 22 (PHYSICAL DISK ACCESS) sbpfcn equ 23 ;FUNCTION 23 (SET BUFFER PARMS) rbpfcn equ 24 ;FUNCTION 24 (RETURN BUFFER PARMS) lfdfcn equ 25 ;FUNCTION 25 (LOCKOUT/FREE DRIVE) ffbfcn equ 26 ;FUNCTION 26 (FLUSH/FREE BUFFERS) srpfcn equ 27 ;FUNCTION 27 (SET/RET PRINT MODE) eopfcn equ 28 ;FUNCTION 28 (SIGNAL END OF PRINT) srdfcn equ 29 ;FUNCTION 29 (SET/RET DE-SPOOL) qpffcn equ 30 ;FUNCTION 30 (QUEUE PRINT FILE) flbfcn equ 31 ;FUNCTION 31 (FLUSH LIST BUFFER) nlofcn equ 32 ;FUNCTION 32 (NETWORK LIST OUT) rcfcn equ 33 ;FUNCTION 33 (REMOTE CONSOLE) ccsfcn equ 34 ;FUNCTION 34 (COMM CHANNEL STATUS) ccifcn equ 35 ;FUNCTION 35 (COMM CHANNEL INPUT) ccofcn equ 36 ;FUNCTION 36 (COMM CHANNEL OUTPUT) scbfcn equ 37 ;FUNCTION 37 (SET COMM BAUD RATE) rcbfcn equ 38 ;FUNCTION 38 (RETURN COMM BAUD) smcfcn equ 39 ;FUNCTION 39 (SET COMM MODEM CTRL) rmcfcn equ 40 ;FUNCTION 40 (RET COMM MODEM CTRL) usrfcn equ 41 ;FUNCTION 41 (USER DEFINED) rddfcn equ 42 ;FUNCTION 42 (REBUILD DISK DIR) smbfcn equ 43 ;FUNCTION 43 (SELECT MEMORY BANK) .cref .list ETURN BUFFER PARMS) lfdfcn equ 25 ;FUNCTION 25 (LOCKOUT/FREE DRIVE) ffbfcn equ 26 ;FUNCTION 26 (FLUSH/FREE BUFFERS) srpfcn equ 27 ;FUNCTION 27 (SET/RET PRINT MODE) eopfcn equ 28 ;FUNCTION 28 (SIGNAL END OF PRINT) srdfcn equ 29 ;FUNCTION 29 (SET/RI orde t mak wordsta wor properl i turbodo 1.4 ther ar som mino change tha hav t b don t Wor Star. Thes change wil spee u Wordsta an caus i t us th spooler properly during printing operations. Yo mus mak thes change afte yo instal Wordstar o els the install program might overlay your patches. Ru th monito comman an usin th (l)oa option loa i ws.com The usin th (e)xamin optio patc th followin locations. PATCHES For Wordstar 3.3 28E = 01 ;(DELCUS) CURSOR POSITIONING DELAY 28F = 01 ;(DELMIS) MISC FUNCTION DELAY 2AF = 02 ;(DEL1) SHORT DELAY COUNT 2B0 = 04 ;(DEL2) MEDIUM SHORT DELAY COUNT 2B1 = 08 ;(DEL3) MEDIUM LONG DELAY COUNT 2B2 = 16 ;(DEL4) LONG DELAY COUNT 2B3 = 04 ;(DEL5) HORIZONTAL SCROLLING DELAY COUNT 717 = 00 ;(CSWITCH) PRINTER ROUTINE SWITCH 718 = FF  ;(HAVBSY) BUSY ROUTINE SWITCH ;After you enter a byte, hit the space bar to enter the next one consecutivly 29C,CB,02 ;JP CONSTA (02CB) 2CB = 0E,0B ;LD B,11 2CD = C3,05,00 ;JP BDOS 714 = C3,D0,02 ;JP LSTEND (02D0) 2D0 = 0E,1C ;LD B,28 2D2 = C3,50,00 ;JP TDOS AFTER THE PATCHES, THEN SAVE YOUR WORK USING THE (s)ave command. EXAMPLE SWS.COM PATCHES For Wordstar 3.0 2AE = 01 ;(DELCUS) CURSOR POSITIONING DELAY 2AF = 01 ;(DELMIS) MISC FUNCTION DELAY 2CF = 02 ;(DEL1) SHORT DELAY COUNT 2D0 = 04 ;(DEL2) MEDIUM SHORT DELAY COUNT 2D1 = 08 ;(DEL3) MEDIUM LONG DELAY COUNT 2D2 = 16 ;(DEL4) LONG DELAY COUNT 2D3 = 04 ;(DEL5) HORIZONTAL SCROLLING DELAY COUNT 717 = 00 ;(CSWITCH) PRINTER ROUTINE SWITCH 718 = FF ;(HAVBSY) BUSY ROUTINE SWITCH  2BAC,E0,02 ;JP UCNSTA (02E0) 2E0 = 0E,0B ;LD B,11 2E2 = C3,05,00 ;JP BDOS 710 = C3,E5,02 ;JP LSTEND (02E5) 2E5 = 0E,1C ;LD B,28 2E7 = C3,50,00 ;JP TDOS AFTER THE PATCHES, THEN SAVE YOUR WORK USING THE (s)ave command. EXAMPLE SWS.COM FEEL FREE TO EXPERIMENT WITH THE DELAYS FOR YOUR PREFERENCES.  ;(DELCUS) CURSOR POSITIONING DELAY 2AF = 01 ;(DELMIS) MISC FUNCTION DELAY 2CF = 02 ;(DEL1) SHORT DELAY COUNT 2D0 = 04 ;(DEL2) MEDIUM SHORT DELAY COUNT 2D1 = 08 ;(DEL3) MEDIUM LONG DELAY COUNT 2D2 = 16 ;(DEL4) LONG DELAY COUNT 2D3 = 04 ;(DEL5) HORIZONTAL SCROLLING DELAY COUNT 717 = 00 ;(CSWITCH) PRINTER ROUTINE SWITCH 718 = FF ;(HAVBSY) BUSY ROUTINE SWITCH :COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 04/17/84) 1!]~#(# (08z 0vGy8q8n8k8h8e8bOy([ 0WG+ ?9!4~:860#4 "G G     Invalid number of users requested $ Unable to create queues $ Queues created $Am80 Am8Usr/ SAm80 AM80AM80AM80SETMX80 BAS <SETUP BAS=>TEST1 BAS?UNDRLINEBAS@PROJECT BAKAPROJECT LST BBATLSHP INT CSYSTEMS BAKDSYSTEMS ADV EA3033 MACFCONDR MACGHDMA5F MACIDMA5R MACJDSKTBL MACKFORMATH MACLMNOPQRSFORMATH MAC T<|\COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1!~(/G#:O: q#~  #y( O:D~( >  " Ebw͖ ͖ Message sent to FIF͖ BATCH.DO FIFO file not found͖ BATCH.DO File not FIFO͖ FIFO file full͖ Excessive command length͜~#ͪ_BATCH DO :\: ds 1 ;PD REQUEST DRIVE NUMBER pdrtrk: ds 2 ;PD REQUEST TRACK NUMBER pdrsec: ds 2 ;PD REQUEST SECTOR NUMBER pdrsc: ds 2 ;PD REQUEST SECTOR COUNT pdrtc: ds 2 ;PD REQUEST TRANSFER COUNT pdrdma: ds 2 ;PD REQUEST DMA ADDRESS pdrdst: ds 2 ;PD REQUEST DRI:\ 5:] . No source drive or filename specified:l ' No destination drive specified:] (%8%(\ Can't find source file{x0 Not enough memory]( Can't read boot tracks=ͨ( Can't write boot tracks Operation successfu !\26 Reading source file:* R!(S:\7 Reading boot tracks:2:͗*D":l=2;>2:!H"D:Pʔ:L!@)=KMC@"B>8*B Writing boot tracks:>2:×=2;>2:!H"D:P(C:L!@)=WKMC@"BKQx(SD*R!"<">:P*<#"<*D[B"D*Q+"Q| !x ~#(_ disk jp nz,fatal ;if drive not ready, continue call seek ;else, seek to requested track ret ;done ; rwcom1: call disk jp nz,fatal ;if drive not ready, con:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 05/10/84) 1 2J2K($G;(( O:  !I:k(:i2K͑\͘ˆ!"|"~͑\!͘w:IG( ::~:}!:IG( }ƀ: ~#}  R~#( 0>.} } U*}#"}|¨!4è ( ( ͑\͘:K͡:J͡_;ѻ ;ѻ1 0:8 ~~#(_:IG(a{ LRecordFile not foundNon-privileged user/ 0:y0 > 99~#=&A9>>~#9*%[R R0x C!J˞!"*"t ~ :J_ *#"[R8*"*|(t ~ ~ *+":J_(* 4 0 U :K( Ê l =( :KoX !:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/14/84) 1c 22:k(:i2:] :e \ ʋ!6#>  :ͼO:ͼ(:ͼ >2>  :ͼO:ͼ(:ͼ >2T: (1-127>(1-65535>:  K8(: | }0"\ 2|\ \ !]\ zx!]~(d!"|"~\!  T\ ͑: ͦͮ͟: *͇:(*͇< ^r͓  ::):)_Cѻ Cѻ͹ !y8 (08 0)) )O y0|:7=2'ͥͥdͥ ͥ R0x  0 a{ RDYN FIFO file not found, creating new fil Enter FIFO type (Ram/Disk): Suspend processing on full/empty conditions? (Yes/No): Enter maximum number of records FIFO file create FIFO isRaDis resident FIFO doesnotsuspend processing on full/empty conditions Maximum number of records: Current number of records: No FIFO file name specified File not FIFO Unable to create FIFO file Unable to read FIFO file header Non-privileged user ~#_ zx!]~(d!"|"~\!  T\ ͑: ͦͮ͟: *͇:(*͇< ^r͓  ::):)_Cѻ Cѻ͹ !y8 (08 0)) )O y0|:7=2'ͥͥdͥ ͥ R0x  0 a{ RDYN FIFO file not found, creating new fil Enter FIFO type (Ram/Disk): Suspend processing on full/empty conditions? (Yes/No): Enter maximum number of records FIFO file create FIFO isRaDis resident FIFO doesnotsuspend processing on full/empty conditions M1w Advanced Digital hard disk format utility  PxZ NON-privileged use:\„ no format drive specifie=2:1ʼ unable to lockout format driv+P(F To format, you must be attached to the master and on bank 0 :_P"AC2S;>2> >2>!͕ t:>( ͕ e Can not determine sectors per head, Please check your disk spec tablx2:O*A: Drive has*;Z tracks and:=o&Z heads *2j(Track offset of*2Z Total sectors per head*:&Z Interleave factor of.&ZP Press to begin ( >2F format drive not ready  formatting ... press ^c to abort :4W( >25*0 *;"5!:4_ [2":=292>2F( formaU((  format aborte!4!958:=292*#"*5+"5|8 format successful:4O Verifying... !#">2F!"!:'=)"wS*R:4W( >25*0 **"5!:4_ [2"2*("7!"F( verifU((  verify aborte*#"*7+"7| *#"*5+"5|C successful verif insufficient memory to verif& verify drive not ready  G;(!4 R V F ͏"0 error, drive:A>:, track:*Z (retry, ignore, abort)P( A7( R(I  K9!w>w#2w:?!:8!w_>({p!:x !w":G::2_!"2:>(!!"_PѷPP'xxdx x R0x  0 !S.͚[.S.ͺ  _ 0:8 AG?0~# _A[ Z:Z (retry, ignore, abort)P( A7( R(I  K9!w>w#2w:?!:8!w_>({p!:x !w":G::2_!"2:>(!!"_PѷPP'xxdx x R0x  0 !S.͚[.S.ͺ  _ 0:8 AG?0~# _A[ Z::COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1/  Px +P&:\L=2 J: O°: tnk I Insert disk to be formatted in drive: Ä́ I Enter to begin formattings ( 0I>2 ͉ʕI Starting format pass *R " !" I:N 2 2 ͞¶>2 ͉(I Forma͓5([(g I Format aborte5! 4! 5 * #" * +" | I Successful format Starting verify pasiI Insert disk to be verified in drive: Ä́ I Enter to begin verifyings ( 0II >2 ! " ͉* " 2 !" !d " * " I!" * |*d BR0 * +" * [ R(9[ R8" " ͉(I Verif͓5(* [ " [(g I Verify aborte5* #" * +" |KI Successful verif5I Non-privileged user0I Unable to execute from bank 10I No format drive specified0I Unable to lockout format drive0I Format drive not ready qI Insufficient memory to formatUI Insufficient memory to verify: O +.I Verify drive not ready : Oqð! ˆI : GOqðG;(! ͕R V _PѷP PI error, Drive:: Ä́I, Track:* I (Retry, Ignore, Abort) Is͕A7( R(I I ))))))): =)[g'22d2 2 R0x  0̈́ O~#̈́P (_a{ :M |(*!d *R>!d T]6:M (6N :/ _:P 2 GO !0 8zw#p:O _!s:M (!{^#V#^#VSK d !0 N#F#F#~#: : ~#*K ~!d " R" :M :O (2 : :Q (2 ɋ[k  (     /5;        @ (     /5;         @ (     /5;            @ PN    2N   /5;   N       N@ PN    2N   /5;   N         "N@ PN    2N   /5;   N             BN@2T 2U 2V = :U :!T ̓ Enter number of sides (1/2):r (1( 2(̓ 02N :V B!T ̓ Enter format type (TurboDOS/Ibm):r ( ͦ T( I(̓ !_ I(!Z ~#2O ~###2P ~2Q !_ R(!" :T G(̓ !~G#~;(#~ͦ 1 2 2U T I 2V W  :X :Y ͉ ~#͕ _a{ (5t*Pk  (     /5;        @ (     /5;         @ (     /5;            @ PN    2N   /5;   N       N@ PN    2N   /5;   N         "1"q HDC1001 Hard Disk Utility Progra>2>2!"*R"1"q ̓͌(G!~( #(##^#Vq Command unknown GSRZ WF M I O D GgA3 Q?̓T Hʍ Sʄ Dʪ AWP R/Zʱ ^ʌ q̓Fʔ S Cʮ qʹ͌q Exit abandoneGq A ;Adjust phase lock loop S(Function) ;Set function A(dma address) ;I/O address (return sets default) D(drive no 0-3) ;Drive H(head no 0-15) ;head P(steprate 0-15) ;step rate R(Hex,Dec,Octal,Bin) ;Radix S(0-255) ;Sector T(0-65535) ;Track Z(0-7) ;set sector size and ecc D(Start) ;dump memory (return sets default) F(Start,Count,Fillchar) ;fill G ;Get status I(portno.) ;input port M(Start,Destination,Count) ;move O(portno.,data) ;output port Q  ;Quit R ;Read sector W(function) ;Write function S ;Sector F(interleave) ;Format Track C ;continous write sector ? ;Command listG̓H( D(O( B(qx2G } !"GH q Step rate:#q Radix:H( D (O(B(qUndefinexq Next address for disk I/O*q Status -->‰q Board not present, or port decoding defective, or port not set to E0 hex Make sure dip switch is set to |on|on|on|off|off|off|off|offE w qDRIVE NOT READY q*** DRIVE IS READY *** ( q, BUSg q, Incomplete see_(qData request pending o(q Write Fault!!! W(q, Corrected datGE q erroq Error register contains..G( q Data address mark not founO(q track 0 never founW(q Hardware failure, ABORTEg(#q Identification field incorreco(q Cyclic rendundancy errow(q Uncorrectable dat(q BAD block detecteGq Trackog<q Head&o:G(<q Sector&o<q Drive0q bit defintions |ECC|SZ1|SZ0| 0=256, 1=512, 2=none, 3=256 %%%%%G }2G }( }|p:y G>> y (q*o(ͨ(G>> y (q Bad rea*o(q next address<"[R80 G>>0*o({ (qͨ(G>>0*o({ (q Bad writq next address<"[R80 Gq CAUTION the next read or write will munch your operating system reset the dma register firs "q Ok to format Trackgo<q ̓YGo@( H*6#y?2G_*}/o|/g#"x/o&#"[* *   x*: *o> (>>Po( { (q format track faileG G }G }OY>(=2˙G }'''oG G s# y G Mxq y#q =#G M }yG } !} q >= q ͨ( ʹG (q ~#q#͇ q  80 ͇ (>. yqCreated by Kevin Aguilar for Advanced Digital Corp, 3/13/8G! :GO͌80 _q̓0:8 AG?0|#}#00Ɛ'@''ZZdZ Z R0x  0 w~#xA[ G(( , ɷ7 (_ ɷ7 (_ dma register firs "q Ok to format Trackgo<q ̓YGo@( H*6#y?2G_*}/o|/g#"x/o&#"[* *   x*: *o> (>>Po( { (q format track faileG G }G }OY>(=2˙G }'''oG G s# y G Mxq y#q:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/04/84) 1 PP 2P:!  Pz2{2x2ͪ! !-4*:( +"|< !5M O_(=( ?!6#(#(((V*#"| !4!@hVD.PP# ! 6<*+!""A!6T] 08Y (!:0o: g2 ::8A8-[0)! R8w#:0o: gdҥ2 :(, F !կ(#( åy2 (*:  :2 :  :2 : (a:  x2#!* &: =0C: * &!"=(^#!: = 0;;!:(' 6 #*&+T]F6 #:   6*#6$2 {2 z2 >: W:_:!Ri!|D)0)0>: W:_:!Ri!|D)0)0>; v ͩ|0 ͪ!O  X8:_ ! ͯ06P͜8P81v 2 ; v !W (! 4~8Ê PR‘Pv  >;ʑO/ !!R   P P O  Pv  >;(+O/ # P:! W:" _:# G P ͒  ͢\P$ >;!/  \͹\* : ( +" |< ! 5(Y( =( j (#(((* #" | ! 4 Pz2! {2" x2#  O͒!   !  ! @:_ _:` WP :a ( a PP( ; P v   "!" ! 6  ! 6 #<   * + ! "!!O / #!W : ( 7 0!O 6 #7!8,(Sw#x?7 (*!8,()P(0 ?Gy؇؁؇؀ ?O* +" y2_ 2`  (!8,A?2` * +" !a 6 #w:a <2a 8* }  !(6~j(#" !6#" A! 6T]08Y (w! :0o: g2 ::8jA8-[0)! R8w#:0o: gdJ2 : (, R  ! կ(j#( Jy2 (* ͨ: : 2 : : 2 : (a:  x2tr* &: =0C: * &!s=(^#!: =7 0;;!ͨ: ('ͯ6 #* &+T]R 6 #: ͯ 6*#6$2 {2 z2 ͨ: W: _: !R!|D)0)0>^͔ >͔ H͔ H ~( ^+~ ^5:N v  a{ v System log on v Enter user id:v Invalid user idv Enter password:v Incorrect passwordv Enter date:v Invalid datev Enter time:v Enter activity:v Unable to log onJanFebMarAprMayJunJulAugSepOctNovDec| ~#͔ } _USERI SYSSYSLG SYSDD MMM YYHH:MM:SS-USERID-NN ON -----------ACTIVITY------------ (4 (5(6(2~0q#4:N (y 0 @>^͔ >͔ H͔ H ~( ^+~ ^5:N v  a{ v System log on v Enter user id:v Invalid user idv Enter password:v Incorrect passwordv Enter date::\#͸ No drive specifie=2+P(K͸ To park the drive you must be attached to the master and on bank >2P*">2P͸ Drive is now parke;~#_2͖ ͖ Message sent to FIF͖ BATCH.DO FIFO file not found͖ BATCH.DO File not FIFO͖ FIFO file full͖ Excessive command length͜~#ͪ_BATCH DO :\: ds 1 ;PD REQUEST DRIVE NUMBER pdrtrk: ds 2 ;PD REQUEST TRACK NUMBER pdrsec: ds 2 ;PD REQUEST SECTOR NUMBER pdrsc: ds 2 ;PD REQUEST SECTOR COUNT pdrtc: ds 2 ;PD REQUEST TRANSFER COUNT pdrdma: ds 2 ;PD REQUEST DMA ADDRESS pdrdst: ds 2 ;PD REQUEST DRI1!e6P#6R#6L\(̀ File not found 2|);*");S*)LGx();* " 2:( G*w#\(%̀ Unable to close input file ![O0:w#zy(!e6C#6O#6M\2h\('̀ Unable to create output file 2|S*)LGx(U* " 2:(G*~#\(&̀ Unable to close output file ̀ Conversion complete :)0 !6#>o&<2~:U<2o&w\7̀ Disk read error \̀ Disk write error ͆^~#_ disk jp nz,fatal ;if drive not ready, continue call seek ;else, seek to requested track ret ;done ; rwcom1: call disk jp nz,fatal ;if drive not ready, con:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/16/84) 1E 222BP}( |=e292;:] :e !7!~( 2 :(:O:(:(!8ˎ!8ˆ!" :8G O D:7O(=l>2 :(:O:(:(J *#:\ :o:9g:8W(P(͆͐(  *+"|*# ͜:/ 0:y0 > &&:\=A&*#~#&3~#fo,K ))) )K \8\!:k:i2ͱ*<|7"y#y7"<| *> !?^#"<6 :Ͷ:Ͷ_ѻ ѻ !7êa{ YNDSQ No queue number available Invalid queue number requested Ambiguous filename: confirm individual files (y/n)? Ok to queue (y/n)? not queue File not found Invalid filename Insufficient memory Non-privileged user~#& _@Ho:9g:8W(P(͆͐(  *+"|*# ͜:/ 0:y0 > &&:\=A&*:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 04/12/84) 1S 22:k(:i2:] :e \!]~!a\ o\ ^ !~#(9(5 0* ( (& %:OG!> 4!6!4} I k͙ͅ :':'_Aѻ Aѻͯ  No FIFO file name specified FIFO file not found File not FIFO FIFO file empty Non-privileged user ~#_o:9g:8W(P(͆͐(  *+"|*# ͜:/ 0:y0 > &&:\=A&*:COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/15/84) 19 [Ͳ' Toͫ PSA-TO-MICROSOFT CONVERSION PROCESSOR Copyright 1984, Software 2000, Inc End of conversion ((!6!(C_+(G@(P#(f&(b\(~;ʬ Invalid input record forma͒g>;2 ͒>;! 5 2 ͒͸>;! 5 2 ͒͸[ z(6! F6> (> (>;! 5 2 : * 2 " 2 2 2 2 2 2 : ʝ!   #> ;2 <2 ! 5 6 2 r* #"  w: 2 8W: =(@=($: 2 2 * " ́ ~(JN: 2 * " J* ##"  : \* #" 2 ! 52 ! 4: 8 : * (: >;2 : * 2 " >;2 2 =2 >; Unanticipated end of input fil: Invalid input record checksu* |( 2 > ; : * }\|\ : J2 ́! ! !8. >?% >@w# ! q2 2 2 2 : 2 ! w >;!   !   ́  ~: ! 8ẃ! w#w#w#w2 2 <2 ͗>2 : 2 ͗2 2 ͗ ! F#^: * B: = : P : P: 8>P( * P: P8?: 8>P* P: ( : PO! ~P# : ȷr!5 6`<7 ![R~!w`(}lg g>()= )r! [ R~w! 56! 56  Disk is ful 2 2 :k(:i2 !\< :e!8 !< !Hw#<2< < Can't open input fil<$< Can't make output fil:  : (r<$!< 0: ͙: ͙_͸ѻ ͸ѻ  ^#{( ͇͇͇͇͇͇͇͐͐͐͐͐͐͐ REL $$$ 9 w! 56! 56  Disk is ful 2 2 :k(:i2 !\< :e!8 !< !Hw#<2< < Can't open input fil<$< Can't make output fil:  : (r<$!< 0: ͙: ͙_͸ѻ ͸ѻ  ^#{( ͇͇͇͇͇͇͇͐͐͐͐͐͐͐ REL $$$<|\COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 04/12/84) 1 22:k(:i2:] :e \!]~(~!~(/##~() (#~( #~( (:O~#( :> > !a\ %\ Hb ̈́͞Ͳ :&:&_@ѻ @ѻ  Message sent to FIF No FIFO file name specified FIFO file not found File not FIFO FIFO file full Non-privileged user ~#_[* *   x*: *o> (>>Po( { (q format track faileG G }G }OY>(=2˙G }'''oG G s# y G Mxq y#qQԣ=I%8\SU ҂?BANK?d5U$$LCLLODՀd4DPMOVDMAee$$SMBFCN4UD$DP6GETBDAe4UD$86GETBMCАS`vU͠Q.xdx0@@ (C$@`#2(<DQ@+ f K^i2Yl|v|f@j^| ^͸ E" [8!`/``^@ c@ۀ!ʮ *, MY ! /K@A%Y|Z,#`ڰW"02D@N͵`G({C>B?fذt.dhP3C$DP+ݤBl;JL6<\Yh(pj( {PuPiϽ ~ 7;O}` cB(84%# X0\-om 7OP#[d V+v8 ;K`8+X:+-q Z \Ak-3@UZ Wj-U|PZ Wk-q Z g-|Z \Ah8-q|[`p Z D\@up0;a-q q@Z \Ak-qװJ \Ak- Z \Ak-d  Z \Ak- H/8͠#/* Vm8ͧN :Ջ@!6 H#@ S6{8 Bl>* ," 3j(kG5@ `a`Fmqio@`mP|jP+70\-j\AEX$#<\AD @8@q0@۔#B`6\,m!e@ `vq- v,pZà Of06K C 6maVmrk+DC 3m6ˁY`3m!@ eٶ : -wHAI8FF<,Y0! V r{@ 78Y, j@omfPP&, S  6i0 3o0)j>)GiHf0AV f #+23@mH`FX p Hj(:b3@us@!QVX}PcEX\|a0V >-YUYEX$eWP|vHfq`|@ :#Al+Xͮ ;f ͵` ö`EPDVrx 4`0ͮ [LVmfVA",ͭ@;: ͬ;: !XL`Y@.`(n VmfV-Vm;Y" 03k8(`:וNYx ' Yͬ6k(H$Cp\۞ : vLa",Ͳ" V C%0m`| =[ @XCҞ `H;Kx$K ``a Yh({-7X`)h>[P `[l!@,/Ye0: q@2`t\?-Yh(u qvhIq HH iʊK10:ɨHq\BɨIPh*JHq \TȊih*j\)jJHqPl誈30! V r{@ 78Y, j@omfPP&, S  6i0 3o0)j>)GiHf0AV f #+23@mH`FX p Hj(:b3@us@!QVX}PcEX\|a0V >-YUYEX$eWP|vHfԑTc=I%8\SU抠1 mȪH -f+f qUh\.V+4hV[4[+jO帀De€c4ߧp{[3@,v?Y`՚<\/ !ڮpF%5Yr\,w3hH@>~Z/ ͢  @4f\r_6?Y`㰠fmO~g6<\/ͫ6?\-ѰamnjO3k~YbVf@Irnp5-Pe+Efn \U#I  ::ӑ%<GTJKX@&Z? ~rx\ "EX[58JxU"7X ݤ vGio;JxC@v !@ |wbVhp0 v,!->(n( ?BpP `3*YTl*ū U %d@F3@Ub,*U JC#<`,:`yXF"`4}m[ :Lj!XXPh!` :Ll&'^@**J d< '!)FF@rJ:r de#"&@b Jg&'%'FDrrbJr\dp&/  ~#!k N 0(__a{ L  to Continue  REMAININ  DISK READ ONL  FIL  DISPLAYE  Insufficient memory JanFebMarApTT#=I%8\SU RIBFCNe4$d4hRLIFCNeuDd4RROFCNdE$d4RDFCNe%4d4p ha d2B jAVh}p n`8*ͣ : U i·FSD: :P/AFmB0up6g!/A6mZ.`;###`xP*(3#uD)YFr@,4 D#' ` jAVmvpC+f0llɨEXITLeDE%@RETHLRdtUDDU)ation drive  Unable to free drive  Insert next destination disk in drive:  Unable to open source file Unable to create destination file Unable to read source file Unable to write destination file Unable to close source file Unable to close destination file Unable to set attributes on source file Unable to set attributes on destination file Insufficient memory for copy  Non-privileged user Insufficient memory not found QPMQdDTd @ $@<PMQ';: !XL`Y@.`(n VmfV-Vm;Y" 03k8(`:וNYx ' Yͬ6k(H$Cp\۞ : vLa",Ͳ" V C%0m`| =[ @XCҞ `H;Kx$K ``a Yh({-7X`)h>[P `[l!@,/Ye0: q@2`t\?-Yh(u qvhIq HH iʊK10:ɨHq\BɨIPh*JHq \TȊih*j\)jJHqPl誈3`(G;Jx$3{h͠VfmraRݥ<`o6 H6H΂xv,m#`|j@ompK2##;Hx4d@ > @e!*@0G k( C#9;Hx$\A]>1"aP?Uc`Օ\AXuU@VUqiO@omaQV QPMTdDU$ @ $<PMT'p{[3@,v?Y`՚<\/ !ڮpF%5Yr\,w3hH@>~Z/ ͢  @4f\r_6?Y`㰠fmO~g6<\/ͫ6?\-ѰamnjO3k~YbVf@Irnp5-Pe+Efn \Am [A@f`m`K6m 0YC7fmb K6m2O,&}Qϊ%%~3kP '3O/Q d#rLz`l~`t0sۧq< f߀!3@XOJ1z C@f0KWYl#+2_!@K%n(o #?H"2D ` O@H$?2_!ƀLf &'2zl\)""#FF@rzre'*),F" e)!&q@"* bze " Dr:*ze|"er bg#)&"Fr*J fD #""Fpr"jAm [A@f`m`K6m 0YC7fmb K6m2O,&}Qϊ%%~3kP '3O/Q d#rLz`l~`t0sۧq< f߀!3@XOJ1z C@(n( ?BpP `3*YTl*ū U %d@F3@Ub,*U JC#<`,:`yXF"`4}m[ :Lj!XXPh!` :Ll&'^@**J d< '!)FF@rJ:r de#"&@b Jg&'%'FDrrbJr\dp&/  ~#!k N 0(__a{ L  to Continue  REMAININ  DISK READ ONL  FIL  DISPLAYE  Insufficient memory JanFebMarApTU$dh1MQIP5X`P h${wPdG|i:8i4fӰa,i^i40,ɉj *Hѕ` Pʩɉ)qP8/A6mZ.`;###`xP*(3#uD)YFr@,4 D#' ` jAVmvpC+f0llɨEXITLeDE%@RETHLRdtUDDU)ation drive  Unable to free drive  Insert next destination disk in drive:  Unable to open source file Unable to create destination file Unable to read source file Unable to write destination file Unable to close source file Unable to close destination file Unable to set attributes on source file Unable to set attributes on destination file Insufficient memory for copy  Non-privileged user Insufficient memory not found ӠU%(a=9LSTDR@MV@% h5K`e~[(q@95jAp 0Z,'Lڌ<mOs݇HPQv+T<f԰ɊjH@  JQ 8H$Cp\۞ : vLa",Ͳ" V C%0m`| =[ @XCҞ `H;Kx$K ``a Yh({-7X`)h>[P `[l!@,/Ye0: q@2`t\?-Yh(u qvhIq HH iʊK10:ɨHq\BɨIPh*JHq \TȊih*j\)jJHqPl誈3`(G;Jx$3{h͠VfmraRݥ<`o6 H6H΂xv,m#`|j@ompK2##;Hx4d@ > @e!*@0G k( C#9;Hx$\A]>1"aP?Uc`Օ\AXuU@VUqiO@omaQV SPd4DE$95 MMSSCKT@Q e545D8?INIT?S%@] )hn(YVP:Ġוm a05B7r4f&Y i1 9Y00[aYn( p#6,:@ ۈd(3k03l6߁2̴3,e9:b1F~ƃVU*rD9pH#,FͶ`L €,ʩ.3Le U@Dh <̵0F3h3l13m@6ف2̳0>;O.0jW@mFb0mf&YPekfZu ^'Y< p4|vYmbfpj0 6فmFb0meh[e4h`f`# 2ۚ~8Y - : qpDdž!@]0 WO"3kx|vD ͫL3j[gjjEy]P{$XnD4_ C`62Y8@ve@eFml29XR@lY|@f&-!L,!@ :8>;O*i vdq A10!3l@j@ m`@QidxQ*^=d6 %!՝K8_HcF_ 82Nq0e_ 4ldr0e.#z>$"F#@ @ `x̀SU2Ġ CKTDR@d4DLNKPOLd%54SIGNALe54EDSSAST@54$TSSBLODe544D̈ SSDID54H̸ SSSIDπ55548TICCNTeTĔ WAIT`x̀D9pH#,FͶ`L €,ʩ.3Le U@Dh <̵0F3h3l13m@6ف2̳0>;O.0jW@mFb0mf&YPekfZu ^'Y< p4|vYmbfpj0 6فmFb0meh[e4h`f`# 2ۚ~8Y - : qpDdž!@]0 WO"3kx|vD ͫL3j[gjjEy]P{$XnD4_ C`62Y8@ve@eFml29XR@lY|@f&-!L,!@ :8>;O*i vdq A10!3l@j@ m`@QidxQ*^=d6 %!՝K8_HcF_ 82Nq0e_ 4ldr0e.#z>$"F#@ @ `x̀TTT#=I%8\SU@0RCNOFFe$44MPMFCN h2ʦ*?,ChRh  Bq? FX^` \<?hdE*j2tdd!FF*"2tdt*(!FG22td*!FH22td#""FL*"*b d! FU2¢rf&YPekfZu ^'Y< p4|vYmbfpj0 6فmFb0meh[e4h`f`# 2ۚ~8Y - : qpDdž!@]0 WO"3kx|vD ͫL3j[gjjEy]P{$XnD4_ C`62Y8@ve@eFml29XR@lY|@f&-!L,!@ :8>;O*i vdq A10!3l@j@ m`@QidxQ*^=d6 %!՝K8_HcF_ 82Nq0e_ 4ldr0e.#z>$"F#@ @ `x̀TѓU#=I%8\SU拀 b0ʈɪA4p(P(@NETFWD EL_NETLOD EL`NETREQ ELabNETSVC ELcdSTDMASTRELefghijklSTDMASTRELmnopqrstSTDMASTREL uSTDSLAVEELvwxyz{|}STDSLAVEEL~STDSLAVXELSTDSLAVXELiMCDSS EL SLVRES ELSSBNK ELSSBOOT ELSSCKTDR ELSSLOAD ELSSLSTPARELSSNIT ELSSRTC ELSSSIO2 EL SSSIO4 ELSSSOM ELSSLAVBK4O U#=I%8\SU戠1 H2`=G4~\٠$X3@땢p6H: [3t'j@݄3h@nfpN#t%n0-pf@ 7NbR[6CGr{ ]`Bq]6 -YiL7_`3t]n Yd(?OwP O70 to Continue  REMAININ  DISK READ ONL  FIL  DISPLAYE  Insufficient memory JanFebMarApU#=I%8\SU1 ȪH` -f+f qh\.V+4hV4[ +jO帀je4XnXvGiH`~gj@ ;1,Vz@d3@©Z\di@@W+?q6-땢pX,pvm[/+jj; L@,eVmwx_@9\ m~[aø zn0fPpH#dsk4ZQ%Vʹ  @/jY"Ycݺ~L`P 6-Ӹ0nlm~[{D,:R)iQiȊH1"誈1 EɨHqfh1誉ɨQ ,誈jH1bHjJIӀable to create destination file Unable to read source file Unable to write destination file Unable to close source file Unable to close destination file Unable to set attributes on source file Unable to set attributes on destination file Insufficient memory for copy  Non-privileged user Insufficient memory not found UTc=I%8\SU GH(JQ ! HjH "誉ɨQp,ȉHi^ec7 , D6 ,hH$#+lPͿYez[btuV쁸ͩ qnnӸnf+f8r_+4\+v6-+f{՛g/ %~Ye0 !1O'rD er@"$;V -[-&[ݺ-&[$~7,^٠F?#t#`ڰna c _p#3  ;V~Yh 7Oe:r@ %ͺV.X/X8(7Ncd# D`jFe€[t>nڰdo+~b `?KX' _:-x+td~OӐ-q?N eQ@&m/ǥ`uo| ߧ2@O&#~k0F?(~"X`p!݀fސRprgF?N7 wO~o0#~w,~0%NHe{%p-+~X  `xr@ `~~!VYeۧ 7` 16C ~0h\.V+4hVℳ%WYx a+E[Akh-uܠ: [A@@ur u4 a 8 0Pt Z Pj-B@ zAK2f>p#ugYxFVmӹ#nGtc?7NG[6Ytl/3jxaͥ@,0 f Өźt3kh+!S6/nK6fVC4Y-qw0h+t0 8& -x(EmrD 6GA@Ɋ'[bB`d9<n 7OE,='o+C~@٠wѰ>[᠆3l(nF fՐV8#l 8$\>Yt#q'VmfVhnmOpNdf @ nq# Ktl.,hq-Cx@ٶ@pd7N#&Ktl.,m9`3jxn @\>YJ-O[<P@pCnAE`?,Ϳ%~3l+A6?HD 4` *,d~d7Yc%? D4dCmg P~k*ݐ8Y,ڴ !ӸdZ Ѱ?/6-AóN`y< A'ݐeZq31~GK~"# (# VB8H\A$P b0|dӸ!^n\ n1y:[B&2U#$%2SP,M9IF3 QU#2Qa5R3,QUc?Q53PS$`YIII5M2VՔT#0M-IJ2#1@YM9IB3 TU#4@Y15 2ѐӣ1@y1=32U 3yP3VUc7`ua%Q23U9y9Q]I2 T#" EUMR2Z VU#-Q3 P#: -QMR2 U#QJ3& U5QL3 БS<9Q1=3 Tѐӣ. M-MR2j P'@ U5J2z S#7]Q 2pB`d9<n 7OE,='o+C~@٠wѰ>[᠆3l(nF fՐV8#l 8$\>Yt#q'VmfVhnmOpNdf @ nq# Ktl.,hq-Cx@ٶ@pd7N#&Ktl.,m9`3jxn @\>YJ-O[<P@pCnAE`?,Ϳ%~3l+A6?HD 4` *,d~d7Yc%? D4dCmg P~k*ݐ8Y,ڴ !ӸdZ Ѱ?/6-AóN`y< A'ݐeZq31~GK~"# (# VB8H\A$P b0|dӸ!^n\ n1y:[B&2U#$%2SP,M9IF3 QU#2Qa5R3,QUc?Q53PS$`YIII5M2VՔT#0M-IJ2#1@YM9IB3 TU#4@Y15 2ѐӣ1@y1=32U 3yP3VUUՐ゠=I%8\SUҁ?INIT?d%5d8SLVFNSUMY 9%R:ՐTMY 5J: Ր"yLL d0`u;#A4`lh4|oh+uZg3m834r\/ e]F#dAm#hYesuZ_?OfYP nNYPnOYN,xYiL?.(?cB(5Y@Bo@??Wa@hF#Ye,v|6ߣ`g_uZ3 H $0 'Džx[bY\@v|n?L:ٴnʰ!fҰ3onmѱep |Zb-&:ܣxw8 ;V DBYoND"dh0*@0fg[4fۀg[Tf`V@tNtO~f`VmnJfmR0c6>_` -6?\há` r_V~G.Zf0+UhmH E·k4[n<?=YdF@7 %~X8ʤ`O~-%@wނ_: oA- [@ulނ[@* m-  ??? o???Oqͬv@`ͭv@88͠6m1j0fFf ',nNg,:~` fEZ;ߣ`QoA6\m[6W fGP?ߧp{[?Y`%N  s%~êGװv B1P<4B3@ ;v6/LxeO€+u|< h0+ YTͱη#bAV,f`W  dl0 q6ނX9lfF~ W8r#e0DfF @$VmI~Z,ڄaPm(`Fy4/Ѡ0~g,`Nr~G ma[F6ނ8_qY+E\,n W0fpE :ܢp2+=Y:_rY'`A ?2[Yet\fِf̘9D"@d;ٶF#g&muj 6Ã20#+31A\Vm;'Fsm~Mӹ~N';ߧhw27Ye3a߰mf[!6 T #o #~'q ;ߧYF?7w@F}CmV[ /v 2?(~b#63@(?7Nwӹ\F~n3tIrP;gܤ#?7N1w/ӹF~n3tOr;Dg#?7NͶ ū!-d#nqtW;ۧF?N6wOij~)mL#nqt`;ۧqF?6wO~5mʹ a^80^)202?~ _7p$3m3sP B ?\K!S+tfdMVnM1 jJ Iq 誊q 'ʊK1<ij*jPLi* Zk*hiqL5ihL)iQȈ)Q@<m**jPLȈ *0L$iʊK1\TɉhH`Nr~G ma[F6ނ8_qY+E\,n W0fpE :ܢp2+=Y:_rY'`A ?2[Yet\fِf̘9D"@d;ٶF#g&muj 6Ã20#+31A\Vm;'Fsm~Mӹ~N';ߧhw27Ye3a߰mf[!6 T #o #~'q ;ߧYF?7w@F}CmV[ /v 2?(~b#63@(?7Nwӹ\F~n3tIrP;gܤ#?7N1w/ӹF~n3tOr;Dg#?7NͶ ū!-d#nqtW;ۧF?N6wOij~)mL#nqt`;ۧqF?6wO~5mʹ a^80^)202?~ _7pГ#=I%8\SU1 MiH3@,+R@ PHCvhvR@0 >&83j@H"KR@ l" SxH O 83hh! * TP~M %&#=! (H"Ub) w>-\-BD6zYh]b3#$` P@XR@@ &@FRA0 :/i.HjgV]c #zux.~e$`8(єP3hh EP]  C$VPͦ" L;Z*PPԐ@Kr@P "7iH`e*QPI4* RphdF"SPՀ!S$u$+v@z ~2I2aYe0/nC@_A@5_a$~FY60 LNKPOLdDŕD8SETDRFtUDDSETDMA4E%ALLOCUDHLNKBEGTDTUNLINKDT8PSYSDSKU$49a;,8ef@F#fڰ5b!Y݄9]a0L&ͽ1FUt @%`-Qf[69[պ-!# e{ۦ!,8ͺ df01c`lY4+d##AFpf3kxtl3kŖGç,۲ͭkqͺ`b2_[Vmٶa^ٴ?Yi ͣkq`B2Y\N{64 8aO,8efܠ+tZzYe36fP&m:[ѰͧoYPnLg 3kF~VtFmpX+vbj]`@a V|Z hLmrOŧuZC3h@m8f0%ͧbͽ!tl3iŖGñ LnOV,f5!,\ͼ`Kq@6ٴ #Yiap&m;31ZWXd$qϋWyZ,V T͐@ 9,BNKNITSde$T$1=- 9.P 5#АSӟ `>|ڰaaP{W|.ӟ|fli ~^ >|{K?hfhY|=%J@ W{L,â >t4;L.%@` hvޢo}Z,KhhY1 4jjȨq HIq RJi*jQ i() :i)Ȩq8^ >|{K?hfhY|=%J@ WѓU UD$Q >TYPCODTSdE5D$9@`Z-KA%Р h`8Z-KD%p hd & 5`A j`8@Z@`0@Xַ & v54 l @@@!ݡ 0@M7l@ 0 AP 4u (%"G 8 @@!8y@(A ( @ Aa    pH a ȊjIq*  IQAQBQCQDQEQHQLQMbSPcPSWQIQR bBCbDEbHLbAFjIXDjIYdrNZqZrNCqPrPOrPEPRS5$AI=5ARLOADPQSTD4%9%RSELECTPQ EdU( 5NHLDECRV% @Z p@ @ @ @ @ @ @ @ @ @ -W¢ͤ 0U,0+H(:\lHdO6mew%j@@Nͫ@@ V&@6A@mZ@ mZpX/H9;JCdVC`ͲFKͯm|x^x<ͱ mdat81.z,i1 hq@ 0 q  )* hI @jH)@ H( hq`8j@@Nͫ@@ V&f̘9D"@d;ٶF#g&muj 6Ã20#+31A\Vm;'Fsm~Mӹ~N';ߧhw27Ye3a߰mf[!6 T #o #~'q ;ߧYF?7w@F}CmV[ /v 2?(~b#63@(?7Nwӹ\F~n3tIrP;gܤ#?7N1w/ӹF~n3tOr;Dg#?7NͶ ū!-d#nqtW;ۧF?N6wOij~)mL#nqt`;ۧqF?6wO~5mʹ a^80^)202?~ _7pT͓U d5D5dT8M%=Y(SUdEtI@X, A)*W B@X0  0 L> 0KL03L>;H3@h4f 3@h#g 9-9%R6Scj -Q%9 6Sk -Q%98ՑPhM-%96SiM-%96S#!]9%R6ӒU#h M%=9%R8SՑPA)*W B@X0  0 L> 0KL03L>;HP]  C$VPͦ" L;Z*PPԐ@Kr@P "7iH`e*QPI4* RphdF"SPՀ!S$u$+v@z ~2I2aO q@@)i[`0P`1Pm\@2O#,,CvmA@Du@sCL<(Fh0H 0 l2X4@[`0!: 0@a>4mb`1Pm@4Bͪ"Zë.Ә1ViY`]v[`Yph,'€-r:"`8`VvHMn)6<*U@n^JCd)P mX )`6Yq0,'€-r: +0UXB ;Kx&vҞ"a*@i/]!PvGq86 za`-1&8\yn:[GO q@@)i[`0P`1Pm\@2O#,,CvmA@Du@sCL<(Fh0H 0 l2X4@[`0!: 0@a>4mb`1Pm@4Bͪ"Zë.Ә1ViY`]v[`Yph,'€-r:"`8`VvHMn)6<*U@n^JCd)P mX )`6Yq0,'€-r: +0UXB ;Kx&vҞ"a*@i/]!PvGq86 za`-1&8\yn:[GO q@@)i[`0P`1Pm\@2O#,,CvmA@Du@sCL<(Fh0H 0 l2X4@[`0!: 0@a>4mb`1Pm@4Bͪ"Zë.Ә1ViY`]v[`Yph,'€-r:"`8`VvHMn)6<*U@n^JCd)P mX )`6Yq0,'€-r: +0UXB ;Kx&vҞ"a*@i/]!PvGq86 za`-1&8\yn:[G! CA o.ӟ|fliӀ }^ >}{K>fhY=p%iY/3/d$H(INTNITe%D45(SELBNKȀe45(SSISRr! vo;VL>! CA o馐0 q  )* hI @jH)@ H( hq`8j@@Nͫ@@ V&Г U54DHMMM%SSSSLГ e54$T@\dc|iݥ{ 0 0R T@@>p4#L0> 4/ `>4J]1 _2‡f@.FvL ( Z`imrՃ/2p uEnj&*`DH 0l>L 60:]Yo}I0%pSSBLENe54$HSSDIDU554HXSSSSL0R T@@>p4#L0> 4/ `>4GEN48 O " %9%PCKTIN@TTԠd4DE$ @\\00H 0xSU lf!|(b1A&Zy[@ bp@8ՓCkYPe84+!0L&! !6YP }ͧk67؇3i`}͒9>4Ͱ ZQe8V- { 06T# -QI>S#`%9Q9%R3$RS#. %9QMQ.3*TԖU#a95 -R3QӐS#MM%MJ2RU'p@8ՓCkYPe84+!0L&! !6YP }ͧk67؇3i`}͒9>4Q e54HMQIRP5'y@ Y +kq*Y^Aji( 8Q2040 AC[STDSPOOLELHS6SGBDMAENTRK096D RTM501 ACdTM502 ACeQ2020 ELS6DST58FEL]TM503 ACfQ2020 ELFORMAT5 M8LSTPAR ELX! U$dh1MQIP5X`P h${wPdGX|i]:8i4fӰa ,iU^ i40,ɉj *Hѕ` Pʩɉ)qP8S6RTC EL_HASH M BDATE M  STDSINGLEL/S6SGB8 BAK TӒU edT8M%=Y(SUdEtH%9Q9%RP,K% 8%9%P^>4 @ 3@h{ 0 0R ^9< +x^d <^e Ii*P ij)Q 2)ʉ* Ji*  i)ȨsNITe%D45(SELBNKȀe45(SSISRr! vo;VL>! CA o馐0 q  )* hI @jH)@ H( hq`8j@@Nͫ@@ V&Tԕe%D45(@?INIT?ӒU% Rp pZ9jD8h~GQ3@ Ev SU(0DLYTICdDHINTSPdE5D(ISRXITe%D45(RTCNITe%D54T9}I0%pSSBLENe54$HSSDIDU554HXSSSSL0R T@@>p4#L0> 4/ `>4GEN48 O S̠e3%5L% Mj(SUe4HM%=%MJSERIALQ`])p1H)1x/SU2" x]1<n՘3@`Pao!abH`Dl@ʴ@zʻUfg|<;Ix$U;XdIn X$b,*U@n^JCd)p$C טEX#uKÀiH`,<@dq C0<-em\F@9+l2-0i`70:b  L>O q@@)i[`0P`1Pm\@2O#,,CvmA@Du@sCL<(Fh0H 0 l2X4@[`0!: 0@a>4mb`1Pm@4Bͪ"Zë.Ә1ViY `]v[`Yph,'€-r@@ `P,*  ݥ&ô@X#uK`iH`,< `ͫAl#`!&eYPeYuoW"`b VvMn)6u9LȠg"-WO q@^n˴d'˴e&[Zd2ـALLOCdD4(COMDRVπԔE5hINTSTKS0IBSZ e3%5SERIALe4t@SIOISRe4HXSIOVECe4e$U8UNLINKtIyCu`x,Zadphn(q0>u9LȠg"-WO q@^n˴d|<;Ix$U;XdIn X$b,*U@n^JCd)p$C טEX#uKÀiH`,<@dq C0<-em\F@9+l2-0i`70:b  L>O q@@)i[`0P`1Pm\@2O#,,CvmA@Du@sCL<(Fh0H 0 l2X4@[`0!: 0@a>4mb`1Pm@4Bͪ"Zë.Ә1ViY `]v[`Yph,'€-r@@ `P,*  ݥ&ô@X#uK`iH`,< `ͫAl#`!&eYPeYuoW"`b VvMn)6u9LȠg"-WO q@^n˴d"S e3%5L% MjS2IBSZP֢%9%PSIONITSTԠe4U$ =5IZP5Pa a` ,bb! $`l ?INIT?@˺h@{P v=Vb]1jn՘3@`Pao1abV3f5cp9doOdPe H`Dl@ʥ`#Azʴ#U ~R <;Ix$U봗Xv* %@VR<,Yx[ot ,;`PHnVIx ) El pp4 3^bD|Z"b*@i/]!Pv!ĀA'f5*`Ũ>+cV9?bf+v%R%iO>"z4m 3^b|ZTe *ɀi/']!Pv!AYf@4Am\F@9+l2-0`6 d0(n`C A m\F@9+l2-0``=d(`C P D'@YaP!Am\A@Du@@sCL<`F3@apAmA@Du@sCL<(F3n0 ` ":b ! dFX#mCt |i`0Pe1Pm@2O#,LZ! :fL sVd`L!LC` 0l2X@[`70!:Ġ 03l0@ 0kl2X@[`0!: 0`3m`#0 0{l2Y`@[`0!: 0p3n/0 @fҠ6mf@6mApX/iݤGd670 .\@XE  @kwiI)V8b+v%R%iOpX3l aFCf=~km?T 5Ȁ*,@!XUD[JMiO Fa[.ҐY(;Jxx#8g 65Gd6~70 .\lρDV7c"`f-Rl;JxU"7X ݤj v"ASz! <Q;!YOevZ~@W r  )@Tdio*ғaSʀqY0V%K0JҞP`Yf@Œ4dBL: x"!!!0 ys煸 n`yC X,P`P P$|s g@ eE&[p8k(+yv_lp7P_!@iA^- L,e1 Y*i Q %)ʊj<Xɉj  `f)(JkQ0 dLfi(JkQ i()Ѐ<i)* ViHq<^)*E&[p8k(+yv_lp7P_!@iA^- L,e1 Y*i QX@[`0!: 0`3m`#0 0{l2Y`@[`0!: 0p3n/0 @fҠ6mf@6mApX/iݤGd670 .\@XE  @kwiI)V8b+v%R%iOpX3l aFCf=~km?T 5Ȁ*,@!XUD[JMiO Fa[.ҐY(;Jxx#8g 65Gd6~70 .\lρDV7c"`f-Rl;JxU"7X ݤj v"ASz! <Q;!YOevZ~@W r  )@Tdio*ғaSʀqY0V%K0JҞP`Yf@Œ4dBL: x"!!!0 ys煸 n`yC X,P`P P$|s g@ eE&[p8k(+yv_lp7P_!@iA^- L,e1 Y*i Q %)ʊj<Xɉj  `f)(JkQ0 dLfi(JkQ i()Ѐ<i)* ViTԔ`eU5%4B8 qd &sIl#@ )NSl0\ @ @ @ $x*)Q2040 AC[STDSPOOLELHS6SGBDMAENTRK096D RTM501 ACdTM502 ACeQ2020 ELS6DST58FEL]TM503 ACfQ2020 ELFORMAT5 M8LSTPAR ELXQ#=I%8\SU@0pLDRDMSDd%ALLOCdDT8MEMTOPe44DLOADERHG$h,b\R"CX $bE)$p`3"R yq 6>`tl;i8V@YtYi6m`ʸ,U!{ 3j`D: ۜ E3@mCo(+H;Nx#vm|`:@ q@|/ͤb6QLڐͮC `=P [6Xny+|sm] 8 fԀ6m'Y0fw6Y#$#MmdoGAjt-#@(Aj ڰdnp4C7'#It G#@S7s  `n1c6Yrnpͯ`lۜpk6B 6Āmdnp5kpHuRu^w;Eb,`Ր͹`S4`|>(0}O,c p *0n)82ͧ@C4 [ PX@ 0qGXn @K~ /U #>9Q!f5s[JNmf0h) CK6 m ,; C|@83@Vf6h* ^VmfͶmV*Ũ) `pmTF=,m?WY`6hͧcvKͿC#6.HW DQ#mpQC@vݒ!ޯ[JLx qA<j ٴT xpAN#=yU@0peQ@mf5Ї ͹j0 #r\{.ŒBvml22d " 3l"pc0}O+q d1 dn>Ax=p.`{81a6\lۨdO6m[ŒjA6mRpX,+Us#6\- $O)H%2S, X3@Bf 2]bkZ. ʊK1`<ɪh1p``eʊjȑ@ɪhq``i7ɪh,``mɪh,``qɪh1,`baɪh&1,`be ȇLjJ IqLI)*pT゠=I%8\SU@ ``c+ɪhQӐ ``gEɪh@ ``kaɪh ``oɪh ``sɪh&0 `bcɪh&RhF0 &r7yi7"yLt C 9N#ʁ͠ q 3Φ#%K Sn3,tKio9>Y,ڌn7 #djdLy (, 6&CI 3%\CzͰz2,,MSc:L)-7cIfـ`o: yhLyf@`a2 Sidr2b""jӕc=I%8\SU柠2 OCNTRYdDE%0XCNTRYeDE%8ERRXIT, ҙr@ uNfh60Ht.nFguZs-YiL" pf9EXr@pkX:ۧAuN' 4pN,eDF,`Kt5nϖ,fas0nor3Q@t4n-ҰɺNH\ẽ8ۧt1nMӨͺt2[јP 7F4l7O,f6, _@CL_]h0$0 &@6@A%Y|Z!wdD4E5SETDR1d4ED GETHLRdtUDDU(0RETHLRdTE5xNETREQdd4DT3FCNd4ɘCLOFCN4d4ɸ COFCN$4d4RCOFCNd4 DCFCN$$d4SIBFCN$d48CIBFCN54d4XRVNFCN$E4d4xSELFCNdd4ʘ CFFCN4ddd4ʸSNFFCNDdd4RSFFCNu4dd4 MFFCN$dd4RLIFCN$4Dd48 SDFCNuDd4hRROFCN4dd4ˈDPBFCN5%Td4˨RRFFCNu$dd4CFSFCN5%$d4 RDFCNÀĵ$d4HFRRFCNŀ544d4xDFSFCNȀ4d4̘DT1FCNʀEC$d4RSNFCǸ5$4d4SRTFCNЀ$4d4PBLFCNҀ$4d48CTPFCNԀEd4X AMFCNրDd4x SMFCN؀$d4͘SESFCNڀ4U$d4͸SDTFCN܀$EDd4RDMFCNހ$Td4SCFFCNtd4 LFFCNDdd48ALDFCN44d4XRAVFCN$Ed4xSRSFCNDd4ΘSBPFCN$%d4θLFDFCNdd$d4SRPFCNTd4SRDFCNdd4FLBFCN$4d4HCCSFCN44d4hCCOFCN44$d4ψRCBFCN44d4ϨRMCFCNUDd4RDDFCN4$d4SQԣ=I%8\SU ROVECTTdd4HOPNFILT4dd4CLSFILe4ddd4SNFFCNDdd4DELFIL؀%4dd4WSFFCNTdd4RFFCN4dd4&RDRANDe%$dd4&WRRANDeu$dd4&CKLERRd4UH.CFSFCNe5%$d4@5LFFCNe$dd4@6RDPFCNe5%4d4x>RDMFCN$DDd4>CQMCOMh͡ 0- n(3@mT Y(nfN e~4[l<z͢%- nf s%3@ͯV,FfT3@h`3j,' l!b@ ݄7O,(7F6[rͥ x ڈ-@b: 4f x`nͶ 1?[sc6+Ǭmf :ٷF?A0,X:`F~2V+4f0 w\{63h Pj Yiͯ@C6Yã,>24zl8bͧ.VhYh"/Q9[Y4b6( z@%N\1pf@ t3[d@, p` 6-h`3i &m[QAY@ n i|ٷxFhhzn#ŇVY#VmA`O5ͣA2ͺ@!KN@ n£Lnf !|86LY QAY@ n &m6؀@;f&h٠4[Lڜ4yWp&mX[ͨ۠ nĮ Kq9ovX b@fûd62Xu |@na h~F#0m ٵF_3o6-m[L@f9A@-|}m0@a ڬ>6ۮͻk6 zfѐ7k 66ƀk 聳@hfp0,X3hC*聳i( ~<=Y&ͺn0,4?q@=o x​4\.Vhͤ͢ qF=1Yx8~(3@zw<8Yna&f%A!%ͯ@C6Y ç`l>2 eT3nͨb00- ,^͡L;;+69Y F.JnkqUBm_p#66"PfEQQ]݅jA `v;ٴ~4ٷD ~4٠tg;Y r@v6n!w4c#?໘>G?}'~Cu<"O F#< Vm`1͹m8gxͼͧf@@f0Fͻ쫄ͽ(9ۧs;thn-Ͳ[63o+6Ӹn(7Yept?⁣tl@3l8VͰ`P2?6€2VZ-mf6E&[;cKthnPn"``^)gi0aξ[th_,F?WÀs$;bthgf@CE b2s G=C;`y}>"ٴFqgvK f PU3@ b7T@f{EsNC&mf EwOͭpMf 3l3tn-Yw7Ov^?qta`fbARrOhhW@5z|,=M祡E')YY1=A:3^ V#= y B3QUc&`=a%R2l+Q I2Qc0@QL2SУ=`IM 2ё% 1MaR33 MQ3hU 8P3U #"AMQ9>3U $MQ R3;92 3MI!9%R2 UPc#Q R2DU  AQ9>2PU #&Q:3UPc>y1=-%22zS)@u -I>2UP%a]I%Q3 UQc2`9Q :3,TВU#'@I%22 UPc;`9I%>2p UУ/ II2ԑQ6`5-aR28IM UJ3 UԔP9YM]aR2 Uc?YQ2,QU#*yI<2\Uѐc1yQ:3*U8 Qa63c1MYII:3> TԔ7 -]I1.2 U̐c+%9 II:3| #899B3. U>Q N2 #)`M1M.2 UPc/QY23 UP%IQ!1J2QVUc:QaJ3 SЕ=@ -=A92H#%M-5J2P'Q1M2T(1Y9%R2UPc.Y9>3Pє#2 I B3^U:9928gST#=I%8\SU2 DLSTBLdUHOPNEXT4UPDFCBUD4CLSEXTր5$HFNDDDEdDDXFNDNDEddDDT8GETDCT4UDD5HGETDDN4UDDDCHKHDStUDDThGETDENu$DDXxRDREC$E$T48WRRECeu%$T48.CLROTEdD8.GETBLK4Td4((.SELDSKe$U4$H6GETABAd45dx6CKSPFId4h>ALVNITdtUDD8FGETLSAT4E$ECKFROdtUD(FGETAVLeU$DPFADVDNOe4dTDFGETABN44NGETDXAtUDUNGETBLMtUD(NGETDNO4UDDNGETBKS?mKl3@m``3mx0f ڮ#>-DVm[ Lͭn7 *MA@`Xڰ?M^ ݪ0D$?&h~zhK|8b1͵l8~ +ެf`a@+63l 6V6h @8zkpŒOf m& b;47 HR)> DcAH@ri-|#7( 6 rG;t6my ݥ'sjHHrBa꽒f0i|>b1 a0^f7+6nvb0-~ ݪ&#Ճfܠ{,fmXmfݠnͩa6Y! BKTA.Ճ6Yx%_0LF#Pͨ`,ͳK6րl ,nK4n 6 `f06@\[c669Y R-Ӊͫ,<;Lx(1mCu_H 2aTB6A`ʼ b P+ui@< L/n`/ ؠcD3Tf0Z![6o6lf6m u!\Y X(r1@m @5z@CP ٷPf`{BOx"LFe!x2~9rl& 3jK6Ye&O(|ӹw!2[cX~a԰ ӘO- V"2Y(!͹?@ m2tDdMV阌|R :[B3%~s 8cHE,,fР xn)mi ?X2c~n-Kͱl0bY0 7MvP?\4:CEn/f,Rn@&mW eaXuu6u pm_n@mWY/mYPY,&  |+,`3j(G KrX8b@XcFm? S"Xͩ 4@ biH#+ DP a06Y hYofm?3n(pe{uZ/2@f0F[^f`m`a^FmKm^Fha^F,fPV.f`a%dTzVm`P D<,E@[6kHʷv0jl,62áR UfӰf x 8n6mj=-XD>-D Z"HaӅRBE#͢Q+p\7O6maU_AD8D#9mYiWB8@  .D+URAZ,& H-ݥ"!4BO @ ڰuh:ۧACu)_3k+u)[7NbFJ;.m#(fmHS4Ve%cAḬ6i0JͯX, mI A%PK6Ku[C7Yes4F? Ym6b;ۧ4[Ѱ?/4[ņ7O6jYjX0g Eb\\ C,3dkHn)6\%cXl>|LF@ n vAr,:}3kK6On`|, @p;G̀x0 [A@ }ٶ a ŀrl)n g廅nG ^=dZVm!F?A| p`p rc &~AH4hY$BIHS%hPB݀ͩa mfܠv6F6#A͵lz63nC61Y(ڶͰ!(Ɋ͵lۺfؠe^BEnm;n0xG?#| Ilfn( 6K:͢ǵ͵A+6Q@5y!DØ"O06rm@a͡A K63kD P>,~9E[6DjU\T0k!H2eK60 qb ۺͬ`b5xo{!d ݒ'ۤ`,|eadۧr tBdnhC6-ݥ&K6 [ݤ!sBkwiIn"`6BdjH\\!. ] /mI 0)ff`Vm?9jf00d۬qـf|>ٵ$$(,m#?ǯtGvKtAnLm q@-~6?#6 ۧR tBdM ɌكTtUDdPLOKFILdtUE3`NGETFXÀe$TdCPYFCBdtUE3$NGETABSdtUE4dʨCQMCOMd%Tdu(˘BUFMGNtUD5$`&GETRCAdtUEE(&UPDAFPd4d4%x.GETDMAtUDcT-GETFD4E%d.DSKERRdU%%Hp6SELDRVd44%hʸFROVECTSc=I%8\SU捠2 LOGUSRd4HRDSFCNe4Td4xRCDFCNU4Dd4SRUFCNe544d4DFSFCNe4U4d48SERFCNdtd4SCFFCNdE4U%(SAVRRNe4e%$88RESRRNd5%$INCRRCTtUDdHpGETSFAtUDcTGETFXAtUE3XGETS2AtUE$4GETCRAtUD%8GET78F4UCshGET78D4UCsHGET78C4UCs9p|- 0~Ӹ?X`4a@b0nG@n Dnˌxb @[GWQ㭚g!ݒ͢ Өݺt2YxuNKuZ;-[Ѹ@,zӹ-;-Yi\eYi: ӹt7NHt[dJ1!=qMvp|ZK6Dd##1\KE8 " fPр#0cFK4?9=x7OKu[% P%~dAH" p0D@fр%~9鸘3Y-ө1t&[stOdNОn ұE9"&22UPc&a%Q22UT)aQ9QIf2UPc5@MeMM.3fQVUc8`M-MR3VU#' 5QpQQԣ=I%8\SU@BUFSIZd%Te8MEMBLLd$ԔHBUFMGRԀd%Tdt@SBPFCNe$%d4FFBFCNd4$5Ip  0X 3j8eaZRl[ux~ .2njD f q)!#`lHFqLt-T&Xn)X!t-Gi/;HC+W\,H~݇@XeX@/QXu ;t$PNHnČڲ6L>ñ-n 7YbX7 a+u^)7NFJԫ nH: VC6*-p[JBcOAGQV fFmS?^UTVb2!` wiI r3iX# 3h#62€6Y|Ĵl*ͬ@0fmۣ`-TV!eV ,6nD@!uNI^J†,DF]`ڰnDa@9So[t*/t$nMӸLQ6HwOS~cӒU#A ::SM-5J:UC ! H*`i| a` ?A[+`^\ -f +D;V Yh(o 6怷O4ͻ-Ӹnn@@ e~Nb3^7Jn 4;` ~ CC*ƀYWl'a-~ _U8eC`tnpf@mnmҰq~H +2,6z7M6(2ς |:ؠnv݀Aow@cXm!eҐ ;mp]f [tnAMӀ-u7N69]mpF]mpMf -ݥ! n@Ӡ]Y0`7M'`H$M wiIu7Nvmv p f 2;tnҰY^)4|nnAYCͱ Hz,+,({7NnN`zpd#+b+6|n Oͭ+qC<`~NBt n.,X2[` ~ 9Cŀ!ʽ~`mӸ#+:-1VZW0<qdhc=9M-MR2XUT)a%Q2 #6`9M-IJ3zTU'#=I%8\SU .?F2"Z" ӑS#=I%8\SU@0CPMVERd4d4(RVNFCNdECd4(DT2FCNdEC4d4 SRCFCNe$4d4ROUFCNdUDd4p7Ye$T7Nd: 0eaT#f0L  8T 0)G)e@#ò .^g=,mf  D0turf@ɛq34a`͸ v@.X : v%1f0x\@Ƞ":"tYwr˘ a Yd(Y< < nkv@_  d2#2ӀTUDPGETDERThATNCHRd4D5HDOCONIdD$TRESCHR%D4(PERRXIT%D4(ȘECOCHRTd4pLSTOUT45Iӕ#=I%8\SU  *i Q@ (Ji Q`  Ji Q .0 ƀ@2zr" #=I%8\SU`TICCNTd0DPFCNTDTWAITdDŕD8SIGNALd5%$8RESUMEd5%HxGETTOS00a d  ^Tj] ! wiHPueaT#L1t8OwhUV-+`@Հ!@E{%S@! @Vme`#"%{ V`KM`Ld&'%"FA2:*"*e&'TP=I%8\SU2 INTSPdE5DDEXLATe4tpDECOUTeTĔLNKENDÀd$Tx DMSTD4UPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TDTWAITdDŕD8SIGNALd5%$8RESUMEd5%HxGETTOS00a d  ^Tj] ! wiHPueaT#L1t8OwhUV-+`@Հ!@E{%S@! @Vme`#"%{ V`K#Tԣ=I%8\SU@r?PAGE?cCMEMRES dE44hUSRSAVQO %=M R>Г`CLCLNITd4E% LTNTRYd4E%HLCLERRet$5HLCLMET A@ B,?PAGE?000 0 000(0x09p8008  Ah+d@i 2And `@f@pQP_^R| %PP oy].G,t2ǀ2٠PE`00Y" H)#O)"X !h:#X )Ce @I7$~/ph" ێ%`v0,`@m*z݅z@^-Vv0%n(U\ʠ C,"ͪ q@(u@ 3@hd,=hPD< #@yA!FUW`D{?Exuf$x2@ {Zdin&a<LV6΀Z, :KE+  dl FEfK4Zq@z(?*f`݅_@c@H\ @ tnҞ <a Ko48Hl hY"|ZӞn !WiPFڀ`C6DqP0q :)fP0p1b@\(5\ͬnm'0mepi8G3k(Df%eR8?8/86ͳ,`@3oD{@ Vf!? nĬln 3@3o 4Gm*0@ @!"<DCޠ6+3i@4[JL۔V!X(E -1ɘ@< m*f6ʁ ڮXL3mX m` Vrgq2#na*b7iI>H;Kx8Rd:ܬސ*@ū(t`jʽ .n@!;6]6mE ڊ 1R>'+U_ ` K)*@  iI*<ʊK1 eLȊj (Q` *i Q iiʑ hIqk*hiq0HihIjʊjȑ j Jѝp* Qpɪhё, *I,eHIq,ih**,jHq,H*j < h q<8T゠=I%8\SU柠@MSG001d4s(MSG003d4sHMSG005(d4shLCLDESh$$a 1ͦ $!ͦ 7΂1n2 &f4&Sq@m2M#Ȑo7 N#Il2̦Ae9 g9Mm4'C)@d:DCxn9LcIe7)rI3#(@Ͷ@tPf6=YŚV"[Ed7O @VxY :hqP Qiꪑ ij ii1 8#=I%8\SU` * Q ._QS#=I%8\SU敀P?INIT?d4$TCLSCHRd44(SRHDRVSU 1 9%R:QS#`YA9 :;lӣyM 1 ::H UБ@ 1I 1 :t U` - MR\.@d /`LlE'vL"$ږͥ Lچ:z_%0xi61,`:@ `ͳ`8⁸ͱ4ja0ne1 ?Y< v0` 4AFmO /D8$6-Gio5AmKpvPOb, ʹ 0fܰVcmeViO@ʨ"J~ F6'Ј 3jX-a)fٵ<xʮ# <!.l fٶ Em%6oͽ"0Df`*@ 8g͡C=^=Zyf&)a+[#Rͳ#+*@ 0}hŀ@ u-@ǫ6 Ƞ 2À ; ڬچ]ڊͨ`M "+X$ͥ Lۖ ͧ@L0U8 1>/3iśL!@BjǠ6Xdd~#q F@, Y| /H݀#`!@y@`4/3orl3lwN @  rmp fԐ1PDmf P áAC@6mIE @f`1X@$5)Y0uahD80;V!`=~St0  1GXd〺pC(9 XdxA0G D`k (#,:`z2`3k0`Ps!*00aݒ 2" \ǖm[^VmT>-Dt1nA7 Œ6ٶ f00ll0 l l (``h.!? ìw -n#1~` t@Uifؠ3P/?-Vm:ppu# < v L JxhAxHCK63lx#!Ql0fذAAfٰA@ 0 +70VF#X #`y[7X;V Af  2Yl! XVvlV>-Y#`,ɌT8ɐ&UNLINKt$5HxUSRSAVE44h`MSG00254E4̨MSG0034sH͈MSG005߀4sHLCLERRU$48ʈCINTRYtUDDU(RETHLRTUDɰ&DEALOCd$TyUU#=I%8\SU PCOLDFNet$dLDCOLD!dEt$COLDLDet$HALDFCNdaT)%Rr HS*PZ:@ v@G3iClfH"2̴0eh @Hu쀎!f{ Cl{%A4A{6-"? V-e1 &ihhJj 8UU゠=I%8\SUAUTUSRdUDypZ:@ i)ʊK3UՐ゠=I%8\SUҁ?INIT?d%5d8SLVFNSUMY 9%R:ՐTMY 5J: Ր"yLL d0`u;#A4`lh4|oh+uZg3m834r\/ e]F#dAm#hYesuZ_?OfYP nNYPnOYN,xYiL?.(?cB(5Y@Bo@??Wa@hF#Ye,v|6ߣ`g_uZ3 H $0 'Džx[bY\@v|n?L:ٴnʰ!fҰ3onmѱep |Zb-&:ܣxw8 ;V DBYoND"dh0*@0fg[4fۀg[Tf`V@tNtO~f`VmnJfmR0c6>_` -6?\há` r_V~G.Zf0+UhmH E·k4[n<?=YdF@7 %~X8ʤ`O~-%@wނ_: oA- [@ulނ[@* m-  ??? o???Oqͬv@`ͭv@88͠6m1j0fFf ',nNg,:~` fEZ;ߣ`QoA6\m[6W fGP?ߧp{[?Y`%N  s%~êGװv B1P<4B3@ ;v6/LxeO€+u|< h0+ YTͱη#bAV,f`W  dl0 q6ނX9lfF~ W8r#e0DfF @$VmI~Z,ڄaPm(`Fy4/Ѡ0~g,`Nr~G ma[F6ނ8_qY+E\,n W0fpE :ܢp2+=Y:_rY'`A ?2[Yet\fِf̘9D"@d;ٶF#g&muj 6Ã20#+31A\Vm;'Fsm~Mӹ~N';ߧhw27Ye3a߰mf[!6 T #o #~'q ;ߧYF?7w@F}CmV[ /v 2?(~b#63@(?7Nwӹ\F~n3tIrP;gܤ#?7N1w/ӹF~n3tOr;Dg#?7NͶ ū!-d#nqtW;ۧF?N6wOij~)mL#nqt`;ۧqF?6wO~5mʹ a^80^)202?~ _7p$3m3sP B ?\K!S+tfdMVnM1 jJ Iq 誊q 'ʊK1<ij*jPLi* Zk*hiqL5ihL)iQȈ)Q@<m**jPLȈ *0L$iʊK1\TɉhH#=I%8\SU@rP?INIT?dE5DSPFCBSUMA9%R;ԑӣ`YEA :\@ @ F(%K 6Q qf! Wgq8]*g!FrD6Fs חd@4f8͠ ۘ8͡ '$ $\p63@(F#ecPfݰ#!'t@??N#F 6ͮ ,ڒ͡c`65D dlf D Fwٴ `P,~ m ٷP QYLB3@m?E6mIf@&m=C vmfЀ10f@&8B͢ *!#AF4cFmfڰmuڈ~+q@fhC63m 6:ٵTXt`X@E8iX$>Am [A@f`m`K6m 0YC7fmb K6m2O,&}Qϊ%%~3kP '3O/Q d#rLz`l~`t0sۧq< f߀!3@XOJ1z C@f0KWYl#+2_!@K%n(o #?H"2D ` O@H$?2_!ƀLf &'2zl\)""#FF@rzre'*),F" e)!&q@"* bze " Dr:*ze|"er bg#)&"Fr*J fD #""Fpr"jU% /`Ր 0Z@BDfנ@{`0n( 4vfo>,, ;KxHEQ ^"@A> Of] 3iyU ioLà2 !!lɍd5%$8˨OTNTRYd44%hDSKASTÀTE5EIӕc=I%8\SU柠2 OCNTRYdDE%0XCNTRYeDE%8ERRXIT, ҙr@ uNfh60Ht.nFguZs-YiL" pf9EXr@pkX:ۧAuN' 4pN,eDF,`Kt5nϖ,fas0nor3Q@t4n-ҰNH\ẽ8ۧt1nMӨͺt2[јP 7F4l7O,f6, _@CL_]h0$0 &@6@A%Y|Z!wdD4E5SETDR1d4ED GETHLRdtUDDU(0RETHLRdTE5xNETREQdd4DT3FCNd4ɘCLOFCN4d4ɸ COFCN$4d4RCOFCNd4 DCFCN$$d4SIBFCN$d48CIBFCN54d4XRVNFCN$E4d4xSELFCNdd4ʘ CFFCN4ddd4ʸSNFFCNDdd4RSFFCNu4dd4 MFFCN$dd4RLIFCN$4Dd48 SDFCNuDd4hRROFCN4dd4ˈDPBFCN5%Td4˨RRFFCNu$dd4CFSFCN5%$d4 RDFCNÀĵ$d4HFRRFCNŀ544d4xDFSFCNȀ4d4̘DT1FCNʀEC$d4RSNFCǸ5$4d4SRTFCNЀ$4d4PBLFCNҀ$4d48CTPFCNԀEd4X AMFCNրDd4x SMFCN؀$d4͘SESFCNڀ4U$d4͸SDTFCN܀$EDd4RDMFCNހ$Td4SCFFCNtd4 LFFCNDdd48ALDFCN44d4XRAVFCN$Ed4xSRSFCNDd4ΘSBPFCN$%d4θLFDFCNdd$d4SRPFCNTd4SRDFCNdd4FLBFCN$4d4HCCSFCN44d4hCCOFCN44$d4ψRCBFCN44d4ϨRMCFCNUDd4RDDFCN4$d4SQԣ=I%8\SU ROVECTTdd4HOPNFILT4dd4CLSFILe4ddd4SNFFCNDdd4DELFIL؀%4dd4WSFFCNTdd4RFFCN4dd4&RDRANDe%$dd4&WRRANDeu$dd4&CKLERRd4UH.CFSFCNe5%$d4@5LFFCNe$dd4@6RDPFCNe5%4d4x>RDMFCN$DDd4>CQMCOMh͡ 0- n(3@mT Y(nfN e~4[l<z͢%- nf s%3@ͯV,FfT3@h`3j,' l!b@ ݄7O,(7F6[rͥ x ڈ-@b: 4f x`nͶ 1?[sc6+Ǭmf :ٷF?A0,X:`F~2V+4f0 w\{63h Pj Yiͯ@C6Yã,>24zl8bͧ.VhYh"/Q9[Y4b6( z@%N\1pf@ t3[d@, p` 6-h`3i &m[QAY@ n i|ٷxFhhzn#ŇVY#VmA`O5ͣA2ͺ@!KN@ n£Lnf !|86LY QAY@ n &m6؀@;f&h٠4[Lڜ4yWp&mX[ͨ۠ nĮ Kq9ovX b@fûd62Xu |@na h~F#0m ٵF_3o6-m[L@f9A@-|}m0@a ڬ>6ۮͻk6 zfѐ7k 66ƀk 聳@hfp0,X3hC*聳i( ~<=Y&ͺn0,4?q@=o x​4\.Vhͤ͢ qF=1Yx8~(3@zw<8Yna&f%A!%ͯ@C6Y ç`l>2 eT3nͨb00- ,^͡L;;+69Y F.JnkqUBm_p#66"PfEQQ]݅jA `v;ٴ~4ٷD ~4٠tg;Y r@v6n!w4c#?໘>G?}'~Cu<"O F#< Vm`1͹m8gxͼͧf@@f0Fͻ쫄ͽ(9ۧs;thn-Ͳ[63o+6Ӹn(7Yept?⁣tl@3l8VͰ`P2?6€2VZ-mf6E&[;cKthnPn"``^)gi0aξ[th_,F?WÀs$;bthgf@CE b2s G=C;`y}>"ٴFqgvK f PU3@ b7T@f{EsNC&mf EwOͭpMf 3l3tn-Yw7Ov^?qta`fbARrOhhW@5z|,=M祡E')YY1=A:3^ V#= y B3QUc&`=a%R2l+Q I2Qc0@QL2SУ=`IM 2ё% 1MaR33 MQ3hU 8P3U #"AMQ9>3U $MQ R3;92 3MI!9%R2 UPc#Q R2DU  AQ9>2PU #&Q:3UPc>y1=-%22zS)@u -I>2UP%a]I%Q3 UQc2`9Q :3,TВU#'@I%22 UPc;`9I%>2p UУ/ II2ԑQ6`5-aR28IM UJ3 UԔP9YM]aR2 Uc?YQ2,QU#*yI<2\Uѐc1yQ:3*U8 Qa63c1MYII:3> TԔ7 -]I1.2 U̐c+%9 II:3| #899B3. U>Q N2 #)`M1M.2 UPc/QY23 UP%IQ!1J2QVUc:QaJ3 SЕ=@ -=A92H#%M-5J2P'Q1M2T(1Y9%R2UPc.Y9>3Pє#2 I B3^U:9928gST#=I%8\SU2 DLSTBLdUHOPNEXT4UPDFCBUD4CLSEXTր5$HFNDDDEdDDXFNDNDEddDDT8GETDCT4UDD5HGETDDN4UDDDCHKHDStUDDThGETDENu$DDXxRDREC$E$T48WRRECeu%$T48.CLROTEdD8.GETBLK4Td4((.SELDSKe$U4$H6GETABAd45dx6CKSPFId4h>ALVNITdtUDD8FGETLSAT4E$ECKFROdtUD(FGETAVLeU$DPFADVDNOe4dTDFGETABN44NGETDXAtUDUNGETBLMtUD(NGETDNO4UDDNGETBKS?mKl3@m``3mx0f ڮ#>-DVm[ Lͭn7 *MA@`Xڰ?M^ ݪ0D$?&h~zhK|8b1͵l8~ +ެf`a@+63l 6V6h @8zkpŒOf m& b;47 HR)> DcAH@ri-|#7( 6 rG;t6my ݥ'sjHHrBa꽒f0i|>b1 a0^f7+6nvb0-~ ݪ&#Ճfܠ{,fmXmfݠnͩa6Y! BKTA.Ճ6Yx%_0LF#Pͨ`,ͳK6րl ,nK4n 6 `f06@\[c669Y R-Ӊͫ,<;Lx(1mCu_H 2aTB6A`ʼ b P+ui@< L/n`/ ؠcD3Tf0Z![6o6lf6m u!\Y X(r1@m @5z@CP ٷPf`{BOx"LFe!x2~9rl& 3jK6Ye&O(|ӹw!2[cX~a԰ ӘO- V"2Y(!͹?@ m2tDdMV阌|R :[B3%~s 8cHE,,fР xn)mi ?X2c~n-Kͱl0bY0 7MvP?\4:CEn/f,Rn@&mW eaXuu6u pm_n@mWY/mYPY,& |+,`3j(G KrX8b@XcFm? S"Xͩ 4@ biH#+ DP a06Y hYofm?3n(pe{uZ/2@f0F[^f`m`a^FmKm^Fha^F,fPV.f`a%dTzVm`P D<,E@[6kHʷv0jl,62áR UfӰf x 8n6mj=-XD>-D Z"HaӅRBE#͢Q+p\7O6maU_AD8D#9mYiWB8@  .D+URAZ,& H-ݥ"!4BO @ ڰuh:ۧACu)_3k+u)[7NbFJ;.m#(fmHS4Ve%cAḬ6i0JͯX,$ mI A%PK6Ku[C7Yes4F? Ym6b;ۧ4[Ѱ?/4[ņ7O6jYjX0g Eb\\ C,3dkHn)6\%cXl>|LF@ n vAr,:}3kK6On`|, @p;G̀x0 [A@ }ٶ a ŀrl)n g廅nG ^=dZVm!F?A| p`p rc &~AH4hY$BIHS%hPB݀ͩa mfܠv6F6#A͵lz63nC61Y(ڶͰ!(Ɋ͵lۺfؠe^BEnm;n0xG?| Ilfn( 6K:͢ǵ͵A+6Q@5y!DØ"O06rm@a͡A K63kD P>,~9E[6DjU\T0k!H2eK60 qb ۺͬ`b5xo{!d ݒ'ۤ`,|eadۧr tBdnhC6-ݥ&K6 [ݤ!sBkwiIn"`6BdjH\\!. ] /mI 0)ff`Vm?9jf00d۬qـf|>ٵ$$(,m#?ǯtGvKtAnLm q@-~6?#6 ۧR tBdM ɌكTtUDdPLOKFILdtUE3`NGETFXÀe$TdCPYFCBdtUE3$NGETABSdtUE4dʨCQMCOMd%Tdu(˘BUFMGNtUD5$`&GETRCAdtUEE(&UPDAFPd4d4%x.GETDMAtUDcT-GETFD4E%d.DSKERRdU%%Hp6SELDRVd44%hʸFROVECTSc=I%8\SU捠2 LOGUSRd4HRDSFCNe4Td4xRCDFCNU4Dd4SRUFCNe544d4DFSFCNe4U4d48SERFCNdtd4SCFFCNdE4U%(SAVRRNe4e%$88RESRRNd5%$INCRRCTtUDdHpGETSFAtUDcTGETFXAtUE3XGETS2AtUE$4GETCRAtUD%8GET78F4UCshGET78D4UCsHGET78C4UCs9p|- 0~Ӹ?X`4a@b0nG@n Dnˌxb @[GWQ㭚g!ݒ͢ Өݺt2YxuNKuZ;-[Ѹ@,zӹ-;-Yi\eYi: ӹt7NHt[dJ1!=qMvp|ZK6Dd##1\KE8 " fPр#0cFK4?9=x7OKu[% P%~dAH" p0D@fр%~9鸘3Y-ө1t&[stOdNОn ұE9"&22UPc&a%Q22UT)aQ9QIf2UPc5@MeMM.3fQVUc8`M-MR3VU#' 5QpS゠=I%8\SUҀCMPLENedHCRFCBP؀dde4LOKFILe$TdMFFXITdeHCPYFCBUDeSETAAFe$U4d4(RESCURd5tUHSAVFCB؁d44eCLSFPDd4%CKFCBW4HhFNDFFPdDeCKOPNFd4dd0&LKRFCN4u4ĸ.CKWRLKЂe%$d4pK@ ~-bk Ye P!?\ŋtYbon( 6̃1@e P T Yl(1Y(0?,n.`^@ nf g(l@t&b5g!Fr"3]9B3f@fV36p04fِeyݒ#nVhn q@nU 4?ǯ+?Y$dl3-͵ Vm[2 ;xm34 9,$ ͳ ̵s-ʹ ;jl3-lʹ n {^,meh mfmeVh`7YesldmH3B66m?936ԃ9B! e4VX& €[UK٠6]<͡@S@K1@1g@Gg@G @ fڐg(`h~`0-|#X6ԃB@/:ٶE@b6ZF#,ìw r!%ڰfР@Ͳ@¬|Z!0e?,R f߰5͵ 2{3hP aa fm*eL n(kP4ͦLs6ɁVmj f v6׀b23],mYʹNWˑF#? iCͮ. ݀q nf@ |X+,R .m[JݐͰ$ ͹`A6Ɂ ۖ{3ixt9nNU{t9nMpպf9D/uNff v`nnj: -Өt3j6mH3aғ@/¶m}fhY-mb1t@zmӹNH&+t1nNKE8[źw :,2 e 0/d+6XVm[2 ?xD&[V+vH~$q,edm3`, W\m'p063h# BOԈ/dc,! $ ͱ`αWJLm3<"Y,R f߰7 a2 Ͳ@&Ħ`ݛbl vٶ,z }:8^)2Ba0L&f@&t@'fYPKMk@aʭ7Om/GBb3( {(P$bc Nc~( 1I^P*e`AY L \ F.8 <n #k*@A@ 1FD&@F` W` qgZ,R͢ @t3`O@P#Y#+:ٴ ͥ l2Y|F~O7f ڠ OpNⷉV;Y,f0fu[/0ـ͵ Vm[ " j0` ͣ€B@fР@Ø|nga@$"Y00p362X0fpFm3[p#6ڂ7H#zX+qUͣv%ff͡ (`;ٴ+6VÅI]l:P ͪ ,^`3h3!6K6-fma |di(#SJe@pP+rDb1M?53 (6K(#/@`D{C@K6 D&eg[^!8Y,R ,m?9c9"[%n%7LĶK6ԃeg[tGn mb6K6ԃE`%n#LĆLgH&'@rbrZ*2u[#0B kafڀ1T/3#G(f En \V!0L&ͱ ڰh"1FC+f6hͫm(,nB=~)DvK4a B *1 h)hJӀQQԣ=I%8\SU@BUFSIZd%Te8MEMBLLd$ԔHBUFMGRԀd%Tdt@SBPFCNe$%d4FFBFCNd4$5Ip  0X 3j8eaZRl[ux~ .2njD f q)!#`lHFqLt-T&Xn)X!t-Gi/;HC+W\,H~݇@XeX@/QXu ;t$PNHnČڲ6L>ñ-n 7YbX7 a+u^)7NFJԫ nH: VC6*-p[JBcOAGQV fFmS?^UTVb2!` wiI r3iX# 3h#62€6Y|Ĵl*ͬ@0fmۣ`-TV!eV ,6nD@!uNI^J†,DF]`ڰnDa@9So[t*/t$nMӸLQ6HwOS~cӒU#A ::SM-5J:UC ! H*`i| a` ?A[+`^\ -f +D;V Yh(o 6怷O4ͻ-Ӹnn@@ e~Nb3^7Jn 4;` ~ CC*ƀYWl'a-~ _U8eC`tnpf@mnmҰq~H +2,6z7M6(2ς |:ؠnv݀Aow@cXm!eҐ ;mp]f [tnAMӀ-u7N69]mpF]mpMf -ݥ! n@Ӡ]Y0`7M'`H$M wiIu7Nvmv p f 2;tnҰY^)4|nnAYCͱ Hz,+,({7NnN`zpd#+b+6|n Oͭ+qC<`~NBt n.,X2[` ~ 9Cŀ!ʽ~`mӸ#+:-1VZW0<qdhc=9M-MR2XUT)a%Q2 #6`9M-IJ3zTU'#=I%8\SU .?F2"Z" ӑS#=I%8\SU@0CPMVERd4d4(RVNFCNdECd4(DT2FCNdEC4d4 SRCFCNe$4d4ROUFCNdUDd4p7Ye$T7Nd: 0eaT#f0L  8T 0)G)e@#ò .^g=,mf  D0turf@ɛq34a`͸ v@.X : v%1f0x\@Ƞ":"tYwr˘ a Yd(Y< < nkv@_  d2#2ӀTUDPGETDERThATNCHRd4D5HDOCONIdD$TRESCHR%D4(PERRXIT%D4(ȘECOCHRTd4pLSTOUT45Iӕ#=I%8\SU  *i Q@ (Ji Q`  Ji Q .0 ƀ@2zr" QQԣ=I%8\SU捠2DOCONIdDdd4CKDOST` h D+4q٠t@nQn ѱp'Yi -@pQ0Yd@-1-Ӂqq 8Y4U#c XOPF 0pUEm}``Vffk%a0QA~ @4XUXD(P6, 6DmXͰ`X!@dٴnfߠh>Xl6 p f1Fdh 6TU1Fͧ@.m :XLEXbS0V+thnQn6<[r*ū$C 2n):"EX誈10 IiʊK1 ʩɉ)qP h*iQ  *1 )q8RS=I%8\SU` -#(^fװ{(?(?{*(?s"7y1 a3jaz.%V@½[Vmnnx^VKf!`XVh`XVh`c) !>2T/ =9%:3 ӓU'Qԣ=I%8\SU jJi Ɋjꪑڰ Ih^g=,mf@ D0f`OR)G͵` x(_ w_@},;uY[xMѰ7Fsۧr%f Yd X n#n(E,n'f?zf,~d7YeuY;0xՀXnVmh0#3#X!!xe1 yH Q ȩi QP i1` h)hJѝ0  H*j#=I%8\SU  Ȋj * A**j@ @ ????hH&)") =I%8\SU@2SPLOUTe5T`FLBFCN J"I8-7Yes 1D(4`WL{F,veZ`(Bf ݅tH!@`a ;d~*7XAj|YP9Y5YBFx8",x O3m(@ 63m n Yes6)gYL ]cVuY; bd eUیͼ,xٺ6-Yd(YesuY;L:i`ͦ -p\Yx[ـeM̆mFmd3l t< hY,v bY&Dc`Af@mnM1qeѱp lAp.3m 6XJ3j 6ڀVͻ .87ߠ\#f VKó-qX܀ͻ .K:,>@%ͻ 'ū!@Ԫ:-qUf+2Yd3nhnJӡa7ۦb&2HPS+@P2U #,@P2ӕc0 MP3 U #1 MP3T;IIa%R3$c5`9UMIMZ3.UPc4`9MQ53PST゠=I%8\SU@ -fvh͠ 3l2Sr &sqe&#y)P3@ Vm/z@4'"TdxY :hqP )ij@ 8ii1 8SQԣ=I%8\SU扠  hi(i` hhHi` 1ihiӐ -f@0mDYB@<amDtpQFm$a@mDXtQfm7a8b# kLd!)+FP**J UQԣ=I%8\SU@r0?INIT?d$%8NMBRPSd%8MAXRPSSU9Q9%R:FՔTcI YIB:T 9M9IF:ӑT#Ya !M;SP`y15 \` ` 0h ^:&h4fuy!^B!-;B3yP!&ZrZ  C$fmu_,~Y 0f`|CV+!@C!  v"up4pB eIn*R eVpMW+4f 7 E֯dY |dB 4h ,N8Xn! ,P `1 /@bX)|500IZWX 3jfL& p` ~Z 6?Y`lFG~C1'4vf׀!0Yup68Z hû Q/2p#3 [D Z0[BH3@gppͦ@N8@uA,̡`jKOͳ.m?,Vm` @dld[,N8Xn!  P `0R@NG@ '4v( `0 .0)t7ٴt0pDb1lIt#8#9b3#;q#b1@dDb2plk13h P1aF@/뀀=O5"##BK2nxfc{CZn$Enb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TӒU#=I%8\SU B` ~k*hir~/y@f 3@h4f* Ɉi* Hɉ*p ji*  I)*@ ;ث-ݥ M t²Ffߠm`N4OБQ5 QJ2U!@a%Q2tSS31 15R2,S'TP=I%8\SU2 INTSPdE5DDEXLATe4tpDECOUTeTĔLNKENDÀd$Tx DMSTD4UPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`Tԣ=I%8\SU@r?PAGE?cCMEMRES dE44hUSRSAVQO %=M R>Г`CLCLNITd4E% LTNTRYd4E%HLCLERRet$5HLCLMET A@ B,?PAGE?000 0 000(0x09p8008  Ah+d@i 2And `@f@pQP_^R| %PP oy].G,t2ǀ2٠PE`00Y" H)#O)"X !h:#X )Ce @I7$~/ph" ێ%`v0,`@m*z݅z@^-Vv0%n(U\ʠ C,"ͪ q@(u@ 3@hd,=hPD< #@yA!FUW`D{?Exuf$x2@ {Zdin&a<LV6΀Z, :KE+  dl FEfK4Zq@z(?*f`݅_@c@H\ @ tnҞ <a Ko48Hl hY"|ZӞn !WiPFڀ`C6DqP0q :)fP0p1b@\(5\ͬnm'0mepi8G3k(Df%eR8?8/86ͳ,`@3oD{@ Vf!? nĬln 3@3o 4Gm*0@ @!"<DCޠ6+3i@4[JL۔V!X(E -1ɘ@< m*f6ʁ ڮXL3mX m` Vrgq2#na*b7iI>H;Kx8Rd:ܬސ*@ū(t`jʽ .n@!;6]6mE ڊ 1R>'+U_ ` K)*@  iI*<ʊK1 eLȊj (Q` *i Q iiʑ hIqk*hiq0HihIjʊjȑ j Jѝp* Qpɪhё, *I,eHIq,ih**,jHq,H*j < h q<8T゠=I%8\SU柠@MSG001d4s(MSG003d4sHMSG005(d4shLCLDESh$$a 1ͦ $!ͦ 7΂1n2 &f4&Sq@m2M#Ȑo7 N#Il2̦Ae9 g9Mm4'C)@d:DCxn9LcIe7)rI3#(@Ͷ@tPf6=YŚV"[Ed7O @VxY :hqP Qiꪑ ij ii1 8#=I%8\SU` * Q ._QS#=I%8\SU敀P?INIT?d4$TCLSCHRd44(SRHDRVSU 1 9%R:QS#`YA9 :;lӣyM 1 ::H UБ@ 1I 1 :t U` - MR\.@d /`LlE'vL"$ږͥ Lچ:z_%0xi61,`:@ `ͳ`8⁸ͱ4ja0ne1 ?Y< v0` 4AFmO /D8$6-Gio5AmKpvPOb, ʹ 0fܰVcmeViO@ʨ"J~ F6'Ј 3jX-a)fٵ<xʮ# <!.l fٶ Em%6oͽ"0Df`*@ 8g͡C=^=Zyf&)a+[#Rͳ#+*@ 0}hŀ@ u-@ǫ6 Ƞ 2À ; ڬچ]ڊͨ`M "+X$ͥ Lۖ ͧ@L0U8 1>/3iśL!@BjǠ6Xdd~#q F@, Y| /H݀#`!@y@`4/3orl3lwN @  rmp fԐ1PDmf P áAC@6mIE @f`1X@$5)Y0uahD80;V!`=~St0  1GXd〺pC(9 XdxA0G D`k (#,:`z2`3k0`Ps!*00aݒ 2" \ǖm[^VmT>-Dt1nA7 Œ6ٶ f00ll0 l l (``h.!? ìw -n#1~` t@Uifؠ3P/?-Vm:ppu# < v L JxhAxHCK63lx#!Ql0fذAAfٰA@ 0 +70VF#X #`y[7X;V Af  2Yl! XVvlV>-Y#`,ɌT8ɐ&UNLINKt$5HxUSRSAVE44h`MSG00254E4̨MSG0034sH͈MSG005߀4sHLCLERRU$48ʈCINTRYtUDDU(RETHLRTUDɰ&DEALOCd$TyUU#=I%8\SU PCOLDFNet$dLDCOLD!dEt$COLDLDet$HALDFCNdaT)%Rr HS*PZ:@ v@G3iClfH"2̴0eh @Hu쀎!f{ Cl{%A4A{6-"? V-e1 &ihhJj 8Tԣ=I%8\SUWSREST4$U9pZ2 @f@ X"<) ?E2^+A*<e~pD&`{0nfD: CKDOSTd44%5HDSPINPdE5d4(pCALCBVdE45HOTNTRYUU゠=I%8\SUAUTUSRdUDypZ:@ i)ʊK3ӕc=I%8\SU柠2 OCNTRYdDE%0XCNTRYeDE%8ERRXIT, ҙr@ uNfh60Ht.nFguZs-YiL" pf9EXr@pkX:ۧAuN' 4pN,eDF,`Kt5nϖ,fas0nor3Q@t4n-ҰɺNH\ẽ8ۧt1nMӨͺt2[јP 7F4l7O,f6, _@CL_]h0$0 &@6@A%Y|Z!wdD4E5SETDR1d4ED GETHLRdtUDDU(0RETHLRdTE5xNETREQdd4DT3FCNd4ɘCLOFCN4d4ɸ COFCN$4d4RCOFCNd4 DCFCN$$d4SIBFCN$d48CIBFCN54d4XRVNFCN$E4d4xSELFCNdd4ʘ CFFCN4ddd4ʸSNFFCNDdd4RSFFCNu4dd4 MFFCN$dd4RLIFCN$4Dd48 SDFCNuDd4hRROFCN&4dd4ˈDPBFCN5%Td4˨RRFFCNu$dd4CFSFCN5%$d4 RDFCNÀĵ$d4HFRRFCNŀ544d4xDFSFCNȀ4d4̘DT1FCNʀEC$d4RSNFCǸ5$4d4SRTFCNЀ$4d4PBLFCNҀ$4d48CTPFCNԀEd4X AMFCNրDd4x SMFCN؀$d4͘SESFCNڀ4U$d4͸SDTFCN܀$EDd4RDMFCNހ$Td4SCFFCNtd4 LFFCNDdd48ALDFCN44d4XRAVFCN$Ed4xSRSFCNDd4ΘSBPFCN$%d4θLFDFCNdd$d4SRPFCNTd4SRDFCNdd4FLBFCN$4d4HCCSFCN44d4hCCOFCN44$d4ψRCBFCN44d4ϨRMCFCNUDd4RDDFCN4$d4SQԣ=I%8\SU ROVECTTdd4HOPNFILT4dd4CLSFILe4ddd4SNFFCNDdd4DELFIL؀%4dd4WSFFCNTdd4RFFCN4dd4&RDRANDe%$dd4&WRRANDeu$dd4&CKLERRd4UH.CFSFCNe5%$d4@5LFFCNe$dd4@6RDPFCNe5%4d4x>RDMFCN$DDd4>CQMCOMh͡ 0- n(3@mT Y(nfN e~4[l<z͢%- nf s%3@ͯV,FfT3@h`3j,' l!b@ ݄7O,(7F6[rͥ x ڈ-@b: 4f x`nͶ 1?[sc6+Ǭmf :ٷF?A0,X:`F~2V+4f0 w\{63h Pj Yiͯ@C6Yã,>24zl8bͧ.VhYh"/Q9[Y4b6( z@%N\1pf@ t3[d@, p` 6-h`3i &m[QAY@ n i|ٷxFhhzn#ŇVY#VmA`O5ͣA2ͺ@!KN@ n£Lnf !|86LY QAY@ n &m6؀@;f&h٠4[Lڜ4yWp&mX[ͨ۠ nĮ Kq9ovX b@fûd62Xu |@na h~F#0m ٵF_3o6-m[L@f9A@-|}m0@a ڬ>6ۮͻk6 zfѐ7k 66ƀk 聳@hfp0,X3hC*聳i( ~<=Y&ͺn0,4?q@=o x​4\.Vhͤ͢ qF=1Yx8~(3@zw<8Yna&f%A!%ͯ@C6Y ç`l>2 eT3nͨb00- ,^͡L;;+69Y F.JnkqUBm_p#66"PfEQQ]݅jA `v;ٴ~4ٷD ~4٠tg;Y r@v6n!w4c#?໘>G?}'~Cu<"O F#< Vm`1͹m8gxͼͧf@@f0Fͻ쫄ͽ(9ۧs;thn-Ͳ[63o+6Ӹn(7Yept?⁣tl@3l8VͰ`P2?6€2VZ-mf6E&[;cKthnPn"``^)gi0aξ[th_,F?WÀs$;bthgf@CE b2s G=C;`y}>"ٴFqgvK f PU3@ b7T@f{EsNC&mf EwOͭpMf 3l3tn-Yw7Ov^?qta`fbARrOhhW@5z|,=M祡E')YY1=A:3^ V#= y B3QUc&`=a%R2l+Q I2Qc0@QL2SУ=`IM 2ё% 1MaR33 MQ3hU 8P3U #"AMQ9>3U $MQ R3;92 3MI!9%R2 UPc#Q R2DU  AQ9>2PU #&Q:3UPc>y1=-%22zS)@u -I>2UP%a]I%Q3 UQc2`9Q :3,TВU#'@I%22 UPc;`9I%>2p UУ/ II2ԑQ6`5-aR28IM UJ3 UԔP9YM]aR2 Uc?YQ2,QU#*yI<2\Uѐc1yQ:3*U8 Qa63c1MYII:3> TԔ7 -]I1.2 U̐c+%9 II:3| #899B3. U>Q N2 #)`M1M.2 UPc/QY23 UP%IQ!1J2QVUc:QaJ3 SЕ=@ -=A92H#%M-5J2P'Q1M2T(1Y9%R2UPc.Y9>3Pє#2 I B3^U:9928gST#=I%8\SU2 DLSTBLdUHOPNEXT4UPDFCBUD4CLSEXTր5$HFNDDDEdDDXFNDNDEddDDT8GETDCT4UDD5HGETDDN4UDDDCHKHDStUDDThGETDENu$DDXxRDREC$E$T48WRRECeu%$T48.CLROTEdD8.GETBLK4Td4((.SELDSKe$U4$H6GETABAd45dx6CKSPFId4h>ALVNITdtUDD8FGETLSAT4E$ECKFROdtUD(FGETAVLeU$DPFADVDNOe4dTDFGETABN44NGETDXAtUDUNGETBLMtUD(NGETDNO4UDDNGETBKS?mKl3@m``3mx0f ڮ#>-DVm[ Lͭn7 *MA@`Xڰ?M^ ݪ0D$?&h~zhK|8b1͵l8~ +ެf`a@+63l 6V6h @8zkpŒOf m& b;47 HR)> DcAH@ri-|#7( 6 rG;t6my ݥ'sjHHrBa꽒f0i|>b1 a0^f7+6nvb0-~ ݪ&#Ճfܠ{,fmXmfݠnͩa6Y! BKTA.Ճ6Yx%_0LF#Pͨ`,ͳK6րl ,nK4n 6 `f06@\[c669Y R-Ӊͫ,<;Lx(1mCu_H 2aTB6A`ʼ b P+ui@< L/n`/ ؠcD3Tf0Z![6o6lf6m u!\Y X(r1@m @5z@CP ٷPf`{BOx"LFe!x2~9rl& 3jK6Ye&O(|ӹw!2[cX~a԰ ӘO- V"2Y(!͹?@ m2tDdMV阌|R :[B3%~s 8cHE,,fР xn)mi ?X2c~n-Kͱl0bY0 7MvP?\4:CEn/f,Rn@&mW eaXuu6u pm_n@mWY/mYPY,& |+,`3j(G KrX8b@XcFm? S"Xͩ 4@ biH#+ DP a06Y hYofm?3n(pe{uZ/2@f0F[^f`m`a^FmKm^Fha^F,fPV.f`a%dTzVm`P D<,E@[6kHʷv0jl,62áR UfӰf x 8n6mj=-XD>-D Z"HaӅRBE#͢Q+p\7O6maU_AD8D#9mYiWB8@  .D+URAZ,& H-ݥ"!4BO @ ڰuh:ۧACu)_3k+u)[7NbFJ;.m#(fmHS4Ve%cAḬ6i0JͯX, mI A%PK6Ku[C7Yes4F? Ym6b;ۧ4[Ѱ?/4[ņ7O6jYjX0g Eb\\ C,3dkHn)6\%cXl>|LF@ n vAr,:}3kK6On`|, @p;G̀x0 [A@ }ٶ a ŀrl)n g廅nG ^=dZVm!F?A| p`p rc &~AH4hY$BIHS%hPB݀ͩa mfܠv6F6#A͵lz63nC61Y(ڶͰ!(Ɋ͵lۺfؠe^BEnm;n0xG?| Ilfn( 6K:͢ǵ͵A+6Q@5y!DØ"O06rm@a͡A K63kD P>,~9E[6DjU\T0k!H2eK60 qb ۺͬ`b5xo{!d ݒ'ۤ`,|eadۧr tBdnhC6-ݥ&K6 [ݤ!sBkwiIn"`6BdjH\\!. ] /mI 0)ff`Vm?9jf00d۬qـf|>ٵ$$(,m#?ǯtGvKtAnLm q@-~6?#6 ۧR tBdM ɌكTtUDdPLOKFILdtUE3`NGETFXÀe$TdCPYFCBdtUE3$NGETABSdtUE4dʨCQMCOMd%Tdu(˘BUFMGNtUD5$`&GETRCAdtUEE(&UPDAFPd4d4%x.GETDMAtUDcT-GETFD4E%d.DSKERRdU%%Hp6SELDRVd44%hʸFROVECTSc=I%8\SU捠2 LOGUSRd4HRDSFCNe4Td4xRCDFCNU4Dd4SRUFCNe544d4DFSFCNe4U4d48SERFCNdtd4SCFFCNdE4U%(SAVRRNe4e%$88RESRRNd5%$INCRRCTtUDdHpGETSFAtUDcTGETFXAtUE3XGETS2AtUE$4GETCRAtUD%8GET78F4UCshGET78D4UCsHGET78C4UCs9p|- 0~Ӹ?X`4a@b&0nG@n Dnˌxb @[GWQ㭚g!ݒ͢ Өݺt2YxuNKuZ;-[Ѹ@,zӹ-;-Yi\eYi: ӹt7NHt[dJ1!=qMvp|ZK6Dd##1\KE8 " fPр#0cFK4?9=x7OKu[% P%~dAH" p0D@fр%~9鸘3Y-ө1t&[stOdNОn ұE9"&22UPc&a%Q22UT)aQ9QIf2UPc5@MeMM.3fQVUc8`M-MR3VU#' 5QpQQԣ=I%8\SU@BUFSIZd%Te8MEMBLLd$ԔHBUFMGRԀd%Tdt@SBPFCNe$%d4FFBFCNd4$5Ip  0X 3j8eaZRl[ux~ .2njD f q)!#`lHFqLt-T&Xn)X!t-Gi/;HC+W\,H~݇@XeX@/QXu ;t$PNHnČڲ6L>ñ-n 7YbX7 a+u^)7NFJԫ nH: VC6*-p[JBcOAGQV fFmS?^UTVb2!` wiI r3iX# 3h#62€6Y|Ĵl*ͬ@0fmۣ`-TV!eV ,6nD@!uNI^J†,DF]`ڰnDa@9So[t*/t$nMӸLQ6HwOS~cӒU#A ::SM-5J:UC ! H*`i| a` ?A[+`^\ -f +D;V Yh(o 6怷O4ͻ-Ӹnn@@ e~Nb3^7Jn 4;` ~ CC*ƀYWl'a-~ _U8eC`tnpf@mnmҰq~H +2,6z7M6(2ς |:ؠnv݀Aow@cXm!eҐ ;mp]f [tnAMӀ-u7N69]mpF]mpMf -ݥ! n@Ӡ]Y0`7M'`H$M wiIu7Nvmv p f 2;tnҰY^)4|nnAYCͱ Hz,+,({7NnN`zpd#+b+6|n Oͭ+qC<`~NBt n.,X2[` ~ 9Cŀ!ʽ~`mӸ#+:-1VZW0<qdhc=9M-MR2XUT)a%Q2 #6`9M-IJ3zTU'#=I%8\SU .?F2"Z" ӑS#=I%8\SU@0CPMVERd4d4(RVNFCNdECd4(DT2FCNdEC4d4 SRCFCNe$4d4ROUFCNdUDd4p7Ye$T7Nd: 0eaT#f0L  8T 0)G)e@#ò .^g=,mf  D0turf@ɛq34a`͸ v@.X : v%1f0x\@Ƞ":"tYwr˘ a Yd(Y< < nkv@_  d2#2ӀTUDPGETDERThATNCHRd4D5HDOCONIdD$TRESCHR%D4(PERRXIT%D4(ȘECOCHRTd4pLSTOUT45Iӕ#=I%8\SU  *i Q@ (Ji Q`  Ji Q .0 ƀ@2zr" QQԣ=I%8\SU捠2DOCONIdDdd4CKDOST` h D+4q٠t@nQn ѱp'Yi -@pQ0Yd@-1-Ӂqq 8Y4U#c XOPF 0pUEm}``Vffk%a0QA~ @4XUXD(P6, 6DmXͰ`X!@dٴnfߠh>Xl6 p f1Fdh 6TU1Fͧ@.m :XLEXbS0V+thnQn6<[r*ū$C 2n):"EX誈10 IiʊK1 ʩɉ)qP h*iQ  *1 )q8RS=I%8\SU` -#(^fװ{(?(?{*(?s"7y1 a3jaz.%V@½[Vmnnx^VKf!`XVh`XVh`c) !>2T/ =9%:3 ӓU'Qԣ=I%8\SU jJi Ɋjꪑڰ Ih^g=,mf@ D0f`OR)G͵` x(_ w_@},;uY[xMѰ7Fsۧr%f Yd X n#n(E,n'f?zf,~d7YeuY;0xՀXnVmh0#3#X!!xe1 yH Q ȩi QP i1` h)hJѝ0  H*j#=I%8\SU  Ȋj * A**j@ @ ????hH&)") SQԣ=I%8\SU扠  hi(i` hhHi` 1ihiӐ -f@0mDYB@<amDtpQFm$a@mDXtQfm7a8b# kLd!)+FP**J Qԣ=I%8\SU PSECSDԔ8HOURSTDDXSDTFCNe$EDd4xRTCSEC ZX t0`H3@VnF-Ӡuqn##-0)2nҞd@@2:*Bbd#""FE2*Bbd*$*N#=I%8\SU`TICCNTd0DPFCNTDTWAITdDŕD8SIGNALd5%$8RESUMEd5%HxGETTOS00a d  ^Tj] ! wiHPueaT#L1t8OwhUV-+`@Հ!@E{%S@! @Vme`#"%{ V`KM`Ld&'%"FA2:*"*e&'QSSQԣ=I%8\SU戠2MEMBASTd4`ALLOCTDd4XDEALOC` -f `@0;JxB0E8 #+p@R nQYXV^` ַvn@pr05ݥ< "pB;KxRpvL&@Z* Ґr@`i `8Z'1Fdhp@xFV(*b+#  G(+/] ݤ'2g²F +8 .m| -YUdaY9++ ΰK#9 Vu@/vث-ݥ M t²Ffߠm`N4OБQ5 QJ2U!@a%Q2tSS31 15R2,S'TP=I%8\SU2 INTSPdE5DDEXLATe4tpDECOUTeTĔLNKENDÀd$Tx DMSTD4UPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TӒU#=I%8\SU B` ~k*hir~/y@f 3@h4f* Ɉi* H'ɉ*p ji*  I)*@ ;#9 Vu@/vث-ݥ M t²Ffߠm`N4OБQ5 QJ2U!@a%Q2tSS31 15R2,S'TP=I%8\SU2 INTSPdE5DDEXLATe4tpDECOUTeTĔLNKENDÀd$Tx DMSTD4UPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TӒU#=I%8\SU B` ~k*hir~/y@f 3@h4f* Ɉi* HTԣ=I%8\SU@r?PAGE?cCMEMRES dE44hUSRSAVQO %=M R>Г`CLCLNITd4E% LTNTRYd4E%HLCLERRet$5HLCLMET A@ B,?PAGE?000 0 000(0x09p8008  Ah+d@i 2And `@f@pQP_^R| %PP oy].G,t2ǀ2٠PE`00Y" H)#O)"X !h:#X )Ce @I7$~/ph" ێ%`v0,`@m*z݅z@^-Vv0%n(U\ʠ C,"ͪ q@(u@ 3@hd,=hPD< #@yA!FUW`D{?Exuf$x2@ {Zdin&a<LV6΀Z, :KE+  dl FEfK4Zq@z(?*f`݅_@c@H\ @ tnҞ <a Ko48Hl hY"|ZӞn !WiPFڀ`C6DqP0q :)fP0p1b@\(5\ͬnm'0mepi8G3k(Df%eR8?8/86ͳ,`@3oD{@ Vf!? nĬln 3@3o 4Gm*0@ @!"<DCޠ6+3i@4[JL۔V!X(E -1ɘ@< m*f6ʁ ڮXL3mX m` Vrgq2#na*b7iI>H;Kx8Rd:ܬސ*@ū(t`jʽ .n@!;6]6mE ڊ 1R>'+U_ ` K)*@  iI*<ʊK1 eLȊj (Q` *i Q iiʑ hIqk*hiq0HihIjʊjȑ j Jѝp* Qpɪhё, *I,eHIq,ih**,jHq,H*j < h q<8T゠=I%8\SU柠@MSG001d4s(MSG003d4sHMSG005(d4shLCLDESh$$a 1ͦ $!ͦ 7΂1n2 &f4&Sq@m2M#Ȑo7 N#Il2̦Ae9 g9Mm4'C)@d:DCxn9LcIe7)rI3#(@Ͷ@tPf6=YŚV"[Ed7O @VxY :hqP Qiꪑ ij ii1 8#=I%8\SU` * Q ._QS#=I%8\SU敀P?INIT?d4$TCLSCHRd44(SRHDRVSU 1 9%R:QS#`YA9 :;lӣyM 1 ::H UБ@ 1I 1 :t U` - MR\.@d /`LlE'vL"$ږͥ Lچ:z_%0xi61,`:@ `ͳ`8⁸ͱ4ja0ne1 ?Y< v0` 4AFmO /D8$6-Gio5AmKpvPOb, ʹ 0fܰVcmeViO@ʨ"J~ F6'Ј 3jX-a)fٵ<xʮ# <!.l fٶ Em%6oͽ"0Df`*@ 8g͡C=^=Zyf&)a+[#Rͳ#+*@ 0}hŀ@ u-@ǫ6 Ƞ 2À ; ڬچ]ڊͨ`M "+X$ͥ Lۖ ͧ@L0U8 1>/3iśL!@BjǠ6Xdd~#q F@, Y| /H݀#`!@y@`4/3orl3lwN @  rmp fԐ1PDmf P áAC@6mIE @f`1X@$5)Y0uahD80;V!`=~St0  1GXd〺pC(9 XdxA0G D`k (#,:`z2`3k0`Ps!*00aݒ 2" \ǖm[^VmT>-Dt1nA7 Œ6ٶ f00ll0 l l (``h.!? ìw -n#1~` t@Uifؠ3P/?-Vm:ppu# < v L JxhAxHCK63lx#!Ql0fذAAfٰA@ 0 +70VF#X #`y[7X;V Af  2Yl! XVvlV>-Y#`,ɌT8ɐ&UNLINKt$5HxUSRSAVE44h`MSG00254E4̨MSG0034sH͈MSG005߀4sHLCLERRU$48ʈCINTRYtUDDU(RETHLRTUDɰ&DEALOCd$TyUU#=I%8\SU PCOLDFNet$dLDCOLD!dEt$COLDLDet$HALDFCNdaT)%Rr HS*PZ:@ v@G3iClfH"2̴0eh @Hu쀎!f{ Cl{%A4A{6-"? V-e1 &ihhJj 8UU゠=I%8\SUAUTUSRdUDypZ:@ i)ʊK3ӕc=I%8\SU柠2 OCNTRYdDE%0XCNTRYeDE%8ERRXIT, ҙr@ uNfh60Ht.nFguZs-YiL" pf9EXr@pkX:ۧAuN' 4pN,eDF,`Kt5nϖ,fas0nor3Q@t4n-ҰɺNH\ẽ8ۧt1nMӨͺt2[јP 7F4l7O,f6, _@CL_]h0$0 &@6@A%Y|Z!wdD4E5SETDR1d4ED GETHLRdtUDDU(0RETHLRdTE5xNETREQdd4DT3FCNd4ɘCLOFCN4d4ɸ COFCN$4d4RCOFCNd4 DCFCN$$d4SIBFCN$d48CIBFCN54d4XRVNFCN$E4d4xSELFCNdd4ʘ CFFCN4ddd4ʸSNFFCNDdd4RSFFCNu4dd4 MFFCN$dd4RLIFCN$4Dd48 SDFCNuDd4hRROFCN4dd4ˈDPBFCN5%Td4˨RRFFCNu$dd4CFSFCN5%$d4 RDFCNÀĵ$d4HFRRFCNŀ544d4xDFSFCNȀ4d4̘DT1FCNʀEC$d4RSNFCǸ5$4d4SRTFCNЀ$4d4PBLFCNҀ$4d48CTPFCNԀEd4X AMFCNրDd4x SMFCN؀'$d4͘SESFCNڀ4U$d4͸SDTFCN܀$EDd4RDMFCNހ$Td4SCFFCNtd4 LFFCNDdd48ALDFCN44d4XRAVFCN$Ed4xSRSFCNDd4ΘSBPFCN$%d4θLFDFCNdd$d4SRPFCNTd4SRDFCNdd4FLBFCN$4d4HCCSFCN44d4hCCOFCN44$d4ψRCBFCN44d4ϨRMCFCNUDd4RDDFCN4$d4Sc=I%8\SU捠2 LOGUSRd4HRDSFCNe4Td4xRCDFCNU4Dd4SRUFCNe544d4DFSFCNe4U4d48SERFCNdtd4SCFFCNdE4U%(SAVRRNe4e%$88RESRRNd5%$INCRRCTtUDdHpGETSFAtUDcTGETFXAtUE3XGETS2AtUE$4GETCRAtUD%8GET78F4UCshGET78D4UCsHGET78C4UCs9p|- 0~Ӹ?X`4a@b0nG@n Dnˌxb @[GWQ㭚g!ݒ͢ Өݺt2YxuNKuZ;-[Ѹ@,zӹ-;-Yi\eYi: ӹt7NHt[dJ1!=qMvp|ZK6Dd##1\KE8 " fPр#0cFK4?9=x7OKu[% P%~dAH" p0D@fр%~9鸘3Y-ө1t&[stOdNОn ұE9"&22UPc&a%Q22UT)aQ9QIf2UPc5@MeMM.3fQVUc8`M-MR3VU#' 5Qp#=I%8\SU .@  D"`<ӑS#=I%8\SU@0CPMVERd4d4(RVNFCNdECd4(DT2FCNdEC4d4 SRCFCNe$4d4ROUFCNdUDd4p7Ye$T7Nd: 0eaT#f0L  8T 0)G)e@#ò .^g=,mf  D0turf@ɛq34a`͸ v@.X : v%1f0x\@Ƞ":"tYwr˘ a Yd(Y< < nkv@_  d2#2ӀTUDPGETDERThATNCHRd4D5HDOCONIdD$TRESCHR%D4(PERRXIT%D4(ȘECOCHRTd4pLSTOUT45Iӕ#=I%8\SU  *i Q@ (Ji Q`  Ji Q .0 ƀ@2zr" QQԣ=I%8\SU捠2DOCONIdDdd4CKDOST` h D+4q٠t@nQn ѱp'Yi -@pQ0Yd@-1-Ӂqq 8Y4U#c XOPF 0pUEm}``Vffk%a0QA~ @4XUXD(P6, 6DmXͰ`X!@dٴnfߠh>Xl6 p f1Fdh 6TU1Fͧ@.m :XLEXbS0V+thnQn6<[r*ū$C 2n):"EX誈10 IiʊK1 ʩɉ)qP h*iQ  *1 )q8RS=I%8\SU` -#(^fװ{(?(?{*(?s"7y1 a3jaz.%V@½[Vmnnx^VKf!`XVh`XVh`c) !>2T/ =9%:3 ӓU'Qԣ=I%8\SU jJi Ɋjꪑڰ Ih^g=,mf@ D0f`OR)G͵` x(_ w_@},;uY[xMѰ7Fsۧr%f Yd X n#n(E,n'f?zf,~d7YeuY;0xՀXnVmh0#3#X!!xe1 yH Q ȩi QP i1` h)hJѝ0  H*j#=I%8\SU  Ȋj * A**j@ @  @ !( D#h@ !( D#h=I%8\SU@2SPLOUTe5T`FLBFCN J"I8-7Yes 1D(4`WL{F,veZ`(Bf ݅tH!@`a ;d~*7XAj|YP9Y5YBFx8",x O3m(@ 63m n Yes6)gYL ]cVuY; bd eUیͼ,xٺ6-Yd(YesuY;L:i`ͦ -p\Yx[ـeM̆mFmd3l t< hY,v bY&Dc`Af@mnM1qeѱp lAp.3m 6XJ3j 6ڀVͻ .87ߠ\#f VKó-qX܀ͻ .K:,>@%ͻ 'ū!@Ԫ:-qUf+2Yd3nhnJӡa7ۦb&2HPS+@P2U #,@P2ӕc0 MP3 U #1 MP3T;IIa%R3$c5`9UMIMZ3.UPc4`9MQ53PST゠=I%8\SU@ -fvh͠ 3l2Sr &sqe&#y)P3@ Vm/z@4'"TdxY :hqP )ij@ 8ii1 8SQԣ=I%8\SU扠  hi(i` hhHi` 1ihiӐ -f@0mDYB@<amDtpQFm$a@mDXtQfm7a8b# kLd!)+FP**J UTc=I%8\SU GH(JQ ! HjH "誉ɨQp,ȉHi^ec7 , D6 ,hH$#+lPͿYez[btuV쁸ͩ qnnӸnf+f8r_+4\+v6-+f{՛g/ %~Ye0 !1O'rD er@"$;V -[-&[ݺ-&[$~7,^٠F?#t#`ڰna c _p#3  ;V~Yh 7Oe:r@ %ͺV.X/X8(7Ncd# D`jFe€[t>nڰdo+~b `?KX' _:-x+td~OӐ-q?N eQ@&m/ǥ`uo| ߧ2@O&#~k0F?(~"X`p!݀fސRprgF?N7 wO~o0#~w,~0%NHe{%p-+~X  `xr@ `~~!VYeۧ 7` 16C ~0h\.V+4hVℳ%WYx a+E[Akh-uܠ: [A@@ur u4 a 8 0Pt Z Pj-B@ zAK2f>p#ugYxFVmӹ#nGtc?7NG[6Ytl/3jxaͥ@,0 f Өźt3kh+!S6/nK6fVC4Y-qw0h+t0 8& -x(EmrD 6GA@Ɋ'[bB`d9<n 7OE,='o+C~@٠wѰ>[᠆3l(nF fՐV8#l 8$\>Yt#q'VmfVhnmOpNdf @ nq# Ktl.,hq-Cx@ٶ@pd7N#&Ktl.,m9`3jxn @\>YJ-O[<P@pCnAE`?,Ϳ%~3l+A6?HD 4` *,d~d7Yc%? D4dCmg P~k*ݐ8Y,ڴ !ӸdZ Ѱ?/6-AóN`y< A'ݐeZq31~GK~"# (# VB8H\A$P b0|dӸ!^n\ n1y:[B&2U#$%2SP,M9IF3 QU#2Qa5R3,QUc?Q53PS$`YIII5M2VՔT#0M-IJ2#1@YM9IB3 TU#4@Y15 2ѐӣ1@y1=32U 3yP3VUc7`ua%Q23U9y9Q]I2 T#" EUMR2Z VU#-Q3 P#: -QMR2 U#QJ3& U5QL3 БS<9Q1=3 Tѐӣ. M-MR2j P'@ U5J2z S#7]Q 2pTѓU#=I%8\SU拀 b0ʈɪA4p(P(@UQԣ=I%8\SU@r0?INIT?d$%8NMBRPSd%8MAXRPSSU9Q9%R:FՔTcI YIB:T 9M9IF:ӑT#Ya !M;SP`y15 \` ` 0h ^:&h4fuy!^B!-;B3yP!&ZrZ  C$fmu_,~Y 0f`|C(V+!@C!  v"up4pB eIn*R eVpMW+4f 7 E֯dY |dB 4h ,N8Xn! ,P `1 /@bX)|500IZWX 3jfL& p` ~Z 6?Y`lFG~C1'4vf׀!0Yup68Z hû Q/2p#3 [D Z0[BH3@gppͦ@N8@uA,̡`jKOͳ.m?,Vm` @dld[,N8Xn!  P `0R@NG@ '4v( `0 .0)t7ٴt0pDb1lIt#8#9b3#;q#b1@dDb2plk13h P1aF@/뀀=O5"##BK2nxfc{CZn$Enb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TӒU#=I%8\SU B` ~k*hir~/y@f 3@h4f* Ɉi* Hɉ*p ji*  I)*@ ;u@/vث-ݥ M t²Ffߠm`N4OБQ5 QJ2U!@a%Q2tSS31 15R2,S'TP=I%8\SU2 INTSPdE5DDEXLATe4tpDECOUTeTĔLNKENDÀd$Tx DMSTD4UPRCAS title TURBODOS OPERATING SYSTEM - FLOPPY DISK DRIVE SPECIFICATION TABLES subttl copyright 1983, software 2000, inc. .z80 ; ; copyright 1983, software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 01/27/84 doc ; name ('dskfmt') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; false equ 0 ;logical equates true equ not false ; ; cpm equ TRUE ;set to false for TURBODOS 0 track offsets ; on double density disks ; tsd equ 2 ;two-sided disk bit (type code) ddd equ 3 ;double density disk bit (type code) mini equ 4 ;mini-floppy disk bit (type code) tpi96 equ 5 ;96-tpi disk bit (type code) ; public xltbl,dtco,typcod,gaplen ; cseg ;locate in program area ; ; 1024 byte sector, double-density, two-sided ; dstbls:: dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(16*(1 shl 3)))/(1 shl 4);number of blocks else dw (77*(16*(1 shl 3)))/(1 shl 4);number of blocks endif db 4 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 16 ;physical sectors per track dw 77 ;physical tracks per disk if cpm dw 1 ;number of reserved tracks else dw 0 ;number of reserved tracks endif dw 0 ;translation table address db 1 shl ddd or 1 shl tsd or 3 ;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, two-sided, 96-tpi (mini) ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(8*(1 shl 3)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 8 ;physical sectors per track dw 77 ;physical tracks per disk dw 1 ;number of reserved tracks else dw (80*(10*(1 shl 3)))/(1 shl 4);number of blocks db 4 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 80 ;physical tracks per disk dw 0 ;number of reserved tracks endif dw 0 ;translation table address db 1 shl tpi96 or 1 shl mini or 1 shl ddd or 1 shl tsd or 3;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, two-sided (mini) ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (39*(8*(1 shl 3)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 8 ;physical sectors per track dw 40 ;physical tracks per disk dw 1 ;number of reserved tracks else dw (40*(10*(1 shl 3)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 40 ;physical tracks per disk dw 0 ;number of reserved tracks endif dw 0 ;translation table address db 1 shl mini or 1 shl ddd or 1 shl tsd or 3;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, one-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(8*(1 shl 3)))/(1 shl 4);number of blocks else dw (77*(8*(1 shl 3)))/(1 shl 4);number of blocks endif db 3 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 8 ;physical sectors per track dw 77 ;physical tracks per disk if cpm dw 1 ;reserved tracks else dw 0 ;reserved tracks endif dw 0 ;translation table address db 1 shl ddd or 3 ;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, one-sided, 96-tpi (mini) ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(4*(1 shl 3)))/(1 shl 4);number of blocks db 1 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 4 ;physical sectors per track dw 77 ;physical tracks per disk dw 1 ;reserved tracks else dw (80*(5*(1 shl 3)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 5 ;physical sectors per track dw 80 ;physical tracks per disk dw 0 ;reserved tracks endif dw 0 ;translation table address db 1 shl tpi96 or 1( shl mini or 1 shl ddd or 3;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, one-sided (mini) ; dw $+dstl ;disk spec table link pointer db 3 ;block size ; db 4 if cpm dw (39*(4*(1 shl 3)))/(1 shl 3);number of blocks ; db 1 ;number of directory blocks db 2 db 3 ;physical sector size (2^n*128) dw 4 ;physical sectors per track dw 40 ;physical tracks per disk dw 1 ;reserved tracks else dw (40*(5*(1 shl 3)))/(1 shl 3);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 5 ;physical sectors per track dw 40 ;physical tracks per disk dw 0 ;reserved tracks endif dw 0 ;translation table address db 1 shl mini or 1 shl ddd or 3 ;disk type code db 35h ;gap length ; ; 512 byte sector, double-density, one-sided mini (Kaypro DD) ; * two-sided patch 2-85 ; dw $+dstl ;disk spec table link pointer db 3 ;block size dw (39*(10*(1 shl 2)))/(1 shl 3) ;number of blocks db 2 ;number of directory blocks db 2 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 40 ;physical tracks per disk dw 1 ;reserved tracks dw kayskw ;translation table address db 1 shl ddd or 1 shl mini or 1 shl tsd or 3 ; type db 1bh ;gap length ; ; 512 byte sector, single-density, two-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(16*(1 shl 2)))/(1 shl 4);number of blocks db 3 ;number of directory blocks db 2 ;physical sector size (2^n*128) dw 16 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 shl tsd or 2 ;disk type code db 1bh ;gap length ; ; 512 byte sector, single-density, one-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(8*(1 shl 2)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 2 ;physical sector size (2^n*128) dw 8 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 2 ;disk type code db 1bh ;gap length ; ; 256 byte sector, single-density, two-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(30*(1 shl 1)))/(1 shl 4) ;number of blocks db 3 ;number of directory blocks db 1 ;physical sector size (2^n*128) dw 30 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 shl tsd or 1 ;disk type code db 0eh ;gap length ; ; 256 byte sector, single-density, one-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(15*(1 shl 1)))/(1 shl 4) ;number of blocks db 2 ;number of directory blocks db 1 ;physical sector size (2^n*128) dw 15 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 ;disk type code db 0eh ;gap length ; ; 256 byte sector, single-density, one-sided 48-tpi mini (Osborne SD) ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (37*(10*(1 shl 1)))/(1 shl 4) ;number of blocks db 1 ;number of directory blocks db 1 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 37 ;physical tracks per disk WAS 37 dw 3 ;reserved tracks dw osbskw ;translation table address db 1 shl mini or 1 ;disk type code db 0eh ;gap length ; ; 128 byte sector, single-density, two-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(52*(1 shl 0)))/(1 shl 4) ;number of blocks db 2 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 52 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 shl tsd ;disk type code db 7 ;gap length ; ; 128 byte sector, single-density, single-sided 48-tpi mini (Xerox SD) ; dw $+dstl ;disk spec table link pointer db 3 ;block size dw (37*(18*(1 shl 0)))/(1 shl 3) ;number of blocks db 1 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 18 ;physical sectors per track dw 40 ;physical tracks per disk dw 3 ;reserved tracks dw xrxskw ;translation table address db 1 shl mini ;disk type code db 7 ;gap length ; ; 128 byte sector, single-density, one-sided ; dsta: dw 0 ;disk spec table link pointer dstb: db 3 ;block size dw (75*(26*(1 shl 0)))/(1 shl 3);number of blocks db 2 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 26 ;physical sectors per track dw 77 ;physical tracks per disk dw 2 ;reserved tracks ; xltbl equ $-dstb ;translation table address offset ; dw trtbl ;translation table address ; dtco equ $-dsta ;disk type code offset typcod equ $-dstb ;disk type code offset ; db 0 ;disk type code ; gaplen equ $-dstb ;gap length offset ; db 7 ;gap length ; dstl equ $-dsta ;disk spec table length ; ; single-density/single-sided (8", IBM-3740) sector translation table ; trtbl: db 0,6,12,18,24,4,10,16,22 db 2,8,14,20,1,7,13,19,25 db 5,11,17,23,3,9,15,21 ; ; Kaypro II sector translation table ; kayskw: db 0FFH,00,01,02,03,04,05,06,07,08 ; ; Osborne SD sector translation table ; osbskw: db 0,2,4,6,8,1,3,5,7,9 ; ; Xerox SD sector translation table ; xrxskw: db 0,5,10,15,2,7,12,17,4,9,14,1,6,11,16,3,8,13 ; END er dstb: db 3 ;block size dw (75*(26*(1 shl 0)))/(1 shl 3);number of blocks db 2 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 26 ;physical sectors per track dw 77 ;physical tracks per disk dw 2 ;reserved tracks ; xltbl equ $-dstb ;translation table address offset ; dw trtbl ;translation table address ; dtco equ $-dsta ;disk type code offset typcod equ $-dstb ;disk type code offset ; db 0 ;disk type code ; gaplen equ $-dstb ;gap length offset ; db 7 ;gap length ; dstl equ $-dsta ;disk spec table length ; ; single-density/single-sided (8", IBM-3740) sector translatio*+"U" " " " go"S"b2 2!2!2Z2\2_2`2e2a2^2Y!*" " " " "?"=!" " " " 2 2 !" ?No Start Address?Loading Error?Nothing Loaded?Out of memory?Illegal Polish Exp:!‰!!!2!!!2*U! ~ 4!>2 2[:e2e ,/MEG@RSUXYE{ O :Ü&O†2YHO2YG:e2e:'>`͉Cx¹'"W _2:h Ğ2U!e~w:h ~w:h 2[æ2[*b|##yȷ#lC~@#I" #ͬ*b|#*W~ !:[:e~ G@x k o Link-80 3.43 14-Apr-81 Copyright (c) 1981 Microsoft ?Command Error~P#~#  `{ +!~G #~ gx+#<~: /͔>*P f> P:g!ho>g6 7ʌʌ  y:+y#P2^2h i !  :\GO: " " " " * * " "=* * BK* * "?2 G<2 z6#z: O4ͅ {Ҏ!y yBKO!= s#r! s#r! s#rͅ ڬ! s#r!= s#ry ! ~#fo! ѵ! }_|W>2 * * <* * : <ͅ P* * W{_* #" " "?:YGO0ڗ xڗ)))ҖʌҖ)o>gdy +%Overlaying areaDataProgramÔ!! ~#fo!ͅ ͅ ͅ &}< = yy7yM7>,>#ͅ !O> _!j >?P~#P!yk!:!ʆ!= Not Found> P> P>2 i 2:: _<2 !~i ! w#! wO |!y:!(͔*SDMÜ&[Begin execution]:\:Z* * ͅ ~`~¨@w+++o>GO ~+t>ʊ6 #=ƒ* ! ͮ 2Z * ~O_+++y++:ZK͔:e2e *S>[P"N!C ^* s#r!I )   ^! ~# != = = ^* ͅ = *ͅ = s#r"N2 * * ͅ ʐ ʅ 2 O^: z x/Gy/O~w#~wM O" z _z! ^#V   $ 2 = ] m `i ^+V! 4* M ! 4Ð ! 5 PY^  s #r lg   # |/g}/o   DM!>= ))K K z zi  BK}o|g҄ : ʫ ͅ ҫ | >]P͔: : $>2*S"!o&'  d   >0G /}o|g x0   > xPJ>G~#' l~@+^+V$MEMRY$$PROG$COMNM*SC!Jw#] l{ ~@{ +^+V"S! 2C! ?Start symbol - - undefinedi  ~#³ ͞ REL7*b}2Z:e` j: j͔ p @p ͔`p p p * } , >wk  :b? !K * !b  Undefined Global(s) Bytes Free 2dP  ~O~>-ʑ > >/P+^+V+~P ™ /PN~ ʼ !ÿ "~ N+^+V>>PN:d?2d̔>wt :dȯ2dk [ M  ~++GOŸ& H+D ; & yE >  * [ S } 7~k ~~r <</_* Å |}! 6S#6Y#6M>$>* * ͅ ~O~@ +^+V > j%+~j% > j%= >~ <</O ß ͔&%|}G[j%> j%> j%:YG)0P) 60P3|L}U[P0:͔! ~#foN"N"N>>PÔRQUESTͬæ* : * ͅ ~_~@+++~#* BK" ö+++ö2!2 2 2 : go" " " 2Z" <2 : * * * * *?͟QiEZE! ~#foBK#: =ʞ: •* |ʊҕ}ҕ# ͟p#: •* |ʳҕ¸}ҕ#Õ: =: Ww+p+q+p+q#!Bi++s" ͉:7>[?@2i ԉx $ j 7+> H6 #=@x2h y.̉r xcpdʅ!r ~ …6R#6E#6Ly[ҧ0ڧAң:ҧÌ[ʣ]ʣ@ʣ\ʣ^ʣ_ʣOd: : 2 !BK|A~_q#Vp^AW: =!>@w+r+s+@3: 2 !r+sA: =* >lX/o/g ڰA~@w:_2`u+++~ u2`q+p:`O!=>2 !}|!= s#rͅ y A!>/P͔A~W+++~P+%2nd COMMON Larger /*=" |2 * ͅ A> l~@wA7W: >:: =/>G: =9>@w@w+w++3: 2 !: : =r+sA!JKF5#wl~+W6+6++r+sA*M:L2 h!W: =: ?>@w+6++r+sA:!A>.2!2R* !L͞!i2!+2a! w#!ڒ „! \" " : :\!ڭ!  w#! º+w2!͞A!!?/D illegal with common runtime?No code can be loaded before program withcommon runtime not found, please create header file?End of file on common runtime header!cU͆zʥ͆"Sd! ^#V! ͬ!=ͬyګ: * * ͅ * " * )*  * * BK* " ͅ " " "=" " ͅ 9* * * ͅ _!* * * BK* * * * * " * * BK* * " " " "= ~w#~wPYd>͆BKl!~@: ~@w+~_q+W: =>Cw+p+q+r+sA! ͔A%Mult. Def. Global ~@*b+"bPYd>͆BKůl~+pN+F@‰: :E(d: =zAA|A: r#sA: |A^zA#W: =ʱ>Bw+r+s+r+sA*b#"b!9~#46+wxG ɯ2 7 [#J[J!Jw94#6 _Iw#=!V"9O<2 XP̌yyO!; N#F 2]: ʜ2]AF( t@/: " *?>2 * ͅ A*?>l+^+V^"AAd: =%<2 =A: A*? APY7* M" !*?"?* !" }2 <2 A:]* * |G}ʾ~O«J«A+++ª+™~ y/O qJOx_Ow#2 +w+w+w+ w+w+" 7ɫ ++'+:E(&: ͆: t2 * * DM* " *? "?* BK" " " " * " ͹'* |‰}ʢ~_~! ^#V* " (O^~#+>>><2\=O! &! ^#V2y?Wy?^ͅ ?^~y! k! ws#rz^#V͠! p#–* ! N#F#~#fo! ^#V  ! ~#foͅ J! {_{_~J! ^q#Vp! ~s#_~rW}(: &#sͅ {_! 6)`i{ڢ! #[œ* * 6* " * * " ͠* ͅ қ" ! yڮ! ^#V ڽ F#fh! ^#V ^#Vy!  ^#V^#V! s#r Gyx! Bs#r#3xU|W}_x2 * 2 yoxg* " *?"?*APYͅ ڛ"A: ʻ=±* !" * * ͅ ұñ͟*?{OzG* * DM7xw#  +x~+ xw+ : 7=}O@: 7L?Intersecting yO* ͅ <28!: ?Oʥ: Lͅ Lͅ L!O>,P*8&2M^#Vy!JF#~#P>(P>)P: " Start = External Public = '*$!2\!:\A!͛!͛! y/!* * ͅ #* " ͅ ~!*Uͅ "yd!*Uͅ "ͅ ڷ!*Uͅ ڰ!!!û!!!!!!!2 YxbelowaboveOrigin loader memory, move anyway(Y or N)?ͅ 2"ͅ F" "!ͅ F"yU": Y"*Uʂ"c"Oͅ ‚"y*U‚"! ͅ ҉"!9;;;;;;ͅ "ͅ ڥ"z")'7""""ͅ #ͅ #"z"7* "=* "?* *=+##-#KP*="=!* BK*=* *?n#ʰ#n#O* * " * *?BK* *?"?#PY* " * " Ú#* *?#BK* * " * * " " *?" *=" ! :$~R#~E#~L6$:e+$9$w++$COMHEXb$  <%2 : ʁ$$* * ͅ ځ$!e~ʎ$ ~$:^ʴ$: ·$*S^" " &yO: &z&%*S|$ͅ $%ͅ $ͅ $0%@%7Ԕ%T%: %yO%@%T%: Ą% <%>j%*S}j%|j%سȯj%zI%%z~#j%^%!: _w{<%2  %%"%yO#"%!%^%0%fj%»%! ~+ x :a*S:a*S^!%?Can't save object file{{ _zW>&> D&{ K&O>:j%y Y~# f&.&>:j%G*S >>j%!-'͡'!3'͡'!6'͡'!<'͡'##µ&##͡'##&#͡'!}'͡'!'͡'* "'* "'* "'* "'* "'* "')'m)'͖'/'Y'J'Y'o''Y'o''Y'o''!' N#F#^#V#~#fo|} +x~+ t'xw# 'xw# Ö'~#fo)'q#p:E(* ͅ ~' O(:L2D(*=" 2 W6+:D(wAOz(2D(:(:E((*=" :D(2E(*=r#s+:D(l(*=ͥ(" 2D(2E(!* p# S(!JN#*~# a(Ar#s*){ʈ({ƀ_҈(zʡ()È(ͦ)*)!1*ͷ)!1*V#^(()!((ͷ)(z(!1*ͷ))ͦ)z{7)1*z w#)0:ww:*!>))+)!4)?Segment , file not foundcan't create fileread errorDisk is full)!C))!R))ͦ)!d))ͦ)!o)1***Ž)*š)1**<|)1***<ʅ)2*!*)+)##2*w# ** V 0"'* "')'m)'͖'/'Y'J'Y'o''Y'o''Y'o''!' N#F#^#V#~#fo|} +x~+ t'xw# 'xw# Ö'~#fo)'q#p:E(* ͅ ~' O(:L2D(*=" 2 W6+:D(wAOz(2D(:(:E((*=" :D(2E(*=r#s+:D(l(*=ͥ(" 2D(2E(!* p# S(!JN#*~# a(Ar#s*){ʈ({ƀ_҈(zʡ()È(ͦ)*)!1*ͷ)!1*V#^(()!((ͷ)(z(!1*ͷ))ͦ)z{7i QP i1` h)hJѝ0  H*j#=I%8\SU  Ȋj * A**j@ @  @ !( D#h@ !( D#h=I%8\SU@2SPLOUTe5T`FLBFCN J"I8-7Yes 1D(4`WL{F,veZ`(Bf ݅tH!@`a ;d~*7XAj|YP9Y5YBFx8",x O3m(@ 63m n Yes6)gYL ]cVuY; bd eUیͼ,xٺ6-Yd(YesuY;L:i`ͦ -p\Yx[ـeM̆mFmd3l t< hY,v bY&Dc`Af@mnM1qeѱp lAp.3m 6XJ3j 6ڀVͻ .87ߠ\#f VKó-qX܀ͻ .K:,>@%ͻ 'ū!@Ԫ:-qUf+2Yd3nhnJӡa7ۦb&2HPS+@P2U #,@P2ӕc0 MP3 U #1 MP3T;IIa%R3$! FMAC" @!@=~vO#~ Q w#6 #wDFK>2<2?2f>2=2<2<2=2<2?2=!= w#—<2 =2=2=2=> 2<:m@2<:r@2=>;2=<2=!"=+"?+"=* @!!62@?2=2=2=2?<2=9!-="+= ~# L*=#"=!"=:==2=!=>2?2?͖ CCl CC0Cw#C!-= ʎ ~w# Žw:==2=͖q:=ʨͶNЯ2=NLگ!ͱF> 2-=ͰJ> ͰJ7Ù- !"(=2==2?*="=:-=*>$2-=$2*=O :ʈ:*=$:==$O !=~4#>$Nwy#*+=+~# ʹ%O ~~~#~"RR ~*+=+"+=: =e%p "_-ʔ7+-"+=%ù: =ʳ+ "(=d  :¯@ O 0 : = w8: =f`e#~! _^#V#N+! ; !-="+=*(=|O : =fr'!==Nwy#-!>"=!= q#E0 O f;f:<‘:=VʅMʅDʅX2@?x%ACDEMNOPQRUVX!=~ p:>2>%No END statementû:=.ʄ$ʌ[YTE3ALLSALL1Cj?CF1M/MA?MCMP2NC2NZOMMONOND1PQ PrPDsPDR2PE*PIrPIsPIRj/PL2POSEG1Z'AAj'AA ADBC"CR CXR ECEFB"EFLEFMEFSEFWIiISJNZSSEGWIiILSE ND NDC NDIF NDM NTRY QUQXjXXXITMXTXTERNALXTRN LOBALkvALTvLTF2FB9FDIFFEFF:FIDN3FNBFTaM)NQNRNC8NCLUDErNDsNDRrNIsNIR"NRNXF1F2FDEFFNDEFRPRPC1C1M2MP2NC2NZ1PQP2PE2POQR1ZQD2:DA DAXrDDsDDRrDIsDIR3*HLDOCALJXI8ACLIBACRO:@OVBVIAMErDEGOPjOPQRRARG*RIsTDRsTIR*UTR UTsUTDsUTIAGECHLOPR"OP UBLICUSHS$USHALARC!EPTZ&ESETR(ETsMETIsEETN IMY*LjLALCZ,LCkLCAroLDMNCNZPPEPOY.RjRARCZ0RCkRCArgRD"STR2STZBB*BIR4BCj7CFZ6ET"ET3"HLD0IMZ8LAPHLZ:RAZUB#UBTTL*UI$ITLECHGR@ORRA*RITHL680807Z80%COMMENT&CREF'DEPHASE(LALL;LFCOND)LIST*PASS2+PHASE,PRINTX-RADIX5REQUEST.SALL++*))*+e+m++))F+J+O+-@  F"  (8/~p}=^w *+=~#"+= oA 0 : 7}ɷ[ a { } 0 ͻ*+=+"+=*+=#"+= aM 0 != q#[ !=6#ͫ 2<ay w# yʙ ͫ r ґ r Gy2=xͫ ґ Ñ $.@?_// // &:? ͫ & 0 ͫ 7  G!W?:=!  2=~!?  "U?^#V!L? w#4 !=~E 6!=N zʸ ^#V#^#V#~=s =G… #h #~=² #"$=#~+?O?!L?w#™ w#s#rJ J +>Ê <*&=~*@####~7#_"@:=$.?_ ;O "$=͍ *S?z :R?O s#rw# =1 >wG#w"$=#w#w#w###w#C "&=####p*@͇ :*$=|>!r ͱF?Symbol table full |}:<:q@:=*$=~@ڳ >>8L!=F#~8L½ *U?  G~8 #~ +~w#~w#s#r#*=s#r~@w:<# ~[~[#^#V#͇ L*=x>{[#z[:= *$=# :=[*$=~*$=#~wxGï>FyF: T0FT:FTLFTLFyTOFyyT-FTLO$TLv̗FTL$TOFyT:$T-F0 ,Ļɷ×EH͗×T-z`<ė{Y!~ ^#N! ^#VTԗ<xF{?FT8ė<FHܗ]:<Öh :>B:<0:<Ö>F:< F>2<—:<<=—<2<ů2< 0 ('2FEҥ:<ԗ OT-ͱyHFyF:>G©<xGd*=*=͇ d##99zC<—xxT-å$ů2< 0 (2F{Hԗ:<ė]:<=ėHԗ]>F]hAÖHԗ]hU:<ė>Fė5{:<=ė>F@ÖHܗ$J L:<`ėUHܗ]B:<(:<ė>F]HܗJ ė>F]Hܗ:< ė:<ė>FTԗO$e7:<(>Fڴ{:<̗ :<F]ė>FU)e:<̗(:<:<$]y  :<Ö:<Ö>{:F):<F>FF5{H$]:<ʮ ė:<ė>FyBOHėJ ̗]:<ė/H$]:<ʮ(:<ė Ü:<HܗJ ̗]:<̗Gx ė> Ö:<ė::>]:<̗ ګ:FyC͖"2>2>:<(>"FÌ:<ė>2FÌ:<:< ė:<`ƝF͖ė]:<ė>F2*F>FyK͖]:<w:FGÖ:<"]`ƝFp:<͖"@{ė>:FUė:< Ö5]>6FKB"@{"YPy:<O:<ė>FyWÖ!>>AFwx# -:<G:<7\*=#"= M'*= >͇ %*=:t@`))0) ‹0ˆ:>:>ڿʼ6!6"6'6*#"=ÙG:>@2>:<\*=#"=:>2>!>~ ͩ~@î~ʳ#~?Gxʔ#~12>>A͸bM#^#V"=G}2>#^#V">>C+#^#V+~t><2>= G>>B#~„Ϳ:>@>¡>2>>A͸  2>{2>!>"$=ͣ:<*=##"=:>G:>@x̍:>G}*= #"=C B x x1.6!36**>##~#fo6"6'##"=}xJ:>@xʂCBx*=++*>#:=G~w#s#r#*=s#rC B \:>2>:>x}­z ģ2>*>#~2>*=>͇ %*=:t@)0) 0"=*DExx0:":=A:=A: =H:=M:= x:= i:@+2>ù>+2>:= ¹:=:= :=:=>C2>:@?:=:= !=4:=j:@?:q@>8L!= ~#^:=T:?=:?!=~#00^">=:=B> ^!-=~# T ^E> ^> ^O:@?y8LðJ>2=:=ʇ> 8L!>!*=#|+:=ʞ*=#"=:=|ʸ>-8LT!f>TT>S8LÞ~#8LPX |>:^ MACRO-80 3.43 27-Jul-81 PAGE := Q#*<#"<*<#">>> > > >!G# ¾ # o2=#  x# eo# S==x*+=+B 2=*+=++"+=B "+=G-g:<o|D-B} |B\DzHʂOIQĻz͡OVQĻ ã!B BV0Ե)_#_͊DSͺHS!B 0)T]))_Í!B 0Ե)))_ä!B G0 ))))_ýHõ:<!B 0 ܵO:<=ܵ<_PH$ "͊"͡0 V0 :=2=Ҥ= ʤ! ʤT#L=G#Y!8 ~q2< ;ʞ ʞ• & | •0 ã*+= # #7 ,#~G įxw+"+= Y:<ʓ:<7͍  *@w7 Gx2>">ģ:<>(~@x##^#VO6G#^#V"=y y£ã7͍ "$=~Bڍ~8:<Ļ2<##~2 å ã:=X '¤ ͺ'S$¤d OãXOR AND NOT MOD SHL SHR OR EQ NE LT LE GT GE LOW HIGHNUL TYPE :< :<:2>2=2<2>2>2>2<2<9">*@͇ 3A!B!c!!ڳ K!O2>h!=y!! !$"y2!!̻!!h!:ó Tԣ=I%8\SU@r?PAGE?cCMEMRES dE44hUSRSAVQO %=M R>Г`CLCLNITd4E% LTNTRYd4E%HLCLERRet$5HLCLMET A@ B,?PAGE?000 0 000(0x09p8008  Ah+d@i 2And `@f@pQP_^R| %PP oy].G,t2ǀ2٠PE`00Y" H)#O)"X !h:#X )Ce @I7$~/ph" ێ%`v0,`@m*z݅z@^-Vv0%n(U\ʠ C,"ͪ q@(u@ 3@hd,=hPD< #@yA!FUW`D{?Exuf$x2@ {Zdin&a<LV6΀Z, :KE+  dl FEfK4Zq@z(?*f`݅_@c@H\ @ tnҞ <a Ko48Hl hY"|ZӞn !WiPFڀ`C6DqP0q :)fP0p1b@\(5\ͬnm'0mepi8G3k(Df%eR8?8/86ͳ,`@3oD{@ Vf!? nĬln 3@3o 4Gm*0@ @!"<DCޠ6+3i@4[JL۔V!X(E -1ɘ@< m*f6ʁ ڮXL3mX m` Vrgq2#na*b7iI>H;Kx8Rd:ܬސ*@ū(t`jʽ .n@!;6]6mE ڊ 1R>'+U_ ` K)*@  iI*<ʊK1 eLȊj (Q` *i Q iiʑ hIqk*hiq0HihIjʊjȑ j Jѝp* Qpɪhё, *I,eHIq,ih**,jHq,H*j < h q<8T゠=I%8\SU柠@MSG001d4s(MSG003d4sHMSG005(d4shLCLDESh$$a 1ͦ $!ͦ 7΂1n2 &f4&Sq@m2M#Ȑo7 N#Il2̦Ae9 g9Mm4'C)@d:DCxn9LcIe7)rI3#(@Ͷ@tPf6=YŚV"[Ed7O @VxY :hqP Qiꪑ ij ii1 8#=I%8\SU` * Q ._QS#=I%8\SU敀P?INIT?d4$TCLSCHRd44(SRHDRVSU 1 9%R:QS#`YA9 :;lӣyM 1 ::H UБ@ 1I 1 :t U` - MR\.@d /`LlE'vL"$ږͥ Lچ:z_%0xi61,`:@ `ͳ`8⁸ͱ4ja0ne1 ?Y< v0` 4AFmO /D8$6-Gio5AmKpvPOb, ʹ 0fܰVcmeViO@ʨ"J~ F6'Ј 3jX-a)fٵ<xʮ# <!.l fٶ Em%6oͽ"0Df`*@ 8g͡C=^=Zyf&)a+[#Rͳ#+*@ 0}hŀ@ u-@ǫ6 Ƞ 2À ; ڬچ]ڊͨ`M "+X$ͥ Lۖ ͧ@L0U8 1>/3iśL!@BjǠ6Xdd~#q F@, Y| /H݀#`!@y@`4/3orl3lwN @  rmp fԐ1PDmf P áAC@6mIE @f`1X@$5)Y0uahD80;V!`=~St0  1GXd〺pC(9 XdxA0G D`k (#,:`z2`3k0`Ps!*00aݒ 2" \ǖm[^VmT>-Dt1nA7 Œ6ٶ f00ll0 l l (``h.!? ìw -n#1~` t@Uifؠ3P/?-Vm:ppu# < v L JxhAxHCK63lx#!Ql0fذAAfٰA@ 0 +70VF#X #`y[7X;V Af  2Yl! XVvlV>-Y#`,ɌT8ɐ&UNLINKt$5HxUSRSAVE44h`MSG00254E4̨MSG0034sH͈MSG005߀4sHLCLERRU$48ʈCINTRYtUDDU(RETHLRTUDɰ&DEALOCd$TyUU#=I%8\SU PCOLDFNet$dLDCOLD!dEt$COLDLDet$HALDFCNdaT)%Rr HS*PZ:@ v@G3iClfH"2̴0eh @Hu쀎!f{ Cl{%A4A{6-"? V-e1 &ihhJj 8Tԣ=I%8\SUWSREST4$U9pZ2 @f@ X"<) ?E2^+A*<e~pD&`{0nfD: CKDOSTd44%5HDSPINPdE5d4(pCALCBVdE45HOTNTRYUU゠=I%8\SUAUTUSRdUDypZ:@ i)ʊK3#=I%8\SU@rP?INIT?dE5DSPFCBSUMA9%R;ԑӣ`YEA :\@ @ F(%K 6Q qf! Wgq8]*g!FrD6Fs חd@4f8͠ ۘ8͡ '$ $\p63@(F#ecPfݰ#!'t@??N#F 6ͮ ,ڒ͡c`65D dlf D Fwٴ `P,~ m ٷP QYLB3@m?E6mIf@&m=C vmfЀ10f@&8B͢ *!#AF4cFmfڰmuڈ~+q@fhC63m 6:ٵTXt`X@E8iX$>Am [A@f`m`K6m 0YC7fmb K6m2O,&}Qϊ%%~3kP '3O/Q d#rLz`l~`t0sۧq< f߀!3@XOJ1z C@f0KWYl#+2_!@K%n(o #?H"2D ` O@H$?2_!ƀLf &'2zl\)""#FF@rzre'*),F" e)!&q@"* bze " Dr:*ze|"er bg#)&"Fr*J fD #""Fpr"jRDMFCN$DDd4>CQMCOMh͡ 0- n(3@mT Y(nfN e~4[l<z͢%- nf s%3@ͯV,FfT3@h`3j,' l!b@ ݄7O,(7F6[rͥ x ڈ-@b: 4f x`nͶ 1?[sc6+Ǭmf :ٷF?A0,X:`F~2V+4f0 w\{63h Pj Yiͯ@C6Yã,>24zl8bͧ.VhYh"/Q9[Y4b6( z@%N\1pf@ t3[d@, p` 6-h`3i &m[QAY@ n i|ٷxFhhzn#ŇVY#VmA`O5ͣA2ͺ@!KN@ n£Lnf !|86LY QAY@ n &m6؀@;f&h٠4[Lڜ4yWp&mX[ͨ۠ nĮ Kq9ovX b@fûd62Xu |@na h~F#0m ٵF_3o6-m[L@f9A@-|}m0@a ڬ>6ۮͻk6 zfѐ7k 66ƀk 聳@hfp0,X3hC*聳i( ~<=Y&ͺn0,4?q@=o x​4\.Vhͤ͢ qF=1Yx8~(3@zw<8Yna&f%A!%ͯ@C6Y ç`l>2 eT3nͨb00- ,^͡L;;+69Y F.JnkqUBm_p#66"PfEQQ]݅jA `v;ٴ~4ٷD ~4٠tg;Y r@v6n!w4c#?໘>G?}'~Cu<"O F#< Vm`1͹m8gxͼͧf@@f0Fͻ쫄ͽ(9ۧs;thn-Ͳ[63o+6Ӹn(7Yept?⁣tl@3l8VͰ`P2?6€2VZ-mf6E&[;cKthnPn"``^)gi0aξ[th_,F?WÀs$;bthgf@CE b2s G=C;`y}>"ٴFqgvK f PU3@ b7T@f{EsNC&mf EwOͭpMf 3l3tn-Yw7Ov^?qta`fbARrOhhW@5z|,=M祡E')YY1=A:3^ V#= y B3QUc&`=a%R2l+Q I2Qc0@QL2SУ=`IM 2ё% 1MaR33 MQ3hU 8P3U #"AMQ9>3U $MQ R3;92 3MI!9%R2 UPc#Q R2DU  AQ9>2PU #&Q:3UPc>y1=-%22zS)@u -I>2UP%a]I%Q3 UQc2`9Q :3,TВU#'@I%22 UPc;`9I%>2p UУ/ II2ԑQ6`5-aR28IM UJ3 UԔP9YM]aR2 Uc?YQ2,QU#*yI<2\Uѐc1yQ:3*U8 Qa63c1MYII:3> TԔ7 -]I1.2 U̐c+%9 II:3| #899B3. U>Q N2 #)`M1M.2 UPc/QY23 UP%IQ!1J2QVUc:QaJ3 SЕ=@ -=A92H#%M-5J2P'Q1M2T(1Y9%R2UPc.Y9>3Pє#2 I B3^U:9928gST#=I%8\SU2 DLSTBLdUHOPNEXT4UPDFCBUD4CLSEXTր5$HFNDDDEdDDXFNDNDEddDDT8GETDCT4UDD5HGETDDN4UDDDCHKHDStUDDThGETDENu$DDXxRDREC$E$T48WRRECeu%$T48.CLROTEdD8.GETBLK4Td4((.SELDSKe$U4$H6GETABAd45dx6CKSPFId4h>ALVNITdtUDD8FGETLSAT4E$ECKFROdtUD(FGETAVLeU$DPFADVDNOe4dTDFGETABN44NGETDXAtUDUNGETBLMtUD(NGETDNO4UDDNGETBKS?mKl3@m``3mx0f ڮ#>-DVm[ Lͭn7 *MA@`Xڰ?M^ ݪ0D$?&h~zhK|8b1͵l8~ +ެf`a@+63l 6V6h @8zkpŒOf m& b;47 HR)> DcAH@ri-|#7( 6 rG;t6my ݥ'sjHHrBa꽒f0i|>b1 a0^f7+6nvb0-~ ݪ&#Ճfܠ{,fmXmfݠnͩa6Y! BKTA.Ճ6Yx%_0LF#Pͨ`,ͳK6րl ,nK4n 6 `f06@\[c669Y R-Ӊͫ,<;Lx(1mCu_H 2aTB6A`ʼ b P+ui@< L/n`/ ؠcD3Tf0Z![6o6lf6m u!\Y X(r1@m @5z@CP ٷPf`{BOx"LFe!x2~9rl& 3jK6Ye&O(|ӹw!2[cX~a԰ ӘO- V"2Y(!͹?@ m2tDdMV阌|R :[B3%~s 8cHE,,fР xn)mi ?X2c~n-Kͱl0bY0 7MvP?\4:CEn/f,Rn@&mW eaXuu6u pm_n@mWY/mYPY,& |+,`3j(G KrX8b@XcFm? S"Xͩ 4@ biH#+ DP a06Y hYofm?3n(pe{uZ/2@f0F[^f`m`a^FmKm^Fha^F,fPV.f`a%dTzVm`P D<,E@[6kHʷv0jl,62áR UfӰf x 8n6mj=-XD>-D Z"HaӅRBE#͢Q+p\7O6maU_AD8D#9mYiWB8@  .D+URAZ,& H-ݥ"!4BO @ ڰuh:ۧACu)_3k+u)[7NbFJ;.m#(fmHS4Ve%cAḬ6i0JͯX, mI A%PK6Ku[C7Yes4F? Ym6b;ۧ4[Ѱ?/4[ņ7O6jYjX0g Eb\\ C,3dkHn)6\%cXl>|LF@ n vAr,:}3kK6On`|, @p;G̀x0 [A@ }ٶ a ŀrl)n g廅nG ^=dZVm!F?A| p`p rc &~AH4hY$BIHS%hPB݀ͩa mfܠv6+F6#A͵lz63nC61Y(ڶͰ!(Ɋ͵lۺfؠe^BEnm;n0xG?| Ilfn( 6K:͢ǵ͵A+6Q@5y!DØ"O06rm@a͡A K63kD P>,~9E[6DjU\T0k!H2eK60 qb ۺͬ`b5xo{!d ݒ'ۤ`,|eadۧr tBdnhC6-ݥ&K6 [ݤ!sBkwiIn"`6BdjH\\!. ] /mI 0)ff`Vm?9jf00d۬qـf|>ٵ$$(,m#?ǯtGvKtAnLm q@-~6?#6 ۧR tBdM ɌكTtUDdPLOKFILdtUE3`NGETFXÀe$TdCPYFCBdtUE3$NGETABSdtUE4dʨCQMCOMd%Tdu(˘BUFMGNtUD5$`&GETRCAdtUEE(&UPDAFPd4d4%x.GETDMAtUDcT-GETFD4E%d.DSKERRdU%%Hp6SELDRVd44%hʸFROVECTSc=I%8\SU捠2 LOGUSRd4HRDSFCNe4Td4xRCDFCNU4Dd4SRUFCNe544d4DFSFCNe4U4d48SERFCNdtd4SCFFCNdE4U%(SAVRRNe4e%$88RESRRNd5%$INCRRCTtUDdHpGETSFAtUDcTGETFXAtUE3XGETS2AtUE$4GETCRAtUD%8GET78F4UCshGET78D4UCsHGET78C4UCs9p|- 0~Ӹ?X`4a@b0nG@n Dnˌxb @[GWQ㭚g!ݒ͢ Өݺt2YxuNKuZ;-[Ѹ@,zӹ-;-Yi\eYi: ӹt7NHt[dJ1!=qMvp|ZK6Dd##1\KE8 " fPр#0cFK4?9=x7OKu[% P%~dAH" p0D@fр%~9鸘3Y-ө1t&[stOdNОn ұE9"&22UPc&a%Q22UT)aQ9QIf2UPc5@MeMM.3fQVUc8`M-MR3VU#' 5QpQQԣ=I%8\SU@BUFSIZd%Te8MEMBLLd$ԔHBUFMGRԀd%Tdt@SBPFCNe$%d4FFBFCNd4$5Ip  0X 3j8eaZRl[ux~ .2njD f q)!#`lHFqLt-T&Xn)X!t-Gi/;HC+W\,H~݇@XeX@/QXu ;t$PNHnČڲ6L>ñ-n 7YbX7 a+u^)7NFJԫ nH: VC6*-p[JBcOAGQV fFmS?^UTVb2!` wiI r3iX# 3h#62€6Y|Ĵl*ͬ@0fmۣ`-TV!eV ,6nD@!uNI^J†,DF]`ڰnDa@9So[t*/t$nMӸLQ6HwOS~cӒU#A ::SM-5J:UC ! H*`i| a` ?A[+`^\ -f +D;V Yh(o 6怷O4ͻ-Ӹnn@@ e~Nb3^7Jn 4;` ~ CC*ƀYWl'a-~ _U8eC`tnpf@mnmҰq~H +2,6z7M6(2ς |:ؠnv݀Aow@cXm!eҐ ;mp]f [tnAMӀ-u7N69]mpF]mpMf -ݥ! n@Ӡ]Y0`7M'`H$M wiIu7Nvmv p f 2;tnҰY^)4|nnAYCͱ Hz,+,({7NnN`zpd#+b+6|n Oͭ+qC<`~NBt n.,X2[` ~ 9Cŀ!ʽ~`mӸ#+:-1VZW0<qdhc=9M-MR2XUT)a%Q2 #6`9M-IJ3zTU'#=I%8\SU .?F2"Z" ӑS#=I%8\SU@0CPMVERd4d4(RVNFCNdECd4(DT2FCNdEC4d4 SRCFCNe$4d4ROUFCNdUDd4p7Ye$T7Nd: 0eaT#f0L  8T 0)G)e@#ò .^g=,mf  D0turf@ɛq34a`͸ v@.X : v%1f0x\@Ƞ":"tYwr˘ a Yd(Y< < nkv@_  d2#2ӀTUDPGETDERThATNCHRd4D5HDOCONIdD$TRESCHR%D4(PERRXIT%D4(ȘECOCHRTd4pLSTOUT45Iӕ#=I%8\SU  *i Q@ (Ji Q`  Ji Q .0 ƀ@2zr" QQԣ=I%8\SU捠2DOCONIdDdd4CKDOST` h D+4q٠t@nQn ѱp'Yi -@pQ0Yd@-1-Ӂqq 8Y4U#c XOPF 0pUEm}``Vffk%a0QA~ @4XUXD(P6, 6DmXͰ`X!@dٴnfߠh>Xl6 p f1Fdh 6TU1Fͧ@.m :XLEXbS0V+thnQn6<[r*ū$C 2n):"EX誈10 IiʊK1 ʩɉ)qP h*iQ  *1 )q8RS=I%8\SU` -#(^fװ{(?(?{*(?s"7y1 a3jaz.%V@½[Vmnnx^VKf!`XVh`XVh`c) !>2T/ =9%:3 ӓU'Qԣ=I%8\SU jJi Ɋjꪑڰ Ih^g=,mf@ D0f`OR)G͵` x(_ w_@},;uY[xMѰ7Fsۧr%f Yd X n#n(E,n'f?zf,~d7YeuY;0xՀXnVmh0#3#X!!xe1 yH Q ȩi QP i1` h)hJѝ0  H*j#=I%8\SU  Ȋj * A**j@ @ ????hH&)") =I%8\SU@2SPLOUTe5T`FLBFCN J"I8-7Yes 1D(4`WL{F,veZ`(Bf ݅tH!@`a ;d~*7XAj|YP9Y5YBFx8",x O3m(@ 63m n Yes6)gYL ]cVuY; bd eUیͼ,xٺ6-Yd(YesuY;L:i`ͦ -p\Yx[ـeM̆mFmd3l t< hY,v bY&Dc`Af@mnM1qeѱp lAp.3m 6XJ3j 6ڀVͻ .87ߠ\#f VKó-qX܀ͻ .K:,>@%ͻ 'ū!@Ԫ:-qUf+2Yd3nhnJӡa7ۦb&2HPS+@P2U #,@P2ӕc0 MP3 U #1 MP3+T;IIa%R3$c5`9UMIMZ3.UPc4`9MQ53PST゠=I%8\SU@ -fvh͠ 3l2Sr &sqe&#y)P3@ Vm/z@4'"TdxY :hqP )ij@ 8ii1 8SQԣ=I%8\SU扠  hi(i` hhHi` 1ihiӐ -f@0mDYB@<amDtpQFm$a@mDXtQfm7a8b# kLd!)+FP**J Qԣ=I%8\SU PSECSDԔ8HOURSTDDXSDTFCNe$EDd4xRTCSEC ZX t0`H3@VnF-Ӡuqn##-0)2nҞd@@2:*Bbd#""FE2*Bbd*$*N=I%8\SU`RTICCNTe$E5CTPFCNd5%$8SMFCNe4D4xRMFCN΀e$5d4xhLNKPOLـd5%HXDISDSPdTE5SETDRFE5e( WAITEd40 DELAYԀ$U5TXxDLYTICe4t0GETTOSe4UDDDhGETDDFe4UE9p@` a $0S3i 2!@ ڒ!%Yu,[P6g@ ;X$B \M"BFp!#hN"3TC ¯dhH@@0,:XͰ :XK2:",0b=ZQeVmuY xOv&nMp^. Y o[ْ͡ ,?0kfH2̑e O1쑠 3lj(sX0Nb3nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TӒU#=I%8\SU B` ~k*hir~/y@f 3@h4f* Ɉi* Hɉ*p ji*  I)*@ ;UdaY9++ ΰK#9 Vu@/vث-ݥ M t²Ffߠm`N4OБQ5 QJ2U!@a%Q2tSS31 15R2,S'TP=I%8\SU2 INTSPdE5DDEXLATe4tpDECOUTeTĔLNKENDÀd$Tx DMSTD4UPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8PRU#=I%8\SUSUBFNe5T$ԕIpH$U!Z{42,@@mpQEPEa6p8&ͦ &2rӕc$=Q9QIfpUdaY9++ ΰK#9 Vu@/vث-ݥ M t²Ffߠm`N4OБQ5 QJ2U!@a%Q2tSS31 15R2,S'TP=I%8\SU2 INTSPdE5DDEXLATe4tpDECOUTeTĔLNKENDÀd$Tx DMSTD4UPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8T%R h \G| inw2@v t@a{L,<#! 2HГ'LNKENDÀd$Tx DMSTD4UPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8V[ vYxFVB4#Z!C}Q^`ݐ*>-X4W]<!@` 4fP`0Yb |2]`V tݤV dA2brZ*r$d#""F\@* bbzTP=I%h,("TE5INTSTKdDUH0SHL7HLdDT4UHPUNLINKd,PS"`%9%PICINITSTԠdDIA`Z-KA%Р h`8Z-KD%p h\. K CxHZ`q I808.082^rxIFrx< p>K-v=XW+l @`@|pbGp$#+j(yX!ah^.}IICINITdDHPIOISRedT9 h`8Z-KD%p h\. K CxHZ`qUPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TӒU#=I%8\SU B` ~k*hir~/y@f 3@h4f* Ɉi* HCONBR = 8E ; 9600 BAUD CONSOLE DSKAST = 0,DSKDRA ; A = FLOPPY 0 1,DSKDRA ; B = FLOPPY 1 ; 0,DSKDRB ; C = HARD DISK 0 DRVTBL = 0,0 LOADFN = 0,"OSMASTER","SYS" MEMTOP = (0) ;(0) = DON'T TEST MEMORY !ah^.}IICINITdDHPIOISRedT9 h`8Z-KD%p h\. K CxHZ`qUPRCASd44%hXGETDMAe4UDDGETFAdtUDDU(GETHLRe$UD(pEXITATUDTSTUNDSTCTSTIFF0@# וs"yFˡ"1  ?"HR)Y `D 'fͩ S 6 9;JCdVC`Ob\`$F^b[#8 `3|2Db3o'!Yq`0(_π Y#g&Kjls-rf0 ,#`O a{h5 0nb3 -pͺf2[Qt4dNKt3doRd K^o3\.n@Y1 8TӒU#=I%8\SU B` ~k*hir~/y@f 3@h4f* Ɉi* H title TURBODOS OPERATING SYSTEM - FLOPPY DISK DRIVE SPECIFICATION TABLES subttl copyright 1983, software 2000, inc. .z80 ; ; copyright 1983, software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 01/27/84 doc ; name ('dskfmt') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; false equ 0 ;logical equates true equ not false ; ; ** patched for higher density format on Turbodos 2-85 cpm equ TRUE ;set to false for TURBODOS 0 track offsets ; on double density disks ; tsd equ 2 ;two-sided disk bit (type code) ddd equ 3 ;double density disk bit (type code) mini equ 4 ;mini-floppy disk bit (type code) tpi96 equ 5 ;96-tpi disk bit (type code) ; public xltbl,dtco,typcod,gaplen ; cseg ;locate in program area ; ; 1024 byte sector, double-density, two-sided ; dstbls:: dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(16*(1 shl 3)))/(1 shl 4);number of blocks else dw (77*(16*(1 shl 3)))/(1 shl 4);number of blocks endif db 4 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 16 ;physical sectors per track dw 77 ;physical tracks per disk if cpm dw 1 ;number of reserved tracks else dw 0 ;number of reserved tracks endif dw 0 ;translation table address db 1 shl ddd or 1 shl tsd or 3 ;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, two-sided, 96-tpi (mini) ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(8*(1 shl 3)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 8 ;physical sectors per track dw 77 ;physical tracks per disk dw 1 ;number of reserved tracks else dw (80*(10*(1 shl 3)))/(1 shl 4);number of blocks db 4 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 80 ;physical tracks per disk dw 0 ;number of reserved tracks endif dw 0 ;translation table address db 1 shl tpi96 or 1 shl mini or 1 shl ddd or 1 shl tsd or 3;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, two-sided (mini) ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (39*(8*(1 shl 3)))/(1 shl 4);number of blocks ; dw (39*(10*(1 shl 3)))/(1 shl 4);no. blks * 2-85 * db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 8 ;physical sectors per track ; dw 10 ;phy. sectors/track * 2-85 * dw 40 ;physical tracks per disk dw 1 ;number of reserved tracks else dw (40*(10*(1 shl 3)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 40 ;physical tracks per disk dw 0 ;number of reserved tracks endif dw 0 ;translation table address db 1 shl mini or 1 shl ddd or 1 shl tsd or 3;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, one-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(8*(1 shl 3)))/(1 shl 4);number of blocks else dw (77*(8*(1 shl 3)))/(1 shl 4);number of blocks endif db 3 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 8 ;physical sectors per track dw 77 ;physical tracks per disk if cpm dw 1 ;reserved tracks else dw 0 ;reserved tracks endif dw 0 ;translation table address db 1 shl ddd or 3 ;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, one-sided, 96-tpi (mini) ; dw $+dstl ;disk spec table link pointer db 4 ;block size if cpm dw (76*(4*(1 shl 3)))/(1 shl 4);number of blocks db 1 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 4 ;physical sectors per track dw 77 ;physical tracks per disk dw 1 ;reserved tracks else dw (80*(5*(1 shl 3)))/(1 shl 4);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*,;SSLAVBKA.GEN file to generate an "OSSLAVEA.SYS" (banked) STDSLAVE ;STANDARD NETWORKING SLAVE BNKMGR ;BANKED MEMORY MANAGER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS ;SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPOOL ;DESPOOLER ER C USES QUEUE C, PRINTER D USES QUEUE D ;QUEPTR = 3 ; COME UP ON PRINTER C ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUS0 ,!:>!2>>ó Ä!:4!K!!xh!G:$"y2O! x怱!>w*+=+N{*>2>z̻̻ |= yWx=z"z"ʘ """ Ļ>Gh!GØ ">?z7" ͏""=">y2?!"o>g~#fo:?Ļʛ"yb!"=yͱ%"*="""*>"{ͱ%zñ%   5#?#I#S###3$$$##6%A%M%Z%`%i%%%j#%%%&&(&H&i$zW{_i$zW{_i$zW{_*>|/W}/_:§%ñ%*>|/W}/_:§%ñ%i$zʑ#)Ç#i$#+}zW{_×#*>::y$>§%ñ%*>,$::§%ñ%{_zW*>N$: §%ñ%N$ DM!>=g$))U$U$::͘$: §%ñ%z̻zB$|G|ʽ$|$$$|/G}/O!>$ $7>{_zW}o|g=$|g}oɯO_yW*>z%|%|͘$$: §%ñ%>O!G~%͇ T%~%͇ ?T%~%͇ W_ ~%m%~%͇ T%~%{_zT%7T%?T%:*>\W:ç%*>]W::>@2>!>4~?%o%$w5y%:>2>i$}L_i$}L_i$}:_i$}0_i$}Lo{L_i$}?_*=*=͇ : 2=Ͷ,h x 2=xGʖ&:=–&*=*=͇ :=G*="=:<}"= :=&:<ģ:A?':A?ȯ2A?O '+>G2=<2A?2=*=Ú&'+>2A?G2=*=Ú&'+>2A?G2=*=Ú&:A?Ķ,:==E'o& ^#V*=͇ s#r2=*=##0':W!<7~$)G*T],Q*zW* >*#*+=z̗}O|G:= O Oė7 #~@w ~įwy,n*>Oç*f>; *+=+~# **ʮ*î*#"+= (—# '—O͢*0 # )ė: >2=;+2=;+2=;+O )+ )+  +~@w,O »+>2=>2=;+2=: >2=;+_+>_+:r@/o:<;+}2r@2=;+>2<;+2<;+>2<ͩ(2!=w#"$=:<ģ,+:=» *+=+3N,N=2=*+=~#"+=!, (—# '—O —'—# )—: :<:=Z,>=!B?G~¯w#f,pͶ, /—O Į,/—: #~¯~$w'+"=>2=!"=Ö&>2=:=O , ,~w#~d,~w,,͗,wͯ,~@@~w#w#w#wO ~Ի#~%-Ļ,"(=T-:=2=Ux©x 2=*(="$= x.h :>"(=~w|2=T-x©*(=,#~¯~@ w#s#r#*=s#r.zK:?\/:<č/!<4~=A.!B?~-!>~-!@#B?~# - -- - -!;?p#"$=ͣ'!N"@; (."$=~w#~@P/~.#^#Vͣ.*= ͣ *={ģn*+=h %!"="=}2=j!/!W?>|;T:=8j!=44!/!?>|;T͙/*<|ʭ.:@<2@?2@?ó.!1/͵/!4/͵/*<|.>,8L:@<>,İJ:@<2@?2@?!D/͵/͙/.}ͣ*>|/+.ͣ:q@(/8L>8L͝KKNo Fatal error(s) Warning(s):=Gͣ.Ͳ/!k/͵/#Ù/REPT/IRP/IRPC/MACROUnterminated Ͳ/!/͵/#> T> T:@<> ͰJ> ðJ!/:@<ñFConditionalSymbols: Macros: !9*@͇ 3:?!"@" @*?0*@+<2?2?2?*@$͇ #0"?%4;0~<=W0:?<2?:?:?=2?<#~C0:?C0:?C07"?:?=2? &¶0*+=~ ʴ0 ʴ0O 0"+=´0>&2?#1&¶0:?»0>& :2?*?~0=0O+0 0x+~00:?*?~!1-=1O+1 1x+~10<*+=O 0\1G~# A1 I1Ͷ051xͶ0G¨0&¨00 "+= u1 u10 {1Ͷ0b1ͫ P1Ê1ͫ P1Ͷ0Ä1 ;ʬ1Þ1ͫ:Ͷ0 ʃ: Þ1ͫ:ͫ: ʯ1 ʯ1:" @ʃ: ʃ:> :Ã::?1*@4.2*?~2G+2~/_1~+2=G+~+2ͽ32+<=(2+ 2~>.ͽ3ͽ3?*?O DEO g2=ʋ3%ʸ2,ʕ3 ʕ3 ʕ3;ʕ3!# ʲ3w+ y2"`3V3ͩ(:= 3:<32PX 2|2>:K3)073>)3073=23D#3E#3 >0K3x,3x0:73 K30O:K3>0K3y*`3w+"`30 *`3ò2Ow+ t3 ʷ3c3w+ c3y2ʇ3w+ò2ʲ23ð2°2{=*+=+~ 0 0 ʚ3Ú3!=͇ 3#6 +#1&3:#1!  3#1!3l ?Stack overflow, try more P switches ͩ(:= 44"?/H4> VC4O :O -0i4-= : ^4ɯ :̓:!*@*?!!44͇ º4:?£4xº4*?y9o02?*?W:4-=m:ͽ3 4*?*?*?"?"?"? bkÐ4:?2?5ů2?: û:?o5O :O OC5yK5y S5y@`5:?=2?:?<2?:?:<(:?#~>5)!ɷ/"?N2O:= ʕ5*?o0y6+,ė5# <ėw+:= ,6G5q2 )6>,65 <2? ë5 "6:?6,6 ;,6<6>6,666 w+5:?,66+0xė"?&i"?R6A4>y5C4* @>2?3-0ʖ6 ʛ1;ʐ1'ʆ6"ʆ6#1l6Gz0 ʛ1ʀ6Ç6" @ :̓:!*@*?*?!!64>2?"?͇ 6:?6x6*?##~#6+æ4W:7-=W:1:ͽ3 6*?4 bk6 ʗOͰJ# ;7ͰJ,7> ͰJ> ͰJ:= : ʗ2?O i7: Z7r7A4C4!-=:?O~ʊ7 #~7!ɷ #"?~(w/"?N2 ,ʨ7w+2?2?w#w͔9 :s#r:"@*@͋9s#r{_* @{̟9*@w{<:F:" @{_͔9zʟ9*@}g:}o~W:{|:F:{_͔9{ȯw#w*@s#ry9*@͋9q#p* @{:*@" @~{_͋9{_{:F:*@*?:?:*@%99i zi W{_*@*@99BK*@"@x*;+w ;"@4;ô9*&=*@99i zi W{_*@99BK*@*&="@ "@xz; w#m;2>2>O!^#V#͜;…;:>Tz^#V{¥;};++V+^{ʯ;w#w+++å; F#"$=~@#~Ĺ<~#^#VG<ͥ<_d<{j<{@u<{m<{_!`~8L_<###~#8L <>1<5R<:>wT!=4:=j*$=~@w> a<> 8L>*>M>C>U8L<*$=#{G#^#V#^#V"=}"$=#~ ģ>I8L!="=*=6!=~G#^#VͣQAQBQCQDQEQHQLQMbSPcPSWQIQR bBCbDEbHLbAFjIXDjIYdrNZqZrNCqPrPOrPEZ:w~#CZsZ|<(}2w:wsZ^#V#~#foz~#C\K{˷ tT˷:{:ORO:|:}\:(:~ ~YwYYf( ~;=_!xF#^#V*5 KL#SN@F\:w@6\NZZ[A(Zp\q@S*6(#6+>_~ (͐("*"> Z|(m~@2 C*|( Z*Z!e ("6!%e "Z !wƷn>o!H####͉͐*####͉ͮ*|(ͮͧ*|ħ0++++~@:w@w@*|!^#V+R!""F#6#\O(6 0(. (/(2(.0q#W6Yv!!H;=!4~:860+D~To&q5Yv(^͜зY1Ke<\Y6<Yn(YYv ͈͌ ͜N<1KYvYn͈&V< &>( G&#6NZF\Z6\A(Zp\  y=Dg:o L#SSn@:w@Du@^>_6D|!uUtVnUfV^|!uWtXnWfX%V%Spooler error (Ignore, Abort)˷(Z9O:=:~<eooooN1F2˸~/Zf @~!,!,O ^#Vz*.Yz( !>7=Sҷ 7w.w379ͅҷ ͠+Է%ӯ͢~/Zf(!!3O ~w!. ~@Zn( Z~(Zf 6^(#Z~#?(~#<#~[~%wf(L~ƀwZf ~/ f Z. #n(s1r2###v( ^>V?ut͵׷^V N-qZN( ^aVbNc~ds r RELCRFPRNP?Command error?File not found?Can't enter file~ͰJ#ñF!FF!FF!FͱF=GCOMSCNF"AF!G:FG:FO*.G# G!G GG2F*+++"g@*A:s@2j@*g@0J:.F =G2w@2n@2u@2t@2q@2r@2p@2v@<2o@2m@Fů2f@HAͩHA ŒG>2f@!x@͝H> 2A2A2Ay,2p@¶G:f@2p@H#A:q@G AͩHA:A2l@ 2k@G:f@@2f@!@͝Hy=7H 7ͩHAH 7!@͝H:f@!x@}H!@:q@8H@ A> =.H}H:n@MH:k@MH:l@2n@ _2FKJJ*g@##:o@2j@GA ~—HHw# H #ÍH w# H:i@!A~ Hw#ºHJ:7>HxH͙JOx=y I[A@2AJx H A-; SSLAVE.PAR file to generate an "OSSLAVE.SYS" (non-banked) USRSOM = 0D,0A,'Advanced Digital Corp. Super Slave ready.$' SRHDRV = 0FF ; SEARCH SYSTEM DISK FOR .COM FILES COMPAT = 0F8 ; FILE/RECORD LOCKING COMPATIBILITY FLAGS ;CPMVER = 022 ; INHIBIT CB-80 RECORD LOCKING ;CONBR = 0CF ; USE 19.2K BAUD TERMINAL FOR CONSOLE WITH CTS CONBR = 08E ; USE 9600 BAUD TERMINAL FOR CONSOLE CTSBR = 67 ; 1200 BAUD CTS PRINTER ATNCHR = 0 ; USE "BREAK" KEY FOR ATTENTION ; ; CLSSTR IS THE CLEAR SCREEN STRING THAT IS SENT TO THE ; TERMINAL TO CLEAR THE SCREEN WHEN EVER THE CLEAR SCREEN ; CHARACTER IS SENT TO THE CONSOLE DRIVER. ; MAXIMUM LENGTH IS 8 BYTES. ; LAST CHARACTER OF STRING MUST HAVE HIGH BIT SET. ;CLSSTR = 0C,1A,1B,2A+80,80,80,80,80 ; THIS IS THE DEFAULT STRING ; PRTMOD = 1 ; DEFAULT PRINT MODE = SPOOLED ; AUTUSR = 80 ; DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (; ) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ; SLAVE RESET CHARACTER ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ; WARM START AUTOLOAD FILE NAME ; 1.4 program termination patch (NON-BANKED) cintry+14f=patch patch=32,memres+10,0c3,cintry ; 1.4 coldstart.aut autoload patch (NON-BANKED) warmst+84=0,0,0 warmst+27=patch+0f patch+0f=0cd,warmst+0c6,0c3,otntry warmst-1d=patch+1d patch+1d=0cd,warmst+7b,0c3,warmst+0c6 ; 1.4 chain to program patch (ALL CONFIGURATIONS WITH DSPCHR MODULE) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db  ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ; WARM START AUTOLOAD FILE NAME ; 1.4 program termination patch (NON-BANKED) cintry+14f=patch patch=32,memres+10,0c3,cintry ; 1.4 coldstart.aut autoload patch (NON-BANKED) warmst+84=0,0,0 warmst+27=patch+0f patch+0f=0cSTDLOADR ; STANDARD LOADER S6NIT ; SUPER SIX HARDWARE INITIALIZATION CONDR ; CONSOLE DRIVER S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES ;IOMEGA ; IOMEGA DRIVE ;HARDISK ; HARD DISK DRIVE FOR HDC1001 ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; SEAGATE 419 DRIVE TABLE S6SIO ; SUPER SIX SERIAL I/O DRIVERS S6RTC ; REAL TIME CLOCK DRIVER UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMSTDLOADR ; STANDARD LOADER S6NIT ; SUPER SIX HARDWARE INITIALIZATION CONDR ; CONSOLE DRIVER S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES ;HARDISK ; HARD DISK DRIVE FOR HDC1001 ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; SEAGATE 419 DRIVE TABLE S6SIO ; SUPER SIX SERIAL I/O DRIVERS RTCNUL ; REAL TIME CLOCK DRIVER ive (all configurations) cmdint+192=cmdint+0db  ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ; WARM START AUTOLOAD FILE NAME ; 1.4 program termination patch (NON-BANKED) cintry+14f=patch patch=32,memres+10,0c3,cintry ; 1.4 coldstart.aut autoload patch (NON-BANKED) warmst+84=0,0,0 warmst+27=patch+0f patch+0f=0c.STDMASTR ; STANDARD NETWORKING MASTER FASLOD ; OPTIMIZED PROGRAM LOADER CPMSUP ; CP/M FUNCTION SUPPORT MODULE ;MPMSUP ; MPM FUNCTION SUPPORT MODULE QUEMGR ; MPM QUEUE MANAGER S6NIT ; HARDWARE INITIALIZATION ;CONDR ; CONSOLE DRIVER CONREM ; REMOTE CONSOLE DRIVER (FOR REMOTE MASTER OPERATION) S6SIO ; SUPER SIX SERIAL I/O DRIVERS S6RTC ; SUPER SIX REAL TIME CLOCK DRIVER LSTCTS ; LIST DRIVER FOR 9600 BAUD PRINTER (CTS HANDSHAKE{PIN 20}) LSTPAR ; LIST DRIVER FOR PARALLEL PORT S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES S6SOM ; SUPER SIX SIGNON MESSAGE IOMEGA ; IOMEGA DISK DRIVER ;HARDISK ; HARD DISK DRIVER ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; ST419 DRIVE TABLE MCDSS ; MASTER CIRCUIT DRIVER FOR SUPER SLAVES SSLOAD ; SUPER SLAVE INITIAL LOAD SSBOOT ; SUPER SLAVE OPERATING SYSTEM BOOT PATCH ; PATCH MODULE ; ; FOLLOWING FILES ARE NECESSARY FOR PRINTERS ON SLAVE ; THAT ARE GOING TO BE ACCESSABLE ACROSS THE NETWORK. ; ;NETREQ ; NETWORK REQUESTER ;NETFWD ; NETWORK FORWARDER ;MSGFMT ; NETWORK FORMATTER M FUNCTION SUPPORT MODULE QUEMGR ; MPM QUEUE MANAGER S6NIT ; HARDWARE INITIALIZATION ;CONDR ; CONSOLE DRIVER CONREM ; REMOTE CONSOLE DRIVER (FOR REMOTE MASTER OPERATION) S6SIO ; SUPER SIX SERIAL I/O DRIVERS S6RTC ; SUPER SIX REAL TIME CLOCK DRIVER LSTCTS ; LIST DRIVER FOR 9600 BAUD PRINTER (CTS HANDSHAKE{PIN 20}) LSTPAR ; LIST DRIVER FOR PARALLEL PORT S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES S6SOM ; SUPER SIX SIGNON MESSAGE IOMEGA ; IOMEGA DISK DRIVER ;HARDISK ; HARD DISK DRIVER ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; ST419 DRIVE TABLE MCDSS ; MASTER CIRCUIT DRIVER FOR SUPER SLAVES SSLOAD ; SUPER SLAVE INITIAL LOAD SSBOOT ; SUPER SLAVE OPERATING SYSTEM BOOT PATCH ; PATCH MODULE ; ; FOLLOWING FILES ARE NECESSARY FOR PRINTERS ON SLAVE ; THAT ARE GOING TO BE ACCESSABLE ACROSS THE NETWORK. ; ;NETREQ ; NETWOSTDMASTR ; STANDARD NETWORKING MASTER FASLOD ; OPTIMIZED PROGRAM LOADER CPMSUP ; CP/M FUNCTION SUPPORT MODULE ;MPMSUP ; MPM FUNCTION SUPPORT MODULE ;QUEMGR ; MPM QUEUE MANAGER S6NIT ; HARDWARE INITIALIZATION ;CONDR ; CONSOLE DRIVER CONREM ; REMOTE CONSOLE DRIVER (FOR REMOTE MASTER OPERATION) S6SIO ; SUPER SIX SERIAL I/O DRIVERS S6RTC ; SUPER SIX REAL TIME CLOCK DRIVER LSTCTS ; LIST DRIVER FOR 9600 BAUD PRINTER (CTS HANDSHAKE{PIN 20}) LSTPAR ; LIST DRIVER FOR PARALLEL PORT S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES S6SOM ; SUPER SIX SIGNON MESSAGE ;IOMEGA ; IOMEGA DISK DRIVER ;HARDISK ; HARD DISK DRIVER ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; ST419 DRIVE TABLE MCDSS ; MASTER CIRCUIT DRIVER FOR SUPER SLAVES SSLOAD ; SUPER SLAVE INITIAL LOAD SSBOOT ; SUPER SLAVE OPERATING SYSTEM BOOT PATCH ; PATCH MODULE ;NETFWD ; NETWORK FORWARDER ; ; FOLLOWING FILES ARE NECESSARY FOR PRINTERS ON SLAVE ; THAT ARE GOING TO BE ACCESSABLE ACROSS THE NETWORK. ; ;NETREQ ; NETWORK REQUESTER ;MSGFMT ; NETWORK FORMATTER M FUNCTION SUPPORT MODULE ;QUEMGR ; MPM QUEUE MANAGER S6NIT ; HARDWARE INITIALIZATION ;CONDR ; CONSOLE DRIVER CONREM ; REMOTE CONSOLE DRIVER (FOR REMOTE MASTER OPERATION) S6SIO ; SUPER SIX SERIAL I/O DRIVERS S6RTC ; SUPER SIX REAL TIME CLOCK DRIVER LSTCTS ; LIST DRIVER FOR 9600 BAUD PRINTER (CTS HANDSHAKE{PIN 20}) LSTPAR ; LIST DRIVER FOR PARALLEL PORT S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES S6SOM ; SUPER SIX SIGNON MESSAGE ;IOMEGA ; IOMEGA DISK DRIVER ;HARDISK ; HARD DISK DRIVER ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; ST419 DRIVE TABLE MCDSS ; MASTER CIRCUIT DRIVER FOR SUPER SLAVES SSLOAD ; SUPER SLAVE INITIAL LOAD SSBOOT ; SUPER SLAVE OPERATING SYSTEM BOOT PATCH ; PATCH MODULE ;NETFWD ; NETWORK FORWARDER ; ; FOLLOWING FILES ARE NECESSARY FOR PRINTERS ON SLAVE ; THAT ARE GOING TO BE ACCESSABLE ACROSS TSTDMASTR ; STANDARD NETWORKING MASTER FASLOD ; OPTIMIZED PROGRAM LOADER CPMSUP ; CP/M FUNCTION SUPPORT MODULE MPMSUP ; MPM FUNCTION SUPPORT MODULE ;QUEMGR ; MPM QUEUE MANAGER S6NIT ; HARDWARE INITIALIZATION ;CONDR ; CONSOLE DRIVER CONREM ; REMOTE CONSOLE DRIVER (FOR REMOTE MASTER OPERATION) S6SIO ; SUPER SIX SERIAL I/O DRIVERS S6RTC ; SUPER SIX REAL TIME CLOCK DRIVER LSTCTS ; LIST DRIVER FOR 9600 BAUD PRINTER (CTS HANDSHAKE{PIN 20}) LSTPAR ; LIST DRIVER FOR PARALLEL PORT S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES S6SOM ; SUPER SIX SIGNON MESSAGE IOMEGA ; IOMEGA DISK DRIVER ;HARDISK ; HARD DISK DRIVER ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; ST419 DRIVE TABLE MCDSS ; MASTER CIRCUIT DRIVER FOR SUPER SLAVES SSLOAD ; SUPER SLAVE INITIAL LOAD SSBOOT ; SUPER SLAVE OPERATING SYSTEM BOOT PATCH ; PATCH MODULE NETFWD ; NETWORK FORWARDER ; ; FOLLOWING FILES ARE NECESSARY FOR PRINTERS ON SLAVE ; THAT ARE GOING TO BE ACCESSABLE ACROSS THE NETWORK. ; NETREQ ; NETWORK REQUESTER MSGFMT ; NETWORK FORMATTER  FUNCTION SUPPORT MODULE ;QUEMGR ; MPM QUEUE MANAGER S6NIT ; HARDWARE INITIALIZATION ;CONDR ; CONSOLE DRIVER CONREM ; REMOTE CONSOLE DRIVER (FOR REMOTE MASTER OPERATION) S6SIO ; SUPER SIX SERIAL I/O DRIVERS S6RTC ; SUPER SIX REAL TIME CLOCK DRIVER LSTCTS ; LIST DRIVER FOR 9600 BAUD PRINTER (CTS HANDSHAKE{PIN 20}) LSTPAR ; LIST DRIVER FOR PARALLEL PORT S6DSK ; SUPER SIX DISK DRIVER S6DST58F ; SUPER SIX DISK SPEC. TABLES S6SOM ; SUPER SIX SIGNON MESSAGE IOMEGA ; IOMEGA DISK DRIVER ;HARDISK ; HARD DISK DRIVER ;HARDTBLS ; HARD DISK TABLE HEADER ;ST419 ; ST419 DRIVE TABLE MCDSS ; MASTER CIRCUIT DRIVER FOR SUPER SLAVES SSLOAD ; SUPER SLAVE INITIAL LOAD SSBOOT ; SUPER SLAVE OPERATING SYSTEM BOOT PATCH ; PATCH MODULE NETFWD ; NETWORK FORWARDER ; ; FOLLOWING FILES ARE NECESSARY FOR PRINTERS ON SLAVE ; THAT ARE GOING TO BE ACCESSABLE ACROSS THE q w ~^#Vz(0##~ !#~ #~ #~ #~ #~ 8!H޷N#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf NF͵N-͎ط~ ([ S ~w^V YV ~͎w6 6nf NFͨ(͢\jqqיաqqqqqqX88eeeR=RR@FFFFFFFe^#Vz>N#F#p+q^#V#~#wa~#wb~#wc~wd6/SZ u1t2q~qSOwys>qU>q͸>~\w0q~0!͔8MY~2<($=(!=!͔84(2N]F^B % q2s0Sҷ ~4(=O!́~4!͔8`q4]N]F^8I(Ͳ>w#:-G!0N#FͲaZ6/Su1t2h ~.>###6.>q#p~2!͔8q26.>=Sg !t.>q>ɯZN~@~0(!C=(!=(!=(60>Z>~0͔6.>~~w/ɯ2~2/~1!C͔!C/~1t׷q1!Cw#͔6~#͎ɷ(< \O  ~<7ȯ~N˹q##~#fo>~w !@~#<( = (#~w :-G!1~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P!1F~ U!N++++'!$N#F!$B( !(  !$ NR(!V ͡͡>&w(N! N#F! B(!! # ++ cͅ! ~!966S!$N#F!$B( ! ͅ!$ 9!^#V#N#~#fo !˾!!F#~< +++w͑8 !Vjۯ ~<(>9!6͑! N#F! B(  |!$N#F!$B(  |####6#K0q#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kb~!@~#<(=(#F!1:-~#(###= !^#V=7~#fo!"(S+y2* # # p!(w#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut ![R(! ~(: 0 !H (Bͫ!![R(! ~(: 0 !H .|<(}2:^#V#~#foz~#}K͚j̷ JTj̷:͉:O͉O:::(: ~YwYÜYf(u ~;=_!F#^#V*5 K#N@F\:w@6\NZZ[̀A(Zp\q@*6(#6+>_~ (P(v"*v"b> p|(m~@2x C*|( *\! ("6!% " !ẁǷh>!Í####P*####3pl*|(3,*|,0++++l~@:w@̀w@*|!^#V+R!""F#6#O(6 0(. (/(2(.0q#o&q5Yv(^!ѷbYͶ( G&#6͕̈́NZF\Z6\̀A(Zp\͕ͥ͐̀ͥy=g:oÎ#n@:w@u@>_6|l!uUtVnUfV|l!uWtXnWfXͪͪSpooler error (Ignore, Abort)j̷(͉͉;O: =:<̀͊̀͊̀ỀỀ͊̀Ề͊N1F2˸~/Zf @!,!-,O ^#Vz*ǴYz( !7=ҷ 7w.w37; ӷ %ͰԷͪӯ'~/Zf(!!O ~w!. ~@Zn( Z~(Zf 6^(#~#?(~#<#~[~%wf(~ƀwZf ~/  . #n(s1r2###v( ^>V?zut:ط^V N-qZN( ^aVbNc~ds r q w ~ʝr^#Vz(0##~( ͫ!4!Z|( ao !K1!S!^#V!"Hѷ"6#z !-:Rw<2R! +p+qMD!q#p!s#r#q#p!SaZ ZNh ^#V!_s1!Kv &( ʹ{M!M!S"N{Q&˾(ͺ&~˶!K!K~˾!S"54>Z|(*U s#r!Y"NsP1*P!K*U!9͏[_!_R(^#V#4##*N|(!S~=Pw!S!"N:S(!K˶*U"P{P*I#"I*L#"L!KL"Lx![^#V![R!^#VBr+s(0##^#V+++![!Yݷ!S>͂5##͂~4##^#Vy ####*U####v ~#fos#rZHho"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['*[R>B".s#r#Z"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+q*+F+N+V+^ s#r#*!^#V!R*R +V+^##"~#<(= ~# ~ xD##>)))))))'d  R0y 0OGN#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#r+N˹G~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!~Rog_;;| 72W!$"!f: !r,/0!08%h!N aʏֆ!` O ^#V|Z !! 6Ʒ 'B8Ʒ aͅ=(>w.͡!:> *+++KBR͡ZF(!45(!(s1G{:1GR!\*>è~1(# :*+++[R8[~R8 2:>o$S5YGWn *DJͺnR2*E R: ͺ* R!N*"*":o>p2͚*R0!["SKB:ORKx NN!N.ѷ9N.9[!"* N#Fx !*S͝,RS͏ͽ*͏"4||1G*>*|*|S*:د2JBJ!!" 1*!ͭ:ZF( *: L!{=_ZF( :({2s\>ZF(::~\9ͅҷ U͠ K+Է E~. "v( B0w%v(aͅV͢&͢6.͡9w0ͅҷ >͠ 4+Է .%v(aͅV͢(&͢63Å͡~/"̪9G>aͅѷ Iͅ ͠ %~<w~/"+Է % w3w3͢~/"̹Å:s~12! }(7jPh^= s! |(7jzh^= =)!hs#r#^= +w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#pZ)0  Z6#{( (M=(J!~ 5:O`:!~O~#% !X~̕{((5:O(  {( z=(.=ʲ=<=f=r=ʔxK*(K/*-xN>x 3*|(+"*~#*+K R0YPS!4!*/|(+"/*-~#*'+K) R0YPS-!14!4x> :@(y>:3@(y>x> )(:@((yy2 ^!!(:3@((yy224^!:>:@(:! !!>:3@(:2!4!:s1z{MG!nO~(˹_:{ *;SSLAVBNK.GEN file to generate an "OSSLAVE.SYS" (banked) STDSLAVE ; STANDARD NETWORKING SLAVE BNKMGR ; BANKED MEMORY MANAGER BNKREQ ; ALTERNATE TO NETLOD CPMSUP ; CP/M FUNCTION SUPPORT MODULE ;MPMSUP ; MP/M FUNCTION SUPPORT MODULE ;QUEMGR ; QUEUE MANAGER SSNIT ; SUPER SLAVE HARDWARE INITIALIZATION CONDR ; CONSOLE DRIVER ;SSLSTPAR ; PRINTER DRIVER FOR CENTRONICS ;LSTCTS ; PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING LSTXON ; XON XOFF DRIVER FOR SERIAL SSSIO2 ; SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS ;SSSIO4 ; SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ; SUPER SLAVE CIRCUIT DRIVER SLVRES ; SLAVE RESET DETECTION SSRTC ; SUPER SLAVE REAL TIME CLOCK SSBNK ; SUPER SLAVE BANK SELECT DRIVER SSSOM ; SUPER SLAVE SIGN ON MESSAGE ;NETFWD ; NETWORK FORWARDER PATCH ; PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; ;NETSVC ; NETWORK REQUEST SERVICE PROCESS ;DSPOOL ; DESPOOLER  BNKREQ ; ALTERNATE TO NETLOD CPMSUP ; CP/M FUNCTION SUPPORT MODULE ;MPMSUP ; MP/M FUNCTION SUPPORT MODULE ;QUEMGR ; QUEUE MANAGER SSNIT ; SUPER SLAVE HARDWARE INITIALIZATION CONDR ; CONSOLE DRIVER ;SSLSTPAR ; PRINTER DRIVER FOR CENTRONICS ;LSTCTS ; PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING LSTXON ; XON XOFF DRIVER FOR SERIAL SSSIO2 ; SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS ;SSSIO4 ; SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ; SUPER SLAVE CIRCUIT DRIVER SLVRES ; SLAVE RESET DETECTION SSRTC ; SUPER SLAVE REAL TIME CLOCK SSBNK ; SUPER SLAVE BANK SELECT DRIVER SSSOM ; SUPER SLAVE SIGN ON MESSAGE ;NETFWD ; NETWORK FORWARDER PATCH ; PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; ;NETSVC ; NETWORK REQUEST SERVICE PROCESS ;DSPOOL ; DESPOOLE/; SSLAVE.GEN file to generate an "OSSLAVE.SYS" (non-banked) STDSLAVE ; STANDARD NETWORKING SLAVE NETLOD ; NETWORK PROGRAM LOADER CPMSUP ; CP/M FUNCTION SUPPORT MODULE MPMSUP ; MP/M FUNCTION SUPPORT MODULE QUEMGR ; QUEUE MANAGER FOR MPM SUPPORT SSNIT ; SUPER SLAVE HARDWARE INITIALIZATION CONDR ; CONSOLE DRIVER LSTPAR ; PARALLEL PRINTER DRIVER LSTCTS ; PRINTER DRIVER FOR CTS HANDSHAKE SSSIO2 ; SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS ;SSSIO4 ; SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ; SUPER SLAVE CIRCUIT DRIVER SLVRES ; SLAVE RESET DETECTION SSRTC ; SUPER SLAVE REAL TIME CLOCK SSSOM ; SUPER SLAVE SIGN ON MESSAGE ;NETFWD ; NETWORK FORWARDER PATCH ; PATCH SPACE FOR PATCHES ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; ;NETSVC ; NETWORK REQUEST SERVICE PROCESS ;DSPOOL ; DESPOOLER  title TURBODOS OPERATING SYSTEM - ADC CONSOLE DRIVER .z80 ; name ('CONDR') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; public conbr ; dseg ;locate in data area ; ffchr:: db aff ;form feed character initc: db 0 ;init complete flag clsstr:: ;clear screen string db 0ch,1ah,1bh,0aah,80h,80h,80h,80h ; cseg ;locate in program area ; condr@:: ld a,e ;get function no sub 2 ;function number = 2? jp m,serial## ;no, go on imediately if 0 or 1. jr z,conout ;yes, output ediately if 0 or 1. sub 6 ;function number=8? jr z,conso ;if so, error shift out dec a ;function number=9? jr z,consi ;if so, error shift in jp serial## ;else, continue ; conout: ;console output character routine ld hl,initc ;get initialization complete flag ld a,(hl) or a ;initialization complete flag set? jr nz,..cdrv ;if so, skip console initialization ; dec (hl) ;set initialization complete flag push de ;save function number push bc ;save channel number/character ld e,3 ;get set baud rate function conbr equ $+1 ld c,08eh ;set default console baud rate call serial## ;and do it pop bc ;restore channel number/character pop de ;restore function number ld a,(ffchr) ;get form feed character or a ;form feed character=0? jp z,serial## ;if so, continue push de ;save function number push bc ;save channel number/character ld c,a ;form feed character to c-reg call ..cdrva ;output form feed pop bc ;restore channel number/character pop de ;restore function number jp serial## ;and exit ; ..cdrv: ld a,(ffchr) ;do we have a ff char defined or a jp z,serial## ;leave if not cp c ;otherwise if outgoing char a ff jp nz,serial## ;leave if not ..cdrva: ld hl,clsstr ;otherwise get clear screen string address ..cdrvl: ld a,(hl) ;get char to send and 7fh ;clear parity bit ld c,a ;get set to send it push bc push de push hl call serial## ;send char pop hl pop de pop bc ld a,(hl) ;test if last char bit 7,a ret nz ;return if true inc hl ;else do more jr ..cdrvl ; conso: ;error message pre & post call consi: call dms## ;position to next line db acr,alf+80h ret ;done ; end hr) ;get form feed character or a ;form feed character=0? jp z,serial## ;if so, continue push de ;save function number push bc ;save channel number/character ld c,a ;form feed character to c-reg call ..cdrva ;output form feed pop bc ;restore channel number/character pop de ;restore function number jp serial## ;and exit ; ..cdrv: ld a,(ffchr) ;do we have a ff char defined or a jp z,serial## ;leave if not cp c ;otherwise if outgoing char a ff jp nz,serial## ;leave if not ..cdrva: ld hl,clsstr ;otherwise get clear screen string address ..cdrvl: ld a,(hl) ;get char to send and 7fh ;clear parity bit ld c,a ;get set to send it push bc push de push hl call serial## ;send char pop hl poptitle Hard disk specification table subttl Advanced Digital 7/3/84 name ('DMA5F') ; Module name (6 chars only) tracks equ 306 ; physical tracks heads equ 4 ; physical heads steprt equ 15 ; step rate (refer to the hdc1001 manual ; for step rates) dirsiz equ 1024 ; number of directory entries blksiz equ 4096 ; block size trkoff equ 1 ; res tracks (can be used to partition drives) hdoffst equ 2 ; set to amount of heads to ignore phydrv equ 0 ; physical drive number set to 0,1,2 or 3 ecc equ 0 ; set to 1 for ecc enabled else 0 sectrk equ 32 ; sectors per track (head) secsiz equ 256 ; sector size 512 or 256 fixed equ 1 ; set to 1 for fixed media else 0 for removable ;Don't change anything below this point! setparm macro size ; macro to determine block sizes bls set high size ; initialize bls blocks set 0 ; clear block value rept 8 ; repeat a max of 8 if bls ne 0 ; is bls <> 0 bls set bls shr 1 ; shift until bls=0 blocks set blocks+1 ; increment block by 1 endif ; end of if statement endm ; end of repeat endm ; end of macro dseg ; locate in data segment DMA5F@:: ; Global entry point for patching (6 chrs only) setparm blksiz ; determine block size db fixed shl 7 or blocks ; block size if sectrk*secsiz lt blksiz ; test for underflow dw sectrk*secsiz*(heads-hdoffst)/blksiz*(tracks-trkoff) ; total blocks else dw sectrk*secsiz/blksiz*(heads-hdoffst)*(tracks-trkoff) ; total blocks endif db ((dirsiz*8)/blksiz)*4 ; directory blocks setparm secsiz ; determine sector size db blocks ; sector size dw sectrk*(heads-hdoffst) ; sectors per cylinder dw tracks ; tracks per disk dw trkoff ; track offset db ecc shl 7 or ((blocks and 1) shl 6) or steprt ;ecc,drvtyp,step rate db hdoffst ; head offset db phydrv ; physical drive number dw sectrk ; physical sectors per track end /title Hard disk specification table subttl Advanced Digital 7/3/84 name ('DMA5R') ; Module name (6 chars only) tracks equ 306 ; physical tracks heads equ 2 ; physical heads steprt equ 15 ; step rate (refer to the hdc1001 manual ; for step rates) dirsiz equ 1024 ; number of directory entries blksiz equ 4096 ; block size trkoff equ 1 ; res tracks (can be used to partition drives) hdoffst equ 0 ; set to amount of heads to ignore phydrv equ 0 ; physical drive number set to 0,1,2 or 3 ecc equ 0 ; set to 1 for ecc enabled else 0 sectrk equ 32 ; sectors per track (head) secsiz equ 256 ; sector size 512 or 256 fixed equ 0 ; set to 1 for fixed media else 0 for removable ;Don't change anything below this point! setparm macro size ; macro to determine block sizes bls set high size ; initialize bls blocks set 0 ; clear block value rept 8 ; repeat a max of 8 if bls ne 0 ; is bls <> 0 bls set bls shr 1 ; shift until bls=0 blocks set blocks+1 ; increment block by 1 endif ; end of if statement endm ; end of repeat endm ; end of macro dseg ; locate in data segment DMA5R@:: ; Global entry point for patching (6 chrs only) setparm blksiz ; determine block size db fixed shl 7 or blocks ; block size if sectrk*secsiz lt blksiz ; test for underflow dw sectrk*secsiz*(heads-hdoffst)/blksiz*(tracks-trkoff) ; total blocks else dw sectrk*secsiz/blksiz*(heads-hdoffst)*(tracks-trkoff) ; total blocks endif db ((dirsiz*8)/blksiz)*4 ; directory blocks setparm secsiz ; determine sector size db blocks ; sector size dw sectrk*(heads-hdoffst) ; sectors per cylinder dw tracks ; tracks per disk dw trkoff ; track offset db ecc shl 7 or ((blocks and 1) shl 6) or steprt ;ecc,drvtyp,step rate db hdoffst ; head offset db phydrv ; physical drive number dw sectrk ; physical sectors per track end title Hard disk specification table subttl Advanced Digital 7/3/84 name ('NAME') ; Module name (6 chars only) tracks equ 512 ; physical tracks heads equ 8 ; physical heads steprt equ 0 ; step rate (refer to the hdc1001 manual ; for step rates) dirsiz equ 1024 ; number of directory entries blksiz equ 4096 ; block size trkoff equ 1 ; res tracks (can be used to partition drives) hdoffst equ 0 ; set to amount of heads to ignore phydrv equ 0 ; physical drive number set to 0,1,2 or 3 ecc equ 0 ; set to 1 for ecc enabled else 0 sectrk equ 16 ; sectors per track (head) secsiz equ 512 ; sector size 512 or 256 fixed equ 1 ; set to 1 for fixed media else 0 for removable dseg ; locate in data segment NAME@:: ; Global entry point for patching (6 chrs only) ;Don't change anything below this point! setparm macro size ; macro to determine block sizes bls set high size ; initialize bls blocks set 0 ; clear block value rept 8 ; repeat a max of 8 if bls ne 0 ; is bls <> 0 bls set bls shr 1 ; shift until bls=0 blocks set blocks+1 ; increment block by 1 endif ; end of if statement endm ; end of repeat endm ; end of macro setparm blksiz ; determine block size db fixed shl 7 or blocks ; block size if sectrk*secsiz lt blksiz ; test for underflow dw sectrk*secsiz*(heads-hdoffst)/blksiz*(tracks-trkoff) ; total blocks else dw sectrk*secsiz/blksiz*(heads-hdoffst)*(tracks-trkoff) ; total blocks endif db ((dirsiz*8)/blksiz)*4 ; directory blocks setparm secsiz ; determine sector size db blocks ; sector size dw sectrk*(heads-hdoffst) ; sectors per cylinder dw tracks ; tracks per disk dw trkoff ; track offset db ecc shl 7 or ((blocks and 1) shl 6) or steprt ;ecc,drvtyp,step rate db hdoffst ; head offset db phydrv ; physical drive number dw sectrk ; physical sectors per track end  title TURBODOS OPERATING SYSTEM - DATA TERMINAL READY PRINTER DRIVER subttl copyright 1983 by software 2000, inc. .z80 ; ; copyright 1983 by software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 02/03/83 ; name ('lstcts') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; dseg ;locate in data area ; public ctsbr ctsff:: db aff ;form feed character initc: db 0,0,0,0,0,0,0,0 ;initialization complete flags db 0,0,0,0,0,0,0,0 ; cseg ;locate in program area ; lstdr@:: ld hl,initc ;get initialization complete flags push de ;save function number ld e,b ;channel number to de-reg ld d,0 ;double length add hl,de ;index into flags table pop de ;restore function number ld a,(hl) ;get initialization complete flag or a ;initialization complete flag set? call z,..init ;if not, initialize list channel ld a,e ;get function number cp 2 ;function number=2? jr z,lstout ;if so, continue cp 7 ;function number=7? jr z,lstwsr ;if so, continue ret ;else, done ..init: dec (hl) ;set initialization complete flag push de ;save function number push bc ;save channel number/character ctsbr equ $+1 ld c,6eh ;get baud rate code (9600 baud) ld e,3 ;set function number=3 call serial## ;set channel buad rate pop bc ;restore channel number/character pop de ;restore function number ret ;done ; lstwsr: ld a,(ctsff) ;get form feed character ld c,a ;form feed character to c-reg ld e,2 ;set function number=2 ; lstout: jp serial## ;continue ; end unction number ld e,b ;channel number to de-reg ld d,0 ;double length add hl,de ;index into flags table pop de ;restore function number ld a,(hl) ;get initialization complete flag or a ;initialization complete flag set? call z,..init ;if not, initialize list channel ld a,e ;get function number cp 2 ;function number=2? jr z,lstout ;if so, contin title TURBODOS OPERATING SYSTEM - ETX/ACK PRINTER DRIVER subttl copyright 1983 by software 2000, inc. .z80 ; ; copyright 1983 by software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 02/03/83 ; name ('lstetx') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; dseg ;locate in data area ; public etxbr etxlen:: db 140 ;character count between etx's etxseq:: db 3 ;max escape sequence length etxff:: db aff ;form feed character chrcnt: db 0,0,0,0,0,0,0,0 ;character count 0,0,0,0,0,0,0,0 seqcnt: db 0,0,0,0,0,0,0,0 ;sequence count 0,0,0,0,0,0,0,0 initc: db 0,0,0,0,0,0,0,0 ;initialization complete flags db 0,0,0,0,0,0,0,0 ; cseg ;locate in program area ; lstdr@:: ld hl,initc ;get initialization complete flags call index ;index into flags table ld a,(hl) ;get initialization complete flag or a ;initialization complete flag set? call z,..init ;if not, initialize list channel ld a,e ;get function number cp 2 ;function number=2? jr z,lstout ;if so, continue cp 7 ;function number=7? jr z,lstwsr ;if so, continue ret ;else, done ..init: dec (hl) ;set initialization complete flag push de ;save function number push bc ;save channel number/character etxbr equ $+1 ld c,7 ;get baud rate code (1200 baud) ld e,3 ;set function number=3 call serial## ;set channel buad rate pop bc ;restore channel number/character pop de ;restore function number ret ;done ; lstwsr: ld a,(etxff) ;get form feed character ld c,a ;form feed character to c-reg ld e,2 ;set function number=2 ; lstout: call ..gcca ;get character count address ld a,(hl) ;get character count ld hl,etxlen ;get character count between etx's cp (hl) ;max character count outstanding? jr c,..out ;if not, continue call ..gsca ;else, get sequence count address ld a,(hl) ;get sequence count or a ;in escape sequence? jr n0z,..out ;if so, continue push bc ;else, save output character ld c,aetx ;get etx character call ..sout ;output etx character ..wait: call ..sin ;else, get serial input and 7fh ;strip sign bit sub aack ;character=ack? jr nz,..wait ;if not, wait call ..gcca ;else, get character count address ld (hl),a ;reset character count pop bc ;restore output character ..out: ld a,c ;get output character and 7fh ;strip sign bit cp aesc ;character=escape? jr nz,..nesc ;if not, continue call ..gsca ;else, get sequence count address ld a,(etxseq) ;get max escape sequence length ld (hl),a ;set sequence count ..nesc: call ..sout ;output character call ..gcca ;get character count address inc (hl) ;increment character count call ..gsca ;get sequence count address dec (hl) ;decrement sequence count ret p ;if positive, done inc (hl) ;else, restore count to 0 ret ;done ..sin: push bc ;save channel number/character push de ;save function number ld e,1 ;set function number=1 call serial## ;get serial input jr ..sioc ;continue ..sout: push bc ;save channel number/character push de ;save function number call serial## ;output character ..sioc: pop de ;restore function number pop bc ;restore channel number/character ret ;done ..gcca: ld hl,chrcnt ;get character count table jr index ;continue ..gsca: ld hl,seqcnt ;get sequence count table ; index: push de ;save function number ld e,b ;channel number to de-reg ld d,0 ;double length add hl,de ;index into table pop de ;restore function number ret ;done ; end nt character count call ..gsca ;get sequence count address dec (hl) ;decrement sequence count ret p ;if positive, done inc (hl) ;else, restore count to 0 ret ;done ..sin: push bc ;save channel number/character push de ;save func title TURBODOS OPERATING SYSTEM - ADC PARALLEL PRINTER DRIVER subttl copyright 1983 by software 2000, inc. .z80 ; ; copyright 1983 by software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 10/03/83 ; name ('LSTPAR') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; pio0d equ 4 ;parallel port 0 data port pio0c equ 6 pio1d equ 5 ;parallel port 1 data port pio1c equ 7 ; DSEG ;locate in data area ; parff:: db aff ;form feed character outchr: db 0 ;output character initc: db 0 ;initialization complete flag ; imssph: ;character output semaphore defw 0 ;semaphore count ..imsh: defw ..imsh ;semaphore p/d list head defw ..imsh ; cseg ;locate in program area ; lstdr@:: ld hl,initc ;get initialization complete flag ld a,(hl) or a ;initialization complete flag set? call z,..init ;if not, initialize list channel ld a,e ;get function number cp 2 ;function number=2? jr z,lstout ;if so, continue cp 7 ;function number=7? jr z,lstwsr ;if so, continue ret ;else, done ..init: dec (hl) ;set initialization complete flag ld a,00fh ;put port a in output mode out (pio0c),a ld a,0cfh ;put port b in bit mode out (pio1c),a ld a,01fh ;bits 0-4 input, bits 5-7 output out (pio1c),a ret ;done ; lstwsr: ld a,(parff) ;get form feed character ld c,a ;form feed character to c-reg ; lstout: ld hl,outchr ;get output character ld (hl),c ;save output character ld de,imspol ;get poll routine address call lnkpol## ;create poll routine call imspr ;execute poll routine ld hl,imssph ;get semaphore address jp wait## ;dispatch if necessary ; imspol: ;parallel out poll routine defw 0 defw 0 ; imspr: in a,(pio1d) ;get printer status and 1 ;printer busy? ret z ;if so, done ld a,(outchr) ;get output character out (pio0d),a ;output it ld a,80h ;toggle data strobe out (pio1d),a xor a out (pio1d),a ld hl,imspol ;get poll routine address call unlink## ;unlink poll routine ld hl,imssph ;get semaphore jp signal## ;signal process as ready ; end t (pio1c),a ld a,01fh ;bits 0-4 input, bits 5-7 output out (pio1c),a ret ;done ; lstwsr: ld a,(parff) ;get form feed character ld c,a ;form feed character to c-reg ; lstout: ld hl,outchr ;get output character ld (hl),c ;save output character ld de,imspol ;get poll routine address call lnkpol## ;create poll routine call imspr ;execute poll routine ld hl,imssph ;get semaphore address jp wait## ;dispatch if necessary ; imspol: ;parallel out poll routine defw 0 defw 0 ; imspr: in a,(pio1d) ;get printer status and 1 ;printer busy? ret z ;if so, done ld a,(outchr) ;get output character out (pio0d),a ;output it ld a,80h ;toggle data strobe out (pio1d),a xor a out (pio1d),a ld hl,imspol title TURBODOS OPERATING SYSTEM - XON/XOFF PRINTER DRIVER subttl copyright 1983 by software 2000, inc. .z80 ; ; copyright 1983 by software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 02/03/83 ; name ('lstxon') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; dseg ;locate in data area ; public xonbr xonff:: db aff ;form feed character initc: db 0,0,0,0,0,0,0,0 ;initialization complete flags db 0,0,0,0,0,0,0,0 ; cseg ;locate in program area ; lstdr@:: ld hl,initc ;get initialization complete flags push de ;save function number ld e,b ;channel number to de-reg ld d,0 ;double length add hl,de ;index into flags table pop de ;restore function number ld a,(hl) ;get initialization complete flag or a ;initialization complete flag set? call z,..init ;if not, initialize list channel ld a,e ;get function number cp 2 ;function number=2? jr z,lstout ;if so, continue cp 7  ;function number=7? jr z,lstwsr ;if so, continue ret ;else, done ..init: dec (hl) ;set initialization complete flag push de ;save function number push bc ;save channel number/character xonbr equ $+1 ld c,7 ;get baud rate code (1200 baud) ld e,3 ;set function number=3 call serial## ;set channel buad rate pop bc ;restore channel number/character pop de ;restore function number ret ;done ; lstwsr: ld a,(xonff) ;get form feed character ld c,a ;form feed character to c-reg ld e,2 ;set function number=2 ; lstout: call ..sst ;get serial status or a ;character available? jr z,..out ;if not, continue call ..sin ;else, get serial input and 7fh ;strip sign bit cp adc3 ;character=dc3 (xoff)? jr nz,lstout ;if not, wait ..wait: call ..sin ;get serial input and 7fh ;strip sign bit cp adc1 ;character=dc1 (xon)? jr nz,..wait ;if not, wait ..out: jp serial## ;output character ..sst: push bc ;save channel number/character p0ush de ;save function number ld e,0 ;set function number=0 call serial## ;get serial status jr ..ssic ;continue ..sin: push bc ;save channel number/character push de ;save function number ld e,1 ;set function number=1 call serial## ;get serial input ..ssic: pop de ;restore function number pop bc ;restore channel number/character ret ;done ; end acter to c-reg ld e,2 ;set function number=2 ; lstout: call ..sst ;get serial status or a ;character available? jr z,..out ;if not, continue call ..sin ;else, get serial input and 7fh ;strip sign bit cp adc3 ;character=dc3 (xoff)? jr nz,lstout ;if not, wait ..wait: call ..sin ;get serial input and 7fh ;strip sign bit cp adc1 ;character=dc1 (xon)? jr nz,..wait ;if not, wait ..out: jp serial## ;output character ..sst: push bc ;save channel number/character p title TurboDOS operating system - master circuit driver for super slaves .z80 ; name ('mcdss') ;module id ; include DREQUATE.LIB ;system equates ; false equ 0 ;logical equates true equ not false ; sprsix equ true ;true if using SUPER-6 with 4MHZ slaves ; ; Signal table flag equates ; shrtmsg equ 7 ;short message sent sysldd equ 6 ;system loaded to slave systry equ 5 ;tried to load system to slave sndpolf equ 4 ;send poll flag on timeout sndwt equ 3 ;send message waiting rcvpolf equ 2 ;poll for receive slvrqst equ 1 ;slave request bit set slvrdyf equ 0 ;slave ready for transfer ; ; Slave control port bits ; svcrqst equ 3 ;slave service request wrhld equ 0 ;slave write hold status ; ; and masks ; wrhold equ 1 ;write hold rdhold equ 2 ;read hold overrun equ 4 ;overrun error svcrqt equ 8 ;slave service request reset equ 1 ;slave reset bit slvclr equ 8 ;slave clear slvatn equ 2 ;slave atten. int ; cseg ;put into code segment ;  cktdr@:: ld A,C ;get operation code or A ; = 0 jr z,rcvmsg ;receive message dec A ; = 1 jp z,sndmsg ;send message ret ;if here bad command so return rcvmsg: ld A,(slvctr) ;get service counter dec A ;counted down to zero yet jp p,rcver1 ;leave if not inc DE ;else bump pointer to message header inc DE inc DE inc DE ld A,(DE) ;get length of message ld (tranlng),A ;and save it push DE ;save pointer to message header rcvl: ld DE,rcvpol ;link slave poll routine call lnkpol## ld HL,rcvsmph ;and wait for response call wait## call rcvsetup bit slvrdyf,(HL) ;is slave already ready pop HL ;get pointer to message back jr nz,rcvm0 ;leave if flag was set call slvtest ;is slave okay jr c,rcver2 ;leave if error push AF ;save slave request bit dec C ;point to slave data port ld A,15h ;send response to slave out (C),A inc C pop AF ;get request bit back jr nz,rcvm0 ;leave if request is set push HL ;else save pointer to message header call chkstrt jr rcvl ;go back to try again rcvm0: ld A,slvclr ;clear slave control register out (C),A ld B,1 ;set up to receive 1 byte call rcvblk ;go get it jr nz,rcver2 ;leave if error dec HL ;point back at what we received ld A,(HL) ;get it or A ;was it 0 jr z,rcver2 ;is so error so leave ld A,(tranlng) ;get length opsys wants to receive cp (HL) ;is it same as slave wants to send jr c,rcver2 ld B,(HL) ;get amount to receive inc HL ;move buffer pointer up dec B ;dec receive count jr z,rcver2 ;error if no more to receive call rcvblk ;else go get data block jr nz,rcver2 ;error if transfer didn't work call chkstrt ;setup timout for future slave check ld A,(rcvdev) ;get slave no. call failclr ;clear table entry for this slave xor A ;and return with success ret rcver1: ld (slvctr),A ;update slave service counter ld (rcvdev),A ;and receive device no. rcver2: call chkstrt ;setup timout for future slave check ld A,(rcvdev) ;get receive device no. jp slver3 ;and go on chkstrt: ld A,(rcvdev) ;get receive device no. call waitnit ;init wait counter for this slave call sgnlref ;point to flag entry for slave res rcvpolf,(HL) ;clear receive poll bit res slvrdyf,(HL) ;clear slave ready bit bit sndwt,(HL) ;test if send message pending ret z ;return if not res sndwt,(HL) ;else clear send pending bit ld HL,sndsmph ;and signal send message routine jp signal## sndmsg: ex DE,HL ;put address of message buffer into hl inc HL ;and point to message dest. id inc HL inc HL inc HL inc HL ld A,(HL) ;get dest. id dec A ;make it slave no. dec HL ;point to message length inc (HL) ;is message length 0 dec (HL) jp z,slvlod ;leave if so push HL ;save message pointer push AF ;and slave no. ld HL,sncsmph ;wait for other sends call wait## pop AF ;get slave no. back ld (snddev),A ;and update device we're working with snd0: call sndsetup ;init regs bit rcvpolf,(HL) ;do we have a receive poll request jp nz,sndwait ;leave if so bit systry,(HL) ;have we loaded an opsys to this slave jr z,snd1 ;if not send any length message bit sysldd,(HL) ;did opsys take jp z,cntsnd ;leave if not ex (SP),HL ld A,(HL) ;get length of message to send ex (SP),HL cp 8bh ;is it max length jr z,snd1 ;process it if so cp 0ch ;is it short message jp nz,cntsnd ;error exit if not set shrtmsg,(HL) ;else set short message flag snd1: call slvtest ;test if slave is there jp c,slver1 ;skip out if not jr nz,slvreq ;skip out if slave request bit set dec C ;point to data port ld A,6 ;send a 6 out (C),A set slvrdyf,(HL) ;set slave ready bit res sndpolf,(HL) ;clear send poll bit ld DE,sndpol ;link send poll routine call lnkpol## ld A,(snddev) ;init service timer call waitnit ld HL,sndsmph ;and wait until all is ready call wait## call sndsetup res slvrdyf,(HL) ;clear slave ready bit bit sndpolf,(HL) ;test send poll bit jr nz,slver1 ;error out if set ld A,slvclr ;else clear slave out (C),A pop HL ;get pointer to message back ld B,(HL) ;get message length dec B ;decrement it push BC ;and save it ld B,1 ;send message length call sndblk pop BC ;get message length back call z,sndblk ;and send message if no errors jr nz,slver2 ;skip out if errors in transfers call syncsig ;signal done ld A,(snddev) ;reset service timer for this slave call waitnit call sgnlref bit shrtmsg,(HL) ;was it short message jr z,sndgdrtn ;skip if not res shrtmsg,(HL) ;else clear bits res sysldd,(HL) ; opsys loaded res systry,(HL) ; tried to load opsys sndgdrtn: ld A,(snddev) ;clear falure count for this slave call failclr xor A ;and return successful ret ; slvlod: ld C,A ;put slave no. into c push BC ;save it for later call syslod ;try to load slave operating system pop BC ;fix stack ret z ;and exit if no errors ld A,C ;else er1ror out jr slver3 ; slvreq: set slvrqst,(HL) ;set slave request status bit dec C ;point to data port ld A,15h ;and send 15h to slave out (C),A sndwait: set sndwt,(HL) ;set send waiting status bit ld HL,sndsmph ;and wait till ok to go on call wait## jp snd0 ;now go try again syncsig: ld HL,sncsmph ;signal thru now jp signal## ; cntsnd: pop HL ;fix stack call syncsig ;signal this run done call sndsetup ;set up registers jr slverxit ;and go on to exit slver1: pop HL ;clear stack slver2: call syncsig ld A,(snddev) slver3: call rsstp0 ;point to signal table and set flags set slvrdyf,(HL) ; slave ready flag res slvrqst,(HL) ; slave requesting service set systry,(HL) ; tried to load opsys res sysldd,(HL) ; opsys loaded res shrtmsg,(HL) ; short message call failpt ;point to failure table inc (HL) ;and bump counter for this slave slverxit: inc E ;make slave no. = ckt node no. ld A,(ssckt) ;get circuit no. ld D,A ;and put it into d to return it ld A,0ffh ;set return failure flag ret ;and exit syslod: call rsstp0 ;point to signal table ld A,(HL) ;get flags for this slave and 40H ;have we already loaded an opsys to this slave xor 40H ret z ;return if true push HL ;save pointer to signal table call failpt ;point to failure counter ld A,(HL) ;bump it up inc A pop HL ;get hl back ret z ;return if failure counter = 255 set sysldd,(HL) ;else set opsys loaded bit res slvrdyf,(HL) ;clear slave ready bit ld A,(ssckt) ;get slave circuit no. ld H,A ;make up slave default network id ld L,0 ld (ssdid##),HL ;and save in system loader ld A,E ;now make up slave id inc A ld L,A ld (sssid##),HL ;and save in system loader ld HL,ssast ;point to slave system assignment table add HL,DE ld A,(HL) ;get down load suffix ld (ssssl##),A ;and save it in system loader ld A,reset ;reset slave out (C),A ld B,0 ;and wait awhile rstwait: djnz rstwait xor A  ;clear reset out (C),A ld HL,lodbuf ;point to opsys request buffer ld B,0ah call rcvblk ;get slave load request ret nz ;return if there was an error ld A,slvclr ;else clear slave out (C),A ld HL,ssload## ;get address of 1st boot loader ld B,80h call sndblk ;and send it ret nz ;return if it didn't work ld HL,ssblod## ;send load address and size of 2nd loader ld B,4 call sndblk ret nz ;leave if error ld DE,(ssblen##) ;get length of 2nd loader ld B,E ;put length to send in b ld A,E ;correct for even page length or A jr nz,syssndlp dec D syssndlp: push DE call sndblk ;send first block pop DE ret nz ;exit if error in transfer dec D ;more to send? jp p,syssndlp ;go back if so xor A ;else return with success ret ; ;receive poll routine node linkage ; rcvpol: dw 0 dw 0 ld A,(nmbslv) ;get number of slaves or A ;make sure we have some out there ret z ;return if not dec A ;else make it no. of last slave and 0fh ld HL,rcvdev ;point hl to receive device storage inc (HL) ;bump it up cp (HL) ;is past max jr nc,rcvprst ;skip reset if not ld (HL),0 rcvprst: call rcvsetup ;set up registers and point to signal table bit slvrdyf,(HL) ;is slave already ready ret nz ;exit if so bit slvrqst,(HL) ;is slave requesting service already jr nz,rcvp0 ;then skip next test in A,(C) ;read slave status bit svcrqst,A ;is request bit set jr z,rcvp1 ;skip if not rcvp0: res slvrqst,(HL) ;else clear slave request set bit set slvrdyf,(HL) ;set slave ready bit jr rcvp2 ;and skip next rcvp1: call tmrchk ;check if time for slave check ret c ;leave if timer not timed out rcvp2: set rcvpolf,(HL) ;set receive poll flag ld HL,rcvpol ;unlink ourselves call unlink## ld HL,rcvsmph ;and signal receive message handler jp signal## ; ;send poll routine node linkage ; sndpol: dw 0 dw 0 call sndsetup ;set up registers in A,(C) ;get slave status bit svcrqst,A ;is slave service request bit set jr nz,sndp0 ;if so skip next call tmrchk ;else check if time to service anyway ret c ;exit if not set sndpolf,(HL) ;else set send poll bit sndp0: ld HL,sndpol ;unlink send poll routine call unlink## ld HL,sndsmph ;and signal send message handler jp signal## ; slvtest: ld A,slvatn ;set wrd02 bit in slave out (C),A xor A ;and clear it out (C),A ld B,0 ;set time out counter slvtst0: in A,(C) ;is slave in write hold bit wrhld,A jr nz,slvtst1 ;skip out if so djnz slvtst0 ;go back if not timed out yet scf ;else set carry flag ret ;and return in failure slvtst1: dec C ;if slave waiting point to data port in A,(C) ;get response inc C ;point back to control port cp 6 ;is response what we want scf ;set error flag ret nz ;and return if not in A,(C) ;else get control data and svcrqt ;keep request bit ret ;and return successfully ; sndblk: ld d,rdhold ;read hold mask call slvrdy ;wait until ready ret nz dec C ;point to data port sndb0: if sprsix nop ;extra wait time for fast master and slow slave nop nop nop endif nop ;provide some extra time outi ;send byte jr nz,sndb0 ;go back if more jr blkerck ;check for errors ; rcvblk: ld D,wrhold ;set mask to slave write hold call slvrdy ;and wait for slave to be ready to send to us ret nz ;leave if slave not ready dec C ;point to data port rcvb0: if sprsix nop ;extra wait time for fast master and slow slave nop nop nop endif nop ;provide some extra time ini ;get data byte from slave jr nz,rcvb0 ;and go back if more blkerck: inc C ;point back to control port in A,(C) ;get status from slave and overrun ;was there any errors in transfer ret z ;leave if not ld A,0ffh ;else set error flag ret ;and exit ; slvrdy: ld E,0 ;load time counter slvrdy0: in A,(C) ;get slave control port and D ;keep only relevant status bit xor D ;complement sense of bit ret z ;will be zero if ready dec E ;not ready so decrement time out count jr nz,slvrdy0 ;try again if not timed out xor A ;else set error return flag dec A ret ;and exit ; waitnit: ld E,A ;make device no 16 bits ld D,0 ld HL,slvtmrtbl ;get table base add HL,DE ;point into table ld A,(ticcnt##) ;set element to tic count ld (HL),A ret ;and return ; tmrchk: push HL ;save hl ld HL,slvtmrtbl ;point to slave service timer table add HL,DE ;and to proper entry ld A,(ticcnt##) ;get present tick count sub (HL) ;find out how much time has elapsed pop HL cp 3CH ;has it been long enough ret ; rcvsetup: ld A,(rcvdev) ;get receive slave no. jr rsstp0 ;and go on to process it sndsetup: ld A,(snddev) ;get send slave no. rsstp0: ld E,A ;make slave no 16 bits ld D,0 ld HL,ssadt ;get base of slave port address table add HL,DE ;point to address of proper slave ld C,(HL) ;get base address for slave inc C ;bump to point to control port sgnlref: ld HL,sgnltbl ;point into nuther table add HL,DE ;proper place for this slave ret ; failclr: ld E,A ;make slave no. 16 bits ld D,0 call failpt ;point to falure table ld (HL),0 ;and clear entry for this slave ret ;and return ; failpt: ld HL,flctrtbl ;point to beginning of failure table add HL,DE ;and now to entry for this slave ret ; dseg ;put into data area ; nmbslv: nmbss@:: ;number of slaves installed db 2 ssckt: ssckt@:: ;default slave circuit number db 0 ssadt: ssadt@:: ;slave port address, default is 70h-8eh db 70h,72h,74h,76h,78h,7ah,7ch,7eh db 80h,82h,84h,86h,88h,8ah,8ch,8eh ssast: ssast@:: ;slave opsys suffix table db ' ' rcvdev: db 0 ;current receive device snddev: db 0 ;current send devece tranlng: ;receive block length db 0 slvctr: db 0 ;slave poll counter ; sgnltbl: ;slave device signal table db 0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0 ; slvtmr1tbl: ;slave service timer table db 0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0 ; flctrtbl: ;slave failure counter table db 0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0 ; ;receive message semaphore ; rcvsmph: dw 0 dw rcvsmph+2 dw rcvsmph+2 ; ;send message syncronazation semphore ; sncsmph: dw 1 dw sncsmph+2 dw sncsmph+2 ; ;send message semaphore ; sndsmph: dw 0 dw sndsmph+2 dw sndsmph+2 ; ;operating system load request buffer ; lodbuf: db 0,0,0,0,0,0,0,0,0,0 ; common /?init?/ ;put into initialize area ; cktin@:: ld a,(nmbslv) ;get number of slaves ld (slvctr),a ;and put into service counter ret ;no more init to do end  ' rcvdev: db 0 ;current receive device snddev: db 0 ;current send devece tranlng: ;receive block length db 0 slvctr: db 0 ;slave poll counter ; sgnltbl: ;slave device signal table db 0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0 ; slvtmr.z80 title park utility include EQUATE.LIB name ('PARKIT') ;bit equates rdymsk equ 6 ;drive ready bit busy equ 7 ;controller busy bit CSEG start: ld a,(tfcb) ; get default fcb drive or a jp nz,..ok ; jump if drive specified call dms ; display message db cr,lf,lf,bel dc 'No drive specified' jp wboot ;continue ..ok: dec a ; make base 0 ld (pdrdrv),a ; save drive number ld c,43 ; are we in bank 1 ? ld e,-1 call opsyst cp 0 jr z,getdrv ; get drive information call dms db cr,lf,bel dc 'To park the drive you must be attached to the master and on bank 0' jp wboot ; cannot execute from bank 1 getdrv: ld a,2 ld (pdrfcn),a ; get dst info ld de,pdrdp ld c,pdafcn call opsyst ; call turbo ld hl,(trkdsk) ; get max track value ld (pdrtrk),hl ; set max drive ld a,0 ld (pdrfcn),a ld de,pdrdp ld c,pdafcn call opsyst ; effectivly seek to maximum track call dms db cr,lf dc 'Drive is now parked' jp wboot ; done dms: ex (sp),hl ;get message address call msghl ;display message ex (sp),hl ;set up return address ret ;done msghl: push af ;save af ..l: ld a,(hl) ;get message byte inc hl ;increment pointer call conout ;display character or a ;last character? jp p,..l ;if not, continue pop af ;else, restore af ret ;done conout: push bc ;save registers push de push hl push af and 7fh ;strip sign bit from character ld e,a ;output character to e-reg ld c,rcofcn ;c=raw console output function call opsysc ;output character to console pop af ;restore registers pop hl pop de pop bc ret ;done DSEG pdrdp: ;pd request packet pdrfcn: db 0 ;pd request function pdrdrv: db 0 ;pd request drive number pdrtrk: dw 0 ;pd request track number pdrsec: dw 1 ;pd request sector number pdrsc: dw 1 ;pd request sector count pdrtc: dw 1 ;pd request transfer count pdrdma: dw dstpkt ;pd request dma address pdrdst: dw dstpkt ;pd request dst address dstpkt: ;dst area blksiz: db 0 ;block size nmblks: dw 0 ;number of allocation blocks nmbdir: db 0 ;number of directory blocks secsiz: db 0 ;sector size sectrak:dw 0 ;sectors/track trkdsk: dw 50 ;tracks/disk restrk: dw 0 ;reserved tracks end  ;save registers push de push hl push af and 7fh ;strip sign bit from character ld e,a ;output character to e-reg ld c,rcofcn ;c=raw console output function call opsysc ;output character to console pop af ;restore registers pop hl pop de pop bc ret ;done DSEG pdrdp: ;pd request packet pdrfcn: db 0 ;pd request function pdrdrv: db 0 ;pd request drive number pdrtrk: dw 0 ;pd request track number pdrsec: dw 1 ;pd request sector number pdrsc: dw 1 ;pd request sector count pdrtc: dw 1 ;pd request transfer count pdrdma: dw dstpkt ;pd request dma address pdrdst: dw dstp title TURBODOS OPERATING SYSTEM - SUPER SIX BANKED SWITCHED TPA DRIVER subttl copyright 1983, software 2000, inc. .z80 ; ; copyright 1983, software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 07/01/83 ; name ('S6BNK') ;module id ; include DREQUATE.LIB ;driver symbolic equivalences ; memcr1 equ 16h ;memory control register ##1 memcr2 equ 17h ;memory control register ##2 ; common /?bank?/ ;locate in common area ; bnknit:: ld (spsave),SP ;save stack pointer ld sp,auxstk ;set up auxilliary stack ld hl,0 ;initialize memory parity (bank 0) ld de,0 ld bc,0 ldir ld a,1 ;get bank 1 call selmem ;select bank 1 ld hl,0 ;initialize memory parity (bank 1) ld de,0 ld bc,0 ldir ld a,68h ;reset parity error latch out (memcr1),a ld a,0e8h ;enable parity error detection out (memcr1),a ld hl,rtcint ;get interrupt service address ld (ctcvec##+2),hl ;set interrupt vector ld hl,dskint ;get interrupt service address ld (ctcvec##+6),hl ;set interrupt vector ld hl,sioint ;get interrupt service address ld (siovec##),hl ;set interrupt vector xor a ;get bank 0 call selmem ;select bank 0 ld sp,(spsave) ;restore stack pointer ret ;done ; rtcint: ld (spsave),sp ;save stack pointer ld sp,auxstk ;set up auxilliary stack push af ;save af-reg xor a ;get bank 0 call selmem ;select bank 0 call rtcisr## ;process real time clock interrupt di ;disable interrupts ld a,1 ;get bank 1 call selmem ;select bank 1 pop af ;restore af-reg ld sp,(spsave) ;restore stack pointer ei ;enable interrupts ret ;done ; dskint: ld (spsave),sp ;save stack pointer ld sp,auxstk ;set up auxilliary stack push af ;save af-reg xor a ;get bank 0 call selmem ;select bank 0 call dskisr## ;process disk interrupt di ;disable interrupts ld a,1 ;get bank 1 call selmem ;select bank 1 pop af ;restore af-reg ld sp,(spsave) ;restore stack poin2ter ei ;enable interrupts ret ;done ; sioint: ld (spsave),sp ;save stack pointer ld sp,auxstk ;set up auxilliary stack push af ;save af-reg xor a ;get bank 0 call selmem ;select bank 0 call sioisr## ;process serial i/o interrupt di ;disable interrupts ld a,1 ;get bank 1 call selmem ;select bank 1 pop af ;restore af-reg ld sp,(spsave) ;restore stack pointer ei ;enable interrupts ret ;done ; selbnk:: di ;disable interrupts call selmem ;select memory bank ei ;enable interrupts ret ;done ; selmem: or a ;bank 0 requested? jr nz,..bnk1 ;if not, continue xor a ;else, get bank 1 command out (memcr2),a ;de-select lower 48k of memory ld a,0efh ;get bank 0 command out (memcr1),a ;enable lower 48k of memory jp frebnk ;free bank 1 mutual exclusion ..bnk1: call lokbnk ;gain bank 1 mutual exclusion ld a,0e8h ;get bank 0 command out (memcr1),a ;de-select lower 48k of memory ld a,07h ;get bank 1 command out (memcr2),a ;enable lower 48k of memory ret ;done ; spsave: dw 0 ;stack pointer save area ds 16*2 ;auxilliary stack area auxstk equ $ ;top of auxilliary stack area ; dseg ;locate in data area ; bk1sph: dw 1 ;memory bank 1 exclusion semaphore ..mxhd: dw ..mxhd dw ..mxhd ; cseg ;locate in program area ; lokbnk:: push bc ;save registers push de push hl ld a,r ;get interrupt status push af ;save interrupt status ld hl,bk1sph ;get mutual exclusion semaphore call wait## ;wait on mutual exclusion di ;disable interrupts pop af ;restore interrupt status jp po,..x ;if interrupts disabled, continue ei ;else, enable interrupts ..x: pop hl ;restore registers pop de pop bc ret ;done ; frebnk:: push bc ;save registers push de push hl ld hl,bk1sph ;get mutual exclusion semaphore call signal## ;release mutual exclusion pop hl ;restore registers pop de pop bc ret ;done ; end  TITLE TURBODOS OPERATING SYSTEM - SUPER SIX DISK DRIVER subttl copyright 1983, software 2000, inc. .Z80 ; ; copyright 1983, software 2000, inc. ; converted to MICROSOFT M80 format by ; Advanced Digital Corp. ; ; version: 02/16/84 doc ; NAME ('S6DSK') ;module id ; INCLUDE DREQUATE.LIB ;driver symbolic equivalences ; false equ 0 ;logical equates true equ not false ; banked equ true ;true for banked 1.3 system ; ; ctcch3 equ 0bh ;ctc channel 3 register ; fdccsr equ 0ch ;fdc command/status register fdctrk equ 0dh ;fdc track register fdcsec equ 0eh ;fdc sector register fdcdat equ 0fh ;fdc data register ; dmactl equ 10h ;dma control register ; fdcdsr equ 14h ;fdc drive select register ; fdccal equ 08h ;fdc re-calibrate command fdcskn equ 10h ;fdc seek command without head load fdcskh equ 18h ;fdc seek command with head load fdcrdc equ 82h ;fdc read sector command fdcwrc equ 0a2h ;fdc write sector command fdcrid equ 0c0h ;fdc read id command fdcint equ 0d0h ;fdc interrupt command fdcfmt equ 0f0h ;fdc format track command ; hsdbit equ 2 ;head settle delay bit ; dmardc equ 01h ;dma read command dmawrc equ 05h ;dma write command ; tsd equ 2 ;two sided disk bit ddd equ 3 ;double density disk bit mini equ 4 ;mini-floppy disk bit tpi96 equ 5 ;96-tpi disk bit ; maxtry equ 10 ;max disk try count ; PUBLIC maxfpy ; DSEG ;locate in data area ; drvtbl:: db 0,0,1 shl mini,1 shl mini or 1 shl tpi96 ;drive table ; drive: db 0ffh ;drive number sector: db 0 ;sector number seccnt: db 0 ;sector count trycnt: db 0 ;try counter dlybit: db 0 ;head settle delay bit intcst: db 0 ;interrupt completion status rwerrs: db 0 ;read/write error status dsrsav: db 0 ;drive select register save ndxcnt: db 0 ;index pulse sequence count ndxtic: db 0 ;index pulse tick count retsp: dw 0 ;error return stack pointer trktbl: db 0ffh,0ffh,0ffh,0ffh ;track save table ridbuf: ds 6 ;read id buffer ; dmxsph: ;mutual exclusion semaphore dw 1 ;semaphore count ..dmxh: dw ..dmxh ;semaphore p/d head dw ..dmxh ; dwtsph: ;disk wait semaphore dw 0 ;semaphore count ..dwth: dw ..dwth ;semaphore p/d head dw ..dwth ; dmapgm: ;dma controller program list db 0c3h ;write register 6 db 08bh ;write register 6 db 79h ;write register 0 dmaadr: dw 0 ;dma address dmalen: dw 0 ;dma length db 14h ;write register 1 db 28h ;write register 2 db 85h ;write register 4 db fdcdat ;fdc data port address db 8ah ;write register 5 db 0cfh ;write register 6 dmarwc: db 05h ;dma read/write command db 0cfh ;write register 6 db 87h ;write register 6 ; dmapll equ $-dmapgm ;dma controller program list length ; common /?init?/ ;locate in initialization area ; dskin@:: call clrfdc ;clear fdc ld hl,dskisr ;get interrupt service routine ld (ctcvec##+6),hl ;set interrupt vector address ret ;done ; cseg ;locate in program area ; dskdr@:: ld hl,dmxsph ;get mutual exclusion semaphore call wait## ;dispatch if necessary call ..dd ;call disk driver push af ;save return code ld hl,dmxsph ;get mutual exclusion semaphore call signal## ;signal process as ready pop af ;restore return code ret ;done ; ..dd: ld (retsp),sp ;save error return stack pointer ld a,(ix+pdrfcn) ;get function number or a ;function number=0? jr z,rddsk ;if so, continue dec a ;function number=1? jr z,wrdsk ;if so, continue dec a ;function number=2? jp z,retdst ;if so, continue dec a ;function number=3? jp z,retrdy ;if so, continue dec a ;function number=4? jr z,fmtdsk ;if so, continue ret ;else, done ; rddsk: ld a,maxtry ;get max try count ld (trycnt),a ;set try counter ..rd: call setup ;do common setup jr nz,..err ;if seek error, continue ..rdl: call rwcom1 ;else, do read/write common #1 ld de,fdcrdc shl 8 or 9dh ;get fdc read command/mask call rwcom2 ;do read/write common #2 ld a,dmardc ;get dma read command call dmacom ;do dma common call rwcom3 ;do read/write common #3 jr nz,..rdl ;if not last sector, continue ld a,(rwerrs) ;else, get read/write error status or a ;read/write error status=0? ret z ;if so, done ..err: call retry ;else, re-calibrate drive jr ..rd ;try again ; wrdsk: ld a,maxtry ;get max try count ld (trycnt),a ;set try counter ..wr: call setup ;do common setup jr nz,..err1 ;if seek error, continue ..wrl: call rwcom1 ;else, do read/write common #1 ld de,fdcwrc shl 8 or 0fdh ;get fdc read command/mask call rwcom2 ;do read/write common #2 ld a,dmawrc ;get dma write command call dmacom ;do dma common call rwcom3 ;do read/write common #3 jr nz,..wrl ;if not last sector, continue ld a,(rwerrs) ;else, get read/write error status or a ;read/write error status=0? jr nz,..err1 ;if not, continue call setup ;else, do common setup jr nz,..err1 ;if seek error, continue ..vfl: call rwcom1 ;else, do read/write common #1 ld d,fdcrdc ;get fdc read command call rwcom2 ;do read/write common #2 ld a,d ;get fdc read command call fdccmd ;output fdc read command and 99h ;extract relevant status bits call rwcom3 ;do read/write common #3 jr nz,..vfl ;if not last sector, continue ld a,(rwerrs) ;else, get read/write error status or a ;read/write error status=0? ret z ;if so, done ..err1: call retry ;else, re-calibrate drive jr ..wr ;try again ; fmtdsk: ld a,maxtry ;get max try count ld (trycnt),a ;set try counter ..fmt: call seldsk ;select disk jp nz,fatal ;if drive not ready, continue ld a,(dsrsav) ;get saved drive select register bit 7,(ix+pdrsec) ;double density requested? jr nz,..ddr ;if so, continue res 3,a ;else, reset double density bit ..ddr: bit 7,(ix+pdrsec+1) ;side one requested? jr z,..s1nr ;if not, continue set 2,a ;else, set side one select bit ..s1nr: out (fdcdsr),a ;select drive/side/density ld (dsrsav),a ;save driv2e select register value ld a,(ix+pdrtrk) ;get requested track number or a ;requested track number=0? call z,recal ;if so, re-calibrate drive call seek ;seek to requested track jr nz,..err2 ;if seek error, continue ld l,(ix+pdrdma) ;get requested dma address ld h,(ix+pdrdma+1) ld (dmaadr),hl ;set dma address ld l,(ix+pdrtc) ;get requested transfer count ld h,(ix+pdrtc+1) dec hl ;decrement requested transfer count ld (dmalen),hl ;set dma length ld de,fdcfmt shl 8 or 0e1h ;get format command/mask ld a,dmawrc ;get dma write command call dmacom ;do dma common ret z ;if no errors, done ..err2: call retry ;else, re-calibrate drive jr ..fmt ;try again ; setup: ld a,(ix+pdrsec) ;get requested sector number ld (sector),a ;set sector number ld a,(ix+pdrsc) ;get requested sector count ld (seccnt),a ;set sector count ld l,(ix+pdrdma) ;get requested dma address ld h,(ix+pdrdma+1) ld (dmaadr),hl ;set dma address ld b,(ix+secsiz) ;get sector size inc b ;increment sector size ld hl,128/2 ;get sector size=0 (/2) ..sl: add hl,hl ;shift sector size left djnz ..sl ;sector size times dec hl ;decrement sector size ld (dmalen),hl ;set dma length xor a ld (rwerrs),a ;set read/write error status=0 call seldsk ;select disk jp nz,fatal ;if drive not ready, continue call seek ;else, seek to requested track ret ;done ; rwcom1: call gettca ;get disk type code address ld a,(hl) ;get disk type code ld hl,dsrsav ;get saved drive select register bit ddd,a ;double density disk? jr nz,..ddd ;if so, continue res 3,(hl) ;else, reset double density bit ..ddd: bit tsd,a ;two sided disk? ld a,(sector) ;get sector number jr z,..ntsd ;if not two sided disk, continue ld c,(ix+sectrk) ;get number of sectors/track srl c ;calc number of sectors/side cp c ;requested sector on side one? jr c,..ntsd ;if not, continue sub c ;else, adjust sector number set 2,(hl) ;set side one select bit ..ntsd: ld c,a ;sector number to c-reg ld a,(ix+pdrtrk) ;get track or a ;if it's zero jr z,..nstr ;don't translate sector call getxlt ;get translation table address jr z,..nstr ;if no sector translation, continue ld b,0 ;make sector number double length add hl,bc ;index into translation table ld c,(hl) ;get translated sector number ..nstr: ld a,c ;get sector number inc a ;increment sector number to base 1 out (fdcsec),a ;set fdc sector register ld a,(dsrsav) ;get saved drive select register out (fdcdsr),a ;select drive/side/density ret ;done ; rwcom2: ld a,(dsrsav) ;get saved drive select register bit 2,a ;side one selected? ret z ;if not, done set 3,d ;else, set side one verify bit ret ;done ; rwcom3: ld hl,rwerrs ;get read/write error status or (hl) ;combine with completion status ld (hl),a ;update read/write error status ld hl,(dmaadr) ;get dma address ld de,(dmalen) ;get dma length inc de ;increment dma length add hl,de ;calc next dma address ld (dmaadr),hl ;update dma address ld hl,sector ;get sector number inc (hl) ;increment sector number ld hl,seccnt ;get sector count dec (hl) ;decrement sector count ret ;done ; retry: ld c,abel ;get bell character call conout## ;output bell character to console ld a,(trycnt) ;get try counter and 01h ;even try? call nz,recal ;if not, re-calibrate drive ld a,(trycnt) ;get try counter push af ;save try counter ld hl,(retsp) ;get error return stack pointer push hl ;save error return stack pointer ld hl,dmxsph ;get mutual exclusion semaphore call signal## ;signal process as ready ld hl,0 ;set delay count=0 call delay## ;dispatch ld hl,dmxsph ;get mutual exclusion semaphore call wait## ;dispatch if necessary pop hl ;restore error return stack pointer ld (retsp),hl ;set error return stack pointer pop af ;restore try counter dec a ;decrement try counter ld (trycnt),a ;update try counter ret nz  ;if count not exhausted, done ; fatal: ld sp,(retsp) ;restore stack pointer ld a,0ffh ;return error code ret ;done ; retdst: call retrdy ;return ready status or a ;drive ready? ret z ;if not, done ld (ix+pdrtrk),1 ;and seek to track 1, will recal if first time call seek call readid ;read sector id jr nz,..nrdy ;if read unsuccessful, continue ld a,(ridbuf+3) ;else, get sector size ld c,a ;sector size to c-reg ld a,(dsrsav) ;get saved drive select register bit 3,a ;double density bit set? jr z,..nddd ;if not, continue set ddd,c ;else, set double density disk bit ..nddd: set 2,a ;set side one select bit out (fdcdsr),a ;select requested drive ld (dsrsav),a ;save drive select register value call clrfdc ;clear fdc and 80h ;drive ready? jr nz,..ntsd1 ;if not, continue push bc ;else, save disk type code call readid ;read sector id pop bc ;restore disk type code jr nz,..ntsd1 ;if read unsuccessful, continue ld a,(ridbuf+1)  ;get id side byte cp 1 ;is it head 1 jr nz,..ntsd1 ;skip if not ld a,(dsrsav) ;get saved drive select register xor c ;compare side one/two densities and 1 shl ddd jr nz,..ntsd1 ;if densities different, continue ld a,(ridbuf+3) ;get sector size xor c ;compare side one/two sector sizes and 3 jr nz,..ntsd1 ;if sizes different, continue set tsd,c ;else, set two sided disk bit ..ntsd1: call getdta ;get drive table address ld a,(hl) ;get drive table value and 1 shl mini or 1 shl tpi96 ;extract relevant bits or c ;combine with disk type code ld c,a ;disk type code to c-reg ld de,dstbls## ;get dst table base ..dstl: ld hl,dtco## ;get offset to disk type code add hl,de ;calc disk type code address ld a,c ;get disk type code cp (hl) ;dst type code match? ex de,hl ;dst address to hl-reg jr z,..dstf ;if dst found, continue ld e,(hl) ;else, get next dst address inc hl ld d,(hl) ld a,d or e ;end of dst chain? jr nz,..dstl ;if not, continue ..nrdy: xor a ;else, set return code=0 ret ;done ..dstf: inc hl ;advance past link pointer inc hl ld (ix+pdrdst),l ;set dst address ld (ix+pdrdst+1),h ld a,0ffh ;set return code=0ffh ret ;done ; seek: in a,(fdctrk) ;get fdc track register inc a ;fdc track register=0ffh? call z,recal ;if so, re-calibrate drive in a,(fdctrk) ;else, get fdc track register cp (ix+pdrtrk) ;fdc track=requested track? ret z ;if so, done ld a,1 shl hsdbit ;get head settle delay bit ld (dlybit),a ;set head settle delay bit call clrfdc ;clear fdc ld a,(ix+pdrtrk) ;get requested track number out (fdcdat),a ;output requested track number call getdta ;get drive table address ld a,(hl) ;get drive table value and 3 ;extract step rate or fdcskh ;combine with fdc seek command call fdccmd ;output fdc seek command and 91h ;extract relevant status bits ret ;done ; recal: ld a,1 shl hsdbit ;get head settle delay bit ld (dlybit),a ;set head settle delay bit call clrfdc ;clear fdc call getdta ;get pointer to step rate ld a,(hl) ;get it and 3 ;save only step rate or fdccal ;or in recal command call fdccmd ;output fdc re-calibrate command ret ;done ; retrdy: ld a,(ix+pdrdrv) ;get requested drive maxfpy equ $+1 ;point to max drive number for patching cp 4 ;test for valid drive number ld a,0 ;preset return code=0 ret nc ;if invalid drive, return not ready call seldsk ;else, select requested drive ld a,0 ;preset return code=0 ret nz ;if drive not ready, done cpl ;else, set return code=0ffh ld hl,dsrsav ;get saved drive select register bit 4,(hl) ;mini-floppy disk bit set? ret z ;if not, done ld a,2 ;get index pulse sequence count ld (ndxcnt),a ;set index pulse sequence count=2 call enactc ;enable ctc interrupt controller ld a,fdcint or 1 shl 2 ;get fdc interrupt command out (fdccsr),a ;output fdc interrupt command ld hl,60 ;get one second delay count 3call delay## ;delay for one second ld a,03h ;get ctc reset command out (ctcch3),a ;reset ctc channel 3 call clrfdc ;clear fdc ld hl,ndxcnt ;set index pulse sequence count ld a,(hl) ;get index pulse sequence count ld (hl),0 ;set index pulse sequence count=0 or a ;index pulse sequence count=0? cpl ;preset return code=0ffh ret z ;if sequence count=0, done xor a ;else, set return code=0 ret ;done ; seldsk: ld a,(ix+pdrdrv) ;get requested drive set 3,a ;set double density bit call getdta ;get drive table address bit mini,(hl) ;mini-floppy disk? jr z,..nmfd ;if not, continue set 4,a ;else, set mini-floppy disk bit ..nmfd: out (fdcdsr),a ;select requested drive ld (dsrsav),a ;save drive select register value call clrfdc ;clear fdc and 80h ;drive ready? ret nz ;if not, done ld (dlybit),a ;else, set head settle delay bit=0 ld a,(drive) ;get drive number cp (ix+pdrdrv) ;drive number=requested drive? ret z ;if so, done cp 0ffh ;drive number invalid? jr z,..dni ;if so, continue call ..gtta ;else, get track save table address in a,(fdctrk) ;get fdc track register ld (hl),a ;save fdc track register ..dni: ld a,(ix+pdrdrv) ;get requested drive ld (drive),a ;set drive number call ..gtta ;get track save table address ld a,(hl) ;get fdc track register out (fdctrk),a ;set fdc track register out (fdcdat),a ;set fdc data register ld a,fdcskn ;get fdc seek command call fdccmd ;output fdc seek command xor a ;set return code=0 ret ;done ..gtta: ld e,a ;drive number to de-reg ld d,0 ;double length ld hl,trktbl ;get track save table add hl,de ;index into track save table ret ;done ; readid: ld hl,ridbuf ;get read id buffer ld (dmaadr),hl ;set dma address ld hl,6-1 ;get sector id length (-1) ld (dmalen),hl ;set dma length ld hl,dsrsav ;get saved drive select register set 3,(hl) ;set double density bit ld a,(hl) ;get saved drive select register out (fdcdsr),a ;select drive/side/density ..ridl: ld de,fdcrid shl 8 or 9dh ;get read id command/mask ld a,dmardc ;get dma read command call dmacom ;read id ret z ;if read ok, done ld a,(dsrsav) ;get saved drive select register xor 1 shl 3 ;toggle single/double density bit out (fdcdsr),a ;output drive select register value ld (dsrsav),a ;save drive select register value and 1 shl 3 ;double density selected? jr z,..ridl ;if not, continue ret ;else, done ; dmacom: ld (dmarwc),a ;set dma read/write command if banked call lokbnk## ;gain mutual exclusion on bank 1 endif call clrfdc ;clear fdc ld hl,dmapgm ;get dma program list ld bc,dmapll shl 8 or dmactl ;b=program length/c=port otir ;program dma controller ld a,(dlybit) ;get head settle delay bit or d ;combine with fdc command push de ;save error mask call fdccmd ;output fdc command pop de ;restore error mask and e ;extract relevant status bits push af ;save error status  ld a,0c3h ;get dma reset command out (dmactl),a ;disable dma controller xor a ld (dlybit),a ;set head settle delay bit=0 if banked call frebnk## ;free mutual exclusion on bank 1 endif pop af ;restore error status ret ;done ; fdccmd: push af ;save fdc command call enactc ;enable ctc interrupt controller pop af ;restore fdc command out (fdccsr),a ;output fdc command ld hl,dwtsph ;get disk wait semaphore call wait## ;wait for operation to complete ld a,(intcst) ;get interrupt completion status ret ;done ; clrfdc: ld a,fdcint ;get fdc interrupt command out (fdccsr),a ;output fdc interrupt command ex (sp),hl ;delay ex (sp),hl ex (sp),hl ex (sp),hl ex (sp),hl ex (sp),hl ex (sp),hl ex (sp),hl in a,(fdcdat) ;clear drq in a,(fdccsr) ;clear intrq ret ;done ; dskisr:: ld (intsp##),SP ;save interrupt stack pointer ld sp,intstk## ;set up aux stack push af ;save registers push bc push de push hl in a,(fdccsr) ;get fdc completion status ld (intcst),a ;save interrupt completion status ld a,(ndxcnt) ;get index pulse sequence count dec a ;index pulse sequence count=0? jp m,..isc0 ;if so, continue jr nz,..fip ;if first index pulse, continue ld a,(ndxtic) ;else, get index pulse tick count ld c,a ;index pulse tick count to c-reg ld a,(ticcnt##) ;get current tick count ld (ndxtic),a ;update index pulse tick count sub c ;calc elapsed tick counts cp 14 ;index pulse timing within limits? jr nc,..isrx ;if not, continue xor a ld (ndxcnt),a ;set index pulse sequence count=0 jr ..iscx ;continue ..fip: ld (ndxcnt),a ;set index pulse sequence count=1 ld a,(ticcnt##) ;get tick count ld (ndxtic),a ;save index pulse tick count jr ..isrx ;continue ..isc0: ld hl,dwtsph ;get disk wait semaphore call signal## ;signal process as ready ..iscx: ld a,03h ;get ctc reset command out (ctcch3),a ;reset ctc channel 3 ..isrx: pop hl ;restore registers pop de pop bc pop af ld sp,(intsp##) ;restore stack pointer ei ;enable interrupts reti ;done ; enactc: ld a,0d7h ;get ctc channel 3 control word out (ctcch3),a ;initialize ctc channel 3 ld a,1 ;get ctc channel 3 time constant out (ctcch3),a ;set ctc channel 3 time constant ret ;done ; getxlt: call getdst ;get dst address ld de,xltbl## ;get offset to translation table add hl,de ;calc translation table address ld e,(hl) ;get translation table address inc hl ld d,(hl) ex de,hl ;translation table to hl-reg ld a,h or l ;translation table required? ret ;done ; gettca: call getdst ;get dst address ld de,typcod## ;get offset to disk type code add hl,de ;calc disk type code address ret ;done ; getdst: ld l,(ix+pdrdst) ;get dst address ld h,(ix+pdrdst+1) ret ;done ; getdta: ld e,(ix+pdrdrv) ;get requested drive ld d,0 ;double length ld hl,drvtbl ;get drive table add hl,de ;index into drive table ret ;done ; end 128) dw 5 ;physical sectors per track dw 80 ;physical tracks per disk dw 0 ;reserved tracks endif dw 0 ;translation table address db 1 shl tpi96 or 1 shl mini or 1 shl ddd or 3;disk type code db 35h ;gap length ; ; 1024 byte sector, double-density, one-sided (mini) ; dw $+dstl ;disk spec table link pointer db 3 ;block size ; db 4 if cpm dw (39*(4*(1 shl 3)))/(1 shl 3);number of blocks ; db 1 ;number of directory blocks db 2 db 3 ;physical sector size (2^n*128) dw 4 ;physical sectors per track dw 40 ;physical tracks per disk dw 1 ;reserved tracks else dw (40*(5*(1 shl 3)))/(1 shl 3);number of blocks db 2 ;number of directory blocks db 3 ;physical sector size (2^n*128) dw 5 ;physical sectors per track dw 40 ;physical tracks per disk dw 0 ;reserved tracks endif dw 0 ;translation table address db 1 shl mini or 1 shl ddd or 3 ;disk type code db 35h ;gap length ; ; 512 byte sector, double-density, one-sided mini (Kaypro DD)  ; dw $+dstl ;disk spec table link pointer db 3 ;block size dw (39*(10*(1 shl 2)))/(1 shl 3) ;number of blocks db 2 ;number of directory blocks db 2 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 40 ;physical tracks per disk dw 1 ;reserved tracks dw kayskw ;translation table address db 1 shl ddd or 1 shl mini or 2 ;disk type code db 1bh ;gap length ; ; 512 byte sector, single-density, two-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(16*(1 shl 2)))/(1 shl 4);number of blocks db 3 ;number of directory blocks db 2 ;physical sector size (2^n*128) dw 16 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 shl tsd or 2 ;disk type code db 1bh ;gap length ; ; 512 byte sector, single-density, one-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(8*(1 shl 2)))/(1 shl 4);number of blocks 3 db 2 ;number of directory blocks db 2 ;physical sector size (2^n*128) dw 8 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 2 ;disk type code db 1bh ;gap length ; ; 256 byte sector, single-density, two-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(30*(1 shl 1)))/(1 shl 4) ;number of blocks db 3 ;number of directory blocks db 1 ;physical sector size (2^n*128) dw 30 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 shl tsd or 1 ;disk type code db 0eh ;gap length ; ; 256 byte sector, single-density, one-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(15*(1 shl 1)))/(1 shl 4) ;number of blocks db 2 ;number of directory blocks db 1 ;physical sector size (2^n*128) dw 15 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 ;disk type code db 0eh ;gap length ; ; 256 byte sector, single-density, one-sided 48-tpi mini (Osborne SD) ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (37*(10*(1 shl 1)))/(1 shl 4) ;number of blocks db 1 ;number of directory blocks db 1 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 37 ;physical tracks per disk WAS 37 dw 3 ;reserved tracks dw osbskw ;translation table address db 1 shl mini or 1 ;disk type code db 0eh ;gap length ; ; 128 byte sector, single-density, two-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(52*(1 shl 0)))/(1 shl 4) ;number of blocks db 2 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 52 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 shl tsd ;disk type code db 7 ;gap length ; ; 128 byte sector, single-density, single-sided 48-tpi mini (Xerox SD) ; dw $+dstl ;disk spec table link pointer db 3 ;block size dw (37*(18*(1 shl 0)))/(1 shl 3) ;number of blocks db 1 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 18 ;physical sectors per track dw 40 ;physical tracks per disk dw 3 ;reserved tracks dw xrxskw ;translation table address db 1 shl mini ;disk type code db 7 ;gap length ; ; 128 byte sector, single-density, one-sided ; dsta: dw 0 ;disk spec table link pointer dstb: db 3 ;block size dw (75*(26*(1 shl 0)))/(1 shl 3);number of blocks db 2 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 26 ;physical sectors per track dw 77 ;physical tracks per disk dw 2 ;reserved tracks ; xltbl equ $-dstb ;translation table address offset ; dw trtbl ;translation table address ; dtco equ $-dsta ;disk type code offset typcod equ $-dstb ;disk type code offset ; db 0 ;disk type code ; gaplen equ $-dstb ;gap length offset ; db 7 ;gap length ; dstl equ $-dsta ;disk spec table length ; ; single-density/single-sided (8", IBM-3740) sector translation table ; trtbl: db 0,6,12,18,24,4,10,16,22 db 2,8,14,20,1,7,13,19,25 db 5,11,17,23,3,9,15,21 ; ; Kaypro II sector translation table ; kayskw: db 0FFH,00,01,02,03,04,05,06,07,08 ; ; Osborne SD sector translation table ; osbskw: db 0,2,4,6,8,1,3,5,7,9 ; ; Xerox SD sector translation table ; xrxskw: db 0,5,10,15,2,7,12,17,4,9,14,1,6,11,16,3,8,13 ; END nk pointer dstb: db 3 ;block size dw (75*(26*(1 shl 0)))/(1 shl 3);number of blocks db 2 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 26 ;physical sectors per track dw 77 ;physical tracks per disk dw 2 ;reserved tracks ; xltbl equ $-dstb ;translation table address offset ; dw trtbl ;translation table address ; dtco equ $-dsta ;disk type code offset typcod equ $-dstb ;disk type code offset ; db 0 ;disk type code ; gaplen equ $-dstb ;gap length offse1$43000$57.3$46500$*  HTHIS IS A BATTLESHIP DUEL$d4A HIT WITHIN 100 YARDS OF TARGET WILL WIN THE GAME$d4THE MAX. RANGE IS 46,500 YARDS.$d4THE ELEVATION IS IN DEGREES AND TENTHS OF DEGREES$d4pM.u0Cpppd4p766"MIN. ELEV. IS ONE DEGREE$d46GMAX. ELEV. IS 89 DEGREES$d46G-p7-6?OVER TARGET BY $A#YDS-LOWER ELEVATION$d46GOVER TARGET BY $A#YDS-RAISE ELEVATION$d46G-p76SHORT OF TARGET BY $A#YDS-RAISE ELEVATION$d46GSHORT OF TARGET$A#YDS-LOWER ELEVATION$d46G6 ***** TARGET DESTROYED ***** $#ROUNDS EXPENDED$d4p7L6t THAT'S DARN GOOD SHOOTING, SON!$d46p76VERY GOOD SHOOTING. WE NEED MORE LIKE YOU.$d46p76ABOUT AVERAGE, TRY TO IMPROVE$d46 p76[I GUESS YOU KNOW YOU'RE A LOUSY SHOT. YOU SHOULD $d4BE INSIDE WITH THE COOK, FOR ALL OUR SAKES$d46 OUR FATHER WHO ART IN HEAVEN... ! $d4d4d4d4DO YOU WANT TO PLAY ANOTHER GAME? ENTER YES OR NO$d4n;1'Y76YES766THE ENEMY HAS BEEN SIGHTED, MAN YOUR GUNS!$d4pd46DISTANCE TO TARGET IS $B#YDS$d4d4ELEVATION:$dn;"'Zp7m6p7z6pp..EBdp76 Adp76dp76d4 #### BANG - YOU BLEW YOURSELF UP ####$d4d46d4d4d4** TARGET DESTROYED ***** $#ROUNDS EXPENDED$d4p7L6t THAT'S DARN GOOD SHER TARGET BY $A#YDS-RAISE ELEVATION$d46G-p76SHORT OF TARGET BY $A#YDS-RAISE ELEVATION$d46GSHORT OF TARGET$A#YDS-LOWER ELEVATION$d46G6 ***** TARGET DESTROYED ***** $#ROUNDS EXPENDED$d4p7L6t THAT'S DARN GOOD SHOOTING, SON!$d46p76VERY GOOD SHOOTING. WE NEED MORE LIKE YOU.$d46p76ABOUT AVERAGE, TRY TO IMPROVE$d46 p76[I GUESS YOU KNOW YOU'RE A LOUSY SHOT. YOU SHOULD $d4BE INSIDE WITH THE COOK, FOR ALL OUR SAKES$d46 OUR FATHER WHO ART IN HEAVEN... ! $d4d4d4d4DO YOU WANT TO PLAY ANOTHER GAME? ENTER YES OR NO$d4n;1'Y76YES7"!"*[RS*q#*+K R0YPS!4G!3nO~(˹_:{ *+"-!"/*'[/RS/*+q#*'+K) R0YPS+1!44=x!(!3qyOx: ( Gy2 !x(!3~>y(q(Wx(>yQx(>yPZ(Zy(=()!A @p#!@˾v(˶!Mݯ!G!@~( !M F!Gݯ> s1> !@!A{d*Xy #"X~wN! ~<(.^%V&:-G!0~# ~###(N !Ć<(w6~| ~Yw#~<~(  !uetfneffnjfk ͪYN! ! ~( (wN####^#Vz(͹s#r!!~#w@~w70O'6Ͳ! 6!w#w#w~(<=( =(,6͙OͲ"1!~=('Ͳ A͙6Ͳ!ѷ !!4 #4 #4͉ͪͲ"~(͙Ͳ1?( N! p>ƷDy"D̀">~D#~B[ny"ǹ"yq}o|~B[{ozg}/o|/gN#͛~oZ! z<(ez<(=(=o{(wzo ͹^#VN! ɷ( #~#fo!!O ! ~N! $ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}COLDSTRTAUTWARMSTRTAUT1$ }-PRINT-?000 $$~~~@UU[[__R  @##66<<CCIIOO||S Advanced Digital Corp. Banked Super Slave B ready.$ 9 $OSSLAVE SYS37;@DJD@WOZ_ekoúý2. %YYY+C CPYL!"_P=)!Kx( 0< [0<"*2, `i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'͗>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1>{s1x>{s1^>{vOZ_ekoúý2. %YYY+C CPYL!"_P=)!Kx( 0< [0<"*2, `i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'͗>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1@!$\c"IG:o&###v"w:x=o&M :U(G!v͘:V(G!v12 ͉ͬͬͬ"HͬͬÈ>2ͣG@ì^G>>>>O! s#r+}! }2!" ! ! *\v"^"`"b*uv"w"y"{D!xͻ:xG!|:(####+:w>!û:GM>sA{="C*?ͪ:Ki*C{Aɷ( ʁ2L( :L ͬ߯ɷyq=(J=(M=(D=(G((9=((t(s!(tʁ¯2M"{(8:Mo <2MoĻͻ>Yf { (i(:(K ͊(!{ 0 Y6U4Rͳ//(7=(: ѷ{<({2Oz(!2N:2Oz : SESG2M ͬ>@Ĭ!M6 *=| s="?{=*?6;ͪ  $n ͥ(ͧͧͥ: G:(G:_:W ͓{=*?  {=*?!K~6ͬ ͥ<(  >ͪ>2!"2P!"Q ʇO2 ͼ*[;RJ!!"E"GGZYf  ,>ͪͬ :N_:O_ >@ì!>+r+s+w"2: :K*##R>2K*[IRWi^*E|*G|i{A*C>'d  R0y 0_ S̈́~( =(=(:þSReaSWrit SNot readS error, Drive:~AOu~(DS, Track:nfS, Sector:nf^Vz( S -S (Retry,~( SIgnore,SAbort)Ϸ(22͈gO:đ:=~:<$n2*/ 0:y00A:͂ g!~(76v(0*##~#2~#2~#( OS6!~6 [ 2#~ʁO#"͈ 6Ͳ*"^!<2#"<|*<+|:~;:7~7#g# !">  ; SSLAVBKA.PAR file to generate an "OSSLAVEA.SYS" (banked) USRSOM = 0D,0A,' ARROW PRECISION PRODUCTS Banked Super Slave A ready.$' SRHDRV = 0FF ;SEARCH SYSTEM DISK FOR .COM FILES COMPAT = 0F8 ;FILE/RECORD LOCKING COMPATIBILITY FLAGS ;CPMVER = 022 ;INHIBIT CB-80 RECORD LOCKING CONBR = 0CF ;USE 19.2K BAUD TERMINAL FOR CONSOLE WITH CTS ;CONBR = 0CE ;USE 9600 BAUD TERMINAL FOR CONSOLE CTSBR = 06E ;9600 BAUD/CTS (1200 BAUD CTS PRINTER=67) ATNCHR = 0 ;USE "BREAK" KEY FOR ATTENTION ; ; CLSSTR IS THE CLEAR SCREEN STRING THAT IS SENT TO THE ; TERMINAL TO CLEAR THE SCREEN WHEN EVER THE CLEAR SCREEN ; CHARACTER IS SENT TO THE CONSOLE DRIVER. ; MAXIMUM LENGTH IS 8 BYTES. ; LAST CHARACTER OF STRING MUST HAVE HIGH BIT SET. ;CLSSTR = 0C,1A,1B,2A+80,80,80,80,80 ;THIS IS THE DEFAULT STRING ; PRTMOD = 0 ;DEFAULT PRINT MODE = SPOOLED ; PTRAST = 01,LSTDRA ; PRINTER C = SERIAL ;QUEAST+6 = 0,(0),0,(0) ; QUEUE ASSIGNMENT TABLE, LOCALLY GENERATED QUEUE ;DSPPAT+2 = 3,4 ; PRINTER C USES QUEUE C, PRINTER D USES QUEUE D ;QUEPTR = 3 ; COME UP ON PRINTER C ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM START AUTOLOAD FILE NAME ; 1.4 chain to program patch (ALL CONFIGURATIONS with dspchr) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db RDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE Sunt inc (hl) ;increment input wait count ld hl,s1isph ;get serial 1 input semaphore call wait## ;wait for console input jr ..s1i ;continue ; ..s2i: di ;else, disable interrupts ld hl,(s2icnt) ;get serial 2 input count ld a,h or l ;serial 2 input count=0? jr z,..wt2 ;if so, continue dec hl ;decrement serial 2 input count ld (s2icnt),hl ;update serial 2 input count ld hl,(s2optr) ;get serial 2 output pointer ld a,(hl) ;get character from buffer inc hl ;increment serial 2 output pointer ex de,hl ;serial 2 output pointer to de-reg ld hl,(s2ibsz) ;get serial 2 input buffer size dec hl ;decrement input buffer size ld bc,(s2ibuf) ;get serial 2 input buffer address add hl,bc ;calc last input buffer address sbc hl,de ;buffer wrap-around? jr nc,..nwa2 ;if not, continue ld e,c ;get serial 2 input buffer address ld d,b ..nwa2: ld (s2optr),de ;update serial 2 output pointer ei ;enable interrupts ret ;done ..wt2: ld hl,s2iwct ;g9TI͙JHT$I͙JT7͙JY7HL>I͙JS7͙JT7>HR7͙JD7R7>H> eI6 #=]Iy.2i@JAx}IʊI͙J~Iy/y͙JL£I2n@͙JOËIN®I2u@ÜIO¹I2t@ÜIRI2p@ÜICI2q@2n@ÜIMI2v@ÜIII2m@ÜIXI>2r@ÜIZJ2m@ÜIP7:o@<2o@ÜI͙J[-J0-JA)J:-JJO!~6G_J#~ HJ:J-Fx+#YJ~NJ2s@J2s@:j@rJJ>*ͰJ ,F> ͰJ:-F!.F"~Fo>g6 #> w~# ʙJ ʙJ J#"~F_*~F+~ #0J#"~F+~7ȷ> ͰJ> ðJ*B!"(B!@:n@K(A!"&A!x@:p@AK~AKcK 8L> 8L>8L*(B*B@L*B@ÑK:p@ʕH:x@K>͟L*&A(Ax@L(Ax@ÑK|}Lƀ)`ioL> 8L> 8L> 8L:n@ʕH:@<ʯJM*(B|gL#"(B)Bw*B!@>cM =oL!(A>!x@oL:p@ʕH:x@J*&A|=̔L#"&A'Aw:@@=M!=L!> M_!w@ 5M 3M<3M~=w4{ JM> 8L~ ͰJ!MͱFJDISK FULL!M:>NN@ҲNw#2i@.yN!yNw#RN2i@.ʀN!gNÀN6 #yN:i@.ʍNw#NpMMʲN2M2M:M=NMMN!M"M>2M*M~N7N#"M0(A!"&A!x@:p@AK~AKcK 8L> 8L>8L*(B*B@L*B@ÑK:p@ʕH:x@K>͟L*&A(Ax@L(Ax@ÑK|}Lƀ)`ioL> 8L> 8L> 8L:n@ʕH:@<ʯJM*(B|gL#"(B)Bw*B!@>cM =oL!(A>!x@oL:p@ʕH:x@J*&A|=̔L#"&A'Aw:@@=> _::  >ê͈^#V#~#fo͂! ͂ȯw1w2 ! ͕08B( (M87(!.(?:(B!08!(/ M8 $kb M8 !! !Ö>(G! ~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2 := =2^M(:.*(w#6?# (8=(,( O:(yg͈| s1r26#͕͗6#6 #!~(# (!V:w+ ^qs#r~1< ~=2N~@2O͈|(/~!N#:0O[yS͈!6fvr(@͂(~( #! v #####:w#:w#qy(#*!@6!6!"͂!@^#V+R*|:>2:D!!Fˆ>N  r :e/!ί>ͪͪ!~1 ˎ:<=_êZZ!9u5t6ͬ6ì~.ZfZ ~.ZfZ"͏͈n/f0*ͯ"u/t0u1t2͖t.Zu Z*n5f6Zf 6.63n9f:|(n3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!͖6.2~/Zf !,!0!608h!  :ʸLO ^#V|mOnΜ΢Ҩkqr̬x̬*8B̝ȁͲAΚj`s]g̬εq̬(ȬEҬ .ά!Á~1w=~=á͈Á~1 ~@Z~(w@>á~1=w\^17G)zs#r#w͈u7t8͈u9t:Zv 9~1(Zn ,w@0ZZZZZ:w@: w=>Ý~1w[Oz<(!ͯOqn7f8|>5#N#N#Fp+q+q5#4#4#4͈~?(=~=l ͈ ~    ͈~nLfMuLtMnNfOuNtO^PVQsPrQZ*{u1t2:á͈^#V#~#͠W~͠_*  7G ;á;#w 7x2 ͈q#p#zw#{w 0 !!!!͈|<("*Ö:w[ͬì6/Z~(w0!.u1t2!ÖzMD͈͏͖ͬs1r2q/p0Ý 0 ( ( ( qá~1O! 0 ( 6~G ͘4uáN1u~1O<(<(_~ (;("*" > ͈|(m~@2! C*|( ͈*͈!͓ ("6!%͓ "͈ !w)ʷ͜>Ý!6v####;ͷ*####ͷ*|(*|0++++~@:w@)w@*|!^#V+R!""F#6#͊O(6 0(. (/(2(.0q#!6 ~<(@w)NfXJ9< >! 6)N 'Y͌>o&q5Yv(^ӷ Y_y͓<ʊY6<Yn(YYv Ͷͺ N< _yYvYnͶT-V< 79T>( G&#6->NZF\Z6\)A(Zp\N9>)Ny=rg:Oo7z#́Án@:Ow@ru@͌>_6r|!uUtVnUfV͌|!uWtXnWfXS̈́SSpooler error (Ignore, Abort)Ϸ(22͈gO:=:<Ó)3Ý)3Ý)3)3)3Ý)3)3ÝN1F2˸~/Zf @ʬ!.,!,O ^#Vz*y*Yz( !l7=́շ 7w.w37gͳշ Y׷S֯~/Zf(!1!aO ~w!. ~@Zn( Z~(Zf 6^(#͈~#?(~#<#~[~%wf(z~ƀwZf ~/ Ô ͈. #n(s1r2###v( ^>V?#utڷ^V N-qZN( ^aVbNc~ds r q w ~F^#Vz(0##~ !#~ #~ #~ #~ #~ 8! ; SSLAVBKE.PAR file to generate an "OSSLAVEE.SYS" (banked) USRSOM = 0D,0A,' ARROW PRECISION PRODUCTS Banked Super Slave E ready.$' SRHDRV = 0FF ;SEARCH SYSTEM DISK FOR .COM FILES COMPAT = 0F8 ;FILE/RECORD LOCKING COMPATIBILITY FLAGS ;CPMVER = 022 ;INHIBIT CB-80 RECORD LOCKING CONBR = 0CF ;USE 19.2K BAUD TERMINAL FOR CONSOLE WITH CTS ;CONBR = 0CE ;USE 9600 BAUD TERMINAL FOR CONSOLE CTSBR = 06E ;9600 BAUD/CTS (1200 BAUD CTS PRINTER=67) ATNCHR = 0 ;USE "BREAK" KEY FOR ATTENTION ; ; CLSSTR IS THE CLEAR SCREEN STRING THAT IS SENT TO THE ; TERMINAL TO CLEAR THE SCREEN WHEN EVER THE CLEAR SCREEN ; CHARACTER IS SENT TO THE CONSOLE DRIVER. ; MAXIMUM LENGTH IS 8 BYTES. ; LAST CHARACTER OF STRING MUST HAVE HIGH BIT SET. ;CLSSTR = 0C,1A,1B,2A+80,80,80,80,80 ;THIS IS THE DEFAULT STRING ; PRTMOD = 0 ;DEFAULT PRINT MODE = SPOOLED ; PTRAST = 01,LSTDRA ; PRINTER C = SERIAL ;QUEAST+6 = 0,(0),0,(0) ; QUEUE ASSIGNMENT TABLE, LOCALLY GENERATED QUEUE ;DSPPAT+2 = 3,4 ; PRINTER C USES QUEUE C, PRINTER D USES QUEUE D ;QUEPTR = 3 ; COME UP ON PRINTER C ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE S:ET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM START AUTOLOAD FILE NAME ; 1.4 chain to program patch (ALL CONFIGURATIONS with dspchr) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db RDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE Ssk dw 0 ;reserved tracks dw 0 ;translation table address db 1 ;disk type code db 0eh ;gap length ; ; 256 byte sector, single-density, one-sided 48-tpi mini (Osborne SD) ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (37*(10*(1 shl 1)))/(1 shl 4) ;number of blocks db 1 ;number of directory blocks db 1 ;physical sector size (2^n*128) dw 10 ;physical sectors per track dw 37 ;physical tracks per disk WAS 37 dw 3 ;reserved tracks dw osbskw ;translation table address db 1 shl mini or 1 ;disk type code db 0eh ;gap length ; ; 128 byte sector, single-density, two-sided ; dw $+dstl ;disk spec table link pointer db 4 ;block size dw (77*(52*(1 shl 0)))/(1 shl 4) ;number of blocks db 2 ;number of directory blocks db 0 ;physical sector size (2^n*128) dw 52 ;physical sectors per track dw 77 ;physical tracks per disk dw 0 ;reserved tracks dw 0 ;translation table address db 1 shl tsd ;disk type code db 7 ;gap length ; ; 128 byte sector length offset ; db 7 ;gap length ; dstl equ $-dsta ;disk spec table length ; ; single-density/single-sided (8", IBM-3740) sector translation table ; trtbl: db 0,6,12,18,24,4,10,16,22 db 2,8,14,20,1,7,13,19,25 db 5,11,17,23,3,9,15,21 ; ; Kaypro II sector translation table ; kayskw: db 0FFH,00,01,02,03,04,05,06,07,08 ; ; Osborne SD sector translation table ; osbskw: db 0,2,4,6,8,1,3,5,7,9 ; ; Xerox SD sector translation table ; xrxskw: db 0,5,10,15,2,7,12,17,4,9,14,1,6,11,16,3,8,13 ; END y blocks db 0 ;physical sector size (2^n*128) dw 26 ;physical sectors per track dw 77 ;physical tracks per disk dw 2 ;reserved tracks ; xltbl equ $-dstb ;translation table address offset ; dw trtbl ;translation table address ; dtco equ $-dsta ;disk type code offset typcod equ $-dstb ;disk type code offset ; db 0 ;disk type code ; gaplen equ $-dstb ;gapT͑deIYQ 2(SUdE4M-%MJDSKDR@M{  h Z- KC% hLZ*-K\4a 8b DE@((BL+=$t C[R@`-hͥ`QfK烀PcUPmdC,͠"6S&mjY \D [40X@Dfm1TL>i6Y@f ZOLژLk:@ vC6ƀP3mh Xu?Lu? LL(2` n̬Lr 7M" p!fX"xFfպ~ (t``3XF $ Xe oY ͺ`g e&ZyW`P@-N + "kۧP fP1@ #Ƙ8uaFH2[i!@ c;Kx&bp0Ւ@sXum' Ct"0>Y nn@m9fp!Xu /L- X6}" ?"*\(u.`ho0X Wα@$#+b#N>[`26 > @6O&=x`0ͩnd$|`m]f 33j`%~Ak@Cff@2 x>j4kG6-W@806-{%~3 L;L(2` ں@0X u ! ;Of#L ژd D8PE@ PpX-~i)ͤ`l waA sH3@m]`@ Y@ɪͩm|i,,6Z` f  d 0cqn7l2]0b=XW+l2 =}Zp1Tu@ e@/p6`DeV0 e@ f` pX/iݤ] Z`K6큄@xFVumKt nxpeiꪑp +1 ȊihH nȊii*jQ,i<)ʊj0<'ɉhIq׀,i()<ʋ*i葕p8 I f` pX/iݤ] Z`K6큄@xFV ͺ`g e&ZyW`P@-N + "kۧP fP1@ #Ƙ8uaFH2[i!@ c;Kx&bp0Ւ@sXum' Ct"0>Y nn@m9fp!Xu /L- X6}" ?"*\(u.`ho0X Wα@$#+b#N>[`26 > @6O&=x`0ͩnd$|`m]f 33j`%~Ak@Cff@2 x>j4kG6-W@806-{%~3 L;L(2` ں@0X u ! ;Of#L ژd>o:~W!{> " OC > S>O31! >2|N#Fx2CN#FC$#^#V^#VS#~2#~2<2###~2#^#VSN#FCC*KB0KC:( [0!' #"* (,*#"+))[R%! !!Cy͏qput+[[R8 uty7?R#|(/ sr +utwwNFqpnf^:(#~W#:G)[7?K R0!!=NFx(ENF C$7?KnfB8C[0MD!'  |:o!=!NFnfB#>,(0W}_nfRut=RDM!C7*![3*:G*!w0͘!4͘ !͙>O3F#Nů  SYS: Which .SYS file to load 0 = CPM 1 = OSLOAD ? SelectReadFile not found error: file C: track $ sector $ side $ drive $ $~Can't recognize density of disk in$Read$Write$Seek$ error on2,...,VALN ) x;2 Where Y (Y e;G ) ;\Top of memor ;q}P9x1zi` n&?@/ _      y24y27Y 5"@~G:>G~ > 2<:4O y~ 8 q *@~(͙8ͺ{ͣ:72:>2>2?7O> 2<> :?G /_~(!& *1::{  _ O(  :<= L{((glrZwZ:4hZ::hZ:>hZZ>2< ~ ( w:728F8 <2:y2>:7W:0*3K5B(7:8Gz?"B*3"5:7G28xG![120G!> z:(8 DZP>w(>>w~Can't recognize density of disk in$Read$Write$Seek$ error on( !(Nѷ(#:OG!R~# ~(###YĞ66Ğ~Zf(!I0!,0O N#Fx( x(!'Ğnf u t Nʬ͋͋:w[6@Zݣ| ;!!Pܷ bujtk:wN! ~<(.^%V&:OG!R~# ~###(N !e͉<(w6~N#F#p+q^#V#~#wa~#wb~#wc~wd*6/͈́J Cu1t2͟0~q́Owyġ>̓͟>͟>~\w0ß~0!8MY~2<($=(!#=!84(2N]F^B % q2s0́շ ~4(=O#!ͯ~4!8`q4#͋N]F^*8I(>w#:xG!{N#F͏͈6/́u1t2͖ ~.>###6.>+q#p~2!8q26.>ḱg !t.>͟>ɯZNn~0(!=(!=(!=(60>͈*>~06.>ͥ/ɯ2~2/~1!!/~1͢ڷq1!w#6~#ͼ̷(< ÊO ~<7ȯ~N˹q##~#fo*>~w !~#<( = (#~w :xG!|~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P!|F~ ̓!a|++++'!oN#F!oB( !s  !o6 |R(!V >ͥ(N!kN#F!kB(!! # ++ cͳ!k6ͬ!agM66S!oN#F!oB( ! ͳ!o6 g!^#V#N#~#fo !˾!!F#~< +++wͿ8 !V̘ޯ ~<(*>g!6Ϳ!kN#F!kB(  ͪ!oN#F!oB(  ͪ####6#K{q#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kbͬ!~#<(=(#F!|:x~#(###= !^#V=7~#fo!"sSvy2u # # ͞!sw#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut !Y[YR(!W~(:U0 !vU(B!Y6!][]R(!X~(:V0 !vV( !]64!͈|( ͏Ý7!1!(!^#VF!"vѷ"6#z !-:w<2! +p+qMD!q#p!s#r#q#p!͏͈ 0 ͈|Ö ^#V!6s1 !v T( {M!M!"{QT˾(T~˶!!~˾!"54>͈|(* s#r!"s1*!*!9ͽ[!R(^#V#b##*|(!(~=~w!!":(!˶*"{*#"*#"!K"x!^#V!R!^#VBr+s(0##^#V+++!6! (!>Ͱ5##0Ͱ~4@##^#Vy ####*####v ~#fos#r͈v͖Ý"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['*[R>B"\s#r#͈"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+q*+F+N+V+^ s#r#*0!^#V!R*R +V+^##"~#<(= ~# ~ xD##>)))))))'d  R0y 0OuN#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#rYN˹u~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!Rog_;;| 72ͅ!$" !: !,/0!08%h!| 6ʏ6ʽֆ! O ^#V|͈ !! 6)ʷ 'p8)ʷ ͏ͳ=(>)w.!: > *+++K;BRZF(! 45(!(s1G{: 1G̀!\*>è~1(# : *+++[;R8[R8 2 : >Ý666666666'6666$$JR$$$666666$c6$$6666$$66u6666!'!88LL6666666666)56@666X6666666)6r6666666x66ǹ2*s ̀: * ̀!N*"*"$:o>p2*R0!["S,KB*:Ò title TurboDOS operating system - super slave sign on message ; name ('usrsom') ;module id ; dseg ; USRSOM:: DB 0DH,0AH,'Advanced Digital Corp. Super Slave up.' DB ' $' end t, done set 5,a ;else, set dcd bit ret ;done ; end ister ..com3: ld a,5 ;get write register 5 di ;disable interrupts out (c),a ;select write register 5 out (c),d ;output control word ei ;enable interrupts ret ;done ; serrmc: ld c,sioacr ;get sio port a control register ld a,b ;get channel number or a ;channel number=0? jr z,..com4 ;if so, continue ld c,siobcr ;get sio port b control register cp 1 ;channel number=1? jr z,..com4 ;if so, continue ld c,sioccr ;get sio port c control register cp 2 ;channel number=2? jr z,..com4 ;if so, continue ld c,siodcr ;get sio port d control register ..com4: ld a,10h ;get reset extern; TITLE TURBODOS COLD BOOT LOADER BDOS 1/17/84 doc .z80 ; .PHASE 100H bdossecs equ 44 ;sectors to read on warm boot buffer equ 1400h ; OSLOAD.SYS load area monit equ 0f033h ;return to monitor for error memory equ 16h ;to enable monitor PROM false equ 0 true equ not false devlp equ false ;true for devlopment loader to ask what to load nmbch equ 1 ;number of choices to choose from nmbcpm equ 0 ;number of cp/m choices turbo equ true ;true for turbodos or CP/M 3.0 loader ; loader bios access bios equ 500h conin equ bios+09h conout equ bios+0ch seldsk equ bios+1bh settrk equ bios+1eh setsec equ bios+21h setdma equ bios+24h read equ bios+27h sectran equ bios+30h page start: ld SP,100h ;use default buffer for stack if devlp ques: ld HL,signon ;send which boot mess. call pstrng xor a call conin ;get response push psw ;save input ld C,A ;display it call conout pop psw ;get input back sub '0' ;make number cp nmbch ;make sure valid jr nc,ques ;if not ask again ld (typeld),A ;save type of load ld HL,cpmf ;get address of start of file names ld DE,namlng ;get length of name entry floop: dec a ;add in length jp m,fdone ;skip out if no more to add in add HL,DE ;else add in lingth of entry jr floop ; and go back for more else if turbo ld HL,turbof ;load turbodos loader file name adderss ld A,1 ;force load type ld (typeld),A else ld HL,cpmf ;load cp/m file name xor A ;force load type ld (typeld),A endif endif fdone: ;HL points to beg. of name to load ld DE,filefcb+1 ;destination to move to ld BC,8 ;amount to move ldir ;now move file to load ld C,0 ld E,0 ;make seldsk know this is the first call call seldsk ld A,H or L ld DE,badsel jp z,error ;bad select-HL=0000 ;HL=DPH address ld C,(HL) ;XLT table, low order byte inc HL ld B,(HL) ld A,B or C ;A=0 if no sector translation ld (trans),A ld (XLT),BC ld DE,7 add HL,DE ;(HL)=DIRBUF address - might as well use it ;for our workspace ld C,(HL) inc HL ld B,(HL) ld (dirbuf),BC push HL call setdma ;use the dirbuf for operations pop HL inc HL ;(HL)=DPB address ld E,(HL) inc HL ld D,(HL) page ex DE,HL ;HL=DPB address ld E,(HL) inc HL ld D,(HL) ;(HL)=sectors per track ld (SPT),DE ;highest sector number before next track inc HL ld A,(HL) ;Block shift factor ld (BSH),A inc HL ld A,(HL) ld (BLM),A ;block mask inc A ld (blksec),A ;sectors per block inc HL inc HL inc HL ld A,(HL) ;A=msb of DSM or total block count of drive ld (blkmsb),A inc HL ld E,(HL) inc HL ld D,(HL) inc DE ;make = max dirs. not -1 ld (maxdir),DE ld DE,5 add HL,DE ;(HL)=track offset ld C,(HL) inc HL ld B,(HL) ld (trkoff),BC ld (curtrk),BC call settrk ;directory starts at first non-system track page ; Current status of program: ; The disk on which the system file resides has been selected ; and the head has been stepped to the first directory track ; Note that the directory will always start at sector 1 of ; the first non-system track, and will occupy consecutive ; sectors through the end of the directory. The total number ; of sectors occupied is (maxdir)/4, but they may be on more ; than one track. ; nextsec: ;read next directory sector into the DIRBUF ld HL,(SPT) ld BC,(cursec) sbc HL,BC jr nc,trksame ;haven't gone to next track yet ld BC,(curtrk) inc BC ld (curtrk),BC call settrk ;step disk ld BC,0 ;first sector, new track trksame: push BC ;logical sector ld A,(trans) or A jr z,notran ;do we need to do sector translation? ld DE,(XLT) ;translate table call sectran push HL pop BC notran: call setsec call read or A ld DE,permerr jp nz,error ;physical error pop HL ;sector just read inc HL ld (cursec),HL ; ; The next sector of the directory (4 entries) is now in the DIRBUF ; Now see if we can find the file ; ld HL,(dirbuf) ld DE,32d ld B,4 nextdir: push HL push DE push BC call match ;match directory entry with FCB pop BC pop DE pop HL jr z,found ;file found add HL,DE djnz nextdir ; ; we've search this sector-no match. Was it the last? ; ld HL,(absec) inc HL ld (absec),HL dec HL ;HL=sectors read so far add HL,HL add HL,HL ;sectors x 4 = directory entries ld DE,(maxdir) sbc HL,DE ld DE,nofile jp z,error jr nextsec page ; ; Match: match takes as a parameter HL pointing to a directory ; entry. Match returns the zero flag set if the file matches. ; match: ex DE,HL ;use DE to point to directory ld HL,Filefcb ;first character in filename to search ld BC,0c0dh ;11 characters to match nextch: ld A,(DE) ;next character in directory entry inc DE and 7fh ;mask file attribute bits cpi ret nz ;no match, return djnz nextch ret page ; ; Now we have the correct directory entry, with HL pointing to ; the the start of the FCB ; Next we expand the block allocation data into a table of items: ; ; dw track, dw first sector, dw last sector found: ld DE,15d add HL,DE ;(HL)=records in this extent ld DE,filefcb+15d ;DE=block allocation area in filefcb ld BC,17d ldir ;move to file fcb ld IY,filefcb+16 ;pointer to next block ld IX,boottbl ;pointer to current table entry call getblk ;returns block # in DE newtbl: push DE call mktrk ;returns track in BC, 1st sector in HL ld (IX),C ld (IX+1),B ;store track ld (IX+2),L ;first sector ld (IX+3),H dec HL ;set up for add mrebks1: ld DE,(blksec) add HL,DE ;HL=last sector of block ld DE,(spt) dec DE ;sectors numbered 0-(spt-1) sbc HL,DE jr c,skp jr nz,newtrk ;block overflows to next track skp: add HL,DE ;add sectors per track back in ld (IX+4),L ;save last sector ld (IX+5),H nxtblk: call getblk ;get next block # pop HL ;last block scf ccf sbc HL,DE inc HL ;HL=0 if new block adjacent to last ld A,H or L jr z,moreblks ld BC,6 add IX,BC ;set pointer to next track item jr newtbl newtrk: ld (IX+4),E ;spt-1 last sector on track ld (IX+5),D ld BC,6 add IX,BC ;pointer to next track dec HL ld (IX+4),L ;last sector of this block ld (IX+5),H xor A ld (IX+3),A ;start sector zero ld (IX+2),A ld C,(IX-6) ld B,(IX-5) ;last track inc BC ld (IX),C ld (IX+1),B jr nxtblk page moreblks: push DE ;save new block # ld L,(IX+4) ;last sector so far ld H,(IX+5) jr mrebks1 ;go do rest of overflow check ; getblk returns the block # (IY) in DE and moves IY to the next ; also, exits loop if block # = 0 getblk: ld E,(IY) ld A,(blkmsb) or A jr z,onebyte inc IY ld A,(IY) onebyte: ld D,A inc IY or E ;block # = 0? ret nz pop DE ;lose return in loop jr tbldone ; mktrk gets block # in DE, returns track in BC, 1st sector in HL mktrk: ex DE,HL ld A,(bsh) ld B,A shftblk: add HL,HL djnz shftblk ;HL=absolute sector number ld DE,(spt) scf ccf ld BC,(trkoff) dec BC mortrk: sbc HL,DE inc BC jr nc,mortrk add HL,DE ;restore sector relative in track ret page ; ; table now contains the track/sector map for all the blocks in ; the directory. Now read the table into memory. ; tbldone: ld HL,buffer ;start of CCP-starting DMA ld IY,boottbl-6 ;point to boot table nxttrk: push HL ;current DMA ;read sectors of next track ld DE,6 ;update track pointer add IY,DE ld C,(IY) ld B,(IY+1) ;BC=track ld A,B or C jr z,bootdone ;last track done call settrk ld C,(IY+2) ;get next sector to read ld B,(IY+3) dec BC ;pre decrement it ld (nextsc),BC ;save it nxtsec: pop BC ;DMA push BC call setdma scf ;clear carry flag ccf ld BC,(nextsc) ;get next sector to read inc BC ;update it ld L,(IY+4) ;get last sector ld H,(IY+5) sbc HL,BC ;any more on this track pop HL ;fix stack jr c,nxttrk ;done with last sector ld (nextsc),BC ;save next sector ld DE,128 ;add HL,DE ;update DMA push HL ld DE,(xlt) call sectran ld C,L ld B,H call setsec call read or A ld DE,permerr jr nz,error ;physical read error jr nxtsec page ; ; the .SYS file is now in memory starting at (buffer) ; bootdone: ld A,(typeld) ;load of cp/m or something else cp nmbcpm jp nc,trboot ;if not cp/m leave ; JP TRBOOT ; we must go through it and remove all the BIOS sectors ; to make it a table of CCP and BDOS sectors only for wboot ; ld IX,boottbl-6 ld HL,0 ;count of sectors in table so far nxtitem: push HL ;save count of sectors so far ld DE,6 add IX,DE ld C,(IX+2) ;get first sector this track ld B,(IX+3) ld L,(IX+4) ;get last sector this track ld H,(IX+5) sbc HL,BC inc HL ;sectors in this track pop DE add HL,DE ;total sectors so far ld A,bdossecs ;number of sectors for wboot cp L jr z,movtbl ;this track ends exactly at the BIOS jr nc,nxtitem ;keep reading table ;this is the item we must cut down ;B=first sector, C=last sector, E=C-B+1 ;A=bdossecs, L=sectors through end of track ld D,A ld A,L sub D ;A=sectors to remove ld E,A ld D,0 ld L,(IX+4) ld H,(IX+5) sbc HL,DE ld (IX+4),L ;must contain at least one sector in track ld (IX+5),H page ; ; table has now been modified for CP/M wboot use ; IX+5 is end of last table entry movtbl: push IX pop HL ld DE,boottbl-6 sbc HL,DE ;HL=length to move ld B,H ld C,L ld HL,boottbl ld DE,buffer+1637h ;boottbl in buffer-after jump table ldir ;move table ;boottbl filled in, now move image to execution ;area ld HL,buffer ld DE,(buffer+1633h) ;ccp start ld C,0 ld A,(filefcb+15) ;128 byte records allocated rrca rr C ;carry=> odd number of records and 7fh ld B,A ldir ;transfer jp buffer+1600h ;coldboot jump page ; ; turbodos loader stuff ; trboot: ld HL,80h ;first need to clear default buffer ld DE,81h xor A ld (HL),A ld BC,30h ldir ; jp buffer ;now go to loader page ;-------------------------------------------- ; ; error message routine ; error: ex DE,HL ;put message address in HL call pstrng ;send message ld HL,errmsg ;send error message call pstrng ld B,11d ;send file name ld HL,filefcb call pstr2 ld A,4fh ;turn prom back on out (memory),A jp monit ;go back to monitor pstrng: ld B,(HL) pstr2: inc HL ;HL=first character, B=count push HL ld C,(HL) push BC xor A call conout pop BC pop HL djnz pstr2 ret ; ;storage ; filefcb: db 0 ;user number db ' ' ;file name filled in at beg. of code db 'SYS' ;extension ds 20,0 ;dummy rest of dir entry BSH: db 0 ;block shift factor = log2(records/block) BLM: db 0 ;block mask = records/block-1 blkmsb: db 0 ;non-zero is >255 blocks on drive ;=msb of DSM in DPB blksec: dw 0 ;sectors per block (BLM+1) dirbuf: dw 0 ;address of DIRBUF trans: db 0 ;0 if no sector translation XLT: dw 0 ;translate table address SPT: dw 0 ;sector per track count maxdir: dw 0 ;number of directory entries on disk trkoff: dw 0 ;track offset curtrk: dw 0 ;current track cursec: dw 0 absec: dw 0 ;absolute sector typeld: db 0 ;load type 0=cp/m, 1=turbodos nextsc: dw 0 ;temp storage for next sector to read ; ;messages ; signon: db badsel-$ db 0dh,0ah,'Which .SYS file to load',0dh,0ah db '0 = ' cpmf: db 'CPM ',0DH,0AH db '1 = ' turbof: db 'OSLOAD ',0DH,0AH db '? ' namlng equ turbof-cpmf ;length of name entry in above table badsel: db 6,'Select' permerr: db 4,'Read' nofile: db 14,'File not found' errmsg: db 14,' error: file ' boottbl: ds 60,0 end 0 ;block mask = records/block-1 blkmsb: db 0 ;non-zero is >255 blocks on drive ;=msb of DSM in DPB blksec: dw 0 ;sectors per block (BLM+1) dirbuf: dw 0 ;address of DIRBUF trans: db 0 ;0 if no sector translation XLT: dw 0 ;translate t TITLE TURBODOS COLD BOOT LOADER BIOS 1/17/84 doc INCLUDE TRK0BOOT.EQU ; parameters .z80 ; .PHASE 500H nmbfpy equ 1 ;number of floppy disk drives SUBTTL SYMBOLIC EQUATES page ; board hardware equates cmd equ 0ch ;fdc command register trk equ cmd+1 ;track register sec equ cmd+2 ;sector register data equ cmd+3 ;data register wait equ 14h ;INTRQ and DRQ synch port (see manual) memry equ 16h ;memory control port ; ; sector deblocking equates ; hstcnt equ 8 ;number of sectors in buffer hstshft equ 3 ;shift factor for # of sectors in buffer if mini ddpspt equ 4 ;double density physical sectors per track if m48tpi tracks equ 39 ;minifloppies else tracks equ 76 ;96tpi drives endif else ddpspt equ 8 ;eight inch tracks equ 76 endif dpblen equ 15 ;length of a DPB ; ; floppy disk hardware parameter offsets ; density equ 0 ;0=single, 1=single side double D, 2= 2S2D seekrt equ 1 ;THIS IS OFFSET INTO TABLE, VALUE IN TABLE CAN BE ;seek rate 0=3ms, 1=6ms, 2=10ms, 3=15ms ;these times double for minifloppies pspt equ 2 ;physical sectors per track (one side) drvtrk equ 3 ;track a floppy is at parmlen equ 4 ;length of the parameter block ; ; miscellaneous equates ; iobyte equ 3 ;used to select various consoles and printers cdisk equ 4 ;default disk user number retries equ 10 ;retry count for disk operations inbfsz equ 32 ;size of input buffer for interrupt input must be power of 2 outbfsz equ 64 ;size of output buffer for interrupt output must be power of 2 SUBTTL Hard disk equates page ;*** HDC1001 Disk equates *** HOFF EQU 1 ; Number of reserved tracks for loader TST MACRO DN ;physical hard disk defined IF HD&DN x defl 1 else x defl 0 endif endm hddsks defl 0 ;number of physical hard disk drives hdldrvs defl 0 ;number of logical hard disk drives hdtst macro tst %hddsks ;test for physical drives iff x exitm endif .lall hddsks defl hddsks+1 .xall endm ;end hdtst hdtst ;calculate number of physical hard disks if hddsks ;set flag for hard disks hard equ true else hard equ false endif .sfcond if hard ;put this stuff in only if needed .lfcond ;*** Port equates for HDC1001 *** HDCBASE EQU 0E0H ; Base of HDC1001 HDCDATA EQU HDCBASE ; Data port WPC EQU HDCBASE+1 ; Write precomp port HDCERR EQU WPC ; Error port SECNT EQU HDCBASE+2 ; Sector count SECNO EQU HDCBASE+3 ; Sector number CYLLO EQU HDCBASE+4 ; Cylinder low CYLHI EQU HDCBASE+5 ; Cylinder high SDH EQU HDCBASE+6 ; Size/Drive/Head COMND EQU HDCBASE+7 ; Command register STATUS EQU COMND ; Status register ;*** Command equates for HDC1001 *** CREST EQU 10H ; Restore command CSEEK EQU 70H ; Seek command CREAD EQU 20H ; Read sector command CWRITE EQU 30H ; Write command CFORM EQU 50H ; Format track inter equ 8 ;hard disk sector interleave factor secs equ 16 ;Physical sectors per track per head hstsiz equ 512 ;size of a hard disk physical sector hdstcnt equ hstsiz/128 ;cp/m sectors per physical sector blksiz equ 4096 ;cp/m block size cpmspt equ hdstcnt*secs ;cp/m sectors per track per head cpmscbk equ blksiz/128 ;cp/m sectors per cp/m block ; dpbg macro dn,secs,bls,blm,ext,dks,dir,al0,al1,cks,off,phys .lall dpb&dn: dw secs ;sec per track db bls ;block shift db blm ;block mask db ext ;extnt mask dw dks ;disk size-1 dw dir ;directory max db al0 ;alloc0 db al1 ;alloc1 dw cks ;check size dw off ;offset db phys ;physical disk drive .xall endm hdscg macro dn,mxcl,mxhd,stprt .lall hdesc&dn: db hdcbase ;base i/o port address db dn ;physical unit no. db inter ;hardware interleave db secs ;sectors per track dw mxcl ;last cylinder db mxhd ;last head db hstsiz/128 ;sector size/128 db stprt ;step rate .xall endm dsktyp macro dn,typ .lall .sfcond if typ eq ST503 hpb&dn macro no dw -1,hdesc&dn als&no defl 004Ch ;size of allocation vector css&no defl 0 ;number< of checksum elements dpbg %no,128,5,31,1,607,511,240,0,0,1,%dn hdscg %dn,152,1,3 endm hddr&dn defl 1 endif if typ eq ST506 hpb&dn macro no dw -1,hdesc&dn als&no defl 0098h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,1215,511,240,0,0,1,%dn hdscg %dn,152,3,3 endm hddr&dn defl 1 endif if typ eq TM601S hpb&dn macro no dw -1,hdesc&dn als&no defl 004Ch ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,128,5,31,1,607,511,240,0,0,1,%dn hdsc %dn,152,1,3 endm hddr&dn defl 1 endif if typ eq TM602S hpb&dn macro no dw -1,hdesc&dn als&no defl 0098h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,1215,511,240,0,0,1,%dn hdsc %dn,152,3,3 endm hddr&dn defl 1 endif if typ eq TM603S hpb&dn macro no dw -1,hdesc&dn als&no defl 00E4h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,1823,1023,255,0,0,1,%dn hdscg %dn,152,5,3 endm hddr&dn defl 1 endif if typ eq TM603SE hdpb603E0&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,2047,1023,255,0,0,1,%dn hdscg %dn,229,5,3 endm hdpb603E1&dn macro no als&no defl 00FFh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,699,511,240,0,0,172,%dn endm hpb&dn macro no local x x defl no hdpb603E0&dn %x x defl x+1 hdpb603E1&dn %x endm hddr&dn defl 2 endif if typ eq TM501 hpb&dn macro no dw -1,hdesc&dn als&no defl 0099h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,128,5,31,1,1219,511,240,0,0,1,%dn hdscg %dn,305,1,3 endm hddr&dn defl 1 endif if typ eq TM502 hdpb5020&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,2047,1023,255,0,0,1,%dn hdscg %dn,305,3,3 endm hdpb5021&dn macro no als&no defl 0031H ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,391,511,240,0,0,257,%dn endm hpb&dn macro no local x x defl no hdpb5020&dn %x x defl x+1 hdpb5021&dn %x endm hddr&dn defl 2 endif if typ eq TM503 hdpb5030&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,2047,1023,255,0,0,1,%dn hdscg %dn,305,5,3 endm hdpb5031&dn macro no als&no defl 00CAH ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,1611,1023,255,0,0,172,%dn endm hpb&dn macro no local x x defl no hdpb5030&dn %x x defl x+1 hdpb5031&dn %x endm hddr&dn defl 2 endif if typ eq SA602 hpb&dn macro no dw -1,hdesc&dn als&no defl 0050h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,128,5,31,1,635,511,240,0,0,1,%dn hdscg %dn,159,1,3 endm hddr&dn defl 1 endif if typ eq SA604 hpb&dn macro no dw -1,hdesc&dn als&no defl 009Fh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,1271,511,240,0,0,1,%dn hdsc %dn,159,3,3 endm hddr&dn defl 1 endif if typ eq SA606 hpb&dn macro no dw -1,hdesc&dn als&no defl 00EFh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,1907,1023,255,0,0,1,%dn hdscg %dn,159,5,3 endm hddr&dn defl 1 endif if typ eq SA1002 hpb&dn macro no dw -1,hdesc&dn als&no defl 0080h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,128,5,31,1,1019,511,240,0,0,1,%dn hdscg %dn,255,1,0 endm hddr&dn defl 1 endif if typ eq SA1004 hpb&dn macro no dw -1,hdesc&dn als&no defl 00FFh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,2039,1023,255,0,0,1,%dn hdscg %dn,255,3,0 endm hddr&dn defl 1 endif if typ eq Q2010 hpb&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,128,5,31,1,2043,1023,255,0,0,1,%dn hdscg %dn,511,1,0 endm hddr&dn defl 1 endif if typ eq Q2020 hdpb20&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,2047,1023,255,0,0,1,%dn hdscg %dn,511,3,0 endm hdpb21&dn macro no als&no defl 00FFh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,2039,1023,255,0,0,257,%dn endm hpb&dn macro no local x x defl no hdpb20&dn %x x defl x+1 hdpb21&dn %x endm hddr&dn defl 2 endif if typ eq Q2030 hdpb30&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,2047,1023,255,0,0,1,%dn hdscg %dn,511,5,0 endm hdpb31&dn macro no als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,2047,1023,255,0,0,172,%dn endm hdpb32&dn macro no als&no defl 00FEh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,384,5,31,1,2031,1023,255,0,0,343,%dn endm hpb&dn macro no local x x defl no hdpb30&dn %x x defl x+1 hdpb31&dn %x x defl x+1 hdpb32&dn %x endm hddr&dn defl 3 endif if typ eq Q2040 hdpb40&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,512,5,31,1,2047,1023,255,0,0,1,%dn hdscg %dn,511,7,0 endm hdpb41&dn macro no als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,512,5,31,1,2047,1023,255,0,0,129,%dn endm hdpb42&dn macro no als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,512,5,31,1,2047,1023,255,0,0,257,%dn endm hdpb43&dn macro no als&no defl 00FEh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,512,5,31,1,2031,1023,255,0,0,385,%dn endm hdpb4021&dn macro no als&no defl 00DFh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,1783,1023,255,0,0,257,%dn endm hpb&dn macro no local x x defl no hdpb40&dn %x x defl x+1 hdpb41&dn %x x defl x+1 hdpb42&dn %x x defl x+1 hdpb43&dn %x endm hddr&dn defl 4 endif if typ eq M4010 hpb&dn macro no dw -1,hdesc&dn als&no defl 00F0h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,128,5,31,1,1915,1023,255,0,0,1,%dn hdscg %dn,479,1,0 endm hddr&dn defl 1 endif if typ eq M4020 hdpb4020&dn macro no dw -1,hdesc&dn als&no defl 0100h ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,2047,1023,255,0,0,1,%dn hdscg %dn,480,3,0 endm hdpb4021&dn macro no als&no defl 00DFh ;size of allocation vector css&no defl 0 ;number of checksum elements dpbg %no,256,5,31,1,1783,1023,255,0,0,257,%dn endm hpb&dn macro no local x x defl no hdpb4020&dn %x x defl x+1 hdpb4021&dn %x endm hddr&dn defl 2 endif hdldrvs defl hdldrvs+hddr&dn .lfcond .xall endm x defl 0 rept hddsks dsktyp %x,hd%x ;define hard disk parameters x defl x+1 endm ; ; dskhdr macro dn ; define a single disk header list .lall hdph&dn: dw 0000h,0000h ;translate table dw 0000h,0000h ;scratch area dw dirbuf,dpb&dn ;dir buff,parm block dw 0000h,0000h ;check, alloc vectors .xall endm ; hddisks macro nd ; define nd disks ndisks defl nd ;for later reference dpbase equ $ ;base of disk parameter blocks ; generate the nd elements dsknxt defl nmbfpy rept nd dskhdr %dsknxt dsknxt defl dsknxt+1 endm endm ; lgdrvs defl 0 ; hdpbs macro dn,lgno hpb&dn lgno lgdrvs defl hddr&dn endm ; hddpbs macro times ;define hard disk parameter blocks loca<l x,y x defl 0 y defl nmbfpy rept times hdpbs %x,%y ;define dpb's for this hd drive endm x defl x+1 ;bump counters y defl y+lgdrvs endm ; ddb macro data,comm ; define a db statement db data comm endm ; ddw macro data,comm ; define a dw statement dw data comm endm ; defds macro lab,space lab: ds space,0 endm ; lds macro lb,dn,val size defl val&dn defds lb&dn,%size endm ; ; logdsk defl nmbfpy endif ;hard disk definitions .lfcond fdskhdr macro dn .lall fdph&dn: dw trans,0,0,0 dw dirbuf,fdpbase dw 0000h,0000h .xall endm fdisks macro x defl 0 rept nmbfpy fdskhdr %x x defl x+1 endm endm dwdsk macro drvr,lgdsk dw drvr+lgdsk endm DSKTBL MACRO ;DEFINES DISK ASSIGNMENT TABLE x defl 0 .lall drvtbl equ $+1 .xall if fpyfrst dw fpy rept nmbfpy-1 dwdsk fpy,%x x defl x+1 endm ;rept y defl 0 rept hdldrvs dwdsk hdc,%x iff y ;if first time thru x defl 0 ;reset x for hard disk logical drives starting at 0 y defl y+1 else x defl x+1 endif endm ;rept else ;fpyfrst dw hdc rept hdldrvs-1 dwdsk hdc,%x x defl x+1 endm ;rept y defl 0 rept nmbfpy dwdsk fpy,%x iff y ;if first time thru x defl 0 ;reset x for hard disk logical drives starting at 0 y defl y+1 else x defl x+1 endif endm ;rept endif ddb %x,<;last logical drive> rept 16-nmbfpy-hdldrvs dw 0 endm ;rept endm ;dsktbl SUBTTL BIOS ENTRY AND PUBLIC TABLES page ; ; BIOS jump table start:: ret ;no cold boot dw 0 ret ;no warm boot dw 0 jp pserin jp serin jp serout ret ;no list dw 0 ret ;no punch dw 0 ret ;no reader dw 0 jp home jp seldsk jp settrk jp setsec jp setdma jp read ret ;no write dw 0 ret ;no list status dw 0 jp sectran SUBTTL Console drivers page ; ; Console drivers ; All have entry A=driver number, other parameters per CP/M ; A=0 serial port 0; A=1 serial port 1 pserin:: ;poll serial in-return A=0ff if char ready, else 0 add A,A inc A ;A=command port ld C,A in A,(C) and 1 ret z ;no character waiting ld A,0ffh ret serin:: ld B,A call pserin ld A,B jr z,serin ;loop until character received add A,A ld C,A in A,(C) and 7fh ;mask high order bit ret serout:: ld B,C ;character to output add A,A inc A ld C,A serst:: in A,(C) and 4 jr z,serst dec C out (C),B ret ; miscellaneous character i/o routines pmsg:: ;equivalent to BDOS function 9 (print) ld A,(DE) cp '$' ret z ld C,A inc DE push DE xor A call serout pop DE jr pmsg phex:: ;print A in hex push AF rra rra rra rra call hex1 pop AF hex1:: and 0fh add A,90h daa adc A,40h daa ld C,A xor A jp serout ; ; setdma:: ld (iodma),BC ;shared among all drivers ret ; ; Sectran input:: Logical sector in BC, translate table in DE ; no translation if DE=0 ; ; Returns physical sector in HL ; Note:: only used in single density sectran:: ld A,D or E ld L,C ld H,B ret z ;no sector translation ex DE,HL add HL,BC ld L,(HL) ld H,0 ret SUBTTL Floppy disk driver module page ; ; Floppy disk drive driver module ; .sfcond iff hard ;if not hard disk .lfcond dskparm:: ;disk hardware parameter block ;one block for each drive rept nmbfpy if (mini) ; db 2 ;double sided double density db 1 ;single sided double density else db 0 ;density - 0=single D; 1=1 side, Double D; 2= 2S 2D endif db seekrate ;seek rate - 0=3ms, 1=6ms, 2=10ms, 3=15ms if (mini) db ddpspt else db 26 ;physical sectors per track - 26 in SD, ddpspt in DD endif db 0 ;track drive currently set at endm page ; ; CP/M disk tables fDPHbase:: fdisks ; defind disk parameter headers for floppys page ; ; DPB's for the three formats of disk:: ; ; 8" Single sided, single density ; 5" Single sided, double density ; 5" Double sided, double density ; fdpbase:: sssddpb:: ;single density (1K block) dw 26 ;sectors per track db 3 ;block shift (log2[block size/128]) db 7 ;block mask ([block size/128]-1) db 0 ;extent mask dw 242 ;highest block on disk (numbered from 0) dw 63 ;directory entries-1 db 0c0h ;alloc0 -first two bits for two blocks for Dir db 0 ;alloc1 dw 16 ;checked directories dw 2 ;track offset (system tracks) page ssdddpb:: ;single sided double density dw 8*ddpspt ;128 byte sectors per track if mini and m48tpi db 3,7 ; 1k block size else db 4,15 ; 2k block size endif db 0 dw (tracks*ddpspt/2)-1 ;each of 76 tracks has ddpspt/2 2K blocks if mini dw 63 db 80h else dw 127 db 0c0h endif db 0 dw 32 dw 1 dsdddpb:: ;double sided double density dw 16*ddpspt ;one track consists of both sides db 4 db 0fh db 0 dw (tracks*ddpspt)-1 ;each of 76 tracks has ddpspt 2K blocks if mini dw 127 db 0c0h else dw 255 db 0f0h endif db 0 dw 32 dw 1 page trans:: ;single density translate table db 1,7,13,19,25,5,11,17,23,3,9,15,21 ;sectors 1-13 db 2,8,14,20,26,6,12,18,24,4,10,16,22 ;secotrs 14-16 home:: ld C,0 settrk:: ld A,C ld (iotrk),A ret setsec:: ld A,C ld (iosec),A ret page ; ; Fseldsk selects the physical floppy in A (0-3) ; B=0 if last disk selected was a different floppy ; C=logical disk the floppy corresponds to seldsk:: ld D,0 ;physcial floppy ld E,C ;save logical disk call getden ;will set density byte if successful or A jr nz,fbadsel ;couldn't get density ;all physical operations OK here ld (hwptr),IX ;store for later use ld A,(IX+density) inc A ;make 1-3 ld B,A ld HL,fdpbase-dpblen ld DE,dpblen fgetdpb:: add HL,DE djnz fgetdpb ;HL=DPB address ld C,L ld B,H ld HL,fdphbase ld A,(IX+density) or A jr z,setran ;single density,set translate vector xor A ld (HL),A inc HL ld (HL),A jr putdpb setran:: ld DE,trans ;single density translate table ld (HL),E inc HL ld (HL),D putdpb:: ld DE,9 ;offset of DPB in DPH add HL,DE ld (HL),C inc HL ld (HL),B dec HL dec HL sbc HL,DE ;restore DPH (carry reset by or A) ret fbadsel::ld HL,0 ret ;return error page ; ; Seldrv selects the drive , head from (head) ; (bit 0 set for head1), and density from (IX+density) ; it assembles the correct byte and outputs to wait ; and updates the track register with the most recent information seldrv:: ld A,(IX+density) or A jr z,setdens ld A,00001000b ;set double density bit ld B,A ld A,(head) rlca rlca ;move head bit to bit 2 or B setdens:: ld B,A IF MINI SET 4,A ; SUPER SIX BENEFIT ENDIF out (wait),A ld A,(IX+drvtrk) ;get track from parameter table ;this may be first physical i/o out (trk),A ret page ; ; Seek attempts to step the R/W head to the track in (iotrk) ; seek:: ld A,retries ld (retryc),A seek2:: ld A,(iotrk) ld C,A ;track stays in C in A,(trk) sub C ret z ;already there ld A,C  out (data),A ld A,(IX+seekrt) ;seek rate mask or 1ch ;seek with verify di out (cmd),A in A,(wait) ei rla jr c,seekerr ;no INTRQ from FDC in A,(cmd) and 10011001b ;seek error, CRC error, or incomplete jr nz,seekerr ;seek successful ld (IX+drvtrk),C ret seekerr:: ld E,1ch ;seek command call diskerror jr seek2 page ; ; Read reads the sector from the selected disk ; In double density, the sector may already be in the host buffer ; read:: ld IX,(hwptr) ;restore parameter pointer ld A,(IX+density) ;density byte or A jr z,rdsngl ;singl density call inbuf jr c,rddbl ;sector not in buffer ; sector is in buffer movrd:: call mkbufad ;HL=start of sector in buffer ldir ret ;transfer done rddbl:: call sidesec call readprep or A ret nz jr movrd rdsngl:: ld A,(iosec) ld (psec),A ;physical sector same as CP/M sector ;in single density readprep:: ld A,0A2h ;second byte of INI instruction ld (iotran+1),A ;p=atch rdwrite routine ld A,08ch ;sector read command ld (oper),A page strtsel:: call seldrv ;physically select drive and head call seek ;step to correct track ; ; diskio actually reads or writes the necessary sector ; it assumes that the head has already settled on the correct track ; (and that the head has been selected on the correct side!) ; and that the bytes in rdwrite for R/W and sector size have been filled diskio:: ld A,retries ld (retryc),A iotry:: ld A,0d0h ;force interrupt no conditions out (cmd),A ld A,(oper) ld B,A ld C,data ;prepare for indirect I/O instruction ex (SP),HL ;waste some time ex (SP),HL ex (SP),HL ex (SP),HL di ;no interrupts from here to end of transfer in A,(cmd) and 20h ;bit 5=head loaded rrca rrca rrca ;move bit 5 to bit 2 cpl and B ; the purpose of these manipulations has been ; to set bit 2 of the FDC command if the head ; isn't settled. Bit 2 will give a 15 ms delay ld E,A ld A,(IX+density) or A ld D,1 ;one sector i/o transfer for single denisty jr z,dmasingl ;use the CP/M DMA buffer in single density ld HL,hstbuf ;use host buffer for double density operations ld D,hstcnt ;number of 128 byte units to transfer jr strtio dmasingl:: ld HL,(iodma) strtio:: ld A,(psec) out (sec),A ;set physical sector ld A,E out (cmd),A ;start read/write operation call rdwrite ;do the actual i/o in A,(cmd) ei ;now ok to interrupt-status is saved ld E,A ;save status or B ;B returned from rdwrite is lost bytes count ret z ;if status OK and no lost bytes call diskerror call seek or A jr z,iotry ;if nonzero then hopeless seek error ret ; ; rdwrite does the actual transfer to/from the FDC ; HL set to DMA address on entry, D=number of 128 byte units to transfer ; transfer direction has been set by poking INI or OUTI instruction rdwrite:: ld B,128 ;bytes in one CP/M sector loop:: in A,(wait) or A ret p ;no more DRQ iotran:: ini ;start with read ;the second byte of this instruction is patched to ;be either INI or OUTI depending on need jr nz,loop dec D jr nz,rdwrite jr loop ;sector done, wait for INTRQ from fdc page ; ; disk error will eventually have all kinds of nice messages ; diskerror:: ld A,(retryc) dec A jr nz,restore ;more retries to attempt ld A,E cp 1ch ;was it a seek error? jr z,pseekerr cp 0ach ;writing? jr z,pwriterr ld DE,rderr jr perrtyp pwriterr:: ld DE,wrterr jr perrtyp pseekerr:: ld DE,skerr perrtyp:: call pmsg ld DE,trkerr call pmsg ld A,(iotrk) call phex ld DE,secerr call pmsg ld A,(psec) call phex ld DE,siderr call pmsg ld A,(head) call phex pdrv:: ld DE,drverr call pmsg ld DE,crlf call pmsg ld A,255 ret page ; ; Restore is called from a disk operation with A=retries left ; restore:: ld (retryc),A in A,(cmd) and 00010000b ;bit 4=record not found ret z ;try again if record was found but ;read/written with error resto1:: ;restore to track 0 and seek again ld A,(IX+seekrt) ;get seek rate mask or 00001100b ;head load, restore, verify track 0 out (cmd),A tk0wait:: in A,(cmd) and 00000100b ;at track 0 jr z,tk0wait xor A out (trk),A ;back at track 0 ld (IX+drvtrk),A ;update track table ret page ; ; sidesec is the read/write preparation for double density ; sidesec computes the correct physical sector and side ; sidesec:: ld A,(iosec) and not(hstcnt-1) ;computer first CP/M sector in block ld (blksec),A sideflsh:: ;called to set up for a flush rept hstshft rrca endm ;A=physical sector number, but it may ;be on the second side ld B,(IX+pspt) cp B ld C,0 jr c,side0 sub B inc C side0:: inc A ld (psec),A ;physical sector on one side ld A,C ld (head),A ;set head control byte ret page ; ; inbuf returns carry flag set if sector not in buffer ; also returns (iosec) in D ; if sector is in buffer, returns offset (0 - hstcnt-1) in A ; inbuf:: ld A,(iosec) ld D,A ld A,(bufvalid) ;0 if contains valid data, else 255 rra ret c inbuf2:: ld HL,(iodrvtrk) ;check for 2nd sector ;of unallocated block ld BC,(blkdrvtrk) sbc HL,BC ;same drive and track jr z,rttrk scf ret ;not a match rttrk:: ld A,(blksec) ld B,A ld A,D sub B ret C ;sector lower # than buffer cp hstcnt ;carry set if in buffer ccf ret ; stores drive, track, sector of contents of buffer for use by flush ; also saves hardware pointer and sets buffer valid flag ; returns HL=start of sector in buffer, DE=DMA address, BC=128, A=0 mkbufad:: ld (blkptr),IX ld HL,(iodrvtrk) ld (blkdrvtrk),HL ld A,(iosec) ld B,A and not(hstcnt-1) ld (blksec),A ld A,B and hstcnt-1 ld B,A ;B=relative sector in buffer inc B ld HL,hstbuf-128 ld DE,128 shft2:: add HL,DE djnz shft2 ld BC,128 ;make ready for sector LDIR ld DE,(iodma) xor A ld (bufvalid),A ret page ; ; returns IX=start of DHPB (disk hardware parameter block) for ; the drive in A (0-3) ; uses B,DE also, returns D=0 getparm:: ld B,A inc B ld IX,dskparm-parmlen ;hardware parameter block ld DE,parmlen shft1:: add IX,DE djnz shft1 ret page ; ; Getden attempts to find the density of the disk in drive (D) ; by trying to read the current track address in both densities ; If the attempt is successful, Getden will update the ; dens, pspt, and drvtrk fields of the paramter table ; If E (logical disk) is zero, then getden assumes the density hasn't ; changed (if it has, then we can't do a warm boot-table is wrong getden:: ld A,0d0h ;reset FDC out (cmd),A ld A,D and 7fh call getparm ld A,(7fh) ;code byte for disk type OR A jr z,codeok ;some SD disks have old loaders here sub 0e5h ;code for a normal single density disk cp 3 jr c,codeok ld DE,badcode ;not our code byte call pmsg call pdrv ld A,255 ret codeok:: ld (IX+density),A or A jr z,snglspt ld A,ddpspt ;physical sectors on one side of DD jr putpspt snglspt:: ld A,26d ;single density physical sectors putpspt:: ld (IX+pspt),A xor A ret ;no errors logdin::call getparm ld A,(IX+density) jr codeok ; drive can't change density else ;iff hard SUBTTL Hard disk drivers page .lfcond ; ; Hard disk drive driver module ; ; ; CP/M Hard disk tables ; hDPHbase:: hddisks hdldrvs ;set up disk parameter headers ; ; DPB's for HARD DISKS ; ; hdpbase equ $+4 hddpbs hddsks ;set up disk parameter blocks page home:: ld BC,0 ;force track 0 settrk:: ld (hdiotrk),BC ;save track number ret setsec:: ld (hdiosec),BC ;save sector number ret ; ; Hseldsk selects the hard disk seldsk:: ld HL,hdphbase ;add in base address ret ; and go ; ; Seldrv selects the drive from (curhdsk), head from (hhead) ; it assembles the correct byte and outputs it ; and updates the track register with the most recent information hseldrv:: ld A,(hhead) ;get head or 20h ;set sector size to 512 bytes out (sdh),a ;send to controller ret page ; ; Seek sets head to the track in (hdiotrk) ; and sector to (hpsec), sector count to one ; hseek:: ld a,(hdiotrk) ;send low order byte of track out (cyllo),a ld a,(hdiotrk+1) ;send high byte out (cylhi),a ld A,(hpsec) ;send physical sector out (secno),A ld A,1 ;set sector count out (secnt),A ret page ; ; Read reads the sector from the selected disk ; it handles any necessary buffering ; read:: call hinbuf ;is it in the buffer jr c,hrd ;sector not in buffer ; sector is in buffer hmvrd:: call hmkbfad ;HL=start of sector in buffer ldir ret ;transfer done hrd:: call hsidselc call hrdprep or A ret nz jr hmvrd ; ; read preperation ; hrdprep:: call hseldrv ;physically select drive and head call hseek ;step to correct track ; ; this actually reads the necessary sector ; it assumes that the head has already settled on the correct track ; (and that the proper head has= been selected) ld HL,hstbuf ;point to buffer ld BC,hdcdata ;count and port di ;protect transfer ld A,cread ;send read command out (comnd),A hrdw:: in A,(status) ;done yet and A jp m,hrdw ;if not wait inir ;256 bytes twice inir ei in A,(status) and 1 ;any errors ret z ;return if not ; page ; ; hard disk error message processor ; ; This routine gives the user a detailed error report ; herrors:: push AF ;save error indication ld DE,herrst CALL pmsg ; First the error code IN A,(HDCERR) CALL phex ld DE,errhd CALL pmsg ; then the head IN A,(SDH) push AF ;save drive no AND 7 CALL hex1 ; Print single digit ld DE,errcyl CALL pmsg ; the cylinder IN A,(CYLHI) ; Report CYLHI first CALL phex IN A,(CYLLO) ; then CYLLO CALL phex ld DE,errsec CALL pmsg ; and finally the sector IN A,(SECNO) CALL phex ld DE,errdr ;send drive mess call pmsg pop AF rlca ;get drive rlca rlca and 3 call hex1 ld A,crest ;restore drive out (comnd),A herrlp:: in A,(status) rlca jr c,herrlp ;wait until done pop AF RET page ; ; hsidselc is the read/write preparation for hard disk ; hsidselc computes the correct physical sector and side ; hsidselc:: ld HL,(hdiosec) ld E,L ;save L ld A,L and not(31) ;compute first cp/m sector in buffer ld L,A ld (hblksec),HL ;save it ld L,E ;restore sector to HL hflsdsc:: ;called to set up for a flush or a ;clear carry ld C,-1 ;set up head count ld DE,secs*4 ;set up number cpm sectors per head sdsclp: inc C ;increment head count sbc HL,DE ;subtract out one heads worth of sectors jp p,sdsclp ;if not negitive do more add HL,DE ;restore sector number to HL ld A,L srl A ;find physical sector srl A ld (hpsec),A ld A,C ld (hhead),A ;set head control byte ret page ; ; hinbuf returns carry flag set if sector not in buffer ; if sector is in buffer, returns offset (0 - hdstcnt-1) in A ; hinbuf:: ld A,(bufvalid) ;0 if contains valid data, else 255 rra ret c hinbu2f:: ld A,(hiodrvtrk) ;check for right drive ld B,A ld A,(hblkdrvtrk) sub B jr z,rthdd ;skip if right drive scf ret ;wrong drive return with carry set rthdd:: ld HL,(hiodrvtrk+1) ;check for right track ld BC,(hblkdrvtrk+1) sbc HL,BC ;same drive and track scf ret nz ;not a match ld DE,(hblksec) ld HL,(hdiosec) ld A,D ;high bytes = cp H scf ;set failure flag ret nz ;exit if not equal ccf ;clear carry sbc HL,DE ret C ;sector lower # than buffer ld A,L cp hdstcnt ;carry set if in buffer ccf ret ; ; stores drive, track, sector of contents of buffer for use by flush ; also sets buffer valid flag ; returns HL=start of sector in buffer, DE=DMA address, BC=128, A=0 ; hmkbfad:: ld A,(hiodrvtrk) ld (hblkdrvtrk),a ld HL,(hiodrvtrk+1) ld (hblkdrvtrk+1),HL ld HL,(hdiosec) ld B,L ld A,L and not(hdstcnt-1) ld L,A ld (hblksec),HL ld A,B and hdstcnt-1 ld B,A ;B=relative sector in buffer inc B ld HL,hstbuf-128 ld DE,128 hshft2:: add HL,DE djnz hshft2 ld BC,128 ;make ready for sector LDIR ld DE,(iodma) xor A ld (bufvalid),A ret endif SUBTTL Floppy disk storage page ; ; Floppy disk driver storage ; bufvalid:: db 0ffh ;buffer contains valid data for (blksec) ;0 = valid data iodma:: ds 2,0 ;dma storage .sfcond iff hard ;if not hard .lfcond iodrvtrk:: curfpy:: db 0 ;current selected physical floppy drive iotrk:: ds 1,0 ;current track for current disk blkdrvtrk:: ds 2,0 ;drive and track for deblocking buffer iosec:: ds 1,0 ;current logical sector for DD, physical for SD blksec:: ds 1,0 ;first logical sector in current host blk2sec:: ds 1,0 ;8th CP/M sector in an unallocated 2K block psec:: ds 1,0 ;current physical sector wrtpend:: db 0 ;write pending from buffer retryc:: db 0 ;number of retries left newfpy:: db 0 ;new floppy to be selected head:: db 0 ;head control = 0 or 1 oper:: db 0 ;operation (read/write) to be performed next hwptr:: dw dskparm ;storage for pointer to current hw parameters blkptr:: dw dskparm ;pointer to paramters for block drive SUBTTL Hard disk storage page ; ; Hard disk driver storage ; else .lfcond hiodrvtrk:: curhdsk:: db 0 ;current selected physical hard disk drive hdiotrk:: ds 2,0 ;current track for current disk hblkdrvtrk:: ds 3,0 ;drive and track for deblocking buffer hdiosec:: ds 2,0 ;current logical sector hblksec:: dw 0 ;first logical sector in host buffer hunalsec:: dw 0 ;first logical sector in current host unallocated block unalcv:: db 0 ;unallocated block vector hpsec:: ds 1,0 ;current physical sector hwrtpnd:: db 0 ;write pending from buffer hhead:: db 0 ;head control endif SUBTTL Error messages page .sfcond iff hard .lfcond ; ; Floppy error messages ; badcode:: db 'Can''t recognize density of disk in$' rderr:: db 'Read$' wrterr:: db 'Write$' skerr:: db 'Seek$' trkerr:: db ' error on track $' secerr:: db ' sector $' siderr:: db ' side $' drverr:: db ' drive $' crlf:: db 0dh,0ah,'$' page ; ; Hard disk error messages ; else .lfcond herrst:: DB 0dH,0ah,'HD1001 Error $' errhd:: DB ' on Head $' errcyl:: DB ', Cylinder $' errsec:: DB ', Sector $' errdr:: db ', Drive $' endif SUBTTL Disk buffers and Cold Boot code page ; ; disk buffers ; These are not part of the floppy driver module as such and ; should be shared by all disk modules as much as possible dirbuf:: hstbuf equ dirbuf+128 ;sector deblocking buffer ; ; lastadd equ $ SUBTTL SYMBOLS end ng from buffer hhead:: db 0 ;head control endif SUBTTL Error messages page .sfcond iff hard .lfcond ; ; Floppy error messages ; badcode:: db 'Can''t recognize density of disk in$' rderr:: db 'Read$' wrterr:: db 'Write$' skerr:: db TITLE TURBODOS COLD BOOT LOADER FRONT END 1/17/84 doc .z80 memry equ 16h ; memory control port ; HDC-1001 port equates HDCBASE EQU 0E0H ; Base of HDC1001 HDCDATA EQU HDCBASE ; Data port WPC EQU HDCBASE+1 ; Write precomp port HDCERR EQU WPC ; Error port SECNT EQU HDCBASE+2 ; Sector count SECNO EQU HDCBASE+3 ; Sector number CYLLO EQU HDCBASE+4 ; Cylinder low CYLHI EQU HDCBASE+5 ; Cylinder high SDH EQU HDCBASE+6 ; Size/Drive/Head COMND EQU HDCBASE+7 ; Command register STATUS EQU COMND ; Status register ; HDC-1001 commands CREST EQU 10H ; Restore command CSEEK EQU 70H ; Seek command CREAD EQU 20H ; Read sector command sectors equ 10 cseg start: ld A,06fh ;get command to memory port out (memry),A ;turn off prom ld BC,hdcdata ;get port number and transfer length ld HL,?beg?## ;starting address less this program ld d,0 ;sector 0 ld e,sectors ;number of sectors to xfer loop: ld A,D ;send sector to controller out (secno),A ld A,cread ;send read command out (comnd),A wait: in A,(status) ;wait till done and 80h jr nz,wait inir inir inc D ;increment sector to read dec E ;decrement sector count jr nz,loop ;if more go do it jp osboot## ;else go execute loader error: ld A,04fh ;turn prom back on out (memry),A jp 0f030h ;return to monitor hard disk error return code equ $-start END TATUS EQU COMND ; Status register ; HDC-1001 commands CREST EQU 10H ; Restore command CSEEK EQU 70H ; Seek command CREAD EQU 20H ; Read sector command sectors equ 10 cseg start: ld A,06fh ;get command to memory port out (memry),A ;turn off prom ld BC,hdcdata ;get port number and transfer length ld HL,?beg?## ;starting address less this program ld d,0 ;sector 0 ld e,sectors ;number of sectors to xfer loop: ld A,D ;send sector to controller out (secno),A >.z80 title "turbodos vectored interrupt handler (advanced digital super six)" subttl "copyright 1984 by software 2000, inc." ; COPYRIGHT 1984 BY SOFTWARE 2000, INC. ; VERSION: 01/05/84 name ('VECINT') ;MODULE ID include DREQUATE.LIB ;DRIVER SYMBOLIC EQUIVALENCES piobdr equ 05h ;PIO PORT B DATA REGISTER piobcr equ 07h ;PIO PORT B CONTROL REGISTER dseg ;LOCATE IN DATA AREA intmsk: ds 1 ;INTERRUPT MASK isrtbl: ds 16 ;INTERRUPT SERVICE ROUTINE TABLE intsp: ds 2 ;INTERRUPT STACK POINTER SAVE AREA ds 32 ;INTERRUPT STACK AREA intstk equ $ ;TOP OF INTERRUPT STACK AREA common /?init?/ ;LOCATE IN INITIALIZATION AREA icinit::ld hl,piovec##+2 ;GET INTERRUPT VECTOR ADDRESS ld a,l ;GET LSB OF INTERRUPT VECTOR out (piobcr),a ;SET PIO INTERRUPT VECTOR ADDRESS ld hl,pioisr ;GET INTERRUPT SERVICE ADDRESS ld (piovec##+2),hl ;SET INTERRUPT SERVICE VECTOR ld a,0cfh ;GET MODE 3 CONTROL WORD out (piobcr),a ;SET PIO PORT B TO MODE 3 ld a,0ffh ;GET I/O DIRECTION CONTROL WORD out (piobcr),a ;SET PIO PORT B DIRECTION TO INPUT ld a,97h ;GET PIO INTERRUPT CONTROL WORD out (piobcr),a ;ENABLE PIO INTERRUPTS ld a,0ffh ;GET INTERRUPT MASK out (piobcr),a ;MASK ALL INTERRUPTS ld (intmsk),a ;SAVE INTERRUPT MASK ret ;DONE intnit::push psw ;SAVE VECTORED INTERRUPT NUMBER add a,a ;CALC VECTORED INTERRUPT NUMBER * 2 ld c,a ;INTERRUPT NUMBER TO BC-REG ld b,0 ;DOUBLE LENGTH ex de,hl ;INTERRUPT SERVICE ADDR TO DE-REG ld hl,isrtbl ;GET ISR ADDRESS TABLE add hl,bc ;INDEX INTO ISR TABLE ld (hl),e ;STORE ISR ADDRESS IN ISR TABLE inc hl ld (hl),d pop af ;RESTORE VECTORED INTERRUPT NUMBER inc a ;INCREMENT INTERRUPT NUMBER ld b,a ;INTERRUPT NUMBER TO B-REG xor a ;INITIALIZE RESULT VECTOR scf ;SET CARRY FLAG ..sl: adc a,a ;SHIFT CARRY FLAG LEFT djnz ..sl ;INTERRUPT NUMBER + 1 TIMES cpl ;COMPLIMENT RESULT VECTOR ld hl,intmsk ;GET INTERRUPT MASK and (hl) ;RESET INTERRUPT MASK BIT  ld (hl),a ;UPDATE INTERRUPT MASK ld a,97h ;GET PIO INTERRUPT CONTROL WORD out (piobcr),a ;ENABLE PIO INTERRUPTS ld a,(hl) ;GET INTERRUPT MASK out (piobcr),a ;SET PIO INTERRUPT MASK REGISTER ret ;DONE cseg ;LOCATE IN PROGRAM AREA pioisr::ld (intsp),sp ;SAVE STACK POINTER ld sp,intstk ;SET UP AUX STACK POINTER push af ;SAVE REGISTERS push bc push de push hl ..isrl: in a,(piobdr) ;GET VECTORED INTERRUPT STATUS cp -1 ;ANY VECTORED INTERRUPTS PENDING? jr z,..isrx ;IF NOT, CONTINUE ld b,8 ;ELSE, GET MAX NUMBER OF INTERRUPTS ..svcl: rra ;VECTORED INTERRUPT PENDING? jr c,..svcc ;IF NOT, CONTINUE push bc ;ELSE, SAVE INTERRUPT COUNTER push af ;SAVE INTERRUPT STATUS ld a,8 ;GET MAX NUMBER OF INTERRUPTS sub b ;CALC CURRENT INTERRUPT NUMBER add a,a ;CALC CURRENT INTERRUPT NUMBER * 2 ld c,a ;INTERRUPT NUMBER TO BC-REG ld b,0 ;DOUBLE LENGTH ld hl,isrtbl ;GET ISR ADDRESS TABLE add hl,bc ;INDEX INTO ISR TABLE ld e,(hl) ;GET INTERRUPT SERVICE ADDRESS inc hl ld d,(hl) ld hl,..ret ;GET RETURN ADDRESS push hl ;PUSH RETURN ADDRESS ONTO STACK ex de,hl ;INTERRUPT SERVICE ADDR TO HL-REG jp (hl) ;TRANSFER TO INT SERVICE ROUTINE ..ret: di ;DISABLE INTERRUPTS pop af ;RESTORE INTERRUPT STATUS pop bc ;RESTORE INTERRUPT COUNTER ..svcc: djnz ..svcl ;CONTINUE jr ..isrl ;CONTINUE ..isrx: pop hl ;RESTORE REGISTERS pop de pop bc pop af ld sp,(intsp) ;RESTORE STACK POINTER ei ;ENABLE INTERRUPTS reti ;DONE end c ;IF NOT, CONTINUE push bc ;ELSE, SAVE INTERRUPT COUNTER push af ;SAVE INTERRUPT STATUS ld a,8 ;GET MAX NUMBER OF INTERRUPTS sub b ;CALC CURRENT INTERRUPT NUMBER add a,a ;CALC CURRENT INTERRUPT NUMBER * 2 ld c,a ;INTERRUPT NUMBER TO BC-REG ld b,0 ;DOUBLE LENGTH ld hl,isrtbl ;GET ISR ADDRESS TABLE add hl,bc ;INDEX INTO ISR TABLE ld e,(hl) ;GE1$*/(d4ENTER 1 - CONDENSED PRINT - 132 CHARACTERS PER LINE$d4ENTER 2 - CONDENSED PRINT WITH DOUBLE PRINT (DARKER)$d4ENTER 3 - NORMAL PRINT WITH DOUBLE PRINT (DARKER)$d4ENTER 4 - NORMAL PRINT WITH NO ENHANCEMENTS$d4ENTER 5 - NORMAL PRINT WITH EMPHASIZED & DBL STRIKE$d4d4d4 INPUT CHOICE$d4d4n;"'ENTER 1 WHEN PRINTER IS READY$d4n;"'p7j62fp7x6p76G6p766p76ˀG6ڀHR$R$R$d4R$d4gTURN THE PRINTER TO OFF OR STANDBY$d46.R$GR$R$ER$d46 local x x defl no hdpb603E0&dn %x x defl x+1 hdpb603E1&dn %BOOTF" M BUFFERS MCOPY M$JKLDATE M MDELETG MNDIR MOPDO M QDRIVE M RERASEFIRMSFIXDIR MTFIXMAP MUFORMAT5 MVW1 MEGASTAT as of June 1983 Which cartridge drive (1 or 2) ?U :^ 1>U> 2 1 1. Set disk parameters 2. Read disk parameters 3. Display flagged sectors and tracks 4. Format entire disk 5. Format directories only 6. Check cartridge & Flag bad sectors 7. Unflag tracks 8. Flag track ..select.(^C to exit)..U :] X:^  ҄=o&)t^#fk<>@X +++ERROR+++ X) DO YOU NEED TO REMAKE Z TRACK ?ͼ >>26 post write & crc check ---?ͼ >27 Enable ECC ---------------?ͼ .:7@27 Set interleave select 1,2,4,8,16,32 -----?U :] ʠ.!^ ##ʑ v.#Æ! :727!^ ʶ# ¦.!Ô12481632  Set timer count ? select value (2-12) ?U !^ :]   #~28: 2 ! ͻ !6 X!66#.: 29!r " !8ͻ = `DÄ Cartridge setup parameters... Interleave value ------- :{ G?o& ECC -------------------- x@ in- active Post write & crc ------- xin- active Dwell timer counts ----- :| o& X i |26}27: 252;!r " !4ͻ ! T@ ll!r " !:ͻ = ʔxÄ Sector ID data ! ~# xEʯõ Flagged Tracks !  V#^# --> V#^#  Hit return to continue...U X c: 2!" " Writing... Track # * * !r#s!ͻ ʲ‚ WRITE ERROR ͕ D O* " * #" 2}|c DISK FORMAT COMPLETEDX : 2 Logical drive A?ͼ j Logical drive B?ͼ p Logical drive C?ͼ v Logical drive D?ͼ |X@&Lr!r#s!ͻ ‡ WRITE ERROR : 2A 2G 2M !" " Reading... >2 ! " >@2 * " Track # * * !B r#s!@ ͻ = 3 >2 * >-w." * ##" ! 5:  Do you wish to rewrite this track ? ͼ ʶ͕ ʳ Read error ignored. Testing continued.  D * !H r#s! " !F ͻ  Write successful. Testing continued.>   ͕ XD ö* #" 2}| Run again ?ͼ ʮX!r ~Q 6@#6###p#6 flagging sector!r " : 2S !R ͻ Flagging track!r 6 " : 2S !R ͻ Unable to flag trackX OK > >2P * !r " !L ͻ = ERROR BLOCK # !r ##^#nc CLASS/CODE !r ~ "  : 2 ! " ! ͻ ~ b Ä tracks unflaggedXi |2t }2u 2s 2v ͍ X"Z R >@QR >Q*Z RO y@~P# RO y! >P * RO y! ~P# PORG$ P: y: >* RO@ y! Pw#@ !^ 6#Z \   Track # ? U !^ ) ! ‰ ‰ Do you wish to flag this sector? \   :^ YyN#y'     | {0 _  " 0 ~0Q Q ! ? T]_z#- {Z \   Track # ? U !^ ) ! ‰ ‰ Do you wish to flag this sector? \   :^ YyN#y'     | {0 _  " 0 ~0Q Q ! ? T]_z#- {Z \   Track # ? U !^ ) ! ‰ ‰ Do you wish to flag this= ERROR BLOCK # !r ##^#nc CLASS/CODE !r ~ "  : 2 ! " ! ͻ ~ b Ä tracks unflaggedXi |2t }2u 2s 2v ͍ X"Z R >@QR >Q*Z RO y@~P# RO y! >P * RO y! ~P# PORG$ P: y: >* RO@ y! Pw#@ !^ 6#Z \   Track # ? U !^ ) ! ‰ ‰ Do you wish to flag this sector? \   :^ YyN#y'     | {0 _  " 0 ~0Q Q ! ? T]_z#- {Z \   Track # ? U !^ ) ! ‰ ‰ Do you wish to flag this sector? \   :^ YyN#y'     | {0 sD  =()(*(=7 PPHLKJ&! gFx#N͆ k:.D!g:.D!$g!*g!0g:Vi¢= * :O:J2 2 ! A uß99ʑ ¶9!W9!Xr#ʟ#I#ʳuW6uI7WIruImuubrp8$uuuuu>J: |* * " ͭ* ~#" O9ͤ: =2 22 99* " " ͭu͕: =c: f: J2 uß2 * * e6I-:T=o%" ͭur* * e6ͤͻͭuß:D:Dʳ9ó* " ͭ:Du9>2 uy :D9u>2 : $* wO9ß* : `6* " N: 2 ͻ* e6XyX* ~qO<: 2 * " wO9n ß: 2 ʁ! Ä! !Au* +* e6uʮͻu* -" :T=o%" ͭ>2 : O* * y`6+" : 2 * " * * e6!ͻ: * Ny!* qͻ* 6 : 2 * " n u>2 : O* 6 # D͕n u͕: J͕: J: : * * e6: J: N³* * e6ʳ: ³* 6͕: 2 u>@J>J͕: J͕: u: 0J͕: u: J!<g͍: G: f: 2 }6" s6" `i" ͭ> ͍͔!" !" 2 2 2 * ," :T=$." ͭ* #" * |: <2 `6~͐ 2 * +" * |: =2 `6~͐ 2 : ! Ϳ8O: 9L#LA3LB!8X7y56y56?_Oy! Ϳ87y! Ϳ8yP6G*  N##s6yʮʉ~€FÂT9͖ͤ4* |ʚnâ* N!2!ï#* |N͆ #ͤ¹* " 7* w#" 9#A ! Xw&~P6&#O~56y!~&_w&~&> wO͆ #ͤ* 6#" ͍* " ͭ^" ͭu~O͆ #ͤ^~#.q~ #{: o&)))}6: N* : OD2: *  s6͉4* |n: G: O* 2* " ͭ* N͆ #: * ~_Y T 662 ́~A : Y  ~. > O͆ #ͤ' \ * |\  ͆ ͤ: I ^* |:Dq :9ͤu* * x6" *  ~Y* - :To%* x6* x6* x6" ́:D :9ͤ! 4ɯ2 ̈́" " 2 }6" }6" s6" *  ~O2 #~ <2 #}6yN M N ͖4* |5 nx2 y2 > : G2 O!" " 2X #" 2 " ͭ* |g ~j ͐ 2 : 2 * " * " >2 9: N >9L>XTFYNtfyn.+- #9AXL!DELETED INSERT ""!j"!j"*~#"1Ҙ W6RftDMVbktH 1j ^9    *+": g~*~#~#"" }6" F#N#s6xC L x D2*͉4 *7N *x #y7 N x ~*w1 ~*_T/ Y/ 61 6N OG"gxq ~@X 2W +~ W + F yj yj >2 y/<2ɯ22*6!j"Ϳ5N#~2#^#V#~#F#"x2:/<.Qx2 :ͽ :_:<2*~ /6=T}6}6"! N#}6> `6~#s6҄O7 }6" ~CʴL##s6g7 #NgFxH)WDp#q#s6x6+N͌6x#s6q#7 ##s6g~ }6" ~CKLf#F#}6N~@2 ͎6#7 ##}6g~6T 6F 4M4E*p#2H N 4M4E|JgxJy1=4~O#x`6*q#7 N >w:Ø *w# XN g~w] Ͷ͓1ڃ >v:Ø Ͷ@1 Ͷ61 ͶZ0 DIIDIIDDIDIDDI*N#7y`6F#7y*w*wN DIIDIIDDIDIDDI*wN *wN g~ʮï/w] Ͱ4 .,ͼ3 gN#D2 gn&ͼ3 *NͧDI*N.,DIN#F#x'DI͇6"xʘ†yʒi&Û!ͼ3;2Þ!Û!ͼ3 4n&ͼ3 gͣ4g͖4gg*͉4NͶ61*]͉4#"+~:+D.N#~N#6*]#"+x7F#N#6*]#"+6 6 *]i&"*x6"*+V+^"`i"8͚ژ960#q#p#60*DM7xxʺ7>áѷ.OR. x x7>ѷ.AND.%7%7-%7'3x+>37.NOT.ڈxW͊2xʈ:ɱ͊m~$>i#2xˆʈ:7~=•>#Ÿ><¿#~=ʺ>µ>> > >#~=>> #ɯ͠.xF~+#͠-x-1>-#͠-x-1>7xG|;GyBMxGɱM~+s#͠ڜxœʜyO> M-˜#͠ڜxœʜyO>M7x¯~*#xyxGOxG>ï/#xx=|GGy Mxï7A~+<-@#IG>#IGevEͲ ~!Ϳ8s7#ͥ- xG>> > A>~(#͚~,#͚~)#>~( %66$#͂6 x>%~(#x~,#s7چ~)ʂ,†{È>2x~)ʾ,#x~)>#:O>.~(#͚~,#x~?)I,#s7"~)"{$>2x~)#:O>/#>>/ > x> ~(#~)#>! *>'x66#x6Ny6C6L#" >">> >#7~(>#͚>~)>#7͍xtD2*>'x6͉4*>`6"7~C6¯x#*ʹ6ʮO>'x6y`6#"#7~TYFN7>*w6'#x6#"#o ~N#F###N>&x6*7oB ~CA#N6*7ol ~Lk6*7͓*ʊ"͗Š722~+ʤ-¦#~0ڰ:.2:¤ä >2ä:O:Hyx<ɯ~  #.F..T.CDEFILPSTV#@$!*INT#VALLEN@TESTPEEK4STRK$!ZCHRmDATETYPETRIM*EOFFILEM()!d!`*/~**/*/"/͉,*/#"/2/2/l6DM*/> `67 6x2q/y2n/2o/_!|x2p/!"j/#"l/J$2/!ͯ#>$/R=F1:/Fw" Pկ2z/.,"={ͅ$a#2/!";{"{*/"/*j/"x/}#:/»*t/!={:n/O7*t/:n/`66#6*/#6#6>2/2~/#ͬ#>2~/*t/>2}/!?{:n/O͠$t$++}6z#"x/}#û#*/"{/#"r/:~/O:/0<͐$DM:/<$+:/$+8*r/!={:n/O7*r/:n/`6*{x6!/4:p/mͬ#:/J$*{/"/~2/<g:z/}%|2/*x/";{ͯ#:/g:z/ʖ$|2z/2/$={:n/7:/2/O:/2/͐$DM:/<$++*t/++7*l/"{ͯ#:/O:~/2~/*l/"x/##*l/#"l/>2/*/*/e6q*/#!;{:o/O7*t/:n/`6*{x6>2/*l/ͯ#*l/"j/#"l/J$*/*{/l6DM*{/+T]8#"/*j/*/x66#z#$>$͙"á>$ ͅ$!?{:d/7B |ʵe6ʵ͌!ҡ!>$a##> z#:~/O:/O͐$DM$++:~/<$++7!/5#ͬ#!~/5!/5ͬ#:/$={:n/O7#> z#$!={:n/O7ͬ#:~/O:/ ɷO2}/"r/a#*/"/*j/"x/}#:/ >2~/*/*r/͠$ʞ ڄ t$r ++}6z #"x/}#e ++}6zʸ #"x/}#e #s62/*/"/!>$*/ 9u!`i"v/#}6z>C+++6, !>N6*2c/{2d/#X/x6>$/P!6!?!*!:/?!w".,}N!O ͅ$a##}!#z#$?{:n/O>2}/͠$!͸P>a##!z#t$!#!z#:~/O:/ڠ!:~/<2~/$++}6#"x/>2~/#z#*/#}6z!!#$s6!>2/7ɷa##j"z#:~/=2~/^"#j"z#:~/"=2~/*/#4"$}6#"x/}#:/2~/#:/<$++}6z:"a"#$s6s">2/7ɷ2/ͅ;Å-:/*/nͅ;Å->2~/*/"/a#*j/"x/}##:/"*/#s6|ª"*/###s6!*/"/a#*j/"x/}#:/<2~/#:/#<$++s6|":/$7D!>$/+#ͅ;Å-#2/>$a###z#$x6ͬ#O!/~Z##Q#q:/*/h/ 7*/###"t/*x/"/://ͅ; Å-:/*/ͅ;Å-*/~2/*x/"/://ͅ; Å-*/:/w:/ͅ;Å-*x/*/x6:~/w#"/*/*/e6$7+~2~/+V+^"x/"/ѷ:~/*t/=O:o/W yO:$x5$G)$ E$33:/:/ͅ;Å-*/!h/ 7*/:/ͅ;Å-:o/`6!~/4:/*v/! O:o/_! š$##:q/$ͣ4:}/ھ$D2$͖461͉47:+D$6A:n/O6:/O:/ %:/ %t.2/2/:/ͅ;2//ͅ;(% ą-7! "/~ [% ~#*/x6`6"/#;%*/}o|gx6ͅ;{%ą-7ͅ; Å-!P/͌68ʼ%/ͥ-»%9!%ҝ%ü%K&>2P/K&>2S/%K&>2T/8s7zWD9"/>2W/%>2R/!wvu`i"/>2V/>2Q/:T/'&͉,+:V/2&m,:Q/E$D&*/ͅ'"ͅ':U/£&=2U/"/:P/d&Ù&:S/q&*/ß&:T/ʄ&͉,+!ß&:R/™&:W/œ&*/|:8"/!95WD͕'͂+-)'#-m,*/9>:WD*/"/*/> `6xv)yl)6A##}6z§)+pí)6#6})6#6 #}6zʭ)ҧ))ھ)p#N͌6x6ú)##ú))ڿ)p#x6q)6>:WD͓*)x))## `&ɯ:WD*/)ʐ*!`~ʇ* t*>:WD*/7~56*_w #~.* #P¶**S**M** +*~56*_w*P6*:*# *yͳ5*/+"/}E$++:1DL+-+?+-<͌!G+ͅ':1DL+-͌!?+ͅ'-<"-7"7ɯ<!wvu~+##~~+++6#6#60PY!v 47/!ͅ;Ø+2/ą-7"/͉,x~³+> ͈5# y¬+*/"/>2/*/*/DM:/ͅ;+*/#"/2/<,ą->2/7:m,7:/ͅ;%,,,ą-7*/:/!/7/ͅ; Y,ͅ-!"/͉,E$~,͙"ͅ'2/ɯ2/!ͅ'!/͌6*/|,+*/e6,"/"/*/"/! "/!/ -,/!/,!/,*/|º,/:/ͅ; Å->Å-w# ,~w# -~w+ -:/ͅ;Å--:/ */ͅ;Å-*/DM*/~j-#s6"/*/0%*/++s6"/$'>ͅ-*/DM*/> ͎6:WD!wvuڢ-PY!v %7-#¯-##~<§-=~0-:-A-í--s6:/ͅ; -ɯ2/:/://<2/:/*/#"/"/- */6#*/x6: Dw#: Dw#: Dw:/ͅ;Å-*/6#"//ͅ; Å-!z"/*/:/w#:/w#:/w#:/w#"/*/+~."/G*/ze6/+~</"/xͅ; Å-ALL%NEXT%RECORD%FOR%TOP &BOTTOM&WHILE%KEY C?{.DBF.CMD.FRM.MEM.TXT.NDX.FMTz0-0~|{Njl~|{Njl~|upr!j~w0!j~/1A4,1G.~,1ʿ00/< ڜ0~,1jf0~ڪ0WXî0P_i,l4z®0i~怲w.Fj0.'w- 0,1.>m4.4,1.7>'w- 0)1.ƙw- 1.7~'w- 1.~w4.6,1!j~wZ0!jjA4.J4 .l4l1GZ0e1.4 V1.~GO.~WIwx1~w4!j~2j.~722j.6@.6> 2jZ0.~1 1õ161.~=wy.R4:j=°12y 1.R4:j=22j.R41> .R4:j=22j1:jG.N@._y怳wjA447:j2j!j J4 ]2 2O2.6?+n2-t26 20ʯ22:2.6G.~4ڜ2ƶoxwâ2ƶo~w.~n2.4n2.~2.4.~n2.4n2.~n2.5n2.2.~26n2.~2.wy2x=G!j~.60 36-@T3/<.w> #33.~yʹ3>..F>0C3 63ù3.R40 C3ù3<.q/  x3d3.~3Ä3.~-ʂ3> .R40„3.~ʹ3O>..R40  3ù3>*±3!j J4'33d3 33>I2j4}o|g3 z!jR4!j~,,,,,<4!j~O,~44 <4.R4. 4.~怱w.w~#A4ɯw,K4_~Wwz+U4ɯ_~Wwz,t4!jA4jA4jA4!j~@5 4 /#͈5Ϳ55y 5>͈5+ 5w͈56y29ͳ5:9::9ʬ59ͅ;v29͢9:*DWD> ͈5> ͈5Ϳ5~͈5#55&o6&o5'66d6 66/}o|g6 z͈5/6/6/6/6> ͈5A[?a{?G'"[]0:?`6s6o$z{}o|g~#fos#r#^#V#q#p#N#F#>Wxʜ6r# Ñ6> #á6žʲ6# ¨6 G~66# ¹6y6# 6x66x296y29H66"7x"7 7:9O~ 7# 7"7xO~a07_q7m7S7O~AI7_g7#87~0m7;o7Am7o7xo7DM! ƒ7y7 0گ7:ү70e6ڬ7zT])))o҃7$ƒ77 `i9_7͈5> ͈5N Y7ɷ7Ϳ5>?͈5ö7H77y8~# 7x8~+ 8x8t8͢8t8W`i͢8c8O8G͢8c8OT]x`6Ͳ8c8/ 1::B:1:G::CM:xI:a>_d:O9 Z:!B4d: d:!B6O:?CyY }:!B4 !B6!B4:` =Ì::?Cʰ:  2B2B:B:B2:C::C9:?C2?C2Bͼ>:B2CB!:B;!5ͼ>B:_/;:C /;CC7! C6!C7ͼ>C<};";C!D"=CCy;*=CZ;*;C>x:WD29C"B"B`i"B!9"B~#W6;;Y<<<<=:=<>ͼ>͵>;> uB͵>\B> uB>!QC"MC~;B@;< y <*MC;ͼ>͵><>uB:j2j;@<2B*MC!\$7YBy<2B!"HC"JC2LC*MC6#"FCYB>!QC"MC~suBͼ>͵><>uB͵>\B͇@>2DC*B"@CD>YB͇@2DC*B"@CD>YB͇@>2DC*B"@CD>YB͇@>2DC*B#"@CD>YB͇@z=X@?YB!"JC"HCYB͇@2DC!"@C*B!5C"BD>*HC+"HC"BYB͇@2DCX@@A?*FC+6YB͇@*HC}|*JC}|\B͇@*BxN#F#^#Vʈ="JC`i"HCYBixg"HCz{gxo"JCYBͼ> _!QC"MC2B*MC~=^#V=*MC6:B<=2B*MC"MC=:9C͊@\B*B>!\7*BLD͵><(>> uB!\7<\B>uB28C:8C*@C| A*@Ce6a>DM*JCͤ?*HC*OC*B:DCҔ>B"B*OCl6"HCè>B"B*OCl6"HCXA*@Cl6"@CH>\!\6# > ͎6͌6:D2\!]w#:>+~@2\. ??w#>!e?w# ?:LC@'?:_ͼ>*MC:LC@2LC)):ECQ?*MC! x6}G)L*MC yʖ??qͼ>*MC<•?:DCڟ?*MC uB*MC p>uB!C"6C~ʿ??:9C? ë?#s6e6¿?###}6"OC6*BC "BC~?!C"BC#####~?5?#~@6LB*BC~)A:9C͊@*BC###s6"OC*JCdA*JC*BC"6C:9Cw#x6##6#6^#V!\ #N@:9CG!C~ȸ€@#####6#~@6x)A_@:9Cշ@ҹ@=!QCʥ@= @~ʹ@#"FCHC7>uB!QC~@@!QC~@@> uB6#"FCHC7!"HC"JC2LC>*HC!l6|*JC#"JC!"HC!͊@#}6s6"OCALB:9CG!C~ȸTA6JA*6C######6uB*OC:ECAA͌B*MC:EC$B"GBBB*MC!}6++x65BBBGBA:LC@2LC> uB> uB*FC!HC7LB*B###*BDM*B*B:B2B*BeB:DCBʗBx~# ÌB~ £B# x~­B>uBx~ B BB# íB#>28Cx~ # BB>28CDBASEMSGCOMDBASE OVRCʒ6Z~Ɠ2Vz”s6#!~/5#>ü>2D2-D>'>26D!pDD;MAI19*e6nEnE!D5INSUFFICIENT MEMORY IN SYSTEM, dBASE REQUIRES AT LEAST 41984 BYTES (0A400 HEX) OF MEMORY IN IN ADDITION TO THE SIZE OF THE OPERATING SYSTEM dBASE WILL OPERATE ON MOST 48K CP/M (tm) SYSTEMS THAT HAVE A STANDARD BIOS (2k:E!9`66>͕'͂+E:D!D`6'w2D!D4ͫ.;¯F!E5;F!E5MESSAGE FILE (DBASEMSG.COM) CANNOT BE OPENED2 D>r: 98ʯFs7{EE E2 D98s7zF{F: DqFqF qF qFzF{ FÀF{FÀF{F2 D98gGs7zE{2 DʯF: D¯F: DFͿ5Ϳ5!FFTTT@@Ȅ@@@@@@@d\~F:#F!G5:D[DWDͿ5!F5EThirty days hath September April, June and November All the rest have thirty one Except February ... ERROR!xG!GERRORG~@@ʑG:#~G##~#fo5ERROR3B 22 FEB 82s6#!~/5#>ü>2D2-D>'>26D!pDD;MAI19*e6nEnE!D5INSUFFICIENT MEMORY IN SYSTEM, dBASE REQUIRES AT LEAST 41984 BYTES (0A400 HEX) OF MEMORY IN IN ADDITION TO THÒDHHKMÍN(2xS2uS2vS͐%8D͜%ډR8D0S%7D9"S͕'G>2xSâD@S%7D9>2uSâDS%7‰R9>2uS2vSâDͿ+|Eͅ'+E:xSeF!"S!d"S :uSʃF*S9>͕'͂+G'2rS>'u-:vSF!9:rS'm%ھGͮ"S*S~ %F ~NE#F#}68'‘EÖE"¡EO8EèE,E,ʻE8%F¨EE8%FE,»EE#F#}6N8dD2928,Ey,E8%F,E8%F*S"SkEͧ#:rS'm%ھG>'X'EEH.$*S#"S*S+"S|EE:6DEE*SͿ55>:!d"SEE QtF$hFͦ&Ϳ+ͅ'+ÑR͂+G'2rS ,:G!0%!"S!"S~ NG"nSM(AG"pS ~NF*S6(#*nSx6*pSx660"SAG*nS ~N G*S6&#*nSx66#6,#*pSx660"SAG*S6&#*nSx66,#*pSx660"SAG*S"SõFu- *DM:rS',ھG: TG>'ͧ6 ! X'TGH.$*S#"S*S+"S|TG:6DTG*SͿ55>:!d"STG$:6DG*SͿ55>:>'ͦ&Ϳ+ͅ'+ÑR>$:>2)DÑR>:>2)DÑR(͐%2wS8ʗH͜%ډR8ʗH*S%74H>S:>2)DÑR>2wS9!"Sx68͓*^H>:>2)DÑR8M(uH>N:>2)DÑR*Sx6"Sx698, H8HH:wS«H>D:>2)DÑR!W&X'HͧHͿ5>]:.,5Ϳ5!"S*S}6"SzHOHHͲH.*HұHÑR$'#'8I>[: 9ʑR͕'%گK͂+2rS8=I0S%7‰RpJ>:> :ͮ͌6!"SͿ5/6`i+))))ͮy!2J5#6 982Jbk͌68͓*~,‡K8>,ʹ6ʇK ҇K9! 8_CINILK>J88s7ڗK{ʗKz—K{<ʗK=98J,ŸK8s7ڟK98ŸK{*S`6e6ڧK"SYI> !+t.ͦ&$>!:Ͷ7ʑR͂+#-ͦ&m,u-Q^Jͦ&t.$ÑR98͕'K͂+K#-ͮ7ͮ"S ͌6!"S*S+aKͧ~ ¤J#98͓* 8 J8 J8_CJNJLK>>K8jS79!jSs7K{ʟKzŸK{8jS79!jSs7K{*S`6e6K"S*S"SäJ$*S6 !+:rS'-t.ͦ&#-m,ÑR>:ZI>:ZI>:ZI>:ZI>u:ZI>:Ͷ7ʑR%I>:ÁR>:ÁR>:ÁR>:ÁR>u:ÁR>$:ÁR>:Ͷ7ʑR%I(.,"Sͮ"}S>2yS8LL2yS: %L>*::yS‘R: ;L>V:@L>y: 9LL͍ÑR8 ڑRs7Ϳ+e6M98|qL*S"Sͅ'*S͊: /Mͮ"S*S*SQ>%LGҧL%Mx%LxLxLE$L!%LqL*S+"S|%LqLE$M͌!%LqLxMͮ*Se6ҹL"SÊL*fS~ L*fS"SÊL+%L*S#"SqLͲH.!8ʺM,%L8,ʕM:{M0ڕMs79%Lz%L{!%L+))))ͮ~%L %L"}SÕM8͓*%L8M("}S%L98ʺM8ͧ6l6M8*}S͙O%LM*}SOڑR%LͲH.%L>:ÑR(2tS2sS8NS%7M>2sS9MS%7‰R>2tS9M.,:sSN#"S"S͡+=)DM,ڂN*S͡+:tSGNu-H.JNQͧ7,*S#"S͡+H.JNͿ+#+ͦ&m,*Sͅ'ÑR>1:m,ÑR8ʉR2zS2wS8O5S%7N98"SuډR8~N+"S#~O#F>2wSÚNNS%7‰R#98>͕'N>$:ÁR>2zSÚN:wS>P~R:zS>D~R%͂+'L#*S*S'>'!ͅ'ږO !"S!d"S$*S#"S*S+"S|{O:6D{O*SͿ55>t:!d"S+JO:6DʖO*SͿ55>t:ÑR ~NO#y=ON#s6T]> ͎67D2#F#}6N2>:7"S V#~2S#s6"SzCPP!!S5 9PO8*S͙OOP!͌62S:SG7!"SP!S5!5ʠP:PʀP!QS5!5!8P>2S>P!͌6!QS5!5ʠP>2S>P:SP:SGʾPw#¯PP6 #¾PP*SͿ55>:͈5/6*S:S_~͈5#P7>ɯ> :>Pͮ"S:DQu-: ʎQ2Sͮ"S.,#*SQ>QGO:S2Sx|QxjQͮ*Se6|Q"S&Q*fS~ |Q*fS"S&Q:SҊQH.7Ϳ5!8S5.,#5Ϳ5*SͿ5 ͨ+>:͈5/6 9O8QQxQQ*S͙OڣQ*S"S~ ¦QH.7"fS͊!DS55!"{S*fS N! :T_ l6#Ry2S*{SO:U![S > ͎6*fS[S~TR#IR[S*{SDM!fSh*{S:Sg"{S*fS"fS~ R:>2)DÑR>2)DÑR!RD;MAI[!W&5)"/DX'R*RҤR:6DʀD>2:ÀD:6DʀD>3:ÀD:6DʀD>]:.,5ÀD!9͐%͜%ڝ[*/D9)BEFOREBLANKCHANGE? DELIMITEDTO: FIELDFROMONRECORD SDFRECORD # TOTO dSͿ5gS8*_uڝ[`i"_6-#͇6x–SyNKCHANGE? DELIMITEDTO: FIELDFROMONRECORD SDFRECORD # TOTO dSͿ5gS8*_uڝ[`i"_6-#P!!S5 9PO8*S͙OOP!͌62S:SG7!"SP!S5!5ʠP:PʀP!QS5!5!8P>2S>P@͐%!W&.,"I"I2I͊:D2I2D2I2I2I2I2I͊!"I*Iͅ'H"I2I>2I*I~ D͆GD!I4*I"ID:IG:I2IE*I:Ig."I!I4*D!"IH"I2I*I~ JE@HJE!I4*I"I*E:IO:IG!y=aEOxgUE"I*IIHI!Ih*Iͅ'͊H"I2I*I~ ʬEGڬE!I4*I"IÌE:I!IڻE~=2I:IG>2Ix2I͍2IH"I2I*I~ E͆GE!I4*I"IE:IFI2I:I9FͲH.E$9F!2I9F.,"I"I͊2I:I:G:IF!I6#:I/2I:I2IîDm,.,"I*I"I2IêD!I6#:IwE$ G͌!-G"I:I-G:IG:IO:I2I-GdE*-G*I#"I:IG:IO:I2I-GdE*I"I2IêD:I0ʃGXG:I=vG2I!I4vGH~ vG:I<2I:I=vG2I*I"I2IêDI ~PҙG:IPڿG:IʢG7~/2I7 H?~2I*IDMI!Ih*I:I-!I͎62J7~2IÉH?~2IO>-!I͎6I~ʛH#ÐH!I:I`66*IDMI!Ih*I:I2)DI͊:I2D!$ID;MAIGF#:7ªF#*7*76 ª:7G*7"7:6ă"7 :7m#:6ĩ:8ȯ28 ʤ#3>G27<2RECORD # :00000;MAIGF#:7ªF#*7*76 ª:7G*7"7:6ă"7 :7m#:6ĩ:8ȯ28 ʤFI2I:I9FͲH.E$9F!2I9F.,"I"I͊2I:I:G:IF!I6#:I/2I:I2IîDm,.,"I*I"I2IêD!I6#:IwE$ G͌!-G"I:I-G:IG:IO:I2I-GdE*-G*I#"I:IG:IO:I2I-GdE*I"I2IêD:I0ʃGXG:I=vG2I!I4vGH~ vG:I<2I:I=vG2I*I"I2IêDI ~PҙG:IPڿG:IʢG7~/2I7 H?~2I*IDMI!Ih*I:I-!I͎62J7~2IÉH?~2IO(-(-2G2G2G8,E:GDG%7D98͕'/G>2G×D:GDG%7D98ubG`i"G>2G×D:GbGG%7bG9>2G8bG"G8͓*OG98,—D8E:G7G:G?G%͂+'2G>'-:GFͮ"G!"G!G"G*G~ ʩE*G7*G6(#*Gx6*Gx660"G*G "G*G "GfE>-ͮ"G*G~ yF&F*G*G7*G6(#*Gx6*Gx660"G*G "Ge6yF*G "GôE!"G!G"G*G98͓*"G8M(OG"G*G7*G6(#*Gx6*Gx660"G*G"G*G98,yF8 F*G6 !0%> 2:G' 9.>'>-m,-m,!"-*G! F*G!G :G'*DM9.>'*#"|-*FóFm,-*GóF:G'ͦ&-> 9.$>'mG>$:WG>D:WG>h:WG>i:WG>:bG>'>2)DmG>'>2)DmG!vGD;MAI :8Ī Ī*8:8 ʣ!y Ī:8O*7"7*8{!z̘zB"|G|!|"!"|/G}/O!FIELDSFORTOmG!vGD;MAI :8 H:IPH:IH7>2I7 H?~2I*IDMI!Ih*I:I-!I͎62J7~2IÉH?~2IO1:)D•[2_:DE͢9ʢD:*DGK:4DD:DD:2_>::2_:>`:Ͷ7:DD:_::_:GKE:D͵.:D>9ڕV8E#~E/wDͿ5>.͈5/6 998ʀDʀD*ʀD:-DʍE8AE_^%7HE!_4ÀD8YE:^%7gE:_€D2-DÀD8xE^%7€D:_†E2-DÀD=2_ÀD:_EE^%7E9!"_DM͋-ڝ[8[ʀD2_ÀD^%7E2_ÀD^%7€D2_ÀD:(DF:DF:2_>::2_:r9:DF:_::_::\G8ʗF2F#~%F!͌6!͌6#͓*~.UF 7!)‘F ~C?G##s6N#798IGF8F98F<\ͥ-¯F9~P6:G(BQ8W6sQPDOPKPKYGSCVV8WHNGG)KGKKKKKLL4MRPPP0QPQQQR]RiRuRPSSSiTTTTUVUV\WXYZZZZ6[>Ï[>"Ï[>Ï[>4Ï[Ϳ58C6yG8~ʝ[#^G9l6DM ͨ+8^%7>R#98Q*>:͈5 98GK阯ʹ6¬G> >O!6'#x66*#x660A)ڀD! ÀD(81^%7G!GD;APPͿ+|Gͅ'+Gu-H.ͦ& $Ϳ+ͅ'+ÀD͙H:5DʇH:2_>::2_:*_DM͸:/2_8uڝ[`i"__6,#Ns#Frx/I2_y2_>N2_MI2_yCIA2_>C2_MI2_>L2_!x`668^%7I98C6[8xʹ6ʝ[#9!`662>2_8V^%7I98K͓*K͗"_ʽI>NÏ[98Iv^%7K98C6[8xuʹ6ʝ[9!u"_`662t:_*_! :_!:_NJ~(J.(J#J"_!~ #wDJDJ DJʘJwCJ6 DJ*_*_~KJ#J~K#J9¯JwîJ~K#J9J#J60#J!~KXJKw#J#J6 #J!"_>RÏ[: ʀD(!&KD;BRO8:>'ÀD>2_ÀD(!GD;8K$'#-$'#-: D'ͦ&$(2k2 Dͯ5-ÀDV^%7KZ^%7[͍ÀD(!ZD;(͐%2_͜%ڝ[89L^%7[98ʝ[**"_>2_89L +LKͿ+|]L!W&X'TL]L*]LJL:6DnL>:`i5:_ʀD`iͼ3*_ }6͉4ÀD!GD;͐%8?^%7L9͕'&L>':6DʀD>.:ÀD:>'ÀD(>*2_L:6DʀD>':ÀD͜%ڝ[8[!W&:_WͿ+|&MX'M&MͧMrͲH.*&MM`i:6DͿ55!"_!"_^8%7N(>c:>'T'5>n:Ϳ+5>s:ͮ+++++5>/͈55>/͈55-ʞM>l:ãM>m:>b:ͮ Ϳ5y5#6 ͨ+)6 ~͈5&6#~5&6###F~)6xM5)6~ ­MͿ5>\:#6#6)6=)5ÀD9h^%7ʰOD^%7ʹO(2_2_͐%!"_!"_8ʻN͜%ڝ[8ʻNo^%7jN>2_9DN*_DM*_uڝ[>2_`i"_6-#͇6xŸNyšN6àN6áNp4#6#60"_8ʻN,DN8DN:2D-O:_-Oͮ"_*_~ -O*_6f-# ~#N###FNOCO6#6#6O6#p#6Op#q#q4#6#60"_*_"_N*_W&.,|ʀDX'ʤOڀD*_+"_|cO!"_>a:9ʀDͿ5:_|O.,5/6͈ͧ5:_šO:2DʚO=)DMͧ #ͨ+äO*_! *ʀD;OÀD!ZD;9!ZD;8^%7ʍP^%7 P8>͕'P8[͂+P:DP!D`6'w2D!D4ͫ.>'ÀD>%P>&:GK:DʅP9͋-ڝ[P2_:D>98NP7^%7dP98^%77P!_47P8uP^%77P!_57PÀD@:ÀD85ÀD8ʝ[͕'6,8ʝ[^%7[98͕'G,ÀD(.,|U͐%!"_!"_8ʐU͜%ڝ[8ʐU8͓*T>Ï[8M(U"_^8y`698%7U98*_DM*_uڝ[`i"_N##~JUC+~JUL*_ ~\U>OÏ[*_6,#x660"_>2_8ʐU,U8T-^%7T9T:_U!W&X'UUͧU*_! ͳ&ͲH.!ͺ&*UҠU:6DʀD`iͿ55>::ÀD>=Ï[>>Ï[D!U;RPG8ʝ[J^%7[9>͕'͂+!V>TÏ[ͣM*#DM,͟&*DM,$>'ÀD8)^%7UV(ÀD8ʀD͓*fV>Ï[8)sV1*98ʀD,[8UV'm,-ÀD:DʀD'$>'.:DV=VV2D=!D`6~2D2-DÀD2D2D2-DÀD>):ÀD8.W^%7.W9>͕'3W%͂+.W'2_ͣM*#DM9.͟&*DM9.ͦ&$>'ÀD>DÏ[>$Ï[8~^%7KW-ÀD^%7[>-ÀD8^ͥ-tW9XwÀDX_ͥ-[9X:ÀD8^%7W9>͕': DʯW'ͦ&$%͂+'2 D>'ÀDXW: Dͯ5ÀDX:ÀD8^%7W9<!k͌68kʹ62ÀDXO+ڝ["DÀD:,D%X'$2,D>'X^%7]XO^%7VX>͕'͂+JX>UÏ['2,D>'ÀD25DÀD>25DÀDX8ʝ[~_@2DÀDXs7{2 D98s7{2 D98s7{2 DÀDXO+ڝ[}2`ÀDX#8ʀDZÀD8^%7[988s^%7Xo^%7[>(8-Y8 Y+ Y88ʣYO+ڝ[|ʀDyfYE$QY.,"_!HY"_z0Y*_ͅ'øY͙"ͅ'øY.,l6`Yͅ'øYm,øYE$ʙY.,"_͌!ڊY"_zrY*_ͅ'øYͳ&"ͅ'ͺ&øY.,ͅ'øYE$ʵY͌!ڊYͅ'øY+:6DʀD>]:.,5ÀD!YD;SRT!"_DMuڝ["_`i"_8^%7|Z9*_#N#F8***_6*#x6"_"_8͓*98LZ,[*_*_6"_8 Z:6DcZ*_*_6+#x6"_*_60*_:6DĿ5! ÀD>DÏ[!ZD;MSC!ZD;TTL!ZD;UPD$'#8ʀD͕''[͂+"['#-m,8ʀDb^%7[98ZÀD>͕''[͂+,['L#8,[8 Z>pÏ[]#w" 1[>'m,>Ï[>$Ï[>MÏ[>{Ï[>a:9GK8ʋ[^%7[98ʝ[)f[1*** s66# [> w͈5> ͈5ÀDÀD:[:)D[>I:Ϳ589l6M [/6ñ[>?͈52)Dr9:]GK>W:Ͷ7GKʀD>X:!5ʀD>Y:!598[r9>Z:Ͷ7GK[19E6S6y6Ϳ6_~6{„6{STOREY?GSELSEPENDDOPENDIFD*DDOONOTEDLOOPPRELEASECVRETURNVSELECT8W@HACCEPTNGAPPENDGBROWSEKCALL)KCANCELGKCHANGEKCLEARKCOPYKCOUNTKCREATELDELETELDISPLAY4MCONTINUEREDITPEJECTPERASEPGOTO0QGO0QIFsQFINDPINDEXQINPUTQINSERTQRJOIN]RLISTiRLOCATEuRMODIFYSPACKSPOKESQUITSREADSRECALLiTREMARKTRENAMETREPLACETREPORTURESETVRESTOREUSAVEVSET\WSKIPXSORTYSUMZTOTALZUPDATEZUSEZWAIT6[CASEKENDCASEPOTHERWISEKALLANDBLANKDOELSEFILEFILESFROMSCREENGETGETSIFINDEXMEMORYOFFONPICTUREPRIMARYPRINTSAYSECONDARYSTRUCTURETOUSINGWHILEWITHENDDOENDIFCASEENDCASEOTHERWISEBELLDCARRYDCOLONDCONFIRMDDEBUGDECHO(DEJECT3DESCAPE*DEXACT+DINTENSITY.DLINKAGE1DRAW2DSTEP4DSCREEN TALK6DALTERNATEWCALLXCONSOLEWDATEyXDEFAULTeXFORMATXHEADINGWINDEXXMARGINXPRINTW.EDBASE DBASEXCONSOLEWDATEyXDEFA8[r9>Z:Ͷ7GK[19E6S6y6Ϳ6_~6{„6{STOREY?GSELSEPENDDOPENDIFD*DDOONOTEDLOOPPRELEASECV8M%7ʛDM%7L9öG>q:Ͷ7LL(!O > ͎6!P w Dͮ7!"M!M"M!"M*M~ *E*M s6 ~E#D~L###~L*M"M*M"MD!M"M͊!"M M!Mh*M"M!"M*MDM*M"M!Mh*M"M~ ʀE*M$"M|QE:MGx2MGELCF:M_:M!OʵE=°E"M!Sl6|EDMS!S~+ xE*M> ͎6+60ExʇF2Mx"F*M"MMe6F!M"M2M0E:M2M0E*M"MyOe68FÇF:M2M0E:M_:M!OZF=UF"M!Sl6|vFDM*M!7!S> ͎6+60E!͌6!"M!"M!M"M*M~ gG s698ZG*M8͓*~8> ʹ6ʎG ҎG9! 8_CFNFL–G>:G88s7ڦG{ʦGz¦G{98:Gs7ڞG98žG{*M`6e6ڮG"M*M"M*M"MâF*M6 ͮ!7!+t.ͦ&#-m,L>:õL>:õL>:õL>:õL>u:õL8G>[: 9L>͕'J͂+G!cM5>2MG'2MMK%͂+'2M:D2M2D:TPH> 2M!N6O#x6! N6 #6 #"M"M"M"M#"M2M*M!`l6DM*M>͎6K͊!"M!"M*M"M*MJښH##"M&o62!Mh:M ҔHxjH͍!M"M*MJ"M:MGM!MhGG8IʤJI7KRK*M*Ml6DM*M+T]8#"M*M6 #6 5LRH*M##*Ml6DM*M*M##7 "M*M~RH6 #6 #6#"MRHx6JxʰI7KRK*M*Me6ҚHJ"M!M5:M jI5~H2M*M"M*M*Me6ҧIJ"M:M<2MG:M ҡIx2Mx yI*M"MRHxI7KRK*MJ##"M~I6 #6 #6#"M5L!M4:M I4~ښH2M*M"MRHRK:M > J>2M*MJ##~)J"M:M=2MJ*M"M2MRHRK:MLJ*M"MK9J*M*Ml6DM:M'9.ͦ&$:MJ'$MK&MK6,MKG,MK6,MKG,ýJ:MJ'$:M'$&>':M2D͊L++~ J#T' >.ͧ6#"MM7O> !͎66"M*M+e6K*M~.K 1K 'K> # K7y!"M:MG!Mh*M> ͢8G!P +~ bKy2M2MK*M*Ml6"MҪKy*M`6*MDM*M7:M_*M"MK*M+`6*MDM*M+8#"M*M:MO75L*M7:M"L*M^e6K?LKT] "M:M',xL L*M+6 #6 #6#"M*M_e6*M*Ml6e6ҦL*M:M'9.*MT] *Ml6DM7*M"M*M"M*M"M*M"M*M> ͧ6#"M!qM5Ͷ7ʤJ9J>a:9*E&odL LL/}o|gL z!LD;MAI>2)DL2 7 2 7 2 7 >2 7 >2 7 2 7 >2 7 >26 26 >26%26zt:7 {=tt NEW FILEBUFFER FULL, TYPE Y TO SAVE, OR N TO ABORTNAME TYP LEN DECCOMMANDSTRUCTURE$$$BAK+F'͑Gö=2 7*#7~#"#7!{ (t FIELD 01 COFIELD 02 CPFIELD 03 C,PFIELD 04 CEPFIELD 05 C^PFIELD 06 CwPFIELD 07 CPFIELD 08 CPFIELD 09 CPFIELD 10 CPFIELD 11 CPFIELD 12 C QFIELD 13 C&QFIELD 14 C?QFIELD 15 CXQFIELD 16 CqQFIELD 17 CQFIELD 18 CQFIELD 19 CQFIELD 20 CQFIELD 21 CQFIELD 22 CRFIELD 23 C RFIELD 24 C9RFIELD 25 CRRFIELD 26 CkRFIELD 27 CRFIELD 28 CRFIELD 29 CRFIELD 30 CRFIELD 31 CRFIELD 32 CS +ELD 2 "M:M',xL L*M+6 #6 #6#"M*M_e6*M*Ml6e6ҦL*M:M'9.*MT] *Ml6DM7*M"AÒDÅIKLANN͐%2rQ2pQ2qQ2mQ2nQ2oQͮ7!"Q8E͜%ڥO8EP%7D"tQ9͕'sI>2rQúD|P%7[E>2pQ9!6 "Q8͓*E>zI8M(!E>NzI*Q7!6 "Q*Q6(#x6x660"Q98,ºD8EP%7ƒE>2qQ98sP%7ºD>2oQ9úDP%7—E>2mQ9úDKP%7¥O>2mQ2nQ98P%7ºD98ʥO2#Q8úD:rQxI*tQ9:mQEE>͕'%͂+'2"Q:mQ)F!6#w#w#ͮ+++++7:oQ°H 9.:qQ3I>'!0%!W&!"Q!d"Q.,|IX'ʤHIͧʤH*Q#"Q*Q+"Q|ŒF:6DʌF*QͿ55>#:!d"Q:pQʍG:nQ³F*DM!> ͎6! ÑG!"Q!"Q*Q~0sG#}6##"Q ~N%G#F#}6*QyF6,#:#Q,Fw#7x`6:#Q,Gw#"QoG+~ G+G#"QoG#F#}6*Qy6G6,#:#Q,MG7x`6"QoG~# [GhGMGMG"QoG60#"Q F*Q6 #6 #l6DM:"Q̈́%äHͧ:mQ¬G*DM:"Q'9.>'äH:nQG*6 #6 :"Q*DM̈́%äH!"Qͮ"Q*Q~ ʍH ~N5H#F#}6*QyG6,#:#Q, Hw#7x`6:#Q,"Hw#"QH+~ .H+#H#"QH#F#}6*QyFH6,#:#Q,]H7x`6"QH~# kHxH]H]H"QH60#"Q*Q"Q G*Q6 #6 #l6DM:"Q̈́%*IOFI!+QA7 9.ͮ"wQ!"Q*wQ~ I>  ~H> #H#~#~ͼO###~ͼO*wQ"wQ9.*Q#"QH:6D3I*QͿ55>#::"Q'ͦ&:oQQI:qQjI:mQjI-*Q!6#x69.$>'ðO>$zI>D>'>2)DðO(͐%!"|Q!"Q>A2P2Q2Q2sQ!Q"Q8͜%ڥO8ʓJP%7BJ:Q<2QK*|QDM*QuڥO>2sQ`i"|Q"Q#͇6xJ!P4**! s6͌6*Q6f#6*#x660"Q*Q6+#x660"Q8ʓJ,¬I8ìI9>2Q!Q"Q8ʓJ)_J1**Q~ʰO#}6"Qbk ͌68͓*8798,¬I8VJ:sQJ!W&X'ʹJJͧʹJ*|Q! *JҠJ:6DJ!QͿ5 >A2P:Q°O!Q~0ʰO#}61*J>FzI>GzI>HzI8P%7¥O98C6¥Ox68ʥO%K88FK,¥O88K"Q!"Q*Q++"Qe6dK҅K}6C6*Q~{K#pK#"QPK*Q6!͓K& |ʪK02QQQ~K #Ky2Q#~KQ |LO 6:D2\2lQ8LP%7KL98ʥO_@2\8:L8LP%7¥O98ʥO!P>  ͎6P8*ʐLL L.ʡLaڈL_8sL>?͎68.L8P*LL LaڼL_8ìL>?8>2lQLͿ5:lQL!P5!P] 7MͿ5ðO!P] 7MͿ5ðO!Q"Q6 \N0M!P5*Q7 "Q6 N0M!Q"QͿ5*Q~ ]7"Q2h!]ͨ+/6ͨ+#62|\\Mog5#65>/͈55>/͈55Ϳ5O>:Ϳ5O\NM!P5Ϳ5ͨ+>.͈5ͨ+N#6)6 NͿ5NMͿ5"N\1N7(͈5 ~͈5>)͈5,6~NʙN#~2(Q2vQ2)QêN#~2)Q###~2(Q>2vQ!$Q :vQ*zQ`6"zQ~ NNͿ5>\:#6:yQ5!UP5*zQ5!gP5ðO(!"~Q"QͿ+|}O!d"QͿ+*~Qe6qOͅ'͊*~Q#"~QͧkO*Q͡+H.*Q0#*Q#"Q:6D O*Q+"Q| OͿ5*Q+5>6:!d"Q O͸ O*Q͡+ͦ&m,:6DʉO>5:*Q+"Q+:6DʰO5>6:ðO>'>2)DðO!OD;MAI&odO OO/}o|gO z\QMs6"SzCPP!!S5 9PO8*S͙OOP!͌62S:SG7!"SP!S5!DELIMITED VARIABLES USED BYTES USEDEXTENDEDFIELDSA:::::::::ALIKECOMMAND FILESDATABASE FILES # RCDS LAST UPDATE NoneONSDFSTRUCTURETO ????????DBFWITH$$$ SUB'&S),#0FIELD:NAMEC FIELD:TYPEC FIELD:LENN FIELD:DECN ????????DBFWITH\\Mog5#65>/͈55>/͈55Ϳ5O>:Ϳ5O\NM!P5Ϳ5ͨ+>.͈5ͨ+N#6)6 NͿ5NMͿ5"N\1N7(͈5 ~͈5>)͈5,6~NʙN#~2(Q2vQ2)QêN#~2)Q###~2(Q>2vQ!$Q :vQ*zQ`6"zQ~ NNͿ5>\:#6:yQ5!UP5*zQ5!gP5ðO(!"~Q"QͿ+|}O!d"QͿ+*~Qe6qOͅ'͊*~Q#"~QͧkO*Q͡+H.*Q0#*Q#"Q:6D O*Q+"Q| OͿ5*Q+5>6:!d"Q O͸ O*Q͡+ͦ&m,:6DʉO>5:*Q+"Q+:6DʰO5>6:ðO>'>2)DðO!OD;MAI&odO OO/}o|gO z\QMs6"SzCPP!!S5 9PO8*S͙OOP!͌62S:SG7!"SP!S5!DELIMITED VARIABLES USED BYTES USEDEXTENDEDFIELdBASE IICOPYRIGHT (C) 1980 BY SOFTWARE CONSULTATION, DESIGN, AND PRODUCTION (SCDP) 6542 GREELEY ST, TUJUNGA, CA 910427 *** dBASE II Ver 2. FILE DOES NOT EXIST UNASSIGNED FILE NUMBER FILE IS CURRENTLY OPEN END OF FILE FOUND UNEXPECTEDLY" RECORD OUT OF RANGE TOO MANY FILES ARE OPEN DISK IS FULL DIRECTORY IS FULL FILE ALREADY EXISTS NO FIND TOO MANY MEMORY VARIABLES OUT OF MEMORY FOR MEMORY VARIABLES ILLEGAL VARIABLE NAME TOO MANY CHARACTERS NO DATABASE FILE IN USE, ENTER FILENAME: NOT A dBASE II DATABASE RECORDS ADDED DO CANCELLED BAD NAME FIELD BAD TYPE FIELD BAD DECIMAL WIDTH FIELD BAD WIDTH FIELD DESTROY EXISTING FILE? (Y/N) *** UNKNOWN COMMAND COUNT = ENTER RECORD STRUCTURE AS FOLLOWS:: FIELD NAME,TYPE,WIDTH,DECIMAL PLACES INPUT DATA NOW? & MACRO IS NOT A CHARACTER STRING RECORDS COPIED BAD FILE NAME COMMAND FILE CANNOT BE FOUND7 NESTING LIMIT VIOLATION EXCEEDED DELETION(S)t *** END RUN dBASE II *** TO MANY RETURNS ENCOUNTERED ENTER RECORD #,FIELD (# OR NAME),NEW VALUE+ ILLEGAL DATA TYPE SORTER INTERNAL ERROR, NOTIFY SCDP CORRECT AND RETRY? FILE HAS BEEN DELETED ILLEGAL GOTO VALUE2 SYNTAX ERROR, RE-ENTER CANNOT INSERT - THERE ARE NO RECORDS IN DATABASE FILE END OF FILE ENCOUNTERED END OF LOCATE SCOPE MACRO NOT FOUND PACK COMPLETE, RECORDS COPIED RECALL(S)~ COL WIDTH,CONTENTS DOUBLE SPACE REPORT? (Y/N) REPLACEMENT(S) ENTER REPORT FORM NAME: ENTER HEADING: DATA ITEM NOT FOUND "WITH" PHRASE NOT FOUND ENTER SUBTOTALS FIELD: A SUBTOTALS IN REPORT? (Y/N) PAGE HEADING? (Y/N) > ENTER PAGE HEADING:  SORT COMPLETE "TO" PHRASE NOT FOUND** SUBTOTAL ** NO EXPRESSION TO SUM: NON-NUMERIC EXPRESSION> MORE THAN 5 FIELDS TO SUM *** SYNTAX ERROR *** ARE TOTALS REQUIRED? (Y/N) NONEXISTENT FILE2 SUMMARY REPORT ONLY? (Y/N) INDEX FILE CANNOT BE OPENED VARIABLE CANNOT BE FOUND SOURCE AND DESTINATION DATA TYPES ARE DIFFERENT "ON" PHRASE NOT FOUND FORMAT FILE HAS NOT BEEN SET SYNTAX ERROR IN FORMAT SPECIFICATION "FIELD" PHRASE NOT FOUND3 CANNOT OPEN FILE FORMAT FILE CANNOT BE OPENEDQ COORD: CORRECT AND RETRY (Y/N)? CHANGE FROM : CHANGE TO : MORE CORRECTIONS (Y/N)? O ENTER FILENAME: ** TOTAL ** RECORD: NO FINDPAGE NO.  SINGLE STEP Y:=STEP, N:=KEYBOARD CMD, ESC:=CANCEL WAITING 7 FLD NAME TYPE WIDTH DECE STRUCTURE FOR FILE: ENTER OPTIONS, M=LEFT MARGIN, L=LINES/PAGE, W=PAGE WIDTH ENTER SUBTOTAL HEADING: 0 ENTER SUBTOTAL FOOTING: EJECT PAGE AFTER SUBTOTALS? (Y/N) NO "FOR" PHRASE JOIN ATTEMPTED TO GENERATE MORE THAN 65,534 RECORDS NO "FROM" PHRASEG KEYS ARE NOT THE SAME LENGTH PRIMARY USE DATABASEY SECONDARY USE DATABASE NUMBER OF RECORDS: DATABASE IN USE IS NOT INDEXED MORE THAN 7 INDEX FILES SELECTED MODIFY ERASES ALL DATA RECORDS ... PROCEED? (Y/N) & ENTER TODAYS DATE AS MM/DD/YY OR RETURN FOR NONE : DATE OF LAST UPDATE: RECORDS INDEXED RECORD LENGTH EXCEEDS MAXIMUM SIZE (OF 1000) *** ZERO DIVIDE *** BEYOND STRING *** OVERLAY CANNOT BE OPENED ENTER RECORD # : RECORD NOT IN INDEX INDEX DOES NOT MATCH DATABASE PRIMARY USE DATABASEY SECONDARY USE DATABASE NUMBER OF RECORDS: DATABASE IN USE IS NOT INDEXED(2P2P2P2P2P!Y ͌6>2P2P>92P>P2P:2P2P͐%8E͜%IM8EM%7D9>͕'>2PúDM%7 E98IMM%7IM9>2PúDM%7IM9>2PúD:P;E>;: 98=M>͕'>2P͂+PE%͂+2P'2P2P:PfE>d:L M8E E_M™E8=IM8s7{2P2P9EL¶E8=IM8s7{2P9EWE8=IM8s7{2P9E8,E8lE:PE>A:L M8_YgF>2P:PF>B:L!T#8<'F>/F4F8>4F8>@2Pʹ6F2TO M!T6'#x66-#q#:Pw#:PG:Pw#p#602P:PwF>9:L8_Y‰F>2P M2Q:PœF>J:L8_Y¾F>2Q!M**"P2P M:QG:PF>@:L8_YF>2P M:PG:PF>?:L MQiQuڱL:PG>L:L8_Y,G>2P M2P:P?G>g:L8YOG>2P M:P^G>e:L jGvGX> >âGX8<ʋG>ʓGØG8>ØG8>@2Pʹ6RGO2X M!Y6'#x66-#q#:Pw#q#:Pw#60:PG>8:!"P!"P60!Q"Q60!U"Q60!U"P60!R"P60>2P:PHͿ5:P5#6L8aJs7{2P9~,±L8*PDM*PuڱL8±L`i"P:PzH6-#N#FxgHw#:Pw#:Pw#60"PÁH"P#͇6 M:P‘H><:L ʝH®H*Q> 2P>H*Q#8HH8>H8>@2Pʹ6ʅHO M*P6'#x66-#q#:Pw#:Pw#:Pw#60"P*Qqy`6#"QxBJ:QBJ:P'I>J:L M8_YBJ*P6*#x6:P_I6f-#͂6:Pw#:Pw#6*M"P!"M! p!q6f#6*#x6:PI*P6*M"P!"M! p!q6f#6*#x660"P*P*Q6f-#͂6:P_:Pw#6#60"Q:P(J*P*P6f-#͂6:PG:Pw#6#6#6*#x660"P2P:P<2P:P_:P<2PH:P_:P<2P:P<2P:P<2PH:PqJ:P'ͦ&:P'$>':P:!"P!W&:PK!iQR~0ʨJ#ÜJ#N#F!M4**"P6*#x6606&#*Px66xJ6#60!R6+#*Px660ͧJX'KfL*fLfLJ*P!iQ Ͱ::3D)KͿ5͛:)KͿ5͛:2P:PxKͿ5,M>_:*P#"P5#6!k5,M: DxK5>/͈5: D5>/͈5: D5Ϳ5,M:PʋK!TT Ϳ5,M*P!U ,M:PK,M>*͈5/6*P!Y *P!R ͧL:P#K͸:O:P#KX'LfL:P,M*P! :PL,M*fLfLͧLX'L:PK*P!R KL:PK͸:O:P#KͿ5,M>*͈5/6*P!Y *P!R KL:QʥL:Q0ʥL,M>\:,M*P!Q !M)™L1*!M5~AҐL6AͿ5:P:=M:PIM>0:H:P:R0L,M>E:,M*P!R *P!iQ :PL>2PͿ5:PM 98:P'$=M:P>9:P:Py9Ϳ5:POy/6 3M!FMD;MAI>2)D=M:>'T'5>n:Ϳ+5>s:ͮ+++++5>/͈55>/͈55-ʞM>l:ãM>m:>b:ͮ Ϳ5yA::::::::AFORMPLAINPRINTTOM5&6###FYxM5)6"Y~ ­MͿ5>\(Y6#6)6=).Y9h^%7ʰ4Y%7ʹO(2:Y%!"_!@Y8ʻN͜%ڝ[FYo^%7jN>LY9DN*_DM*RYڝ[>2_`iXY-#͇6xŸNy^YàN6áNp4dY0"_8ʻNjY8DN:2D-pY-Oͮ"_*vY-O*_6&#x|Y ~#N###FYOCO6#6YO6#p#6OY4#6#60"_*Y"_N*_Y|ʀDX'ʤOY_+"_|cO!Y>a:9Y:_|O.,Y͈ͧ5:_YʚO=)DMͧY+äO*_!Y*ʀD;OÀD!Y;9!ZY8^%7ʍPY7 P8>͕Y8[͂+PYP!D`6Y!D4ͫ.>'YP>&:GK:YP9͋-ڝ[Y_:D>98Z7^%7dP9Z^%77P!_4 Z8uP^%Z_57PÀDZ%:ÀD>2Z(!GD;$Z2_ÀD2_*Z_:DʀD0Z:G:5DP6Z%77P!_4 Z8uP^%Z_57PÀDͷM 98:P'$=M:P>9:P:Py9Ϳ5:POy/6 3M!FMD;MAI>2)D=M:>'T'5>n:Ϳ+5>s:ͮ+++++5>/͈55>/͈55-ʞM>l:ãM>m:>b:ͮ Ϳ5yA::::::::AFORMPLAINPRINTTOM5&6###FYxM5)6"Y~ ­MͿ5>\(Y6#6)6=).Y9h^%7ʰ4Y%7ʹO(2:Y%!"_!@Y8ʻN͜%ڝ[FYo^%7jN>LY9DN*_DM*RYڝ[>2_`iXY-#͇6xŸNy^YàN6áNp4dY0"_8ʻNjY8DN:2D-pY-Oͮ"_*vY-O*_6&#x|Y ~#N###FYOCO6#6YO6#p#6OY4#6#60"_*Y"_N*_Y|ʀDX'ʤOY_+"_|cO!Y>a:9Y:_|O.,Y͈ͧ5:_YʚO=)DMͧY+äO*_!Y*ʀD;OÀD!Y;9!ZY8^%7ʍPY7 P8>͕Y8[͂+PYP!D`6Y!D4ͫ.>'YP>&:GK:YP9͋-ڝ[Y_:D>98Z7^%7dP9Z^%77P!_4 Z8uP^%Z_57PÀDB(> 2I2I> 2I!"I2I8E~I%7D98͓*HM(H"I9ÚDI%7DD9ÚDI%7DD9> 2I2I>2IÚDI%7H9͕'H>2IÚD*I|H:IH*+l6=)|;EGE xPERE>2I*I ~LH2I2I2ICƒE:I2I2I:I2I#~2I2I2I#}6~2I2I2Iͧl6"I:IG:IO!sI**"I"Im,&'2I%͂+'2It.!"I>2I2I%F2I:I'ͦ&&*I+t.#-͂+'2I>2I:I_*Il6"I|G:IG2I:IKF*I&:Iol6KF{2I2I2I=)DM!"I:I'_,:I'_,:IʏF,F yF*I#"IÕF,H*I*Ix6"I`i!I4:IrFH*"I!I"I*I"I:IF:I_*Il6|HʱG"I"IF:I2IHñG:I':IG+ڱGͧG*I#"I#G+H:I2I!I HG:I'H.*I͕HÞG:I'*I*l6=)DM9.*I͕Hͧ7*!:I=O7y!`6x6:IOH*"I*I"I:IF*I+"I|F:I'=)DM!"I:I*I}6"I*Il69.=G:IE%F:I'$:I'$>'*I1*:6DI>C:I:IOH H:I2I:IGyH==H!I"I!I"I!`6}6s6"I"I!I |H*Ix6*Ix6ÇH:IʇHÐHʐH=AHx:I"I:IʶH!I ʶH>2I!I >2I>,:WD>+:H>:H>N:H>D:H>$:H>2)DI>2)DI! ID;MAI~("x ʶ27xGF#:7ªF#*7*76 ª:7G*7"7:6ă"7 :7m#:6ĩ:8A::::::::AONASCENDINGDESCENDINGTO3>28G27*7J##3&& 07COPYRIGHT 771978 SCDP ^#V*C.W.RATLIFF27&&I 0&I*0$:AON#-͂+'2I>2I:I_*Il6"I|G:IG2I:IKF*I&:Iol6KF{2I2I2I=)DM!"I:I'_,:I'_,:IʏF,F yF*I#"IÕF,H*I*Ix6"I`i!I4:IrFH*"I!I"I*I"I:IF:I_*Il6|HʱG"I"IF:I2IHñG:I':IG+ڱGͧG*I#"I#G+H:I2I!I HG:I'H.*I͕HÞG:I'*I*l6=)DM9.*I͕Hͧ7*!:I=O7y!`6x6:IOH*"I*I"I:IF*I+"I|F:I'=)DM!"I:I*I}6"I*Il69.=G:IE%F:I'$:I'$>'*I1*:6DI>C:I:IOH H:I2I:IGyH==H!I"I!I"I!`6}6s6"I"I!I |H*Ix6*Ix6ÇH:I(͐%2uH2vH2tH87E͜%G87E:vHDpH%7D9͕'ڸG>2vHÐD:tHDfH%7D>2tH9"wH8͓*G98,D8D:uHGmH%7G>2uH98G"~H͓*G2{H8M(G"|H9ÐD:vHG͂+VE'2sH ,uE%͂+'2sHͮ 79.>'!0%!"H60:tHE*wH98͓*"wH8M(G! ~NE*H6"H8&G*H6f#6,#x660"H*wH98,IF8ÖE!"H*H~ IF ~N ͎6m,ͧ~*GX' G*uGFuG*HH !"HcG:uH3G*yHH ?G!H cG:sH'*DM9.>'*H#"H*HH *uGuGX'cGG*H":sH'*DM9.:sH'ͦ&- 9.$>'*HͿ55>#:G>$:G>N:G>:G>D:G>N:G>'>2)DG>'>2)DG!GD;MAIg}oɯO_yW{!z,"|,"|ͪ!">OFGÿ|"6 X"|"6 ?X"|"6 W_ |"q"FIELDSONTO6G!GD;M(2H2H2H2 H8^E:H»DG%7»D98͕'2HÐD:HDG%7D98"H͓*DG2 H9>2HÐD:H#EG%7#E98wG"H8͓*DG9>2H8,D8E: HwGG%7wG98wG" H8͓*DG9>2 H8,D8?E:HLG:HTG͂+'2H ,!0%*HM(\G F#s6"H*H: HO&\G N#s6" HxdG2 H!"H"H:HGF*H"H*H98"HM(\G"H*H͓*"H*H&\G*H6f&#*Hx66#6,#*Hx6"H*H98~,>F8"HE*H60#"H: HʰF*H"H* H98" HM(\G"H* H͓*"H* H&\G*H6(#x6*Hx6"H*H98~,«F8" HTF*H60>'!W&:H'*DM,*H* H: HO6!GF G:HF*H : HG*H >'ͲH.:H'*DM,-GF>'*-GF:H'$>'G>$:lG>:wG>j:lG>P:lG>N:wG>k:lG>'>2)DG>2)DG!GD;MAI:8 ʣ!y Ī:8O*7"7*8{!z̘zB"|G|!|"!"|/G}/O!>! !7>{ADDFROMONREPLACED;MAI:8 ʣ!y Ī:8O*7"7*8{!z̘zB"|G|!|"!"|/G}/O!>! !7>{ADDFROMONREPLAKx |6|6!|\6ѷg|\g6[!"* N#Fx !*SZ&̀Sͽ*ͽ"b||1G*$>*|6)*|6S6*:د26xp6x!!" G 1*!:ZF( *: z!{=_ZF( : ({2s\>ZF(: :~\gͳշ U KY׷ E~. "v( p0wSv(͏ͳVT6.gw0ͳշ > 4Y׷ .Sv(͏ͳV(T63ó~/"gG>͏ͳѷ Iͳ  %5~<w~/"Y׷ S w3w3~/"ó:á~12!7}(7j~Ö^=7á!7|(7jÖ^=7=)!.͖s#r#^=7+w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#p͈)0 70͈6#ʁʎʖֆ!c ɬu{͈!*=:{w3~12?:?x 3*d|(+"d*b~#*\+K^ R0YPSb!f4!i*}|(+"}*{~#*u+Kw R0YPS{!4!x> :h@(y>:@(y>x> )(:h@((yy2gg͌!o(:@((yy2͌!>:h@(:g!g!o >:@(:!! s1 4{MG!hnO~(˹ͼ: *`"b!"d*\[dRSd*`Bq#*\+K^ R0YPS`f!i͑G!nO~(˹ͼ: *y"{!"}*u[}RS}*yq#*u+Kw R0YPSy!͑= x!h(!qyOx:[( Gy2[!hx(!~>y(q(Wx(>yQx(>yPZ(Zy(=()!h@p#!˾v(˶! !!~( !hF! > s1 > !! {Ò*y #"~wN! ~<(.^%V&:xG!{~# ~###(N !ͯ<(w96~-| ~Yw#~<~(  !uetfneffnjfk$ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}@@COLDSTRTAUTWARMSTRTAUT1$ -PRINT-?000YY]]ccggkkoo @  @kkqq|| ARROW PRECISION PRODUCTS Banked Super Slave E ready.$ $OSSLAVE SYS37;@DJD@WOZ_ekoúý2. %YYY+CP CRPYL!"_P=)!KPx( 0< [R0<"u2wT`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1x>{s1>{s1ͻ>{vD@WOZ_ekoúý2. %YYY+CP CRPYL!"_P=)!KPx( 0< [R0<"u2wT`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{> <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}COLDSTRTAUTWARMSTRTAUT1$ \-PRINT-?000''++115599==@nnttxx׽  @99??RRXXkkqq|| ARROW PRECISION PRODUCTS Banked Super Slave E ready.$ $OSSLAVE SYS37;@DJD@WOZ_ekoúý2.@!$\c"IG:o&###v"w:x=o&M :U(G!v͘:V(G!v12 ͉ͬͬͬ"HͬͬÈ>2ͣG@ì^G>>>>O! s#r+}! }2!" ! ! *\v"^"`"b*uv"w"y"{D!xͻ:xG!|:(####+:w>!û:GM>sA{="C*?ͪ:Ki*C{Aɷ( ʁ2L( :L ͬ߯ɷyq=(J=(M=(D=(G((9=((t(s!(tʁ¯2M"{(8:Mo <2MoĻͻ>Yf { (i(:(K ͊(!{ 0 Y6U4Rͳ//(7=(: ѷ{<({2Oz(!2N:2Oz : SESG2M ͬ>@Ĭ!M6 *=| s="?{=*?6;ͪ  $n ͥ(ͧͧͥ: G:(G:_:W ͓{=*?  {=*?!K~6ͬ ͥ<(  >ͪ>2!"2P!"Q ʇO2 ͼ*[;RJ!!"E"GGZYf  ,>ͪͬ :N_:O_ >@ì!>+r+s+w"2: :K*##R>2K*[IRWi^*E|*G|i{A*C>'d  R0y 0_ S̈́~( =(=(:þSReaSWrit SNot readS error, Drive:~AOu~(DS, Track:nfS, Sector:nf^Vz( S -S (Retry,~( SIgnore,SAbort)Ϸ(22͈gO:đ:=~:<$n2*/ 0:y00A:͂ g!~(76v(0*##~#2~#2~#( OS6!~6 [ 2#~ʁO#"͈ 6Ͳ*"^!<2#"<|*<+|:~;:7~7#g# !"> C !#~ #~ #~ #~ #~ 8!޷rN#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf NF:N-ٷ~ ([ S ~w^V YV ~wͤ6 6nf NF-('&ISISS]]׽iUf>sZr^#Vz>N#F#p+q^#V#~#wa~#wb~#wc~wd́l6/͡ ͚u1t2͇~qOwy>>=>~\w0~0!8MY~2<($=(!z=!84(2N]F^B % q2s0ҷ ~4(=Oz!~4!8`q4zN]F^́8I(7>Uw#:FG!IN#F76/u1t2 ~.>###6.>͂q#p~2!8q26.>g !t.>m>ɯZN~0(!\=(!=(!=(60>́>~06.>/ɯ2~2/~1!\U!\/~1׷q1U!\w#6~#ʷ(< O ~<7ȯ~N˹q##~#fó>~w !Y~#<( = (#~w :FG!J~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P!JFl~ g!/++++'P!=N#F!=B( !A\  u!=͍ R(!V p&&>Q(N!9N#F!9B(!! # ++ c !9͍!/þͤ66S!=N#F!=B( !\  !=͍ þ!^#V#N#~#fo Pu!˾!!F#~< +++w8 !Vۯ ~<(́g>;!6!9N#F!9B(  !=N#F!=B(  ####6#KIq#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++pkb!Y~#<(=(#F!J:F~#(###= !^#V=7~#fo!N"ASDy2C # # !Aw#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut !'['R(p!%~(:#0 !#(B0!'Í!+[+R(p!&~(:$0 !$( 0!+Í4!\|>o:~W!{> " OC > S>O31! >2|N#Fx2CN#FC$#^#V^#VS#~2#~2<2###~2#^#VSN#FCC*KB0KC:( [0!' #"* (,*#"+))[R%! !!Cy͏qput+[[R8 uty7?R#|(/ sr +utwwNFqpnf^:(#~W#:G)[7?K R0!!=NFx(ENF C$7?KnfB8C[0MD!'  |:o!=!NFnfB#>,(0W}_nfRut=RDM!C7*![3*:G*!w0͘!4͘ !͙>O3F#Nů  SYS: Which .SYS file to load 0 = CPM 1 = OSLOAD ? SelectReadFile not found error: file C3>L~~ÃG3x(OxAG:>G~ > 2<:4O y~ 8 q *@~(͙8ͺ{ͣ:72:>2>2?7O> 2<> :?G /_~(!& *1::{  _ O(  :<= L{((glrZwZ:4hZ::hZ:>hZZ>2< ~ ( w:728F8 <2:y2>:7W:0*3K5B(7:8Gz?"B*3"5:7G28xG![120G!> z:(8 DZP>w(>>w~Can't recognize density of disk in$Read$Write$Seek$ error on;SSLAVBKE.GEN file to generate an "OSSLAVEE.SYS" (banked) STDSLAVE ;STANDARD NETWORKING SLAVE BNKMGR ;BANKED MEMORY MANAGER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS ;SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPOOL ;DESPOOLER > _::  >ê͈^#V#~#fo͂! ͂ȯw1w2 ! ͕08B( (M87(!.(?:(B!08!(/ M8 $kb M8 !! !Ö>(G! ~#08:030O:<(>2:G88888 0 2x=("A8Q0@O: y2 := =2^M(:.*(w#6?# (8=(,( O:(yg͈| s1r26#͕͗6#6 #!~(# (!V:w+ ^qs#r~1< ~=2N~@2O͈|(/~!N#:0O[yS͈!6fvr(@͂(~( #! v #####:w#:w#qy(#*!@6!6!"͂!@^#V+R*|:>2:D!!Fˆ>N  r :e/!ί>ͪͪ!~1 ˎ:<=_êZZ!9u5t6ͬ6ì~.ZfZ ~.ZfZ"͏͈n/f0*ͯ"u/t0u1t2͖t.Zu Z*n5f6Zf 6.63n9f:|(n3f4^1V2N/F0~.Zf}Dq/p0s1r2u3t4Zf(!͖6.2~/Zf !,!0!608h!  :ʸLO ^#V|mOnΜ΢Ҩkqr̬x̬*8B̝ȁͲAΚj`s]g̬εq̬(ȬEҬ .ά!Á~1w=~=á͈Á~1 ~@Z~(w@>á~1=w\^17G)zs#r#w͈u7t8͈u9t:Zv 9~1(Zn ,w@0ZZZZZ:w@: w=>Ý~1w[Oz<(!ͯOqn7f8|>5#N#N#Fp+q+q5#4#4#4͈~?(=~=l ͈ ~    ͈~nLfMuLtMnNfOuNtO^PVQsPrQZ*{u1t2:á͈^#V#~#͠W~͠_*  7G ;á;#w 7x2 ͈q#p#zw#{w 0 !!!!͈|<("*Ö:w[ͬì6/Z~(w0!.u1t2!ÖzMD͈͏͖ͬs1r2q/p0Ý 0 ( ( ( qá~1O! 0 ( 6~G ͘4uáN1u~1O<(<(_~ (;("*" > ͈|(m~@2! C*|( ͈*͈!͓ ("6!%͓ "͈ !w)ʷ͜>Ý!6v####;ͷ*####ͷ*|(*|0++++~@:w@)w@*|!^#V+R!""F#6#͊O(6 0(. (/(2(.0q#!6 ~<(@w)NfXJ9< >! 6)N 'Y͌>o&q5Yv(^ӷ Y_y͓<ʊY6<Yn(YYv Ͷͺ N< _yYvYnͶT-V< 79T>( G&#6->NZF\Z6\)A(Zp\N9>)Ny=rg:Oo7z#́Án@:Ow@ru@͌>_6r|!uUtVnUfV͌|!uWtXnWfXS̈́SSpooler error (Ignore, Abort)Ϸ(22͈gO:=:<Ó)3Ý)3Ý)3)3)3Ý)3)3ÝN1F2˸~/Zf @ʬ!.,!,O ^#Vz*y*Yz( !l7=́շ 7w.w37gͳշ Y׷S֯~/Zf(!1!aO ~w!. ~@Zn( Z~(Zf 6^(#͈~#?(~#<#~[~%wf(z~ƀwZf ~/ Ô ͈. #n(s1r2###v( ^>V?#utڷ^V N-qZN( ^aVbNc~ds r q w ~F^#Vz(0##~ !#~ #~ #~ #~ #~ 8!vN#Fr+sq#p#~w#~w#~ w#~ w#~ w#~ wnf NFN-ͼ۷~ ([ S ~w^V YV ~ͼwM6 6nf NF(ÊØڟ؟؟ڟ؟ڟنffړړڀkـڀnttttttt(ړ^#Vz>N#F#p+q^#V#~#wa~#wb~#wc~wd*6/͈́J Cu1t2͟0~q́Owyġ>̓͟>͟>~\w0ß~0!8MY~2<($=(!#=!84(2N]F^B % q2s0́շ ~4(=O#!ͯ~4!8`q4#͋N]F^*8I(>w#:xG!{N#F͏͈6/́u1t2͖ ~.>###6.>+q#p~2!8q26.>ḱg !t.>͟>ɯZNn~0(!=(!=(!=(60>͈*>~06.>ͥ/ɯ2~2/~1!!/~1͢ڷq1!w#6~#ͼ̷(< ÊO ~<7ȯ~N˹q##~#fo*>~w !~#<( = (#~w :xG!|~ ( ####>+~w_ n]f^u]t^((hhh8(h8((8((h@P!|F~ ̓!a|++++'!oN#F!oB( !s  !o6 |R(!V >ͥ(N!kN#F!kB(!! # ++ cͳ!k6ͬ!agM66S!oN#F!oB( ! ͳ!o6 g!^#V#N#~#fo !˾!!F#~< +++wͿ8 !V̘ޯ ~<(*>g!6Ϳ!kN#F!kB(  ͪ!oN#F!oB(  ͪ####6#K{q#p#>w#s#r#s#r#w#w#w##w######6 ##N#F+++kbͬ!~#<(=(#F!|:x~#(###= !^#V=7~#fo!"sSvy2u # # ͞!sw#w#MDq#p#q#p#MDq#p#q#pnf ^Vsrut !Y[YR(!W~(:U0 !vU(B!Y6!][]R(!X~(:V0 !vV( !]64!͈|( ͏Ý7!1!(!^#VF!"vѷ"6#z !-:w<2! +p+qMD!q#p!s#r#q#p!͏͈ 0 ͈|Ö ^#V!6s1 !v T( {M!M!"{QT˾(T~˶!!~˾!"54>͈|(* s#r!"s1*!*!9ͽ[!R(^#V#b##*|(!(~=~w!!":(!˶*"{*#"*#"!K"x!^#V!R!^#VBr+s(0##^#V+++!6! (!>Ͱ5##0Ͱ~4@##^#Vy ####*####v ~#fos#r͈v͖Ý"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['*[R>B"\s#r#͈"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+q*+F+N+V+^ s#r#*0!^#V!R*R +V+^##"~#<(= ~# ~ xD##>)))))))'d  R0y 0OuN#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#rYN˹u~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!Rog_;;| 72ͅ!$" !: !,/0!08%h!| 6ʏ6ʽֆ! O ^#V|͈ !! 6)ʷ 'p8)ʷ ͏ͳ=(>)w.!: > *+++K;BRZF(! 45(!(s1G{: 1G̀!\*>è~1(# : *+++[;R8[R8 2 : >Ý666666666'6666$$JR$$$666666$c6$$6666$$66u6666!'!88LL6666666666)56@666X6666666)6r6666666x66ǹ2*s ̀: * ̀!N*"*"$:o>p2*R0!["S,KB*:ÒKx |6|6!|\6ѷg|\g6[!"* N#Fx !*SZ&̀Sͽ*ͽ"b||1G*$>*|6)*|6S6*:د26xp6x!!" G 1*!:ZF( *: z!{=_ZF( : ({2s\>ZF(: :~\gͳշ U KY׷ E~. "v( p0wSv(͏ͳVT6.gw0ͳշ > 4Y׷ .Sv(͏ͳV(T63ó~/"gG>͏ͳѷ Iͳ  %5~<w~/"Y׷ S w3w3~/"ó:á~12!7}(7j~Ö^=7á!7|(7jÖ^=7=)!.͖s#r#^=7+w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#p͈)0 70͈6#ʁʎʖֆ!c ɬu{͈!*=:{w3~12?:?x 3*d|(+"d*b~#*\+K^ R0YPSb!f4!i*}|(+"}*{~#*u+Kw R0YPS{!4!x> :h@(y>:@(y>x> )(:h@((yy2gg͌!o(:@((yy2͌!>:h@(:g!g!o >:@(:!! s1 4{MG!hnO~(˹ͼ: *`"b!"d*\[dRSd*`Dq#*\+K^ R0YPS`f!i͑G!nO~(˹ͼ: *y"{!"}*u[}RS}*yq#*u+Kw R0YPSy!͑= x!h(!qyOx:[( Gy2[!hx(!~>y(q(Wx(>yQx(>yPZ(Zy(=()!h@p#!˾v(˶! !!~( !hF! > s1 > !! {Ò*y #"~wN! ~<(.^%V&:xG!{~# ~###(N !ͯ<(w96~-| ~Yw#~<~(  !uetfneffnjfk$ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}@@COLDSTRTAUTWARMSTRTAUT1$ -PRINT-?000YY]]ccggkkoo @  @kkqq|| ARROW PRECISION PRODUCTS Banked Super Slave E ready.$ $OSSLAVE SYS37;@DJD@WOZ_ekoúý2. %YYY+CP CRPYL!"_P=)!KPx( 0< [R0<"u2wT`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1x>{s1>{s1ͻ>{vD@WOZ_ekoúý2. %YYY+CP CRPYL!"_P=)!KPx( 0< [R0<"u2wT`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{>;CONBR = 0CF ; 19.2K BAUD RATE WITH CTS ;CONBR = 8E ; 9600 BAUD CONSOLE CTSBR = 0CE ; 9600 BAUD (1200 BAUD CTS PRINTER=67) SRHDRV = 0FF ; SEARCH SYSTEM DISK FOR COMMAND FILES COMPAT = 0F8 ; RECORD/FILE LOCKING COMPATIBILITY FLAGS ; CPMVER = 022 ; INHIBIT CB-80 RECORD LOCKING ; PRINTER ASSIGNMENTS PTRAST = 1,LSTDRA ; PRINTER A = CTS PRINTER (local) 0,LSTDRB ; PRINTER A = CENTRONICS (local) ;DSPPAT = 1,2 ; ASSIGN EACH PRINTER TO ITS OWN QUEUE ;QUEAST = 0,(0),0,(0) ; DISK DRIVE PARAMETERS ;ST419A + 0 = ; BLOCK SIZE ;ST419A + 1 = ( ) ; BLOCKS ;ST419A + 3 = ; DIR BLOCKS ;ST419A + 4 = ; SECTOR SIZE ;ST419A + 5 = ( ) ; SECTORS PER CYLINDER ;ST419A + 7 = ( ) ; TRACKS ;ST419A + 9 = ( ) ; RESERVED TRACKS ;ST419A + 0B = ; PHYSICAL INFORMATION ;ST419A + 0C = ; HEAD OFFSET ;ST419A + 0D = ; PHYSICAL DRIVE ;ST419A + 0E = ; SECTORS PER TRACK ; DISK DRIVE ASSIGNMENTS ;DSKAST = 0,DSKDRA ; A = 8 INCH FLOPPY ; 1,DSKDRA ; B = 8 INCH FLOPPY ;  2,DSKDRA ; C = 5.25 IN FLOPPY ; 3,DSKDRA ; D = 5.252 IN FLOPPY DSKAST= 0,DSKDRA ; A=8" IN 1,DSKDRA ; B=8" IN 2,DSKDRA ; C=5.25" 3,DSKDRA ; D=5.25" 0,DSKDRB ; E = IOMEGA 0 1,DSKDRB ; F = IOMEGA 1 ; DRIVE TYPE SELECTION FOR SUPER SIX FLOPPY DISK DRIVER ; IS DONE BY PATCHING TO THE DRIVE TABLE IN THE DISK DRIVER. ; EACH DRIVE HAS AN ENTRY IN THE DRIVE TABLE. ; THE BITS IN THE ENTRY ARE PROGRAMED ACCORDING TO THE FOLLOWING ; INFO: ; BITS 0-1 STEP RATE FOR DRIVE, TIMES DOUBLE FOR 5.25" DRIVES ; 0 = 3MS STEP RATE ; 1 = 6MS ; 2 = 10MS ; 3 = 15MS ; BIT 4 MINI DRIVE ; BIT 5 96 TPI DRIVE ; EXAMPLE OF PROGRAMMING ; 11 = 5.25" 48TPI DRIVE W/ 12MS STEP RATE ; 0 = 8" DRIVE W/ 3MS STEP RATE DRVTBL = 0,0,10,10 ; FIRST TWO DRIVES 8";SECOND TWO ARE 5.25" ;DRVTBL = 10,10,0,0 ;FIRST TWO DRIVES 5.25", SECOND TWO ARE 8" MEMBLL = 1903 ; INSURES A MINIMUM TPA SIZE MEMRES = 400 ; AMOUNT OF DYDNAMIC SPACE BELOW THE O.S. AUTUSR = 080 ; DEFAULT TO PRIVLEGED, USER 0 NMBUFS = 12 ; NUMBER OF BUFFERS (16) BUFSIZ = 03 ; DEFAULT BUFFER SIZE (LOG2(SIZE/128)) NMBMBS = 8 ; PRE-ALLOCATE NMBSVC*2 MESSAGE BUFFERS NMBRPS = 8 ; PRE-ALLOCATE NMBSVC*2 REPLY WAITING BUFFERS NMBSVC = 4 ; NUMBER OF "SERVER PROCESSES" (NUMBER OF SLAVES) NMBSSA = 4 ; NUMBER OF SUPER SLAVES SLAVES SUPPORTED ON FIRST DRIVER ; FOLLOWING TABLES ARE ONLY NEEDING IF YOU ARE GOING TO CHANGE ; THE DEFAULT VALUES WHICH ARE SHOWN ; SSADTA = 70,72,74,76,78,7A,7C,7E ; I/O PORT ADDRESSES FOR SUPER SLAVE ; SSADTA+8 = 80,82,84,86,88,8A,8C,8E ;SSADTA = 70,72,74,76 ; I/O PORT ADDRESSES FOR FOUR SLAVE SYSTEM SSASTA = 'AB ' ; SUPER SLAVE SYSTEM ASSIGNMENT TABLE ; (i.e LAST CHAR. OF SLAVE OPERATING SYSTEM ; FILE NAME [eg. "OSSLAVE .SYS" ; OR "OSSLAVEB.SYS"] TO LOAD FOR GIVEN SLAVE) ; 1.4 program termination patch (NON-BANKED) cintry+14f=patch patch=32,memres+10,0c3,cintry ; 1.4 coldstart.aut autoload patch (NON-BANKED) warmst+84=0,0,0 warmst+27=patch+0f patch+0f=0cd,warmst+0c6,0c3,otntry warmst-1d=patch+1d patch+1d=0cd,warmst+7b,0c3,warmst+0c6 ; 1.4 chain to program patch (ALL CONFIGURATIONS) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134  SHOWN ; SSADTA = 70,72,74,76,78,7A,7C,7E ; I/O PORT ADDRESSES FOR SUPER SLAVE ; SSADTA+8 = 80,82,84,86,88,8A,8C,8E ;SSADTA = 70,72,74,76 ; I/O PORT ADDRESSES FOR FOUR SLAVE SYSTEM SSASTA = 'AB ' ; SUPER SLAVE SYSTEM ASSIGNMENT TABLE ; (i.e LAST CHAR. OF SLAVE OPERATING SYSTEM ; FILE NAME [eg. "OSSLAVE .SYS" ; OR "OSSLAVEB.SYS"] TO LOAD FOR GIVEN SLAVE) ; 1.4 program termination patch (NON-BANKED) cintry+14f=patch patch=32,memres+10,0c3,cintry ; 1.4 coldstart.aut >o:~W!{> " OC > S>O3 ((6! "d ! l(6#V >˿![ ͐ 8w#1! >2|N#Fx2CN#FC$#^#V^#VS#~2#~2<2###~2#^#VSN#FCC*KB0KC:( [0!' #"* (,*#"+))[R%! !!Cy͏qput+[[R8 uty7?R#|(/ sr +utwwNFqpnf^:(#~W#:G)[7?K R0!!=NFx(ENF C$7?KnfB8C[0MD!'  |:o!=!NFnfB#>,(0W}_nfRut=RDM!C7*![3*:G*!w0͘!4͘ !͙>O3F#Nů  SYS: Which .SYS file to load 0 = CPM 1 = OSLOAD ? SelectReadFile not found error: file C3>L~~ÃG3x(OxAG:>G~ > 2<:4O y~ 8 q *@~(͙8ͺ{ͣ:72:>2>2?7O> 2<> :?G /_~(!& *1::{  _ O(  :<= L{((glrZwZ:4hZ::hZ:>hZZ>2< ~ ( w:728F8 <2:y2>:7W:0*3K5B(7:8Gz?"B*3"5:7G28xG![120G!> z:(8 DZP>w(>>w~Can't recognize density of disk in$Read$Write$Seek$ error on track $ sector $ side $ drive $ $~Can't recognize density of disk in$Read$Write$Seek$ error on2,...,VALN ) x;2 Where Y (Y e;G ) ;\Top of memor ;q}P9x1zi` n&?@/ _      y24y27Y 5"@~G:>G~ > 2<:4O y~ 8 q *@~(͙8ͺ{ͣ:72:>2>2?7O> 2<> :?G /_~(!& *1::{  _ O(  :<= L{((glrZwZ:4hZ::hZ:>hZZ>2< ~ ( w:728F8 <2:y2>:7W:0*3K5B(7:8Gz?"B*3"5:7G28xG![120G!> z:(8 DZP>w(>>w~Can't recognize density of disk in$Read$Write$Seek$ error on(>v ͯF7>ˮF>˶F۷ >?^n>ˮ[n6N!"ͤ(3>~` &Nͼѷ(+!~( ԿSͯ[z( B>B>7!ײN!"Y~2#˾##~2ͤ(@N:0 ~2N"#˾##0~2 :w6#b ͯ7*|>N͠(Nͯ7^ˮ8((^8( ^ˮ͋YN##FNnI#Y~ ##~++q##p*INb#~I)7p8pԿn9f:w9w:n5f6!9u5t6~[~w[u5t6u9t:=N)÷R ^#V+"5IN#####~@~#w@N1F2u1t2q1p2w@>ïNF /~͠( >~ ͯ ++++7~IG> 2)70:O!7͸!~= /> 2!70!R NN͠7> >2!7͸0)÷R ~I(0= !R^~@O(n(b=~=:<:G#y ( (/((?($O~?(O޺/O ï/~ؾ{F\<(@͐· G· A! Pܷ 8####DMm#~## ˾x880#[N( mlw`: ͳr%TF\~3 ֮[i8( *> Y?g{r%TF\'~3 ֮[i{޷(*ĸ> ?{͖?w3m~iwY~hwc~gw~ؾ7Ǯm~wi#~+w#~#~G~#O>>~Ox ##y>7?Yp##q=c~wgY~whT[*Z{~^(swgwhwi~@ %: w3("Zn(:~@(46@ +% ~ ^nˮr(}^(w@fi^hVgX=(n&1uG)MDa~g8++~h8###~i8~wg++~wh###~wim~^##Vg{怄O>G{GzGz_>m#q#p#wßͥ͝8H~8# " s1r21p~w/~w͝nfp~w1~w2~w/~w0~w~1:J[42()~1Wѷw52 }/o|/g"{ozg"{Oz(>g~1w6͟<Đop͝86ͥ8ZҸw͝Z~(t̓w͙wͦ*b8~^ˮ͕ f7 ͒e6x6zZ(¹<6x?~x?(O޺% ͯ6`ͨE( h͎!d1!l!^#VlÝ!"ѷ"6#z !-:kw<2k! +p+qMD!q#p!s#r#q#p!lp ͇bL ^#Vp!xÍs1!dv ͫ( 9{M!M!l"g{Qͫ˾(?ͫ~˶!d!d~˾!l"5T4>|(*n s#r!r"gsi1*i!d*n!9[x!xR(^#V###*g|(!l~=w!lp!"g:l(!d˶*n"i{i*b#"b*e#"e!Ke"ex!t^#V!tR!^#VBr+s(0##^#V+++p!t͍!rb޷!lp>5##͇~4##^#Vpy ####*n####v ~#fos#r"R0S!"#"!^#V!R('+V+^*##R(58*R8S"*|( ![R0 +r+s['p*[R>B"ͳs#r#"!^#V!R(U*+F+N R(+V+^K B(+V+^## DM*+p+qpp*+F+N+V+^ s#r#*͇!^#V!R*R +V+^##p"~#<(=% ~# ~ xD##>)))))))'RRdR R R0y 0ON#F#^#V+++q#p+}|##~#foN#Fr+sq#p+ _ W| }##s#rͰN˹~#a{ !=)n>f?u>t?n1f2n3f4u3t4w.w3!Rog_;;| 72!$"!: !,/0!s08%h! ʍʍֆ! O ^#V| !! 6̀Ƿ '8̀Ƿ  =(>̀w.&!:> *+++K BR&ZF(!45(!(s1G{:1G׽!\*>è~1(# :*+++[ R8[R8 2:>O~{{{{{{#{{#{{ /3x~xNV?n׽2* ׽: ?* ׽!N*"*"{:<׽B͍![!Í*SÍ!i !k!׽*>o>p2*R0!["SKB:O׽Kx Í͍!ͳ͍ѷ;ͳ;Í[!"* N#Fx !*S"ͱ׽SB*"ù||1G*>*|ʍÀ*|ʍSÍ*:د2͍͍!!"͞^ 1*!2:"͆ù̓ù!!"͞^ .*!2:"͆`̓[:=j׽O!\ ~<~̀9͍͞*"!:׽۽*""ͱ!"*![K*![2CS"*[K:*"!LZF( !: S>ZF( *: !{=_ZF( :({2s\>ZF(::~\; ӷ U% KͰԷ E~. "v( 0wͪv( V'ͫ'6.&;[w0 ӷ >% 4ͰԷ .ͪv( V'(ͫ'63 &~/"/;[G> ѷ I  % %͌~<w~/"LͰԷ ͪ w3w3'~/"> :~12!͎}(7j^=͎!͎|(7j^=͎=%)!s#r#^=͎+w#G7w#(w#s#r#i&)= +s#r#7 r#s###q#p)0 ͎6#ֆ! \!\* :Iw3~12 : x(  : iÂ*2|(+"2*0~#**+K, R0YPS0!44!7L*K|(+"K*I~#*C+KE R0YPSI!M4!PL*d|(+"d*b~#*\+K^ R0YPSb!f4!iL*}|(+"}*{~#*u+Kw R0YPS{!4!Lx(  ! 8Q>:6@(y>>:O@(y>> :h@( y >>:@(y>x(  2 Yÿ>(:6@((yy25!=L>(:O@((yy2N!VL> (:h@( (y y2g>!oL>(:@((yy2h!L>:6@(:5!p!=b>:O@(:N!p!Vb> :h@( :g !>p!ob>:@(:!hp!bs1ʹn{MG!6nO~(˹͊: *."0!"2**[2RS2*.q#**+K, R0YPS.4!7(G!OnO~(˹͊: *G"I!"K*C[KRSK*Gq#*C+KE R0YPSGM!P( G !hnO~(˹͊: *`"b!"d*\[dRSd*`q#*\+K^ R0YPS`f!i(G!nO~(˹͊: *y"{!"}*u[}RS}*yq#*u+Kw R0YPSy!(=bx!6(!O( !h(!qyOx:)( Gy2)!6x(!O( !h(!~>y(q(Wx(( (>yQx(( (>yPZ(Zy(=()!L6@p#!˾v(˶!bޯ!L!~( !L6F!bޯ> s1> !!b{*y #"~wN! ~<(.^%V&:FG!I~# ~###(N !\<(w6~| ~Yw#~<~(  !uetfneffnjfk$ DSK <-- $Invalid command$Command not found$Insufficient memory$Non-privileged user$ Program terminated due to insufficient memory $\}COLDSTRTAUTWARMSTRTAUT1$ \-PRINT-?000''++115599==@nnttxx׽  @99??RRXXkkqq|| Advanced Digital Corp. Banked Super Slave B ready.$ $OSSLAVE SYS37;@DJD@WOZ_ekoúý2.E %YYY+C C PYL!"_P=)!Kx( 0< [ 0<"C2E"`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s1F>{s1ͣ>{s1͒>{v́>{v+C CPYL!"_P=)!K x( 0< [0<"224`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'Ͳ>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s15>{s1͒>{s1 ; SSLAVBKb.PAR file to generate an "OSSLAVEB.SYS" (banked) USRSOM = 0D,0A,'Advanced Digital Corp. Banked Super Slave B ready.$' SRHDRV = 0FF ;SEARCH SYSTEM DISK FOR .COM FILES COMPAT = 0F8 ;FILE/RECORD LOCKING COMPATIBILITY FLAGS ;CPMVER = 022 ;INHIBIT CB-80 RECORD LOCKING CONBR = 0CF ;USE 19.2K BAUD TERMINAL FOR CONSOLE WITH CTS ;CONBR = 0CE ;USE 9600 BAUD TERMINAL FOR CONSOLE CTSBR = 67 ;1200 BAUD CTS PRINTER ATNCHR = 0 ;USE "BREAK" KEY FOR ATTENTION ; ; CLSSTR IS THE CLEAR SCREEN STRING THAT IS SENT TO THE ; TERMINAL TO CLEAR THE SCREEN WHEN EVER THE CLEAR SCREEN ; CHARACTER IS SENT TO THE CONSOLE DRIVER. ; MAXIMUM LENGTH IS 8 BYTES. ; LAST CHARACTER OF STRING MUST HAVE HIGH BIT SET. ;CLSSTR = 0C,1A,1B,2A+80,80,80,80,80 ;THIS IS THE DEFAULT STRING ; PRTMOD = 0 ;DEFAULT PRINT MODE = SPOOLED ; PTRAST = 00,LSTDRA ; PRINTER C = CENTRONICS ; 01,LSTDRB ; PRINTER D = SERIAL ;QUEAST+0c = 0,(0),0,(0) ; QUEUE ASSIGNMENT TABLE, LOCALLY GENERATED QUEUE ;DSPPAT+4 = 5,6 ; PRINTT5E4%( QMLSTDR@MK% h5K`e~[(q@95jA 0Z,'L:@jhJQ ɊjH 8NITe%D45(SELBNKȀe45(SSISRr! vo;VL>! CA o馐0 q  )* hI @jH)@ H( hq`8j@@Nͫ@@ V&́>{v+C CPYL!"_P=)!K x( 0< [0<"224`i($/$)$TurboDOS 1.40, Copyright 1984, Software 2000, Inc. $>s1'Ͳ>{">2!"2!"w#s#r2P!"Q!{>{>s1!>!>!"!"!" !">ͻ{s15>{s1͒>{s1PEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM START AUTOLOAD FILE NAME ; 1.4 chain to program patch (ALL CONFIGURATIONS with dspchr) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db S RESET OUR SYSTEM AND TRY INSTALLING AAINoDTTO RERY THS OPEZ7Z7???????????!*8!S*8"8You are trying to run an uninstalled WORDSTAR.Plea*(&w!84>+(&# 4^#V>((&!8:8wͩ>&(&Q4!$~(&͞>>Ely'76'77 77277#77`7g77n77'7,7]7LY GENERATED QUEUE ;DSPPAT+4 = 5,6 ; PRINTER C USES QUEUE C, PRINTER D USES QUEUE D ;QUEPTR = 5 ; COME UP ON PRINTER C ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIER C USES QUEUE C, PRINTER D USES QUEUE D ;QUEPTR = 5 ; COME UP ON PRINTER C ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSF ; SSLAVBKb.PAR file to generate an "OSSLAVEB.SYS" (banked) USRSOM = 0D,0A,'Advanced Digital Corp. Banked Super Slave B ready.$' SRHDRV = 0FF ;SEARCH SYSTEM DISK FOR .COM FILES COMPAT = 0F8 ;FILE/RECORD LOCKING COMPATIBILITY FLAGS ;CPMVER = 022 ;INHIBIT CB-80 RECORD LOCKING CONBR = 0CF ;USE 19.2K BAUD TERMINAL FOR CONSOLE WITH CTS ;CONBR = 0CE ;USE 9600 BAUD TERMINAL FOR CONSOLE CTSBR = 67 ;1200 BAUD CTS PRINTER ATNCHR = 0 ;USE "BREAK" KEY FOR ATTENTION ; ; CLSSTR IS THE CLEAR SCREEN STRING THAT IS SENT TO THE ; TERMINAL TO CLEAR THE SCREEN WHEN EVER THE CLEAR SCREEN ; CHARACTER IS SENT TO THE CONSOLE DRIVER. ; MAXIMUM LENGTH IS 8 BYTES. ; LAST CHARACTER OF STRING MUST HAVE HIGH BIT SET. ;CLSSTR = 0C,1A,1B,2A+80,80,80,80,80 ;THIS IS THE DEFAULT STRING ; PRTMOD = 0 ;DEFAULT PRINT MODE = SPOOLED ; PTRAST = 01,LSTDRA ; PRINTER C = CENTRONICS ; 01,LSTDRB ; PRINTER D = SERIAL ;QUEAST+0c = 0,(0),0,(0) ; QUEUE ASSIGNMENT TABLE, LOCALLY GENERATED QUEUE ;DSPPAT+4 = 5,6 ; PRINTER C USES QUEUE C, PRINTER D USES QUEUE D ;QUEPTR = 5 ; COME UP ON PRINTER C ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUS;SSLAVBKA.GEN file to generate an "OSSLAVEA.SYS" (banked) STDSLAVE ;STANDARD NETWORKING SLAVE BNKMGR ;BANKED MEMORY MANAGER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING ;LSTCTB ; " " " " FOR NEXT PORT-NO DUPLICATE LABELS ;LSTXON ;XON OFF DRIVER ;SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPOOL ;DESPOOLER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING ;LSTCTB ; " " " " FOR NEXT PORT-NO DUPLICATE LABELS ;LSTXON ;XON OFF DRIVER ;SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPOOL;CONBR = 0CF ; 19.2K BAUD RATE WITH CTS CONBR = 8E ; 9600 BAUD CONSOLE ;CTSBR = 0CE ; 9600 BAUD (1200 BAUD CTS PRINTER=67) SRHDRV = 0FF ; SEARCH SYSTEM DISK FOR COMMAND FILES COMPAT = 0F8 ; RECORD/FILE LOCKING COMPATIBILITY FLAGS ; CPMVER = 022 ; INHIBIT CB-80 RECORD LOCKING ; PRINTER ASSIGNMENTS PTRAST = 1,LSTDRA ; PRINTER A = CTS PRINTER (local) 0,LSTDRB ; PRINTER A = CENTRONICS (local) ;DSPPAT = 1,2 ; ASSIGN EACH PRINTER TO ITS OWN QUEUE ;QUEAST = 0,(0),0,(0) ; DISK DRIVE PARAMETERS ;ST419A + 0 = ; BLOCK SIZE ;ST419A + 1 = ( ) ; BLOCKS ;ST419A + 3 = ; DIR BLOCKS ;ST419A + 4 = ; SECTOR SIZE ;ST419A + 5 = ( ) ; SECTORS PER CYLINDER ;ST419A + 7 = ( ) ; TRACKS ;ST419A + 9 = ( ) ; RESERVED TRACKS ;ST419A + 0B = ; PHYSICAL INFORMATION ;ST419A + 0C = ; HEAD OFFSET ;ST419A + 0D = ; PHYSICAL DRIVE ;ST419A + 0E = ; SECTORS PER TRACK ; DISK DRIVE ASSIGNMENTS ;DSKAST = 0,DSKDRA ; A = 8 INCH FLOPPY ; 1,DSKDRA ; B = 8 INCH FLOPPY ;  2,DSKDRA ; C = 5.25 IN FLOPPY ; 3,DSKDRA ; D = 5.252 IN FLOPPY DSKAST= 0,DSKDRA ; A=8" IN 1,DSKDRA ; B=8" IN 2,DSKDRA ; C=5.25" 3,DSKDRA ; D=5.25" 0,DSKDRB ; E = IOMEGA 0 1,DSKDRB ; F = IOMEGA 1 ; DRIVE TYPE SELECTION FOR SUPER SIX FLOPPY DISK DRIVER ; IS DONE BY PATCHING TO THE DRIVE TABLE IN THE DISK DRIVER. ; EACH DRIVE HAS AN ENTRY IN THE DRIVE TABLE. ; THE BITS IN THE ENTRY ARE PROGRAMED ACCORDING TO THE FOLLOWING ; INFO: ; BITS 0-1 STEP RATE FOR DRIVE, TIMES DOUBLE FOR 5.25" DRIVES ; 0 = 3MS STEP RATE ; 1 = 6MS ; 2 = 10MS ; 3 = 15MS ; BIT 4 MINI DRIVE ; BIT 5 96 TPI DRIVE ; EXAMPLE OF PROGRAMMING ; 11 = 5.25" 48TPI DRIVE W/ 12MS STEP RATE ; 0 = 8" DRIVE W/ 3MS STEP RATE DRVTBL = 0,0,10,10 ; FIRST TWO DRIVES 8";SECOND TWO ARE 5.25" ;DRVTBL = 10,10,0,0 ;FIRST TWO DRIVES 5.25", SECOND TWO ARE 8" MEMBLL = 1903 ; INSURES A MINIMUM TPA SIZE MEMRES = 400 ; AMOUNT OF DYNAMIC SPACE BELOW THE O.S. AUTUSR = 080 ; DEFAULT TO PRIVLEGED, USER 0 NMBUFS = 12 ; NUMBER OF BUFFERS (16) BUFSIZ = 03 ; DEFAULT BUFFER SIZE (LOG2(SIZE/128)) NMBMBS = 8 ; PRE-ALLOCATE NMBSVC*2 MESSAGE BUFFERS NMBRPS = 8 ; PRE-ALLOCATE NMBSVC*2 REPLY WAITING BUFFERS NMBSVC = 4 ; NUMBER OF "SERVER PROCESSES" (NUMBER OF SLAVES) NMBSSA = 4 ; NUMBER OF SUPER SLAVES SLAVES SUPPORTED ON FIRST DRIVER ; FOLLOWING TABLES ARE ONLY NEEDING IF YOU ARE GOING TO CHANGE ; THE DEFAULT VALUES WHICH ARE SHOWN ; SSADTA = 70,72,74,76,78,7A,7C,7E ; I/O PORT ADDRESSES FOR SUPER SLAVE ; SSADTA+8 = 80,82,84,86,88,8A,8C,8E ;SSADTA = 70,72,74,76 ; I/O PORT ADDRESSES FOR FOUR SLAVE SYSTEM SSASTA = 'AB ' ; SUPER SLAVE SYSTEM ASSIGNMENT TABLE ; (i.e LAST CHAR. OF SLAVE OPERATING SYSTEM ; FILE NAME [eg. "OSSLAVE .SYS" ; OR "OSSLAVEB.SYS"] TO LOAD FOR GIVEN SLAVE) ; 1.4 program termination patch (NON-BANKED) cintry+14f=patch patch=32,memres+10,0c3,cintry ; 1.4 coldstart.aut autoload patch (NON-BANKED) warmst+84=0,0,0 warmst+27=patch+0f patch+0f=0cd,warmst+0c6,0c3,otntry warmst-1d=patch+1d patch+1d=0cd,warmst+7b,0c3,warmst+0c6 ; 1.4 chain to program patch (ALL CONFIGURATIONS) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134  SHOWN ; SSADTA = 70,72,74,76,78,7A,7C,7E ; I/O PORT ADDRESSES FOR SUPER SLAVE ; SSADTA+8 = 80,82,84,86,88,8A,8C,8E ;SSADTA = 70,72,74,76 ; I/O PORT ADDRESSES FOR FOUR SLAVE SYSTEM SSASTA = 'AB ' ; SUPER SLAVE SYSTEM ASSIGNMENT TABLE ; (i.e LAST CHAR. OF SLAVE OPERATING SYSTEM ; FILE NAME [eg. "OSSLAVE .SYS" ; OR "OSSLAVEB.SYS"] TO LOAD FOR GIVEN SLAVE) ; 1.4 program termination patch (NON-BANKED) cintry+14f=patch patch=32,memres+10,0c3,cintry ; 1.4 coldstart.aut FIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSPEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM START AUTOLOAD FILE NAME ; 1.4 chain to program patch (ALL CONFIGURATIONS with dspchr) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db S RESET OUR SYSTEM AND TRY INSTALLING AAINoDTTO RERY THS OPEZ7Z7???????????!*8!S*8"8You are trying to run an uninstalled WORDSTAR.Plea*(&w!84>+(&# 4^#V>((&!8:8wͩ>&(&Q4!$~(&͞>>Ely'76'77 77277#77`7g77n77'7,7]7LOCALLY GENERATED QUEUE ;DSPPAT+4 = 5,6 ; PRINTER C USES QUEUE C, PRINTER D USES QUEUE D ;QUEPTR = 5 ; COME UP ON PRINTER C ; AUTUSR = 80 ;DEFAULT = USER 0, PRIVILEGED ; ; TO USE AUTO LOGON FACILITY OF TurboDos: ; ; PUT SEMI-COLON (;) IN FRONT OF PRECEDING LINE. ; COPY "LOGON.COM" TO USER 31 AND RENAME IT ; TO "WARMSTRT.AUT". THEN CREATE A "USERID.SYS" ; FILE WITH YOUR USER ID'S AND PASSWORDS. ; IF YOU WANT A LOG OF SYSTEM ACTIVITY PUT ; THE FILE "SYSLOG.SYS" IN USER 31. ; SYSLOG.SYS CAN START OUT AS A ZERO LENGTH ; FILE CREATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTE;SSLAVBKA.GEN file to generate an "OSSLAVEA.SYS" (banked) STDSLAVE ;STANDARD NETWORKING SLAVE BNKMGR ;BANKED MEMORY MANAGER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING ;LSTCTB ; " " " " FOR NEXT PORT-NO DUPLICATE LABELS LSTXON ;XON OFF DRIVER ;SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPOOL PEND ATTRIBUTE SET. ; ;WARMFN = 0,"BATCH ","AUT" ;WARM START AUTOLOAD FILE NAME ; 1.4 chain to program patch (ALL CONFIGURATIONS with dspchr) chnfcn+3c=patch+17 patch+17=0cd,enadsp,0c3,warmst ; 1.4 C function 152 parsing of semicolons (all configurations) pfnfcn+11b=0cd,patch+6,0 patch+6=0fe,3b,0c0,33,33,37,0c3,pfnfcn+134 ; 1.4 Global files on search drive (all configurations) cmdint+192=cmdint+0db REATED UNDER WORDSTAR OR SOME OTHER EDITOR. ; SLRSEQ = "|","|" ;SLAVE RESET SEQUENCE (UP TO 5 CHARACTERS) ; ; FOLLOWING ASSIGNMENT FOR GENERATING SLAVE TO BE ; USED A A BACKROUND BATCH PROCESSOR WITH COMMANDS ; SEND TO IT VIA THE BATCH COMMAND. "BATCH.AUT" FILE ; MUST EXIST ON USER 0 OF SYSTEM DRIVE AND CONTAIN ; A SINGLE COMMAND "DO BATCH". "BATCH.AUT" IS CREATED ; WITH THE AUTOLOAD COMMAND. THE FILE "BATCH.DO" MUST ; ALSO EXIST ON USER 0 OF SYSTEM DRIVE, IT SHOULD BE A ; FIFO FILE WITH THE SUSP ;DESPOOLER BNKREQ ;NETLOD EQUIVALENT FOR BANKED SYSTEMS CPMSUP ;CP/M FUNCTION SUPPORT MODULE MPMSUP ;MP/M FUNCTION SUPPORT MODULE ;QUEMGR ;QUEUE MANAGER SSNIT ;SUPER SLAVE HARDWARE INITIALIZATION CONDR ;CONSOLE DRIVER ;SSLSTPAR ;PRINTER DRIVER FOR CENTRONICS LSTCTS ;PRINTER DRIVER FOR 9600 BAUD, CTS HANDSHAKING ;LSTCTB ; " " " " FOR NEXT PORT-NO DUPLICATE LABELS LSTXON ;XON OFF DRIVER ;SSSIO2 ;SUPER SLAVE SERIAL I/O DRIVER FOR 2 SERIAL PORTS SSSIO4 ;SUPER SLAVE SERIAL I/O DRIVER FOR 4 SERIAL PORTS SSCKTDR ;SUPER SLAVE CIRCUIT DRIVER SLVRES ;SLAVE RESET DETECTION SSRTC ;SUPER SLAVE REAL TIME CLOCK SSBNK ;SUPER SLAVE BANK SELECT DRIVER SSSOM ;SUPER SLAVE SIGN ON MESSAGE PATCH ;PATCH MODULE ; ; THE FOLLOWING FILES ARE USED FOR A LOCAL PRINTER ; THAT IS SPOOLED AND ACCESSABLE THRU THE NETWORK ; NETSVC ;NETWORK REQUEST SERVICE PROCESS ;DSPOOL GGHHIIJJKKLL