1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-12-02 13:51:36 +00:00
6502bench/SourceGen/SGTestData/Expected/20182-extension-scripts_acme.S
Andy McFadden 5f472b60cf ORG rework, part 3
Split ".org" into ".arstart" and ".arend" (address range start/end).
Address range ends are now shown in the code list view, and the
pseudo-op can be edited in app settings.  Address range starts are
now shown after notes and long comments, rather than before, which
brings the on-screen display in sync with generated code.

Reworked the address range editor UI to include the new features.
The implementation is fully broken.

More changes to the AddressMap API, putting the resolved region length
into a separate ActualLength field.  Added FindRegion().  Renamed
some things.

Code generation changed slightly: the blank line before a region-end
line now comes after it, and ACME's "} ;!pseudopc" is now just "}".
This required minor updates to some of the regression test results.
2021-09-22 15:28:11 -07:00

127 lines
2.4 KiB
ArmAsm

!cpu 65816
PrintInlineL1String = $011000
PrintInlineL2String = $012000
PrintInlineDciString = $013000
* = $1000
!as
!rs
clc
xce
sep #$30
jsr PrintInline8String
!text "01234567"
jsr PrintInlineRev8String
!text "76543210"
jsr PrintInlineNullString
!text "null-term string",$00
jsl PrintInlineL1String
!text $14,"string with length/1"
jsl PrintInlineL2String
!text $14,$00,"string with length/2"
jsl PrintInlineDciString
!text "DCI strin",$e7
jsr L1800
jsr L184F
jsr L1848
!byte $00,$01
!word data01
!byte $00,$02
!word data02
nop
jsr L1085
!byte $24
L1085 !byte $a9
!byte $00
sta $ff
!byte $ea
jmp Next1
PrintInline8String rts
PrintInlineRev8String rts
PrintInlineNullString rts
data01 !word 4386
!byte $33,$44
!32 $88776655
!byte $99,$88,$77,$66
!byte 'f'
!byte 'F' | $80
!byte $40
!byte $c1
!byte $42
!byte $c3
!byte $44
!byte $c5
!byte $46
!byte $c7
!24 PrintInlineL2String
!word data02
!byte $80
data02 !word @data03
!byte $80
!xor $80 {
@data03 !text "AllEight"
}
NoCont pla ;split across address change
pla
rts
L10BA jsr NoCont
!byte $00
!byte $80
L10BF jsr NoCont
!byte $00
!byte $80
Next1 jsr L10BA
jsr @L10CF
clc
jsr L10BF
rts
@L10CF sec
jsr L10BF
clc
!byte $00,$02
!word data02
bcc @L10DE
bcs @L10DE
!byte $00
!byte $80
@L10DE rts
!fill 289,$00
!pseudopc $1800 {
L1800 jsr PrintInlineNullString
per $8778
rtl
!byte $65
!byte $6e
!byte $20
!byte $01
}
!pseudopc $1840 {
!text "string"
!byte $00
!byte $60
L1848 jsl PrintInlineL2String
asl
!byte $00,$60
L184F jsr PrintInlineNullString
adc $6e
!byte $64
}