Hallo,
ZitatOriginal von EOR#64
Meine Idee: Einen Track einer Disk komplett löschen und dann mit Nullen beschreiben (ohne Sync) und dann wieder einlesen. Nicht nur, dass die Position ab der gelesen wird relativ zufällig wäre (durch die Gleichlaufschwankungen), sondern auch das Ergebniss welches die Hardware liefert ist zufällig (dazu: ohne Sync kein Framing).
Nun ja, die gelesene Position ist eventuell gar incht so zufällig, wie man denkt - zumindest, wenn das gleiche Programm zum Schreiben des Null-Tracks genutzt wird wie zum Lesen.
Framing erfolgt in der 1541 auch, wenn kein SYNC vorhanden ist. Das Framing macht nur nicht allzu viel Sinn.
Die Daten, die eine 1540/erste 1541 einliest, sind so zufällig gar nicht. Das hat mit dem diskreten Aufbau (Shift-Register) zu tun.
Spätere 1541 sowie die 1570/1571 haben da andere Chips und erzeugen andere, aber auch nicht wirklich "besser" zufällige Folgen.
Zitat
Diesen Wert kann man dann noch zusätzlich mit dem SID-Rauschen, einem Timer-Wert und dem Rasterstrahl verknüpfen. Mit dem Ergebniss wird der Timer dann initialisiert für die nächste Runde. Zudem könnte dieser Wert noch als Zähler für eine Verzögerungsschleife genutzt werden, erst dann wird der nächste Wert von Disk "gelesen".
Das SID-Rauschen könnte eventuell wirklich zufällig sein - ich weiß es nicht. Timer- sowie Rasterstrahl hingegen klingen für mich sehr stark nach "gar nicht so zufällig", Die beiden Werte stehen sogar in direktem Zusammenhang zueinander (und zu der Programmausführung).
Solange nicht das Drücken einer Taste durch den Benutzer hinzukommt, sehe ich hier keine so große Zufälligkeit.
Auch die Verzögerungsschleife halte ich für ungünstig.
Das einzige, was du erreichst: Die mathematische Analyse, ob dieser Generator gut oder schlecht ist, wird deutlich erschwert.
Ich empfehle dir das oben von mir zitierte Buch von Don E. Knuth, insbesondere in Bezug auf seinen "Super-Duper-Zufallszahlengenerator", als Lektüre. Sein Ansatz war ähnlich wie deiner, und er ist *sehr* böse auf die Schnute gefallen.
Gruß,
- Spiro.