BIOS, CRDOS. Introduction.
ZXNet echo conference «zx.spectrum»
From Alexander Shherbakov → To All 30 March 1998
■ I love you, man, All!
I offered to post a description of two of my developments and they supported me.
Therefore, at my own peril and risk, I post this description. It's quite large,
so I'll post 10 at a time, I think it won't cause crime...
A small digression. First of all, you need to remember that this text was written 5 years ago. That was the first time I encountered a PC and of course I was impressed. Therefore, do not be strict with COMMAND.COM or CONFIG.SYS ;) although on the other hand this is quite normal names for CCP and config.
And one more thing. This idea has been reworked by me more than once. And I also no longer agree with many things. Moreover, from the description I, the present day, did not catch the meaning of why I did this, so I will briefly say it here.
I had an idea to achieve 98% compatibility of all PCs on the VM80 processor and similar to it (Z80) with each other. To do this, the following operations are performed on the computer.
A. If the user does not need to maintain compatibility with “native” software.
1. A new BIOS is installed instead of the old ROM.
B. If the user needs to maintain compatibility with “native” software.
1. INThe ROM is searched for a window of at least 80 bytes.
2. In the ROM, the first 3 bytes are changed, they are changed to JMP ... to this window.
3. The BIOS loader from the external ROM is written into the window.
Other options are possible
COMMON
4. V-disks are installed, including those with the CR-DOS operating system.
5. A 3" disk drive is installed.
Why did I choose CRDOS and not CP/M?
I wrote programs under the control of SPM and using its standard tools
including on ASM. These were not 1, not 2, and not even 3 programs. Quite
serious things, not handwriting. And I got the impression that the SPM is overloaded for the programmer. Take, say, the file reading procedure.
We must first pass the file name to the SPM procedure, which normalizes it. name.
Opening a file. There is nothing complicated here.
Reading from a file. Reading in pieces of 128 bytes...
That is, the simplest operation results in several dozen lines, because
the calling functions are not clear, then the parameters must be in the BC DE then in HL.
Of course, I came to the conclusion that everything needs to be simplified. Let's say, to open a file, just send a link to the file name to HL, and the name is not optimized and unprepared - let the OS itself do this Reading the file. if the file
is small, then immediately indicate how many bytes to load and WHERE to load, the native SPM
function loads sectors always from address 80h, and you also have totransfer to
memory to the right place... Well, and so on. And at first I even thought about maintaining continuity with SPM. But then I realized that this would increase the code and cause confusion...
This is how CRDOS appeared.
Among other innovations. Again, I'm impressed - CMOS for storing computer parameters. This could be the parameters and number of drives and
V-disks, memory configuration parameters and the total amount of memory, and so on.
Briefly. Write...
What about crushing the baby?