Page 25 of 27

Re: ZX80 Core - new ZX80 motherboards

Posted: Fri May 30, 2014 11:21 pm
by 1024MAK
PokeMon wrote:
1024MAK wrote:/WE for a flash or EEPROM should only be taken low if the computer system it is in can reprogram the chip. This is not something this system can do
Well in that point you are wrong.
It is surely possible to program the EEPROM inboard, I did before while patching the character set for example. ;)
But it doesn't make any sense to connect the /WR input fixed to GND, but can be connected to /WR of CPU.
Sorry, yes the hardware can certainly program an EEPROM. What I meant was that a ZX80 Core needs some extra code to program the EEPROM chip if you want to write a new OS & language to it. The machine code (or compiled code) needed is not very complex. Changing areas of the ROM code that will not affect the current running of the system, like changing the character set are also possible.
The thing to remember, is write operations make the chip unavailable for read operations until the chip has competed the actual write, which takes longer than a SRAM or DRAM chip.

Mark

Re: ZX80 Core - new ZX80 motherboards

Posted: Sat May 31, 2014 2:35 pm
by poglad
OK. I'm now able to start up with the ZX80 image in position 4, and if I then move the switch to position 0 it continues to run. So it's accessing the ROM successfully in position 0. However, if I reset while in position 0, it does not start up successfully in that position. If I hold /WR high while resetting, it resets okay and then I can let go of /WR and it continues just fine. Hmm...

Re: ZX80 Core - new ZX80 motherboards

Posted: Sat May 31, 2014 4:58 pm
by PokeMon
1024MAK wrote:The thing to remember, is write operations make the chip unavailable for read operations until the chip has competed the actual write, which takes longer than a SRAM or DRAM chip.

Mark
Yes - to rewrite the EEPROM you have to do this from RAM, which is easy with a program.
This offers the chance to destroy EEPROM contents at all which kept me from publishing this program for the public.
So this will need a good description, but should come soon with the LED driver.
The problem is, when you reprogram the EEPROM you have to do this in FAST mode with no video output.
So you have to choose the correct page and press a key blind.

Re: ZX80 Core - new ZX80 motherboards

Posted: Sat May 31, 2014 5:00 pm
by PokeMon
poglad wrote:OK. I'm now able to start up with the ZX80 image in position 4, and if I then move the switch to position 0 it continues to run. So it's accessing the ROM successfully in position 0. However, if I reset while in position 0, it does not start up successfully in that position. If I hold /WR high while resetting, it resets okay and then I can let go of /WR and it continues just fine. Hmm...
So does it work with manual power-off in position 0 ?
You maybe have to do the reset longer, maybe you press to short.

Re: ZX80 Core - new ZX80 motherboards

Posted: Sat May 31, 2014 7:12 pm
by poglad
PokeMon wrote:So does it work with manual power-off in position 0 ?
You maybe have to do the reset longer, maybe you press to short.
No, it doesn't. Unless I force /WR high while I'm doing it, and then let go of that once it's started. Otherwise it mainly stays red, with a couple of brief blinks of green before settling on red permanently.

Re: ZX80 Core - new ZX80 motherboards

Posted: Sat May 31, 2014 9:24 pm
by PokeMon
Hmmm - can you measure the resistance between pin 27 of EEPROM and pin 22 of CPU in position 0 ?

Re: ZX80 Core - new ZX80 motherboards

Posted: Sat May 31, 2014 9:27 pm
by poglad
It's 3.28K.

Re: ZX80 Core - new ZX80 motherboards

Posted: Sun Jun 01, 2014 6:26 pm
by PokeMon
Well - this seems to be correct.
I have no idea - you could measure /WR against GND or VCC.
Try to use the bigger EEPROM 28C256. ;)

Re: ZX80 Core - new ZX80 motherboards

Posted: Sun Jun 01, 2014 7:31 pm
by poglad
Yep, I'm not out of ideas yet! But no chance to do it until tomorrow.

Re: ZX80 Core - new ZX80 motherboards

Posted: Wed Jun 11, 2014 10:59 pm
by poglad
I've determined the cause of my final problem.

Here are my steps - using only ZX80 images in each position so that I can change the ROM switch without it crashing.

1. Start in position 4 - ZX80 image, write protected.
2. Boots up successfully.
3. Carefully change switch to position 0 - ZX80 image, no write protection.
4. Freely POKE some values into the ROM area.

Afterwards, put the EEPROM back in the programmer, and do a verify to make sure nothing has changed.

The verify fails - the POKEs affected the ROM contents, even though I didn't follow the protocol for enabling data to be written (i.e. AA to 5555, 55 to 2AAA, A0 to 5555).

From this, I conclude that my 28C256 does not have its software data protection switched on. This, then, is why it becomes corrupted and needs to be reprogrammed if I boot up in any of the writeable switch positions.

The question now is - how on earth am I going to switch on the software data protection? I need to be able to write to 5555 and 2AAA in quick succession, but A14 is controlled by the switch - so in one position I can write to 5555 but not 2AAA, and in the other I can write to 2AAA but not 5555...! My programmer is the GQ-4X and the software is nice but doesn't seem to permit me to send such fine signals to the chip. :roll: