Hi Paul,
Paul Edwards wrote:
Resending ... I thought I was subscribed, but apparently I am not.
Okay, including you directly in this reply then.
Sure. Implement a driver for that redirection which behaves as an int14h handler and place the address of its entry point at address 0000:0080. (14h*4)
The method works with any BIOS.
I would like it to work with any OS that uses INT 14H (regardless of how many of those exist), rather than any BIOS.
It works both with any BIOS (int 14h provider) and any OS (that uses int 14h), so is a very general approach.
For now I am happy if it only works with SeaBIOS, and I will simply buy a PC that allows me to flash SeaBIOS onto it.
PC Engines apu hardware comes with coreboot and SeaBIOS, but may or may not fit your application.
If suitable for your hardware you could do all of it in an option ROM.
I'm not familiar with this terminology. Is this something that goes into SeaBIOS? I'm expecting it to be something that is set up (and even configured by the end user in the BIOS) before my OS is even loaded.
Think of an option ROM as a modular expansion to any BIOS.
Any BIOS discovers all option ROMs in a system and then runs them one at a time - indeed late-ish before loading the OS.
There's really no limit to what an option ROM can do to the system. Some are interactive, others aren't, others still are completely invisible.
Some option ROMs you may have come across could be a PXE ROM on a network card, a RAID configuration ROM on a SCSI adapter and the VGA BIOS option ROM on a graphics card.
Here's an open source option ROM: https://github.com/alson/sgabios
It's x86 real mode assembly; the typical BIOS environment.
That code does also interact with int 14h, but pretty much does the opposite of what you want; SGABIOS provides a virtual graphics adapter on a serial port, while you want to provide a virtual serial port doing something specific.
A virtual graphics adapter is fairly complicated so I guess that your end result will be much simpler than SGABIOS is.
Hope this helps
//Peter