Assembler

5 posts / 0 new
Last post
Offline
Last seen: 1 day 9 hours ago
Joined: Jan 11 2025 - 14:57
Posts: 29
Assembler
AttachmentSize
Binary Data CODE.ASM8.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?

Offline
Last seen: 2 hours 43 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2716
I assembled it with the 65C02

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. ****

Package iconcode.zip

Offline
Last seen: 1 day 9 hours ago
Joined: Jan 11 2025 - 14:57
Posts: 29
file

how do I run this file?

mmphosis's picture
Offline
Last seen: 2 weeks 4 days ago
Joined: Aug 18 2005 - 16:26
Posts: 452
Running the binary

 

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

 

Offline
Last seen: 2 hours 43 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2716
Good to know that all three

Good to know that all three assemblers generate the same output.

 

Log in or register to post comments