In an attempt to get back into gear and get this more "production" quality I'm going to keep making small updates. Do not feel compelled to run every one ... Eventually Jeff gets to review it and then I'll share the source code.
736K! The BIOS will still count to 640K, but because it is a high quality product I know there is more on board. The jrIDE BIOS will set the amount of expansion memory so that a full 736K is reported. The video buffer will still consume some just as it always has, but now you have another 96KB to play with.
If there is no hard drive or floppy diskette found you can get to BASIC by using the menu. (This previously did not work.) In the future I will make that automatic.
Right now there are two known bugs I'm going to work on, both related to the boot menu. Selecting BASIC doesn't work. And it won't go to BASIC automatically if nothing else is found. Look for those fixes next time.
Mike, how to you get the BIOS to the eprom short of burning a new chip? Is there a way to flash the eprom straight from the Jr? I don't have a burner unfortunately...
Got it. It took me a few tries before I figured that I needed a 0000 offset.
The command sequence then is:
FLASH2 ERASE
FLASH2 WRITE 0000 OPROM.BIN
then do a cold boot
I almost forgot to save the FLASH2.EXE and OPROM.BIN files to floppy before erasing the BIOS. This would have been a thorny problem as I would not have had any easy way to run these files if they were residing on the hard drive after I erased the BIOS!
Can the DOS 5.0 patch be done in the BIOS? Does it impact other DOS versions or any downside to doing it even if I booted DOS 2.1 for example?
I only say that because my patched 5.0 disk doesn't boot on other machines, and it would be nice to have it only applied on the machine where it needs to be done on.
(augmenting the patch to check the machine type would also not be difficult if I have to continue doing it on the diskette)
The DOS 5 patch (and DOS 6.x, ...) tells the machine to lie about how much contiguous memory is available for DOS. It does it by setting the one BIOS memory area that holds the amount of contiguous memory is available for DOS to the same value as the total expansion memory.
Making the BIOS do that would let you boot an unmodified DOS 5 on the machine, assuming you still had the stacks 0,0 line in config sys. But you still have that hole where the video buffer is at 112K, so the lying part makes me uncomfortable. You still need a bootable device driver like jrConfig to move the video memory, and that makes the diskette not bootable on a standard machine too.
The patch really belongs in the boot sector of any diskette or media you are going to boot ... The Racore expansion units were able to do it in hardware, but they also had the code to move (and neuter) the video memory. If the BIOS were to move the video memory then it would be acceptable to do both in hardware, but moving the video memory also potentially limits the machine unless we just make the video buffer a fixed 32K. (It could be grown much bigger than that, but I doubt anything ever set more than 64K.)
If booting from the floppy and booting from the hard drive fails it goes to BASIC (like a normal machine)
Using the boot menu and telling it to go to BASIC actually works regardless of whether the hard drive is found or not.
The POST display gets turned off as soon as the jrIDE BIOS starts running. There is no need to have it on and it's just generating heat.
Some cartridge games (Demon Attack) are going to run as soon as the ROM area scan finds the cartridge. Other cartridges (BASIC, Mine Shaft, etc.) can be selected now by telling the machine to go to ROM BASIC. (Those cartridges hook int 18 so instead of going to ROM BASIC they take over instead.) This ability was previously broken ...