Hardwarefrage

ZX-Team Forum
Antworten
Benutzeravatar
Jens
User
Beiträge: 1023
Registriert: 23.08.2005, 13:31
Wohnort: D-31582 Nienburg/Weser
Kontaktdaten:

Hardwarefrage

Beitrag von Jens » 13.08.2017, 20:54

Hallo User!

Ich habe beim EightyOne in den Advanced Settings einen Punkt endeckt, den ich nicht verstehe.

Welcher Hardware-Fix ist da gemeint??

HarewareFix.jpg
HarewareFix.jpg (43.15 KiB) 246 mal betrachtet

Gruß und Dank
Jens
Wenn du tot bist, dann merkst du das selber nicht. Es ist nur schwer für die anderen. Wenn du blöd bist, dann ist es genauso.
Und: uıɐbɐ ʎɐqǝ uo pɹɐoqʎǝʞ ɐ ʎnq ɹǝʌǝ ɹǝʌǝu ןןıʍ ı

Benutzeravatar
tofro
User
Beiträge: 754
Registriert: 14.06.2012, 16:45

Re: Hardwarefrage

Beitrag von tofro » 13.08.2017, 22:14

Wie fixed man einen Firmware-Bug, den man schon in Hunderte maskenprogrammierte ROMs gebacken hat?

