1.0.6 new RECT command

Addition of a RECT command to ease disassemblies.
This commit is contained in:
Antoine Vignau 2023-03-05 17:11:01 +01:00
parent aa63f42644
commit ff6645ec16
5 changed files with 126 additions and 114 deletions

Binary file not shown.

View File

@ -430,7 +430,7 @@ L02018F STRL '9:Expand:'
L02019A STRL '9:Configs:' L02019A STRL '9:Configs:'
*L0201A6 STR "The Flaming Bird Disassembler Written by Ferox - (c) 1994 Phoenix corporation" *L0201A6 STR "The Flaming Bird Disassembler Written by Ferox - (c) 1994 Phoenix corporation"
L0201A6 STR "The Flaming Bird Disassembler Written by Ferox - (c) 1994-2021 Phoenix Corp" L0201A6 STR "The Flaming Bird Disassembler Written by Ferox - (c) 1994-2023 Phoenix Corp"
L0201F7 STR 87">ERR: " L0201F7 STR 87">ERR: "
L0201FF DA L020239 ; 0 Not enough memory L0201FF DA L020239 ; 0 Not enough memory
@ -2298,9 +2298,9 @@ L02142C JSR L021339
STA L021496 STA L021496
JSR L021309 JSR L021309
BCS L021479 BCS L021479
CMP #$00AE CMP #$00AE ; .
BEQ L021465 BEQ L021465
L021442 CMP #$00AC L021442 CMP #$00AC ; ,
BNE L021491 BNE L021491
JSR L021564 JSR L021564
BCS L02148E BCS L02148E
@ -2341,10 +2341,10 @@ L02148E PLP
L021491 LDA #$0001 L021491 LDA #$0001
BRA L02148B BRA L02148B
L021496 DB $00
DB $00 L021496 DW $0000
L021498 DB $00 L021498 DW $0000
DB $00
L02149A PHP L02149A PHP
REP #$30 REP #$30
JSR L021309 JSR L021309
@ -2404,12 +2404,10 @@ L02151C PLP
SEC SEC
RTS RTS
L02151F DB $00 L02151F DW $0000
DB $00 L021521 DW $0000
L021521 DB $00 L021523 DW $0000
DB $00
L021523 DB $00
DB $00
L021525 PHP L021525 PHP
REP #$30 REP #$30
JSR L02149A JSR L02149A
@ -2632,40 +2630,42 @@ L021658 DS $0002
L02165A DS $00FE L02165A DS $00FE
L021758 ADRL L0217D6 ; 0 DB L021758 ADRL L0217D6 ; 0 DB
ADRL L0217D5 ; 1 ADRL L0217D5 ; 1 DW
ADRL L0217D4 ; 2 ADRL L0217D4 ; 2 DDB
ADRL L0217D3 ; 3 ADRL L0217D3 ; 3 DA
ADRL L0217D2 ; 4 ADRL L0217D2 ; 4 ADRL
ADRL L0217D1 ; 5 ADRL L0217D1 ; 5 ADR
ADRL L0217D0 ; 6 ADRL L0217D0 ; 6 FLO
ADRL L021858 ; 7 ADRL L021858 ; 7 HEX
ADRL L02186B ; 8 ADRL L02186B ; 8 DS
ADRL L0218B5 ; 9 ADRL L0218B5 ; 9 ASC
ADRL L0219C7 ; 10 ADRL L0219C7 ; 10 DCI
ADRL L0218B0 ; 11 ADRL L0218B0 ; 11 REV
ADRL L0217AD ; 12 ADRL L0217AD ; 12 INV
ADRL L0217AD ; 13 ADRL L0217AD ; 13 FLS
ADRL L021A4A ; 14 ADRL L021A4A ; 14 STRL
ADRL L021A45 ; 15 ADRL L021A45 ; 15 STR
ADRL L0217C6 ; 16 ADRL L0217C6 ; 16 CHK
adrl doRECT ; 17 - AV 202303 RECT
L02179C DB $C0
DB $C0 L02179C DB $C0 ; 0 DB
DB $C0 DB $C0 ; 1
DB $C0 DB $C0 ; 2
DB $C0 DB $C0 ; 3
DB $C0 DB $C0 ; 4
DB $C0 DB $C0 ; 5
DB $C0 DB $C0 ; 6
DB $C0 DB $C0 ; 7
DB $C0 DB $C0 ; 8
DB $C0 DB $C0 ; 9
DB $C0 DB $C0 ; 10
DB $C0 DB $C0 ; 11
DB $C0 DB $C0 ; 12
DB $C0 DB $C0 ; 13
DB $C0 DB $C0 ; 14
DB $C0 DB $C0 ; 15
DB $C0 ; 16
db $c0 ; 17 - AV 202303 RECT
L0217AD CLC L0217AD CLC
RTS RTS
@ -2683,6 +2683,7 @@ L0217AD CLC
PLP PLP
RTS RTS
doRECT iny ; AV 202303 - a RECT is 4 DW
L0217C6 INY L0217C6 INY
INY INY
INY INY
@ -2702,20 +2703,37 @@ L0217D5 INY
L0217D6 LDA L021847,Y L0217D6 LDA L021847,Y
AND #$00FF AND #$00FF
STA L021843 STA L021843 ; number of bytes to disassemble
STY L021841 STY L021841 ; Y is the index
JSR L021339 JSR L021339 ; check syntax
BCS L0217F7 BCS L0217F7
STA L02183F STA L02183F ; address
STY L02183D STY L02183D ; segment
JSR L02141A JSR L02141A ; check count
BCS L0217F7 BCS L0217F7
STY L021845 STY L021845 ; count
BRA L0217F9 BRA L0217F9
L0217F7 CLC L0217F7 CLC
RTS RTS
L0217F9 LDX L021845 * AV 202303 - check if a RECT is required
L0217F9 lda L021843 ; is that a rect
cmp #$0082
bne L0217FA ; not a rect
and #$007f ; yes, erase bit 7
sta L021843 ; we want 2 bytes as a word
lda #1 ; command is DW - disassemble 2 bytes (ie. a word)
sta L021841
lda L021845 ; but 4 times each count
asl ; as a RECT is 4 words
asl
sta L021845
L0217FA LDX L021845
DEX DEX
BEQ L021819 BEQ L021819
LDA L021841 LDA L021841
@ -2730,33 +2748,29 @@ L02180C ADC L021843
STA L021843 STA L021843
INX INX
STX L021845 STX L021845
L021819 LDA L02183D L021819 LDA L02183D ; segment
PHA PHA
LDA L02183F LDA L02183F ; address
PHA PHA
LDA L021843 LDA L021843 ; number of bytes
PHA PHA
LDA L021841 LDA L021841 ; command
PHA PHA
JSL L043069 JSL L043069
LDA L02183F LDA L02183F ; address
ADC L021843 ADC L021843 ; + length
STA L02183F STA L02183F ; = address
DEC L021845 DEC L021845 ; count--
BNE L021819 BNE L021819 ; loop
CLC CLC
RTS RTS
L02183D DB $00 L02183D DW $0000
DB $00 L02183F DW $0000
L02183F DB $00 L021841 DW $0000
DB $00 L021843 DW $0000
L021841 DB $00 L021845 DW $0000
DB $00
L021843 DB $00
DB $00
L021845 DB $00
DB $00
L021847 DB $01 L021847 DB $01
DB $02 DB $02
DB $02 DB $02
@ -2774,6 +2788,8 @@ L021847 DB $01
DB $00 DB $00
DB $00 DB $00
DB $01 DB $01
db $82 ; AV 202303 - bit 7 to ID a rect
L021858 JSR L02141C L021858 JSR L02141C
BCS L021869 BCS L021869
PEI $42 PEI $42
@ -2819,11 +2835,10 @@ L021895 REP #$20
L0218A9 CLV L0218A9 CLV
RTS RTS
L0218AB DB $00 L0218AB DW $0000
DB $00 L0218AD DW $0000
L0218AD DB $00
DB $00
L0218AF DB $00 L0218AF DB $00
L0218B0 LDA #$000B L0218B0 LDA #$000B
BRA L0218B8 BRA L0218B8
L0218B5 LDA #$0009 L0218B5 LDA #$0009
@ -2917,23 +2932,23 @@ L021969 STX L0219C2
STA L0219C0 STA L0219C0
BRA L02192A BRA L02192A
MX %10 MX %10
L021978 PHY L021978 PHY
L021979 LDA [$3A],Y L021979 LDA [$3A],Y
PHA PHA
AND #$80 AND #$80
STA L0219C6 STA L0219C6
PLA PLA
AND #$7F AND #$7F
CMP #$20 CMP #$20
BCS L02198B BCS L02198B
INY INY
BNE L021979 BNE L021979
L02198B PLY L02198B PLY
RTS RTS
MX %00 MX %00
L02198D REP #$20 L02198D REP #$20
PEI $42 PEI $42
@ -2959,14 +2974,10 @@ L02198D REP #$20
SEP #$20 SEP #$20
RTS RTS
L0219BE DB $00 L0219BE DW $0000
DB $00 L0219C0 DW $0000
L0219C0 DB $00 L0219C2 DW $0000
DB $00 L0219C4 DW $0000
L0219C2 DB $00
DB $00
L0219C4 DB $00
DB $00
L0219C6 DB $00 L0219C6 DB $00
L0219C7 PHP L0219C7 PHP
@ -3024,11 +3035,11 @@ L021A35 PLP
L021A38 LDA #$0007 L021A38 LDA #$0007
L021A3B JSR L020AB8 L021A3B JSR L020AB8
BRA L021A35 BRA L021A35
L021A40 DB $00 L021A40 DB $00
L021A41 DB $00 L021A41 DW $0000
DB $00 L021A43 DW $0000
L021A43 DB $00
DB $00
L021A45 LDA #$000F L021A45 LDA #$000F
BRA L021A4D BRA L021A4D
L021A4A LDA #$000E L021A4A LDA #$000E
@ -3089,12 +3100,9 @@ L021ABF SEC
CLV CLV
RTS RTS
L021AC2 DB $00 L021AC2 DW $0000
DB $00 L021AC4 DW $0000
L021AC4 DB $00 L021AC6 DW $0000
DB $00
L021AC6 DB $00
DB $00
L021AC8 ADRL L028C04 ; 0 LOAD L021AC8 ADRL L028C04 ; 0 LOAD
ADRL L021BC7 ; 1 TCLR ADRL L021BC7 ; 1 TCLR
@ -3150,8 +3158,8 @@ L021AC8 ADRL L028C04 ; 0 LOAD
* AV 202010 - Two new commands * AV 202010 - Two new commands
adrl doCHON ; 51 ONEON adrl doCHON ; 51 CHON
adrl doCHOFF ; 52 ONEOFF adrl doCHOFF ; 52 CHOFF
*--- *---
@ -3209,8 +3217,8 @@ L021B94 DB $00 ; 0 LOAD
* AV 202010 - Two new commands * AV 202010 - Two new commands
db $00 ; 51 ONEON db $00 ; 51 CHON
db $00 ; 52 ONEOFF db $00 ; 52 CHOFF
*--- end of AV 202010 *--- end of AV 202010
@ -8163,7 +8171,7 @@ L0245BB ASC 8D
L02483E DW L024B44-L024840 L02483E DW L024B44-L024840
L024840 ASC 8D L024840 ASC 8D
ASC "Constants (followed by address [,num]):"8D8D ASC "Constants (followed by address [,num]):"8D8D
ASC " DB/DW ........................ Byte/Word"8D ASC " DB/DW/RECT ................... Byte/Word/Rect"8D
ASC " DDB .......................... Double byte"8D ASC " DDB .......................... Double byte"8D
ASC " DA/ADR/ADRL .................. 2/3/4 bytes address"8D ASC " DA/ADR/ADRL .................. 2/3/4 bytes address"8D
ASC " DCI .......................... Hi-bit ended string"8D ASC " DCI .......................... Hi-bit ended string"8D
@ -11177,13 +11185,14 @@ L0272CA LDA L027318,X
RTS RTS
L02730B STR "TFB-Disasm v" L02730B STR "TFB-Disasm v"
L027318 STR "1.0.5" ; was "1.0.4" was "1.0.2" L027318 STR "1.0.6" ; was "1.0.5" "1.0.4" was "1.0.2"
DB $00 DB $00
DB $00 DB $00
DB $00 DB $00
DB $00 DB $00
*L027322 STR " 19-SEP-2020"8D ; was "10-MAY-94" *L027322 STR " 19-SEP-2020"8D ; was "10-MAY-94"
L027322 STR " 21-MAR-2021"8D ; was "10-MAY-94" *L027322 STR " 21-MAR-2021"8D ; was "10-MAY-94"
L027322 STR " 5-MAR-2023"8D ; was "21-MAR-2021"
L027330 JSR L021586 L027330 JSR L021586
LDA L0215CD LDA L0215CD

View File

@ -101,7 +101,10 @@ L040326 ENT
ASC "ST" ; 15 ASC "ST" ; 15
ASC 'R' ASC 'R'
ASC "CH" ; 16 ASC "CH" ; 16
ASC 'K'00 ASC 'K'
ASC "REC" ; 17 - AV 202303 - RECT
ASC 'T'
ASC 00
L040358 ENT L040358 ENT
ASC "LA" ; 0 ASC "LA" ; 0

View File

@ -2,7 +2,7 @@
* Expansion linker file * Expansion linker file
DSK TFBD DSK TFBD
TYP S16 TYP $B3
* Assemble files * Assemble files

BIN
tfbd/tfbd_v106.2mg Normal file

Binary file not shown.