From: Marko Mäkelä (marko.makela_at_hut.fi)
Date: 2002-11-18 13:08:07
On Mon, Nov 18, 2002 at 12:01:33PM +0100, Nicolas Welte wrote: > 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: I just translated the sources from DASM to xa format and found some possible places for improvement. For now, I ensured that the output files were identical with those generated with DASM. > - 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? No. The same bug is in the plus/4 version and in the non-cartridge VIC-20 version. > - would it be possible to run the server from ROM? It shouldn't be that hard. Maybe the self-modifying parts could be copied to the cassette buffer. Also, I noticed that the C2N232 routines can be rolled to a loop quite efficiently, which makes it easier to find space for the routines. One problem, though, is how the server is enabled and disabled. Maybe it could be enabled at RESET by default, and there could be SYS commands for explicitly enabling or disabling it. The old IRQ vector need not be remembered, as it's likely to be in the same ROM chip. > I don't see much of a problem for the latter case, if you don't want to > make it all automatically. It can't be made automatically on the PET side, unless I make the program longer than 192+2 bytes. If the IBSOUT vector points to cassette buffer #1 while the header is located in cassette buffer #2, the loader won't be started. But I could patch the header on the Unix/Amiga/Win32 side: I already set the loading address, the JMP address (default $ffd2 for loading BASIC programs) and the length of the data. There aren't absolute jumps within the code: by arranging the code appropriately, I can reach all of the 171 payload bytes with relative jumps. However, there are four INC instructions that modify the code and data in the tape header. But they are at fixed offsets. Marko Message was sent through the cbm-hackers mailing list
Archive generated by hypermail 2.1.4.