[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 6502 disassembler (was: Prodos external command oddness)



"Paul R. Santa-Maria" <paulrsm@buckeye-express.com> wrote in
message 4019FD07.193CDFDD@buckeye-express.com">news:4019FD07.193CDFDD@buckeye-express.com...
: Bill Garber wrote:
: > : >And thanks for the Dis-assembler BTW. It
: > : >has proven to be invaluable to me. Would
: > : >be nice if it recognized more of the ROM
: > : >firmware calls and of course data from
: > : >instruction, but other than that, it's
: > : >been good for me.
: >
: > I should have clarified that this is running on a PC.
:
: Try a batch file using SED to do a
: search-and-replace on the entire file.
: For example, you could have A2IO.BAT:
:
: SED %1 "HC000" "KBD"
: SED %1 "HC010" "KBDSTRB"
: SED %1 "HC020" "TAPEOUT"
: SED %1 "HC030" "SPKR"
: ... etc.

[ mid-posting to save scrolling ]

That's interesting, and also a very good
way to do it. Also gives you the option
of not commenting it if you don't need to.

BTW, how do you distinguish between data
and a single byte instruction. I imagine by
whether the next byte is instruction or not.
Am I basically correct?

Bill @ GarberStreet Enterprizez };-)
Web Site - http://garberstreet.netfirms.com
Email - willy4SPAM6pa@comXcast.net
Remove - SPAM and X to contact me

