ZX80 Core - new ZX80 motherboards

Any discussions related to the creation of new hardware or software for the ZX80 or ZX81
User avatar
1024MAK
Posts: 2574
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: ZX80 Core - new ZX80 motherboards

Post by 1024MAK » Fri May 30, 2014 11:21 pm

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

poglad
Posts: 133
Joined: Mon Mar 24, 2014 3:11 pm
Location: Aberdeen, Scotland

Re: ZX80 Core - new ZX80 motherboards

Post by poglad » Sat May 31, 2014 2:35 pm

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...

User avatar
PokeMon
Posts: 2225
Joined: Sat Sep 17, 2011 6:48 pm

Re: ZX80 Core - new ZX80 motherboards

Post by PokeMon » Sat May 31, 2014 4:58 pm

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.

User avatar
PokeMon
Posts: 2225
Joined: Sat Sep 17, 2011 6:48 pm

Re: ZX80 Core - new ZX80 motherboards

Post by PokeMon » Sat May 31, 2014 5:00 pm

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.

poglad
Posts: 133
Joined: Mon Mar 24, 2014 3:11 pm
Location: Aberdeen, Scotland

Re: ZX80 Core - new ZX80 motherboards

Post by poglad » Sat May 31, 2014 7:12 pm

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.

User avatar
PokeMon
Posts: 2225
Joined: Sat Sep 17, 2011 6:48 pm

Re: ZX80 Core - new ZX80 motherboards

Post by PokeMon » Sat May 31, 2014 9:24 pm

Hmmm - can you measure the resistance between pin 27 of EEPROM and pin 22 of CPU in position 0 ?

poglad
Posts: 133
Joined: Mon Mar 24, 2014 3:11 pm
Location: Aberdeen, Scotland

Re: ZX80 Core - new ZX80 motherboards

Post by poglad » Sat May 31, 2014 9:27 pm

It's 3.28K.

User avatar
PokeMon
Posts: 2225
Joined: Sat Sep 17, 2011 6:48 pm

Re: ZX80 Core - new ZX80 motherboards

Post by PokeMon » Sun Jun 01, 2014 6:26 pm

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. ;)

poglad
Posts: 133
Joined: Mon Mar 24, 2014 3:11 pm
Location: Aberdeen, Scotland

Re: ZX80 Core - new ZX80 motherboards

Post by poglad » Sun Jun 01, 2014 7:31 pm

Yep, I'm not out of ideas yet! But no chance to do it until tomorrow.

poglad
Posts: 133
Joined: Mon Mar 24, 2014 3:11 pm
Location: Aberdeen, Scotland

Re: ZX80 Core - new ZX80 motherboards

Post by poglad » Wed Jun 11, 2014 10:59 pm

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:

Post Reply