Hello All,
to continue the series around the smartloader for the smartdiskII,
Currently, I am leveraging Prodos 8 to start my compiled code.
I guess i do not need to have the full version of prodos and my objective is to gain loading time.
What I have in mind, is to have a custom version of DOS with only RWTS and my program to use basic RWTS routines.
Where do I need to write my program in the disk to only have RWTS and then jump to the start of my program ?
I guess I will need to use ciderpress or something like that (for the moment I use Cadius with Prodos system file)
Using diversi-dos or david-dos ? what do you think ?
Sorry if the above seems abvious...
Vincent
Reading the literature on DOS
I would need a custom bootloader with fast (& documented) RWTS functions (or even better read / write block) and jump start,
my program is 6 sector length...
this should already exists somewhere ?
Vincent
The boot ROM loads Track 0 Sector 0 and that for example on an Apple DOS 3.3 disk contains a minimal boot loader to read the rest of DOS into memory and then that runs the "HELLO" program. You should be able to find a disassembly of DOS 3.3, specifically the Track 0 Sector 0 code and modify it to load 6 sectors of your program code and jump to it. You should be able to fit everything onto Track 0. That would be a very fast, almost instantaneous load.
A couple good references to check out are the Apple DOS 3.3 manual and the book "Beneath Apple DOS" by Don Worth & Peter Lechner of Quality Software. You can find both of those in PDF here:
https://commodore.bombjack.org/apple/apple-manuals/Apple_II_The_DOS_Manual.pdf
https://commodore.bombjack.org/apple/apple-books.htm
Thanks Software Janitor,
I have started this path, and as a first step, I was able to compile and put on track 0 sector 0 a small code to display something on the screen,
I have download the DOS3.3 source code, and my assembler is giving me hard time with errors (Merlin32), I will try to move to cc65 or something like this.
Reading the code, it takes aprox 8 sectors to have the bootloader and RWTS, so it means my code needs to stay on 8 remaining sectors so 2k...
I have written a python script to write directly to right offset on a dsk file.
I will continue my journey
Thanks for your answer
Vincent
It would take a little more work but if you can't pack your code to fit in 8 sectors then it should be possible for you to advance the head to Track 1 and read more sectors.