disassembled Dragon 32 ROM ?

A place to discuss everything Dragon related that doesn't fall into the other categories.
jedie
Posts: 655
Joined: Wed Aug 14, 2013 12:23 pm
Location: germany
Contact:

disassembled Dragon 32 ROM ?

Post by jedie »

Does anybody know if there exist a disassembled Dragon 32 ROM ?

EDIT: found "6809dasm.pl" from http://www.6809.org.uk/dragon/
In http://www.6809.org.uk/dragon/6809dasm.txt is a example:

Code: Select all

$ ./6809dasm.pl org=0x4000 fcc=0x401e,0x4100 64k.bin
Is is for the Dragon 64 ROM, isn't it? Are the aguments the same for Dragon 32 ROM?

I tried this:

Code: Select all

./6809dasm.pl org=0x4000 fcc=0x401e,0x4100 d32.rom
output starts with:

Code: Select all

	org	$4000
L_152D	equ	$152d
	jmp	>$bb40
	jmp	>$bb88
	jmp	>$bbe5
	jmp	>$bbb5
	jmp	>$bcab
L_400F	jmp	>$bd1a
	jmp	>$bd52
	jmp	>$bdcf
	jmp	>$bddc
	jmp	>$be68
	fcc	/~/,$be,$12,/~/,$bd,$e7,/~/,$bd,$ad,/~/,$bd,$a5,/~/,$be,/{~/,$be,/|~/,$be,/}FO/,$d2,/G/,$cf,/RE/,$cd,$a7,/EL/
	fcc	/S/,$c5,/I/,$c6,/DAT/,$c1,/PRIN/,$d4,/O/,$ce,/INPU/,$d4,/EN/,$c4,/NEX/,$d4,/DI/,$cd,/RE/
	fcc	/A/,$c4,/LE/,$d4,/RU/,$ce,/RESTOR/,$c5,/RETUR/,$ce,/STO/,$d0,/POK/,$c5,/CON/
	fcc	$d4,/LIS/,$d4,/CLEA/,$d2,/NE/,$d7,/DE/,$c6,/CLOA/,$c4,/CSAV/,$c5,/OPE/,$ce,/CL/
	fcc	/OS/,$c5,/LLIS/,$d4,/SE/,$d4,/RESE/,$d4,/CL/,$d3,/MOTO/,$d2,/SOUN/,$c4,/AUD/
	fcc	/I/,$cf,/EXE/,$c3,/SKIP/,$c6,/DE/,$cc,/EDI/,$d4,/TRO/,$ce,/TROF/,$c6,/LIN/,$c5,/P/
	fcc	/CL/,$d3,/PSE/,$d4,/PRESE/,$d4,/SCREE/,$ce,/PCLEA/,$d2,/COLO/,$d2,/CI/
	fcc	/RCL/
	bitb	#$50
	fcb	$41             ; nega 
	rola	
	fcb	$4e
	andb	<$47
	fcb	$45             ; lsra
...
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
sixxie
Posts: 1346
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: disassembled Dragon 32 ROM ?

Post by sixxie »

That syntax is representative. You need to feed it parameters that describe the binary you're disassembling. At its most basic, just specifying "org=0x8000" should get you going, but you can annotate further.

Here's my (bash) script for the tackling the Dragon 64 (32K mode) ROM - pretty sure Tormod's gone and marked up far more than what's in here though:

http://www.6809.org.uk/tmp/da/tools/dasm_d64.sh

The Dragon 32 ROM is mostly similar...
jedie
Posts: 655
Joined: Wed Aug 14, 2013 12:23 pm
Location: germany
Contact:

Re: disassembled Dragon 32 ROM ?

Post by jedie »

Cool. Thats for d32.rom would be great!


What is http://www.6809.org.uk/tmp/da/d64.lis ? Looks also very interesting.

Some more interesting for me is: http://www.6809.org.uk/tmp/da/pyroar/ What's about this code?
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
sixxie
Posts: 1346
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: disassembled Dragon 32 ROM ?

Post by sixxie »

That's the listing file generated when re-assembling the output from the disassembly.

