Hi Jean, I did not know that .aero domain names exist ;-). > The intent here is not to run FreeDOS programs, but rather use FreeDOS > as an operating system for an embedded platform. The "BIOS" we use is > custom made. We actually call it the bootloader... > We use it to load the OS from PROM to RAM and then execute the OS...
So far so good. The RomOS system of Rayer does similar things: He creates a virtual disk drive out of ROM contents and lets FreeDOS boot from that drive. For that, he modifies the BIOS diskette driver to read from ROM instead of from disk drive. > I guess this is where I am lacking more information on what > a BIOS is supposed to do. Indeed. A BIOS is a basic input output system, so it is supposed to provide simple drivers for basic hardware such as keyboard, disks, a text mode display, serial port, printer port... Depending on what hardware you actually have and what exactly you want to do with DOS, you will need a different amount of drivers in the BIOS. See also some related FAQ entries --> For a list of things which need a 386 or better CPU, check: http://fd-doc.sourceforge.net/faq/cgi-bin/viewfaq.cgi?faq=Installing_FreeDOS/182 Generally useful for FAQ surfing might be the meta FAQ: http://fd-doc.sourceforge.net/wiki/index.php?n=FdDocEn.MetaFaq Very useful for your BIOS questions should be: http://fd-doc.sourceforge.net/faq/cgi-bin/viewfaq.cgi?faq=General_Information/277 ...but I could also get you in contact with Brad, a guy who wrote a BIOS for his old Tandy or Sanyo 8086 "PC" which normally only comes with a boot loader and with a special version of MS DOS with "BIOS built into DOS". He can now run FreeDOS on his PC with that BIOS :-). A summary of FAQ item 277: You will need some 40:xx bytes set to values describing your hardware, and some of your BIOS drivers will have to update the values in a useful way in some cases (keyboard / screen). The int 0x11 and 0x12 handlers will have to return the right AX to describe your hardware. If you want serial / parallel port or "nice boot" support, you need the corresponding drivers in BIOS. For real or virtual floppy, int 0x1e has to point to a data structure describing the floppy / drive. Apart from those, you need a few real drivers in the BIOS: - disk: int 0x13 functions 0, 1, 2, 3, 8, more if you want LBA. Other functions can return dummy values. Tools like FORMAT will require more BIOS functions. Function names: reset, status, read, write, geometry. - keyboard: int 0x16 functions 0, 1, 2, also 0x10, 0x11 if want PC AT layout / 102 or more keys instead of 84. Function names: read keyboard buffer, peek keyboard buffer (which is at 40:xx), shift-status (also 40:xx). - screen: int 0x10 function 0x0e "teletype text output", and 2 and 6 if you use the boot menu and 0x11 for SCREEN, more for apps like MODE. Having function 9 is also good. Function names: 0e = teletype, 2 = cursor, 6 = clear / scroll, 9 = ext text output, 11 = font selection / etc. - clock: int 0x1a functions 0 ... 5 if you have a clock. If not, those should at least be dummy functions where the "time" increases each time you ask. You can also compile a custom kernel which is uses the clock less. Function names: get ticks, set ticks, get time, set time, get date, set date. The "set" ones can be dummy. The ticks are "18.2 Hz pulses since midnight". http://source.winehq.org/source/msdos/int1a.c?v=wine20020228 Your clock IRQ should also call int 8 and int 0x1c at ca 18.2 Hz and the int 8 handler should increase the 32bit value at 40:6c at the same frequency. The timer is mostly used for timeouts, ca 10-50 Hz should work. The keyboard driver should call int 0x1b on ctrl-break. Note that many DOS apps, including command.com, can call other BIOS functions as needed. In particular, it is quite likely that having only teletype output will not be enough for more fancy screen output, and that several apps will write directly to the VGA or text framebuffer when they want full screen display output. Keep me updated about your BIOS activities :-). Eric PS: It is enough if your BIOS disk driver only lets DOS access one diskette or harddisk drive, as long as it reports other drives as absent. The drives do not have to be actual diskette or harddisk hardware, as DOS will access the contents only through your BIOS and will not access the disk hardware directly. If your BIOS reports "write protect error" whenever DOS tries to write to disk, things like pipes and temp files will not work, but DOS will still boot. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel