mirror of
https://github.com/fadden/6502bench.git
synced 2024-08-19 20:29:36 +00:00
If a DCI string ended with a string delimiter or non-ASCII character (e.g. a PETSCII char with no ASCII equivalent), the code generator output the last byte as a hex value. This caused an error because it was outputting the raw hex value, with the high bit already set, which the assembler did not expect. This change corrects the behavior for code generation and on-screen display, and adds a few samples to the regression test suite. (see issue #102)
271 lines
6.6 KiB
ArmAsm
271 lines
6.6 KiB
ArmAsm
;Projected edited to format non-char operands as chars.
|
|
org $1000
|
|
lda #'A'
|
|
lda #"A"
|
|
lda #$c1
|
|
lda #$41
|
|
ldx #'a'
|
|
ldx #"a"
|
|
ldx #$41
|
|
ldx #$01
|
|
lda #$7f ;inappropriate format should be ignored
|
|
lda #$7f
|
|
lda #$7f
|
|
lda #$7f
|
|
lda #$0d
|
|
jmp L144B
|
|
|
|
dfb 'C'
|
|
dfb "C"
|
|
dfb $c3
|
|
dfb $43
|
|
dw 'd'
|
|
dw "d"
|
|
dw $44
|
|
dw $04
|
|
ddb 'E'
|
|
ddb "E"
|
|
ddb $c5
|
|
ddb $45
|
|
dfb $80
|
|
asc 'low ASCII str'
|
|
asc "high ASCII str"
|
|
dfb $80
|
|
hex d0c5d4d3c3c9c920535452
|
|
dfb $80
|
|
hex 53031205050e20430f040520131412
|
|
dfb $82
|
|
asc 07,'Low ASCII CRLF',0d0a
|
|
dfb $82
|
|
asc 87,"High ASCII CRLF",8d8a
|
|
dfb $82
|
|
hex 93d0c5d4d3c3c9c920574954482096434f4e54524f4c0520434f4445530d
|
|
dfb $83
|
|
asc ' !"#$%&',27,'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX'
|
|
asc 'YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
|
|
dfb $83
|
|
asc " !",a2,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX"
|
|
asc "YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
|
|
dfb $83
|
|
hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
|
|
hex 40c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9da5b
|
|
dfb $5c
|
|
dfb $5d
|
|
dfb $5e
|
|
dfb $5f
|
|
dfb $60
|
|
hex 4142434445464748494a4b4c4d4e4f505152535455565758595a
|
|
dfb $7b
|
|
dfb $7c
|
|
dfb $7d
|
|
dfb $7e
|
|
dfb $83
|
|
hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
|
|
hex 004142434445464748494a4b4c4d4e4f505152535455565758595a1b
|
|
dfb $1c
|
|
dfb $1d
|
|
dfb $1e
|
|
dfb $1f
|
|
dfb $40
|
|
hex 0102030405060708090a0b0c0d0e0f101112131415161718191a
|
|
dfb $7b
|
|
dfb $7c
|
|
dfb $7d
|
|
dfb $7e
|
|
dfb $84
|
|
hex c9c9c3d3d4c5d02045535245564552
|
|
dfb $84
|
|
hex 4e554c4c205445524d20d0c5d4d3c3c9c900
|
|
dfb $84
|
|
hex d4484953204e554c4c2d5445524d494e4154454420535452494e472049532054
|
|
hex 4f4f204c4f4e4720544f20464954204f4e20412053494e474c45204c494e452c
|
|
hex 20414e442057494c4c2042452053504c49542e00
|
|
dfb $84
|
|
hex 13d0c5d4d3c3c9c92057495448204c454e475448
|
|
dfb $84
|
|
hex 1400d0c5d4d3c3c9c92057495448204c454e47544832
|
|
dfb $84
|
|
hex 504554204443c9
|
|
dfb $84
|
|
hex 05040f43200e05051203532005131205160512
|
|
dfb $84
|
|
hex 0e150c0c2d1405120d2013031205050e20030f04053f00
|
|
dfb $84
|
|
hex 1753031205050e20430f04052017091408200c050e071408
|
|
dfb $84
|
|
hex 180053031205050e20430f04052017091408200c050e07140832
|
|
dfb $84
|
|
hex 53031205050e20430f0405204443c9
|
|
dfb $84
|
|
dfb $85
|
|
dfb $00
|
|
dfb $01
|
|
dfb $02
|
|
dfb $03
|
|
dfb $04
|
|
dfb $05
|
|
dfb $06
|
|
dfb $07
|
|
dfb $08
|
|
dfb $09
|
|
dfb $0a
|
|
dfb $0b
|
|
dfb $0c
|
|
dfb $0d
|
|
dfb $0e
|
|
dfb $0f
|
|
dfb $10
|
|
dfb $11
|
|
dfb $12
|
|
dfb $13
|
|
dfb $14
|
|
dfb $15
|
|
dfb $16
|
|
dfb $17
|
|
dfb $18
|
|
dfb $19
|
|
dfb $1a
|
|
dfb $1b
|
|
dfb $1c
|
|
dfb $1d
|
|
dfb $1e
|
|
dfb $1f
|
|
asc ' !"#$%&',27,'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX'
|
|
asc 'YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
|
|
dfb $7f
|
|
dfb $80
|
|
dfb $81
|
|
dfb $82
|
|
dfb $83
|
|
dfb $84
|
|
dfb $85
|
|
dfb $86
|
|
dfb $87
|
|
dfb $88
|
|
dfb $89
|
|
dfb $8a
|
|
dfb $8b
|
|
dfb $8c
|
|
dfb $8d
|
|
dfb $8e
|
|
dfb $8f
|
|
dfb $90
|
|
dfb $91
|
|
dfb $92
|
|
dfb $93
|
|
dfb $94
|
|
dfb $95
|
|
dfb $96
|
|
dfb $97
|
|
dfb $98
|
|
dfb $99
|
|
dfb $9a
|
|
dfb $9b
|
|
dfb $9c
|
|
dfb $9d
|
|
dfb $9e
|
|
dfb $9f
|
|
asc " !",a2,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX"
|
|
asc "YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
|
|
dfb $ff
|
|
|
|
L144B nop
|
|
jmp :L14DA
|
|
|
|
asc 'ASCII escapes \: \\ \r \n \" \',27,' \t'
|
|
dfb $80
|
|
hex d0c5d4d3c3c9c9204553434150455320
|
|
dfb $5c
|
|
hex 3a20
|
|
dfb $5c
|
|
dfb $5c
|
|
dfb $20
|
|
dfb $5c
|
|
hex 5220
|
|
dfb $5c
|
|
hex 4e20
|
|
dfb $5c
|
|
hex 2220
|
|
dfb $5c
|
|
hex 2720
|
|
dfb $5c
|
|
dfb $54
|
|
dfb $80
|
|
hex 534352200513030110051320
|
|
dfb $1c
|
|
hex 3a20
|
|
dfb $1c
|
|
dfb $1c
|
|
dfb $20
|
|
dfb $1c
|
|
hex 1220
|
|
dfb $1c
|
|
hex 0e20
|
|
dfb $1c
|
|
dfb $22
|
|
dfb $20
|
|
dfb $1c
|
|
dfb $27
|
|
dfb $20
|
|
dfb $1c
|
|
dfb $14
|
|
dfb $80
|
|
asc "HIGH escapes \: \\ \r \n \0 \' \t"
|
|
dfb $80
|
|
|
|
:L14DA nop
|
|
jmp :L1587
|
|
|
|
dfb $86
|
|
dci 'Hello'
|
|
dci 'HI'
|
|
dci 'X'
|
|
dci '!'
|
|
dfb $86
|
|
dci "Hello"
|
|
dci "HI"
|
|
dfb 'X'
|
|
dfb '!'
|
|
dfb $86
|
|
hex 48454c4ccf
|
|
hex 48c9
|
|
hex d8
|
|
hex a1
|
|
dfb $86
|
|
hex c8c5cccc4f
|
|
hex c849
|
|
dfb $58
|
|
dfb $21
|
|
dfb $86
|
|
hex 48050c0c8f
|
|
hex 48c9
|
|
hex d8
|
|
hex a1
|
|
dfb $86
|
|
dci 'ascii',7f
|
|
dfb $86
|
|
dci '"A quote1"'
|
|
dci 27,'A quote2',27
|
|
dfb $86
|
|
dci a2,"HA quote1",a2
|
|
dci "'HA quote2'"
|
|
dfb $86
|
|
hex 50455453434949de
|
|
dfb $86
|
|
hex 22412051554f544531a2
|
|
hex 27412051554f544532a7
|
|
dfb $86
|
|
hex dc
|
|
dfb $86
|
|
hex 53031205050e430f04059e
|
|
dfb $86
|
|
hex 22412011150f140531a2
|
|
hex 27412011150f140532a7
|
|
dfb $86
|
|
hex 9c
|
|
dfb $86
|
|
|
|
:L1587 nop
|
|
rts
|
|
|