All the flash routines are being moved from the main menu into this new sub menu. I couldn't make the window any taller for all the options
This is the menu for dealing with all the flash erasing and programming. So you just simply select the bank number, and you can only raise or program, and that is it!
The "VALID" text means the header is correct ($602E). If the header is anything else, it will report "ERROR". the program routine will not allow you to program the flash if these bites are backwards, in which case you will need to byte swap the file. Currently you shall be able to download the ROM images and flash them directly without having to byte swap them. Theoretically nobody should ever get "ERROR" in this menu. If the bank is blank, it will say "BLANK FFFF".
Thanks to the EMUTOS guys for adding the version numbers into EMUTOS, we can now read the actual version number. Currently at the time of typing there is no official release which supports this numbering as yet, but if no version number is available, it will just simply state "EMUTOS". basically this will show the versions 9.12 and below (all older versions of EMUTOS) .
If you are not bothered about the technicals, skip reading the below bit
STAT-REG is basically a debugging output more than anything. This register is a little complicated to explain...
xxABCDEF 11111GHI
A = READS ROM_DIS PHYSICAL JUMPER
B = PLD REGISTER OF FLASH SELECT 2 READ ONLY
C = PLD REGISTER OF FLASH SELECT 1 READ ONLY
D = PLD INTERNAL STATUS REGISTER OF ROM_DIS
E = PLD REGISTER OF FLASH SELECT 2 STORED IN NVRAM
F = PLD REGISTER OF FLASH SELECT 1 STORED IN NVRAM
G = ROM_DIS AS STORED IN NVRAM
H = BOOT FLASH BANK SELECT 2
I = BOOT FLASH BANK SELECT 1
x = don't care
The reason for the multiple ROM_DIS registers is because we have a physical jump on the board which can set ROM_DIS HI. also this can be set via software where the value is also stored in NVRAM. Theoretically bits G & D should always be equal.
H & I registers (I am was working on this part of the software now) are the flash bank select registers which I am calling the "BOOT ROM". these are the registers which are stored in NVRAM. so if you select bank 1, this value is set and stored in NVRAM and also restored when you power up your machine.
E & F registers are also flash bank select lines, but these are "temporary" lines which override the "BOOT ROM" registers during programming. as said earlier, there is not enough address space to map the entire ROM banks in full, so a register is used to allow the flash address lines to be changed automatically in the PLD. Whichever bank is selected will be presented in address $E40000, which is also the area used to actually program the flash.
Another way to look at the registers is that the low byte is a mirror of NVRAM 7F register, and the high byte the status of the internal PLD registers.
