' +JJJJ ?\>m0M='+l> /+l   d']6@5L&]655]6LF%5 & "L}"BB5L&]6 X  `6 77777777777JJJJx 77L? L7877777777 776i 7 7867 7`77 777777`x =(`(8`5775I7`B` 76`77`>J><;VU<)?<`8'x0|<&HhHh 8 8 8 8V&` aI꽌ɪVɭ&Y:&<&Y:&;: 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8 9: :' 9: :& :x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?8  1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#000'#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 < <݌ < < h < < < <`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 (G FG HZXj 80x D9$xxH` >( Z>h Z>L=.xxH >hh@(LH>9L>HH/Hh/ H?-З( 8(& 8$8 H` *8HNx`* >x$50x*$50xL9JJJJ`HHjf5 >h $50x`HA>VD;;P >(ED Z> ?$0x8x D9- 8DD# H8`?E Vˆʎ55L $ 5 55555 &a*5`*5` "L&5_*b*JL%u**Lz%`** $  Q(lXJ̥KlV $  Q(lV eօ3L e3L &%R*L &%Q*L d' "L4% N'e*)n*5 5 &`@-e*f*f* 5 "L# "5f*`L %.* *t*Q*L$ %L&*L` "O**P**u** d' "L% N'e*)n*o*o*n* &8ɍ` ^&f\*555L& ^&NR* & "R*ΩL&)\*Z* ʽ LH*v 3h`0h8` " ['L & N'С55 &5`*A*@` +5L^6L65`  \* ?*0 '\* '  Q( ^&\*lZl^?*c*q)H c*h`f*5h*5j*555@O*AP*`u*@`@5&`Q*R*`E 'Ls' ' ' @DAE@u*`8` %@ @A@`@`**@*A`M5 ) "L&`8@AW*c*@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@c*h8&ȑ@Hȑ@Ah@L'Hȑ@ȑ@* htphso`hMhL`9V*8U*897T*6S*67`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- (   ϲ734@~3!+,W,o,*--,,9,-.-~3~3,,,,~3~3,,,,~3_*3 j.5 *H*H`Lc3 (+L3 +55555 1^3_* )3J Q*L_3Ls3443 D23455545554 70 / 7 :/354545455454555535L^/5-5I5555 55` / 4/ 2-5! / 08555454 70L3 (+50+5B5C3 2 70L35 *H*H`Lg3L{3505 *H*H` 3 ,5L3 3 1 ,H 1hBL, 0 BH [1 1h`Lo3 35 ,L3 3 1B , 1L,H 0hB@ 55 [1L133 (+34) 34 70L3 3L3 (+ 055L- (+34L{33454445 70 ^/* / 3B0 HȱBh -355 -8 /L38 25` +5 /3 /. /. 3 E7D B. /. /. 0]34S0J4 4) 3 4D4E B. 4  /. 02L3 Ν3 3`HD٤33DEEhiHLG.h ` /5B5-` /5B-` + X05I33383 33DH /4 E03744Ȍ7 X040 7 J7L35B5C`,5p` / R0-55`50` K/ R0-55`575755` 4/ K/ /( 55L/BȱBL/58` D2BH5BH :/ 75Bȭ5Bhh55 R0B5m55ȱB5m55` /LR0557755`*7*75LR0 E0(33 48`433 R0` E033LR0*7*7`777 555I7575757577** 7757`7 L35555f /55555555 ^/`855 i /B58` 41L 15ȱB5 /5555 /5`3 D23ȑB55B5 / 7 55`5555555555 5555`555`55BC55`5555`L3 /5B5C355 0Q340"B4 3` 02۰Ϭ33B438`3i#`3ЗLw35!50>5555`53 /3m3 3 3733i35 3583 /35ЉLw35`H /5h 25L/~43 533`55555555J5m55m5jn5n5n5ۭ55m5555m55m55`"L? 585H ~.(3` # d ֠z# u*`AN THOSE CONTAINED IN THE SUPPLEMENT"5H"IS USED."`R::"THAT'S IT, FOLK!! NOW, ENJOY..."l\29440rfp23:7:"PRESS ANY KEY TO CONTINUE ";:A$::;:A$:: H IS USED TO RETURN TO THE"0"SUPPLEMENT.":_"CONVERT WILL STAY IN THE MODE SET UNTIL" "ITS COUNTERPART OR A SLASH IS ENTERED."880 9*"PLEASE NOTE THAT CONTROL IS RETURNED TO"4"THE MONITOR WHEN ANY FUNCTION OTHER"%>"TH FC58":#"WOULD BE DISPLAYED.",880Y:"HEX VALUES ARE CONVERTED BY ENTERINGi:"^H":"THEN THE VALUE TO BE CONVERTED":"^FC58":"WHICH RESULT IN":"64400 -936":"BEING DISPLAYED.":"THE SLAS VALUE -936, YOU WOULD ENTER"-X:"^T"tb:"(THIS IS A NORMAL "(34)"T"(34)", NOT A CTL ";::"T";::")"l"THEN ON THE NEXT LINE"v:"^936"::"(MINUS SIGN NOT ALLOWED OR NECESSARY)":"AND THE CONVERTED VALUES":"03A8 34)"^"(34)", YOU MAY SET THE DECIMAL">"MODE BY ENTERING"N:"^T"~:"FOLLOWED BY THE DECIMAL VALUE YOU WISH"&"TO CONVERT."0880:::"FOR INSTANCE, IF YOU WERE IN THE"D"SUPPLEMENT AND WISHED TO CONVERT THE"N"DECIMALONVERSELY, IT WILL CONVERT A DECIMAL"Q"VALUE IN THE RANGE OF 0-65535 TO ITS"{"HEX AND TWOS COMPLEMENT HEX VALUE.":"CONVERT IS REACHED FROM THE SUPPLEMENT""BY ENTERING A CTL ";::"T";::". ";"ONCE YOU SEE THE"&"PROMPT "( PRESSED."880B2:"A NEW FUNCTION HAS BEEN ADDED TO THE"s"SUPPLEMENT -- "(34)"CONVERT"(34)". THIS""ROUTINE WILL CONVERT A HEX VALUE""IN THE RANGE OF 0-$FFFF TO ITS DECIMAL""AND TWOS COMPLEMENT DECIMAL EQUIVALENT."%"COM THE MINI-ASSEMBLER BACK TO"8 J1:"THE SUPPLEMENT."> Tt ^"THE "(34)"TRACE"(34)" FUNCTION ALSO USES THE" h"SLASH TO TERMINATE. A CTL ";::"S";::" ENTERED" r1:"WHILE IN THE TRACE MODE WILL CAUSE A" |1:"PAUSE UNTIL ANOTHER KEY IS4)")"(34)" AND"> 1:"ALL MONITOR COMMANDS CAN BE ENTERED"p "1:"FROM WITHIN THE SUPPLEMENT, EXCEPT THAT" ,1:"THE MINI-ASSEMBLER IS REACHED BY ENTER-" 61:"ING A CTL ";::"A";::". A SLASH ("(34)"/"(34)") WILL CAUSE" @1:"AN EXIT FRGER BASIC AND THE REGULAR F8 ROM."U :1:"THE SUPPLEMENT MAY BE ENTERED FROM THE" 1:"MONITOR VIA THE CTL ";::"Y";::" FUNCTION IF YOUR" 1:"HELLO PROGRAM CONTAINS LINES SUCH AS":130140 880 5:"THE SUPPLEMENT'S PROMPT IS A "(3::88 "APPLESOFT/AUTOSTART ROM":14:"SUPPLEMENT"e 6:4:"THIS PACKAGE MAKES AVAILABLE TO" 1:"APPLESOFT/AUTOSTART ROM USERS THE MINI-" 3:"ASSEMBLER, STEP AND TRACE FUNCTIONS" 3:"PREVIOUSLY ACCESSIBLE ONLY THROUGH"" 2:"INTECONTROL CHARACTERS DISPLAYED IN INVERSE"X d:3:"CARRIAGE RETURN REPRESENTED BY " n(4)"BLOAD APPLE II+ MINI/ASM.OBJ":$8D00.$912F x880 29440: HIMEM SET TO $8D00 1016,76:1017,0:1018,141:SET UP JUMP TO $8D00 AT $3F8   :=8:"APPLESOFT/AUTOSTART ROM":14:"SUPPLEMENT"a::10:"ORIGINAL ROUTINES BY"|(:13:"STEVE WOZNIAK"2::10:"APAPTED BY & "(34)"CONVERT"(34)<:15:"WRITTEN BY"F:15:"GUIL BANKS"P:X140:".";::( Z:1:"     ɰ$0 $` d'R gɯ; Y ?ɀ> А H >Ii>?Ii> А,L gʆ ɯɰɹ)3} & &ee &}થi @ HIiIi @⩰# 祝.=D5֤4 J :3 g YɯLɠɤ ɓΊ x=    &B&C= 4ݴ ݺ ɤ4&D ?5=ɥD 5 5 D4ɻɍЀL㎹ɠ`ޅ3 gʆ ɯY[ Y( Lh:h; G :LhHh:h;/ V; THH::;:-H,H E@A  J 0`: V:8 J8LyLjJ?>ʊ:>Ș;k/=:   S;:L O4 40K14 L= BC D.(ʈ3 g Y ɨH40 ^4Lم O4LHH11`HLiLˏ4Hh uLLLqli h,h-~<,ɓ,ɯL:B/ \`HL_l\@8)I:< ?L<EhH 0l ΠҠÍΠɭҠ̍ 󮮮ñƠҠƵ堤ñ려îñŠՠ卍ñŠñƍƵﬠ堠ө堤Š려 堍렠ƠñŠøĠàñ ōˠҍ뮠ñŠ栍뮮ҠƵ堨ҩƵҠ􍍠ƠñŠøĠàñˠҍ卍ˠҍ庠宍庍ñĠñúƠҠƵñƺ؍堍堮栠嬠嬠堺ƠñŠøĠﬠ堢뢠ﮍ䠍宠栍宠堢뢠堍ﮍ䮍Š۠Ų؍؍ؠŠŲɠ堍笠ΠŠˍŠŲؠح򠤰ŠŲح젤Ų堤宮ؠ箠젍򮩍ؠŲ؍؍؍ؠŠŲ򮍍󮮮ؠ؍؍؍؍؍؍؍؍䠠آ䠠آ󠮮򮍍尳؍؍؍宠ؠ؍؍؍؍؍؍ح򮮮ؠؠ؍ؠؠؽؠؠؠؠ򠤳򍠠ؽؠ夰ؠؠ󍠠򍠠ح򮍠ؠؠ宍ﬠحﮮ򍠠Ġح蠤ؠؠ󍠠󠤳蠤øõà䠤Ơ䠢Ϣ堤îؠ䠍䮠䮮䮍򍠠 àî򠍠󠤳䠤 䠤î󺍍󠤴ؽ󠤴򠍤خ堩󠍤󿍍庍䠵箍堢堢؍Ġؠ箍砍堢堍堍宍ư蠍򮠠ΠĠǍ堍堷ŠɠŠ̮嬠䮠Ҡư䠍ư򺍍ƶǍð̠ҠưҠưðҠ򍠠ðР򮠍ƶǠ򍍡ð̠Ҡư렢ҠưðРǍᠠŮРǠ퍍堠堶ŮҠưð宠󍠠ð荠򍍪ƶǍðĠፍ̠Ϡ宍ð堢占䠍Ǎ䠍򮍍荠䩍Ҡưư占ͩРР堍͠̭򩍍ƶǠ򩍍ðĠ䍠ðŠɠ䮍ư͠ŠɠŠ̮堲栍Šɠɠ󮍍宠čɠ堍ɠ򠢱±쩿±占蠍Π堍򮍍堍堶󺍍占嬠堍򮩍Р䠍렠堍嬠堍򮠨嬠堍󮍍嬠ؠ䠍٠󮍠嬠ð䮠堍ج٬䠍ЮŠɠ嬠捠嬠ΠŠҍ堶򮠠Ġ򠍰Рﮠ婮Р堲報򠰰堲󮠠󮍍堶򬠍Т堶ՠЮ嬠堲報忠宮򠠱򠵮򠳠󠱱報堲報堲򠹠堍򠱰堰䠱󺍍󠲠堍٠ō󠱰Šč砍󮠠堍ﬠ쬠宍ŠĠ٠ō󠤱䠤󡍍宍ΠҠӍà蠍̠Ǡ¢堍̍堍ᅪà婍̭ƶǍ򮍍䬠蠍ƶǠ庠à庠РР򠤰庠庠à堍찰庍ĠŠàŠà­àР庠Ġ蠍ƶǠ򍍡ààР렍Ʈ䠤Ʈ嬠򮠠̭ᠢӢ宠à堍à堍宍±ϠàՠӍ΍俠堢忍Š̠蠤宠àà砍̠č̭ƶǠ̠򩍍±ӍǠΠ󍍠­РР䠍Πōà堍Ӱ±ð宠堍宍󠍍ðĠð䮠󠍤ð堨蠍ՠ堍̮堢Ģ謠堢Ѣ讠ð嬠᠍ӷ­䮍䠤ð庍ؠˠƠؠϠ͠宮䮠堢Ģĭ堢Ѣ砍ðð̠䮠à䮠䠍 򬠤«Ġٍì宮 荍é嬠ðĠ堍ð䬠䮍󺍍 ̠̠亍ƶǠƶ宍ĠͬԠ򠨪堍͠堍Ԡ䠍򮠠젍󮮮忠Π忍̭à堍۠嬠卍Ġðð ̠ĠĠðð­àРǍ堍򺍍ƶǍð̠ðР俠䠢¢򿍍笠堍宍䍍Ǎ砍宩核Ġ報䠱Ġñ堍򮠠ñ堍宠ò嬠庍ññĠòòĠ堠ŠŠɠŠ̠젍堍󮍍򺠍ԍ̠ƶǍ򺍍ñ젍䮠㰱ð۽ݩŠɠŠ̠堍Ůð砍󠨤ð堍ð堍䮠ð堍宠蠍䮩썠􍍠Ԡ庠ð̠䬠ð᠍箠øȢ䠤õ󠍢Ţ쮠󠴰쮍󠲵썤󠠲썤󠠱ﮠ堍î렍栨砤堍栨堠Ȣ堍纍õĠǍŢ堢Ȣ䮍󮍠򺍍̭򮍍堍宍纍øĠǍ͠䬠ퟍà堍뮍ɠ嬠堍Ҡî䠨ˠ͠䩠ᠶˠ堨堯婬魍۠ᠱˠ堍ɧɧɧ堍殍ǠȠŠɭҍ堍򮠠ɧﮠ䮠⮠ɠ뮠ݍ΍堍宠堢墠䮠ɠŠōٍ͠ϧ΍庠ϧ栍                                                  "(222)) C$"PR#0":C$"CLOSE":34,0: :"HIT ";::"SPACE BAR";::" TO CONTINUE *";(8);:A$:::C$"MON I":C$"PR#"C:C$"OPEN"D$:C$"READ"D$:9y 768 216,0:(222)5ĺ"ERROR # "(222) C$"PR#0":C$"CLOSE":34,0:$:C$"READ"D$:9 768 216,0:(222)5ĺ"ERROR #R CTRL-C TO EXIT LISTING. ENTER ANYOTHER CHARACTER TO TEMPORARILY SUSPEND LISTING." :"WHILE THIS TEXT FILE MAY BE MANIPULATED BY A TEXT PROCESSOR, THIS TEXT FILE CAN ALSO BE SENT TO A PRINTER WHICH USES A PAGE SKIP AND AT LEAST 68 COLUMN WIDTH."p,141,16,192,76,0,3 "TO WHAT SLOT SHOULD THE INSTRUCTIONS GO?":"ENTER '0' FOR SCREEN OR":"'3' FOR AN 80-COLUMN CARD IN SLOT 3"::"SLOT ";C:C0C73 :"DO YOU WANT TO SEE LOWER CASE AS LOWER CASE? ";A$:782,32:(A$,1)"Y"Ĺ782,0U :"ENTEe:::B$"MACHINE LANGUAGE TUTORIAL":21(B$)2::B$:::C$(4):D$"M/L TUTORIAL.TEXT":34,2 A768811:B:A,B:: 32,12,253,9,128,201,224,144,6,201,251,176,2,73,0,32,237,253,173,0,192,16,233,141,16,192,201,131,208,3,76,208,3,173,0,192,16,251    [']ĠƠ͠[d ed ed ed ed ed ed eK'd ed! ed" ed# ed$ ed% ed& ed' eK'd( ed) ed* ed+ ed, ed- ed. ed/ e('d0 ed1 ed2 ed3 e'ŠӪK'd ed ed e d ed ed ed e0d eK'd ed ed e d ed ed ed e0d eK'd eLd ed e d ed ed ed ed eK'd e*#rq]ŠӠĠ&Yq&`;@r%[ &\U\@&c$&a(ҠҠӠŮ)#&a(ĠǠŠ))&a(ì)E@E(ĠŠҬ)"'a@E(נ٠Ԡή)'w["']Ӡ)?%&a()E@E()G`;@r%a(Ԡ)E@*rE()`.?$r%c&&a(נ٠Ԡή)'&\ \U[*&_%H&]РҠ&]ǠҠ&`;@r$&&qUVW;@rM&`@*#r9()@*#r9()$&@Brp@@c&a(ŠŠԠΠ)%&a(ҠΠΠŠ)1&a(ՠԠŠŠĠΠ)o.?%r&a(נ٠Ԡή)[*&`;@r;@r$&`@*r9@$*&.&\@cca(ԠԠҠŠҺ) &a(ҬŠ)@*#r:(ñ)@*#r:()$%@p@*r_&%`<@r<()r%_(#'&`;@r%\&`@*#r:@$K#t&`@*#r:()$&UVW;@r`@*#r:@*r%Y]ƠĠΠӠԬĠΠϠŠР &Pa()\U &\Һ)2%a(ҬԧӠŠ)G`;@r%a()C%`;@r%a(Š)E@*r`.?$r%ca(נ٠Ԡή)%\ \U[2%q\@cca(ԡ)[%]үРҠ]%\&`;@r$%`@*#r:(ðŠŠԠΠŠ)'%a(ҠΠΠӬՠ)'%a(ŠŠĠΠҠ)%%a(ŠҠΧԠǠ)"%a(Үנ٠Ԡή)["%`;@r$%`@*r9()$%.%\@cca(ԠԠҠŠ@[%]ؠӠ%]ؠҠ %@p()L%\&`;@r$%`@*#r:(ð)@*#r:()$%@p@*r_%%`<@r<()r%_(#'%`;@r%\&`@*#r:@$K#%`@*#r9()$%%\U %\@c'%a(d2ea@G$$d6?e]ҠĠ*$q.?6@r`$#]ƠàϠ$`$$d6?e$o P)$a()G$\@$[!%]ҠҠԠ&%\ oP 0%RP[T$]ҤΪ^$q8rah$ñq.?ròq.?r8ñrdOñ8òr8ò8òrre@p()[$]Π٠Ԡ$\l $PL$o a(ȠנĠӠ)E@Gd2e?a()G@r`$#]ƠâΠ#`<()r$# #d6?e#o P)#a()G#\@#q[#Kwd6?e_D#]ԬΠԠ͠נĠΠҠҠ#\#\ oŠҠӠ(#q]̠ҠϠˠ"#]٠ԠҠϠŢ#d6?eUVWY#\l #o P<#`7$#a(ȠנĠӠŠҩ)_#(#a(ӠŠҠϠ̠ԩ)G,#q.?6)&A#a(ŠҠӺŠ)&F#a(Įנ٠Ԡή)c[K#]ǠĠP#Pa()\U U#\@cc'Z#a(ՠŠĠŠǠ)E_#a(ҬԠӠ)E@E@E@E()E@a(נ٠Ԡή)[#]e ]0 d#e]: oc]ԢD [l ]̠נv \ ]Ԡ̠ d"e] [(#]àӠ"-#]ԠǠŠ2#Pa()\U 7#\@c%<#a(ŠҠՠԠҠԠǠӠϠננϠ̠РŠŠL]͠ԠӠϠҠϠŠŠ̠ǮҬ%]Ǡ̠ŠŠ[ ]͠נ d e]̠ d!e(]̠& d"E@E()E@E(ϠΠϠժ)[@]ǠӠJ]РנTd!e"]^d e]hd"e]rd#e ]+|o P]ŠҠΠcH]Π̠ŠՠΠŠҮ)[$X]Ԡ̠נؠAbM6oa()G'l@p()UVW a@GP(a@GY>qo UVW'Pa@G`%q%Yco =va(Ӡ)p]ǠzM6oP'a(ҭȠ٠ɭ)%Pa(ɭҠ)#cP a(٠Š)c'a(ӠĠŠӮ)4a(ϠԠͬӠ)E@E()E@E()*a(ӠӠ̩)ca(Ġ̩)ca(ӠҠ)8oa(ӠŠ)E@E()E@E(٠)GM6R@`@:()@:()@:()$ `@9()%_]Ԡ`@:()$Kd6?eQ!_]ԠŠϠԠ͠ϠŠĠРҠĠΠ٠ǠŠŮ5]ӠӠԠҬ٠ĠϠԠҮ,q]٠ΠĠca(ŠԺ).ca(ŠɭŠŠ̩)0ca(ҠҠƠα P/ a() oa()G M6]РϠQ]ΠҠ\p]Ԡ#q"\T$]ŠҤ(q]Π͠ǠW]ӠǠƠҡ)#< a(ϠΠŠͬŠ)'F a(ǠӬð)'P a()E@E()E@E(ҠϺð)'Z \d ed!e'o.?%rP-_ a(ΠՠԠŠɭҬ)-d a(ԠŠ)E@E(ƶ)E@E()G} \l oҠĠҮ)4 a(ŬϠ)E@E()E@E(Ҡͬ)3 a(ԠŠð̠)E@E()E@E(Ҡԩ)# a(Ġ׬ϠŠҮ)G@( \#d"ed ed#e d!e#M6]̠#2 a(ՠŠˠΠŠנŠϠΠ)# a(ͮĠҠՠ)! a(ΠԬ٠ǠԠ)% a(ǠŠŠŠ)& a(ҠǠŠҠŮ)G \#$ a(ŠŠ̠)$ a(ҠӠՠ٠Š)& a(Š\@c%` a(ĠҠŠԠЬŠ)#j a(ʨթРϠðĠӠ)#t a(ǮנŠԠٺ)~ @p()@p(ð) \%\%]ԬΠH `7$ q\ o\^\U\@a(ԡ) a(ԠӠq\ o\6\U\@&a(ϠŠŠҬŠ)#a(ԨŠũҩ)a(ŠӠð) @p()@p(ð)  \%\%]ԬΠ! `7$ q$ \ o\J\UŠš٠ȠŠҠĠ̠ŠҠӠũ\ o\"\U\@c)a(נʨРϩӨ Ҩũ±) o.?%r!a(ŠӠӠ̩)@p()@p(±) \%\%]ԬΠ!`7$Ϡ)E@E(̨)E@E()%za(ŠŠҠ)(a(̨׬ŠΠŠ)0a(ĠӠŠ)E@E()E@E(ٺ) @p() \%\%]ԬΠt`7$q]ǠŠŠŠ)%*a(ŮԧӠ٠Ԡή)4\#\\$>\ \\U\@Ha(̬ԧӠҡ)c&Ra(נŠ̠Ϡ٠Š)$\a(ҠŠҠŮ)-fa(ӠŬէ̠ϠŠǡ)\#kc4pa(ԠŠԠŠӠƠũ)$a(ҩҠ)$a(ҠԠӠð)"a(ȠӠΠ̮) \#@p(ð)\2\$"\ P a()Pa()\U \@ca(Ӯ)c' a(٠ԮɠԠϠ̠͠)0a(ĬԠӠŠϠ)E@E()E@&a(ŠҮŠϠӬӠ)(a(ϠΠì٠Ǡ) a(ԠŠҧӠӮ)\#6ca(ԠĠƠ)E@E(Š)E@E()%a(ŠԨŠ\$D\ \\U\@!Na(ƠՠˠРŠ))Xa(ӠΠŠŠ۠) ]o.?%r(ba(̠ĠĠŠӠ)&la(±ŠϠ²Ŭՠ̠Ԡ)'va(נŠŠ٠Ӯ)\#%a(נԠҠ)%a(Š٠ԠΠ)%&a(ŠǮҠĠ)#0a(ʨРϩӨ©Ҩũ):\#\\@%;ca(ՠ̠ŠŠĠԠ)&<a(ŠĠάӠҠ)=a(ӠΠӬԠ)>a(Š)ԠŠŠ)#a(ҠԠĬŠ)(a(נԠӠԠŠԠӬ)$a(ϠŠ̠ϠԠĠ)a(ǠΠð)\#a()G\Z\@'a(נŠ̠РϠ)#a(ΠŧӠҠԠɠĠŠ)"@a(ҬΠӠŬ)J\#P\T\@%^ca(נϠ٠Š)&ha(ά̠ՠŠϠ)7ra(ӠϠӠŠ)E@E()E@E(ٮ)c|\$\ \\U\@(a(ƠŠӠ)%a(ΠĠӠŠŠͮ)$a(ŠŠŠŠҠӠ)a(ŠؠҮ)\#'a(ϠĠŠحǠȠҬ)#"a(ŠŠŠà)0,a(ũ)E@E(̨)E@E(Ġ)&6a(Ġ@E(Ҡ)E@E()E@E()'Pa(ҠîŠàӠ)%da(Ƞ̠Š)$na(٠٠Ԡð)%xa(ӠӠҠ)\#&a(ŠŠҬ)%a(ŠŠŠԧӠˠǠ)(a(Ơð̠ҩ) \#\\@c#a(ƠŠΠ̺)&(a(ŠӠΠŠԠ) 2a(Š٠Ӡ)7a(ŬϮ)9\#=<a(ŠŠ)E@E()EE@E(ԠӠӠ)#a(ŠɭҠӠנ)'a(ĠԠŠ٠ĠϠ)a(Ҡͮ) \#c&a(ŠԠϠŠ͠)%a(̠ŠӠԠ)(a(٠ҠǠŠŠӮ)$a(`\@]ԠРec(ja(ŠŠנŠϠŠ)#ta(ĠŠ٠ϠΠΠ)%~a(ŠɭҠ٠)1a(ӠӠĠ)E@E()E@E(Ҡ)\#\\$\ P\\@c1a(Š)E@E()Š)(a(Š͠ǠŠԭ)'a(ΠɭҮϠϠϬ)($a(ԠԠϠϠŠҠ)#.a(ǠŠԢٮ)8\#]BK]РL\n]+Vq]ԠǠҠǠנРƠנϠӠ\]\UVW^X \a()G&\Z0Y:UVWYD_]ĠΠ!\X]Ԡ̠נ\@]ԠР̠o&a(ŠŠǠϠɠcoa()G\ZUVWY*@p(ð)q\2qa()>M ]РϠŠ͠ϠΠĠƠͩ]ԠΠ\d]ӠԢ\]ΠΠ4d"e]Բؠ)[,@p(Ҡ±)\2[-6Pa(ðŠ Ҡ±)[@@p(ð)\2[-JPa(ðĭĠðð)[T@p(Рð)\2[-^Pa(ñààРð)[]ΠΠq[@p(ؠ)\2[,Pa(ðؠ)[@p(Ҡ±)\2[-Pa(ðŠ Ҡ±)[@p(ð)\2[-Pa(ðĠðð)[@p(ؠ)\2[-"Pa(ðŠŠϭiUVWYnoca()G\ZxUVWY[+@p(ƶ)q\2q[ a()c#a()G\ZUVWY[]ҠӠ,@p(ð)q\2*#r9()rYZʊ:>Ș;k/=:   S;:LT 4 40K14 LT= BC D..=D5֤4 J :3 g ɠɤ ɓՊ x= NU   &B&C= NU4ݴ N ݺ ɤ4&D ?5=ɥD 5 5 D4ɻɍЀLvɠ` }Ɏ$ `` y LLeJ?>ʊ:>Ș;k/=:   S;:L 4 40K14 L= BC D..=D5֤4 J :3 g ɠɤ ɓՊ x= N   &B&C= N 4ݴ,6,200,208,236,160,0,177,6,170,200,177,6,134,6,133,7,56,176,210,103 4:34,0:W24:"HIT THE ";::"SPACE BAR";::" TO CONTINUE *";(8);:A$::]}X768822:Y:X,Y::768:165,103,133,6,165,104,133,7,160,1,177,6,208,3,96,234,234,160,04,177,06,240,16,201,127,176,9,201,97,144,5,56,233,32 E145lter theCONTROL-Y vector ($3F8) to point to thenew address.":"These routines were developed using information from Doug Henning's article in NIBBLE Vol 3 No 1, 1982.":"]BRUN MINI-ASSEMBLER ($800)"::"]BRUN MINI-ASSEMBLER ($5400)" "1ping :"::"]FP"T:"Note that 'STEP' and 'TRACE' functions are not available."]500=::"The MINI-ASSEMBER can be relocated in memory by using the RELOCATOR facility in the program BEU, included on this disk. It will be necessary to acode will be displayed whilethe line is re-written."=500::"To exit the MINI-ASSEMBLER and return toBASIC, it is necessary to enter :":"!$3D0G":"After returning to APPLESOFT, it is recommended that you reset the pointers by typle :"::"!300:LDA #00":"After the first line has been entered, enter a blank followed by the next assembly language statement, as in :":"! STA $19":"! LDA #20":"! STA $20"4:"As each line is entered, a correspondinghexadecimal use, thereis an exclamation mark '!' prompt displayed on the screen."U500:"The first step in entering a program is to set the pointer to the starting address in memory, along with the first instruction."::"This is seen in the exam::"Alternately it can be loaded into memoryby:"::"]BLOAD MINI-ASSEMBLER (XXXX)"::"and then later accessed from BASIC by:"::"]CALL 2048 for the lower version, or" :"]CALL 21504 for the higher version."L::"When the MINI-ASSEMBLER is innflict would arise with one version, the other can be used." :"The Mini-Assembler should first be run from the disk by the command:"::"BRUN MINI-ASSEMBLER (XXXX)"::"and once run, can be re-entered from theMonitor level by CTRL-Y." 500 have been included on this disk, one which occupies a lower memory location at $800and the other a higher location, $5400."= :"Either of the two versions of the Mini- Assembler can be run. Two have been included in order that, if a memory co MANUAL' and are therefore not included in this short documentation." y:"Several alterations have been made to itprior to including it on this disk, in order that its ease of use be improved." }500} ~::"Two versions of the MINI-ASSEMBLER the ][ PLUS (APPLESOFT)because of memory limitations." n:"Therefore, the MINI-ASSEMBLER has been altered to permit it to be read into RAMmemory and run in this modified manner."H x:"Instructions on its use are present in the 'APPLE ][ REFERENCEz# Ͳˠй ϳ ŠɫɯͮʠŠɫɯ͠ ҠΠҠӠҮȠ̮ϮǮɮîؠΠ§ŬϠ ŠŠ ̠ ٠͠ϧΠ  ̠̠ͯ ̠̮ͯԠh"ɭҠӠɭҠɭҠ ɭҠ̠3   ҠӠ̠Š® ̠Š®° !ŠԠ " ͯРϠԠŠ"٠Ҡ ͠àҠà Ա͠Š    Š͠Ҡ  ͠Ӡ͠ Ϯՠ ծӠЯŠ®à ծˠĠծ2  ϲ ٠٠٠٠ȠӮĠ ̮͠ϮǮɮîŠ̠ϠĠΠ Ϡ Š ̠Š ŠӠ ŠŠ  DEBUGGING OF MACHINE LANGUAGE PROGRAMS." P::"BEU";::" IS A BINARY ENTRY UTILITY PROGRAM WHICH ALLOWS THE USER TO DIRECTLY ENTER AND EDIT MACHINE LANGUAGE LISTINGS."E Z::"MASM";::" IS AN ASSEMBLER ORIGINALLY WRITTEN FOR AN APPLE WITH INTEt* ::10:"IAC MACHINE LANGUAGE DISK"L(4)"BLOAD HELLO.PIC,A$4000"x16297,0:16299,0:16302,0:16304,0(X16000:2::11::"LOGIC PRESENTS :":34,2<* F:"THIS DISK CONTAINS A NUMBER OF UTILITIESWHICH AID IN WRITING AND    XT FILE") D$;"RUN MEMORY INTERPRETER"S D$;"RUN MINI-ASSEMBLER INSTRUCTIONS"i "D$;"EXEC HELLO3" ER TUTORIAL" L TA200,210,220,230,240,250,260,270,280,2900 K D$;"RUN M/L TUTORIAL"c D$;"RUN HELLO.BEU" D$;"RUN BEU.INSTRUCTIONS" D$;"RUN MASM INSTRUCTIONS" D$;"BRUN ALL PURPOSE DISASMB.(800)" D$;"RUN BFILE LIST" D$;"RUN MEM/DUMP TO TELER" d23);"INSTRUCTIONS"# iQ n"4-DISASSEMBLER";21);"9-MINI-ASSEMBLER"f x23);"TUTORIAL"l } "5-BFILE LIST";21)"0-MACHINE LANGUAGE" 23);"TUTORIAL" 23:"ENTER CHOICE- ";:A$ (A$)0A$"0"ĺ:150 A$:A(A$)1* k  :D$(4) A$(9)B(10);"MACHINE LANGUAGE DISK"d210);"------- -------- ----"k<5F"1-BEU";21);"6-MEMORY DUMP":KP"2-BEU INSTRUCTIONS";21);"7-MEMORY INTERPRETER"U Z"3-MASM INSTRUCTIONS";21);"8-MINI-ASSEMB  ::" TO CATALOG THE DISK, AND ANY OTHER KEY TO QUIT *";(8);:A$:b A$" "ė:(4);"CATALOG"r 34,0:23:L'E INCLUDED, SUCH AS A PROGRAM TO SHOW THE STARTING AND LENGTHSOF BINARY FILES ON A DISK, A MEMORY DUMPAND A DISASSEMBLER WHICH CREATES SOURCE TEXT FILES ON DISK.": x"REMEMBER TO READ THE ";::"INSTRUCTION";::" FILES."D :"HIT ";::"SPACE BAR";UE *";(8);:A$: p:::"MINI-ASSEMBLER";::" HAS BEEN ADDED TO THIS DISK, ALLOWING ACCESS TO IT EVEN THOUGH A USER DOESN'T HAVE INTEGER BASIC. HOWEVER, INTEGER BASIC IS REQUIRED TO RUN BRUCE TOGNAZINI'S TUTORIAL." q:"OTHER UTILITIES ARGER BASIC, BUT NOWMODIFIED TO OPERATE IN A MACHINE WITH APPLESOFT." n::"M/L TUTORIAL";::" IS A TUTORIAL ON MACHINE LANGUAGE PROGRAMMING WHICH CAN BE DUMPEDTO A PRINTER AND USED AS REFERENCE GUIDE" o24:"HIT ";::"SPACE BAR";::" TO CONTIN::"DISK OPERATIONS"::"There are four options in this mode, being :"::"1) Catalog the disk in the active drive"h"2) Load a Binary File into the Workfile 3) Save the Workfile to disk as a Binary file":"4) Return to the Main Menu"::"Theve left one byte":" -> = Move right one byte.":"CTRL-B = Go to beginning of workfile CTRL-E = Go to end of workfile":"CTRL-I = Insert bytes at cursorposition CTRL-D = Delete byte under the cursor"::"CTRL-C = Return to the Menu."500{e 'Enter Data' mode."500:"EDIT WORKFILE"::"This is the heart of the program, for this allows you to alter the contents ofmemory. The available commands are :"2:" ; = Move up one line":" / = Move down one line":" <- = Moa CTRL-C."500:"APPEND DATA"::"You can add onto the end of data which has already been entered into the work- file, either by direct entry from the keyboard or by reading in a Binary file from disk.":"This mode is then similar to thuivalent ofthe hexadecimal code which you enter." :"You can go to an 'ONLINE EDIT' by means of the CTRL-O function, which will allowyou to move the cursor about and alter the data you have entered."::"To exit this mode, it is necessary to enter digits) you wish to use, then will present you with a screenon the left side of which it will automatically enter the memory address"1"and keep a running count of how long thefile is. In addition, on the right sideof the screen is the ASCII eq:"CLEAR WORKFILE"::"This routine simple clears all data out of the workfile. This command must be used whenever you wish to begin enteringa new set of data." }500:"ENTER DATA"::"This routine will first ask you what starting address (4nter Data":" 3) Append Data":" 4) Edit Workfile":" 5) Disk Operations":" 6) Go To Debugger":" 7) Relocate File":" 8) Exit" n" ^P CTRL-P is the Printer toggle"::"Each of these will be explained on the screens which follow." s500 xThe program 'HELLO.BEU' checks for the presence of a RAMcard, loading it with the file 'INTBEU.1'. If a RAMcard isn'tpresent, then the BEU.48K version is loaded into memory." d:"The eight functions of BEU are :"::" 1) Clear Workfile":" 2) E <:"The 64K version is superior, as it will remain resident on the card and can be accessed by the '&' Ampersand command. In addition, it contains a 'DEBUGGER' which wasn't included in the 48K versionbecause of memory limitations." U500 Z"NTRY UTILITY is a program which will assist you in in the entry and debugging of machine-language code for the Apple's 6502 processor." (:"It comes in two forms, depending on whether you have a 16K RAM card (or its equivalent) in your Apple."\p ::T$"BINARY ENTRY UTILITY":21(T$)2::T$::34,2:4:T$"WRITTEN BY KENNETH S. LIND":21(T$)2:T$w6X(1101):X0630:APPLE //E::"DO YOU HAVE A LOWER-CASE CHIP ?31110||pxxp  8=?`ʕ>?>`8M˕   , ` L:L``F`$ ܪȱ 婠Lܤ`Ś25 a0 穠LJKH۰hЅѠȱ0@ȱHШhh0JL JLKMMLILLILLLLy 2L,PQ܅x݅yL آ8ЕNЕKʵ˕ە LkLMNܕ`LΥΥLMLʥMː ʥ˰JυKL  8MϕڥL 4΅` ȑ` l΅υLD L4 xPiڄeΕPeϕxPȵxڰL# N ONi)OO i@ &N&O ϕLz JKLυML LMJυKL qL ȩ` 6 6P`JLKMLxL L6 L[` Oڵw۴Nv L`xw8OPL# (` 40!(L 4LdF`  %L"wL{ TL~&&&ڥې څΈ` l 4Ȑ,` 40L 4Ȑ-` 4(L(n ㊨ rLa ?&0ΰ` Δ䮥G 0 #gMghghPcQ)Wqqqqhhq`uuuQ줰䮲륥Q9O/Q) WjB`O~5'Q 䯭䮡ޜݜݞGg` ` `嶡䡯z~" `P O䯭䮡𥴳\@`` ~3`Gg壡yi壡yi` @Gh X{gggggg'(dgxkg~9g'7(*7ϠGX͠LϠ٠SGϠDĠHSĠNSĠTĠ 5EMҠL Šō?FِLϚΠ κ f ٢  ٦Τ ȹɀI ȄȹH h3 oLB oTMɅ"3J[NSJIfmzq# [$NYP;#o6#"#!0 9@0Ӷ:Pyإ<[(N>W']5Kgvq ʤ  Y YoܹݾЇ`TP@xL` Ιϙ_oܙݙᙯ` ??<<<<<<<0UUUUUUUUWΤ PڵxۥΑȥL`hh$ F`` %ֈ`ʤZA^ܙ ݙ0  m7;܄iȢٚ . y$IqܤݐLM͠1FLJܹ/ݾLuc ܪȱ L[ĨP?xO_ڹo  ? A֍ٍ̍i_[ WL L  㐫𩭯 Э ТТhhhLб   8  m m L```;ŠҠŠӠƠōӡ L X Ѝ Ѝ8ȹ⎭؅ 9ݐɃL3⍮ 9ݐɃLB⍯ X [ ݭ⮫ A: ݭ⮭ A@ ݭ⮯ AR nLHHH u)-)&")b@Pl  . $ ; &?1?=A>?I i`HH11`IJ듧ƙɾ5Ė+]̵h5`4ɺл1>@@A`41`>BD`8>6>) `LL u ?l:L``L@ 'A=?<) < `JJJ>Ie=?<=`K i! Ȉ2 ,`H h*:` `YE <Šӭpd`HVTQ PS 6" (!#%L" X`I`ɍ,,L8L,H ΰɐHJ) )h)i( ((`ɇ@ 0`$($$!fi#bZH&bTDThDt(ntJrtttrDh2"&&rr&HDDȅEhH 0l( Lh:h;l Le / XZ]_, :ILl `Ȇ׍숈l E@A  J 0,*i H/.  `0 .: VȘ L `8/;e:` T0 "T3  T3  T; "D3 D"D3 D"D3 "D3 &1!YMJؤ#]#)i#$S#$S[[i$$)|mi)S4J G(i.&E0%.Q&&` , iH h-`/'-'0 (`HJ) 'h)i& &&`0i)0 00`J G&(JJJJ)`:; H:J jɢ )Jb y.)/) JJJ Ȉ` H:  J/Ȑh,--&eʵ``` f f` &L L fLC`8i`uu  ee`` ` 0` ` ` 5I` 5Iй` f f`L ?5=ɥD 5 5 D4ɻɍЀL\ɠ` }Ɏ$ ``LXWVhY `XWYHV(` Jhh LH) JQ JJJH`HJ`hh ?l8e` %GQ/[҅n3pJ?>ʊ:>Ș;k/=:   S;:L 4 40K14 L= BC D..=D5֤4 J :3 g ɠɤ ɓՊ x= 4   &B&C= 44ݴ 4ݺ ɤ4&D`L# ȱ0` 4 `u` 7$ 8`0 &&` { %Ppĥ uv` 2e   %F8 2 8Hh&&&&& 0hhI`LLLHxܥyݥPQLuƵPxLhQεyϱΠ L 4) ؘ 甠` uHɃLh` ☪ T`  甠`ѥ΅ ΅ҥυө 甠0ХҠ ӕ "L 4i` F`ٚ .L 4 `$$L$Ն$L,L 8!$ L赟0L0ܤ } L赟L0ܤ } L ` ` [ S oP YVPL6 O 5OPL Ι_LfP0Q@PPxA@QPa`qp`HP8εxh`Ʌ- L)Ȅ ` 8`ԅӅ #`3  g ȭɤ) ` 4 4 :L)14 L) ɉ   ` A2A4!5#6$7E8F`!1`L  ڠ  3)eL+Ly`  &JڥK۰څʥۅ ,L :LL  8ϕڥ۰ߥѥڅ<ۅ=ʅ>˅? 7 څʥۅ` vL1 Ljɍ ɍɍLLɍHn ăh a     )Т` ȹ0HJJJJ h) 0:iLPΥ? r`0 0 >Υ? v `ʅ˅LMޥ<Υ= m"   * * *   *`L67` a1Lc3!A5$4q!1`! 8MϕL  L) KJJ`  X   L17 ) A# f    L1 ӎL1LpVP΍Qύ W8JK6ʑ˥ʥ˰ʥ˱ਈ` ӎLB I0 B     ǍЍԺ̺ĽōԠǠŠҠԠΠ̠ҮԠӠԠϠŠŠԠӠξҠҮɍΠҠÍĠԱĠ͠ÍΠɍNTATION FOR MASM. TO EXIT THE"~ 2"DOCUMENTATION, SIMPLY HIT THE KEY. YOU CAN EXIT MASM BY ENTERING: OBJ 976" <23:" EXEC MASM":22:LASIC' AND 'SWEET16' FILES ON THIS DISK, MASM WILL OPERATE IN A 48KAPPLE ][ PLUS." (:"TO USE THE MASM ASSEMBLER, SIMPLY 'EXEC'THE FILE ENTITLED 'MASM'. THIS WILL THEN LOAD INTEGER BASIC AND SWEET16 INTOMEMORY, LOAD MASMA AND LEAVE YOU IN THE DOCUME ::18::"MASM":3:"'MASM' IS AN ASSEMBLER WHICH WILL ALLOW THE USER TO ENTER ASSEMBLY LANGUAGE SOURCE CODE, SAVE IT AND ASSEMBLE IT."Q :"'MASM' WAS ORIGINALLY WRITTEN FOR THE INTEGER BASIC ENVIRONMENT, BUT BY USING THE 'INTEGER B  RVIEW AND INSIGHTS. 2: HOW TO LOAD AND SAVE PROGRAMS. 3: FORMAT OF SOURCE STATEMENTS. 4: COMMANDS TO THE ASSEMBLER. 5: PSEUDO-OPCODES (DEFINE DATA). 7: CREDITS. 8: HELPFUL HINTS & MISCELLANY. 9: SAMPLE SOURCE PROGR@ /B@CO XB BC S@ O1:ōOi @B轏@CL@L@ Y˅DOED DE X`LLB!DE_GI]K^K LMM A S M : EDITOR & ASSEMBLER --------- PAGE TOPIC ==== ===== 1: OVE     * NMACRO ASSEMBLER SYMBOL TABLE NO LABEBAD OPCODRANGE EREXTRA DEBAD ADDRESUNDEBAD SYMBO AT LINEMACRO MISMATC000NU010009004 LH6h7LH|Hꩇ89IF QELSEIFDO LV |EDO B X X EQU STASTXSTYLWILDR STR0LDB@STBPLDW`STWpLBDSBDADRSBRLWDCPRINRDCRAPP+ASMDEL+FAS)LISPLOANEWRENOBJSAV@SLODISCOPz L\=<?>< `<:=; 5=9ASL BIT,$CMPCPXCPYDECEORIMEAQU]YINCJMPLlJSR LDALDXLDYLSRNFJV^ORA ROL.&*6>RORnfjv~SBCORGDFADFH.DFBEQUHDFWpBRKCLCCLDCLIXCLVDEXDEYINXINYNOPPHAHPHPPLAhPLP(RTI@RTS`SEC8SEDSEIxTAXTAYTSXTXATXSTYARTNBK RS NULBCCBCSBEQBMI0BNEBPLBVCPBVSpBR BNCBC BNNBN BZ BNZBF BNF BS ADCimeaqu}yAND)-%!1 l` H)h` x@A L( S:; L:7 8 iȽ ~:>;?` hhL_>?  <>=?&Ly ۆ܆  +-   ` $#*J:J 0  `R LTL #uۥuL=8ۥL=0 Pɢ 0 :A[ Pܢ``J K %yL܅۠ L N  C נ 8 ),д XЭ )Ц П ,Д YЍ   L 0``&H     hف  ``` $ ``: 6 58 ʉ00yYʅե˅ֆߩՅLօM\   ԥ`  . L*9     # L LL el  `  /0߅Șc5Ly A :# /( 3#./&(U /, X/Y6GL=i?BC , LʩM˩I6bVcWdXeYfZg[h\i]j^k_L L3L`) #L $  `  v mL;ʅ˅LM  m       :1100 TAY :1110 SPKR EQU $C030 :1120 NOTE DEY :1130 BNE NOTE :1140 STA SPKR :1150 TAY :1160 INX :1170 BNE NOTE :1180 BEQ LOOP (ALWAYS) :1190 TONE DFH 3355778899BBDDEE THIS IS PAGE #. WHICH PAGE NEXT? BEQ LOOP00 * MAKE NOISES FROM KEYS :1010 ORG $800 :1020 LOOP JSR $FD0C GET A KEY :1030 AND #$7F :1040 CMP #3 CTRL-C? :1050 BNE NOIS NOPE :1060 JMP $E003 YES- EXIT :1070 NOIS AND #$07 :1080 TAX :1090 LDA TONE,X 1000 THIS DOCUMENTATION WAS SAVED VIA: >BSAVE MASM DOC,A$4000,L$1000 DURING LISTING OR ASSEMBLY, PRESS A KEY TO PAUSE &/OR "RETURN" TO STOP LISTING. ERROR MESSAGES ARE BURIED INSIDE THE LISTING, SO WATCH CAREFULLY FOR THEM.SAMPLE PROGRAM: :10EITH FALKNER.HELPFUL HINTS: -------------- ANY LINE STARTING WITH DOLLAR-SIGN ($) IS A COMMAND TO THE MONITOR. THE ESCAPE KEY FUNCTIONS FOR KEYS @, AND A THROUGH F ARE AVAILABLE. MASM WAS SAVED ON DISK VIA: >BSAVE MASM,A$1000,L$ $HH 2-BYTE ADDR (LOW,HIGH). DFH #NAME = LOW BYTE OF ADDRESS DFH /NAME = HIGH BYTE OF ADDRESS ***************************************** * BY SCOTT T. JONES, CLEARWATER, FLA ** **************************************** DOCUMENTATION BY K LOCATION OF PROGRAM IN MEMORY. EQU AA OR $HH ASSIGN A LABEL TO A LOCATION IN MEMORY. DFA "???????" DEFINE ASCII DATA. DFB EQU TO CURRENT ADDRESS. DFH HH DEFINE A BYTE IN HEX. DFW AA ORUMBER THE PROGRAM. SAV SAVE SOURCE TO TAPE. SLO SLOW DOWN ALL PRINTING. A = DECIMAL ADDRESS; H = HEX ADDRESS I,J,K = LINE NUMBERS IN THE PROGRAM.PSEUDO-OPCODES: CONTROL DATA & MEMORY --------------- ORG AA OR $HH DEFINESOME LINES. DIS A1,A2 DISASSEMBLE TO SOURCE. FAS MAKE PRINTING GO FAST. LIS [I[,J]] LIST LINES OF PROGRAM. LOA LOAD SOURCE FROM TAPE. NEW REINITIALIZE MASM. OBJ AA OR $HH RUN PROG @ THAT ADDRESS. REN RENRAND AND OPTIONAL COMMENT. A LINE WITH "*" IN COL 7 IS A COMMENT. CTRL-I IS A HORIZONTAL-TAB KEY.DIRECT COMMANDS: CONTROL MASM ITSELF ---------------- ASM ASSEMBLE THE PROGRAM. COP I,J,K COPY LINES I-J AFTER K. DEL I[,J] DELETE OLUMNS CONTENT 01 THE PROMPT IS A COLON (:). 02-05 4-DIGIT LINE NUMBER. 06 (LEAVE A SPACE) 07-10 OPTIONAL 4-CHARACTER LABEL. 11 (LEAVE A SPACE) 12-14 3-LETTER OPCODE OR PSEUDO-OP. 15 (LEAVE A SPACE) 16-?? OPE :CATALOG, ETC. EXIT -- TO EXIT MASM, PRESS RESET, OR TYPE "OBJ 976". 4096 ($1000) IS THE "COLD" ENTRY; 4099 ($1003) IS THE "WARM" ENTRY. AFTER ANY DOS ERROR MESSAGE, TYPE "CALL 4099" TO RECOVER.FORMAT OF PROGRAMS. CNO WARRANTY IS EXPRESSED OR IMPLIED.STORING PROGRAMS: LOADING & SAVING ----------------- TAPE -- :LOAD AND :SAVE WORK JUST AS >LOAD AND >SAVE DO IN BASIC DISK -- MASM WILL ACCEPT DOS COMMANDS, EG: :LOAD [NAME] OR :SAVE [NAME] & SAVED AS "I" FILES. BUT DON'T TELL BASIC TO LIST A PROGRAM! MASM IS LINE-ORIENTED, AND THE SOURCE ISFIXED FORMAT; LABELS ARE 1-4 BYTES. THE CHARACTER PERIOD (.) IS SPECIAL. PERIODS ARE ALWAYS "INVISIBLE" IN YOUR PROGRAM; DEFINE THEM WITH "DFH 2E". AM.OVERVIEW OF MASM: FUNDAMENTALS ----------------- MASM IS A CO-RESIDENT ASSEMBLER WITH SUPPORT FOR SWEET-16 AND CASSETTE TAPE. MASM CAN ACCEPT ALL DOS COMMANDS. THE TEXT EDITOR IS STYLED AFTER INTEGER BASIC, AND SOURCE PROGRAMS ARE LOADED i@ &N&O ϕLz JKLυML LMJυKLˎ qL ȩ` 6 6P`JLKMLxL L6 L[L JLKMMLILLILLLLy 2L,PQ܅x݅yLÈ آ8ЕNЕKʵ˕{ TL~&&&ڥې څΈ` l 4Ȑ,` 40L 4Ȑ-` 4(L(n ă ărLa ?&0ΰ` ΔL 4΅` ȑ` l΅υLD L4 䎴xPiڄeΕPeϕxPȵxڰL# N ONi)OO줰䮲륥Q9O/Q) WjB`O~5'Q 䯭䮡ޜݜݞGg` ` `嶡䡯z~" `` Oڵw۴Nv L`xw8OPL# (` 40!(L 4LdF`  %L"wLh X{gggggg'(dgxkg~9g'7(*䮥G 0 #gMghghPcQ)Wqqqqhhq`uuuQĠ 5EMҠL Šō?FِLÈϚΠ ăκ f ٢  ٦Τ ȹɀI ȄȹH h3 oLP O䯭䮡𥴳\@`` ~3`Gg壡yi壡yi` @G>W']5Kgvq7ϠGX͠LϠ٠SGϠDĠHSĠNSĠTܙݙᙯ` ??<<<<<<<0UUUUUUUUWB oTMɅ"3J[NSJIfmzq# [$NYP;#o6#"#!0 9@0Ӷ:Pyإ<[(N܄iȢٚ . y$IqܤݐLM͠1FLJܹ/ݾLuc ăܪȱ L[ĨP?xO_ڹo  ʤ  Y YoܹݾЇ`TP@xL` Ιϙ_o$0 8 P# o ΅ڥυ e epݕ` 4LˎL$ `  rPՆϦ ` ΅υȩ ` Τ PڵxۥΑȥL`hh$ F`` ͏%ֈ`ʤZA^ܙ ݙ0  m7; xx ԅբ H 0  $ ( x$0  xx 0$FԨֹ)U h)װ H 듥֐ι L؆l`w0P`fLPεϵxϱHȱ΅hΈ` J  P` Y $0`  'ʅ˅LM&ȱϰqȥȥ`FLʥM˥J̥Kͩ`Lkȱ0@hJHȱШhЄӠȱ0I@iHeШiH˰hhЈЈ͑Ј̑ЈЈ0JKЬ@iHe eѕxh$0X~")XȔ) F*Ȇ0LJɢ  Ȉ ϴX)HЄ ȹ)eHe0hޤȄ h󰩠ɩch cɰ$0 $` dq  u  mʥ` ȹ0 L uߙ`` ӎ$0LL*iS 00)ȆȘHJI@hL`ȩ)?Jжi?oiO iȱ) zȵх 8 05  o ` l3 ΃3` 4J G 4&(JJJJ) ` ӏ F٩ $  ΃Ȣ ii)ɰL ̥͐Eʑ˥ʥ˰ਈ$ u~`ꠀЕ x ت3 Q3ؕxQεy NvNδPPPL#Q8yڅ`Sε{ϵQڵyxȔPMuHOwh(VP`΅h(OM ׁL6 T&ϐ eڅeۅ &L~ 畠(LoU [΅ڥυ džة * * *     % 0LH΢QPHΪ0h$0 )?i h](Њ Px+L 4P 䏕xL# 48` PxL PeHxeH˰iکeۅȱhڙ      $C030 `NOTE DEYj BNE NOTEt STA SPKR ~ TAY  INX BNE NOTE BEQ LOOPTONE DFH 3355778899BBDDEE$55778899BBDDEET* MAKE NOISES FROM KEYS  ORG $800LOOP JSR $FD0C GET A KEY AND #$7F CMP #3 CTRL-C? BNE NOIS NOPE$ JMP $E003 YES- EXIT.NOIS AND #$07 8 TAXB LDA TONE,X L TAYVSPKR EQU `uu  ee`` ` 0` ` ` 5I` 5Iй` f f`Lǔ`w Jhh LH) JQ JJJH`HJ`hh ?l8e` %GQ/[҅n3peʵ``` f f` &L L fLC`8i  T`  `ѥ΅ ΅ҥυө 0ХҠ ӕ "L 4i` F`ٚ .L 4 `$$L$Ն$L,L 8!$`L# ȱ0` 4 `O ɏ5OPLɏ Ι_LfP0Q@PPxA@QPa`qp`HP8εxh`ɅLLHxܥyݥPQLuƵPxLhQεyϱΠ L 4) ؘ ` uHɃLh` L``F`$ ܪȱ Lܤ`Ś25 a0 LJLJKH۰hЅѠȱ0@ȱHШhh0J L赟0LՓ0ܤ } ɑL赟L0ܤ } ɑL ` ` [ S oP YVPL6 ە LkLMNܕ`LΥΥLMLʥMː ʥ˰JυKL  8Mϕڥ۰եڅʥۅ , ` :L΄<Ȅ>=?`ʕ>?>`8M˕   , ` ăL:$0#ɍ LÎ `Ï э` j> ɠ`& 8鰐 i  ` JJJJJ)` Lɳ L Z э L H H H A эLs ( э A эL0# э$ э )) э, эY эLs) , эX э) э э$; э эLLlH) эh)`HJJJJ ƍh) ɺi,ɃLɃL vݠ э , э , э , э , э ݏ э  э LA э  э 8ei 1$(A эHheHe h Ls  / X 3O эO э ɱɵ э+ э ; J э ;  f эɲ1. э  эI э э э эɳLE@]  э jÏɳ)O٩    !!! ! ! ! ! >,  ǁ  C̃-l ̓/܁̂l,d 0  Ʈl(5作d m ,FDFFG%m ,B ǽ ,C /쀮 U.܁./@-D ,D-Dذ""صؽXؾؽԶض}uy}uyu~vzu}uy@v~vzMEMEQhETNFREEQ8FFRIIadJb حaخb p @@ p @@ p @ p @@ D  D D  @@Y EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEI STA STX STY TAX TAY TSX TXA TXS TYA ??? SEC SED 0؉)ؐ(؊*؉)4؊*r%-%ؘ%.& %%&&ؤ]]،]n^]]<^^ب!!ؔ!n"!!D THEN ASK FOR ANOTHER FILE NAME. INPUT NO.? INPUT STARTING ADDRESS (HEX) INPUT ENDING ADDRESS (HEX) ENDING LESS THAN OR EQUAL TO STARTING ADDRESS - REENTERBCC BCS BEQ BMI BNE BPL BVC BVS ADC AND ASL BIT BRK CLC CLD CLI CLV CMP CPX CPY DEC DEX DE NOTE HIT ANY KEY TO STOP AND TO RESTART. CTRL-C WILL RETURN YOU TO BASIC. NO. 3 WILL DISASSEMBLE ABOUT 23 BYTES INTO EACH DISK SECTOR THAT IT WRITES TO.IT USES AN ADDITIONAL SECTOR FOR THE FILE TRACK/SECTOR LIST. NO. 4 WILL DISASSEMBLE ABOUT 1/2K AN CLOSE MONI,O,C CATALOG INPUT FILE NAMEINPUT PORT NO. FOR PRINTERң ALL PURPOSE DISASSEMBLER BY LARRY FREEMAN 1 DISASSEMBLE TO SCREEN 2 DISASSEMBLE TO PRINTER 3 DISASSEMBLE TO DISK AS TEXT 4 DISASSEMBLE TO DISK FOR ASM/65 8!hIPHm14I1YI0=H0ٹ$0$05H0UH0=HEENTER  .END !+<% VSHUD NQDO EDMDUD!$0#ɍ L  ` ` j> ɠ`& 8鰐 i  ` JJJJJ)` Lɳ  L Z  L H  H H  A Ls (  A L0 # $ )) , Y Ls ) , X ) $; L Ll H) h)`HJJJJ h) ɺi,ɃLɃL vݠ  ,  ,  ,  ,      L A    8ei 1$(A HheHe h Ls   / X 3O O ɱɵ + ;  J ;   f ɲ1.   I   ɳLE @]  j  ɳ)O٩980:J:I,J::RWADV8448:TA8964:SA8965:RD8972:SL6:DR1:DA37148sDA,SL16:DA14,SL16:DA1,DR:DA15,DR:\ 76,0,032,32,12,225,165,160,160,0,162,9,24,42,16,1,200,202,208,249,165,161,162,9,24,42,16,1,200,202,208,249,169,0,32,242,226,96,96:I1):"("A")";:28:Z(LL):"("L")":LCLC1:TNCT:SNCS:19:[TA,TN:SA,SN:RD,1:RWDRV:C8191: 169,035,160,00,32,217,3,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,96,1,0,17,0,17,35,0,36,0,1,1,0,254,96,1,0,1,239,216:I84488474:J:I,J::I89608:"READ ANOTHER DISK ?";:29:A$:A$:A$"Y"Į:19 26 I315:((B3I));:I:TN(B3):SN(B31):19:TN(BASE12):SN(BASE13):19:A(BASE)(1BASE)256:AAA:AATCAAAA216 L(BASE2)256(BASE3):LLL:LLTCLLLL216:15:Z(AA 1:24:" ";:35,23:21:958::21::14 1:24:" ";:LC1:21: B2:CTNTC:CSNSC:5 21:958:10)"NO MORE BINARY FILES"1 11)"FREE SECTORS = ";CNT:24:112):LC1:35,21:22:25 TNCT:SNCS:19:NTC(BASE1):NSC(BASE2):B21122435:B3BASEB2:(B3)0(B31)0Ĺ35,23:21:958::13 (B3)255ī8 PR(B32):PR4PR1284İ16 LC1612 24:16:"CONTINUE ?";:25:A$:A$:A$"Y"11S"OR":8:"HIT ANY OTHER KEY TO QUIT ?";:34:A$:A$:A$(13)ī26 VT17:VS0:BASE9216:NULL$"":TC2151:::" FILE NAME START LENGTH ":" (13 CHAR) HEX(DEC) HEX(DEC) ":34,3:6:::TNVT:SNVS:19:CT(BASE1):CS(BASE FILE NAME FOLLOWED":3:"BY THE FILE START ADDRESS AND FILE":3:"LENGTH IN BOTH HEX AND DECIMAL."::3:"THE NUMBER OF DISK FREE SECTORS IS":3:"ALSO CALCULATED.":16:8:"INSERT DISK TO BE SEARCHED":18:"THEN"C 8:"HIT < RETURN > TO CONTINUE":19: 20:::R140:1:R:"*";:23:R:"*";::R222:1:R:"*";:40:R:"*";::3:8:"BINARY FILE PARAMETER LIST":5:2:R239:"*";:::7:3:"THIS PROGRAM WILL SEARCH A DISK FOR":3:"ALL BINARY FILES, GIVING THE FIRST" 3:"13 LETTERS OF THE!!!!!!!!"" @@,h`PQ/ Q^ԥP &^ &^ePP^eQQP&QPe PQ L  HH ~h* ph i# ȥ`L#hذ""صؽXؾؽԶض}uy}uyu~vzu}uy@v~vzMEMEQhETNFREEQ8FFRIIadJb حaخb p @@ p @@ p @ p @@ D  D D  @@Y EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEI STA STX STY TAX TAY TSX TXA TXS TYA ??? SEC SED 0؉)ؐ(؊*؉)4؊*r%-%ؘ%.& %%&&ؤ]]،]n^]]<^^ب!!ؔ!n"!!D THEN ASK FOR ANOTHER FILE NAME. INPUT NO.? INPUT STARTING ADDRESS (HEX) INPUT ENDING ADDRESS (HEX) ENDING LESS THAN OR EQUAL TO STARTING ADDRESS - REENTERBCC BCS BEQ BMI BNE BPL BVC BVS ADC AND ASL BIT BRK CLC CLD CLI CLV CMP CPX CPY DEC DEX DE NOTE HIT ANY KEY TO STOP AND TO RESTART. CTRL-C WILL RETURN YOU TO BASIC. NO. 3 WILL DISASSEMBLE ABOUT 23 BYTES INTO EACH DISK SECTOR THAT IT WRITES TO.IT USES AN ADDITIONAL SECTOR FOR THE FILE TRACK/SECTOR LIST. NO. 4 WILL DISASSEMBLE ABOUT 1/2K AN CLOSE MONI,O,C CATALOG INPUT FILE NAMEINPUT PORT NO. FOR PRINTERң ALL PURPOSE DISASSEMBLER BY LARRY FREEMAN 1 DISASSEMBLE TO SCREEN 2 DISASSEMBLE TO PRINTER 3 DISASSEMBLE TO DISK AS TEXT 4 DISASSEMBLE TO DISK FOR ASM/65  э , э э э@ э э э8@  э` ` BUFFER IS FULL, I NEED ANOTHER FILE NAME FOR THE NEXT BUFFER. BSAVE NOT HEX DIGIT, REENTER  .END *=$ WRITE OPEN DELETE F @ ::T$"MINI-ASSEMBLER IN APPLESOFT"::(40(T$))2:T$:34,2:6:"CAN YOU DISPLAY LOWER CASE? Y";(8);:A$:A$"N"ĺ"NO":10007 d::5:"The MINI-ASSEMBLER was included with theearlier APPLE ][ Computer but room was not available in"     8:N0:50 "ENTER HEX STARTING ADDRESS $";A$g X0:START0:L(A$):L4ĺ:A$;" IS TOO LONG!":13 IL11:H$(A$,LI1,1):(H$)64(H$)71X(H$)55:16 X(H$) STARTSTARTX(16(I1))::40LONG!":21 IL11:H$(A$,LI1EC:";:11,11:I07:DEC(I)(STARTI):6I4);DEC(I);:::"HEX: ";:I07:X(DEC(I)):" ";:::"ASC:";:I07:6I4);(DEC(I));:::NN1:N4STARTSTART8:5 :"NEW ADDRESS (A) OR CONTINUE? ";A$:A$"N"A$"NO"Ā A$"A"2 STARTSTART ADDRESS ";START :50,63:" [ EVERETT'S MEMORY INTERPRETER ] REF +0 +1 +2 +3 +4 +5 +6 +7 ADDR":50,255:34,2 :"REF ADDR = ";START;" = $";:11,0:SASTART:START32767SA(65536START) SA32768ĺ"8000":8 X(SA): "D10,76:12,3:HEX$"300:20 C E1 A6 A1 A5 A0 20 41 F9 60 20 C E1 A5 A1 20 DA FD 60 ND823G":I1(HEX$):511I,((HEX$,I,1))128::72,0:144::10:"DECIMAL OR HEX STARTING ADDRESS (D/H)?";:A$:N0::12:A$"H"12 "ENTER DECIMAL STARTING""""T%1511R DH%16DH%(DL%16):DL%16(DL%(DL%16)16)T%:I:EDDH%256DL%:;` 320o " " D$;"CLOSE" D$;"NOMONO"  B$:(B$)0(B$)5480 "ERROR - REENTER":460 T%0:DH%0:DL%0I1(B$): CHECK EACB%1,1);" ";:59 " ":D$;"CLOSE":D$;"NOMONO":U B$:(B$)0(B$)512q "ERROR - REENTER":10 T%0:DH%0:DL%0:I1(B$):T%((B$,I,1)):T%127T%T%12810040T%(MID(B$,I,1)) T%T%48:T%011 T%1016 T%T%7:T%10"0123456789ABCDEF":7* STST1:STED9? ST(ST8)88 :A%ST4096:B%STA%4096:(A$,A%1,1);:A%B%256:B%B%A%256:(A$,A%1,1);:A%B%16:B%B%A%16:(A$,A%1,1);:(A$,B%1,1);"- "; A%(ST)16:B%(ST)A%16:(A$,A%1,1);:(A$, AREA TO BE DUMPED."::"INPUT YOUR STARTING ADDRESS, HEX ";:10:SL%DL%:SH%DH%:A$B$:STED:"INPUT YOUR ENDING ADDRESS, HEX ";:10:D$;"CATALOG":"INPUT THE FILE NAME ";FI$:D$;"OPEN";FI$:D$;"DELETE";FI$:D$;"OPEN";FI$ D$;"WRITE";FI$:A$;".";B$:A$SING THIS PROGRAM AND THEN THE":"TEXT TO APPLEWRITTER CONVERTER, YOU":"CAN PUT MACHINE LANGUAGE DUMPS IN YOUR":"ARTICLES WRITTEN WITH THE APPLEWRITTER."::" NOTE: SET HIMEM OR START OF PROGRAM":"POINTER (HEX 67,68-DEC 103,104) TO" "PROTECT THES::D$(4)::D$;"NOMONC,I":D$;"MONO":8:"MEMORY DUMP TO TEXT FILE"::::" THIS PROGRAM WILL STORE ON DISK AS A":"TEXT FILE A SECTION OF MEMORY THAT YOU":"SPECIFY. THE OUTPUT WILL BE THE SAME":"AS THE MONITOR'S AS IN 300.400" " BY U" " " " ""4:23:958:22: 00,202,208,249,165,161,162,9,24,42,16,1,200,202,208,249,169,0,32,242,226,96,96zfI1012:Z:I,Z:pI81928227:Z:I,Z:zCNT0I561954:S(BASEI)256(BASEI1):V(S2)S2(S2)CNTCNT1CNTCNT(V)012:Z:I,Z::I81928227:Z:I,Z::CNT0:I561954:S(BASEI)256(BASEI1):V(S2)wS2(S2)CNTCNT1CNTCNT(V):: 76,0,032,32,12,225,165,160,166,161,32,65,249,96:I1012:Z:I,Z:I:I81928202:Z:I,Z:I:34,0:35,2