8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LC! $ " " &#M8nf $ ) L! " " &J, )7(P0  ( @p !"0 *%"0"" &/) )"" &ЭL!)0I0 (Щ ߍ  ƪ   RBOOTzƪƪ%RLOAD|ƪƪ)RLOAD.SRCƪƪ)RBOOT.SRC ƪƪ&LINKERIƪ ƪ(BUGBYTER7! gASM.TOOLS' &PRODOS:! 2,BASIC.SYSTEM&(! Ҩ,EDASM.SYSTEM; ƪ ƪ(EDASM.EDDƪ0ƪ)EDASM.ASMU6ƪ0ƪ*EDASM.SWAPr >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LLnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R)f 8'  )ɀ)4,- U JNT)  !N)Gi/ "4 "" " " iL X%!L!ΠΠҠ`  !"#$@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ# ߐ ߐ ߐ 0 HϭߍLпllllhh8` QSTV،h@ihAiȱ@JJJJq@)@evȱ@Hȱ@Ah@@cee J) LxL LxJiB LxJ) GxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJlBJ,~آ <B*IBGF08Lé'+8H <(h`@ڍL3<>=?<>CAB@?A` 1 L  <>` ڢF]PL8i m L   6< L  BLRAM' hLDLHB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`bLJCAB@=?,<ʆ>*=?BC8 é&'112`݁(݉(`}(`e`H)hJJ?(0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <((ȱ( Y'( ' f'L&`L' 'L' Y' L& Y'L'8ei` ,$`ee` `( '( (` *( ' (`hh8`8`(l&j"L  <8# ȱ)ɀ  )t& ` (Xp< @t& )mt&t&.t&w& Mt&i  ``rȱȱȱȱ0]cȱeem(ȱ(ȱ((ȱԠŠҬîʎ1DžϠl&8f ZHH)hh8JhJJJJJ j&Hk&8H) 12 (j21 h!hH h %)Ђ12H)M0 h10200I20h2 |&`L($_뿩 8!@8` MNЩUMܩ  L 5   8 0 8 `0 / x X$$%&%0`ŠӠЭ[ V7 c L '0%O '8O JmO * ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`;YYZLYLYLY"7"Y"/"ll"*# HQ$WON!-PB}OBiB ,m# m# J Qڨ)̰n]e мȱ ; ̀𩠙< iO P F V >Z SY ɘL` X _ 'P0ōҍJJJJ ɺi) ɺiLD )?      `l@Hȱ@IױHXATȱH ɯȩ׍̞5H)/@a)_ .0 :A[8@`,뎞׮Б` L` @>_)I38Ypqם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA <'KI؍_JJJJح}) ) )в|J8` GpF $ ᭔ع+ؠ HH  Jh8` 䮑ٽ ٬ؠ@` ( X )8`)i пJGBJ a FإG`BH aFإG`H hHB؅F  ؅GxDE؍00C ް(`(8` L7J  G"L H  G 9ؙ` @ P8`B8` X؈ ;JHIH ILFFHGI ѭJjHIH;7IؙJJ g3HIHILJKJK`FHIG ( Ȣ؝؈JL)eKM`)` J Jͫ $0 ΚJFJL8`0C ް(`(8`ؑ@`M8`8@ؐʈI묒)8 L LةC8`؍)@ i)8zJ _ ؅F L) +&J(b ;FإGؐ/8`*J۩ ٰ`JJJJi LdH8`ͦ ٍ0  ` `ٍyٍiB0H0FG h0`שB5xED "8`  `ٽJJJJ`H͜hn)NjNjNjN. dH͜ ;٭ *Nۙ۰ڙک `Z8` d# B` . . .8۰0٭)ܝ٭*ܝ٥F٥G٭'ܝ٭(ܝ`) 8ʈ` )0ٝ)i `8`R "ꍜ NمFمG < Μ0 FGL鮑0 ٭٭ٽ8`H8`  ,0 d01 E8`100 v$0ʩGF 밽 谸 谳`12)1`0`Ȏi 0U`)8`θ` )W G JA)H ܝʈh٭ )ȱHθ`Κ8QeHI SBF0Y ٙWٙUFZSʈ {猺`8m0`,0H hi L荸Ƚθhٍ0GF8yאFG  `* ΙQ8`5IF܅G 됾`\܍]^ {8D`F` tlH)HFȍZHG[ $%܍&܍!ܢ8* J8` L ܝJ)I 'ܝF`R8i^F\G]`R5IH3H (  밯ZF[G 밠S%܈P" X)Im'܅F(܅G)܍^*܍Q 4 䭐 $H %HFFHGHG 됨`R8`)` QH_` :R(5IHH__Ѝ_@`8 e ͙_ʈ@}ȱ@oȱ@y{|rZ[_)7_I0ܢܽ \'Q*ܩu 7pqFG (ST L܅I^ mQIH` } }Y0\F]G Q_HZF[G` G8`F@ 0 e LK8`F GI8`FHGH hGhF܌ բFܽܕF芝ܝ 밶FFGG H܅I mIIHHyHȘI Lܝ` @o@ w@Ю׍_)m0JHi 뎑`C8` @ 3N@) d莽 ⭺i`0 v0GF #0 W,0 ).H hȑNWȮّNW8`ٍّNθ0NN` H h)N$% LL L L H  :pJ덯 )@፲NJOK HiKKήή IJί JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@LH쬒8NNO 8 ؍JL`RήʱLN.MOMEKP/MEKήLML-M O,p莭eNNO(`JNKOL H/  :P L8 gؑJ`L@ȱ@LL`BLLޢޢޢޢޢޢޢޢޢޢޢޢޢޢޢCOPR. APPLE,1983LM Mh@8nЍLޭ 0J @,,L:,L@   !"#$Ԡ͠ˠĠԠhhhhILhH),dx8 (8`@Ae f!55s+aIJK,-NOPQRSuHUSTON!' J5 s9X(K sXXK تKo`V8`no` < on sI9XX`)HJJJh`OeNeO࿰ s9XАO`@ȭ@` ON YNJKO`HHHHх܅F݅G ` ͬ 밽܅F݅G ` * % L`FGL 4܍ݍ8`FHGH 4ܙhGhF`@Bɼ>K@yٙ٩`O dIpFqG :%&N  # 4܅F܅G `J HH hh` 0 @ L\L# [Tܝ ݝ0ȩFG  0` רם__)׍_pFqG 밍 hPם8`;Zx3QTTSRWVUHEVhEhH)IWHPHHHAHHHLaVEWLӿ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+>YL 8!9 詍` "  à4"/pŠϠŠà͠ӠàԠŬ%'()*+,-./0123456789JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzLLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)< &@DEF   %LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ ƠϠ ɘɉ ɈL :Lɍ)ې)ɮ۰ɺH h 'ĝL  LL L)'L L L'L  (L(L $ʩ $$ $L `ީ % XʩXύX X A %  % ɍNH hɛɘɉɈ $ Lc :Lcې)ɮ۰ɺ'Ɲ Lc  : X i % $ɛ$8V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌1֍ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` *L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| H06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b w,S0 @ lLޭB 鸍긍$I2 U)VJ зT)`l8`a HbIJhjǾȾɾ p٭b=aSL/id /`H) hJJJJ ɺi` M  ` ת.8 `O`S  AI-L9 ᪰B C VW>m>` _m8injkiljo풼i>?Ek?>Q>> L> \/ e>>?́?ޱ>ȥpnG @p;G=po:Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`G DKJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>L8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ ( KK`HJJJJ8`HK)` #hhL𚾤3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅303پھ p H־Ǿh۰8L־Jjjjɾ)Ⱦ8 ѱ OLӜ ĤLLX>(F`־ؾپھ׾` bɄ KDEF vLl v lL bKɍKL?` w  vLl@$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ]c־Jjjj `O>0O l PODEF޾ p ޾ p($ذ v (0 ( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ B94 l% bʽ  ՚,S` H Eо VV :$ZA@L8 `u-U -W b WW)JJ :T$K \0IDK : :5K 0.)K :쭼󬮼XK`L9L^ :K mY ܩ 8jK` J,, ( 5̪ ` J, ̪ ` J, `)a)_ͩ`0:8 `)H"H ת תh}I תhm8`0 :AG8 `) ת `..`SI-SRRX)sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND6D(!쫂8 ( 8о(־Ǿ,G 8`_`W)H־Jjjjh p̭ fLᶢǾ ת..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:/,s`\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) =)W)@! pZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ f p vۥs׾tؾE` `޾Lp h־Ҿ,G0^W)TP) ecfdپھ׾ؾӾ p$c d pccddީ 8`ȾɾʾNfne}ȾȾI>Ie f`8` P־ǾҾ,G0C f=W)_`:_`蹀:`V)8`MN; b;`;C b N8` G)̀#:蹀:`V)R ޾,N0MHhHh p' L,N HCNh`M`M N N `9V) ` V) ޾ p`  (8` 8`8`(W)`_V)Ij!؍Í`_ FjЭW)`_ Ͼ pH Lh8`jGMоM  G)p pY)ικ`lP *,N!ǾȾɾʾ pǾ~H h8`8`,C  8` ȾɾM$ mHݓǾ phϾ pH Lh8`Ͼо־ǾҾ_` 볩Ӿ pW) "LEC`C )莼 з l6 7= /& /8Hh /` 6Y׾ؾ+پھ p|پɾʾ`HV)jh츾$-#Ͼ p о־޾Ǿ` 8` 8`ɾ)ɾ̸ ɾɾ0miȾ ;τ<:: <`:8` e eվ'OV)Jj зf Ja l + ѱ:ji Ĥ Ƀ B ,  簰 ` l])Y 񩢍`Ⱦɾ0Ǿ p1׾ؾ  p p ٷ H rh(`׾ؾ` : ߭׾t8퍼mؾŰ펼t폼 L28` ˌھپLp k V)@W0!XY X6Y7` YX`X:Y) F з8` # `l׾ XYW0V)4W׾ؾ_`)0%I0)3]8X^YȰ8` 8` p Ⱦɾʾ8`پھW)@%ZȾ pSԩ p`S pLjÍ FN I 9 : ׾hؾ  p hgͺ칾`LٷV)jC mMjà Lp `VJJ°L9Lp з)< L з L緭W)8VJưϥ3 켼 `F`4W)ɐ/XYjV  kimljn` pg׾mȾXhؾmɾYtѮȾɾ aYX`8g@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt NOS ERROR=$XX DIRECTORY NOT FOUND THE FILE IS LOCKED. DESTROY ANYWAY (Y/N)? PATH NOT FOUND DUPLICATE FILE NAME DIRECTORY FULL PLEASE RE-MOUNT PRESS RETURN TO CONTINUE ASSEMBLER NOT ONLINE Ҵ}'*+HFn@KNDME G\IphhL `,LPATH/FILENAME MISSING SYNTAX BAD FORMAT MEMORY FULL BAD RANGE INVALID PARAMETER ALL OR SOME?(A/S)? FILE NOT FOUND FILE TYPE MISMATCH WRITE PROTECTED FILE LOCKED BAD PATH/FILE NAME FILE SIZE MISMATCH FILE TOO LARGE DISK FULL DISK I/O FAILURE PRODv x w`w v`  ɈaaɠaɍHah, ,)`, $,`, ,`, H,`, A,` , ,Liwa@yu:x [ P)@`29-MAR-8456:28 ,0)ɝ H h`Ɍ H Xhލ t/?| ~%)`),- ~ ~L$|Lȹ!H!H`){a)` c ``1 L ` ` `$w0D$S2 ʘ+ C C̞S LL lL   8 A, , A ] A C 6   θ fLֹ fT$S S U 9d Cw, s| 9t 0 C2x3 * L"!݋""0ީ$L"` ۰ ` 8` )`<Ѕ=>0?<>=?=סּ Ȑ#`### ˡ# ̩#`#@ EDASM.SWAP0 (c) COPYRIGHT 1983 BY JOHN O. ARKLEY ALL RIGHTS RESERVED!$L " Ɉɰɺ )m!! ` $ ɈJɰɺ )!!!Lk"!!$Lk" Ɉɰɺ )m!!`é$L"8` $ 8#Ɉ $#! 8#Ɉ $#! 8#Ɉ L" $#!!!:<=>?@AB6!9 B#<$='>.?BCHHL,y`rs / X -r Ler! Le!`ӠҭҠҠŠŠĠӠ΍ĭͭ (2?lkBЅC ,`rs X -Le 6 =Llk@h )`@ 76ȹ@ @ CLL9 9 . F +)L@ L cLZ r 7AY` ':7L 7AY`ʆ` L ):(; LWl4 $;LWZ 9 N ';֞ tt 5 6 L˱L %27QbrL˱s  H+(P [@)@ L˱LPLyL˱ ԩ= C$ C 9L˱Za:xL˱ YL˱ VL˱ l;8 hhL˱Ll8( d88ee `l;> L )ȹ )79L2 ԩ?3 ) `hhL˱ Ԡ C ` +: а2d1*: $0I0 C0f֩ LC>l %9+1;)` 'd АL˱$1A!2A "q#R L˱L ' L$s0 ԩ`{*; _Ѕ`ȦaOP' 9Ѕ`a$^)_!`0` h80a  CLӥ^ G; _{y{^{,{0 $s0_ )_ I@?2 C2Ll CбLТLб8eL8iLТeeL L L˱ʺ% ȺںI-ʺܺ ` íʺ) ! 7H 9hY ҭȺɺCEFGHIJKLMNOPQRSLLСLХLеLеLР8iLХuuiLТeeLаLАLеLе0LеLеLе5ILе5IXYZh[hh) JQJJJ}Ѕ]]Ѕ\l\Ѕ]`Ѕ\J)l\[HXYZ(l"Rŵ4Omo8bkUҵLХLХLСLеLРLS!S!_@1 1?P 4=?2!?I?3!PW?Q EZBP \y?1!~?F |2!WKX!?X ?T!ᢰ?T!?1!?L`@T`?E ¢?D!ӢNBX!@EDASM.EDEDASM.ASMBASIC.SYSTEMѠ5>E!Q#?E!2Z>P m?T!mg>D! r>C!>T!BY!ݔ>T!*>1 >T!(FT!TvEH>*AT ^?R!LAH!?S!-@C!"B ՠР Ѩy ՠŠ@h` ٺ` ` ` ` ː` д`L )& θ fĺź ʈL 8` º,ƺ$ĺ͌ź퍺΍Ό(`8`HJJJJ h) 0:i`$S S ︩ L θ ɠ㩀SL˱  DEFD  ALw? ` ƿ` ƹ`  7NH =h(`  ` ƹ`@LyL,8`LQ @Ⱥɺ ǺF Ly˺Q`) A@` ȂLyú` Ly`H &; Ԡ R 1'; ԩ C @ < < <  ԩ$ C C C ! L˱tB3%q'qBQt&Y L˱t  `   ׆t 3c9c67%: W CRL˱ %9':&7 3'r&r t c5c7l; )8l+; )3:l; )(1*2 r L˱ z F .Li  )4$( J$1I ɃL.!$9 Lz)2  `Jh[ L u 7SAfc զ%ʆbg z ON TEXT DATA = XSAVE FILE TYPE = XSAVE AUX TYPE ɠ` B` GLQ뺩 Í꺭Ⱥ躭ɺ L˱ PRODOS EDITOR-ASSEMBLER // RELEASE 1.1 ٭ BY JOHN ARKLEY Ԡé[A<$>ADRS][A<$>ADRSL<$>LGTH]A<$>ADRSL<$>LGTHd*`iH)JJJJ 0h) 0`-fj:q nm  n)? 2rs) 2opJ 2klH) 2deh)(jJJJgJmgʠfʈ`BYTES USED BYTES REMAINING BYTES USED BY N#/RANGE ERROR $0EDASM.AUTOSTX>ՙՙ }ǝ֝qߝ㝢  ) LINE# > .STRING. .OLDSTR.NEWSTR. PATHNAME<#> # OLDPATHNAME NEWPATHNAME eکݺ Ѻ㺈޺ߺÍܺȺںɺۺ L˱LC H ChLCtL` ~)q'q*q~惥~ŀ~ %7` C` hLCMD SYNTAXNUMERIC OVERFLOWPARAMETER(S) OMITTEDUNKNOWN COMMANDMULTI BUFFEREXEC NESTBAD LINEL m G A)`8` O 39l  :9%2r LȺ ˺L #7Lt;:l :l99'9)9 O  L eڥQ Ѻ㺈 ںȺںɺۺ L˱ O lZ99 ِLL˱l:l9L ץ LL㙥   LL }} t Y} }0ɠ0۩ ͙L {8-LL A t ĚLL`L A t ĚL$LY t ` t -&&&&L mKl t m= llɘu&&&&ee&&eL` l`XhhL:0)`8` ` Y {L L Y, L ͙ L  L ʠ! "L` , ͙?, "L ͙ 8FH, 28:< X>@ B &T  V(;l՝҆ҁvUֺj ՛՛0d2Sۥ]ݬՁՉՎF#HqmILC LLL  0 "$ "$NPD" Z( \L R.4*̲  &Jң6пoL.H hLɓ,Ƀ8`ɠ` ݰ`L `)_`t h _`Y$- , @!@@Y@L˱L>h)2 (:YlRL_L˱$ L θ 4魇C ; ݰ CHehe L ,eLFd թ L L H hLh fdLHhe% (8`  uL (ۥzyhhhhL˱  (`, he`J 7 kmlnYA!:JLc):I W *9`ffgLBۥgb J۩ CLFӅ% ka` zإyzy sۥzy LX۩ga 9Lsۥ%b J 9b J  )3CQHH hhLڠedeH   (ۤeh ܤe 'W$dHL7'xJ   ȱ %:'9 ):(; )9 eL˱ 3LȺ躭ɺ麥Q뺩Í꺩캍 L θLڢ θ fL ٭ 'L  IA)IQJQ!:BQ$~q*q%H (h%b ~a9a:$c rL˱Y N uLB *4 $9Y C/ CN C 7H  h` C CLCBZ lx ; Ԣ ٰmmʆL˱L8   ŠҠî @ )p ş(L>թTL˱t  CL9  2P(TD D1Q - 9κ ©/ C θ+ ʤLըѨ' Q 9 2 9 9d mѨ)  9 ݐ *L˱f Cf`0 şfѨa)Ҩ/Ѩх  E T>̺ͺ= Ϻк& ̺8ϺHͺкh  9  9`Ѩ NAME TYPE BLOCKS MODIFIED CREATED ENDFILE SUBTYPEBLOCKS FREE:xֈֽ֠&9KZnׁ # ELIF ERRORS IN THIS ASSEMBLY** SUCCESSFUL ASSEMBLY := NO ERRORS WARNINGS IN THIS ASSEMBLY** ASSEMBLER CREATED ON ** FREE SPACE PAGE COUNT** TOTAL LINES ASSEMBLED PRESS RETURN TO CONTINUEASSEMBLY ABORTED. PRESS RETURNjƚ*~*,z?,zX,zN ȱȱ$0  LK   Lc Ӱ日ś 3zLL`$ e}}~}~` ,``yHzHH Kƥy`zahhzhy`$9JSl~Ռ՟ժ&;MZhee6$6eufu$2eeeeѱ L҈ѯ0ȱѱ210(8%8姅娅0L椥Ŧ LѥţL ˘ LYx}ȱ}Lҩ TVWXYZ[\]^_`abcdefghijklmnop ~Iȱȱyȑy$ ȥyȥy ѐyzyyz$ Ƙ$iP ѝ$LЩi`SYMBOL TABLESORTED BY SYMBOLADDRESSie憥yŇz到$ eyyz檥ef`Ff`8姅娅膣0`$vLnѩ$iP)iWɽXʢ ^rѝ^ѝefe$0dc΅τ#cȱcȘe΅ΐȘeccdedf̤Ϧʆefcdcd$ eey}fiz~ LYxL$0 ȱi 9 78eT  ݐL˱Lȱ1) CL9(LܪIJH) ChL9L9 62Ơ  D*< =>/? ,klmno`,L EDASM.SWAP!\ C 93 C,, 0 ^ 0 5,ɕ$(0 ) ЉH)h CL9é,)   )ɀ`PP767 CP998`7/ Ɂ, ,L৩, ,@ V٢67$89`iU9INTIVRBASVARRELSYS$(, S),`HH(h0h(hN OH?%Oh,(,`l8%u,uu` 5 h`)_]g,P0NPJg][B @ | @LI $up ,c  @ Y8` V8`g`.) .   C =:i$` / 0 `...8 ` O` JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECŠ(UNKBADPCDPTXTXTPDABINFNTGRFBA3DA3WPFSOS$0D$0EDIR$U0$U1$U2$U3$U4$U5$U6$U7$U8$=I訍樮稠F = P䨮 )*!, P`_`ҨJѨH)h****)  md8`ԨHӨ< ꤩ:h  ( ꤈{찥-Lid `H) hJJJJ 0L 9L˱ 'RL 9)dPfS Cdɀ)pJJJJ 0 C, CD C1(2 C C= C C/ C Cf 9d)iЗL˱ TѨ)Ѩ @ ,PbN?0Hh,PIN'RH LAH BLOCKS USED: TOTAL BLOCKS:  C,P ȹ C`ѨH)ѨҨ CѨhѨ`$d ʬ8` ʤLLdd d`=/( 6LLL˱(ȹ !ʎ Lo ǼL̀ CENIL NI RORRE UNDEFINED IDENTIFIERDUPLICATE IDENTIFIERUNDEFINED OPCODEOVERFLOWRELATIVE EXPRSN OPERATOREXPRESSION SYNTAXEQUATE SYNTAXINVALID IDENTIFIERDSECT/DENDSYMBOL/RLD TABLE FULLASSEMBLER PARAMETERINCLUDE/CHN NESTINGMACRO NESTINGMACRO ARGUMENTADDRESS MODERESERVED IDENTIFIERMACRO FILE NOT FOUNDDIRECTIVE OPERANDBRANCH RANGEBYTE OVERFLOWINDIRECT SYNTAXINDEXING SYNTAXINDIRECT REQUIRES ZPAGEINVALID AFTER 1ST IDENTIFIERSW16 REGISTERINVALID DELIMITEROBJ BUFFER OVERFLOWOBJ BUFFER CONF}ХѠ`mm,,`ab`0 y z?ܞ^ …腺}~ |`ͩ0`8fȹ! %~_?ȹ yLx^Ȅ`ι@)" %~ȹ !@L|ΎL(}^^?_Mߔ_M,`xP)6(Ơwtuބ |„넬ikloDFHvsjȄhDE ?DF€DρDӁ DSECԀdD׀fELSŀENTRفCEO@EQՁ0EXTR΁FAÌFI΀IBUFSIځIDNÙ]IFEсIFGŁIFGԁIFNŁIFLŁIFLԁINIINCLUDŀ_IN@INTERЁ0IN NIN OJMPJSSL@LDTLD@LD@LD@LD']LDcLSBCBCBEBGBIB`BLBHBMHBMBNHBN BNMHBNHBHBP!BHBR"BR #BRXBHBSXBV$BV%BHCH΀CHҀCL &CL 'CL (CL )CM*CPIPCP@CP3CP6DATŀD€DCɀSDC@DD€DE9DEƁCCCCCCCCCCC@@@@@@BBBBBBBBBB@@@@@@ADAD@AN ASÀASBH@ 0Pp))))))))))))))))))))))))))))))))))) ٠  $#*).meiu}yqar-%)5=91!2 ,$4<0PpX:ʈMEIU]YQARLl| NFJV^  HZh(z.&*6>nfjv~@`8xdt     `LICTINVALID FROM INCLUDEBUFFER SIZE>255 EXTRNS/ENTRYSDUPLICATE EXT/ENTSWEET16 OPCODEEXTRN USED AS ZXTRNORG MUST BE > $1006502X ADRS MODE/OPCODE----- NEXT OBJECT FILE NAME IS SOURCE FILE # INCLUDE FILE #ة٠ ؠ/Ƭ.ș0ș`@v` L|v )pٞڞs۞ ؞snh@(E'. Bv 76ȹ@^ L }nL}P }oL}$p ȹ@-@ "!B k `ȹ@I0 ȹ@I0 }`L|.OBJ0 `a{)`gB ,| `y{z| Lx$0P  Ly*;LI ` È)0  yL~) $0 ȥ}ȥ~L~ $˩  yee  4 9  y$P$ XgHg 兪hg` ,$ yLX8f쥘5HH 兰hhLf쥟( yhhe}e~g0$0$0 րƠƟL }~LD` րƠƟL` ^p 兦pgpxʊ >pxI L5ȱ ⚩hΩׅ ~Ω ~ 3zL8}~HH Lm hhL$pL8僨儰 yLx$ii U}~LX$0 P)?`8` LP$p9-$8 yLXeşf堰Хх LXeȥ}eȥ~eef8eeefeХfѐ yLx`g  g $, y`,z@)ˑȥȑLX ɥťg$0 L/$pL $F yHH ߙ B)hh ôLB$ ڤ8`0 )H) ˅h`H )J&J&ץH  hhHy) L})J&J&J&hEH h ) f f fFhE תh` Ly X AY 8``H 8h`׽ eׅةi٘eeؘȑef؈eeef e e)ehɁ @` P` L TJ uv` T&&&8寪尐柈`E̅˥II8 ˅ee`+-*/!^|r_8`%%`EE` =؄٠ȱ۩e憠  х)х  eheHhL&` ` È602)$ @ y)) g ȱ`g,z L `'ȱy Lȱy'`* ˥}~`%2$@H8 P4:ŧ* &&֢ y>-+ ņ0}ȱy݇0,g $ L$ $0$ L'0Υ ɀ`˅̩˽HH ņ`hh$  (,)` T ELy80e( ` H  ,z` @4 y8` &ɠ y0(L;舽 p 兦p٥)4H yh8`J` ȰpHH p`хޅ))8`E yp`A 8`$0˅ 恩y<~ L֒@ `âr 4 %y ,Ùrrå  `ȱȱ 4$0W,؄X,zX 7x# %)#i$c  ) ) â y0pC=9 )膣 入g$"ɴ yL8壪8}~`'` 4<:Zdtz .f@8@ ߅ E Q Ȑ  xȱHȱHx``08Șe憠 Q ť 0  yLL8`$ Ӣ Q  LЃ ! 4 T@¦  LL  %y  `ȱyH()`ȱy_H()`y eyyezz`y eyyezz`e}}~`eL倐6 yLxŕ喰`0`Ƀw8`gɈ ƒƓɕ 擥(ɠɏ8fh`ɎFh``, { j,ɍ {`) T 7 :8hzhyx`FINELSE$0`H8ХѥeХfѐ yLxʊ 0 @  heЩeЈ 0Α`$`aiii`i`aiaإg$h0 `y ȱy `H yLs膧,z"ţ 襠覣EA >Lo )栥& y襠 b K L-Lx$$ $$$h08`   `$0pP ģ$p l`$0p急ŕ喰`LLxyHzH b K L@~g*h 3z ,|ɀ  `Ȅݥy{z|$0P F y*;  4 9  yLo,ɃLzɁ녙Lo X',z!C y5K Я5?)   ߅)e مݹ5$0 y!н Tg ( Lƌ RLg R bLLg b`eυϩ`!` ^ 兄xg  >xILȱy! Tg (L&Ln RLLi 恅 Tg_!ȱyŅ 숄 T (  0$0 (LD ɂ$ LbȱyŅ bLLH ֍hLL O! NF  ,LLL 恅 TyŅ LPgLNʠ!L bO YN g 3z8FGfhL" 8NM U`jνkϱΑ Mv UuϼtΥ ? @vΈȘƝ`ϝa` tuWk~ }L BMhh8`mխm֩ ՠ BƝM՝j֝kt`ua@L` k~ ruhh` <k% ˅$Hv H B`՞֞HHH  hHkԞמ Ӟ Bhhh`0 yz`$p0LݜƽLL,LP yjzk `yaz`  aL8`ʆƽ`yaz L,LPХѥ8ş堰  ⚈L ⚥ХѥcidiLQȱ)" ij ȱ ȱ LȘeief $ U ⚥ ⚢ i[0:Ahhh`uHHuH h枥ȍО ĢJF'[BE Ξ BǍÞȍĞBƞ ž!F yLx  B ĢǍxȍyazb{ w B|k`HH hH  șhh`kҞ ў Bk`$`PHHH0L8 $d G k M jhh` PAGE HJJJJ)P 0 ,zh`%  ` LH hH , , h`h LH6h6` (!` ݘ L L3zv` (2LL 兰!  兰 4,$ yLL$`ׅ΄Ϣ ~m = > Ǫ8iΤȐȄ ~ ݘ!  Ǫȱ `L0 4 Ӣ QL¥g'dfceLSrghЅѥH 4  h LL,g/H 9hW$WW8H}wwheddfňLLȥȩLX L3 I1g>ȱy, T 3z>   q y   zgLLL:ERULIAF  g LL 4&"  8f8emm LLLd@ LjǠ  %~ @ Bȑ@ Ǩ `g$h0gǠצ"0 0 0ЧСL8fBLLBLLLLgBF 4 D . È6˩ LX,z$,z) LX 児$,>,@, yLXg\ 4 K È#}H~H~} ˩0 h~h}#0)Щ,zХ 0 3zhh K L-  8` gLNe!ąd솣 (L5 (LD L!0F}~ԩ}~LL}~ԅgFLL yLL g@LXEJLLLL @ 30ҥ /O+ "BΕ  ,LLL8fhLLCUEWGAVSg  LLL@ig7 恅 . TpȱyŅ #ȩi LpLKgLL   6 恅  Ņ  LLgLL 󦟩  }L! Bu u՝r ͩ©yrz` a$0ʆLH`za8fh`HHz`a hh`$0p $p &8f8``&&X :0( `Ϲ1$r8f8` 0`)Ġ0rr8`r蹀r8`HH yhh`80)?i@Ip` HWǽXȊ WɽXʆh`s zL-xhhH 3zh Lx^!ttsŠy ȱl蝀igt 9 X   (L $ `dm &m &m &m &mlemmli`{g8s [t0{2H* Lh2  Xȱl i L `κºú` Эht X l)lhЏL2  9 X [ J  dgdshUj" !# wgjdg. wg'g%s wghg%s w h ɍ1Ɋɋɉɛ kʽ/`L2LY g Xqstuvwxyح o âXoύX`1e0e21ʆe dk)i/ k Lkdha+ # nrdcddpqt$q0c)crorcc0enib ` r )pqn  ~ ALL RIGHTS RESERVED * REP 40 SKP 8 REP 40 * * RLD ENTRY FORMAT * * BYTE 0 : FLAGS * $80 - 2-BYTE VALUE * $40 - 1-BYTE HI HALF (<) * $20 - 2-BYTE REVERSED (DDB) * $10 - EXTERNAL REFERENCE * * BYTES 1-2 : FIELD OFFSET FROM * LST ASYM SBTL "BASIC.SYSTEM RELOCATING LOADER" REP 40 * * RELOCATING LOADER * * THIS PROGRAM WILL LOAD AND * RELOCATE PROGRAMS GENERATED * BY PRO-EDASM DISK ASSEMBLER. * * JOHN ARKLEY 02/22/84 * * COPYRIGHT 1983 BY: * JOHN O. ARKLEY * * ȱ M   | L  ȱ M   | L a ,L m m `HHH ޾ p hhh`HH ־پھ ׾ ؾ p  hh ` hhL , , {}    8ɾȾоǾ p 8   m  m  پ ھ ׾ ؾ ־ pL | | m  | (m    , r0+p M  | L  | M L - lm40ǾȾɾ p )/芈/  , , LQ"Lu~ " Έ p  sξtϾ pо | | 芅 t8    a о־۾ܾ p V g  ! "#`ޅ VL о޾ pL ` @!A8m@0 /@ !q@8@8e@@AiAP`L$lm50ǾȾɾ pL )/芈/ȽRLOAD pL  L sξtϾ p߭оǾ ptȾ"پɾھ׾ n!ؾɾm!#"s#tL START OF PROGRAM * * BYTE 3 : LOW ADDRESS VALUE * FOR 1-BYTE HI HALF, * * EXTERNAL NUMBER FOR * EXTERNAL REFERENCES * REP 40 * * NOTE: THIS PROGRAM HAS BEEN * WRITTEN TO BE RELOCATABLE * BY THE ULT SBC TEMP ; ORG ADDRESS STA BIAS LDA ADDR+1 SBC TEMP+1 STA BIAS+1 * * -- NEW BASE ADDRESS IS EITHER * DEFAULT OR USER-SPECIFIED. * LDA ADDR ;BASE=SPECIFIED STA BASE LDA ADDR+1 STA BASE+1 * LDA VAL CLC ADC BASE STA TEMP LDA VAL+1 ADC BBAK DOWN 1024 BYTES STA $BEC8+1 LDA #0 STA $BEC8 LDA OREFNUM STA $BEC8-1 ;STORE SETBUF REFNUM LDA #$D2 ;SETBUF CALL JSR GOSYSTEM BCC MOVEDBUF LDA #12 ;NO BUFFERS AVAIL ERROR JSR ERRXIT MOVEDBUF EQU * LDA ADDR ;SET BIAS TO SEC ; EXCLUDE THE DEFAE, ETC HAVEROOM EQU * LDX VAL+1 ;HI BYTE OF CODE LGTH LDA VAL BEQ *+3 ;SKIP INX IF PAGE SIZED INX TXA JSR GETBUFR ;ASK FOR SPACE BCC GOTSPAC LDA #14 ;PROGRAM TO LARGE ERROR JSR ERRXIT GOTSPAC EQU * STA ADDR+1 ;SET NEW LOAD ADDRESS SEC SBC #4 ; STA ADDR+1 LDA ASHIMEM+1 SEC SBC ADDR+1 STA ADDR+1 LDA #0 STA ADDR ;ADDR= NEW HIMEM LDA MYENDPTR ;OVERLAP MY SELF? CMP ADDR LDA MYENDPTR+1 SBC ADDR+1 BCC HAVEROOM LDA #14 ;PROGRAM TO LARGE BOYS ERRXIT JSR CLOSE JSR ERROUT ; ISSUE PGM TO LARGIMEM+1 STA OSYSBUF+1 * LDA #FOPEN JSR GOSYSTEM ;OPEN THE SUCKER BCS MYERR1 ;BOMB IF NEEDED * LDA OREFNUM STA MYREFNUM JSR READBYTE STA VAL JSR READBYTE STA VAL+1 TAX ; MOVE LGTH HI TO X LDA VAL BEQ *+3 INX TXA ; A-REG:00= LGTH ROUNDED UP ;GET FILE TYPE CMP #$FE ;REL TYPE ? BEQ RELFTYPE LDA #13 MYERR1 JSR ERROUT * * -- OPEN THE OBJECT FILE. * RELFTYPE LDA FIAUXID ; SETUP ORG ADRS STA TEMP LDA FIAUXID+1 STA TEMP+1 ;SET ORG ADRS HI LDA ASHIMEM STA OSYSBUF ;SETUP OPEN BUFFER LDA ASHLOAD AT WHAT ADDRESS?? * LINDONE DEY TYA LDY #0 STA (PTR),Y ;SET TOTAL PATH LGTH LDA #0 ;SET DEFAULT ADDRESS STA ADDR STA ADDR+1 LDA #10 STA SSGINFO LDA #FGETINFO ; JSR GOSYSTEM ; GET FILE INFO IF THERE BCC GETIOK JSR ERROUT GETIOK LDA FIFILID * -- PICK UP FILENAME IN CALL LINE * JMP CHR1ST STNAME STA (PTR),Y INY CPY #126 BGE LINDONE CHR1ST JSR CHRGET BEQ LINDONE BCC STNAME ;A DIGIT IS OK CMP #'"' ;END LITERAL? BNE STNAME ;SO, STORE IT JSR CHRGET BNE SNEXIT ;SYNTAX ERROR EXIT * * -- $2C ;SKIP 2 BYTES RNGERR LDA #2 JSR ERROUT ;GO TO ON ERR HANDLER CHKIT BCC SNEXIT ;A DIGIT IS NO GOOD CMP #',' ;A SEPERATOR? BNE CHKQUOT ;BEGIN LITERAL JSR CHRGET ;NEXT ONE JMP SKIPIT CHKQUOT CMP #'"' ;THE RIGHT THING?? BNE SNEXIT ;GOT TO HAVE ONE *(PTR),Y ; NOW HAVE "CNT./VOLNAME/" HAVPFX EQU * LDY #0 LDA (PTR),Y ; FETCH LGTH OF PATH TAY ;SETUP Y FOR STORING INY ;POINT TO NEXT AVAILABLE * -- VERIFY PRESENCE OF ," OR " * MSB OFF JSR CHRGOT ;GET FIRST CHAR SKIPIT BNE CHKIT SNEXIT LDA #11 DFBSBUFADR STX SBUFADR+1 ;USE BUFFER +1 LDA #VONLINE JSR GOSYSTEM BCC LASTVOL ;MAKE VOLNAME INTO PATH JSR ERROUT LASTVOL LDY #1 LDA (PTR),Y AND #$0F TAX LDA #'/' STA (PTR),Y INX INX TXA DEY STA (PTR),Y ;SET LGTH= VOLNAME+2 TAY LDA #'/' STA PTR+1 LDA #0 TAY ; ZERO Y ALSO STA (PTR),Y ;ZERO THE PATH CNT LDA PFXCNT ; IS THE PREFIX DEFINED? BNE HAVPFX ;YES. USE IT AS IS LDA LASTDEV ;GET UNIT# OF LAST DEVICE USED STA SUNITNUM ;SET UP ONLINE CALL LDX PTR+1 LDY PTR INY BNE *+3 INX STY QU $F2EF ;ROM ASOFT DOSBACK EQU $03D0 ;RETURN TO DOS GETBUFR EQU $BEF5 ;BASIC.SYSTEM PAGE ALLOCATOR INCLUDE REQUS.SRC * PAGE * * -- START BY SETTING DEFAULT * DRIVE/SLOT TO CURRENT ONE. * ORG $0800 START EQU * LDA VPATH1 STA PTR LDA VPATH1+1 STA 'SCANNING' METHOD; * IT MAY BE DISASSEMBLED BY * A SIMPLE RELOCATOR, WITHOUT * BENEFIT OF AN RLD. * REP 40 PAGE * * -- PAGE-ZERO FIELDS * DSECT ORG $06 ; * TEMP EQU * PTR DS 2 ;WHAT IT SEZ... ADDR DS 2 ;LOAD ADDR DEND * * -- EXTERNALS * *HNDLERRX EASE+1 ;CALC END ADRS LIMIT STA TEMP+1 ;AND SAVE FOR LIMIT CHECKER LDA VAL STA RWCOUNT LDA VAL+1 STA RWCOUNT+1 ; SET RWLENGTH LDA BASE STA RWDATA LDA BASE+1 STA RWDATA+1 LDA MYREFNUM STA RWREFNUM LDA #$CA ;READ CODE SECTION IN 1 SHOT JSR GOSYSTEM BCC RELOC JMP ERRXIT ;EXIT WITH SOME ERROR * * -- GET RELOCATION DICTIONARY * AND RELOCATE THE PROGRAM. * * RELOC EQU * LDA #0 STA VAL ;CLEAR IT STA VAL+1 JSR READBYTE ;GET FLAG BYTE STA RLDFLAG ;SAVE RLD BYTE JSR READBYTE ;GET OFFSET LO CLC SBTL "APPLESOFT II REL BOOT" ******************************* * * * RBOOT -DYNAMIC BLOAD OF A * * BINARY FILE JUST * * AFTER APPLESOFT II * * END OF NUMERIC DATA* * AND RELOCATE & RTN * AS VAL DB $EE,$EE ;ARITHMETIC ACCUMULATOR BASE DB $EE,$EE ;NEW BASE ADDRESS RFLAG DB 0 ;RELOCATE YES/NO RLDFLAG DB 1 ;FLAG FROM RLD RDBYTE DB 0 MYREFNUM DB 0 ENDSELF EQU * - DW'S FOR RELOCATOR! * BYTPTR EQU *+1 BIT RDBYTE MYENDPTR EQU *+1 ;RELOC'D WORD WITH END ADRS IN IT BIT ENDSELF BRK ;TERMINATOR OF CODE SEGMENT FOR SCANNING RELOCATOR! PAGE REP 40 * * READ/WRITE DATA AREAS * REP 40 * BIAS DB $EE,$EE ;RELOCATION BITA? BNE RDBYTERR LDA #0 STA RDBYTE RDBYT1 EQU * PLA TAX ;RESTORE X PLA TAY ; AND Y LDA RDBYTE ;GET DATA BYTE RTS RDBYTERR JSR ERRXIT ;EXIT WITH AN ERROR ERROUT STA $2FD PLA STA $2FE PLA STA $2FF LDA $2FD JMP $BE09 ;CALL ERROR HANDLER * * - * READBYTE EQU * TYA PHA ;SAVE Y TXA PHA ; AND X * LDA MYREFNUM STA RWREFNUM ;SET READ REFNUM LDA #1 STA RWCOUNT LDA #0 STA RWCOUNT+1 LDA BYTPTR STA RWDATA LDA BYTPTR+1 STA RWDATA+1 LDA #FREAD JSR GOSYSTEM BCC RDBYT1 CMP #05 ;END OF DA;SAVE A REG TOO TYA PHA ;SAVE Y TXA PHA ;AND X * LDA MYREFNUM STA CFREFNUM LDA #FCLOSE JSR GOSYSTEM BCC *+5 JSR ERROUT PLA TAX ;RESTORE X PLA TAY ; AND Y PLA RTS PAGE REP 40 * * READBYTE - GET BYTE FROM FILE. * * OUTPUT: AC=BYTE * REP 40 INTO THE FAC AND RETURN * SKP 4 ADD EQU * ;ADD RELOCATION BIAS CLC LDA BIAS ADC VAL STA VAL LDA BIAS+1 ADC VAL+1 STA VAL+1 RTS ;ALL BYEBYE.. PAGE REP 40 * * CLOSE - CLOSE A FILE. * * PRESERVES AC,X,Y * REP 40 * CLOSE EQU * PHA ADDR),Y JSR READBYTE ;EAT REF NUMBER JMP RELOC ;CONTINUE RELOCATION SKP 4 EXIT EQU * JSR CLOSE ;CLOSE THE FILE! LDY BASE ;GET START ADRS LDA BASE+1 BIT $C081 ;ENABLE ROM BASIC JMP $E2F2 ;AND CONVERT ADRS TO * A FLOATING POINT NUMBER * UFF IT BACK JSR READBYTE ;EAT REF NUMBER JMP RELOC ;CONTINUE RELOCATION * * -- IT'S A 2-BYTE REVERSED. * SIZE2R EQU * LDA (ADDR),Y ;GET IT STA VAL+1 INY LDA (ADDR),Y STA VAL JSR ADD ;ADD RELOCATION BIAS LDA VAL STA (ADDR),Y DEY LDA VAL+1 STA (ZE2 EQU * LDA #$20 AND RLDFLAG ;IS IT REVERSED? BNE SIZE2R ;=>YEAH. A DDB! * * -- IT'S A 2-BYTE NORMAL. * LDA (ADDR),Y ;GET IT STA VAL INY LDA (ADDR),Y STA VAL+1 JSR ADD ;ADD RELOCATION BIAS LDA VAL+1 STA (ADDR),Y DEY LDA VAL STA (ADDR),Y ;ST -- IT'S A 1-BYTE HI HALF. * SIZE1H EQU * LDA (ADDR),Y ;GET OBJECT BYTE STA VAL+1 JSR READBYTE ;GET ADDR LO STA VAL JSR ADD ;ADD RELOCATION BIAS LDA VAL+1 STA (ADDR),Y ;STUFF IT BACK JMP RELOC ;CONTINUE RELOCATION * * -- IT'S A 2-BYTE ADDRESS. * SI2 ;2-BYTE ADDRESS. BVS SIZE1H ;1-BYTE HI HALF * * -- IT'S A 1-BYTE LO HALF. * LDA (ADDR),Y ;GET OBJECT BYTE STA VAL JSR ADD ;ADD RELOCATION BIAS LDA VAL STA (ADDR),Y ;STUFF IT BACK JSR READBYTE ;EAT UP REF NUMBER JMP RELOC ;CONTINUE RELOCATION * *S LDA ADDR CMP TEMP LDA ADDR+1 ;IS ADDR OUT OF RANGE SBC TEMP+1 BCC INRNGE ;ADDR < END+1 (TEMP) SYXERR LDA #16 ;RETURN SYNTAX ERROR JSR ERRXIT INRNGE EQU * LDY #0 ;INDEX FOR ALL LDA #$FF BIT RLDFLAG ;CHECK RLD TYPE BEQ EXIT ;=>ALL DONE! BMI SIZE ;ADD TO BASE ADDRESS ADC BASE ; TO GET THE STA ADDR ; NEW ADDRESS PHP ;SAVE CARRY JSR READBYTE ;GET OFFSET HI PLP ;RESTORE CARRY ADC BASE+1 STA ADDR+1 * LDA ADDR CMP BASE LDA ADDR+1 SBC BASE+1 ;IS ADDR < BASE? BCC SYXERR ;YES. BAD NEWS BOY* AFTER SETTING UP * * APPLESOFT USR JMP * * INPUT - * * THE NAME "RLOAD" IS* * ASSUMED. * * OUTPUT - THE APPLESOFT USR * * JMP VECTOR AT $0A * * POINTS TO THE BEGIN- * FILE LENGTH STA ENDPTR ;SAVE LOW END ADRS STA RWCOUNT ; TELL READ HOW MUCH LDA SEOF+1 STA FILGTH+1 ;SAVE LENGTH STA RWCOUNT+1 ;FOR BLOCK READ LDA #0 STA $8 ;CLEAR IT STA RWDATA ; READ TO A PAGE BOUNDARY STA LOADPTR ;SAVE PTR TO MODULE LDX ARY JSR GOSYSTEM BCS ERRXIT ;CLOSE & EXIT ****************************** * NOW SETUP FOR BLOCK READ * OF THE BIN FILE * AT FIRST PAGE BOUNDRY * AFTER END OF CURRENT * APPLESOFT NUMERIC STORAGE ****************************** LDA SEOF STA FILGTH ;SAVEA OSYSBUF+1 ;SET BUFFER ADRESS FOR OPEN * LDA #FOPEN JSR GOSYSTEM ;OPEN THE SUCKER BCS MYERR1 * * DO THE GETEOF CALL TO XDOS * TO GET THE FILE SIZE * OF RLOAD FROM DIRECTORY * LDA OREFNUM STA SREFNUM ;SETUP FOR GETEOF LDA #GETEOFR1 JMP ERROUT ;OUTA HERE... BRK ;TO MONITOR IF I COME BACK * -- FROM THE GET FILE INFO DATA * LOAD ADDRESS,FILE LENGTH * GOODFILE EQU * LDA FIAUXID STA ADDR LDA FIAUXID+1 STA ADDR+1 * * OPEN THE FILE LDA ASHIMEM STA OSYSBUF LDA ASHIMEM+1 STCC GETIOK ;GOT FILE INFO JMP ERROUT BRK * * -- GIVE 'FILE TYPE MISMATCH' * IF FILE IS NOT BINARY... * GETIOK EQU * ; LDA FIFILID ;GET FILE TYPE * CMP #$06 ;IS IT BIN TYPE BEQ GOODFILE ;=>SURE IS! LDA #13 ;ON ERR CODE FOR FILE TYPE MISMATCH MYERINY LDA RNAME,X STA (PTR),Y INX CPX #5 BCC RNAMELP TYA LDY #0 STA (PTR),Y ;SET LENGTH TO TOTAL BEQ USEDEFALT ;SKIP THE TEXT RNAME ASC 'RLOAD' * * --- LET'S GETINFO FOR RLOAD * USEDEFALT EQU * LDA #10 STA SSGINFO LDA #FGETINFO JSR GOSYSTEM B BRK LASTVOL LDY #1 LDA (PTR),Y AND #$0F TAX LDA #'/' STA (PTR),Y INX INX TXA DEY STA (PTR),Y ;SET LGTH= VOLNAME+2 TAY LDA #'/' STA (PTR),Y ; NOW HAVE "CNT./VOLNAME/" HAVPFX EQU * LDY #0 LDA (PTR),Y ; FETCH LGTH OF PATH LDX #0 TAY RNAMELP YES. USE IT AS IS LDA LASTDEV ;GET UNIT# OF LAST DEVICE USED STA SUNITNUM ;SET UP ONLINE CALL LDX PTR+1 LDY PTR INY BNE *+3 INX STY SBUFADR STX SBUFADR+1 ;USE BUFFER +1 LDA #VONLINE JSR GOSYSTEM BCC LASTVOL ;MAKE VOLNAME INTO PATH JMP ERROUT E THAT VOLUME IF PREFIX IS NULL ************************************ BEGIN EQU * LDA #$FF STA $8 LDA VPATH1 STA PTR LDA VPATH1+1 STA PTR+1 LDA #0 TAY ; ZERO Y ALSO STA (PTR),Y ;ZERO THE PATH CNT LDA PFXCNT ; IS THE PREFIX DEFINED? BNE HAVPFX ;26)+PEEK(527)*256=LGTH OF MODULE LOADPTR DW 0 ;PEEK(528)+PEEK(529)*256=LOAD ADDRESS USED ENDPTR DW 0 ;PEEK(530)+PEEK(531)*256=END OF LOADED MODULE ************************************ * * --- GET LAST DISK DEVICE FROM * XDOS GLOBALS PAGE AND * US2 LIKE CHAIN ************************************ JMP BEGIN MSB OFF DO 0 ASC 'COPYRIGHT (c) 1983' ASC 'BY JOHN O. ARKLEY' FIN ORGENDHI DS 1 ;ALIGN THE 4 PTRS ON EVEN ADDRESSES ADDR DW 0 ;PEEK(524)+PEEK(525)*256=ORG ADRS OF MODULE FILGTH DW 0 ;PEEK(506 ;PAGE ZERO WORK USR EQU $0A ;USR JMP FOR ASOFT II A1L EQU $3C A1H EQU $3D A2L EQU $3E A2H EQU $3F A4L EQU $42 A4H EQU $43 A3L EQU $40 A3H EQU $41 INSDS2 EQU $F88E LENGTH EQU $2F * ARYEND EQU $6D ;AS II PTR INCLUDE REQUS.SRC ORG $0218 ;START ADDRESS=58 NING OF THE MODULE * * * * DESTROYS: AC,X & Y REGISTERS* * * * COPYRIGHT 1983 * * JOHN A. * * * ******************************* PTR EQU $END+1 INX INX ;UP TWO FULL PAGES JUST FOR FUN STX LOADPTR+1 ;SET UP LIMIT STX RWDATA+1 ; SET READ ADRS HI CLC LDA SEOF+1 ;GET LENGTH HIGH BACK ADC LOADPTR+1 ;AND CALC END OF LOAD STA ENDPTR+1 ;AND SAVE IT ******************************** * NOW CHECK TO SEE IF ENOUGH RAM * IS AVAILABLE TO LOAD IT INTO ******************************** LDA ENDPTR CMP ASHIMEM ;LIMIT IS CURRENT HIMEM LDA ENDPTR+1 SBC ASHIMEM+1 ;FOR APPLESOFT BCC LOADIT LDA #14 ;PROGRAM TOO LARGE ERROR JMP ERROUT LOADIT EQU * L 8ȱ 8 8)v$L%ȑȩȑȭ8 8 ȑȭ 8ȩ % h&L$ )&ȥL$ 3ɨ L% 3L%$0? 8 :788 80. 88$ 8m8 8 8m8 8 8e 8 8e 88ȭ 8 @ȭ 8ȭ 8 %( 1( 8 8:8 :8m8:m8:9: : H3o 5 9% L6m(: m): 8儍(:免(: 2m(:$: m(:%:8(:&:):': b3Е 9%9 Y4慬88C8 5 L%)ȑ( 걄Ȫ0 8ȱ 6(, 5 2"ȝ?7?7`@ 5/. 5 A [A`33`66=9`?7?7=9` \" 9 R: L: 5Q:_:b:c:` 3 4 (Gq888L" 5 !4  1L6L5敩LR% h4 3 5H 4 4h !L $ i"L"6H6H`L58 !`L58 !`L58 !`8 8L5 4 5 58 8 8`L 68 8L5888`L5 4 57+- 5 6L5 5,L!` 4 5 2"ș6 hxʚH(X)6I=XXʝX8866=9 9HFA 33 4=9ɃLO6)>9 9@DEF 59999 98 3 4 5 !4 h4 L5 4 4CHNG TYA ;LENGTH TO A SEC ; LEN+1 ADC A3L ; PLUS PTR STA A3L ; TO PTR LDA A3H ADC #0 ; ADD CARRY STA A3H ;NXT INSTR CLV BVC RELOCLP RELOCD EQU * RTS GTH CPY #2 ; THREE BYTER? BNE NOCHNG LDA (A3L),Y CMP ORGENDHI ;INSIDE MODULE? BCS NOCHNG ;NO SO LEAVE IT ALONE CMP ADDR+1 ;BELOW ORG ADRS? BCC NOCHNG ;YES LDA LOADPTR+1 CLC ADC (A3L),Y SEC SBC ADDR+1 ;ORG ADDRESS STA (A3L),Y ;FIX 3RD BYTE NO****************************** RELOC EQU * LDA LOADPTR STA A3L ; RELOC PTR TOO LDA LOADPTR+1 ; HI ADRS STA A3H ; RELOC PTR HI LDA FILGTH+1 SEC ;ADD 1 EXTRA ADC ADDR+1 STA ORGENDHI RELOCLP EQU * LDY #0 LDA (A3L),Y BEQ RELOCD JSR INSDS2 LDY LENOPEN FILE LDA #FCLOSE JSR GOSYSTEM ;FILE CLOSE CMD BCC CLOSOK ; CLOSE PARMS JMP ERROUT CLOSOK RTS ******************************** * RELOC DOES SCANNING RELOCATION * OF THE LOADED PROGRAM * WHICH MUST FOLLOW THE PROPER * RULES AND END WITH A BRK ***************************** * ERRXIT TO APPLESOFT ******************************* ERRXIT STA ERRNUM STA $8 ;SAVE FOR DEBUG JSR CLOSEIT ;CLOSE THE FILE LDA $8 JMP ERROUT ; ******************************* CLOSEIT LDA OREFNUM STA CFREFNUM ; CLOSE THE *************************** JSR RELOC ;FIX UP THE FILE LDA LOADPTR STA USR+1 ;POINT AS II USR AT MODULE LDA LOADPTR+1 STA USR+2 LDA ENDPTR STA PTR ;PASS THIS TO RLOAD LDA ENDPTR+1 STA PTR+1 ;IN ZERO PAGE<-------- RETURN RTS ;BACK TO ASOFT II ****DA OREFNUM STA RWREFNUM LDA #0 STA RWTRANS STA RWTRANS+1 ;ZERO TRANS FOR DEBUG LDA #FREAD JSR GOSYSTEM ;GO CALL PRODOS BCS ERRXIT ;CLOSE AND EXIT ******************************** * CLOSE THE FILE! ******************************** JSR CLOSEIT *****3 -3 6L# 6$08e8e882L" 6)eeL;%` 3 4 (q 55)+ȱ % h&L% $ %L% V( 3Lu%$ & c' ' 'L(ȱL%L6 `Gшȱш` )3נ`LW&шȱш` )3ŎץŏѠ`ȑȥȥ))Q) {()@Qȥȥȥ`ȱȥ`66=9` & 9E:F:D: @: 5 :8:I8 :I888`8` 9L 5 ;4 7LF4 9 57  `9 9 5`H 4 4 4 4 4) 4 h(`66  38`JJ` ȱ  `e摠`,Lj,L,LHa{慐`HL3HL3Huuh`HL3L/3Șee`9#:$: %:&:': ":):':(:&:`8`x::\ 4L3`ȱ)>9 =9`* 摩 3 9L :D:;9: :-8m:88m4 4` 2. yz 4 4 ,ɍ 4L 2222 2 2 222 2 229 9L2 2!lkno ` X -Le 2` 2`EDASM.ED2РӠy惥ŀ愕 8`88C88 8ь 3L1))7ȱ8ȱ 8$'))@8,Ly1$`66=9 9D: @: 5 L: 5Q:l:`$8o: p: k: 5` \" L: 5Q:_:g: f: 5 f: 5` h4 / / /`)@? /` 0:i /`)@ (`Hȱh" y0 0b:M / 0LA0` 8 Ly0H 0 /h 0 /`ȱ /989 /` / / 0`) / ` 8)%8m88 8m8 88e8 8e )3L.G 5 t/ )3L/ / /_:9 9 5LU6 08ʼ 98Ȏu8888u8ʎ8 9` 0 0 s0 0 0 0 )0 /`HJJJJ 0h) 0`)b:}9b:  ^: 5b:` H*i0 /h` /步< /` /e$  ( L!-ųL@-$0L@/ 3 4 ( / ;4 / /88 5 !4 L. 0L:. / / ( ( /Lv. 5 !4 b C/ 08 / 0 088 /u8 /- / 9 /8 / 0 0 5  / /88i88Le.$P /$' 5ȱ+ t/L,ȑ -L.Ff`8巅帅膳 5ee66uu$ѽ L-ѻ;ȱ±ȱ1 ѿ(8%8巅帅0LK-津Ŷ4 5 & L: 5Q:l: Z,l: Y4/:t: s: 55:4: 0: 5 5 1L,l:#: N3 5/:#:(:&:):': ": 5(`/: Y4$ ($0L.$0L. 3 4 (G 5,ȥHȱh )3 3:;: 8:L`88 *L+ *9: Y4 18u88 + 98 988 !4? d 1L6L58唍4:85:8 0: +LX+LY) 58e8e$8e8e`$ p:Ȍo: 1$0L, 3 4l:t: s: 5 Z,l: YeHeh, 80A, 8p8 8 08L* 88 8)8 0 8L* 8) 8ȱ 8 08ȭ 8L* 8ȱ8 0 8ȭ8 )3L) * *朥88 88`8嘍4:噍5: 0: 5<:=::F:8D: @: *: 5/:1:$$5:4: 0: 5_: Y4 z1 ;4 !4 L5 h4 3$ 9 Y4LU+m8:m8:9:9: : 5 H3 5:: : * 5 8L+iȱiŚ圐 *L)8嘅噅$H)= 8 8 8h 8ȭ 8ȭ 8Ș )3` ( ( 0 ( s0 ( y0 /` ( ( 0 ( y0 /` ( ( 0 ( y0 /`E /R / /:L/$ (L/x::\ /L(` 3 4 (888 O" 98E:8*: 5/:1:`G 5$0)@LU' 'H)? 8ȱ 8ȱ 8h ( ' )3п`q 57)-ȱ) юȈ ' ' 3Lk'` '1: Y4`84:鑍5: 0: 5L'ȱ )` ') 4hH  5h` 5$ 5 5 5`h 6 5 5 I5 ~5/H ~5# ~5ehe 580e`h8`&`80  &&`ȱ)a)  `:0`8`AF`,Ƀ  3 (L6ɠ` L6L6L6L6L6L6L6L6L6 3HH99 9hh,, ɂILe 6L9 Y4 6$S0Li6i6,,L 2no  `q@ EDASM.AUTOLINK EDASM.TEMPESD EDASM.TEMPRLDBIN REL SYS ORG OPT ALN #7K_!!!!!!MESXNDP E@@eB@Aۈ`Ȍ!!p >: ?; W !!xɠɢɧ v > L; !!Mɯ !@L ɢɧM! Le >!?!, 0  # Y Z L" ,  #L" H! h !  `, , 0  B V  L 0 @  &!L  L !, 0V Q@ ""H!"H` L @ Zɽxȩ<$@ 8>>??? >  L Ѕ<=ɫɭɤ v 6ɽɺd, 0& L8L"L L L  L ["@\"A@ BB  8 `/ /ʽDEiυ:Ȅ;iFFiGLD:EE:)) ) )& )ȱ:$:eD:ȱ:eE:8e::;F;GDi :Ei";:eD:ȱ:eE:;W"X"  Y"Z"iZ MODULE X-REF LIST PAGE \14-MAR-8423:42 large\ERR: REL file ESD too large\Duplicate DEF-ENTRY symbol, \of module #\ in module #\Undefined REF-EXTRN symbol, \REF-DEF SIZE mismatch, \UNREFERENCED\ERR: >255 EXTRN's in REL output ESD\MOD ORG END MODULE \ # ADRS ADRS NAME \ ADRS M# SYMBOL hase 2 : Resolving REF-EXTRNs\Phase 3 : Relocating Object code\Phase 4 : Generating Object RLD-ESD\Phase 5 : Sorting loadmap index\Phase 6 : Generating loadmap\ERR: Symbol table full\ERR: Too many REL files\ERR: File is not a REL file\ERR: REL file is too e\ERR: Syntax error in command\ERR: Invalid Command order\ERR: Unknown command found\ERR: Empty or incomplete command file\ERR: Invalid option or option syntax\ERR: Duplicate command\Phase 0 : Commands & Options Selected\Phase 1 : Building DEF/REF tables\P =98 =9?ՠ=9=9C=9}9à ?cU{"?KX:u:;;;;;<<<<<<<<;;;==========;:=LINKER ABORTED PRESS RETURN TO CONTINUE\ \ProDOS Linker 1.0 Command Filenam =9=97 =9̠DASM.LINKOBJ EDASM.LINKMAP AB + 0 Bn @ABɠ)?(@A)? @ɘɂɉɛЭN , PL ɠLQ ɈC?ɕ5ɄZɃDɎ~ɍgɠ,  ;   L 'B$L n L B$L 0׆@ 󩠝@L !( 4 L( ɠʊ'&&BL `H@@ h@`Ѝ   L6 >?C !C!`I i )D> &?D>$8`, . Îʎҍ! 'C!`!< ` ,Q,T$ "(>% i?% BAТ !ʱ<0`I@ ?ɰ3ɺ/)D?C> &? &?e>H?eC?h &?eD>?!`8`m!m"<"=!>?<)? @<Ɉb^ɛuɕcɠ_ɍ[  KL!@  :@Ŏ L" , 0L !@ /% :5 ; Ai) A: @ L, L Z, >0!    8m! !A>?<)? @<ɛlɍhɈIɕ>ɠ: @B ئB EA@<Ȋ m l !! !Ȍ! !!'!, 0`  !`!! !'!D!ʩC8n!!   ,  L" L 0 ` % 5 E U e u `x8::;IiI 0 LY (`: ; ` : ;` `   ) `=< ; :L E ȥF ȥG ȥI ȥH ȥHLHJJJJ h) ɺi<` HX*&?@e@@AeAA&BؤCB A @L   `ȑ<<@C !` !!m"" S_  R^  H ^ h hH  h !УLHJJJJ h) ɺi`: Jj)J#JJJJ) # ) : `: :`؍ h ` H h LH hHH hh` `@) @)c`AXT@)߅BɆJ@LD)>@ ɴ72A , (BɎ"@ɜ)(ȥAȥ@)AC%<Ci<ȩ:?;:&, ! 0  )    , I! >  }  B !0.?  H :; >>   }?h  $,  , 0O 0J E !#%Ѝ()  !  `(,L v L >@ E2!!n 0':?;?  %!0!L" > ? ,  8n   L 8n LX> ? ,  8n  l N!N N N !' @! <ȭ!<!> ? Ќ ʊ!! KLL" @ @`  |! !&!!!:!;!>!? 8 J>!?!;!!?!> 8:!0 J;!> !!!!! !: !;!>!? 8 J>!?Ȍ!;? !!!> 8: !0 J:Ȍ !; !| L m"<"=!0?i !Ɉ ɕ$ɍ`;:;?> P!>i Lr>!:;?> ^8:m! Lr ! ` >!?! 8n !Ȍ!!:!;  @ }пٿؿ"T3T"T3T T3D"T;D "D3D"D3D"D3D"D3D&1!YMJIZؤD D D D D D D D } Rq #.   !'&%$#"!  ((((PPPP   !ŠŠǠàؠ٠ӠР֭РԠԠǠŠéҭĠӠֲؽٽнӽҽýýϽ`    l6 &@пAC`J?>ʊ:>Ș; =: @ :, 0,  @ }   hh $L  ɠ` ,!` 7!` B!` `!<#` L Li8n L% $8n L m"<"=`)`pd`8HhLl|Ld4) ) JJj8j JJjJJ8jJD eD` hLc ۰AC!H hB# h# #ɤB&A v ?CʥA C  A@@ , 3@ ! hB ݝ"BLA   :;!:!;!  $L% !Y!Z !m""Z Y  ]" e" YZ!кL,  D ; : <ȩCD"