Hi Hans, > I just updated my BIOS to report > any unsupported INT/service calls,
Can you give a short overview of your hardware and of the functions your BIOS already does support? :-) I cannot resist answering before the FAQ is up again (still needs config fixes after SF update) so here you go... It's also "fresher". Enjoy :-). Here is the summary of the summary first: Provide 40:0e, 1e, 6c, 71, 96, int 08, 11-12, 1c (easy), set int 1e geometry info, int 10 func 0e, int 1a func 0-5, int 13 func 0-3/8, int 16 func 0-2, if 102+ keys FreeDOS also uses int 16 func 10-12 :-). Optional: int 13 func 5, d, 15-18, 41-43, 48 and int 14 func 0-3, int 17 func 0-2 - provide stubs! Int 15 functions 87, 88 and maybe c0, 24: HIMEMX but "func 88 + A20 always on" should be enough... Some extra 40:nn for keyboard and textscreen and more int 10 func and b800:0 make more apps happy. Overview BIOS services versus FreeDOS kernel: DOS overwrites int 20-2f and some others, some drivers assume the first IRQs to be at int 08-0f and the usual 8086 CPU exception numbers 0-6 are assumed. RAM usage starts at 50:nn or 70:nn, is tweakable. Int 1e floppy data and 40:6c timer should be more or less related to reality, also int 08 / int 1c. Core int 10 screen functions: 0e TTY, occasionally others (00 set mode, 02 / 09 cursor and print...) but DOS *apps* and shell may require some more. Config option "screen" uses int 10 func. 00 / 11. Core int 16 keyboard functions: 0-2 but if you do have 100+ keys you should also support 10-12, this is detected by testing "40:96 and 10" flag but you can force to 86 key compat mode with SWITCHES=/K. Core int 13 disk functions: 0-3 and 8, some more can return dummy values: LBA check, format, change check and similar... FreeDOS can probe drives 0-1, 80-87, be prepared to get probes for drives you do not have, simply return a suitable error code... The dummy-able other int 13 functions: 05, 0d (?), 15-18, 41-43, 48. Core simple functions: int 11 / int 12 / int 19 to get some flags / memory size / do reboot (optional). Int 11 and 12 basically only return a flag bitmask. Core communication functions: int 14 and int 17 for COM / LPT only used if they exist according to int 11. Int 14 func 0 to 3 and int 17 func 0 to 2 are used when accessing COM / LPT and when initing them. Core time functions: int 1a functions 0 / 2 / 4 at boot, functions 1 / 3 / 5 if you change date/time, also timer tick count at 40:6c and maybe int 8 / 1c. Minimal CPU: 8086, 286 or 386 depending on compile time option. Recommended is 386 with int 15 for ext RAM size info so you can use HIMEM for HMA and the "XMS swap" of our command.com :-). HIMEM might also use PS/2 A20 access and RAM copy (both int 15) and mouse drivers can use PS/2 int 15 mouse stuff... Several DOS apps will be happy if you have a text screen buffer at b800:0 and some of the 40:xx BIOS data. The kernel uses very little 40:xx data itself: IF you use the full screen config sys menu, you need int 10 function 02 and 06 and the 40:4a and 40:84 values. Using numlock / keybuf config sys OPTIONS modify 40:17 and 40:1a/1e and 40:80/82. EBDA move OPTION uses 40:0e / 40:13. Ctrl Break handling *uses* 40:71... Treating 1 drive as both A: and B: uses 50:04. Boot drive is at 50:e0 and timer tick is *expected* at 40:6c. The 50:xx are written by DOS but 40:xx are expected from BIOS. Eric ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user