A couple of days ago I received an email from Koen van Hartingsveld from Sunrise. He reports me a problem with the Denyonet TCP/IP BIOS that seems to appear only on MSX2 machines (I had made tests on my Turbo-R only, in which everything works fine).
Basically, the problem consists on the computer hanging as soon as the floppy disk drive is accessed. But I better paste here the email with all the details:
Hi Nestor,
At Stichting Sunrise were at the stage of testing a series of produced DenYoNet network interfaces, as made by Dennis and Jos. Now I'm getting problems when booting through the DenYoNet Bios (DENYOTCP.ROM) as downloaded from your website.
When I flash the ROM with DENYOTCP.ROM (version 0.4) and reset the MSX (an NMS8280 with internal DOS-kernel 2.24) the MSX hangs after this reset. Disabling the internal DOS2 kernel (making it a DOS1 machine) results in continuous resetting of the MSX. The only way out is to hold the <ESC> key while booting to skip the Bios initially, and then enter CALL DENYOINIT. Then I can test PING and use HGET to transfer a file from my local webserver to the floppy disk of the MSX.
From that moment on everything seems to work fine (both in DOS1 and DOS2.24) except that under DOS2.24 the ping command can't properly be interrupted anymore (if I do so by CTRL-C or just pressing any other key than <RETURN>, I get an uninterruptable repetition of DOS errors that are unreadable since the error message is build-up from graphics-characters). In DOS1 ping can be stopped properly, but of course I can't use the HGET there, as documented.
The same issues are observed with Bios version 0.3 (which I received from Rob Hiep). I also tried different machines (DOS1 only) and get the same problems. Also Rob tested on his machines (DOS1 only) and gets reboots all the time.
What does work (both with Rob's machines and with mine) is to add a CF interface to the system, which includes DOS-kernel 2.20. Now, the MSX can boot propely through the DenYoNet Bios and enables me to proceed normally, although I still get the ping-problem.
What I noticed is that even when I boot with a CF interface, the MSX hangs as soon as I try to access a floppy disk station. It's likely that this is the same effect as when I boot without CF, because then the MSX automatically tries to access the first floppy station (and subsequently hangs, as described above).
So I guess it's not a DOS2 kernel version issue, but more a generally floppy disk access problem, which happenes when there is no CF or other HD/CF/SD interface cartridge inserted. Notice though that when I use the <ESC>, CALL DENYOINIT method, I can access the floppy drives without problems.
Do you have any idea what I do wrong, or what could be the problem. I don't have much documentation about this.
By the way, the hardware seems allright. I run a hardware diagnotic tool from Dennis Koller, and that indicates that everything (including the Flash-ROM is OK). In addition I get the same Bios issues with an original DenYoNet, as bought from Dennis quit a long time ago.
Hope to hear from you soon.
Yesterday I found a Philips 8235 somewhere in my house (I don't even remember where it came from) and I have reproduced the crash problem, that is:
- Booting with Denyonet alone causes the computer to show the BIOS welcome message, then the computer reboots. This repeats indefinitely.
- Booting with Denyonet and a CF reader causes the computer to crash as soon as the floppy disk drive is accessed.
- When booting with ESC pressed and then executing CALL DENYOINIT, everything works fine.
I don't know what can be wrong and it is difficult for me to get time to debug, so I ask here: could someone take a look at the BIOS code and suggest what can be wrong? The BIOS source code is here:
konamiman.com/msx/denyonet/source/denyotcp.asm
I think that the source of the problems may be the hooks patching procedure, I patch the extended BIOS hook and the timer interrupt hook. However I sent to Koen modified versions of the BIOS with the hooks disabled (one hook at a time), and he reports me that the problem persist :-?
So please take a look at the code and tell me if you find something strange. The sooner the problem is solved, the sooner we will be able to enjoy our Denyonets! :)