About the bootprocess:
To boot from a partition, the following things must be ok:
1. the partition must be assigned to a driveletter: this action is
performed by the IDEbios at startup. It looks for a valid partitiontable
(byte #EB on offset +#000 and #55AA on offset +#1FE). If this fails, it
looks for a normal bootsector: I think only #EB on +#000 is checked
(can't remember). The same is done for the FAT12/FAT16 partitions in
the partitiontable. Other FAT12/FAT16 parameters are extracted from the
bootsector and filled in in the DPBareas. (start of directory, etc...)
So, if you create your own bootsectors, make sure the first byte is #EB
and provide some realistic parameters, even if the filesystem you want
to implement is not a FAT type. This will make sure the partition is
linked to a driveletter.
2. the actually booting takes place by the running DOSkernel. So this
thing has nothing to do with the IDE software anymore. Refer to the
email from Bifi: the DOSkernel calls the bootroutine at #c01e with
various registers set up. (at home I have some info on that lying
around) But for things like UZIX, I think you can just ignore these
parameters in HL,DE,AF,... and you can immediately do what you want to
do.
BUT here comes another issue: on TurboR computers, the bootsector is
examined before the call to #c01e takes place. If it don't detects a
'DOS2 bootsector', then the DOS1 core is installed. If I remember well,
the only thing that the TR checks is the 'VOL_ID' string in the DOS2
bootsector.
So, if you create your own bootsectorstuff: keep the VOL_ID string in
place !
-------
about UZIX: don't destroy any MSX system variables in the higher memory
region ! (I think you can destroy everything below the address that can
be found on location #F349.) So don't just erase everything till #f000
because it is possible that some system work areas are located below
#f000...
Another important remark concerning entry DISKIO #4010: when
loading/writing data to page 0 (#0000..#3fff) or to page 1
(#4000..#7fff), the diskromsoftware expects some slotswitchingroutines
at address #f36e (not sure about the address). These routines are
normally provided by MSXDOS(2).SYS. But if you write your own OS, then
you have to provide these routines yourself OR much better: simply don't
read/write data in page 0 or 1.
------------------------
> 1. Assigning driver letters.
>
> Is it possible that I use only two drive letters for a IDE
>harddisk
> when there are more than two partitions?
yes, more info: read IDEFDISK.TXT, enabling/disabling partitions
>
> 2. Maximum Capacity.
>
> According to a document from Sunrise home page (IDEFAT16.TXT),
> 2GB is possible to for one parition. Is it correct?
yes, that is correct.
Note that it is NOT EXACTLY 2GB for FAT16 and 32MB for FAT12. Like said
in IDEFAT16.TXT, it is approx. 2GB.
>
> And what is the maximum capacity of a harddisk (not a
>partition)
> which can be handled by IDE interface/file system.
by the IDE hardware: ALL IDE harddisk types can be connected. (1MB,
10GB, 40GB, 123GB, ...)
by the IDE software: current bios 2.01 'only' support reading/writing of
sectors in the first 8 GB range of the device. So if you're using a 10
GB harddisk, the last 2GB can't be accessed. The IDEFDISK software which
you need to generate partitions, will automatically limit your
partitions to the 8GB boundary.
Greetings,
Jon
****
Problems? contact [EMAIL PROTECTED] See also http://www.faq.msxnet.org/
****