&d 2000: MINI-ASSEMBLER FOR APPLE Mn --------------------------------- qx PRINT BYTE M AS TWO HEX DIGITS  M1(M16):M2MM116:Z:ZZ2:(G$,M11,1);(G$,M21,1);:  ---------------------------------  POKE AND PRINT OBJECT BYTE 	 ZZ1:110:AD,M:ADAD1: ?	 --------------------------------- b	 SET UP TWO-BYTE ADDRESS FIELD ~	 HI(X256):LOX256HI 	 --------------------------------- 	 OUTPUT THE OPCODE AND ADDRESS 	 Z7:(37):MOP:160:MLO:160:BY3MHI:160 
 1000 ,
 --------------------------------- L
 OUTPUT SINGLE-BYTE OPCODES k
 Z7:(37):MOP:160:1000 
---------------------------------- 
PRINT NEXT ADDRESS 
Z1:868:M(AD256):110:MADM256:110:":";:20: 
"--------------------------------- 2, CONVERT C$ FROM HEX TO DECIMAL >6X0:I0 l@CL$"":500:CC$"#"CC$"("CL$CC$:500 EC0CL$"ERR": JXX16C:500:C0330 TCL$CL$CC$:500:CC$""340 ^ -------------------------------- GET NEXT CHAR FROM C$ 'II1:I(C$)CC$"":C1: ]CC$(C$,I,1):C(CC$)48:(C9C17)C22C1: oCC7(C9): -------------------------------- (37):7:"???"(7):   ERROR -------------------------------- :868:260:4000:IN$""ĳ (
(IN$,1)":"C$IN$:290:ADX:1000 @
L(IN$)3:L0900 o
(37):6:868:20:L$(IN$,3):L0ī1050 
C$"":J1:L$:2100:K0900 
230 
-------------------------------- 
TRY RELATIVE BRANCHES C$(IN$,L):L$" "C$:290:CL$"ERR"900 J2:2100:K01060 0CL$""900 j XXAD2:X128X127ĺ"CAN'T BRANCH THAT FAR":1000 !BY2:XX256(X0):190 $-------------------------------- .TRY JMP AND JSR OPCODES 8J3:2100:K01110 BBY3:CL$""190 LCL$"()"OP76OP108:190 Q900 EV-------------------------------- ^[TRY COMPLEX OPCODES u`J4:2100:K0900 jCA((E$,(K2)3,1)):BY2 tCL$""1600: ZPORABS ~CL$"#"1200:IMMEDIATE MODE CL$",X"1400:ZP,X OR ABS,X CL$",Y"1500:ZP,Y OR ABS,Y 2CL$"(,X)"1300:(ZP,X) OCL$"(),Y"1350:(ZP),Y X900 ~-------------------------------- IMMEDIATE MODE X255900 CA0OPOP8:190 CA4CA6CA7190 900 -------------------------------- INDIRECT MODE:  (...,X) *(CA2190 32900 YF-------------------------------- vPINDIRECT MODE:  (...),Y ZCA2OPOP16:190 d900 x-------------------------------- ZP,X OR ABS,X X2551450:ABS,X CA3CA5CA7CA9OPOP20:190 900 >CA3CA5CA7OPOP28:BY3:190 G900 m-------------------------------- ZP,Y OR ABS,Y X2551540 CA6CA8OPOP20:190 BY3:CA6OPOP28:190 CA2OPOP24:190 900 @--------------------------------  JZP OR ABS @TOPOP4:X255OPOP8:BY3 I^190 o-------------------------------- INITIALIZATION ::OP$(4),F$(4) OP$(1)"ASLBRKCLCCLDCLICLVDEXDEYINXINYLSRNOPPHAPHPPLAPLPROLRORRTIRTSSECSEDSEITAXTAYTSXTXATXSTYA" $OP$(2)"BCCBCSBEQBMIBNEBPLBVCBVS" 8OP$(3)"JMPJSR" OP$(4)"ADCANDCMPEORLDAORASBCSTAASLLSRROLRORBITCPXCPYDECINCLDXLDYSTXSTY" F$(1)"010000024216088184202136232200074234072008104040042106064096056248120170168186138154152" F$(2)"144176240048208016080112" !F$(3)"076032" mF$(4)"097033193065161001225129002066034098032224192194226162160130128" E$"000000012222344556789" G$"0123456789ABCDEF" AD768:1000:END OF INITIALIZATION, START AT $0300 4-------------------------------- >SEARCH OPCODE TABLE J gHK0:I1(OP$(J))3:L$(OP$(J),I,3)KI:I200:OP((F$(J),K,3)) oR: -------------------------------- INPUT A LINE IN$"":64879:I511 II1:I550ı C(I)128:C13ı  C32IN$IN$(C) C3ĳ 4030 <x1:(27)"B"(27)"E"(27)"L010":0 ]`1:(9)"80N"::0:1002::   
