[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tweaking DOS.SYSTEM from Extra-K to support other DOS 3.3 variants



Michael J. Mahon wrote:
RedskullDC wrote:
The name of the program it tries to run is whatever is left in the DOS3.3
keyboard buffer.
When you INIT a disk with 'INIT HELLO', then "HELLO" is what is left
in the Keyboard buffer.
Take a look at "Beneath Apple DOS" to see where in memory the keyboard
buffer is, and also where the file-type flag is. You can patch those manually
after you have used your program to load the DOS image.

No, DOS stores the name of its "startup" program internally.
It has no dependence on the keyboard buffer ($200).

Several programs can patch the name of the startup program, and
whether it is RUN, BRUN, or EXECed.

Once you have done that, you are still left with a problem:
The loaded DOS doesn't understand the prodos file system it finds.
When it tries to run the 'HELLO' program , it trys to interpret the random
data it finds at trk 17 sec 0f as a volume bitmap.

And this can be fixed (if it is worth doing) by storing what
ProDOS sees as a file, but which is a DOS 3.3 directory track
on track 17.

Of course, there will need to be a whole DOS area on the disk
if you intend to store programs that DOS can run.

Try doing a 'CATALOG' once you have run your dos.system program.
Nada, zip, nicht.

Probably best to expand the DOS.SYTEM program to hold the HELLO
program as well, load it into memory once DOS is initialized, then call
Applesoft to run it.

Still leaves the DOS not understanding ProDOS probelm.
Only solution I can think of it to have a DOS disk in another drive, and
modify the 'last trk/sec' values in RWTS and the File Manager, so that
your loaded DOS will immeadiately point at the DOS disk.


A better idea.  ;-)

Actually, you want to change the "current drive" spot in memory.

An example of how this is not needed can be found on the Program Writer disk. Boot the disk, and it will start in ProDOS (1.1.1). Select "Switch to DOS 3.3", and lo and behold it switches to DOS 3.3! Extra-K had all the necessary tools to do this. I think it marked the first half of the disk used in the DOS 3.3 allocation tables, and the second half used in the ProDOS allocation tables. There were directories for both OSes, and DOS.SYSTEM loaded DOS 3.3 from ProDOS.

My idea would be to replace DOS.SYSTEM with a PRONTO.SYSTEM, ZDOS.SYSTEM, TDOS.SYSTEM or ESDOS.SYSTEM which would load a faster DOS.

Moll.