' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]L L}BBL] 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩 緍i 8 `巬 췌`x (`(8`I`B` `44`>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,&"_]` L/浍굺L  !"#$%&'()*+,-./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#0EB 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`   vLDcpq` [` ~  LӜ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 iõ`  \ 濭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[dmx-#(# @4͠٠ˠ@跻~!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䵍䵐`"L ŵ8ŵH ~(`  d ֠4z# 4u`:"DONE":+ $47445,212(TK2(TK2)):L,SPY'S ADVENTURE347426,24:IGNORE ERRORSZTK0:LT1:ST15:LS15:CDWR:FAST1w490:T1TK:LTTK1:1060610:(BUF)MBLT35LTLT1:TKTK1:1060:1025230:TKT1:LT35:490:610:(TRK)LT1050TK(TRK):ST(SCT):1020  SWAP CONTROLLER FOR MDIIEHTK3:LT35:ST15:LS15:CDWR:FAST1[360:490:610~360:490:610:(TRK)LT1050TK(TRK):ST(SCT):1020:"COPYDONE":'(4)"BLOAD RWTS.MD,A$1900" :LT1:ST15:LS15:CDWR:FAST17 847413,255:490:610Z B230:490:610:(TRK)LT1300x VTK(TRK):ST(SCT):1080 :"COPYDONE": 213,170,173,213,170,150BLACK MAGIC CONTROLLERJTK1:LT17:ST15:LS15:CDWR:FAST1:MK0Ph190:210:490:610230:490:610:(TRK)LT1050TK(TRK):ST(SCT):1020MK0MK1:10601070$TK18:LT35:ST15:LS15:CDWR:FAST1:1020 .TK0 0:TKTK1:BF0TKLT1070+ BTKLT1020A L:A$"ALL DONE":n 213,170,150,213,170,173,228,170,228,1702 228, 170o+J & S SOFTWARE APPLE GRADE BOOK V2.6MTK3:LT35:CDWR:MB151:550rST0:T1TK:490::190:210:170430:100:STST1:ST161030BF1060ST0:TKTK1:TKLT1030$230:TKT1:ST0:490.430:100:STST1:ST161070 8ST ŠÍàëàԫ؍ŠÍӍҠƠ®ύŮРؠƍ٠ŠōŮΠؠ٠ƍŠؠë٠ԫؠ٠àٍԠưٍٍ ōؠōӠҠɍōŮ͍ӠҍӍҠРҍҠҠōҠ̍РҍŮ͠ӠƍӠóӠŠЍųÍŮͫŠōҠҍҠ͍Ҡ͍Ҡҍ͍ŮͫؠōͫŮͫӳҍƍҠ͍РѠűРѠŲРѠųŠҍűӠÍŲӠàҠҠŠŠԧӠǍ٠ӱϩٍҬٍٍ̠ӱٍӲҫٍƫٍٍ٠ҍàӲղҍӠӠčӠӠҠӠӠӠĸΠҠ͍ԍҠ̠Š Ӡō٠ЍɍҠӍЍӍ ӠӠӠӠˍӠҍҍư͠ѠĶҠѠĶÍ̠Ѡķ͠ѠōҠѠűҠѠŷ̠ѠčŠѠҠѠƵ̠ެԠҍР΍Ӡ󮍪ͮͮҠƠӍ͠ѠԠѠҠѠϠѠҠѠ±ŠѠðƠѠӠѠŰɠѠ     ؠЫ٠ӍàҍҍҫàҫҠՍαÍàЍЍàαàЫαЍЍӍàЩٍٍЩٍЍٍЫӫàЩٍЫÍЩٍ؍ٍЩٍҫؠҍРīѠαӠααٍٍЩٍÍ̠РȍѠδθҠιѠηιЩٍɠαٍЩٍ̠αٍιЩٍѠαٍɠγٍЩٍ٠̍ààЍЍàζàЫζؠЫηؠύŠθ؍ٍЩٍЍٍЩٍàȍȍٍЩٍàύύЍ̠γγȍؠύδؠīŠεРčŠεӍεЍؠЫ٠Щٍؠ«ЍؠЫαؠ«ŠβРѠββҠιѠαβȍؠύƠРōӠԢРŠԠ٩ӠūūˠΠĠ٠ϩҠ±ĠӠ΍ƠӠΠҠǍԠԠԠƠԠɯϠҢԠŠŠҢԠŠĢŠǠΠ΍ŠȍӠƢŠҍƠΠϠӠӠȺӠӠͺӠӠҠӍǠӠԠŠԠĢԠӠؠҢԠŠ٢Ԡˠ̢ӠƠӠ̍Ʈ͠ӠӠƠӠƍӠɭŠӠԠӠΠžȢӠčǠӠԺӠƠƍӠ΍Ӡ̠΍Ů͠ӠӠƠƍӠȍӠ̠΍Ů͠ӠӠؠōӠӠӠčӠӯӍخ͠Ӡƍή͠ӠƍƍӠƠĮ͠ӰŠōٮ͠ӠƍŮ͠ӠӠԠŠƫ͠ҠǠϮ͠ӠƍӠӠŠōύҠӍŮ͠ӠƍӠóčӠŠōӠؠŠĠөӠǠōӠŠōӠîЭ֠ӠԠŠΠӠРŠԩӠӠРŠԩàӠРӠӠРӠ٠ōŠӠĠ٠Ԯî̭îƭîԭîĭîĭî̭îέîĭîӭî׭îҭîЭ׍ӠĵҍӠ؍Ӡ³Ѝ îԭӠƠӍîĭîέîϭîŭîŭōӠ̍Ӡ¸ƍӠԍӠčӠčӠ̍ӠųčӠčӠӍӠƠōǍӍӠō ӠԠԠӍӠ¶ĠҠӍӠà΍Ӡ ύӠ·ōӠϠÍԍȍԫȍԫ͍ŠԠ͍͍ūŠҠЬ؍؍̠ϱӍϠؠϱЬ؍̬؍؍̠ϱӍРōƠҠčҠčҠōҠύЍɠҴРҳҴ΍РƍѠҵҠԍҵҠ̍РòůŠɯϠӍϠؠϱ̬؍Ǎ̠ұҠԠŠԍРҍұҠύ٠ƍҲٍǬٍ̠Ҳ؍ŠҲҠԍҳٍǬٍҮ̠ؠˠ̍ӠÍҮؠԠƠӠÍҮϠؠɯϠҍӠÍҮŠؠŠŠȍӠÍҮРؠŠčԠҵѠҮ̍РѠҮЍŠҮύӠҠҍҮƠؠŠԠčӠÍҮΠؠ؍ӠÍҮРؠōӠÍƍРѠҮƍРѠҮЍРѠҮ̍РѠҮ̍РÍѠҮРčѠҮРŮ͍РōӠҠҍҠҠ̍РѠҮЍРѠҮ΍РѠҮƍРѠҮΠàűРҍűҠɍ΍ή͍àŲРҍŲήͫƠŮͫҠɍōԠŮͫŠōÍŮͫŮͫëŮͫؠŠÍŮͫҠɍōŮ͍ҠɍčĮ͍Šà̠ƠĠ٬ȍРҍ̠ҠɍōŮ͍ӍŠŠԠìȠΠŮ͍ŠɍƍƮ͍ƮͫҠƍĮͫƮͫĮͫÍĮͫëĮͫŲРҍŲӍĠŠŠԠÍŠҠɍ΍ή͍ӠōήͫҠƠĮͫƮͫҠӠōĠƠΠԠ֠ƍàƠҠƠƫ٠٠ōҠɍ؍خ͍àҠŮ͍àűРנϠ֠΢ѠŲΠŠԠׯϠ֠РנɯϠҍѠŲΠŠƠ٠ōРҍűƫŠà͠ƠҍؠЍӠ͠ƠجҍӍ͠РҍԠנؠĠΠ֍ؠ֍ŮͫҠɍōѠòРҮōòϮͫÍϮͫëӍԠҠΠĠ؍͠ؠЍҠԠԠͬԠΠ؍ؠӍӍԠĠà٠ŠōàРŠĠōҠɍύϮ͍àñРҍñϮͫРЍӡŠζϮȠөҠ͍Ҡ͠ŠҍҠҠΠԠЍà̠̠ύӠڭŠԍζà̠Ϡ Ѡδ٠ҠˠȠōàβŠԍҍƠŠȠƠōδҠԠˠԠԠҍРàӠŠѠРӠԠڍӠ̲Ġōà̳ϬϠ̲̍Р ӠԠڿà̴ӡ̳Ϯ̴ƫٍٍ٠ƠؠȍԠíÍβРˠƠ̠ӠōӠγРҍγРƠӠ̱Ġōà̳ϬϠ̱̍РӠԠà̴ӡϠҠҍҬ٠ǠȠٍ̠αٍβҫ٠ĠǍĠƠҠɭԍРàβÍà٠̫РÍԠŠŠǠӍҠǠԠӮҠ̍ҠҠŠŠԧӠǍ٠αϩ٠Ҡ̫РΠҠӠčЫР֍ӲЫЍЍ٠Ы̍Ԡƍà«©ٍà«̠ŠԠԍ٠̫Ѝ٠ЫӲ٠Ӳ̍٠Ӎ РנԍàƮͫРͺԫ΍ͫ«àƮͫ«ԠӠӠϿ٠٠ͫÍ٠ë٠ӠĠàӠӱϬȍРҮ΍ӱҠǠԠϠɭԍҠōÍĠÍàŠӍҠÍ͠ɠԠנԠӠӍÍàÍ؍ͫàëث͍ԍԮ͍ˍԮ͠ӠӠӍĠà͍Ǡ٠«͍٠ͫҠҠԠŬנӍТآŠؠנĩîРҠҍҠɍ؍خ͍àбРҍбӍРӠԠŠנĩîРҠɍ͍ŠԠ͠Ϡ±٠ūҠύҠȍРòԍҠҠΠҠҩîҠҠ٠֍֍РĮōנԠϠТîנҠύױ٠ױ̍٠̫Рàԍױ̩٠ԠŠҍ͍٠ɠؠԠŠҠ͍֍ĠҠĠԠ֍̍̍̍̍֍֠ŠŠÍҠԠϠԭԍҍ֍֍ĮŠҠؠȠϠנōҠ͠ŠҠԠčРȍӠԠĠŠԩîӠҍРÍĠԠĠŠũîĠؠԠŠҠ͍ؠϠҠō֍ĠҠĠŠ֍ƍҠԍРύԠǬٍѠԱҠύٍŠԍԱ؍ٍ؍؍ҠԠԠԠؠ͍Íčà Ġ͠ȍ͠ŠΠ͍īà«ͫҠԍؠ٠Ҡɍٍٮ͍à̱Рҍ̱ӍΠŠȠƠԠͩîΠ٠ԢؠҠԍ٠ԠɠԍӍƠРŠƱҠҍРύƱӍĠũîĠРԠĠƠҍ̠Ţũî̠Ҡҍ͍àĮϱҠҍҠōРҮ΍ĮϱƍŠĮϲƠԠԍҠҍҠōҠ̍РҮԠƠĮϲƍ̫ӍĮϠ̩٠ҠРҍĮͫȠĮͫҠɍčĠĮͫƠԠҍĮͫƍĮͫĮύ̍Įύ̫ƍ̍ύӍĠŢîĠҠҍĠҠϠàРũҠàˠŠōҠɍ΍ή͍ήͫŮͫҠɍōŮ͍؍ٍӍҠŠӬŠύҠ̍ҠӠ̫ӍԮϠŠӍĠƠԠӠŠɭԍƠ芊ōŮ̠ͫҠɍˍƮ͠ĠōԮύ̍Ԯύ̫ҠϠԠΠǍ̍ҍή͍ήͫŮͫƠԠҍŮͫƍŮͫҠɠĠōƍƮ͍ҠɍōŮ͍àƲРҍƲӍԍîԠҠҍҠύҠàˠŠōҠɍ΍ӠĩƱŮͫŮͫ±ĠҠƠ±ŮͫҠɠŠԠōōÍ٠Í٠ë̱РōƠŢŠŠˠԠũîƠҠҍӠƱԠŠŠ΍РҮΠȠԧŮͫŠ΍Рō̠ŢĠĩî̠ҠҍЍŠ΍ҠÍЍà̱ŠԠӍРҮ΍ű͠ԠҍÍͫëҠԠȍ͍ŮͫԠĠȍͫŮͫԠŠȍīà«ŮͫàŠӍРōŠŢԬȠũîŠҠҍӠűĠϠ̠ϵҠԍРԍŠŢîŠҠҍ٠«Í٠ëÍčàנ«РūˠÍàϴРōàϴѠϴРҮ΍ϴ٠ϵŬٍ¬ٍٍàϠ±ƍëҠōҠ΍٠ϳ¬٠ŠǠӍŬٍٍ̠ϳҠǍΠҠǍР΍ϠŢĠΩîϠ٠ō٠ƍϱūٍƫٍٍ̠ϱƠĠƢˠȠӍ٠ҩٍ؍ٍҩٍҠԍРύĠŢĠîĠҠǍРòΠŢĠƍҲàҲԠҠΠōٍԱҩٍҠԍٍ٠ҲàԱԠȮȠ٠ԠǠӍ°ؠӠͱҠύͱؠӠͲҠύͲͳҠԍҠÍԠ٠ҩٍĠӫӠÍŶҠϠԠҍҠÍ٠ԠƠӍҩٍ؍ٍҩٍٍŠͳԠȠ̍ѠŵŠŶҠȠөűԫӠàԠŠРԍŲ«ӠÍųīӠÍŴӠÍŵ٠ӠŠٍҩٍРԍѠűР΍ѠŲРƠҍѠųРàӍѠŴРƠčĮ͠ĠҍàԱРҍԱƫҍƫҫӍҍŠıȠөԠԍҍÍà΍ҍҫàҫı٠ҩٍѠĠĬ٠΍ӍԠҠɍԵҠΠԠҠٍӠ٠ӍЍԵàҲ̠ſŠԴϬŠǍҠ̠ŠӍРԍĠàҍѠҠƠӯҍҍӍƫҍƫҫԴҠĠŠҠϠԠٍҠԠԠԍàЍŠҠɍčĮ͍àԳРҍԳӍЍԠƠŠӍҲ΍΍ŠĮͫƮͫƍĮͫҍƍĮͫĮͫĠȍĮͫƠӠŠؿŠԲРҮύ٠ԲԬٍҠύٍ٠àԲҠɍ΍ή͍ήͫΠŠԠ̠΍РԠԠҍԠǩîԠРõӠԠŠԢѠԱӍРҮΠϬҍԱҠɍ؍خ͍٠ĠƠӿŠӱԠԍ֠РƵӠĠ٠ҍӲٍ̍«٠РΠҍ¬ٍҠ̠ӠԠƠ͍àѠŠ͠ӠԍҠ³ƠӠΠРƍȠ٠ӱР¬ٍѠӲĠčٍà̍٠̫РîנԠԍԲؠԳŬ؍̬؍؍̠ԳРĠРȠàōǠӠӠӠͮͮǠӠŠؿŠԠӬōҠؠŠŠؠԍԠؠԱ̬؍Ŭ؍؍̠ԱԲ٠ԲòƳҠԍҠΠӠԠō٠ԠǬٍѠ؍ìٍٍŠԍؠ֍֍؍؍ӠЬ؍؍̠Ӎ٠ƠЍ͍čòԠԬͬčƲŠбàҫàҲ؍ŠбؠҠӠРñ¸¹ƍЬ؍؍Ơ³·РҍàŠ͠؍ҫϠ³٠٠Ҳ³ҲؠŠӍбҩٍҲٍٍƠҠӍ̠ѠčŠѠõΠѠİÍŠѠԠѠčĠѠŸĠѠŹҠѠƵРōҠƠӠРÍűԠٍ̠ǠѠŴԠѠŶƸŠΠөҠѠŷԠàϠŠԍԠѠıԠˠΠآԠѠIJԠŠؠөԠѠŠΠөҠѠĶàŠΠҩ̠Ѡķ ŠΠ٩͠ѠŠˠҠΠҠàѠŰàԍòѠŰàԍҠѠԠѠĶԠҠϠǠԍԠѠķIJԠύàѠµԠōԠѠµԠΠˍϠѠµàԠҍϠѠ ԠҾ͠ѠĶԠѠƵԠӍՠѠijˠҍҠѠĴҠҍ֠ѠĴƲϠԠӍȠѠĶ Ԡ׍ΠѠĵԠ΍àѠĶàԠҍũΠѠƫҠѠƫԠѠƫɠѠư֠ѠƳРѠƵǠѠƹĠѠðŠӍĠѠð͠Ѡð٠ѠóΠѠøĠѠŠѠŠѠÍˠѠōƠѠıӠѠӯΠԩ͠Ѡ±ƠѠ±ӠРũƠѠ°ӠΠѠĸǠѠƲҠѠҲѠÍҠѠōҲѠƍԠѠɠ̠ӍŠѠŠѠð٠ѠñϠѠôŠѠõؠѠöؠѠ ѠĠѠčРѠƍŠѠΠѠ ѠƍӠѠҠѠҠѠРѠčȠѠƍԠѠ±ԠѠ·ϠѠĠѠƍǠƍӠӠͮͮȠѠڭŠӍ̠Ѡ̠Ѡ̠Ѡ͠ѠҠѠؠѠō Ѡ Ѡ                                                        4z#????????    àҠĮԮήŠˠֲήˠàήҠӠŠή٧ӠŠήҠӠήɯǠԯ Ӡӳ ӳ !ҠĠ"ŮàҠĠӮŮԠqӮŮԠ ͠٠ˠŮŮӠ`ŮŮӠ Ӯ͠ ƠӮΠҠDOS1110* `ST0:TKTK1:BF0TKLT1110: jTKLT1020b tTK10:ST0:LT35:CDWR:ZV10ī1160r ~ZV10:1020 :"COPYDONE!": SNOOPER TROOPS CONTROLLER9TK0:ST0:LT9:CDWRHT1TK:490Q220fTK2Ĺ47445,187{TK3Ĺ47505,237$430:100:STST1:STDOS1060.BF10908ST0:TKTK1:TKLT1030B490:230LTKT1:ST0 V430:100:STST1:STRECTORY !!!": |:1000"X138:B$B$"=":3 ,X10511:NAME$(X)B$:I 6NAME$(0)(B$,19)U @D$(4)} E12:12:"READING CATALOG ":12:29 Y63075 ^2054:D$"CATALOG" c216,0:D$"PR#0":D$"IN#0": h(NA$(0),1)" "Ģ12:868:"!!! ERROR - UNABLE TO READ DI85:34,22 23:958T "SELECT A FILE BY NUMBER -->";A$:A(A$):AMAX2010_ A1Ĭ} :::T(A)66T$"BRUN " T(A)84T$"EXEC " T(A)65T(A)73T$"RUN " 23:T$A$(A) 23:D$T$A$(A)  NAME$(105),A$(105),T(105) ((NA$(N),8,1))942000! XX1: A$(X)(NA$(N),8,30)T T(X)((NA$(N),2,1))h X21İ30:2000 X21X61X101İ80 X41İ40:2000 $X41X81İ90 .X61İ30:2000 8X81İ40:2000 BX101İ30:2000 L40  MAXX 32,0:23:1::U Z85:23:"IS YOUR PROGRAM LISTED HERE? Y/";::"N";::" ";:A$:w dA$"Y"MAXN1:N105::2000 n23:958:34,1:35,21::35,24: 60:X0 N1105 ((NA$(N),8,1))652000 ((NA$(N),8,1))61N105:2000 8(ST6UVk,ȱk-`),-`G ::63000]Y140:"=";::qX;:5:A$(X):(" "X" ";:6:(A$(X),15):2X" ";:5:(NA$(X),8,15):<1:20:22:20:34,1:2:FP33,21:32,19:1:1:: U33,40:     YKSWL+1JMPC.NEWINITAPPLESOFT*EXIT2LDX#$03EXIT3LDAVARSAVE,XSTACSWL,XDEXBPLEXIT3(JMPBOOTREADSTARTUPWITHEXECFILE*5TITLEMSG.AS-"ProDOSRDOSv1.0byM.M.McFadden" .HS00**STARTOFPROGRAMALASTDEVSTACURDEV"LDAPREFLGISTHEREAPREFIX?BNEEXITYES,CONTINUE'JSRNEWPREFIXMAKESUREPREFIXSET*EXITLDX#$03EXIT1LDACSWL,XSTAVARSAVE,XDEXBPLEXIT1LDA#EXIT2LDY/EXIT2 STAKSWLSTOMxLDACLRKBD$yLDA#BASIC2SETRESET,ROM,KBD zSTA$3F2{LDA/BASIC2 |STA$3F3}JSRSETRESET~JSRBEGINRDOSINITCODE LDY#0TITLEPRTLDATITLEMSG,YBEQISPREFIXSTA$52C,YINYBNETITLEPRT*ISPREFIXLDTUP1h*iLDX#$17CLEARSYSBITMAPjLDA#$C1B8-B9,BFkSTABITMAP,XlDEXmLDA#$1FB3-B7nSTABITMAP,XoDEX pLDA#0qCLRBITSSTABITMAP,XrDEXsBPLCLRBITS#tLDA#0FORMERLY$CF(0-2,4-7)uSTABITMAPv* wLDARLDA/RELOCRELOCATEFROM$20XXYSTAPTR+1TO$B300 ZLDY#0 [STYPTR2 \LDA#$B3]STAPTR2+1^LDX#$08RELOCATE8PAGES_*`STARTUP1LDA(PTR),YaSTA(PTR2),YbINYcBNESTARTUP1dINCPTR+1eINCPTR2+1fDEXgBNESTARQUATESIBELL.EQ$FBDDJHOME.EQ$FC58KKEYIN.EQ$FD0CLPRBYTE.EQ$FDDAMCOUT.EQ$FDEDNSETKBD.EQ$FE89OSETVID.EQ$FE93PMONITOR.EQ$FF59Q*R*STARTUPCODES*T.OR$2000U.TFPDOS0VSTARTUPLDA#RELOC WSTAPTR#XRINTILLEGALQUANTITYBGARBAG.EQ$E484.CGETBYT.EQ$E6F8EVALUATEEXPRESSION(#'S).DGETADR.EQ$E752CONVERTFACTO2-BYTEINT(EINPRT.EQ$ED19PRINT"BREAKINX".FLINPRT.EQ$ED24PRT2-BYTE#(X&A-REGS)G*&HSETRESET.EQ$FB6FMONITOREEVALUATEEXPRESSION(#'S).<CHKSTR.EQ$DD6CEVALUATEEXPRESSION(STR).=FRMEVL.EQ$DD7BEVALUATEEXPRESSION(ANY)->CHKCOM.EQ$DEBELOOKFORANDEVOURCOMMA#?BASIC.EQ$E000BASICCOLDSTART$@BASIC2.EQ$E003BASICWARMSTART+AILLERR.EQ$E199PD66CAPSOFTCLEAR-5STXTPT.EQ$D697SETTXTPTRTOPROGSTART 6NEWSTT.EQ$D7D2APSOFTGOTO"7OUTSPC.EQ$DB57PRINTASPACE*8OUTQST.EQ$DB5APRINTAQUESTIONMARK%9OUTDO.EQ$DB5CPRINTACHARACTER:CRDO.EQ$DAFBPRINT.;FRMNUM.EQ$DD67ROM.EQ$C082,EIGHTY.EQ$C300-*&.AMPVECT.EQ$3F5APPLESOFTEQUATES"/MBLTU.EQ$D39ABLOCKTRANSFER!0ERROR.EQ$D412ONERRHANDLER&1APCONV.EQ$D4F2REDOAPSOFTHOOKS2SCRTCH.EQ$D64BAPSOFTNEW3RUN.EQ$D566APSOFTRUN!4CLEARC.EQ$F.EQ$BB00$400BYTES(OPENFILE)!NAMELEN.EQDATBUF+$23"FILESPER.EQDATBUF+$24#FILECOUNT.EQDATBUF+$25$MLI.EQ$BF00%LASTDEV.EQ$BF30&BITMAP.EQ$BF58'PREFLG.EQ$BF9A(*")KBD.EQ$C000FIRMWAREEQUATES*CLRKBD.EQ$C010+IX.EQ$C6GETPREFIX.EQ$C7OPEN.EQ$C8READ.EQ$CAWRITE.EQ$CBCLOSE.EQ$CCSETMARK.EQ$CEGETEOF.EQ$D1*+SCRFILES.EQ$1420FILES/SCREEN(&CAT)HIMEM.EQ$B100-DATBUF.EQ$B100$200BYTES(TMPSTORAGE), FILEBUPRGEND.EQ$AFERRFLG.EQ$D8TRACEFLG.EQ$F2 PTR.EQ$FA PTR2.EQ$FC CTR.EQ$FE CTR2.EQ$FF *!QUIT.EQ$65MLICALLNUMBERSGETTIME.EQ$82CREATE.EQ$C0DESTROY.EQ$C1GETINFO.EQ$C4ONLINE.EQ$C5SETPREF69ARYTAB.EQ$6BSTREND.EQ$6DFRETOP.EQ$6FMEMSIZE.EQ$73CURLIN.EQ$76SCRUB.EQ$8FHIGHDS.EQ$94HIGHTR.EQ$96LOWTR.EQ$9BDSCTMP.EQ$9DFACMOH.EQ$9FCHRGET.EQ$B1CHRGOT.EQ$B7FACMO.EQ$A0] .LIF**ProDOSRDOS2.1**byM.M.McFadden*August1987v1.0*CH.EQ$24Z-PAGEEQUATESBASL.EQ$28CSWL.EQ$36KSWL.EQ$38LINNUM.EQ$50STRSCR.EQ$55INDEX.EQ$5ETEXTTAB.EQ$67VARTAB.EQ$                              LDAVARTABCMPVARSAVEBCCGOTO4BEQGOTO4JMPERR.SYN*GOTO4LDY#$07GOTO5LDAVARSAVE,YSTAVARTAB,YDEYBPLGOTO5JSRSTXTPTJMPNEWSTT**&SAVE"FILENAME"*C.SAVEJSRGETINSTRLDATEXTTTO$B100qLDA/DATBUFrSTALOADLOC+1sJSRREADFILEt*uJSRCHAIN vLDY#$07)wGOTO3LDAVARTAB,YSAVEPROGPOINTERSxSTAVARSAVE,YyDEYzBPLGOTO3{JSRGETBASPRG|LDAVARTAB+1 }CMPVARSAVE+1CHECKLOADLOC~BCCGOTO4b*cC.RUNJSRGETBASPRG dJMPRUNe*+f*&GOTO"FILENAME"{,LOADADDR}(CHAIN)g*hC.GOTOLDYCHAINAMEiSTYNAMEBUFjGOTO1LDACHAINAME+1,YkSTANAMEBUF+1,YlDEYmBPLGOTO1n*"oLDA#DATBUFREAD"CHAINSTUFF"pSTALOADLOCINTH...%SSTACHMAYNOTWORKWITH80-COLS TLDY#$15ULDA(PTR),YVTAXWINYXLDA(PTR),YYJSRLINPRT ZJMPCRDO[*#\*&LOAD"FILENAME"{,LOADADDR}]*^C.LOADJSRGETBASPRG_JMPBASIC2`*"a*&RUN"FILENAME"{,LOADADDR}BFORM3JSRLINPRTCJSROUTSPCD*ENAMEPRTLDY#0FLDA(PTR),Y GAND#$0F HSTAPTR2!IINCPTR2ADJUSTFORLENBYTEJINYKNAMEPRT1LDA(PTR),Y LORA#$80 MJSRCOUTNINY OCPYPTR2PBCCNAMEPRT1Q*RLDA#30PRINTLENGROUTSPC2*3LDY#$13GET#OFBLOCKS4LDA(PTR),Y5TAX6INY7LDA(PTR),Y8TAY(9BNEFORM3PRINTWITHLEADINGZEROES :LDA#$B0 ;CPX#$0A<BCSFORM1=JSROUTDO>FORM1CPX#$64?BCSFORM2@JSROUTDOAFORM2LDA#00(BRANCHALWAYS)%TYPE1LDA#'T+$80"&.HS2CBITOPCODE-SKIPREST'TYPE2LDA#'B+$80 (.HS2C)TYPE3LDA#'D+$80 *.HS2C+TYPE4LDA#'A+$80 ,.HS2C-TYPE5LDA#'S+$80 ..HS2C/TYPE6LDA#'?+$800JSROUTDOPRINTCHARACTER1JSALID1(BRANCHALWAYS)*&FIPRINTLDY#$10PRINTSFILEENTRYLDA(PTR),YCMP#$04TXTBEQTYPE1CMP#$06BINBEQTYPE2CMP#$0FDIRBEQTYPE3 CMP#$FCBAS!BEQTYPE4"CMP#$FFSYS#BEQTYPE5$$BNETYPE6OTHERBEQGETVALIDDELETED,TRYAGAIN RTS * GETNEXTJSRMLI .DA#READ .DAREAD.PRMREADANOTHERBCCGETNEXT1JMPPROERRGETNEXT1LDA#DATBUF+$04 STAPTRLDA/DATBUF+$04STAPTR+1LDADIRFILES STACTR"BNEGETVLDONE? BNECAT4NO,SOMEREMAININGJSRCLOSEALLCLOSEFILESJMPCHRGET*GETVALIDDECCTRBEQGETNEXT LDAPTRCLCADCHOLDLEN STAPTRLDAPTR+1 ADC#0STAPTR+1*GETVALID1LDY#0LDA(PTR),Y$LDA#DATBUF+$04 STAPTRLDA/DATBUF+$04STAPTR+1*,CAT4JSRGETVALIDMOVEPTRTONEXTENTRYJSRFIPRINTPRINTIT DECTEMP BNECAT5JSRKEYINWAITFORKEY!LDA#SCRFILESEVERY18FILES STATEMPCAT5DECCTR2AL JSRMLI.DA#READ.DAREAD.PRM BCCCAT3JMPPROERR*CAT3LDA#SCRFILES STATEMP$LDAFILECOUNT#OFACTIVEFILES STACTR2LDANAMELENSTAHOLDLEN LDAFILESPER#OFFILES/DIR STACTRSTADIRFILES.DA#OPEN.DAOPEN.PRMLDAOPEN.PRM+5STAREAD.PRM+1STAGETEOF.PRM+1*LDA#DATBUFSTAREAD.PRM+2DATABUFFERLDA/DATBUFSTAREAD.PRM+3 LDA#0$STAREAD.PRM+4REQUESTEDLENGTH LDA#$02STAREAD.PRM+5*1YESJMPERR.SYNNO,ERRORCAT1JSRMLI.DA#GETPREFIX.DAPREFIX.PRM#LDANAMEBUFISTHEREAPREFIX? BNECAT2JMPERR.IO* LDY#0CAT2LDACATTEXT,YJSROUTDOINY CPY#$24 BCCCAT2* JSRMLIBY&USR* DIS2TYAASLTAY'LDAJMPTAB+1,YSETUPRETURNVECTORPHALDAJMPTAB,YPHA)JSRCLOSEALLINCASETEXTSTILLOPENJMPCHRGETEATCHAR**&CAT(CATALOG)*$C.CATCMP#$C5ISNEXTONE"AT"?BEQCAT*(RELOC.EQ*RELOCATEFROMTHISPOINT.OR$B300.TFPDOS1BEGINJMPSETSTUFFDISPATCHLDY#00DIS1CMPCOMTAB,YBEQDIS2FOUNDCOMMANDINYCPY#19ENDOFCOMMANDS?BNEDIS1NOTYET)NOTSERVJMP$FF58RTSCHANGEDrJSROUTDOsINYtBNELENPRINTuLENPRT1LDA01,XvTAY wLDA00,XxTAXyTYA$zJSRLINPRTPRINT2-DIGITNUMBER{JMPOUTSPC|*(}*&D#,NEXTCOMMMAND(CHANGEDRIVE)~*C.DLDX#$03MUSTBE<3JSRGETSPNUMDEXZEROOcLDAPRGEND$dSBCTEXTTABFINDPROGRAMLENGTHeSTALINNUMSTOREINLINNUMfLDAPRGEND+1gSBCTEXTTAB+1hSTALINNUM+1iJSRLENPRINTj* kLDX#$69 lLDY#$0FmJSRLENPRINT nJMPCRDOo*pLENPRINTLDALENMSG,YqBEQLENPRT1INSTR SJSRMLIT.DA#DESTROYU.DADESTROY.PRM VBCCDEL1WJMPPROERR XDEL1RTSY*2Z*&LEN(DETERMINELENGTHOFAPPLESOFTPROGRAM)[*\C.LENLDY#0"START"]LDX#TEXTTAB^JSRLENPRINT_* `LDY#$07aLDX#LINNUMbSECD.IO2ORA#$80SETHIBITCRTSD*ECHECKEOFCMP#0FBNECHECKEOF1GJSRCLOSERRHJMPRESTIOICHECKEOF1RTSJ*K*&END(CLOSE)L*MC.ENDLDA#0 NJMPCOUTSENDEOFCHARACTERO*P*&DEL"FILENAME"(DELETE)Q*RC.DELJSRGETD.PRM+53* 4JSRMLI5.DA#READ6.DAREAD.PRM7BCCREAD.IO18JSRCLOSERR9JSRPRBYTE:JMPERR.SYN;*<READ.IO1LDADATBUF=BNEREAD.IO2EOFNOTHIT>JSRCLOSERR?JSRPRBYTE @JSRBELLAJMPERR.DATAOUTOFDATA BREA#LDA#READ.IO $STAKSWL%LDA/READ.IO&STAKSWL+1'LDA#CHECKEOF (STACSWL)LDA/CHECKEOF*STACSWL+1+RTS,*-READ.IOLDA#$A0.STA(BASL),YCOVERUPCHAR /LDA#$010STAREAD.PRM+4LENGTH=1 1LDA#02STAREAOOTREADJSRSAVEIO(EXECSTARTUPFILE) LDA#$04!JSRGETLDLOCCHECKFILETYPE JSRMLI.DA#OPEN.DAOPEN.PRMLDAOPEN.PRM+5STAREAD.PRM+1*LDA#DATBUFSETBUFFERSTAREAD.PRM+2 LDA/DATBUF!STAREAD.PRM+3"*E.PRM+5 JSRMLI.DA#WRITE.DAWRITE.PRM*PLATAXPLATAY PLA RTS *& CLOSERRPHACLOSEFILES,RETOREIO JSRCLOSEALLJSRRESTIOPLARTS**&READ"FILENAME"*C.READJSRGETINSTR+BTING STAKSWLLDA/CLOSERRSTAKSWL+1RTS*PRINT.IOPHASAVEREGS$AND#$7FTEXTFILESHAVEHI-BITSTADATBUFCLEAREDTYAPHATXAPHA*LDA#$01WRITEONEBYTESTAWRITE.PRM+4 LDA#0STAWRIT/DATBUFSTAWRITE.PRM+3*JSRMLIAPPENDFILE.DA#GETEOF.DAGETEOF.PRM JSRMLI.DA#SETMARK.DAGETEOF.PRMAPPENDFILE*LDA#PRINT.IO STACSWLLDA/PRINT.IOSTACSWL+1'LDA#CLOSERRNOINPUTWHENWRIEF2RTS* *&PRINT*C.PRINTJSRGETINSTRJSRSAVEIO LDA#$04!JSRGETLDLOCCHECKFILETYPE JSRMLI.DA#OPEN.DAOPEN.PRMLDAOPEN.PRM+5STAWRITE.PRM+1*LDA#DATBUFSETBUFFERSTAWRITE.PRM+2LDA$04STACREATE.PRM+4 LDA#0STACREATE.PRM+5 LDA#$B1LOADADDROF$B100STACREATE.PRM+6* JSRMLIUPDATECURRENTTIME.DA#GETTIME .DA$0 JSRMLI.DA#CREATE.DACREATE.PRM BCCDEF2JMPPROERR DADLOC LDA$50 LDY$51STALOADLOCSTYLOADLOC+1RECALL1JMPREADFILE*4*&DEF"FILENAME",SIZE(CREATEBLANKTEXTFILE)*C.DEFJSRGETINSTR"BCSDEF1MUSTHAVESIZE(EVEN%JMPERR.SYNTHOUGHIT'SIGNORED)DEF1LDA#EDLENGTHLDALINNUM+1STAWRITE.PRM+5LDA#$06TYPE=BINJMPWRITEFILE*-*&RECALL"FILENAME"{,LOADADDR}(BLOAD)*C.RECALLJSRGETINSTRPHPLDA#$06TYPE=BINJSRGETLDLOCPLP$BCCRECALL1USEDEFAULTLOTART,LENGTH(BSAVE)*C.STOREJSRGETINSTR"BCSSTORE1NEEDEXTRAGOODIESJMPERR.SYN STORE1LDALINNUMSTARTADDRSTALOADLOCLDALINNUM+1STALOADLOC+1JSRGETEXTRAGETLENGTHLDALINNUM)STAWRITE.PRM+4SETREQUESTABLDYTEXTTAB+1STALOADLOCSTYLOADLOC+1SECLDAPRGENDSBCTEXTTAB$STAWRITE.PRM+4SETSAVELENGTHLDAPRGEND+1SBCTEXTTAB+1STAWRITE.PRM+5LDA#$FCTYPE=BASJMPWRITEFILE*,*&STORE"FILENAME",SFOO.DAGETINFO.PRMPBCCGETLDLOC1QJMPPROERRR*SGETLDLOC1LDAGETINFO.PRM+4 TCMPTEMPUBEQGETLDLOC2VJMPERR.TYPEWGETLDLOC2LDAGETINFO.PRM+5XSTALOADLOCYLDAGETINFO.PRM+6ZSTALOADLOC+1[RTS\* ]*GETNUMBERRFRMNUMEVALUATENUMBERDJSRGETADRCLEANITUPESECSIGNALADDITIONALINFOF.HS24Z-PAGEBIT GGETIN6CLCSIGNALNONUMBERSHRTSI*%J*GETLOADLOC&VERIFYFILETYPEK*&LGETLDLOCSTATEMPSAVEWANTEDTYPE MJSRMLIN.DA#GETINYTE9BCCGETIN2MORELEFT:LDASTRSCR%;STANAMEBUFSTORELENGTHOFNAME<*'=GETIN4JSRCHRGOTLOOKATNEXTCHAR>CMP#$2CISTHEREACOMMA??BEQGETEXTRAYES!#@BNEGETIN6NO.(BRANCHALWAYS)A*BGETEXTRAJSRCHKCOM(CGETEXTRA1JSBCCVAL4YES!.CMP#$41ISITA-Z/BCSVAL2COULDBE0BCCVAL3NO,TOOSMALL1VAL2CMP#$5BISITUC.%GETIN2.5CMP#$20CHECKIFLEGALRDOSNAME&BCSGETIN3'JMPILLERR(*)GETIN3CMP#$2F/-9?*BCSVAL1COULDBE+BCCVAL3NO,TOOSMALL,VAL1CMP#$3AISIT0-9?-NGS..JSRFRMEVL'JSRCHKSTRMAKESUREIT'SASTRING* LDY#$022GETIN1LDA(FACMO),YPOINTERTOSTRDESCRIPTOR%STASTRSCR,YSTRINGSCRATCHAREADEYBPLGETIN1INY'GETIN2LDA(STRSCR+1),YREADSTRING AND#$7FCLEARHIMP+1JMPAPCONV*GETBAS2LDATEMP+1 PHA LDATEMP PHA LDAIOKEEP LDYIOKEEP+1 STACSWLSTYCSWL+1JMPCLEARC***GETFILENAMESTRING&EXTRAGOODIES*GETINSTRLDA#$55&STA$52SOMETHINGABOUTSTRITEXTTAB+1STA(TEXTTAB),YINCTEXTTAB+1*LDACSWLSAVEINPUTVECTLDYCSWL+1STAIOKEEPSTYIOKEEP+1LDA#GETBAS2LDY/GETBAS2 STACSWLSTYCSWL+1PLA'STATEMPRETURNVECTORGETSKILLEDPLASTATEJSRREADFILECLCLDALINNUM STATEXTTABSETUPNEWSTART+ADCGETEOF.PRM+2SETUPLOMEM:START+LENSTAVARTABLDALINNUM+1STATEXTTAB+1ADCGETEOF.PRM+3STAVARTAB+1*LDA#0WHATDOESTHISDO?? LDY#$FFDECINDEXLDALINNUM+1SBCLOADLOC+1STAINDEX+1*LDALINNUMLDYLINNUM+1STALOADLOCSTYLOADLOC+1!CPY#$08ISLOADLOC<$800?BCSGETBAS1NO,BRANCHJMPERR.SYN**GETBAS1LSRERRFLGSHIFT1INTOHI-BITREADBASICPROGRAM*GETBASPRGLDATEXTTABLDYTEXTTAB+1STALINNUMSTYLINNUM+1(JSRGETINSTRGETNAME,NEWLOADLOC*LDA#$FCTYPE=BASJSRGETLDLOC(LDALINNUMIDONTKNOWWHATTHISISSECSBCLOADLOCSTAJSRMLI.DA#SETPREFIX.DAPREFIX.PRM BCCP1JMPPROERR P1RTS*,*&STOP(PRODOSQUITCODE-NEWCOMMAND)*C.STOPJSRMLI.DA#QUIT.DAQUIT.PRMBRKQUIT.PRM.HS04 .HS 0**SUBROUTINES**IZE+1*JSRRESTIOJSRSCRTCHJMPBASIC2WARMSTART*%*&USRADDR(CHAINUSER&VECTOR)*C.USRJSRGETEXTRA1STYNOTSERVSTANOTSERVRTS*.*&P"PREFIX"(CHANGEPREFIX-NEWCOMMAND)*C.PJSRGETINSTR NEW(EQUIVALENTTO"FP")*C.NEWJSRSAVEIOLDA#NEW1LDY/NEW1 STAKSWLSTYKSWL+1JMPBASICCOLDSTART**NEW1STA(BASL),YOUTPUTTHECHARACTERLDA#HIMEMLDY/HIMEM%STAMEMSIZERESETHIMEMTO$B100STYMEMS*&S#,NEXTCOMMAND(CHANGESLOT)*C.SLDX#$08MUSTBE<1JSRGETSPNUMLDACURDEVAND#$80CLEAROLDSLOT#STACURDEVTXAASLASLASLASLORACURDEVSTACURDEVASSUMEDRIVE1JMPSD.DONE**&RONELDACURDEVAND#$70CLEAROLDDRIVE#STACURDEVTXACLCRORSHIFTTOHIT-BITRORORACURDEVSTACURDEV-SD.DONEJSRNEWPREFIXSWITCHTONEWDRIVE(JSRCHKCOMPREPAREFORNEXTCOMMANDJMPDISPATCH*&EL=.HSE3END >.HS44D ?.HS53S@.HSBFNEWA.HSD5USRB.HS50PREFIXC.HSB3STOPD*,EJMPTAB.DAC.CAT-1LOCATIONSOFCOMMANDSF.DAC.LOAD-1G.DAC.RUN-1H.DAC.GOTO-1I.DAC.SAVE-1J.DAC.STORE-1K.DAC.RECA/*DATASTARTSHERE0*(1COMTAB.HS43CAT-APPLESOFTTOKENS2.HSB6LOAD-FORCOMMANDS3.HSACRUN4.HSABGOTO5.HSB7SAVE6.HSA8STORE7.HSA7RECALL8.HSB8DEF9.HSBAPRINT:.HS87READ;.HS80END<.HS85DVID JSRHOME* LDA#$4C!STAAMPVECT"LDA#DISPATCH#STAAMPVECT+1$LDA/DISPATCH%STAAMPVECT+2&*'LDA#HIMEM(STAMEMSIZESETHIMEM)LDA/HIMEM*STAMEMSIZE+1+LDA#0DISABLETRACE,STATRACEFLG-RTS.*ORS * SAVEIOLDX#$03 SAVEIO1LDACSWL,XSTAIOKEEP,XDEXBPLSAVEIO1RTS*RESTIOLDX#$03RESTIO1LDAIOKEEP,XSTACSWL,XDEXBPLRESTIO1RTS**STARTUPCODE*SETSTUFFJSRSETKBDJSRSET BPLERR2DEX BNEERR2JSROUTQST ERR3INYLDAERRMSG,YPHPJSROUTDOPLP BMIERR4 JMPERR3ERR4LDACURLIN CMP#$FF BEQERR5JSRINPRTERR5JSRBELLJMPBASIC2 * *SAVE/RESTOREI/OVECTERR.IOLDX#$06I/OERROR .HS2C(ERR.TYPELDX#$07FILETYPEMISMATCH .HS2C#ERR.WPLDX#$08WRITEPROTECTED*BITERRFLG$BPLERR1ONERRNOTACTIVEPRINTJMPERRORERR1JSRCRDO LDY#$FF ERR2INYLDAERRMSG,YBNEERR.IO**RDOSERRORHANDLER*"ERR.FNFLDX#01FILENOTFOUND .HS2CERR.SYNLDX#$02SYNTAX .HS2CERR.DUPLDX#$03DUPLICATE .HS2CERR.FULLLDX#$04DISKFULL .HS2C!ERR.DATALDX#$05OUTOFDATA .HS2CBEQERR.FNF CMP#$46BEQERR.FNF CMP#$47BEQERR.DUP CMP#$48BEQERR.FULL CMP#$49BEQERR.FULL CMP#$4CBEQERR.DATA CMP#$4DBEQERR.DATA CMP#$55BEQERR.FULL CMP#$57BEQERR.DUPSTAWRITE.PRM+1 JSRMLI.DA#WRITE.DAWRITE.PRMJMPREADDONE**PRODOSERRORHANDLER*PROERRPHAJSRCLOSEALLPLA CMP#$2BBEQERR.WP CMP#$40BEQERR.SYN CMP#$44BEQERR.FNF CMP#$45M+6AUXTYPE=LOADLOCSTAWRITE.PRM+3* JSRMLI.DA#CREATE.DACREATE.PRMBCCWRITFILE1JMPPROERR*WRITFILE1JSRMLI.DA#OPEN.DAOPEN.PRMBCCWRITFILE2JMPPROERR*"WRITFILE2LDAOPEN.PRM+5REF#*CLOSEALLJSRMLI.DA#CLOSE.DACLOSE.PRMRTS*0*WRITEFILEATLOADLOC,LENGTHINWRITE.PRM*(WRITEFILESTACREATE.PRM+4FILETYPELDALOADLOCSTACREATE.PRM+5STAWRITE.PRM+2LDALOADLOC+1(STACREATE.PR+2TRANSFEREOFSTAREAD.PRM+4LDAGETEOF.PRM+3STAREAD.PRM+5LDALOADLOCSTAREAD.PRM+2LDALOADLOC+1STAREAD.PRM+3* JSRMLI.DA#READ.DAREAD.PRM.READDONEBCCCLOSEALLIFREADOKAY,BRANCHJMPPROERR*!*READENTIREFILEATLOADLOC*READFILEJSRMLI.DA#OPEN.DAOPEN.PRMBCSREADDONE"LDAOPEN.PRM+5TRANSFERREF#STAREAD.PRM+1STAGETEOF.PRM+1* JSRMLI.DA#GETEOF.DAGETEOF.PRM"LDAGETEOF.PRMLDANAMEBUF+1ONLINESHIFTSNAMEvAND#$0FSCREENOUTDEV#wSTANAMEBUFxINCNAMEBUF+1FOR"/"yLDA#$2F"/"%zSTANAMEBUF+1FULLYQUALIFYNAME {JSRMLI|.DA#SETPREFIX}.DAPREFIX.PRM~BCCNEWPRE2JMPPROERRNEWPRE2RTSCURDEVkSTAONLINE.PRM+1 lJSRMLIm.DA#ONLINEn.DAONLINE.PRMoBCCNEWPRE1 pCMP#$28ALLOW"NODEVCON"'qBEQNEWPRE2INCASESLOTW/ODRV2rCMP#$27ALLOWI/OERROR'sBEQNEWPRE2INCASEOFEMPTYDRIVEtJMPPROERR,uNEWPRE1BETWEEN0ANDX^*_GETSPNUMSTXTEMP!`JSRGETBYTGETNUM,PUTINX aCPX#$01bBCCBADSPNUMIF<1,ERROR cCPXTEMPdBCSBADSPNUMIF>X,ERROReRTSfBADSPNUMJMPILLERRg*$h*GETNEWPREFIXBASEDONCURDEVi*jNEWPREFIXLDAGHTR LDALOWTR+1 ! ADC#0" STAHIGHTR+1# JSRMBLTU$ CHAIN11LDASCRUB% CLC& ADCDSCTMP' STADSCTMP( BCCCHAIN12) INCDSCTMP+1* CHAIN12LDADSCTMP+ LDXDSCTMP+1 , LDY#0- RTSGSCTMP+1 / LDY#00 RTSC! ADC#0" STAHIGHTR+1# JSRMBLTU$ CHAIN11LDASCRUB% CLC& ADCDSCTMP' STADSCTMP( BCCCHAIN12) INCDSCTMP+1* CHAIN12LDADSCTMP+ LDXDSCTMP+1 , LDY#0- RTS!TMP),Y STAFRETOP+1 PLA CLC ADCLOWTR STAHI PHA SEC LDAFRETOP STAHIGHDS SBC(DSCTMP),Y INY STA(DSCTMP),Y STAFRETOP INY LDAFRETOP+1 STAHIGHDS+1  SBC#0 STA(DSCTMP),Y STAFRETOP+1 PLA CLC ADCLOWTR STAHIGHTR LDALOWTR+1 ),YBPLCHAIN11INYCHAIN9.5LDA(DSCTMP),Y BEQCHAIN11 INY LDA(DSCTMP),Y TAX INY LDA(DSCTMP),Y STALOWTR+1 STXLOWTR CMPPRGEND+1 BEQCHAIN10 BCSCHAIN11 CHAIN10DEY DEY LDA(DSCTMP),Y$05ADCDSCTMPSTADSCTMPBCCCHAIN6INCDSCTMP+1CHAIN6LDXDSCTMP+1CHAIN7CPXFACMOBNECHAIN8CMPFACMOHBEQCHAIN4CHAIN8JSRCHAIN9.5BEQCHAIN7CHAIN9LDA(DSCTMP),YBMICHAIN11INYLDA(DSCTMPTAXINYLDA(DSCTMP),YPHPINYLDA(DSCTMP),YADCFACMOHSTAFACMOHINYLDA(DSCTMP),YADCFACMOSTAFACMOPLPBPLCHAIN3TXABMICHAIN3INYLDA(DSCTMP),Y LDY#0ASL ADC#BEQCHAIN1CHAIN2.5STAFACMOHSTXFACMO LDA#$03STASCRUBCHAIN3LDAFACMOHLDXFACMOCHAIN4CPXSTREND+1BNECHAIN5CMPSTRENDBNECHAIN5RTSCHAIN5STADSCTMPSTXDSCTMP+1 LDY#0LDA(DSCTMP),Y$.OR$B100ADAPTEDDOS3.3CHAIN.TFPDOS2CHAINJSRGARBAG LDA#$07STASCRUBLDAVARTABLDXVARTAB+1STADSCTMPSTXDSCTMP+1CHAIN1CPXARYTAB+1BNECHAIN2CMPARYTABBEQCHAIN2.5CHAIN2JSRCHAIN9ɁINFORMATION*CHAINAME.DA#10LENGTH.AS-"CHAINSTUFF"**PATHNAMEBUFFER*+NAMEBUF.DA#10LENOFSTARTUPFILENAME/.AS-"SYSTEMBOOT"STARTUPFILE(TEXTONLY) .BS53NAME+BYTE+BLANK=64**CHAIN(USEDBY&GOTO)*RMESSAGES*ERRMSG.HS80.AT"FILENOTFOUND".AT"DOSSYNTAXERROR".AT"DUPLICATEENTRY".AT"DISKFULL".AT"OUTOFDATA".AT"I/OERROR".AT"FILETYPEERROR".AT"WRITEPROTECTED"*'*FILECONTAININGCHAIN*GETEOF.PRM.HS02.HS00REF#.BS2EOF.HS00HI-BYTEALWAYS0*'CATTEXT.AS-"LEN--LENGTH" .HS8D*LENMSG.AS-"START:" .HS00.AS-"LENGTH:" .HS00.AS-"LOMEM:" .HS00**RDOSERROS00REF#*READ.PRM.HS04.HS00REF#.DADATBUF.BS2LEN.BS2ACTUALLEN*WRITE.PRM.HS04.HS00REF#.DADATBUF.BS2LENGTH.BS2ACTUALLEN*CLOSE.PRM.HS01 .HS00REF#-0CLOSESALL/"r*sGETINFO.PRM.HS0At.DANAMEBUF u.HS00v.HS00FILETYPEw.BS2AUXTYPE x.HS00y.BS2BLOCKSUSEDz.BS8DATES/TIMES{*|PREFIX.PRM.HS01}.DANAMEBUF~*OPEN.PRM.HS03.DANAMEBUF.DAFILEBUF.HS00FILETYPE$g.HS0AUXTYPE(LOADADDRESS)h.HS01SEEDLINGFILEi.HS0CREATEDATEj.HS0CREATETIMEk*lDESTROY.PRM.HS01m.DANAMEBUFn*oONLINE.PRM.HS02p.HS60SLOT6,DRIVE1'q.DANAMEBUF+1ROOMFORLEADING"STORAGE(CAT)&[DIRFILES.HS00TEMPSTORAGE(CAT)\LOADLOC.BS2]IOKEEP.BS4HOLDS$36-39 ^TEMP.BS2TEMPORARYSTORAGE_VARSAVE.BS8USEDBY&GOTO`*a*PARAMETERLISTSb*cCREATE.PRM.HS07d.DANAMEBUFe.HSC3UNLOCKEDf.HLL-1L.DAC.DEF-1M.DAC.PRINT-1N.DAC.READ-1O.DAC.END-1P.DAC.DEL-1Q.DAC.LEN-1R.DAC.D-1S.DAC.S-1T.DAC.NEW-1U.DAC.USR-1V.DAC.P-1W.DAC.STOP-1X*"YCURDEV.HS60CURRENTDEVICE#%ZHOLDLEN.HS00TEMPST0:TKTK2:BF0TKLT1070. BTK35ī1095? CTK15ī1096P DTK29ī1097Z E1020 GTK1:ST0:LT35:CDWR::190:1020 HTK15:ST0:LT35:CDWR::190:1020 ITK29:ST0:LT35:CDWR::190:1020 L:"DONE WITH COPY": 212,170,1509ULTIMA I / RING QUEST / RINGS OF ZILFIN CONTROLLERSTK0:ST0:LT35:CDWRbT1TK:490sTK35ī1100430:100:STST1STDOS1030BF1060ST0:TKTK2:TKLT1030$490:TKT1:ST0:230.430:100:STST1:STDOS1070 8 ^.HS01 _.DA$0 `.DA$0.DA$00M+6L* MJSRMLIN.DA#CREATEO.DACREATE.PRMPBCSPROERRQRTSR*SERRORJMPILLERRT*UPROERRJSRPRBYTE VJSRBELLWJMPMONITORX*YCREATE.PRM.HS07Z.DANAMEBUF [.HSC3\.HS00;FILETYPE].DA$0;AUXTYPETYPE1LDA#$06 =.HS2C>TYPE2LDA#$04 ?.HS2C@TYPE3LDA#$FC ASTACREATE.PRM+4;FILETYPEB*CJSRGETCHRDJSRCHKCOMEJSRFRMNUMFJSRGETADRG*HLDALINNUMISTACREATE.PRM+5;AUXTYPEJLDALINNUM+1KSTACREATE.PRSUBS1**+INY,SUBS2LDA(STRSCR+1),Y-STANAMEBUF+1,Y.INY/CPYSTRSCR0BCCSUBS21*2SUBS3LDASTRSCR3STANAMEBUF4JSRCHKCOM 5CMP#$426BEQTYPE1 7CMP#$548BEQTYPE2 9CMP#$41:BEQTYPE3;BNEERROREjNWbՑ]m>p񩠅aL92DWbr:# LINE# > .STRING. .OLDSTR.NEWSTR. SOURCE FILE<#> # p 8e  Lȱ7 ) LhhLB  H&)>ȥ')>JJJ >`+*xS&x'8*3Ixix&& 8 l {' o {& {x)*++`FG8`0($ p,&"USEDBY (0 8@ HPX !"#$`h%&px')*+,-./12345679:;<` aI꽌ɪ򠚽ɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɵ'*&%&,E'зЮ꽌ɪФ`2JJJ'J&J>Ƚ3JJJJ&'J&&3>ȽfJJJJ&'J&&f>ȥ2>&JJJȱ>'JJJ3ȱ>*JJJfȱ>J&*J&'J&&ȱ>J&*J&'J&*)')3*)f>)JJJ`80|'x&Hh &    Y'&Yxꪽ'    `Hh      LNOT FOUNDOS SYNTAX ERRODUPLICATE ENTRDISK FULOUT OF DATI/O ERROFILE TYPE ERROWRITE PROTECTE 򍠠倠D#LHH`?F Vk *f???0x F Hh D#-FFF8` D x D - x8`- 0ݩ ?ʥD FFF`   LDcpq` [` ~ hh@(LH9LHH/Hh/ H-З( (& $8 HL ` *HVDP (FD Z $0x8x D- D\HIHHHHhHH݌hHhHh݌H6 h    `HJ>݌h Hh݌`DF DF /L<=>?>>!`NG8`0($ p,&" ۿ ۿڿL흍ٿ vLQ  !"#$%&'()*+,-./0123456789:;&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++>J>J>VU)?`8'x0|&HhHh    VY)'&Y)xꪽ)'     `Hh`V0^*^*>&` aI꽌ɪV    )(53):" 4(27)(75)(50):; >(27)(75)(49):T H(27)(75)(48):UJ,COCO1:"POSITION PAPER, AND PRESS RETURN FOR NEXT COLOR. ";:"";A$Q-1j.CO$(CO)"BLUE"İ800/CO$(CO)"GREEN"İ8100CO$(CO)"RED"İ8201CO$(CO)"YELLOW"İ8302CO$(CO)"BLACK"İ840 (27)(75)(51): *(27)(75!! NCDST+2DEX BNESRCRTSN#.OR$41AB.TFGRAB.OMOVE.UPLDX#$4F LDY#$55 BNEMOVE$.MOVE.DNLDX#$55 8LDY#$4FBLMOVESTXSRC+2VSTYDST+2 `LDX#6 jLDY#0tSRCLDA$5500,Y~DSTSTA$4F00,YINY BNESRCINCSRC+2I""