1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-12-05 19:50:33 +00:00
6502bench/SourceGen/SGTestData/Source/2006-operand-formats.S
Andy McFadden 8fd469b81f Correctly handle delimiters in character operands
We weren't checking to see if character operands matched their
delimiters, so bad code like "LDA #'''" was being generated.

There wasn't a test for this in 2006-operand-formats, so the test
has been updated with single and double quotes in low and high ASCII.
2019-08-14 17:31:15 -07:00

87 lines
1.8 KiB
ArmAsm

; Copyright 2018 faddenSoft. All Rights Reserved.
; See the LICENSE.txt file for distribution terms (Apache 2.0).
;
; Assembler: Merlin 32
org $1000
; 65816 with short regs
clc
xce
sep #$30
mx %11
; Basic operand formats. Show first set as hex, second as decimal,
; third as binary.
lda $01
lda $0102
ldal $010203
lda $01
lda $0102
ldal $010203
lda $01
lda $0102
ldal $010203
bra :skipdata
; Now hex/decimal/binary, 1-2-3-4 bytes, in data area.
hex 01010201020301020304
hex 01010201020301020304
hex 01010201020301020304
:skipdata
; Convert these to ASCII; requires editing file. The code generator
; should display some of these as hex.
lda #$68
lda $68
lda: $0068
ldal $000068
lda #$1f
lda #$20
lda #$22
lda #$27
lda #$7e
lda #$7f
lda #$80
lda #$9f
lda #$a0
lda #$a2
lda #$a7
lda #$fe
lda #$ff
; Switch to long regs, continue with ASCII.
rep #$30
mx %00
lda #$0068
lda #$00c8
lda #$6868
rts
; Continuing with ASCII
:ascii
dfb $68
dfb $80
dw $6868
dfb $80
; Format first set as address, second set as symbol.
dw :skipdata
adr :skipdata
dfb >:skipdata,:skipdata ;format as big-endian address
dfb :ascii
dfb >:ascii
dw :ascii
adr :ascii
dfb >:ascii,:ascii ;format as big-endian symbol