CoCo cartridge Atom (1983) (26-3149) (Tandy)

Use this forum to submit new files for the download section of the archive. I will check each submission and upload it to the archive on a regular basis.
User avatar
Rolo
Posts: 228
Joined: Sun Feb 10, 2013 7:36 pm

Re: CoCo cartridge Atom (1983) (26-3149) (Tandy)

Post by Rolo »

Finally working. Not thoroughly tested yet, but playable.
Thanks everybody.

@admin: How do we proceed? Do you think, Dragon-modified Tandy-roms should be uploaded and stored anywhere (i. e. download/roms/dragon or download/roms/TandytoDragonTest)? There are just a few bytes to change, but there is no point in everybody doing it all over again and again. Ok, for xroar-users it's not a problem, but for cartridge-burners it is.
admin
Site Admin
Posts: 410
Joined: Thu Jul 17, 2008 10:22 pm

Re: CoCo cartridge Atom (1983) (26-3149) (Tandy)

Post by admin »

How about rom\dragon\TandyModified
Simon Hardy
User avatar
Rolo
Posts: 228
Joined: Sun Feb 10, 2013 7:36 pm

CoCo cartridges

Post by Rolo »

Perfect. Can you please mkdir that folder?

I made a little perl script, that disassembles all tandy roms with the help of 6809dasm.pl and greps for JMPs and JSRs into BASIC and KERNAL-Rom. The results are listed in a big textfile, which I would like to attach. That should make it easier to see which Tandy roms work with the Dragon and reveal "bad" rom calls that make them "misbehave". I still want to modify a few Tandy roms for usage with my multi cartridge.
It may be useful for somebody else.

I cannot upload:"The extension txt is not allowed." :?:
Last edited by Rolo on Mon Oct 07, 2013 7:07 pm, edited 1 time in total.
User avatar
Rolo
Posts: 228
Joined: Sun Feb 10, 2013 7:36 pm

CoCo cartridge Atom (1983) (26-3149) (Tandy)

Post by Rolo »

Here is a modified version of "Atom" for the Dragon Computer.
Atom modDragon.rom
(8 KiB) Downloaded 215 times
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: CoCo cartridges

Post by tormod »

Rolo wrote:I made a little perl script, that disassembles all tandy roms with the help of 6809dasm.pl and greps for JMPs and JSRs into BASIC and KERNAL-Rom. The results are listed in a big textile, which I would like to attach. That should make it easier to see which Tandy roms work with the Dragon and reveal "bad" rom calls that make them "misbehave". I still want to modify a few Tandy roms for usage with my multi cartridge.
It may be useful for somebody else.
Cool! Your script could also match the calls against the list at http://sourceforge.net/p/toolshed/code/ ... equivs.asm
and to some degree fix it up automatically.

By the way, a good while after I made that list (many hours of work) for porting HDB-DOS, I discovered that Phill Harvey-Smith had made a similar list for porting superdos to Dragon (also in Toolshed!) with at least half of my entries already found... Well, well, at least I could do some cross-checking of the two lists, and I think I even found something that can be fixed up in superdos. I guess we ought to come up with a good machine- and human readable format and make one master list we can maintain and reuse for all these projects. My list is tab-separated but the comments and "classic" names like CHROUT and CkComa are not all consistent. Phill used more structured names, but having a column for the "classic" names could also be nice. See superdos/romdefs.asm, it doesn't list equivalents one by one, but such formats can be generated from it.
I cannot upload:"The extension txt is not allowed." :?:
A retro forum that doesn't accept plain text... :) Maybe you can just zip if for now.
User avatar
Rolo
Posts: 228
Joined: Sun Feb 10, 2013 7:36 pm

Re: CoCo cartridge Atom (1983) (26-3149) (Tandy)

Post by Rolo »

Hi tormod,
please don't be disappointed. It's just a dumb script (maybe 25 lines) making a dumb list at the moment. I did not print the many JMP/JSR within cartridge space above $C000. The jumps within the program should be ok, shouldn't they? I filtered the jumps from $8000 to $BFFF. And those are amazingly few :!: Maybe I'm doing something wrong!? If you notice an error, please tell me, so that I can change my script.

Here is the zipped txt-file:
tandyRomSearchResults.txt.zip
(4.2 KiB) Downloaded 174 times
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: CoCo cartridge Atom (1983) (26-3149) (Tandy)

Post by tormod »

You're right, calls within the cartridge above $C000 are no problem. Also, most (all?) indirect ROM calls at $A0xx are portable.

Note that the disassembler easily gets out of sync with the code when it encounters data fields without knowing, and tries to interpret data as code. I guess this is the reason for some rather strange addresses seen in your list. So in some cases you'll have to inspect the disassembly around a detected JMP/JSR to see if the code makes somewhat sense. Somewhere down my TODO list I have some ideas for a superdisassembler that tracks possible code flow to find all code correctly on basis of well-known entry points, initially for ARM code but it should be architecture independent so that 6809 code could be analysed too...

Alternatively, XRoar could be of help here: It could collect all ROM calls cleanly while you run the program in CoCo emulation. We would just need volunteers to play the sh** out of those games :)
User avatar
Rolo
Posts: 228
Joined: Sun Feb 10, 2013 7:36 pm

CoCo Basic interpreter: documented source code

Post by Rolo »

I finally found a very good source of information concerning Color Basic and Extended Color Basic, which already has been of great use to me, patching CoCo-cartridges for the Dragon. Very well documented source code! I think more people might be interested in that:

"Color Basic Unravelled II" - For the Tandy TRS-80 Color Computer (dealing with $A000 ... $BFFF) and
"Extended Color Basic Unravelled II" - For the Tandy TRS-80 Color Computer (dealing with $8000 ... $9FFF)

both revised by Walter K Zydhek
Original by Spectral Associates


I don't put a link in here. You'll find a couple of links for pdf-files in Google.

It's not exactly the same Basic, of course, but it is very similar. It is easy to find and recognize corresponding parts in both versions. Check it out.
Last edited by Rolo on Mon Oct 07, 2013 9:00 pm, edited 1 time in total.
KenH
Posts: 182
Joined: Fri Oct 12, 2012 9:50 am

Re: CoCo cartridge Atom (1983) (26-3149) (Tandy)

Post by KenH »

There is also a good reference of the Dragon rom with cross reference to CoCo addresses here:
http://dragon32.info/info/romref
User avatar
Rolo
Posts: 228
Joined: Sun Feb 10, 2013 7:36 pm

Re: CoCo cartridge Atom (1983) (26-3149) (Tandy)

Post by Rolo »

Yes, I know that and it's helpful, but sometimes it is not enough. There also are jumps into routines not mentioned in this list and there also are jumps into the middle of routines. Some routines are slightly different between the two computers (i.e. Dragon pushing addresses on stack, CoCo not; => jumping into the routine causes stack error and crash). Comparing the documented CoCo source with the disassembled Dragon rom reveals this kind of information. ;)
Post Reply