Re: LOAD command (Was: Disk drive questions)

From: Nicolas Welte; address is valid for replies (Re:) only! (welte_spam_at_freenet.de)
Date: 2002-11-18 12:01:33

Marko Mškelš wrote:

> By the way, I'm just playing with the LOAD command.  I wrote a 2-byte
> "program" that invokes a 38400 bps fastloader in the 192-byte tape header
> (by overwriting the $ffd2 indirection vector, of course). 

Nice idea, it's even better than what I silently wished: an autostarting 
cbmlink server program :-)

BTW, there are several questions I have about cbmlink, and I fear the answer 
is no to all, I had a very quick look at the program sources:

- on the PET, the server sits at the end of the BASIC memory. After the 
server is started, is the BASIC end adjusted to protect the server?

- would it be possible to run the server from ROM? For this it must not use 
self modifying code, of course. On the other hand, loadable modules need RAM 
anyway, so I could simply write a simple copy routine that copies the server 
into RAM and starts it.

>  The program already
> works on the VIC-20 and on the C64, and I'm planning to add support for
> the C128, the 264 series and the PET series soon.  For the PET, I'm afraid
> I must create multiple versions, as the routine for restoring the vectors
> might be located at different addresses.  It could be possible to detect
> that at run time, as there is plenty of space left, but there is another
> problem as well: for load"",2, the tape buffer is at a different location,
> as far as I know.

I don't see much of a problem for the latter case, if you don't want to make 
it all automatically. So far the user also had to specify which tape port the 
device is connected to. But maybe you could write the fastloader in a 
relocatable way, using only relative branchs or including a short relocation 
table that patches the code before it is executed.

Nicolas



       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail 2.1.4.