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

Reply via email to