2019-10-06 02:51:34 +00:00
|
|
|
PrintInlineL1String equ $011000
|
|
|
|
PrintInlineL2String equ $012000
|
|
|
|
PrintInlineDciString equ $013000
|
|
|
|
|
|
|
|
org $1000
|
|
|
|
clc
|
|
|
|
xce
|
|
|
|
sep #$30
|
|
|
|
jsr PrintInline8String
|
|
|
|
asc '01234567'
|
|
|
|
jsr PrintInlineRev8String
|
|
|
|
rev '01234567'
|
|
|
|
jsr PrintInlineNullString
|
|
|
|
asc 'null-term string',00
|
|
|
|
jsl PrintInlineL1String
|
|
|
|
str 'string with length/1'
|
|
|
|
jsl PrintInlineL2String
|
|
|
|
strl 'string with length/2'
|
|
|
|
jsl PrintInlineDciString
|
|
|
|
dci 'DCI string'
|
2020-05-09 00:41:26 +00:00
|
|
|
jsr L1800
|
|
|
|
jsr L184F
|
|
|
|
jsr L1848
|
Optionally treat BRKs as two-byte instructions
Early data sheets listed BRK as one byte, but RTI after a BRK skips
the following byte, effectively making BRK a 2-byte instruction.
Sometimes, such as when diassembling Apple /// SOS code, it's handy
to treat it that way explicitly.
This change makes two-byte BRKs optional, controlled by a checkbox
in the project settings. In the system definitions it defaults to
true for Apple ///, false for all others.
ACME doesn't allow BRK to have an arg, and cc65 only allows it for
65816 code (?), so it's emitted as a hex blob for those assemblers.
Anyone wishing to target those assemblers should stick to 1-byte mode.
Extension scripts have to switch between formatting one byte of
inline data and formatting an instruction with a one-byte operand.
A helper function has been added to the plugin Util class.
To get some regression test coverage, 2022-extension-scripts has
been configured to use two-byte BRK.
Also, added/corrected some SOS constants.
See also issue #44.
2019-10-09 21:55:56 +00:00
|
|
|
brk $01
|
2019-10-07 21:21:26 +00:00
|
|
|
dw data01
|
Optionally treat BRKs as two-byte instructions
Early data sheets listed BRK as one byte, but RTI after a BRK skips
the following byte, effectively making BRK a 2-byte instruction.
Sometimes, such as when diassembling Apple /// SOS code, it's handy
to treat it that way explicitly.
This change makes two-byte BRKs optional, controlled by a checkbox
in the project settings. In the system definitions it defaults to
true for Apple ///, false for all others.
ACME doesn't allow BRK to have an arg, and cc65 only allows it for
65816 code (?), so it's emitted as a hex blob for those assemblers.
Anyone wishing to target those assemblers should stick to 1-byte mode.
Extension scripts have to switch between formatting one byte of
inline data and formatting an instruction with a one-byte operand.
A helper function has been added to the plugin Util class.
To get some regression test coverage, 2022-extension-scripts has
been configured to use two-byte BRK.
Also, added/corrected some SOS constants.
See also issue #44.
2019-10-09 21:55:56 +00:00
|
|
|
brk $02
|
2019-10-07 21:21:26 +00:00
|
|
|
dw data02
|
2019-10-19 23:23:42 +00:00
|
|
|
nop
|
|
|
|
jsr L1085
|
|
|
|
dfb $24
|
|
|
|
L1085 dfb $a9
|
|
|
|
dfb $00
|
|
|
|
sta $ff
|
|
|
|
dfb $ea
|
2020-05-09 00:41:26 +00:00
|
|
|
jmp Next1
|
2019-10-06 02:51:34 +00:00
|
|
|
|
|
|
|
PrintInline8String rts
|
|
|
|
|
|
|
|
PrintInlineRev8String rts
|
|
|
|
|
|
|
|
PrintInlineNullString rts
|
|
|
|
|
2019-10-07 21:21:26 +00:00
|
|
|
data01 dw 4386
|
|
|
|
ddb $3344
|
|
|
|
adrl $88776655
|
|
|
|
dfb $99,$88,$77,$66
|
|
|
|
dfb 'f'
|
|
|
|
dfb "F"
|
|
|
|
dfb $40
|
|
|
|
dfb $c1
|
|
|
|
dfb $42
|
|
|
|
dfb $c3
|
|
|
|
dfb $44
|
|
|
|
dfb $c5
|
|
|
|
dfb $46
|
|
|
|
dfb $c7
|
|
|
|
adr PrintInlineL2String
|
|
|
|
dw data02
|
|
|
|
dfb $80
|
2019-11-17 01:15:03 +00:00
|
|
|
data02 dw :data03
|
2019-10-07 21:21:26 +00:00
|
|
|
dfb $80
|
2019-11-17 01:15:03 +00:00
|
|
|
:data03 asc "AllEight"
|
2019-10-07 21:21:26 +00:00
|
|
|
|
2020-05-09 00:41:26 +00:00
|
|
|
NoCont pla ;split across address change
|
|
|
|
pla
|
|
|
|
rts
|
|
|
|
|
|
|
|
L10BA jsr NoCont
|
|
|
|
|
|
|
|
dfb $00
|
|
|
|
dfb $80
|
|
|
|
|
|
|
|
L10BF jsr NoCont
|
|
|
|
|
|
|
|
dfb $00
|
|
|
|
dfb $80
|
|
|
|
|
|
|
|
Next1 jsr L10BA
|
|
|
|
jsr :L10CF
|
|
|
|
clc
|
|
|
|
jsr L10BF
|
|
|
|
rts
|
|
|
|
|
|
|
|
:L10CF sec
|
|
|
|
jsr L10BF
|
2020-08-22 15:56:38 +00:00
|
|
|
clc
|
|
|
|
brk $02
|
|
|
|
dw data02
|
|
|
|
bcc :L10DE
|
|
|
|
bcs :L10DE
|
|
|
|
|
|
|
|
dfb $00
|
|
|
|
dfb $80
|
|
|
|
|
|
|
|
:L10DE rts
|
2020-05-09 00:41:26 +00:00
|
|
|
|
2020-08-22 15:56:38 +00:00
|
|
|
ds 289
|
2020-05-09 00:41:26 +00:00
|
|
|
|
|
|
|
org $1800
|
|
|
|
L1800 jsr PrintInlineNullString
|
|
|
|
per $8778
|
2019-10-06 02:51:34 +00:00
|
|
|
rtl
|
|
|
|
|
|
|
|
dfb $65
|
|
|
|
dfb $6e
|
|
|
|
dfb $20
|
|
|
|
dfb $01
|
2020-05-09 00:41:26 +00:00
|
|
|
org $1840
|
2019-10-06 02:51:34 +00:00
|
|
|
asc 'string'
|
|
|
|
dfb $00
|
|
|
|
dfb $60
|
|
|
|
|
2020-05-09 00:41:26 +00:00
|
|
|
L1848 jsl PrintInlineL2String
|
2019-10-06 02:51:34 +00:00
|
|
|
asl A
|
Optionally treat BRKs as two-byte instructions
Early data sheets listed BRK as one byte, but RTI after a BRK skips
the following byte, effectively making BRK a 2-byte instruction.
Sometimes, such as when diassembling Apple /// SOS code, it's handy
to treat it that way explicitly.
This change makes two-byte BRKs optional, controlled by a checkbox
in the project settings. In the system definitions it defaults to
true for Apple ///, false for all others.
ACME doesn't allow BRK to have an arg, and cc65 only allows it for
65816 code (?), so it's emitted as a hex blob for those assemblers.
Anyone wishing to target those assemblers should stick to 1-byte mode.
Extension scripts have to switch between formatting one byte of
inline data and formatting an instruction with a one-byte operand.
A helper function has been added to the plugin Util class.
To get some regression test coverage, 2022-extension-scripts has
been configured to use two-byte BRK.
Also, added/corrected some SOS constants.
See also issue #44.
2019-10-09 21:55:56 +00:00
|
|
|
brk $60
|
2019-10-06 02:51:34 +00:00
|
|
|
|
2020-05-09 00:41:26 +00:00
|
|
|
L184F jsr PrintInlineNullString
|
2019-10-06 02:51:34 +00:00
|
|
|
adc $6e
|
|
|
|
dfb $64
|