: When I wrote my disassembler I was trying for
: a way to distribute a disassembly script that
: would produce a file with comments and labels
: ready for re-assembly.  It turned out that the
: way I actually used the disassembler was to
: get the script so it would properly disassemble
: the file (code vs data, etc.) then just keep
: editing the listing file to add comments,
: labels, etc.  I actually removed the commands
: to embed remarks and labels into the disassembly.
:
: My disassembler will trace code.  If you give
: it the old Apple II monitor and this script:
:
:      ; APPLE II OLD MONITOR
:      O $F800
:      ; NMI RESET IRQ
:      V $FFFA
:      V $FFFC
:      V $FFFE
:
: then you will get a 60KB file.  Here are the
: first and last 50 lines of the disassembly:
:
:                         ORG     $F800
:
:                 Z00     EQU     $00
:                 Z01     EQU     $01
:                 Z20     EQU     $20
:                 Z21     EQU     $21
:                 Z22     EQU     $22
:                 Z23     EQU     $23
:                 Z24     EQU     $24
:                 Z25     EQU     $25
:                 Z26     EQU     $26
:                 Z27     EQU     $27
:                 Z28     EQU     $28
:                 Z29     EQU     $29
:                 Z2A     EQU     $2A
:                 Z2B     EQU     $2B
:                 Z2D     EQU     $2D
:                 Z2E     EQU     $2E
:                 Z2F     EQU     $2F
:                 Z30     EQU     $30
:                 Z31     EQU     $31
:                 Z32     EQU     $32
:                 Z33     EQU     $33
:                 Z34     EQU     $34
:                 Z3A     EQU     $3A
:                 Z3B     EQU     $3B
:                 Z3C     EQU     $3C
:                 Z3D     EQU     $3D
:                 Z3E     EQU     $3E
:                 Z3F     EQU     $3F
:                 Z40     EQU     $40
:                 Z41     EQU     $41
:                 Z45     EQU     $45
:                 Z46     EQU     $46
:                 Z47     EQU     $47
:                 Z48     EQU     $48
:                 Z49     EQU     $49
:                 Z4A     EQU     $4A
:
: F800  4A        HF800   LSR     A
: F801  08                PHP
: F802  20 47 F8          JSR     HF847
: F805  28                PLP
: F806  A9 0F             LDA     #$0F
: F808  90 02             BCC     HF80C   ;=>
: F80A  69 E0             ADC     #$E0
: F80C  85 2E     HF80C   STA     Z2E
: F80E  B1 26             LDA     (Z26),Y
: F810  45 30             EOR     Z30
:
:
:
: FFD5  A6                .DB     $A6     ;*.*..**. "&"
: FFD6  A4                .DB     $A4     ;*.*..*.. "$"
: FFD7  06                .DB     $06     ;.....**.
: FFD8  95                .DB     $95     ;*..*.*.*
: FFD9  07                .DB     $07     ;.....***
: FFDA  02                .DB     $02     ;......*.
: FFDB  05                .DB     $05     ;.....*.*
: FFDC  F0                .DB     $F0     ;****.... "p"
: FFDD  00                .DB     $00     ;........
: FFDE  EB                .DB     $EB     ;***.*.** "k"
: FFDF  93                .DB     $93     ;*..*..**
: FFE0  A7                .DB     $A7     ;*.*..*** "'"
: FFE1  C6                .DB     $C6     ;**...**. "F"
: FFE2  99                .DB     $99     ;*..**..*
: FFE3  B2        HFFE3   .DB     $B2     ;*.**..*. "2"
: FFE4  C9                .DB     $C9     ;**..*..* "I"
: FFE5  BE                .DB     $BE     ;*.*****. ">"
: FFE6  C1                .DB     $C1     ;**.....* "A"
: FFE7  35                .DB     $35     ;..**.*.* '5'
: FFE8  8C                .DB     $8C     ;*...**..
: FFE9  C3                .DB     $C3     ;**....** "C"
: FFEA  96                .DB     $96     ;*..*.**.
: FFEB  AF                .DB     $AF     ;*.*.**** "/"
: FFEC  17                .DB     $17     ;...*.***
: FFED  17                .DB     $17     ;...*.***
: FFEE  2B                .DB     $2B     ;..*.*.** '+'
: FFEF  1F                .DB     $1F     ;...*****
: FFF0  83                .DB     $83     ;*.....**
: FFF1  7F                .DB     $7F     ;.*******
: FFF2  5D                .DB     $5D     ;.*.***.* ']'
: FFF3  CC                .DB     $CC     ;**..**.. "L"
: FFF4  B5                .DB     $B5     ;*.**.*.* "5"
: FFF5  FC                .DB     $FC     ;******.. "|"
: FFF6  17                .DB     $17     ;...*.***
: FFF7  17                .DB     $17     ;...*.***
: FFF8  F5                .DB     $F5     ;****.*.* "u"
: FFF9  03                .DB     $03     ;......**
: FFFA  FB 03             .DA     H03FB
: FFFC  59 FF             .DA     HFF59
: FFFE  86 FA             .DA     HFA86
:
:                 H0036   EQU     $0036
:                 H0038   EQU     $0038
:                 H0200   EQU     $0200
:                 H03FB   EQU     $03FB
:                 H03FE   EQU     $03FE
:                 HC050   EQU     $C050
:                 HC051   EQU     $C051
:                 HC053   EQU     $C053
:                 HC054   EQU     $C054
:                 HC056   EQU     $C056
:
: Page zero labels are listed first, then
: the disassembly, and finally external
: labels.
:
: You can keep adding to the script until
: you have everything disassembled.  The
: script commands are A, B, C, K, L, O,
: U, V, and W.
:
:   A $1234  ->        .DA H5678    LABELED ADDRESS OF DATA
:   B $1234  ->        .DB $XX      BYTE
:   C $1234  ->  H1234 xxx xxxx     LABELED CODE
:   K $1234  ->        xxx xxxx     UNLABELED CODE
:   L $1234  ->  H1234 xxxxxxxxxxx  FORCE ADDRESS TO BE LABELED
:   O $1234                         ORIGIN (OFFSET) OF CODE
:   U $1234  ->        .DA H5678-1  LABELED ADDRESS-1 OF CODE
(VECTOR-1)
:   V $1234  ->        .DA H5678    LABELED ADDRESS OF CODE
(VECTOR)
:   W $1234  ->        .DW $5678    UNLABELED WORD
:
: --
: Paul
: Monroe, Michigan USA


---
This email ain't infected, dude!

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.566 / Virus Database: 357 - Release Date: 1/22/04