Hier ist das schön erklärt (http://www.fruitcake.plus.com/Sinclair/ ... bility.htm):
Sinclair ZX81 Edition 1 ROM Hardware Fix

The ZX81 was released with two editions of its ROM. The first edition had an infamous bug that resulted in the SQR 0.25 yielding a result of 1.3591409 instead of 0.5. The bug was caused by 3 unnecessary instructions that introduced corruption into the computed result. Rather than throw away all ROMs that had been manufactured, Sinclair crafted a small hardware board that was soldered across the Z80 CPU. It intercepted the execution of one of the erroneous instructions and changed it such that the instructions no longer had an effect on the floating point calculation. Due to the manner in which the hardware board intercepts the instruction, it will also intercept and override an instruction fetch at the corresponding location within a ROM cartridge. This places constraints on the programs that can be run from a ROM cartridge when plugged into a ZX81 fitted with the hardware fix board.
Das Issue 2 ROM braucht den Fix nicht (oder besser gesagt, sollte ihn nicht bekommen, weil es damit nicht funktioniert)

Tobias
"On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' ... I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: Hardwarefrage

Beitrag von PokeMon » 13.08.2017, 23:12

Über den Sinn der Emulation in diesem Punkt kann man sich vortrefflich streiten, da man den Emulator einfach mit dem korrigierten ROM starten kann. Da keine Fehlfunktion der Hardware bekannt ist, mutet das eher akademisch an ...

Man könnte auch noch Pixel Fehler simulieren, wenn die ULA heiss wird. :roll:
Zuletzt geändert von PokeMon am 13.08.2017, 23:13, insgesamt 1-mal geändert.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
Jens
User
Beiträge: 1023
Registriert: 23.08.2005, 13:31
Wohnort: D-31582 Nienburg/Weser
Kontaktdaten:

Re: Hardwarefrage

Beitrag von Jens » 13.08.2017, 23:13

Ich danke Dir für die Antwort.

Ich habe bisher noch kein ROM mit dem Bug bei mir entdeckt (habe gerade alle ROMs durchgetestet).

Es wäre mal interessant, solch einen Hardware-Fix zu sehen.

Gruß
Jens
Wenn du tot bist, dann merkst du das selber nicht. Es ist nur schwer für die anderen. Wenn du blöd bist, dann ist es genauso.
Und: uıɐbɐ ʎɐqǝ uo pɹɐoqʎǝʞ ɐ ʎnq ɹǝʌǝ ɹǝʌǝu ןןıʍ ı

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: Hardwarefrage

Beitrag von PokeMon » 13.08.2017, 23:19

Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
tofro
User
Beiträge: 754
Registriert: 14.06.2012, 16:45

Re: Hardwarefrage

Beitrag von tofro » 14.08.2017, 00:13

PokeMon hat geschrieben:
13.08.2017, 23:19
Schaust Du hier ...
http://www.binarydinosaurs.co.uk/Museum ... /index.php
Da steht "extra-ROMs on top of the ROM" - Und es sieht gar nicht danach aus - Eher nach ein bißchen TTL-Magie, die wohl an bestimmten Addressen ein "NOP injiziert", also die Datenleitungen auf 0 zieht.

Tobias
"On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' ... I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: Hardwarefrage

Beitrag von PokeMon » 14.08.2017, 00:51

Genau das ist die Fehlerkorrektur von Sinclair für die ISS1 mit dem Fehler im ROM.
Wie vermutlich beim Spectrum auch arbeiten die FP Routinen mit 5 Byte Werten und auch der Kalkulator ist so aufgebaut. Da waren einfach nur ein, zwei oder drei Bytes falsch, die vermutlich mit NOP korrigiert werden konnten. Genauere Schaltung habe ich auch nicht, wird sich aber sicher finden lassen. Es gibt etliche Sammler, die solche Modelle mit Stolz im Programm haben.

Hier findest Du ein Exemplar auf spanisch, auf Pinterest findest Du auch jede Menge Fotos mit diesem Mod.
https://zxeltargui.blogspot.de/p/zx81.html

Die Kommentare dazu sind das, was die Sammler häufig verstanden haben wie das funktioniert (wahrscheinlich gar nicht). Die Platine sitzt nicht auf dem ROM und auch nicht auf der ULA wie oft falsch behauptet wird, sie gehört auf die CPU. Der Grund ist, dass der Datenbus hier entkoppelt ist über Widerstände und sich die Signale am Datenbus leichter übersteuern lassen.

Möglicherweise nutzen sie sogar den Mechanismus in der ULA, der die NOPs für die Videodarstellung erzeugt. Dazu muss man dann eigentlich nur D6 manipulieren, A15 und M1. Die Signale der CPU lassen sich recht leicht übersteuern. Letzteres kann ich aber nicht mit Gewissheit sagen, ich selbst übersteuere beim ZXblast auch Signale der CPU für einen kurzen Zeitraum um die ULA dazu zu überreden, Code im Bereich $8000-$BFFF auszuführen was normalerweise die Videoschaltung auf den Plan ruft.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
PokeMon
User
Beiträge: 4377
Registriert: 31.08.2011, 23:41

Re: Hardwarefrage

Beitrag von PokeMon » 14.08.2017, 01:57

Die einzige konkrete Beschreibung konnte ich jetzt in Ian Logan's Buch "Understanding your ZX81 ROM" finden.
Demnach sind 3 Bytes im Kalkulator an Adresse $1733-1735 auf Null zu setzen resp. durch NOPs.
Bildschirmfoto 2017-08-14 um 01.53.25.png
Bildschirmfoto 2017-08-14 um 01.53.25.png (90.65 KiB) 201 mal betrachtet
Und um die Sache vollständig zu machen, im Sinclair ZX81 ROM Disassembly (Dr. Ian Logan) steht, dass Sinclair wohl als Hardware Fix nicht alle 3 Bytes gelöscht hat sondern nur das letzte und dieses offenbar auch nur von LD H,A ($67) auf DAA ($27) geändert hat. Insofern musste auf dieser (einzelnen) Adresse nur ein einziges Bit geändert werden (D6 auf 0) was deutlich weniger Logik braucht. Im Grunde kommt man mit 12 Bits aus weil der DAA Befehl auch zweimal ausgeführt werden kann - es ist lediglich das LD H,A zu vermeiden. Also einen 12 Bit Adressdecoder, der dann Bit 6 auf 0 setzt.
Bildschirmfoto 2017-08-14 um 02.03.54.png
Bildschirmfoto 2017-08-14 um 02.03.54.png (47.57 KiB) 201 mal betrachtet
Siehe auch:
https://k1.spdns.de/Vintage/Sinclair/80 ... m#FP%20Bug
Wer seinen Computer ehrt, lebt nicht verkehrt.

Antworten