6809dasm.pl - a 6809 disassembler written in Perl. The script accepts binary data on standard input, and gives disassembly on standard output. Various options can be set with command line arguments: org=ADDRESS Set origin of disassembled code. fcb=ADDRESS,ADDRESS Specify an address range to be represented as byte data. fcc=ADDRESS,ADDRESS Specify an address range to be represented as text data. 6809dasm.pl should always produce output that can be reassembled with a09. Most relative branches are labelled. Branches into areas that fall mid-instruction (either due to misidentified data areas or embedding of instructions within instructions) have extra labels added relative to the beginning of the instruction. Example: $ cat 64k.bin | ./6809dasm.pl org=0x4000 fcc=0x401f,0x4100 org $4000 pshs cc,a,b,x orcc #$50 ldx #$8000 L_4007 sta >$ffde ldd ,x sta >$ffdf std ,x++ cmpx #$ff00 bcs L_4007 leax >L_401E,pcr jsr >$90e5 L_401D puls cc,a,b,x,pc L_401E equ L_401D + 1 fcc /NOW IN RAM MODE/,$0d fcc $00 $