EXTBIO device identifiers

Page 1/5
| 2 | 3 | 4 | 5

By Kwik

Expert (127)

Kwik's picture

25-01-2009, 14:35

Hi, i'm working on an EXTBIO implementation for Nowind. When calling EXTBIO the device type (or identifier?) should be placed in register D and the function is specified in register E. I found these existing identifiers:

00h  reserved for broadcasts
04h  DOS2 memory routines
08h  RS232
0Ah  MSX-AUDIO
11h  Kanji
22h  UNAPI (konamiman)
4Dh  Memman
FFh  System exclusive

Is this list complete? And what would be a nice identifier for Nowind?

Memman uses 4Dh ('M'), so perhaps 4E ('N') is nice for Nowind.

Login or register to post comments

By Kwik

Expert (127)

Kwik's picture

25-01-2009, 15:49

Apparently 10h is also used for Kanji.

By msd

Paragon (1372)

msd's picture

25-01-2009, 16:14

Never seen a complete list of this. I would say. Just choose one that seems to be free Tongue

By Kwik

Expert (127)

Kwik's picture

27-01-2009, 15:17

Ok, from now on it's official. Nowind uses 4eh as device identifier! All in favour? Smile

I have an additional question. EXTBIO defines device identifier 00h and ffh for 'broadcast' and 'system exclusive'. Is it neccessary for every device to implement these functions, or is it an option? Furhtermore. I found that RS232, MSX-Audio en DOS2 (memory management) have an almost similar implementation of function 0 (write some sort of device information table) and 1 (return number of channels/or else) of the device ifself. On the other hand Kanji uses these function numbers for other purposes. Kanji also does not seem to implement 'broadcast' and 'system exclusive', although i'm not completly sure.

In other words, which functions are obligatory to implement?

By konamiman

Paragon (1030)

konamiman's picture

27-01-2009, 21:10

On all the software I have developed that uses this hook (not only UNAPI, also TSRs like NestorAcentos, NestorMan, NestorCDPlayer, and InterNestor), I don't implement these "system" devices. I just check if the device identifier is for me, and if not, I jump to the previous hook with registers unaltered. It seems to work fine this way.

By Kwik

Expert (127)

Kwik's picture

28-01-2009, 10:29

I know of no software that uses these 'system devices' to discover which devices are available. I also found very little information about EXTBIO. Does anyone have good documentation?

By konamiman

Paragon (1030)

konamiman's picture

28-01-2009, 21:41

Quoted from MSX DOS 2 Program Interface Specification:
To use the extended BIOS, the program should test "HOKVLD" flag at FB20h
in page-3. If bit-0 (LSB) is 0, there is no extended BIOS nor the mapper
support. Otherwise, "EXTBIO" entry (see below) has been set up and it can be
called with various parameters. Note that this test is unnecessary for the
applications which are based on MSX-DOS (such as the program which is loaded
from the disk), and the program may proceed to the next step.

Next, the program sets the device number of the extended BIOS in register
D, the function number in register E, and required parameters in other regis-
ters, and then calls "EXTBIO" at FFCAh in page-3. In this case, the stack
pointer must be in page-3. If there is the extended BIOS for the specified
device number, the contents of the registers AF, BC and HL are modified
according to the function; otherwise, they are preserved. Register DE is
always preserved. Note that in any cases the contents of the alternative
registers (AF', BC', DE' and HL') and the index registers (IX and IY) are
corrupted.

By msd

Paragon (1372)

msd's picture

28-01-2009, 22:01

Maybe this is of some use. http://msx.retro8bits.com/msxarchives/rs232msx.zip. official implemantation of rs232 on msx trough extbio.

By Kwik

Expert (127)

Kwik's picture

01-02-2009, 19:36

Thanks for the information, guys. I guess there is just not a lot of information available on the subject.

@konamiman:
Which device identifiers did you use in you projects?

By konamiman

Paragon (1030)

konamiman's picture

02-02-2009, 15:02

I always use D=22h on all my projects, I just change the value of E for each project; I didn't want to monopolize the EXTBIO identifiers space. For UNAPI I use a new approach that allows an unlimited number of applications to be installed, all of them using DE=2222h; I recommend you to read the specification, it is quite funny. Smile

By msd

Paragon (1372)

msd's picture

30-12-2009, 13:34

Where can I find some information about adding a device to the EXTBIO? I'm trying to make a driver for something and I want to do it the 'official' way. We are not going to use a rom.
Everything must be done after starting dos2.

Page 1/5
| 2 | 3 | 4 | 5