1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-08-13 12:29:01 +00:00
6502bench/SourceGen/SGTestData/Source/2004-numeric-types.S
Andy McFadden f157fbbfd3 Add regression test for data analysis bug
The uncategorized data scanner isn't supposed to create strings or
".fill" directives that straddle labels, long comments, notes,
visualizations, or ORG directives.  The test for crossing an ORG
directive is incomplete, and doesn't correctly handle no-op ORGs
(where the new address is the same as the old address).

The code generator doesn't output ORGs that are hidden inside other
things, so we're not generating bad code, but it looks funny on
screen and may cause problems later on.  The 2004-numeric-types test
has the basic .align/.fill/.bulk directive tests, and now has an
extended set of tests for uncategorized data region splitting.
2019-12-30 14:09:18 -08:00

74 lines
2.7 KiB
ArmAsm

; Copyright 2018 faddenSoft. All Rights Reserved.
; See the LICENSE.txt file for distribution terms (Apache 2.0).
;
; Assembler: Merlin 32
ORG $1000
bit dref+8
jsr cref+8
ds 16,$ea ;bunch of NOPs
rts
dfb $11 ;.dd1
dw $1122 ;.dd2
adr $112233 ;.dd3
adrl $11223344 ;.dd4
dfb $11 ;.dbd1
ddb $1122 ;.dbd2
dfb $11,$22,$33 ;.dbd3
dfb $11,$22,$33,$44 ;.dbd4
ds 2 ;.fill
dfb $80
ds 3 ;.fill
dfb $80
ds 4 ;.fill
dfb $80
ds 5 ;.fill
dfb $80
ds 256 ;.fill
dfb $80
ds 257,$cc ;.fill
hex 11 ;.bulk
dfb $80
hex 11223344556677889900 ;.bulk
dfb $80
hex 00112233445566778899aabbccddeeff ;4 lines .bulk
hex 00112233445566778899aabbccddeeff ;add a comment
hex 00112233445566778899aabbccddeeff
hex ffeeddccbbaa99887766554433221100
dfb $80
; align to 256-byte boundary
ds \,$aa ;.junk, align 256
dfb $81
ds 63,$00 ;.junk, align 64
dfb $81
ds 31,$ab ;.junk, align 32
hex 0000000000000001 ;.junk (should become .dense)
dfb $81
hex 1000000000000000 ;.junk (should become .dense)
dfb $81
hex dddd ;EDIT FILE: give this a bogus alignment
ds \,$00 ;.junk, align 256
; Check to see what splits a .fill block. Each 16-byte chunk has some sort
; of item added at +8. DO NOT format these; the goal is to check the behavior
; of the data analyzer.
ds 16,$82 ;EDIT: add no-op .ORG
ds 16,$83 ;EDIT: add .ORG that adjusts +16
ORG *+16
ds 16,$84 ;EDIT: add user label
dref ds 16,$85 ;has a data reference
ds 16,$86 ;EDIT: add a local variable table (may not split)
ds 16,$87 ;EDIT: add full-line comment
ds 16,$88 ;EDIT: add end-of-line comment (should not split)
ds 16,$89 ;EDIT: add note
ds 16,$8a ;EDIT: add visualization
cref ds 16,$8b ;has a code reference
ds 16,$8c ;EDIT: format byte as binary