Page 2 of 3

Re: The SnarkHunter Disks

Posted: Mon Aug 30, 2010 10:58 pm
by rolfmichelsen
Alastair wrote: Wings of War is loaded with CLOADM, a CAS image may be found in the zip file I uploaded (see viewtopic.php?f=7&t=271). WHATIS.EXE states that the image contains a machine language program and nothing else, perhaps Salamander compiled the BASIC program before releasing the game? The same could also be true of Fishy Business (also included in the zip).
Interesting :) I converted many of my cassette-based games to disk sometime back in the 80's. This mostly involved removing loaders and stuff and extracting the "real" program. I don't recall the details of every game converted anymore, but I definitively have a BASIC version of Wings of War lying around as a result of this exercise. I guess this means that they used a loader of some sort. Looking forward to having a closer look at that CAS file sometime soon :D

-- Rolf

Re: The SnarkHunter Disks

Posted: Mon Aug 30, 2010 11:54 pm
by zephyr
Alastair wrote:Wings of War is loaded with CLOADM, a CAS image may be found in the zip file I uploaded (see viewtopic.php?f=7&t=271). WHATIS.EXE states that the image contains a machine language program and nothing else, perhaps Salamander compiled the BASIC program before releasing the game? The same could also be true of Fishy Business (also included in the zip).
rolfmichelsen wrote:Interesting :) I converted many of my cassette-based games to disk sometime back in the 80's. This mostly involved removing loaders and stuff and extracting the "real" program. I don't recall the details of every game converted anymore, but I definitively have a BASIC version of Wings of War lying around as a result of this exercise. I guess this means that they used a loader of some sort. Looking forward to having a closer look at that CAS file sometime soon :D

-- Rolf
Its not compiled, just saved as one chunk of memory with a small machine code autorun routine. The original BASIC and machine code are attached for you to examine. There are two lines at the end of the BASIC program which were used to create the original cassette.

Regards,
Steve

Re: The SnarkHunter Disks

Posted: Tue Aug 31, 2010 9:37 am
by admin
This isn't the only game to do this - I have seen a couple of games that in addition to the game code also include the autorun code and the code to create the master tape. These have no loading screen but are always CLOADM autorun games.

Re: The SnarkHunter Disks

Posted: Tue Aug 31, 2010 12:57 pm
by snarkhunter
Such a small piece of code was published in Dragon User once. It was position-independant code that was meant to be appended to the bottom part of (i.e. before) a Basic program, then the whole memory would be saved as m/c, using a lower reloading position, so the appended bit would override some RAM hooks, thus generating the "auto-exec" effect from a simple CLOADM, even for programs written in BASIC.

I myself used this trick in the tape version for some of my own programs, such as "Pixie!" and the hopeless "Stone of Wisdom" so-called adventure: it was simple and neat - and would work like a charm. Moreover, it was much easier to handle a single chunk of data, rather than having to load several bits of code (such as a loader, then a loading screen, then the main Basic program, then the m/c routines, etc.

I might still have the corresponding source code on one of my ".vdk" files, somewhere...

Re: The SnarkHunter Disks

Posted: Tue Aug 31, 2010 1:17 pm
by snarkhunter
snarkhunter wrote:I might still have the corresponding source code on one of my ".vdk" files, somewhere...
I think I do...
Well, after checking the instruction manual to "Dskdream", then checking the content of my source disk, I definitely do! But it sure would help if someone here could explain to me how I may transfer some "Dream" source code to a PC standard text file: any idea?!

Re: The SnarkHunter Disks

Posted: Tue Aug 31, 2010 1:40 pm
by rolfmichelsen
snarkhunter wrote:But it sure would help if someone here could explain to me how I may transfer some "Dream" source code to a PC standard text file: any idea?!
I did this by printing from Dream to the serial port on a D64 and then capturing on a PC (only a few pokes needed to redirect printing to the serial port). If I recall correctly, Dream also has a documented API for extracting text from memory. I haven't yet figured out the Dream file format...

-- Rolf

Re: The SnarkHunter Disks

Posted: Tue Aug 31, 2010 2:00 pm
by snarkhunter
Thanks very much for the hint, Rolf, but what I had in mind was much more "straighforward", such as retrieving this data from within an emulated Dragon!

I must admit I would just like to save myself from having to re-type all this code into the Notepad!

Re: The SnarkHunter Disks

Posted: Tue Aug 31, 2010 2:47 pm
by snarkhunter
I just tried to "isolate" my routine on a separate "blank" virtual disk. After saving from within Dskdream, the ".DRM" file was indeed listed with a DIR command. Then I switched to another ".vdk", and then back to the former one... which was now blank again!? :?

So I think it will be much easier if I attach my old ".vdk" file directly.

The concerned source routines should be:
'LOADING': code to transfer part of the memory from an upper address to a lower one
'AUTORUN': "autorun" code, to be transferred to address $019A using the former piece of code
'EXECUTER' (???)

Sorry if my memory should be failing right now, since this is code that was designed and written over thirty years ago. I do believe people who do have a fair knowledge of 6809 assembly will quickly find out. Will try to re-check this later, and to understand how my mind was actually working 30 years back!

Re: The SnarkHunter Disks

Posted: Tue Aug 31, 2010 11:12 pm
by zephyr
snarkhunter wrote: The concerned source routines should be:
'LOADING': code to transfer part of the memory from an upper address to a lower one
'AUTORUN': "autorun" code, to be transferred to address $019A using the former piece of code
'EXECUTER' (???)
I have converted all six of the DSKDREAM source code files to text files. The ones you mentioned are attached. Do you want me to upload the remaining files?

Regards,
Steve

Re: The SnarkHunter Disks

Posted: Wed Sep 01, 2010 7:30 am
by snarkhunter
Thank you very much for this, Steve. But how did you do it?!
By the way, I'm now doubting it can actually be useful to anyone (... unless one should be willing to check the code?!). That is, until someone comes with a Dragon/PC text interfacing tool: would there happen to be any such tool available already?

Still, there's one thing that puzzles me in the "EXECUTER" code: some lines do include a "<" sign, which I didn't remember from the 6809E addressing modes. I would have to check whether this was an original "feature" of my source code, or rather the result of some corruption during the transfer from the Dragon format to the PC one.

.../... (original source code checked)

Yes, that's the way the sourcecode looks within "Dream": I'm afraid I just can't remember anymore what this actually means!?

Anyway, this reminds me of the "good old days". I remember getting my Dragon in July '83 first, then merely playing a few games and messing around with Basic, not understanding the slightest thing to assembly. What got me started later on was an article in DU, That I somehow seemed to understand almost everything in! So I quickly decided to go out and buy the "Dream/Dreambug" packages first, soon converted to "Alldream" with the built-in feature. I switched to "Diskdream" when I got my disk drive, and both proved a real treat!

I wouldn't praise my own coding skills very high, though: that's what most people ever get from self-learning. I had a couple of friends who were much, much better than I could ever have wished I had been. Yet it enabled me to achieve things I would never have regarded as possible, which in itself I still consider quite a personal achievement...


[auto-edited]
Well, I just found out about that "<" sign in the "Alldream" manual: it was required to force 8-bit addressing on the concerned instruction. Still, I can't remember why I had to use this. Perhaps it was only meant to keep the resulting code as short as possible...

And I don't think there's any actual need for you to extract the other files from this disk, unless someone will be willing to get them. But thank you very much for your offer, once again.