Suspektes Verhalten im Programm- PET2001

  • Juhu Foristen!


    Wie Einige hier wissen, restauriere ich gerade einen 2001 von Berti , dieser ist nun soweit auch annähernd fertig.

    Allerdings zeigt er ein Verhalten, welches ich so nicht kenne:

    In meinem Ringpuffer-Spiel gibt es eine Basiczeile, welche einen LEFT$-Befehl enthält.

    PC$(PC)=LEFT$(PC$(PC),NZ)

    Wenn nun NZ den Wert "0" hat, bekomme ich auf diesem 2001er PET einen "ILLEGAL QUANTITY ERROR".

    Wohlgemerkt- auf allen anderen Rechnern (mein 2001 mit dem neueren Mainboard, der 3032/4032/etc...) läuft es einwandfrei, wenn NZ null ist- habe das gleiche Programm ja auch dort getestet.

    Ändere ich NZ auf "1", läuft es einwandfrei- BIS der Zufallszahlengenerator benutzt wird:

    Ich habe rausgefunden, dass der Aufruf von RND(0) immer einen gleichen Wert zurückgibt (habe ihn mir natürlich NICHT gemerkt, ich Held...).

    Aber es ist immer eine "feste" Zahl, sie ändert sich nie. Somit kann das Spiel natürlich nicht laufen.

    Auch hier: Ändere ich RND(0) in RND(1), läuft alles einwandfrei, es werden Zufallszahlen generiert.


    Jetzt ist meine Frage- liegt dies an diesem speziellen Mainboard im Rechner, oder ist etwas defekt?

    So läuft alles, was ich bislang testen konnte, einwandfrei auf diesem Rechner- allerdings hab ich noch keine Speichertestprogramme oder ähnliches geladen.

    Ringpuffer belegt allerdings annähernd die kompletten 8k des Speichers- somit glaube ich hier nicht an einen RAM-Fehler (hat ja mit RND(0) oder der nicht akzeptierten "0" bei LEFT$ kaum was zu tun?).

    Der Timer des Rechners läuft auch, TI und TI$ zählen brav die Zeit (weil ich irgendwo gelesen hatte, dass beim 64ger wohl der Baustein auch für die Zufallszahlen zuständig sein soll).


    Zusammenfassend kann ich sagen:

    Ändert man im Ringpuffer-Spiel die beiden oben genannten Probleme, läuft es einwandfrei.


    Ich bekomme diese Einschaltmeldung:


    ...und es handelt sich um diese Mainboard-Revision:


    Hinzugefügt wurde damals wohl noch eine Speichererweiterung auf insgesamt 32k, welche auch einwandfrei funktioniert (soweit ich testen konnte).

    Egal, ob diese angesteckt ist, oder nicht- der "Fehler" (sollte es denn überhaupt einer sein) bleibt gleich:


    Vielleicht weiß jemand von euch, ob ein Defekt vorliegt- oder ob es einfach bei diesem Modell so war?


    Viele Grüsse und DANKE!

    Matthias

  • was würde man denn von Left(xxx,0) erwarten? Einen Leerstring?

    Und was ist PC$(PC)?

    Dies müsste doch irrelevant sein, da es auf den anderen Rechnern funktioniert? ;)

    PC$(PC) enthält den Namen des Spielers, bei NZ=0 ist der String dann leer (weil man mit INST DEL löschen können soll).

    Für RND(0) nutzt das Basic die VIA 1 Timer A und Timer B (laut Wiki) - könnte darauf deuten dass die VIA defekt ist.

    Ahhh, ok! Dann kann trotz zählender TI-Variable ein Fehler dort vorliegen?

    Die VIA kann ich ja mal wechseln, falls da eine von den anderen Rechnern passt (wird wohl so sein). :)

  • Timer kann man auch prima testen, die machen einen Interrupt und wenn der regelmäßig kommt, dann ist der Timer OK.

    Sollten solche Hardwaretesterprogramme eigentlcih mitbringen. Kann man aber auch selbst bauen.


    RND(0) vs. RND(1) solltest Du mal im BASIC Handbuch nachschlagen. Das ist evtl. einfach nur eine verbesserte Variante, wo sich eine Version von RND die letzte Zufallszahl merkt und die andere eben einfach eine neue erzeugt.



    Ansonsten: PC$(X) liefert doch eigentlich einen Buchstaben ?? Daher macht es doch dann auch wenig Sinn, den nochmal mit LEFT$(PC$(X),Y) auszuschneiden ? Oder ?

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

    • Offizieller Beitrag

    Hast Du schonmal den Inhalt der ROMs verglichen?

    Hier zu finden: http://zimmers.net/anonftp/pub…/computers/pet/index.html


    Auch mal den ROM Diag Test durchlaufen lassen?

    Bei den alten PET ROMs ist statt dem TIM Monitor noch ein Test drin.

    Wird aktiviert über den DIAG Pin am Userport.

    Dazu muß man sich die passenden Brückenstecker anfertigen:

    Wenn der Test keine Fehler findet, wird die LED auf dem Mainboard eingeschaltet.

  • Von Basic 1 gab es 2 (oder 3?) Versionen. Vielleicht handelt es sich hier um eine ganz alte Version.

    Ich weiß leider nicht im Kopf, welche Änderungen bei der Fehlerbereinigung gemacht wurden und ob das irgendwas mit diesen Fehlern hier zu tun hat.

    Ist nur so eine Vermutung ins Blaue.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Noch eine Anmerkung zur TI / TI$:

    DIe werden im Interrupt hochgezählt, der vom 60 Hz Sync Signal aus der Videologik ausgelöst wird.

    Timer sind da nicht im Spiel.

    Da hängt aber noch eine PIA dazwischen, damit man die Interrupt-Quelle umstellen kann. Aber wenn der Interrupt nicht geht, weil der Baustein nicht funktioniert, dann funktioniert auch die Tastatur nicht und der Cursor blinkt nicht. Kommt also als Fehler hier nicht in Frage.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

    Einmal editiert, zuletzt von detlef ()

    • Offizieller Beitrag

    Von Basic 1 gab es 2 (oder 3?) Versionen. Vielleicht handelt es sich hier um eine ganz alte Version.

    Ich weiß leider nicht im Kopf, welche Änderungen bei der Fehlerbereinigung gemacht wurden und ob das irgendwas mit diesen Fehlern hier zu tun hat.

    Ist nur so eine Vermutung ins Blaue.

    An H1 ist laut Bild das 901447-09 ROM verbaut, das ist die fehlerbereinigte Version.

    Die ursprüngliche Version wäre 90144-01. Die alten ROMs sind aber nur sehr selten anzutreffen.

    • Offizieller Beitrag

    Noch ganz allgemein:

    Die weißen Sockel würde ich alle rauswerfen und durch neue ersetzen.

    Das wäre nicht der erste PET, der daran krankt.

    Ich hatte das schon mehr als einmal, daß ein offenbar laufender Rechner es nicht durch den DIAG-Test geschafft hat, bis die Sockel erneuert waren.

    Die waren dann meist auch nicht 100% stabil im Dauerbetrieb.

    Mit neuen Sockeln dann allerdings schon.


    Man kann die weißen Sockel übrigens sehr leicht auslöten, indem man den Kunststoffkörper abhebelt.

    Das klappt ohne Kollateralschaden, und man kann die Pins dann sehr einfach einzeln auslöten.

  • In der ersten Revision des CBM-BASIC war ein Fehler, der RND(0) betrifft. Hier wurde eine VIA an Adresse $904x und nicht $E84x erwartet! Das erklärt den konstanten Wert, da hier immer das Highbyte der Adresse (also $90) gelesen wird.


    Im Microsoft-Quelltext wird das als Konstante CQHTIM mit dem oktalem Wert ^O164104 (entspricht $E844) aufgeführt. Es war bei dem zweiten Abgleich (zur zweiten Revision) bereits korrigiert worden.


    Commodore führt das mit der Konstanten CHTIM korrigiert fort. Weiteres unter:

    Warum diese falsche Adresse hier Einzug erhalten hat, ist mir leider nicht bekannt, zumal dieser Aufruf der Zufallsfunktion mit dem Argument 0 nur in der Commodore Edition des MS-BASIC enthalten war.


    MInd. ein Board erlaubte das Umschalten des IO-Bereichs von $E zu $9. Ob es damit zusammenhängt?

    Einmal editiert, zuletzt von HofMar ()

  • Jungs!


    Wie immer erstmal herzlichen Dank für all euren INPUT A$ :D


    Der Tausch der vorderen 6520 (am Keyboard-Stecker) hat wie erwartet keine Änderung gebracht.


    Hier ein Screenshot:



    Allerdings hat er leider jetzt das Zeitliche gesegnet- nachdem der oben gezeigte Bildschirminhalt ca. ne Stunde angezeigt wurde, hab ich einfach mal Reset gedrückt- und nun zeigt der Rechner nur noch 5119 Bytes free an. :(

    Obwohl die Speichererweiterung gesteckt ist.

    Auch ein Ausschalten und Abkühlen hat nichts geholfen. Somit ist wohl mindestens ein RAM-Baustein tot. Leider sind meine Messmittel begrenzt… was meint ihr: Bausteine auslöten und Stück für Stück testen?


    Näheres morgen ausführlich- bin grad aufm Handy unterwegs…

    • Offizieller Beitrag

    Nochmal etwas dataillierter:

    Angezeigt werden 5119 bytes free.

    Die höchste fehlerfrei getestete Adresse berechnet sich aus dieser Zahl plus 1024, ist also 6143.

    Der Fehler liegt also bei 6144, also genau oberhalb der ersten 6KB.

    Mit einem kleinen Basic-Programm lässt sich mittels poke und peek an Adresse 6144 herausfinden, welches Bit fehlerhaft ist.

    Ist der Fehler in den unteren 4 Bit ist I2 defekt, in den oberen 4 Bit ist es J2.

  • Sooooo, Burschen!

    Mein Problem ist: Ich bin nicht am Rechner- versuche dennoch mal, zu antworten:


    Den Inhalt der ROMs kann ich nicht vergleichen, weil mir die Hardware dazu fehlt- ich habe keinen EPROMMER oder sonstige Geräte zum Auslesen.

    Bei all den unterschiedlichen Systemen, die man dazu kaufen kann, wüsste ich auch nicht, welcher GÜNSTIG und GUT für all die alten Retrorechner wäre- und noch dazu mit halbwegs neuen Betriebssystemen klarkäme. :(


    Zur Diagnose:

    Dazu müsste ich diesen Kabelbaum erstmal bauen- dazu habe ich weder die Stecker, noch (aktuell) die Zeit. :(

    Außerdem wäre es nur für genau diesen Rechner, welcher mich ja wieder Richtung Berti verlassen wird.

    Von Basic 1 gab es 2 (oder 3?) Versionen. Vielleicht handelt es sich hier um eine ganz alte Version.

    Ich weiß leider nicht im Kopf, welche Änderungen bei der Fehlerbereinigung gemacht wurden und ob das irgendwas mit diesen Fehlern hier zu tun hat.

    Ist nur so eine Vermutung ins Blaue.

    Interessant wäre, ob an diesem Rechner wirklich ein Fehler vorliegt- oder ob es einfach so war? Toast_r schreibt zwar, dass der fehlerbereinigte ROM verbaut ist- aber wer weiß, ob es nicht doch mit diesem 2001 genau so korrekt ist?

    Evtl. könnte es ja mal jemand an seinem PET testen? :)

    Uiui, viele Infos hier sind für mich "bömische Dörfer", also könnte es bedeuten, dass das Verhalten dieses 2001 "normal" ist?

    Ok, dann muss ich also mittels POKE 6144,x und anschließendem holen durch PEEK(6144) rausfinden, wo es hakt?

    Aber: WELCHE Werte muss ich dazu verwenden- und wie erkenne ich, ob es die oberen, bzw. die unteren 4 Bit sind? angst

    Ich bin ja nicht sooooo "Mr. Logik"... wie hinlänglich bekannt.

    Zwar versuche ich schon immer mal, mich einzulesen- scheitere aber meist.


    Noch dazu muss ich erstmal Ersatz-RAMs kaufen, da ich keine 2114er da hab. :(


    Viele Grüsse,

    Matthias

  • Ich kann das heute Nachmittag mal in Vice testen. Mit verschiedenen ROM-Versionen.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Ich kann das heute Nachmittag mal in Vice testen. Mit verschiedenen ROM-Versionen.

    Alleine hier würde ich schon scheitern- auf meinem Hauptrechner in der Wohnung läuft VICE natürlich NICHT- bis heute hab ich nicht rausgefunden, woran es liegt. :(
    Dank dir schon mal! :)

  • Ja, nach unserem Familienspaziergang - falls jemand anderes alle ROM-Versionen da hat und schneller ist, habe ich auch kein Problem damit. ;)

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Mitwahnsinnige!


    So, hier mein gebasteltes Programm und die Auswertung dazu:







    So geht es weiter, bis die Schleife durchgelaufen ist. POKE ich 6143 statt 6144, kommt jeweils genau der gepokte Wert auch zurück.


    Somit hat Toast_r recht. Die Frage ist jetzt bloß: Untere oder obere 4 Bit? :)

  • Hmmm, also J2- ist auch ein anderer Baustein, als die restlichen.

    2114er sind geordert, kommen aus Tschechien. Falls die da sind, berichte ich.

    Dies klärt zwar noch nicht die Fragen zu den „Basic-Anomalien“, aber vielleicht klärt sich dies auch noch auf.


    Viele Grüße,

    Matthias

  • Ich hab das jetzt mal in Vice nachvollzogen. Zunächst als PET mit den genau den ROMs, die oben auf dem Foto zu sehen sind. Wie Toast_r ja schon sagte, ist das die fehlerbereinigte Basic 1 Version.


    Und die verhält sich in Vice genau wie oben beschrieben. Also "illegal quantity error" bei left$(str, 0) und bei rnd(0) immer die gleiche Zahl.


    Das Basic 2 auf dem 3032 verhält sich anders. Da liefert left(str, 0) einen Leerstring und rnd(0) unterschiedliche Zufallszahl.


    An die Sache mit dem rnd(0) kann ich mich sogar dunkel erinnern. Und es steht sogar im Handbuch: "The argument can be either non-zero, or negative." Also 0 ist nicht vorgesehen.


    Beim 3032 steht im Handbuch: "A truly random number is obtainable by using a zero parameter."


    Also Basic-technisch alles ok mit dem PET. Das sind normalen Unterschiede zwischen Basic 1 und Basic 2.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

    3 Mal editiert, zuletzt von detlef ()

  • Dank euch läuft er nun wieder... ihr hattet recht: der 2114 in J2 wars!


    Alten rausgeworfen:


    ...und gleich mal in den Chiptester gesteckt:


    Interessanterweise brauchte es ZWEI Testdurchläufe, ehe der Fehler auftauchte. Dann aber permanent. Gut, dass ich mehrfach getestet hab. :)


    Die "neuen" 2114er sind von einem ganz netten eBayer, hier sein beigelegter Schrieb:


    Sowas mag ich ja echt, deshalb bekommt er von mir eine exzellente Bewertung.


    Nun, alles wieder eingebaut *schwitz* -> TADAAAAAAAAAAAA:



    Ich ließ den Rechner dann 2h laufen, während ich an Holgers 5155 geschraubt hatte. Alles gut.

    Mal sehen, ob es so bleibt.


    Danke euch nochmals!


    Viele Grüsse,

    Matthias

  • Gut sieht er aus! :thumbup:


    Hach -- ich habe mir ja eigentlich geschworen, keine Geräte zum Zweck eines persönlichen Nostalgie-Trips anzusammeln (sondern nur noch ältere oder exotische, zum Zweck des Dazulernens). Aber so ein PET wäre vielleicht doch noch was...


    Ich hatte nie einen, aber kann mich noch gut daran erinnern, wie ich Anfang 1980 mit ein paar Computer-affinen Freunden in der örtlichen Quelle-Filiale rumhing. Da stand ein eingeschalteter PET 2001 in der Ausstellung, und auch längeres Tippen und Testen wurde geduldet. Ein paar Monate später bekamen die ersten von uns dann eigene Computer, und wir konnten von da an im Sitzen programmieren. ;)

  • Ich hatte nie einen, aber kann mich noch gut daran erinnern, wie ich Anfang 1980 mit ein paar Computer-affinen Freunden in der örtlichen Quelle-Filiale rumhing. Da stand ein eingeschalteter PET 2001 in der Ausstellung, und auch längeres Tippen und Testen wurde geduldet. Ein paar Monate später bekamen die ersten von uns dann eigene Computer, und wir konnten von da an im Sitzen programmieren. ;)

    Mein erster eigener PET stammt auch aus dem Quelle-Katalog. Das war 1978/79. :)


    Du weisst ja, wo noch ein oder zwei PETs rumstehen. :mrgreen:
    Aber ob davon einer abzugeben ist?

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."