' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]LF L}BBL] X  ` 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍ᷩ췩 緍i 8 `巬 췌`x (`(8`I`B` ``>J>J>VU)?`8'x0|&HhHh VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?   1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 VDP (ED Z $0x8x D- ܸDD# H8`?E Vk *f???0xE Hh D#-EEE8` D ܸx D - ܸx8`-0ݩ?ʥD EEE`   LDcpq` [` ~  LL`0` 2 3 2` f 2 3 I` 2 2 2 2 2`IH 2 3)  3F 2 3 2 2h`HIH`LH>ȱH? CH CȱH CȱH CȱH C HH Ch3# @8 H`  > C  ͠ >3:"ENTER CHOICE- ";V dA$:A(A$)f eA$"X"ė: fA$"#"ĺA$:(4);"PR#6" iA$ nI1NUM:A$IN$(I)AI:I10000 s tI1000ĺ"";:90 u1:A3:A15ĢA12:20 v:IN$(A);":";::" "ٙu`".Q`pNФbptťܥm2<(-Py0\|e<6e<g< JJJJj귍hI  aUL@ kU8  L  Q^R(jQ0l^l\  wUuW ԧ H h@ [_ /QSIRb_L`LLLL`ª`LQLYLeLXLeLee ўQH\(h0L& Ꝥ$`( R \ZLl8 ўR HH\`\Z[YS6`LxQɿu3'RͲʎRʎ]]]ɍuL͟ɍ}RLRɍg^H8 ^hZLɍR LͲɊRR% QLܤͲ Z@ -^ ş\[Z QY\[Z8`l6Lş_Ȍb_Ͳ] )Y h( ֭ͲLɍ [LLĦ__ ^ 9 LҦ3 9 a   0LjLY u< (_9 ˭ɠuɠK_9 ?LˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`E Ls  @DAE@u`8` %@ @A@`@`@A`Mµ ) LЦ`8@AWc@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@ch8&ȑ@Hȑ@Ah@LHȑ@ȑ@ htphso`hMhL`9V8U897T6S67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmx3 ( 0 Ϡ@跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh ` ŵBѵ-` ѵB-` ܫ XI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎뵎쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭ` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"L ŵ8ŵH ~(`  d ֠z# u`  E 8@  LdST`ST`ɍ LG` `uu`čṲ̆Ҡź@LLv vNLNOLWCLZVL^LLSL`@`L/ :`wx@ ɍ8M xΥw`LY V oɍy  E `ai@L V oɍ  LJhJǠԠ˯ˠŠԠ˯ҠנؠŠŠԠŠҠנ"$W /?`H {>ƥ zyQyzz0綾ŢШL L.= ɕɓ Ʀ椽%L>% ɒ`L> XR /? `d'o ` ?`G ? < N5 Y4 1i> ?` 9 I `' ?$  ?`' ?$ < N5LL Y4 1> ? #C1F10ێC1 emC1 iO 1i D1ȱ E1 @1`lD1#1112122311!333-3331133333311433e33311033e33311333e333` 1`ʆ`LL`% ? < `  i 78d%%L/% $!$, /?  7`abc ` >r /?JJJJ0 g /? K /? <Y0 00 Xl0 B4 7O 8 6=L0i> ? 0`. ? uq H /?B /? 0`R ?L < Y4 >?//\ ?t/u /? > 0 5L;O : > > 6f, 6 +O 8 6f,O 5 > > <[ /?h,h, 9 9 h, K /? < Ly+ L <`o,;/; 9 '; ȱ (; 0,C : vvoo o 0,&oo/; :<*';=*(;/; : vL)<*';=*(;/; :` v 7 > >t * : *k (; : *^(; + 0O : 9  uq +(; */; : +*';*(;/; : )4Bq/; :`Y /?L < (;q,;';/;`q* )O 8 8` u8';<*(;=* 8o,;;* qiqLE)qiqiH{9*" !8 9*:*L9*! ȑ hz&8z9*o';<* oo(;=* :9*Lw) i v Ovoojo 9voovvܭo oJ<*';=*(;o<*o=* 9 i i,; ι(u_`ε(ЮY((( ( ɍ T< < δ( ε((( i i,; ι(u (жθ(%($(`"`"ɠ ɹ i"`"`"L( v 7t > > 6 7O 8qww:* 6 6 9 );*)7 9' O : u8( 7 ' d'( 7 ` X((( 9 <. /? 9` V /? > 0t 5L; > > ]7< n > >" ( 9' d'O : u8( ' d'(`n < 7 f /? /? > " X ( 9' d'5 C%+ : o';i$o C%o'; ooL$P ?L  /? > ` v 7t > > 7O 8R /?K /? U /?P" >`O" ^"u_"Z"`l # d /?g /?i Kg /? < #` b@d = " e /? "`)𪽈L; "ɛ)𪽈`)𪽍8`L =D .= " ! 7 V!_"LZ p ? ! L > 0L;O : 8`` v 7 > >E /? X /? F /?&;/; :P OO0OOz'O1O7O#4O<O m /? < L`  8:O,;/; :O 8 6d T /? >`O '; ȱ (;OPR L$ LH L L L L L L L޾ L޾ l6 l8 ll llſlǿlɿl˿lͿlϿտӠנΠȠٮLLL LԿӿ`ҿѿ`LſLLhhHHL9,,(`hhhHHHHH(` (`rs L L L L޾ L޾ QL޾ e L䍂L L੻^DL6荔78㩾_BޠnCuC h(`(LϠΧԠŠӭТӠԠԠ̠ˠήΧԠŠӭЮϠŠĠĮՍݩݩoݩݩxݩݩީީߩߩLލߩčݍݩݍݢ DVxy󩔅݅ B݅ͅ B| B B B} BLBB B` ⾢2DQ,D QDLA04ɷ 8ɵɤ Ѱ i+ȩi@8/eeݝAݜAL@iL@#UVdlê:xiVȿe$H 틕'39?EKQW]ciCDտ@xHeCɝeCɯ CLJCCLJCI eCȅCLJCLhͮή ўA @i@ @ @ @ @``AA /`ɝZ"АR ݶAAAL(     z#?   ɯϠҠ ̷ʠ@̷àҠ? ˠ٠ !ٮʠӭР!ӠG ̳ʠ@̴à̴ʠ@̵à̵ʠ@̶à̶ʠϠ@̠ ̮ʠ@̮à@̲à ̲ʠ@̳à 4"MASTER DISKETTE CREATED ON 48K SYSTEM"a"BY W.TOOMEY 23/11/83"y(4:"SERIAL CLIENT"234,7:8<(4);"CATALOG"F34,0 NORMALLY IS 189 DECIMAL47033,155ELAY RTS RTSEND DELAY ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME AS LAST BIT? >2 YES CASSOUT NO, TOGGLE PORT >3 ^2 $100DELAY ^3 RTS RTS END OF DELAY LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT CHAR #$FF INVERT THE RESULT RTS AND RETURN ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT 19200 BAUD. ; SENDBYTE#$FF INVERT CHAR AND SAVE IT #$07 LOOP 8 TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DEDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT RTS RTS RTS END OF DELAY ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN RTS RTS  END OF DELAY  LOOP 8 TIMES <3 READCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 TIMES ^1 CASSIN <1 GET A RISING SSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $4000  $800 ; CASSIN $C060 CA     @͠ @> `0` /@ /@ /@ /@` f /@ /@ /@ I`I /@ /@ /@)  /@ /@F /@ /@ /@ /@`HIH`LH>ȱH? 0@H 0@ȱH 0@ȱH 0@ȱH 0@ HH 0@h3# @8 H` @ @> 0@ @ >2 LAST BIT OFF CASSOUT BIT=0, LAST=1 RTS DELAY RTS RTS  <1 RTS  : SEND THE BYTE IN A ; AT 19200 VIA CASSOUT ; SENDBYTE#$FF INVERT CHAR #$07 LOOP 8 TIMES  FIRST BIT IS START (ON) CASSOUT START BIT RTS DELAY RTS RTS CHAR END OF DELAY !^1 BIT IN C, OLD IN MSB >2 THIS BIT ON RTS RTS END OF DELAY ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN RTS RTS  END OF DELAY  LOOP 8 TIMES <3 CHAR #$FF INVERT THE RESULT RTS AND RETURN ; ; ; ; SENDBYTESOUT $C020 ; CHAR $FF ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$08 LOOP 8 TIMES ^1 CASSIN <1 GET A RISING EDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT RTS [; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $300  $300 ; CASSIN $C060 CAS    CASSOUT ^4 RTS STOP BIT DELAY RTS RTS RTS RTS RTS RTS RTS RTS AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT TO ; A RWTS SERVER. YOU MUST PATCH ; THE REAL RWTS AT $B7B7 TO JSR ; MY3 ^2 $100DELAY ^3 RTS RTS END OF DELAY RTS RTS RTS RTS $100 LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT DOWN AND LOOP <1 LASTBIT STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 THE PORT (DELAY) TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DELAY RTS RTSEND DELAY RTS RTS RTS RTS $100 ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME AS LAST BIT? >2 YES CASSOUT NO, TOGGLE PORT >RTS RTS RTS $100  END OF DELAY  LOOP 8 TIMES <3 CHAR #$FF INVERT THE RESULT RTS AND RETURN ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT 19200 BAUD. ; SENDBYTE#$FF INVERT CHAR AND SAVE IT #$07 LOOP 8 EDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT RTS RTS RTS END OF DELAY RTS RTS RTS RTS $100 ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN RTS RTS RTS READCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 TIMES ^1 CASSIN <1 GET A RISING SSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $4000  $800 ; CASSIN $C060 CA   E IN THE BUFFER  <3 NULL ; !READ GETBYTE GET ID AS PER #$03 NULL ABOVE ERR1 GETBYTE GET RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN   AND RETURN ; 'NULL GETBYTE GET BACK AN ID BYTE #$03 DOS 3.3? ERR1 NOPE, GENERAL ERR GETBYTE GET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTAND  SENDBYTE  #READCMD READ WRITECMD WRITE FRMATCMD NULL NULLCMD NULL %ERR1 #DRVERR SET GENERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT BUF  (IOB),Y BUF+1 #$03 SEND DOS3.3 ID SENDBYTE #SLOT (IOB),Y SEND SLOT SENDBYTE  (IOB),Y SEND DRV SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMTO ; A RWTS SERVER. YOU MUST PATCH ; THE REAL RWTS AT $B7B7 TO JSR ; MYRWTS ; ; MYRWTS IOB IOB+1 #SLOT (IOB),Y #$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y DOWN AND LOOP <1 CHAR STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 THE PORT (DELAY) CASSOUT ^4 RTS STOP BIT DELAY RTS RTS RTS AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT NO, TOGGLE PORT >3 ^2 $100DELAY ^3 RTS RTS END OF DELAY RTS RTS RTS RTS $100 LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT DOWN AND LOOP <1 LASTBIT STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 REG #$07 LOOP 8 TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DELAY RTS RTSEND DELAY RTS RTS RTS RTS $100 ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME AS LAST BIT? >2 YES CASSOUT RTS RTS RTS $100  END OF DELAY  LOOP 8 TIMES <3 CHAR #$FF INVERT THE RESULT RTS AND RETURN ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT 19200 BAUD. ; SENDBYTE#$FF INVERT CHAR AND SAVE IT   SAVE Y EDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT RTS RTS RTS END OF DELAY RTS RTS RTS RTS $100 ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN RTS RTS RTS READCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 TIMES ^1 CASSIN <1 GET A RISING SSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $4000  $800 ; CASSIN $C060 CA     N@ HH N@h3# @8 H` @ @> N@ @ @͠ @>``0` M@ M@ M@ M@ M@ M@ M@ M@` f M@ M@ M@ M@ M@ M@ M@ ޥI`I M@ M@ M@ M@ M@ M@ M@)  M@ M@ M@ M@ M@ M@Fԥ M@ M@ M@ M@ M@ M@ M@ M@ M@`HIH`LH>ȱH? N@H N@ȱH N@ȱH N@ȱH  #$03 NULL ABOVE ERR1 GETBYTE GET RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN   ERR1 NOPE, GENERAL ERR GETBYTE GET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTE IN THE BUFFER  <3 NULL ; !READ GETBYTE GET ID AS PER MD NULL NULLCMD NULL %ERR1 #DRVERR SET GENERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT  AND RETURN ; 'NULL GETBYTE GET BACK AN ID BYTE #$03 DOS 3.3? (IOB),Y SEND SLOT SENDBYTE  (IOB),Y SEND DRV SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMAND  SENDBYTE  #READCMD READ WRITECMD WRITE FRMATCRWTS ; ; MYRWTS IOB IOB+1 #SLOT (IOB),Y #$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y BUF  (IOB),Y BUF+1 #$03 SEND DOS3.3 ID SENDBYTE #SLOT EDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT RTS RTS RTS END OF DELAY RTS RTS RTS RTS $100 ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN RTS RTS RTS READCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 TIMES ^1 CASSIN <1 GET A RISING SSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $4000  $800 ; CASSIN $C060 CA     " ";ȱH N@ HH N@h3# @8 H` @ @> N@ @ @͠ @>"X"ė: fA$"#"ĺA$:(4);"PR#6" iA$ nI1NUM:A$IN$(I)AI:I10000 s tI1000ĺ"";:90 u1:A3:A15ĢA12:20 v:IN$(A);":";::`0` M@ M@ M@ M@ M@ M@ M@ M@` f M@ M@ M@ M@ M@ M@ M@ ޥI`IH M@ M@ M@ M@ M@ M@ M@)  M@ M@ M@ M@ M@ M@Fԥ M@ M@ M@ M@ M@ M@ M@ M@ M@h`HIH`LH>ȱH? N@H N@ȱH N@ȱH N@  <4 A=00 NOERR AND RETURN   GETBYTE GET ID AS PER #$03 NULL ABOVE ERR1 GETBYTE GET RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN   GET BUFFER ^4 GETBYTE (BUF),YN ID BYTE #$03 DOS 3.3? ERR1 NOPE, GENERAL ERR GETBYTE GET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTE IN THE BUFFER  <3 NULL ; !READ WRITECMD WRITE FRMATCMD NULL NULLCMD NULL %ERR1 #DRVERR SET GENERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT  AND RETURN ; 'NULL GETBYTE GET BACK A.3 ID SENDBYTE #SLOT (IOB),Y SEND SLOT SENDBYTE  (IOB),Y SEND DRV SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMAND  SENDBYTE  #READCMD READ L RWTS AT $B7B7 TO JSR ; MYRWTS ; ; MYRWTS IOB IOB+1 #SLOT (IOB),Y #$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y BUF  (IOB),Y BUF+1 #$03 SEND DOS3THE PORT (DELAY) CASSOUT ^4 RTS STOP BIT DELAY RTS RTS RTS RTS RTS RTS RTS RTS   AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT TO ; A RWTS SERVER. YOU MUST PATCH ; THE REASSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $9B00  $800 ; CASSIN $C060 CA     " ";ȱH N@ HH N@h8(@8 H :(` @ @> N@ @ @Ƞ @>: fA$"#"ĺA$:(4);"PR#6" iA$ nI1NUM:A$IN$(I)AI:I10000 s tI1000ĺ"";:90 u1:A3:A15ĢA12:20 v:IN$(A);":";::`0` M@ M@ M@ M@ M@ M@ M@ M@` f M@ M@ M@ M@ M@ M@ M@ ޥI`IH M@ M@ M@ M@ M@ M@ M@)  M@ M@ M@ M@ M@ M@Fԥ M@ M@ M@ M@ M@ M@ M@ M@ M@h`HIH`LH>ȱH? N@H N@ȱH N@ȱH N@NULL ; !READ GETBYTE GET ID AS PER #$03 NULL ABOVE ERR1 GETBYTE GET RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN   TBYTE GET BACK AN ID BYTE #$03 DOS 3.3? ERR1 NOPE, GENERAL ERR GETBYTE GET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTE IN THE BUFFER  <3 WRITECMD WRITE FRMATCMD NULL NULLCMD NULL %ERR1 #DRVERR SET GENERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT  $FF3A   AND RETURN ; 'NULL GE.3 ID SENDBYTE #SLOT (IOB),Y SEND SLOT SENDBYTE  (IOB),Y SEND DRV SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMAND  SENDBYTE  #READCMD READ L RWTS AT $B7B7 TO JSR ; MYRWTS ; ; MYRWTS IOB IOB+1 #SLOT (IOB),Y #$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y BUF  (IOB),Y BUF+1 #$03 SEND DOS3THE PORT (DELAY) CASSOUT ^4 RTS STOP BIT DELAY RTS RTS RTS RTS RTS RTS RTS RTS   AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT TO ; A RWTS SERVER. YOU MUST PATCH ; THE REANO, TOGGLE PORT >3 ^2 $100DELAY ^3 RTS RTS END OF DELAY RTS RTS RTS RTS $100 LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT DOWN AND LOOP <1 LASTBIT STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 REG #$07 LOOP 8 TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DELAY RTS RTSEND DELAY RTS RTS RTS RTS $100 ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME AS LAST BIT? >2 YES CASSOUT RTS RTS RTS $100  END OF DELAY  LOOP 8 TIMES <3 CHAR #$FF INVERT THE RESULT RTS AND RETURN ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT 19200 BAUD. ; SENDBYTE#$FF INVERT CHAR AND SAVE IT   SAVE Y      " "; > @  Ƞ >3:"ENTER CHOICE- ";V dA$:A(A$)f eA$"X"ė: fA$"#"ĺA$:(4);"PR#6" iA$ nI1NUM:A$IN$(I)AI:I10000 s tI1000ĺ"";:90 u1:A3:A15ĢA12:20 v:IN$(A);":";::`0` / 0 /` f / 0 I` / / / / /`IHI  / 0)  0F / 0 / /h`HI H`LH>ȱH? @H @ȱH @ȱH @ȱH @ HH @h8(@8 H :(` T RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN  00 NOERR AND RETURN  ET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTE IN THE BUFFER  <3 NULL ; !READ GETBYTE GET ID AS PER #$03 NULL ABOVE ERR1 GETBYTE GEERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT  $FF3A   AND RETURN ; 'NULL GETBYTE GET BACK AN ID BYTE #$03 DOS 3.3? ERR1 NOPE, GENERAL ERR GETBYTE G SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMAND  SENDBYTE  #READCMD READ WRITECMD WRITE FRMATCMD NULL NULLCMD NULL %ERR1 #DRVERR SET GEN#$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y BUF  (IOB),Y BUF+1 #$03 SEND DOS3.3 ID SENDBYTE #SLOT (IOB),Y SEND SLOT SENDBYTE  (IOB),Y SEND DRVELAY DELAY72 RTS RTS   AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT TO ; A RWTS SERVER. YOU MUST PATCH ; THE REAL RWTS AT $B7B7 TO JSR ; MYRWTS ; ; MYRWTS IOB IOB+1 #SLOT (IOB),Y E PORT >3 ^2 $100DELAY ^3 DELAY72 $100 LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT DOWN AND LOOP <1 LASTBIT STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 THE PORT (DELAY) CASSOUT ^4 RTS STOP BIT DAR AND SAVE IT   SAVE Y REG #$07 LOOP 8 TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DELAY DELAY72 $100 ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME AS LAST BIT? >2 YES CASSOUT NO, TOGGLR #$FF INVERT THE RESULT RTS AND RETURN ; DELAY72 RTS A 72 CYCLE DELAY RTS INCLUDING THE JSR/RTS RTS TO THIS ROUTINE RTS RTS  ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT 19200 BAUD. ; SENDBYTE#$FF INVERT CHEDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT DELAY72 RTS $100 ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN DELAY72 $100  END OF DELAY  LOOP 8 TIMES <3 CHAREADCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 TIMES ^1 CASSIN <1 GET A RISING > @  Ƞ >>3:"ENTER CHOICE- ";V dA$:A(A$)f eA$"X"ė: fA$"#"ĺA$:(4);"PR#6" iA$ nI1NUM:A$IN$(I)AI:I10000 s tI1000ĺ"";:90 u1:A3:A15ĢA12:20 v:IN$(A);":";::`0` / 0 /` f / 0 I` / / / / /`IH / 0)  0F / 0 / /h`HIH`LH>ȱH? @H @ȱH @ȱH @ȱH @ HH @h8(@8 H :(`   GET RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN  GET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTE IN THE BUFFER  <3 NULL ; !READ GETBYTE GET ID AS PER #$03 NULL ABOVE ERR1 GETBYTEGENERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT  $FF3A   AND RETURN ; 'NULL GETBYTE GET BACK AN ID BYTE #$03 DOS 3.3? ERR1 NOPE, GENERAL ERR GETBYTE SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMAND  SENDBYTE  #READCMD READ #WRITECMD WRITE #FRMATCMD NULL #NULLCMD NULL %ERR1 #DRVERR SET #$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y BUF  (IOB),Y BUF+1 #$03 SEND DOS3.3 ID SENDBYTE #SLOT (IOB),Y SEND SLOT SENDBYTE  (IOB),Y SEND DRVELAY DELAY72 RTS RTS   AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT TO ; A RWTS SERVER. YOU MUST PATCH ; THE REAL RWTS AT $B7B7 TO JSR ; MYRWTS ; ; MYRWTS IOB IOB+1 #SLOT (IOB),Y E PORT >3 ^2 $100DELAY ^3 DELAY72 $100 LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT DOWN AND LOOP <1 LASTBIT STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 THE PORT (DELAY) CASSOUT ^4 RTS STOP BIT DAR AND SAVE IT   SAVE Y REG #$07 LOOP 8 TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DELAY DELAY72 $100 ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME AS LAST BIT? >2 YES CASSOUT NO, TOGGLR #$FF INVERT THE RESULT RTS AND RETURN ; DELAY72 RTS A 72 CYCLE DELAY RTS INCLUDING THE JSR/RTS RTS TO THIS ROUTINE RTS RTS  ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT 19200 BAUD. ; SENDBYTE#$FF INVERT CHEDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT DELAY72 RTS $100 ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN DELAY72 $100  END OF DELAY  LOOP 8 TIMES <3 CHAREADCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 TIMES ^1 CASSIN <1 GET A RISING SSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $9B00  $800 ; CASSIN $C060 CAL ABOVE ERR1 GETBYTE GET RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN  AOPE, GENERAL ERR GETBYTE GET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTE IN THE BUFFER  <3 NULL ; !READ GETBYTE GET ID AS PER #$03 NUL #NULLCMD NULL %ERR1 #DRVERR SET GENERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT  AND RETURN ; 'NULL GETBYTE GET BACK AN ID BYTE #$03 DOS 3.3? ERR1 NND SLOT SENDBYTE  (IOB),Y SEND DRV SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMAND  SENDBYTE  #READCMD READ #WRITECMD WRITE #FRMATCMD NULL YRWTS IOB IOB+1 #SLOT (IOB),Y #$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y BUF  (IOB),Y BUF+1 #$03 SEND DOS3.3 ID SENDBYTE #SLOT (IOB),Y SEDELAY) CASSOUT ^4 RTS STOP BIT DELAY DELAY72 RTS RTS   AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT TO ; A RWTS SERVER. YOU MUST PATCH ; THE REAL RWTS AT $B7B7 TO JSR ; MYRWTS ; ; MS LAST BIT? >2 YES CASSOUT NO, TOGGLE PORT >3 ^2 $100DELAY ^3 DELAY72 $100 LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT DOWN AND LOOP <1 LASTBIT STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 THE PORT (19200 BAUD. ; SENDBYTE#$FF INVERT CHAR AND SAVE IT   SAVE Y REG #$07 LOOP 8 TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DELAY DELAY72 $100 ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME A END OF DELAY  LOOP 8 TIMES <3 CHAR #$FF INVERT THE RESULT RTS AND RETURN ; DELAY72 RTS A 72 CYCLE DELAY RTS INCLUDING THE JSR/RTS RTS TO THIS ROUTINE RTS RTS  ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT TIMES ^1 CASSIN <1 GET A RISING EDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT DELAY72 RTS $100 ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN DELAY72 $100 READCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "JUMP MYRWTS ALWAYS AT $9B00 ; ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 SSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $9B00  $800 ; CASSIN $C060 CA     " ";> C  ͠ >0L`0` 2 3 2` f 2 3 I` 2 2 2 2 2`IH 2 3)  3F 2 3 2 2h`HIH`LH>ȱH? CH CȱH CȱH CȱH C HH Ch3# @8 H`   L ABOVE ERR1 GETBYTE GET RESULT #$00 BAD RESULT ERR2 YES #$00 OK, GET BUFFER ^4 GETBYTE (BUF),Y  <4 A=00 NOERR AND RETURN  AOPE, GENERAL ERR GETBYTE GET RESULT #$00 AN ERROR? ERR2 YES, SAVE IT NOERR NO ERROR, RETURN ; WRITE #$00 "^3 (BUF),Y SEND EACH BYTE SENDBYTE IN THE BUFFER  <3 NULL ; !READ GETBYTE GET ID AS PER #$03 NUL #NULLCMD NULL %ERR1 #DRVERR SET GENERIC ERROR ERR2 AND CARRY FLAG >2 "NOERR NO ERROR IF THRU HERE ^2 #ERROR (IOB),Y SAVE RESULT  AND RETURN ; 'NULL GETBYTE GET BACK AN ID BYTE #$03 DOS 3.3? ERR1 NND SLOT SENDBYTE  (IOB),Y SEND DRV SENDBYTE   (IOB),Y SEND TRACK SENDBYTE  (IOB),Y SEND SECTOR SENDBYTE #CMD (IOB),Y SEND COMMAND  SENDBYTE  #READCMD READ #WRITECMD WRITE #FRMATCMD NULL YRWTS IOB IOB+1 #SLOT (IOB),Y #$60 SLOT 6? >1 NO, WE HANDLE IT RWTS2 ELSE USE REAL ONE ; (^1 #BUFLO SET UP THE BUFFER PTR (IOB),Y BUF  (IOB),Y BUF+1 #$03 SEND DOS3.3 ID SENDBYTE #SLOT (IOB),Y SEDELAY) CASSOUT ^4 RTS STOP BIT DELAY DELAY72 RTS RTS   AND RETURN ; ; "; MYRWTS: USES SERIAL ROUTINES TO !; PROVIDE A 19200 BAUD CLIENT TO ; A RWTS SERVER. YOU MUST PATCH ; THE REAL RWTS AT $B7B7 TO JSR ; MYRWTS ; ; MS LAST BIT? >2 YES CASSOUT NO, TOGGLE PORT >3 ^2 $100DELAY ^3 DELAY72 $100 LASTBITSAVE THE BIT CHAR SHIFT NEXT BIT DOWN AND LOOP <1 LASTBIT STOP BIT IS 0 >4 SO WE MAY HAVE TO TOGGLE $100 THE PORT (19200 BAUD. ; SENDBYTE#$FF INVERT CHAR AND SAVE IT   SAVE Y REG #$07 LOOP 8 TIMES #$01 START BIT IS 1 LASTBIT CASSOUT START BIT RTS DELAY DELAY72 $100 ^1 CHAR GET NEXT BIT #$01 GOT IT LASTBIT SAME A END OF DELAY  LOOP 8 TIMES <3 CHAR #$FF INVERT THE RESULT RTS AND RETURN ; DELAY72 RTS A 72 CYCLE DELAY RTS INCLUDING THE JSR/RTS RTS TO THIS ROUTINE RTS RTS  ; ; ; SENDBYTE: SEND BYTE IN A OUT ; CASSIN AT TIMES ^1 CASSIN <1 GET A RISING EDGE ^2 CASSIN <2 IT'S THE START BIT RTS DELAY A LOT DELAY72 RTS $100 ^3 CASSIN GET A BIT  SHIFT INTO CARRY CHAR AND INTO CHAR RTS DELAY AGAIN DELAY72 $100 READCMD $01 WRITECMD $02 FRMATCMD $04 ; PROTERR $10 VOLERR $20 DRVERR $40 READERR $80 ; ; "JUMP MYRWTS ALWAYS AT $9B00 ; ; ; "; GETBYTE: GET AN 8 BIT BYTE FROM #; THE CASSETTE PORT AT 19200 BAUD. ; GETBYTE #$07 LOOP 8 SSOUT $C020 ; !RWTS2 $BD04 2ND ENTRY POINT ; BUF $3E IOB $48 LASTBIT $FE CHAR $FF ; ; CONSTANTS ; SLOT $01 DISK $02 TRK $04 SCT $05 BUFLO $08 CMD $0C ERROR $0D ; NULLCMD $00  ; SERIAL ROUTINES ; "; WE ASSUME THAT WE ARE USING THE ; CASSETTE INTERFACE AT 19200. ; THE INPUT IS CONNECTED TO THE ; OTHER MACHINE'S RS232 PORT BY ; A DIODE ON PIN 2: ; ; CASSIN ----<[---- PIN 2 ; ;  $9B00  $800 ; CASSIN $C060 CA     8` $L   . ` $L5 e2ILeD s8 8咅 sL`LȄ` 7 L  T LL  L HH  bȥhhLTȱ;  $    ƆƤ$( 5Ƀз`Ӯ sLe@ s   iɺi襒  `&*͝撈`PI` Pyy` P8`    Lɠ ɍ `HH  hh`H@ LP Lh`HhL 0 s`U s sL `b s# s"% s! s L"z $0    `  脊 seHehLhihiHHL ɍɠ   L3膥L,hihi sȱ6_2`?2`hh  Șel $0 L`   V9  ɠ ŧ  򩬅ݱe拥HH#L ΠĠL I sʎi`SLjLr $`   L ȥee`hh脊$0 L sȊ`hhȍ ɠɩ膥`ź , L  TLhh s eil L  T    $0 `M ` ƠL bȥ`LL ~ sDž89 ` `HH hh`hhƤ" G gɩȱLȹVɿ L7  L7lʮұ  s ɍ  `n o sɍ`L s s sƗʱ` ɜɤɰ3ɺɺ)8͝!HH hheL$ 8唅啅`ei ,0LRL s L{   L ` ̢L LL  啅`&& ee楖`&&&8咪哐攈`șȄ``Ȉ`Ȋ`Ȉ ` Ȋ `HL h LH h 捥L ` LTȱɭƤ%H  h%L"ō88ȱ``  ɍ ɠ    ɨ  ɠ$Ʀ$H h$LoԠŠԠĠΩ`8农`Ɯ 8唅ɺ oiȹxɿ Lɾɼ L  L8  iL ŠŠŠΠٯΩſ̤Hɍ Œ  h`i`Hȱhȱ0e择l$0   ɠLo٠``ŮL ` `` L L   xiW  ɺ h  ۠éЮӠH h` # 3مv$0    LF $0 LF /Ě%   ȾȄ V   Lo ` f ȹɠɍ $0`$0 $0 g L ``L lii`#`\  # H h   LF  $ 0  ȹ  ȹ   L\   ?qH  h  oL ŠҺӺ͠ϠƭάŭԠ̠Ϡ XL   `Ƞ =L 0 JFL JL FJ| f } g 膈Ąp008倅,0$Ƃ`Ƅ `i i w it ةL  I L ````                         L( A  d hL'   /   7L0( AL>( O     S`'   ? ͠Ԡ x S   ϠԠ  S    Š  S   Š  S   ? x  '  x   ?   '   7L'    O  /  . L&`&        #    /  f    7Lx' /  .L'    7L' /  .  /    .   L' O  LA'`%'   U   /   /  g  /  N 7  d    ]  -   f  -   o  9   x  -     -     9    -   `%   F   . ] B F  T F`&        7L&  /  .L' /                 '     0     9     B     K    T`$ 9  7L%  d h   9    ,L% ! " ! ! " " '"  Ӡή U P`x%  9 . X `%ӨҠ   S  Ӡή U P`(#   .        ,#`/$  .  F  .  .  .    . 3$`\$   f  `$`$                                   `8"   N 7L.$  d h        7L# ΠL$    7L# !L$    7L# !L$ "  7L$   7L# κL# ź ˠ   S Š`! ˠɯϠ` " Š`#"                                                           7L@!    7L&! d d hL=!   ~ ]   ]LC! ~   7L O A`  U    7L!   L!    7L!   L!  d h O  7L_!`X! ŭĠ`! ŠԠ`! ք֭ͲLɍ `` w F w  w   `  `; ? `F     7Ly d d h P`Q   f /  .`z   U    7L    7L d d hL      ]   ]LC!       # , 5 > G P Y b k t }    \[Z QY\[Z8`l6 _Ȍb_Ͳ] ) (        % - 5 = E M U ] e m u }               h`l s0LLL 0`-8`; U ] e m u }               ֜LL LL LL s<= s `( s sȊ`? jI*LqZ ȹLi L~ LHmhm`ی     sH( LhihiHHʈL L& sL09`I`cL|LBLX LL s sY)8jE*` LL LL 1 sL L L2L2!L,`<`I`WL {L  sL `L L s$` s%L"` s bȥ` LT 7  bL Pi`" LR biȥi bL]  L ^ L  L1 syy8 jYYE0`8LB  L  L78   7L&8    L78     Lu7`%7     7L8     ?8            N 7L8 ]   ]LS8 L9     7L8    L9      7L8       ?8  f    f   f  `$`6       7Lj7      ` 6 $        7L:8 3    7L7     7L7    L7 6 6     #    f      7L8    J ſ     J `5            N 7Lo6  L<6    7L6 L6    `06   ? ϠՠԠǠٯΩ \!  `6 `   7L6 x L6 h p`6  . &   0 F o K F % |% )`4  7LN5 4  7LK5 j) 7LK5 4LT5 O 4`&5   *5`U5   *5`g5   *5`y5 `   ,L5 3 Y5 k5 }5`5<ܩĿ`5 `   7L5 )  *`5  p   h 0 3 3  *    1  7L4 2 h   7L4 o   7 7L4 m0  * 3 ;0 0  * 3 L4 L4  * 3 0  * 3  7L54 / 3 )`3  #    f    N`4  . & h  . p  p h p  7L2`2 & &   0 F x  .   . o K F      . % |% '    ]   7  `3       `$`3 i 7 3  Z    N  ``3 ` 7L3  `3 j) 7L4 3     8      0      7L=2 LB2    @  1  . - .  ]   F   . % |%`1   x x p  7 7L2 \/   0 8 x  `$ 0  p  . 8  p    . x    x p     .   .   .   F   .   .   F x  F h  F  ,#  F    7  h`0 ,  7L2       `$  ' .      . % 9    7L1 |% ]  7  X  z  ]      /  . L0 F   p`/ x  o   7 o  `$   h`70 \/ 0    . 8    . /`i0 m  i* hl 芑    ɛ``0 x  0 (  0  . @  1  . - H 7 7LL/   8  LQ/  7L.`. 8     8    ] - H 7 N g 7L\/ 8   7L/ .L/ .  7L\/`X/   X   `$    7  X     7 `- H  7 8 - @   N ] F`-     ˠ        . % |% L\. Ӡή U P`%. 0  ( 0 @     7L. ).LQ/    7L.   @ O L.  P  7L.   @ O  % @, 9    7Lq- |%   J   w '   N    7L`- ӠLk-  "+Lv-  7L,`,  ]  7L-     L-L- O ]   `}- 0 P 2  7L- L-   8     HL(,   J Ġ L5, &   7L"+`+     P 2  7L, i 7 3  7L,    d d h ӠĠ   Ӡή  P`<, &  K F   .   .      . /   /  . L*L+ `*   ? ҾϠ٬̭þҾϠ̬  ٠ӿ w   J w    7L+     L5, w    7L+  7L+   . % |%   . % |%  L5, * 7     N  `)  7L*   J Ԡ 7LN* LX*  ˬӠΠ U O   J L* O`* w     ]   N 7L+     w /     7L* O  L*    w  ?   '     ?   '  `E(   Ԡ h S Š p S`8)    /  J Lw)   Š   w  7L)  ٯΠ  \!L) `f)      w   `) x  !!! ! ! ! ! !!!  7L1F`FԠԠ  D `1E MB   ` C 5E      7LQF OL7F     7LqF O B CLF    7LF O ALF    7LF O  DLF    7LF O  DLF           N 7LF  `  7LE O     7L*E O   ``D  D   D ٠  D Š  D ˠ  D ˠ  D ٠  D ٠  D ŠǠ  D Ŭî   ;    /    ? / S LD   ?    ? ԠΠĠӠ   ? ԠԠ h S    Š p S`C     ? `  7LD LD `D `   0 /    /  . LB  (   `IB ŠҠé̠ԠŬî Π٠̠`4C  (         ŠҠΠ    é̠Ԡ H .  L`A  `   ,LHB 1: ; < 3< O< = > ? A A`B    ӱ  $ <" %   .    7LB           h  x        p         Z   L@   .   .   F   . 3$   .   .   . 3$     7LqA O LA   7LA 4LA   B  .   . 3$`?   ? h  '  h   ? p  '  p`A  6  Ӡ  ź  u  /     L@   נŠ        7LA & h  . p  . &   0 F o K F      . X  |% '   N      /    u  /  . 3    / < L ? L>       `$  4   2  7L[? L`?      8  /  . Lh?       `$`>  ŠǠ <) h p     `$   Šˠנ$ f 4     .  8=    / < L+> 3 3  * <  8=    / < L]>      / * 3 / 8= $   $  / < L> L~>  Lq>`=  ٠ I( =    / * / 8= / 7L> 3 .   .    .        ,#`<    7LU=   L`=  x   .    .  . ]  F`4= )    7L=   ? ԠӬӠή U O`=  ٠ I( =  * x  ٠ I( ;`; ; Š <) ;`< ; ˠ <) ;`/< ; ˠ <) ;`K<     `i<  .        m< /    . 3$   7   ] F L<   `~<     .   L:   S   Ӡ  f 4       S   Ӡ   Ӡή U O`-:   '     L;`;    ;   ;   ? `; 9      7L;`; ; ?  7L: ŮL,: ϠӠ`9   (       <) h  . p  . ] B F   . % |% h p $     8  f /  7       7L:        L: O L9   O O `;8  (    5       46 7L9    6 5 )7 7L9 )'     ?8 7L9 5L\9L9      7L9    /   /  . L9 5 5      /   L9   " L;HJ݌h Hhꝍ݌`JL           EEHJ݌h       `8`9 ******eiPA V f i > 80ˆ<=>?ŠǠ٠ΠōбҠōŠƫҠԍӍвȍ ELLL4M L L`LL  !"#$%&'()*+,-./0123456789:;!!!""" " " " " """""""""                ``'`حJJJJLԩLLhhߚHH`Hh`5()$ $ \ŭ^ɭ] !TED"*!(ERR2A$"VOLUME MISMATCH ERROR"F!((ERR4A$"DRIVE ERROR"a!2(ERR8A$"READ ERROR"v!<(12:450:(7):DRIVE ERROR"!2(ERR8A$"READ ERROR"!<(12:450:(7):E3)101809 'A$(13)A$(((40)(41)256(36))128)D 'A$;:U ' DISK ERROR '20:1:ERR(222):ERR15ERR254Ĺ216,0:822: 'ERR254ĺ"TYPE AGAIN PLEASE:":: (ERR255ij (ERR0A$"INITIALIZATION ERROR"!(ERR1A$"WRITE PROTECA$"Y"İ380K'11:1:958:A$"INSERT DISKS IN PROPER DRIVES.":470:1000h' GET SLOT AND DRIVE NO.'A$;:11)"SLOT=>"S24)"DRIVE=>"D2;'17:B$"7":10180:S2(A$)'29:B$"2":10180:D2(A$):' GET A KEY 'A$:(A$"1"A$B$)A$(1SK COPY":440::A$"---------":440:Yj'5::A$"ORIGINAL":S26:D21:10140:S1S2:D1D2t'::D2(D21)1:A$"DUPLICATE":10140~'LT35:11:1:"40 TRACK DISK? N"(8);:A$:A$:A$"Y"LT40 'A$"FORMAT BACK UP FIRST? N"(8):13:1:A$;:A$:A$:' CONFIGURATION TIME+' BLOAD RWTS HEREH$'(768)(769)50710060kB':(4)"BLOAD DCOPY.OBJ,A$300"L'TKSTVLCDDVSO:RD1:WR2:INIT4:10220V'IO768:SLT779:DRV780:VOL781:TRK782:SCT783:BUF787:CMD790:OVL792%`':DOS16:MB151:A$"DIT:862,LS7lCMD,CD:TRK,TK:SCT,ST:430:863:1002:H THE COPIERX1:1:868e2:868TK0:ST15:LS15:CDWR:FAST1775,96490:610490:610:(TRK)LT1050TK(TRK):ST(SCT):102020:"COPY DONE" END:CDRDĢ11:1:958:A$"INSERT SOURCE DISK.":SOS1:DVD1:510t11:1:958:A$"INSERT TARGET DISK.":SOS2:DVD2D1D2S1S2İ4701:1:39);::A$"READING":CDWRA$"WRITING"450::80X R/W A RANGE QUICKLY b0:0:860,MB:861,L958:" PRINT TRACK & SECTORF3:10:"TRACK $ SECTOR $":[ CENTRE MESSAGEr21(A$)2:A$;: PTINT MESSAGE AND WAIT450:::A$"PRESS ANY KEY TO CONTINUE":450:16384,128:16368,0: TOGGLE READ/WRITE>CD(CD1)1RMAT DISK|LT35390@44275,160:46063,40:48894,40:400c44725,140:46063,35:48894,35::"INSERT BLANK DISK IN SLOT ";S2;", DRIVE ";D2;:" ";A$VL254:CMD,INIT:DVD2:SOS280:16:958:A$"FORMATTING"::450::IO:VL0:16:1:y  DISK COPY( BASED ON= SUPER IOB v1.5Q BY RAY DARRAHW](2 SET HIMEM BELOW BUFFER AND SET LOMEM ABOVE THE BLOADED RWTS<8448:9983:10010F INITIAL IOB SETUPPBUF,39:DRV,DV:VOL,VL:SLT,SO16: r FO֡ N1|L9Rw:a3$/dS|:sD< v6`}s߸gQk A.a*81lqePHmLmįaIC8Mps(q8&R<]#l[7P$1T /?"$X /?` 8_ 8   9`! 6"# X/ ?#% $ b b. /?  !001 /?2 /? :lmd/\ a f  V?. L\\ a f    w ;:ʊ) 7 8:O,;/; :8O9O` < C C ɛ `L C`4 <oo 4` bL < v v: b Lv /? * +i,/E0! $&% $* /?L% $) /? (!L% $$ /?% $+ /?  <Ɉɕ"ɛ2ɍ0RRYܽZRRLR 睍݌ L睍݌ Hh睍݌ Hh睍݌P 睍݌ ꩖݌ ޝ݌ ꩪ݌ 띍݌ ݌`LI$;2;JJJJ`abdexclm+; z;hhi /?V /? I /?J = 9`)𪽈)𪽈`@`    .= D-݌ Hh݌ ՝݌Hh ݌Hh ݌ ݌Hh睍݌ꝍ݌Hh 睍݌HhŅg = .=g = .= =ɛLyyppyL 3 3HHpbhh ' L 枥x֤p 3 L7 h憈 .=Ņ戥oL(L )𪽈)𪽈a M`p8H槩"# <  " }:g =p 3y0cc pL E 줍楇******8eiP yé0cL5****e枥xLɛLi憈 .=懥o ŅLf)𪽈E) Ŋ " :Ƈmi8凅Ŋ Ƥ, ٍa`b8`` 3O E +% ****eE 枥x`8`{faoiheg = ={ .= P ɰfŊ ƅg = .=Ŋ `HhHh݌`)𪽌꽌Hhk`8`꽌ɪŨ*%EзЮ꽌ɪФHh Hh꽌 `e꽌ɪ򤩽ɭYƁYm ꘠VYT륗YTmꪽT `Hh`zy݌L ݌HhHhz݌   Hh