Attachment | Size |
---|---|
![]() | 8.83 KB |
I need to run one assembler code on an apple 2. but I do not know how to do it! Can someone teach me?
Please support the defense of Ukraine.
Direct or via Unclutter App
No Ads.
No Trackers.
No Social Media.
All Content Locally Hosted.
Built on Free Software.
We have complied with zero government requests for information.
~ Est. 1999 ~
A pillar of corporate stability since the second millenium.
© 1999-2999 Tom Owad
I assembled it with the 65C02 cross assembler that I wrote. I had to fix one error on line 20 (missing $) and I had to delete 8 leading spaced on each line of your source. I have included the edited source, listing and .o output file in a zip file. You should be able to unzip this, move the code.o to an Apple II disk image and then load and execute it. I assembled at $800 (default) so if your code isn't relocatable and that's not where it is supposed to be it may need to be re-assembled.
as65.pl -o code.o code.asm**** Starting 1st pass ****
%%%% Saving symbol OFS_030 2096 $0830%%%% Saving symbol OFS_034 2100 $0834%%%% Saving symbol OFS_036 2102 $0836%%%% Saving symbol OFS_06A 2154 $086a%%%% Saving symbol OFS_099 2201 $0899%%%% Saving symbol OFS_09E 2206 $089e%%%% Saving symbol OFS_0AA 2218 $08aa%%%% Saving symbol OFS_0CA 2250 $08ca%%%% Saving symbol OFS_0CC 2252 $08cc%%%% Saving symbol OFS_0D5 2261 $08d5%%%% Saving symbol OFS_0E0 2272 $08e0%%%% Saving symbol OFS_106 2310 $0906%%%% Saving symbol OFS_112 2322 $0912%%%% Saving symbol OFS_123 2339 $0923%%%% Saving symbol OFS_125 2341 $0925%%%% Saving symbol OFS_126 2342 $0926%%%% Saving symbol OFS_154 2388 $0954%%%% Saving symbol OFS_157 2391 $0957%%%% Saving symbol OFS_1C1 2497 $09c1%%%% Saving symbol OFS_1C8 2504 $09c8**** Starting 1st pass again ****
---- Symbol table ----
OFS_125 : $0925OFS_106 : $0906OFS_0AA : $08aaOFS_154 : $0954OFS_112 : $0912OFS_06A : $086aOFS_036 : $0836OFS_030 : $0830OFS_099 : $0899OFS_0E0 : $08e0OFS_034 : $0834OFS_09E : $089eOFS_1C8 : $09c8OFS_1C1 : $09c1OFS_0D5 : $08d5OFS_126 : $0926OFS_123 : $0923OFS_0CC : $08ccOFS_157 : $0957OFS_0CA : $08ca
**** Starting 2nd pass ****
0800: ad 72 aa 1 LDA $AA72 ;0803: 85 eb 2 STA $EB ;0805: ad 73 aa 3 LDA $AA73 ;0808: 85 ec 4 STA $EC ; 5 080a: 18 6 CLC ;080b: a0 01 7 LDY #$01 ;080d: b1 eb 8 LDA ($EB),Y ;080f: 85 ed 9 STA $ED ;0811: 69 dd 10 ADC #$DD ;0813: 85 f9 11 STA $F9 ;0815: c8 12 INY ;0816: b1 eb 13 LDA ($EB),Y ;0818: 85 ee 14 STA $EE ;081a: 69 01 15 ADC #$01 ;081c: 85 fa 16 STA $FA ; 17 081e: a5 ed 18 LDA $ED ;0820: 69 30 19 ADC #$30 ;0822: 8d a9 ad 20 STA $ADA9 ;0825: a5 ee 21 LDA $EE ;0827: 69 00 22 ADC #$00 ;0829: 8d aa ad 23 STA $ADAA ;082c: 85 e3 24 STA $E3 ; 25 ; 26 082e: 90 04 27 BCC OFS_034 ; 28 0830: a9 00 29 OFS_030 LDA #$00 ;0832: 85 e3 30 STA $E3 ; 31 0834: a0 20 32 OFS_034 LDY #$20 ;0836: b1 f9 33 OFS_036 LDA ($F9),Y ;0838: 99 dc 02 34 STA $02DC,Y ;083b: 88 35 DEY ;083c: d0 f8 36 BNE OFS_036 ; 37 083e: 8c eb b7 38 STY $B7EB ;0841: a2 bb 39 LDX #$BB ;0843: 8e f0 b7 40 STX $B7F0 ;0846: 86 ce 41 STX $CE ;0848: a2 b4 42 LDX #$B4 ;084a: 8e f1 b7 43 STX $B7F1 ;084d: 86 cf 44 STX $CF ;084f: a2 11 45 LDX #$11 ;0851: 8e ec b7 46 STX $B7EC ;0854: a2 03 47 LDX #$03 ;0856: 8e ed b7 48 STX $B7ED ;0859: a2 01 49 LDX #$01 ;085b: 8e f4 b7 50 STX $B7F4 ;085e: 20 dd 02 51 JSR $02DD ; 52 0861: b1 ce 53 LDA ($CE),Y ;0863: c9 19 54 CMP #$19 ;0865: d0 03 55 BNE OFS_06A ;0867: 4c 62 fa 56 JMP $FA62 ; 57 ; 58 ; 59 086a: c9 56 60 OFS_06A CMP #$56 ;086c: f0 2b 61 BEQ OFS_099 ; 62 ; 63 086e: a9 56 64 LDA #$56 ;0870: 91 ce 65 STA ($CE),Y ;0872: 8c bc b4 66 STY $B4BC ;0875: 8c bd b4 67 STY $B4BD ;0878: ee f4 b7 68 INC $B7F4 ;087b: 20 dd 02 69 JSR $02DD ; 70 087e: a5 ed 71 LDA $ED ;0880: 8d f0 b7 72 STA $B7F0 ;0883: a5 ee 73 LDA $EE ;0885: 8d f1 b7 74 STA $B7F1 ;0888: ce ed b7 75 DEC $B7ED ;088b: 20 dd 02 76 JSR $02DD ; 77 088e: ee f1 b7 78 INC $B7F1 ;0891: ce ed b7 79 DEC $B7ED ;0894: 20 dd 02 80 JSR $02DD ; 81 0897: d0 9b 82 BNE OFS_034 ; 83 ; 84 ; 85 ; 86 0899: 8e f4 b7 87 OFS_099 STX $B7F4 ;089c: a2 0f 88 LDX #$0F ;089e: 8e ed b7 89 OFS_09E STX $B7ED ;08a1: 20 dd 02 90 JSR $02DD ; 91 08a4: a9 03 92 LDA #$03 ;08a6: 85 d6 93 STA $D6 ; 94 08a8: a0 0d 95 LDY #$0D ; 96 08aa: b1 ce 97 OFS_0AA LDA ($CE),Y ;08ac: 29 7f 98 AND #$7F ;08ae: c9 04 99 CMP #$04 ;08b0: d0 1a 100 BNE OFS_0CC ; 101 08b2: 84 d7 102 STY $D7 ;08b4: 88 103 DEY ;08b5: 88 104 DEY ;08b6: b1 ce 105 LDA ($CE),Y ;08b8: c9 ff 106 CMP #$FF ;08ba: f0 0e 107 BEQ OFS_0CA ; 108 08bc: a4 d6 109 LDY $D6 ;08be: b1 ce 110 LDA ($CE),Y ;08c0: c9 49 111 CMP #$49 ; 112 ; 113 ; 114 ; 115 ; 116 ;08c2: f0 06 117 BEQ OFS_0CA ; 118 08c4: a9 49 119 LDA #$49 ;08c6: 91 ce 120 STA ($CE),Y ;08c8: d0 0b 121 BNE OFS_0D5 ; 122 08ca: a4 d7 123 OFS_0CA LDY $D7 ;08cc: e6 d6 124 OFS_0CC INC $D6 ;08ce: 98 125 TYA ;08cf: 18 126 CLC ;08d0: 69 23 127 ADC #$23 ;08d2: a8 128 TAY ;08d3: 90 d5 129 BCC OFS_0AA ; 130 08d5: c9 49 131 OFS_0D5 CMP #$49 ;08d7: f0 07 132 BEQ OFS_0E0 ; 133 08d9: ca 134 DEX ;08da: e0 02 135 CPX #$02 ;08dc: d0 c0 136 BNE OFS_09E ;08de: f0 74 137 BEQ OFS_154 ; 138 08e0: ee f4 b7 139 OFS_0E0 INC $B7F4 ;08e3: 20 dd 02 140 JSR $02DD ; 141 08e6: ce f4 b7 142 DEC $B7F4 ;08e9: a4 d7 143 LDY $D7 ;08eb: 88 144 DEY ;08ec: 88 145 DEY ;08ed: b1 ce 146 LDA ($CE),Y ;08ef: 8d ec b7 147 STA $B7EC ;08f2: c8 148 INY ;08f3: b1 ce 149 LDA ($CE),Y ;08f5: 8d ed b7 150 STA $B7ED ;08f8: 20 dd 02 151 JSR $02DD ; 152 08fb: a0 0c 153 LDY #$0C ;08fd: b1 ce 154 LDA ($CE),Y ;08ff: 85 d6 155 STA $D6 ;0901: c8 156 INY ;0902: b1 ce 157 LDA ($CE),Y ;0904: 85 d7 158 STA $D7 ; 159 0906: a0 01 160 OFS_106 LDY #$01 ;0908: b1 ce 161 LDA ($CE),Y ;090a: d0 06 162 BNE OFS_112 ;090c: c8 163 INY ;090d: b1 ce 164 LDA ($CE),Y ;090f: f0 12 165 BEQ OFS_123 ; 166 0911: 88 167 DEY ; 168 0912: b1 ce 169 OFS_112 LDA ($CE),Y ;0914: 8d ec b7 170 STA $B7EC ;0917: c8 171 INY ;0918: b1 ce 172 LDA ($CE),Y ;091a: 8d ed b7 173 STA $B7ED ;091d: 20 dd 02 174 JSR $02DD ; 175 0920: 18 176 CLC ;0921: 90 e3 177 BCC OFS_106 ; 178 0923: a0 0a 179 OFS_123 LDY #$0A ;0925: c8 180 OFS_125 INY ;0926: c8 181 OFS_126 INY ;0927: f0 2b 182 BEQ OFS_154 ;0929: b1 ce 183 LDA ($CE),Y ;092b: d0 f8 184 BNE OFS_125 ;092d: c8 185 INY ;092e: b1 ce 186 LDA ($CE),Y ;0930: d0 f4 187 BNE OFS_126 ;0932: c0 fc 188 CPY #$FC ;0934: b0 1e 189 BCS OFS_154 ; 190 0936: 88 191 DEY ;0937: a9 11 192 LDA #$11 ;0939: 91 ce 193 STA ($CE),Y ;093b: c8 194 INY ;093c: a9 02 195 LDA #$02 ;093e: 91 ce 196 STA ($CE),Y ;0940: c8 197 INY ;0941: a9 11 198 LDA #$11 ;0943: 91 ce 199 STA ($CE),Y ;0945: c8 200 INY ;0946: a9 01 201 LDA #$01 ;0948: 91 ce 202 STA ($CE),Y ;094a: c8 203 INY ;094b: a9 00 204 LDA #$00 ;094d: 91 ce 205 STA ($CE),Y ;094f: c8 206 INY ;0950: 91 ce 207 STA ($CE),Y ;0952: 90 03 208 BCC OFS_157 ; 209 0954: 18 210 OFS_154 CLC ;0955: 90 6a 211 BCC OFS_1C1 ; 212 0957: a4 d6 213 OFS_157 LDY $D6 ;0959: ad ec b7 214 LDA $B7EC ;095c: 85 d6 215 STA $D6 ;095e: 8c ec b7 216 STY $B7EC ;0961: a4 d7 217 LDY $D7 ;0963: ad ed b7 218 LDA $B7ED ;0966: 85 d7 219 STA $D7 ;0968: 8c ed b7 220 STY $B7ED ;096b: ce f1 b7 221 DEC $B7F1 ;096e: 20 dd 02 222 JSR $02DD ; 223 0971: a0 07 224 LDY #$07 ;0973: ad bf b3 225 LDA $B3BF ;0976: 91 ce 226 STA ($CE),Y ;0978: c8 227 INY ;0979: ad c0 b3 228 LDA $B3C0 ;097c: 91 ce 229 STA ($CE),Y ;097e: c8 230 INY ;097f: ad c1 b3 231 LDA $B3C1 ;0982: 91 ce 232 STA ($CE),Y ; 233 0984: a9 4c 234 LDA #$4C ;0986: 8d bf b3 235 STA $B3BF ;0989: a9 fc 236 LDA #$FC ;098b: 8d bd b3 237 STA $B3BD ;098e: 6d bb b3 238 ADC $B3BB ;0991: 8d c0 b3 239 STA $B3C0 ;0994: ad bc b3 240 LDA $B3BC ;0997: 6d be b3 241 ADC $B3BE ;099a: 8d c1 b3 242 STA $B3C1 ; 243 099d: c9 08 244 CMP #$08 ;099f: 90 20 245 BCC OFS_1C1 ; 246 09a1: c9 94 247 CMP #$94 ;09a3: b0 1c 248 BCS OFS_1C1 ; 249 09a5: ee be b3 250 INC $B3BE ;09a8: ee be b3 251 INC $B3BE ;09ab: ee f4 b7 252 INC $B7F4 ;09ae: 20 dd 02 253 JSR $02DD ; 254 09b1: ee f1 b7 255 INC $B7F1 ;09b4: a5 d6 256 LDA $D6 ;09b6: 8d ec b7 257 STA $B7EC ;09b9: a5 d7 258 LDA $D7 ;09bb: 8d ed b7 259 STA $B7ED ;09be: 20 dd 02 260 JSR $02DD ; 261 09c1: a5 e3 262 OFS_1C1 LDA $E3 ;09c3: d0 03 263 BNE OFS_1C8 ;09c5: 4c f7 af 264 JMP $AFF7 ; 265 ; 266 09c8: a0 00 267 OFS_1C8 LDY #$00 ;09ca: ad 07 97 268 LDA $9707 ;09cd: 91 eb 269 STA ($EB),Y ;09cf: c8 270 INY ;09d0: ad 08 97 271 LDA $9708 ;09d3: 91 eb 272 STA ($EB),Y ;09d5: c8 273 INY ;09d6: ad 09 97 274 LDA $9709 ;09d9: 91 eb 275 STA ($EB),Y ; 276 09db: 6c 72 aa 277 JMP ($AA72) ; 278 09de: 08 279 PHP ;09df: 48 280 PHA ;09e0: 98 281 TYA ;09e1: 48 282 PHA ;09e2: 8a 283 TXA ;09e3: 48 284 PHA ;09e4: ad c3 bc 285 LDA $BCC3 ;09e7: 48 286 PHA ;09e8: a9 bd 287 LDA #$BD ;09ea: 8d c3 bc 288 STA $BCC3 ;09ed: 20 e3 03 289 JSR $03E3 ;09f0: 20 d9 03 290 JSR $03D9 ;09f3: 68 291 PLA ;09f4: 8d c3 bc 292 STA $BCC3 ;09f7: 68 293 PLA ;09f8: aa 294 TAX ;09f9: 68 295 PLA ;09fa: a8 296 TAY ;09fb: 68 297 PLA ;09fc: 28 298 PLP ;09fd: 60 299 RTS ;
**** No errors. ****
how do I run this file?
As softwarejanitor said, remove the leading 8 spaces, and change
ADA9 to
$ADA9:
cut -b 9- CODE.ASM | sed 's/ADA9/$ADA9/' > code.txt
Assemble with Merlin32:
Merlin32 '' code.txt
Try to assemble with my own assembler:
asm code.txt | mondump -r > asm-code
All three assemblers produced the same 510 byte binary.
To run the binary using softwarejanitor's
code.o
file, there was a discussion over here about how to do this. There are also other threads here on AppleFritter on ways to do this.I have my own 6502 simulator and ran the code:
6502 1000 code.o | tail
104D- 86 CF STX $CF A=00 X=B4 Y=00 S=00 P=A0 PC=104F 573
104F- A2 11 LDX #$11 A=00 X=11 Y=00 S=00 P=20 PC=1051 575
1051- 8E EC B7 STX $B7EC A=00 X=11 Y=00 S=00 P=20 PC=1054 579
1054- A2 03 LDX #$03 A=00 X=03 Y=00 S=00 P=20 PC=1056 581
1056- 8E ED B7 STX $B7ED A=00 X=03 Y=00 S=00 P=20 PC=1059 585
1059- A2 01 LDX #$01 A=00 X=01 Y=00 S=00 P=20 PC=105B 587
105B- 8E F4 B7 STX $B7F4 A=00 X=01 Y=00 S=00 P=20 PC=105E 591
105E- 20 DD 02 JSR $02DD A=00 X=01 Y=00 S=FE P=20 PC=02DD 597
02DD- 00 BRK A=00 X=01 Y=00 S=FB P=20 PC=0000 604
0000! end
Good to know that all three assemblers generate the same output.