Manuel Bilderbeek <[EMAIL PROTECTED]> writes:
> After reading the mail about the Disk I/O ports I got an idea:
> Ok, it IS (strictly) illegal to write directly to I/O ports, and it has
> to go via BIOS, to make it work on ANY MSX... But isn't it possible to
> read the proper I/O port from the BIOS, and THEN write directly to them?
> Then, you always have the right port, and you only have to use the BIOS
> once.....
No you can't :(
You need to know:
a) Which Floppy Disk Controller is in the computer.
b) Which slot it is in.
c) Which addresses it's mapped into.
d) How the Motor on/off control, Disk changed status, Led on/off, and other
things are controlled. (They are not controlled by the FDC chip)
You have to write all routines for ALL configurations and all FDC's.
You *CAN* do that for Philips, Sony (a few different), Spectravideo, Yamaha
(a few different) and Turbo R. But what about the MSX2+ machines, do you
have all those so you can find out how they work?
What about *NEW* floppy disk controllers? I know that there are at least 1
new in Japan (for 1.4MB) and it might not be compatible with any other
FDC's
and I/O configurations. I have also plans to make one if I get time for it.
The FDC's I have looked at are at best command compatible with the PC FDC.
But a 1.4MB controller should not use 'polled' I/O because the 3.5MHz MSX
isn't fast enough for that. So a sectorbuffer and/or other tricks have to
be
used for that.
Also what about SCSI and IDE floppy drives? They work also entirely
different.
My guess is that it's not feasible to make a 'general' set of drivers for
all Floppy controller configurations...
That doesn't mean that you can make small programs that will only work on a
few MSX computers.
The whole idea about a BIOS is to make the hardware 'invisible' and
therefore flexible and expandable. Just too bad that BIOS'es often limits
the possibilities. One of the worst limits is that we can only address 64k
different sectors on each disk, that gives us <32MByte disks. Other limits
are the accessspeed which is really due to the DOS and the programs people
write.
'illegal' isn't really the right word. It's of course legal for anyone to
access the hardware directly but they must then take the responsibility
that
their software doesn't work on all MSX'es and therefore are not real MSX
compatible programs! (I have made such programs myself but I'll try to
improve)
Just my opinions.
Henrik Gilvad <[EMAIL PROTECTED]>