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.