; Copyright 2018 faddenSoft. All Rights Reserved. ; See the LICENSE.txt file for distribution terms (Apache 2.0). ; ; Assembler: Merlin 32 xc off xc xc absl equ $1029 absh equ $feed zip equ $cd biggie equ $123456 thirty2 equ $12345678 org $012345 start ;set this label clc xce ; load 8/16/24-bit symbols in different ways sep #$30 mx %11 lda #zip lda #zip+16 lda #zip+64 lda #absh lda #absh+64 lda #absl lda #absl-64 lda #start lda #^start pea absh ;leave as default pea start pea ^start pea biggie pea ^biggie pea absh ;convert to symbol pea start pea ^start pea biggie pea ^biggie lda zip+1 lda: zip+1 ldal zip+1 lda absh-1 ldal absh-1 lda absh+1 ldal absh+1 lda start+1 ldal start+1 lda start-1 ldal start-1 lda biggie+1 ldal biggie+1 lda biggie-1 ldal biggie-1 rep #$30 mx %00 lda #zip lda #zip+16 lda #zip+64 lda #absl lda #absl-$1000 lda #^absl-$1000 lda #absh lda #absh+$1000 lda #^absh+$1000 lda #start lda #^start lda #biggie lda #^biggie bra :skipdata ; reference 16/24-bit symbol in data statements dfb zip dfb absh dfb start dfb ^start dw zip dw absl dw absl-$1000 dw absh dw absh+$1000 dw start dw ^start dw start+1 dw ^start+1 dfb >absh ;format as 16-bit big-endian dfb absh adr start adr ^start adrl zip adrl absh adrl start-1 adrl ^start-1 :skipdata lda #$11 ;format as biggie mvn biggie,start ;format w/symbols mvp start,biggie mvn biggie,start ;format as decimal mvp start,biggie ;format as binary per :skipdata brl :forward :forward jml nextchunk org $1000 nextchunk nop ;leave this as auto-label nop ;label this L1000 nop ;label this L1000_0 sep #$30 mx %11 plataddr equ $3000 ;address only in platform file projover equ $3100 ;replaced by proj symbol w/same name, diff addr (no match) projalso equ $3200 ;also in project, twice w/different name +/- alpha; low should win nosym equ $3300 ;should not match anything lda plataddr lda projover lda projalso lda nosym bra next target0 nop target1 nop ;point everything here target2 nop t0 per target0 per target1 per target2 jsr target0 jsr target1 jsr target2 t1a bra target0 t1b bra target1 t1c bra target2 t2a brl target0 t2b brl target1 t2c brl target2 t3a jmp target0 t3b jmp target1 t3c jmp target2 t4a jml target0 t4b jml target1 t4c jml target2 next jsr t0 jsr t1a jsr t1b jsr t1c jsr t2a jsr t2b jsr t2c jsr t3a jsr t3b jsr t3c jsr t4a jsr t4b jsr t4c brl :skiphex hex 808182838485868788898a8b8c8d8e8f ;add label and comment hex 808182838485868788898a8b8c8d8e8f hex 808182838485868788898a8b8c8d8e8f hex 808182838485868788898a8b8c8d8e8f hex 808182838485868788898a8b8c8d8e8f hex 808182838485868788898a8b8c8d8e8f hex 808182838485868788898a8b8c8d8e8f asc 'This is a long string. Put a label and comment ' asc 'on it to confirm that the label and comment only ' asc 'appear on the first line. The quick brown fox ' asc 'jumps over the lazy dogs.' :skiphex ; extract bytes from 32-bit value with short regs lda #thirty2+768 lda #^thirty2 rep #$30 mx %00 lda #thirty2+1024 lda #^thirty2 rts