[..]If we can emulate a pointing device with some software on a pc you can emulate the CD-i modem so we can use our CD-online web browser to surf on the internet again [..]
There is no need to reprogram the CD-i BIOS; direct access to the serial port is fully specified by the Green Book and supported by nearly all CD-i Players (the only exceptions I know of are the Sony players and one or two other oddball players).
Your program needs to find the path name to the serial port via the "CSD" file (it's usually /t2 but not always), but after that you can use the standard OS-9 i/o system calls to access the port (open/close/read/write/setstat/getstat).
See my CD-i Stub sources, available here, for sample assembly code to open the serial port; the relevant files are stubcsd.s and stubscf.s (SCF is the Serial Communications Filemanager from OS9).
If you have a full "CD-i null-modem cable", enough signals are connected to allow the PC to simulate the modem.
What you would need to do on the PC side is the following:
- Wait for the ID byte request (RTS low)
- Send the modem ID bytes (it's in the 605 technical manual)
- Act as if you're a modem
![Smile :-)](./images/smilies/icon_smile.gif)
The third part is the most complex one, of course; you'd need to interpret the appropriate "AT" commands and do something with the actual modem data. You also need to send the ID byte quickly; this may be a bit tricky because the response time is quite short.
There are several ways to handle the actual modem data, which should be in SLIP (Serial Line IP) or PPP (Point-to-Point Protocol) format; the simplest one is to just forward to a serial SLIP/PPP port on a router (which could be another PC running Linux). The perfect but complex way is to decode the IP packets and then perform address translation (NAT) so that the packets can be transmitted on the PC's own Internet link, handling the reverse packets as well. I don't really know if you can do the latter in a user-mode Windows application, though...
Anybody want to take a stab at this? Its mostly low-level serial port and Internet programming, not really very hard but somewhat complex...