The python code I uploaded the other day as an example of how far I got before giving python up as a bad job. All it does is semigraphics rendering. Slowly, even when compiled with (I forget which compiler). And I've no idea what it needs to get going - probably all the dependencies in the universe, as it used pygame for output.
User avatar
JeeK
Posts: 67
Joined: Fri Aug 16, 2013 10:45 am
Location: Vienna, Austria
Contact:

Re: disassembled Dragon 32 ROM ?

Post by JeeK »

jedie wrote:Does anybody know if there exist a disassembled Dragon 32 ROM ?

EDIT: found "6809dasm.pl" from http://www.6809.org.uk/dragon/
In http://www.6809.org.uk/dragon/6809dasm.txt is a example:

Code: Select all

$ ./6809dasm.pl org=0x4000 fcc=0x401e,0x4100 64k.bin
Is is for the Dragon 64 ROM, isn't it? Are the aguments the same for Dragon 32 ROM?

I tried this:

Code: Select all

./6809dasm.pl org=0x4000 fcc=0x401e,0x4100 d32.rom
[..]
The magic is at least in the end-parameter ...
I used

Code: Select all

6809dasm org=0x8000 forceorg=0x8000 end=0xfeff d32.rom >d32.rom.asm
My 6809dasm script version is from 2011:
# 6809 disassembler
# by Ciaran Anscomb, 2011
The 2012 version from http://www.6809.org.uk/dragon with 6309 support seems equivalent in this regard.
The dragon on my side: http://klasek.at/hc/dragon/
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: disassembled Dragon 32 ROM ?

Post by tormod »

sixxie wrote:Here's my (bash) script for the tackling the Dragon 64 (32K mode) ROM - pretty sure Tormod's gone and marked up far more than what's in here though:

http://www.6809.org.uk/tmp/da/tools/dasm_d64.sh

The Dragon 32 ROM is mostly similar...
Thanks for that script! No, I had only made a minimal version of such a command line here: https://gitorious.org/m6809-computer-to ... 2:Makefile

other than that I have marked up more directly in the d64.lis file that I got from you, but not much more than what I sent back to you recently.

I have been thinking we could maintain a common repository of labels and comments (and your 6809dasm command line) and the necessary scripts or Makefiles to unpack/repack, so that we can easily cooperate on a annotated disassembly without stepping on anyone's toes (Micros*ft?).
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: disassembled Dragon 32 ROM ?

Post by tormod »

JeeK wrote:The magic is at least in the end-parameter ...
I used

Code: Select all

6809dasm org=0x8000 forceorg=0x8000 end=0xfeff d32.rom >d32.rom.asm
The BASIC ROM ends at 0xbfff. 0xfeff is the end of cartridge space.
KenH
Posts: 182
Joined: Fri Oct 12, 2012 9:50 am

Re: disassembled Dragon 32 ROM ?

Post by KenH »

Here is the Dragon rom source which was disassembled, labeled and commented by Phill back in 2006.
It can be used to assemble either the Dragon 32 or the Dragon 64 roms.

Code: Select all

; DragonROM.asm	Disasembily of Dragon 32/64 Basic ROM.
;
; Disasembled 2006-08-14, P.Harvey-Smith.
;
; From this file you can assemble any of the Dragon basic ROMS.
;
; Define DRAGON64 	to assemble for Dragon 64, 32K rom
; Define DRAGON64RAM	to assemble for Dragon 64, 64K rom
;
; If neither are defined, a Dragon32 ROM will be generated.
Attachments
DragonROMASM.zip
(52.97 KiB) Downloaded 219 times
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: disassembled Dragon 32 ROM ?

Post by tormod »

Wow, there you go. Was this available on the internet somewhere?

Can we modify and redistribute this freely? Then we are all set.
jedie
Posts: 655
Joined: Wed Aug 14, 2013 12:23 pm
Location: germany
Contact:

Re: disassembled Dragon 32 ROM ?

Post by jedie »

Make it sense to merge the lables with the information from [1] and [2] ?

[1] http://dragon32.info/info/memmap.html - Dragon 32/64 Memory Map (with CoCo refs)
[2] http://dragon32.info/info/romref.html - Dragon 32/64 ROM Reference guide

Would be easy for me to bring it in the right form, with: viewtopic.php?f=8&t=4365
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
Post Reply