[Coco] Updates / Temple of ROM development
Rick Adams
rick at rickadams.org
Sun Sep 29 18:24:47 EDT 2019
I had a number of projects that stalled during my wife's serious medical
emergency, but that is now resolved; she is out of the hospital now and
getting stronger every day. Thank you for your prayers and well wishes
during that difficult time, but you don't need to feel obligated to
abandon those efforts quite yet. ^_^
My game Omnistar is pretty much finished except for the endgame, and I
am a bit burned out on it, so I have turned to other matters for the
time being. I may start that up later, who knows?
The source for my game Temple of ROM is now on Github at
https://github.com/yggdrasilradio/templeofrom/tree/develop thanks to a
disassembly of a Temple of ROM game cart by William Astle.
The source for my Coco3 terminal program DELPHIterm is now on Github at
https://github.com/yggdrasilradio/delphiterm for the curious; there are
probably better terminal programs out there but you can have fun seeing
how I did things. I had my own keyboard, disk and xmodem routines, for
example; you might enjoy digging around in there.
Right now I am mostly digging into Temple of ROM with an eye towards
expanding it to include multiple floors in the maze, more/different
monsters and treasures, and potentially other features such as
doors/keys or other puzzles. Progress is slow.
I am just now learning all the ins and outs of Github and git so don't
go too crazy on me.
There is a Discord channel #temple-of-rom-ii on the TRS-80 & Tandy Talk
Discord server at: https://discord.gg/4J5nHXm where we discuss
development efforts.
Interesting discoveries as I dig through my first assembly program from
37 years ago:
There were lots of unused areas on the direct page, such that it was
actually only about half used, scattered all over. I have several
theories as to why. Since it was developed on three 20 minute cassette
tapes, it's possible I did code refactoring that left a lot of locations
on the direct page unreferenced but didn't bother to remove the
declarations. Or I may have been trying to leave some areas untouched
so that EDTASM editing and debugging would work during testing.
I can tell where the divisions were between the source on the three
tapes. The program begins very strangely with a jump... to another
jump... to a third jump... to the initialization code. This was skipping
between the three segments, so I've marked those as SEGMENT 1, SEGMENT 2
and SEGMENT 3 in the source.
Temple of ROM didn't use interrupts at all, and used ROM routines
exclusively for joysticks and sound. I had no idea how to handle
interrupts at that point; that's how novice I was.
I was finally able to fix a bug that made it into the production ROMs
and has always bothered me: drawing of vertical lines clipped one pixel
too early at the bottom of the screen. This involved a one line change
of a BNE branch to a BPL.
Tandy included a snippet of code in the game that I had no idea existed:
if you hit ENTER, CLEAR or SHIFT on the keyboard, the game switches
between CMP, RGB and PAL color modes.
More information about the Coco
mailing list