ZX81 ROMs 3 types?
Re: ZX81 ROMs 3 types?
Just a little bit more to add.
I examined my ROM's made by Mostek and they show as the 649 type.
After looking at Marks examination I remembered that with one version of the ROM if a PAUSE statement was used in FAST mode then whilst it would appear to work it would also wipe out your program unless POKE 16437,255 followed the PAUSE(as mentioned in ZX81 manual 1982 reprint). I always imagined this to be the bugged early ROM but after some more faffing It appears that it is the 622 ROM that exhibits this fault not the bugged ROM and obviously,by correction, not the latter 649 ROM. This PAUSE program loss only seems to work on a real 81 not in Eighty One I've found so no point testing it in this emulator.
This leads me to believe that this is probably the only difference between 622 and 649 and that Sinclair just quietly rectified the fault for the latter ROM then put it in the last 81's before discontinuation.
I also checked an issue 3 I have and that has the SINCLAIR RESEARCH 649 ROM fitted.
Although the difference in code between the two is tiny the effect is large enough to be disruptive and we now can say with certainty that three ROMs do exist for the ZX81 and if only for historical reasons it is worth noting.
(My God I obviously have too much time on my hands and sod this lockdown!!)
More seriously thanks Lardo for bringing this up as I felt useful if only for a day.
I examined my ROM's made by Mostek and they show as the 649 type.
After looking at Marks examination I remembered that with one version of the ROM if a PAUSE statement was used in FAST mode then whilst it would appear to work it would also wipe out your program unless POKE 16437,255 followed the PAUSE(as mentioned in ZX81 manual 1982 reprint). I always imagined this to be the bugged early ROM but after some more faffing It appears that it is the 622 ROM that exhibits this fault not the bugged ROM and obviously,by correction, not the latter 649 ROM. This PAUSE program loss only seems to work on a real 81 not in Eighty One I've found so no point testing it in this emulator.
This leads me to believe that this is probably the only difference between 622 and 649 and that Sinclair just quietly rectified the fault for the latter ROM then put it in the last 81's before discontinuation.
I also checked an issue 3 I have and that has the SINCLAIR RESEARCH 649 ROM fitted.
Although the difference in code between the two is tiny the effect is large enough to be disruptive and we now can say with certainty that three ROMs do exist for the ZX81 and if only for historical reasons it is worth noting.
(My God I obviously have too much time on my hands and sod this lockdown!!)
More seriously thanks Lardo for bringing this up as I felt useful if only for a day.
- 1024MAK
- Posts: 5153
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: ZX81 ROMs 3 types?
Code: Select all
649ROM.rom & zx81 version 2 'improved' rom (Sinclair).rom
=========================================================
CDA70E CALL L0EA7 ; routine FIND-INT
CDE702 CALL L02E7 ; routine SET-FAST
60 LD H,B ;
69 LD L,C ;
CD2D02 CALL L022D ; routine DISPLAY-P
***address 0F3D***
FD3635FF LD (IY+$35),$FF ; sv FRAMES_hi
CD0702 CALL L0207 ; routine SLOW/FAST
1805 JR L0F4B ; routine DEBOUNCE
Code: Select all
622ROM.rom
==========================================================
***0F32 PAUSE***
CDA70E CALL 0EA7,FIND-INT.
CDE702 CALL 02E7,SET-FAST
60 LD H,B
69 LD L,C
CD2D02 CALL 022D,DISPLAY-P
***address 0F3D***
CD0702 CALL 0207,SLOW/FAST
FD3635FF LD (IY+$35),$FF ;(FRAMES-hi.),+FF
1805 JR 0F4B,D-BOUNCE
See also this web page
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
Re: ZX81 ROMs 3 types?
Having looked at that page in the link you provided,Mark I'm confused as it seems to imply only two ROMs.
It states that the floating point bug and the pause command were altered at the same time plus various other changes yet looking at the ROM contents it's clear that only a few bytes were changed between 622 and 649 and going by the chronology the 622 cured the maths problem INTRODUCED the pause bug which was cured in the 649 ROM.
Also the three bytes deleted for the maths bug was initially done in the 622 and carried over to 649 not specifically for the 649.
The author seems to imply that all the changes listed were done over two ROM's not three.
The maths bug was cured in 622 and the pause bug in 649 and all the other things listed on the web page I would suggest were the changes between 550,plus 622 and 649 combined, the author seemingly morphing the two later ROM's into one entity as it were.
Sorry if this sounds silly as you know I'm not the best at explanations.
It states that the floating point bug and the pause command were altered at the same time plus various other changes yet looking at the ROM contents it's clear that only a few bytes were changed between 622 and 649 and going by the chronology the 622 cured the maths problem INTRODUCED the pause bug which was cured in the 649 ROM.
Also the three bytes deleted for the maths bug was initially done in the 622 and carried over to 649 not specifically for the 649.
The author seems to imply that all the changes listed were done over two ROM's not three.
The maths bug was cured in 622 and the pause bug in 649 and all the other things listed on the web page I would suggest were the changes between 550,plus 622 and 649 combined, the author seemingly morphing the two later ROM's into one entity as it were.
Sorry if this sounds silly as you know I'm not the best at explanations.
-
- Posts: 2183
- Joined: Sat Nov 26, 2016 2:42 am
Re: ZX81 ROMs 3 types?
Makes sense to me! It does suggest that the author was not aware of the three types?
ZX80
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
- 1024MAK
- Posts: 5153
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: ZX81 ROMs 3 types?
I provided the link more because of the comparison between the original ROM (the 550, the “unimproved” ROM, with the calculation error that results in the incorrect result for SQR 0.25) and the 649 (the “improved”) ROM. Specifically the PAUSE routine.Moggy wrote: ↑Wed Jan 20, 2021 11:42 am Having looked at that page in the link you provided,Mark I'm confused as it seems to imply only two ROMs.
It states that the floating point bug and the pause command were altered at the same time plus various other changes yet looking at the ROM contents it's clear that only a few bytes were changed between 622 and 649 and going by the chronology the 622 cured the maths problem INTRODUCED the pause bug which was cured in the 649 ROM.
Also the three bytes deleted for the maths bug was initially done in the 622 and carried over to 649 not specifically for the 649.
The author seems to imply that all the changes listed were done over two ROM's not three.
The maths bug was cured in 622 and the pause bug in 649 and all the other things listed on the web page I would suggest were the changes between 550,plus 622 and 649 combined, the author seemingly morphing the two later ROM's into one entity as it were.
My conclusion this:
We know that the original ZX81 ROM (the 550, the “unimproved” ROM) had numerous bugs.
First Sinclair used the dead cockroach to “fix” the calculation error, and continued to use up stocks of the now known to be buggy ROM chips.
Then the 622 ROM was produced, which corrected some of the bugs, including incorporating the fix to the calculation code. But it appears that despite trying to the fix the PAUSE routine, it still had a problem.
So later on, the 649 ROM was produced that “fixed” the PAUSE routine. It did this by swapping two machine code instructions around.
And yes, the author of the linked to web page obviously was not aware of the 622 ROM. They (as did we until this week) were not aware that the 622 ROM existed!
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
Re: ZX81 ROMs 3 types?
QUOTE.
"Then the 622 ROM was produced, which corrected some of the bugs, including incorporating the fix to the calculation code. But it appears that despite trying to the fix the PAUSE routine, it still had a problem."
--------------------------------------------------------------------------------------------------------------------------------------------------
Except the first ROM (550) doesn't have a pause problem(I have one and checked it) , it was 622 that INTRODUCED the pause bug not try to fix it, after curing the maths bug.
The pause error was rectified in 649 and it would seem 649 was issued to cure that problem only is how I read it as no other alteration of the code was done except mirroring the bytes concerning the pause routine.
My thinking is.
ROM 550 first ROM with maths bugs and a few other small problems as mentioned on the linked website.
ROM 622 second ROM cured the above but introduced a faulty pause routine when used in fast mode.(it does I've tried it)
ROM 649 ROM with the few bytes concerning pause reversed and no other code alteration other than that between it and 622.
looking at the section on the linked web page..
https://k1.spdns.de/Vintage/Sinclair/80 ... rences.htm
"(2) Rewritten PAUSE routine to ensure bit 15 of FRAMES set"
Looking at the the code for pause in the "unimproved/improved" sections it implies "unimproved" as 622 and "improved" as 649 yet earlier in the narrative all the faults of ROM 550 are being lumped into the mix as well which suggests the author must have been aware of all three ROMs but somehow regards 622 and 649 as just the one entity.
Note to self beat Lardo with a very big stick as my now brain hurts
"Then the 622 ROM was produced, which corrected some of the bugs, including incorporating the fix to the calculation code. But it appears that despite trying to the fix the PAUSE routine, it still had a problem."
--------------------------------------------------------------------------------------------------------------------------------------------------
Except the first ROM (550) doesn't have a pause problem(I have one and checked it) , it was 622 that INTRODUCED the pause bug not try to fix it, after curing the maths bug.
The pause error was rectified in 649 and it would seem 649 was issued to cure that problem only is how I read it as no other alteration of the code was done except mirroring the bytes concerning the pause routine.
My thinking is.
ROM 550 first ROM with maths bugs and a few other small problems as mentioned on the linked website.
ROM 622 second ROM cured the above but introduced a faulty pause routine when used in fast mode.(it does I've tried it)
ROM 649 ROM with the few bytes concerning pause reversed and no other code alteration other than that between it and 622.
looking at the section on the linked web page..
https://k1.spdns.de/Vintage/Sinclair/80 ... rences.htm
"(2) Rewritten PAUSE routine to ensure bit 15 of FRAMES set"
Looking at the the code for pause in the "unimproved/improved" sections it implies "unimproved" as 622 and "improved" as 649 yet earlier in the narrative all the faults of ROM 550 are being lumped into the mix as well which suggests the author must have been aware of all three ROMs but somehow regards 622 and 649 as just the one entity.
Note to self beat Lardo with a very big stick as my now brain hurts
-
- Posts: 2183
- Joined: Sat Nov 26, 2016 2:42 am
Re: ZX81 ROMs 3 types?
Regardless of this turn of events regarding myself and a big stick I think this was interesting and worthwhile!
I am however thankful for the limited travel opportunities afforded to Moggy due to the current lock down.
ZX80
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
Re: ZX81 ROMs 3 types?
Regarding travel opportunities, animals are not housebound so I will teach my attack cat(Keith) how to use a catnav and point him in a Lardo-ish direction!Lardo Boffin wrote: ↑Wed Jan 20, 2021 6:28 pmRegardless of this turn of events regarding myself and a big stick I think this was interesting and worthwhile!
I am however thankful for the limited travel opportunities afforded to Moggy due to the current lock down.
Having said that yes I agree worthwhile and a bit of fun and something to while away the boring hours of lockdown.
One last thing to ponder.(and ponder only as I'm now on a bottle of scotch a day)
I mentioned in a previous post that with the 622 the pause was indeed borked in fast mode,now here's the thing, just for giggles I swapped out the standard ULA for Andy's re-make as I recalled how it altered the way the H4th ROM behaves in reference to inverse screen mode and wondered what effect it would have on the three ROMs.
Guess what? I can't get the 622 to lose the program in fast mode like I can with the original ULA.
AAAAGGGHHHH!!
-
- Posts: 2183
- Joined: Sat Nov 26, 2016 2:42 am
Re: ZX81 ROMs 3 types?
Maybe there are more ULA types than we thought?
Says Lardo running away.
Says Lardo running away.
ZX80
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
- 1024MAK
- Posts: 5153
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: ZX81 ROMs 3 types. Confirmed!
There are FOUR Sinclair logic chips!
Mark
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.