Beiträge von 2ee

    Ich bin aber auch ein Hirny!!!! :fp: Gerade festgestellt, das ich STEP auf ON gesetzt hatte...die Ganze Zeit...AAAHHHHHHH ich werd nich mehr!!!

    Konfuzius sagt: Shit happens :D.

    Freut mich, dass das Problem gelöst ist. Wahrscheinlich hätten wir da noch eine Weile den Fehler gesucht. :thumbup:

    Hallo discmix

    So weit ich das aber erkennen kann, ist der Bereich b000-b100 nicht korrekt.

    ne, ne, dein Mem Dump zeigt genau das richtige an. Da hat sich bei mir die Erinnerung etwas getrübt.

    Was passiert denn, wenn du jetzt mal mit

    B000G

    den Basic Interpreter startest?

    Auf dem JCII habe ich ein 27C64 beschriftet ist das ganze mit 27c265...evtl. fehlt mir was vom BIOS? Wobei ich ja das 8KB gebrannt habe

    Der Rechner selber ist ja nicht das Problem, der bootet ja. Und wenn du die 8K Version gebrannt hast ist auch alles gut. Du hattest ja vorher schon die BIOS Version 1.1.5 drauf. Nur dein EhBasic war noch in der alten Version 2.24.

    Jetzt wäre für mich wieder ein Speicherauszug ab B000 interessant,wenn du mit angestöpselter IO Platine und Basic Version 2.25 in das Basic bootest und das dann wieder abstürzt. Aber bitte vom Junior Monitor mal z.B. B000.B100 eingeben und dann einen Screenshot hier einstellen. Die Auszüge mit dem Hexeditor direkt aus dem ROM Image sind da weniger hilfreich, da ich ja so nicht erkennen kann, was beim EhBasic schief geht.

    Nun habe ich ihn ausgewechselt und bekomme, wenn ich es mit der Image Datei vergleiche an den Adressen B000, C000, D000 das gleiche was ich im Image an den Adressen 5000, 6000 und 7000 wiederfinden.

    Hallo Marco, vermutlich hab ich da auf meiner Seite noch die alte EhBasic Version 2.24, denn nach dem Speicherauszug von dir sieht es so aus. Du hast aber bereits das BIOS mit der Version 1.1.5 drauf. Da kann es schon sein, dass es knallt. Als Anhang hier nochmal die aktuellsten Versionen (die ich hoffentlich heute auch noch auf meine Seite geladen bekomme).

    Hallo Marco,

    Ich kann mich dem Thema leider erst wieder am Wochenende widmen 😥

    ich bin ab Freitag dann leider wieder bis Montag weg.

    Ich war mir jetzt aber sicher, dass da ein Problem mit der Umschaltung der halben Bank $A0-$B0 vorliegen muss. Das wird über den 74LS139 (U7) und ein paar Dioden gemacht. Ich dachte erst, du hättest eine der Dioden versehendlich verkehrt herum eingebaut. Bei einem Blick auf dein Bild unter #2.197 ist mir dann aber aufgefallen, dass es der 74LS139 selber ist, der aus der Reihe tanzt. Ich weiß nicht ob er noch lebt, aber der sollte natürlich mit der Kerbe nach oben zeigen. :)

    Wenn du da nur B0 angezeigt bekommst, dann liegt dort kein ROM oder sonstige abfragbare Hardware (RAM, IO). Hast du auf der Junior Hauptplatine den Bank Schalter hinten links auf $80 on, $A0 off, $C0 off stehen ?

    Hallo Marco, kannst du trotzdem noch ein Listing ab B000 ausgeben, nachdem du mit B in das Basic ROM gesprungen bist? Die Tatsache, das bei dir EhBasic bei B002 crasht und im Y Register $05 statt $04 steht lässt den Schluß zu, dass ab $B000 das Basic ROM nicht eingeblendet wird.

    Hallo Marco, gib, nachdem du im Monitor gelandet bist, bitte am Prompt mal B000L ein, um die ersten Zeilen des Basic ROMs zu disassemblieren. Dann solltest du folgendes Listing sehen

    was vermutlich bei dir nicht der Fall ist. Mach dann bitte auch nochmal einen Screen Shoot für mich.

    Ansonsten teste bitte das IO Board ohne eingesteckten Floppy-/Graphics Controller um hier die Fehler einzuschränken.

    Hier steht 27C256, ich habe ein 28C256 eingesteckt. Laut Datenblätter mit unterschiedlichen Anschlüssen. Habe ich nun noch mal bestellt. Hoffentlich ist nichts kaputt.

    Hallo Marco, nein, du hast da nichts kaputt gemacht. Der Unterschied in der Belegung ist nicht relevant, da die beiden Leitungen (A14/VPP bzw. /WR/A14) beide auf +5V liegen. Der 28C256 passt. Den kannst du dann auch schneller umprogrammieren als ein EPROM.

    2: Welcher Konnektor kommt hier rein? Schaue ich mir VGA an, ist der ja 15 polig?

    Hallo Marco,

    den "VGA" Pin-Header kannst du auch unbestückt lassen. Wichtiger ist die 9 polige RGB Video Buchse und die RCA Buchse für Composite Video, die bei dir ja bereits beide bestückt sind.

    Schau wie gesagt auch, dass du die PS/2 Buchse - also Mini DIN 6 - links neben der RGB-Video Buchse bestückst, damit du da eine PS/2 Tastatur anschließen kannst.

    Edit: Die VIA 6522 mit der Bauteilbeschriftung U4 MUSS BESTÜCKT werden! An dieser hängen die ganzen internen Funktionen wie Real Time Clock, SD Karte, Datasette, etc. Die Linke VIA U5 ist die User VIA, an der die beiden "User-Ports" hängen. Die kannst du erst mal frei lassen.

    2ee Danke, danke, danke Jörg. Ich war schon etwas demotiviert, bin nun aber wieder voll dabei und versuche die I/o Karte bis zum WE aktiv zu haben. Evtl. Gibt es bis dahin eine neue Version zur Monitor Ansteuerung.

    Sehr gerne. Ich drück dir die Daumen, dass die IO Karte dann gleich funktioniert.

    So, und hier noch die Dokumentation zur Benutzung der FGC API, die NorbertJ noch haben wollte. Da die einzelnen Funktionen im FGC BIOS in verschiedenen ROM Seiten untergebracht sind, solltet ihr IMMER die Treiber Routine des Standard Out nutzen wie in der Dokumentation beschrieben. Nur diese kann automatisch zwischen den Seiten des ROMs umschalten. Ansonsten müsst ihr den V9938 selber nativ über die Register des Bausteins ansprechen, wie im Handbuch angegeben. Z.B. kann der Treiber (noch) nicht X Positionen > 255 ansprechen, da hier nur das X Register zur Übergabe bereitsteht und das natürlich nur 8 Bit breit ist. Meine Überlegung war, hier eventuell noch das Carry Flag zu setzen, wenn X > 255 sein soll. C würde dann also das neunte Bit repräsentieren. Bis ich da was habe, sind also die Screen Modes 5 und 6 über den Treiber Tabu. In EhBasic wird das wohl auch so bleiben, da ich hier Zahlen > 256 nur als Floating Point Werte bekomme, die sonst erst noch umrechnen müsste. Na ja, evtl. irgendwann mal... :grübel:

    Die Dokumentation wird demnächst dann auch in einer aufgehübschten Version als PDF erscheinen. ;)

    Hallo alle zusammen!

    Jetzt hat es dann doch etwas länger gedauert, bis ich meine Erkältung aus dem Urlaub auskuriert hatte. Aber jetzt ist der Kopf wieder frisch und ich kann mich endlich wieder ein wenig dem Basteln widmen.

    Zunächst erst mal herzlichen Dank an NorbertJ und Dietrich für ihre Support Unterstützung zu den Fragen von discmix . Ich hoffe, Marco, du bist schon etwas weiter gekommen. Dennoch hier auch noch ein paar Anmerkungen zu deinen Fragen, auch wenn Norbert und Dietrich diese schon zum Teil oder ganz beantwortet haben.

    1. Basic ist im ROM der Language/IO Karte enthalten. Ohne diese Karte könntest du höchstens EhBasic via XModem auf den Rechner laden. Ich hab zwar diesbezüglich noch nichts vorbereitet, das wäre aber kein all zu großes Problem, wenn du Basic einfach mal ausprobieren möchtest. Allerdings sind dann einige Basic Befehle natürlich nicht ausführbar, da sie wiederum Hardware-Funktionen der IO Karte ansprechen.

    2. Der Floppy-/Graphics-Controller sollte unabhängig von der IO Karte laufen. ABER: Ich hab das bei mir auch vorhin nochmal getestet und tatsächlich initialisiert sich der Grafik Controller meist nicht richtig. D.h. eigentlich fast nie. Eher sporadisch wird nach dem Einschalten (aber nie nach einem manuellen Reset) dann mal Text auf dem angeschlossenen Bildschirm angezeigt. Das ist in sofern seltsam, da ich 100% bestätigen kann, dass das mal funktioniert hat. Hier muss also ein Problem mit der neuesten BIOS Version vorliegen. Ich werde mich da auf alle Fälle schnellst möglich damit beschäftigen.

    3. Wenn der FGC dann ohne IO Karte wieder laufen sollte, dann musst du auf alle Fälle die PS/2 Buchse auch eingelötet haben. Denn nur hierüber kannst du dann ja den Rechner bedienen. Wenn du beim Einschalten oder nach einem Reset ein Terminal am JC2 angeschlossen hast, dann wird die Ausgabe hierüber gemacht und ein an der Grafikkarte angeschlossener Bildschirm bleibt schwarz.

    4. Du schreibst, dass dein Bildschirm immer ein weißes Bild bringt. Tatsächlich wird bei mir (bedingt durch den Fehler im BIOS) der Bildschirmspeicher nicht gelöscht und es werden wirre Zeichen und Klötzchen angezeigt. Ein vollständig weißer Bildschirm scheint mir da eher ein anderes Problem wieder zu spiegeln. Der bisher häufigste Fehler war ein Kurzschluss irgendwo an den Pins des Grafik Controllers V9938. Schau dir bitte da noch mal mit einer Lupe die Lötstellen genau an. Durch das halbe Rastermaß von 1,27 mm reicht da schon eine winzige Lötperle, um hier den Controller zu stören. Schau dir auch nochmal die Ausgangsstufen (Transistoren) des Controllers genau an. Auch hier könnte ein Kurzschluss das Problem verursachen.

    5. Schließ - wenn möglich - erst mal einen Composite Monitor an. Das ist schnell erledigt und du sparst dir das Löten eines geeigneten Video Kabels. Die Belegung an der RGB Video Buchse ist die gleiche, wie an einem Commodore 1083S Monitor. Hier kannst du also ein 1:1 Kabel mit beidseitigen Steckern anschließen. Der "VGA" Anschluss ist tatsächlich etwas irreführend - sorry. Die an diesem Anschluss liegenden Signale sind VGA komplett, d.h. R,G,B, H-Sync und V-Sync. Allerdings liegt die Zeilenfrequenz hier bei etwa 15KHz. Ein VGA Monitor hat hier eine Frequenz von etwa 31kHz. Deshalb könnte hier nur ein alter Multisync Monitor wohl ein Bild anzeigen, wenn dieser noch die CGA Auflösungen kann. EGA liegt hier bereits bei etwa 21kHZ.

    6. Der Anschluss Floppy-Power liegt sehr nahe am eigentlichen Floppy Anschluss. Daher wird es hier recht eng, wenn du da einen entsprechenden Pin Header einbauen möchtest. Vorgesehen war hier von mir aber eher, dass man an dieser Stelle direkt die Kabelenden eines Floppy Spannungsversorgungssteckers einlötet. Ich hab bei mir aber jetzt direkt an der Backplane ein PC ATX-Netzteil angeschlossen, das ja sowieso gleich die Versorgungsstecker sowohl für 5 1/4" als auch 3 1/2 " Floppys mitbringt.

    7. JP1 am Junior ][ ist der Jumper, um den Onboard Adress Decoder zu deaktivieren. Steht dieser auf EXT (Pin 2-3) dann läuft der Junior nicht. Hier musst du also Pin 1-2 verbinden. Der EXT Anschluss war auch am original Junior Computer schon drauf, um eben einen externen Adressdecoder zu realisieren, der dann ein anderes RAM/ROM/IO Mapping ermöglicht.

    8. Norbert hatte mich nach der API für den Grafik Controller gefragt. Die reiche ich irgendwann heute Nachmittag noch nach, da ich jetzt erst mal wieder weg muss.

    9. Danke an Dietrich, dass er die MKBOOT verbessert hat. Das hat mir wirklich wieder viel Arbeit abgenommen.

    Hi, ganz kurz vom Handy

    Achtung, beim Anschluss eines Hardware-Terminals (ESP-Terminals o.ä.) MUSS der MAX232 entfernt werden!

    dee MAX232 muss nur dann entfernt werden, wenn du das ESP32 Terminal einsetzt. Das läuft über den secondary Port der Schnittstelle und nutzt die 5V Signalpegel. Bei einem normalen HW Terminal (VT100 etc.) braucht man den MAX232 wegen der RS232 Pegel.

    Grüße aus Irland

    Jörg

    Sorry, hat jetzt doch wieder etwas gedauert, aber wie versprochen, hier die bisher letzten ROMs für den Junior (BIOS, EhBASIC und FGC BIOS) bevor ich dann erst mal im Urlaub bin.

    Ich hatte noch einen Fehler bei der Ausgabe von Rechtecken drin, bei dem die Seiten der Rechtecke bei Erreichen der Bildschirmgrenzen nicht abgeschnitten, sondern soz. umgefaltet wurden.

    In Basic gibt es jetzt für die Grafik folgende Befehle:

    SCREEN mode

    mit mode 0 = Text 40 Zeichen SW, 1 = Text 80 Zeichen SW, 2 = 40 Zeichen Farbe, 3 = 80 Zeichen Farbe, 4 = 256x212 16 Farben und 7 = 256x212 256 Farben. Die Modes 5 und 6 sind in 512x212 Pixel Auflösung, die ich (noch) nicht in Basic Unterstütze. Dh. Linien, Pixel und Rechtecke sind auf 256 Pixel horizontal beschränkt. In der nächsten Version von EhBASIC werde ich die beiden 512er Modes dann erst mal komplett sperren.

    COLOR col

    mit col = 0..255

    PIXEL x,y

    mit x,y = 0..255

    LINE xs,ys,xe,ye

    mit xs,xe,ys,ye = 0..255

    RECT x,y,width,height

    mit x,y = 0..255, width = 0..255, height = 0..255

    Beim PORT Befehl wird für die I2C Schnittstelle nicht mehr automatisch ein STOP eingefügt um Multi-Read/Write möglich zu machen. Deshalb müsst ihr jetzt nach den letzten PORT Befehl noch ein I2CSTOP einfügen. Also z.B. PORT $20,$FF : PORT $20,$80 : I2CSTOP

    Nach meinem Urlaub werde ich die neuen Befehle dann auch in die Dokumentation einpflegen und genauer beschreiben.

    Ich hatte euch ja schon von Markos Fortschritten bzgl. Pac-Man erzählt. Ich hab gestern noch eine neue Version von ihm bekommen, die schon recht gut läuft und die ich euch nicht vorenthalten möchte.

    Daher hier mal ein Link zu einem kurzen Video: Pac-Man

    Ein paar Frames werden wohl noch geskipt, weshalb es noch ein klein wenig langsamer läuft als das Original und nach dem Fressen einer Power Pille stürzt das Spiel leider noch ab. Aber Marko ist da schon dran und wahrscheinlich hat er das Ding in 14 Tagen dann schon gewuppt, wenn ich wieder zurück bin.

    Übrigens hatte ich beim letzten mal Marko versehendlich mit C geschrieben. Dafür ein mea maxima culpa. Aber er hat mir schon verziehen :).

    So weit erst mal alles von mir

    CJa

    Jörg

    Mit vLA, neuer Tastatur, ggf. Composite Video Mod (auch von Sintech) sieht es dann so aus:

    Braucht man den Composite Mod überhaupt noch wenn die vLA drin ist? Ich hatte da glaube ich was gelesen, dass man an der vLA umschalten kann um direkt an Pin 16 ein Composite Signal abgreifen zu können, bin mir aber nicht sicher. Evtl auch erst seit einer neueren Version.

    Charly verkauft bei Etsy, da ist die MwSt schon drin bzw. führen die ab, für 34€, Versand aus Neuseeland 14€. Zoll kommt keiner drauf.

    'nen Euro kannst du also sparen

    Bei sintech-shop.de bekomme ich ihn für 49,49+Versand. Dann bin ich ja schon bei sicherlich gesparten 4,49€ ;).
    Mal schauen, da kommt es mir jetzt auch nicht auf ein paar Euros mehr oder wenig an. Nach dem Urlaub kommt das gute Stück wieder auf den OP Tisch und dann sieht man weiter :).

    Hallo PC-Rath_de , ja die Spannung ist natürlich unter Last gemessen. Netzteil 1 = 11,6V (vom ZX81 mit Issue 1 Board), Netzteil 2 = 13,56V (!) (Issue 3 Board), letzteres liegt ohne Last bei 15,7V. Die Trafos in den Netzteile von Sinclair waren da wohl einfach gaaaanz grob bei Pi*Daumen gewickelt. Wie bei Commodore hat man bei Sinclair halt gerne auch mal was gespart. Ausserdem kommt erschwerend hinzu, dass wir hier in Deutschand seit 1980 eine Umstellung von 220V auf 240V Netzspannung hatten. Die eigentliche Eingangsspannung am ZX81 sollte bei 9V liegen, da liegen aber wohl alle original Netzteile bei 220V schon deutlich drüber. 12V braucht der ZX81 natürlich nicht.

    Mich würde jetzt dann aber doch mal interessieren, von welchen Problemen du da immer mit den 78E Reglern redest. Das der 78E ein geschalteter Regler ist, dürfte hier wohl jedem klar sein, dann hätte aber auch jeder Rechner mit Schaltnetzteilen ein Problem. Am Ausgangs-Ripple kann es nicht liegen. Der liegt laut Datenblatt und auch gemessen bei max 50mV, irgendwo bei 20MHz und sollte weder die Z80 noch die ULA auch nur im geringsten tangieren. Man kann natürlich auch noch an den VCCs der Bausteine 50 -100nF Entstörkondensatoren anlöten, die sich Sinclair ja auch gespart hat. Aber das alles wird den Rechner vermutlich nicht ansatzweise stabiler laufen lassen.
    Der ZX81 zieht weniger als 1A Strom und der von mir eingesetzte Regler kann 1A. Das ist zugegeben weniger als das, was der 7805 kann. Allerdings wird nach einem Tausch der ULA durch eine vLA81 der Stromverbrauch noch drastisch reduziert. Der dürfte beim eingesetzten Xilinx XC9572XL bei ca. 20mA liegen. Damit bin ich bei der Gesamtschaltung wohl bei deutlich unter 500mA. Also wo siehst du da die Probleme? :nixwiss:

    Bzgl. Preisdifferenz ULA - PLA hat tofro ja bereits den Unterschied genannt. Die PLA dient hauptsächlich der Adress Decodierung. In der ULA ist aber die Takterzeugung, Video H-/V-Sync Generator, NMI Control, NOP-Generator, Adress Decoder, R/W Control und noch ne Menge anderer Funktionen untergebracht und eine ULA als NOS oder gebraucht her zu bekommen ist, mittlerweile fast nicht mehr möglich. Aber klar ist, dass der Nachbau natürlich ziemlich teuer ist. Das liegt vermutlich daran, dass der vLA81 eventuell direkt beim Platinenfertiger auch gleich bestückt wird. Ausserdem der eingesetzte XC9572XL ist auch nicht ganz billig.

    Bei Porto/Zoll/Umsatzsteuer hatte ich auch so mit ca. 20€ - 25€ gerechnet, was dann den Kauf in Deutschland für 49€+Porto wieder attraktiv macht.

    Weiß ich jetzt nicht,ob ich mir mit einem DC-DC-Wandler einweiteres mögliches Problem ins Gerät hole.

    Der 78E5.0 ist die moderne Version des 7805 Linearreglers und wurde ja als Direct Drop In entwickelt. Warum sollte ich mir da mehr Probleme holen? Außerdem liefert das originale Sinclair Netzteil an den Reglereingang bei mir knapp 12V, was natürlich mit ein Grund für die Wärme ist. Der 78E kann auch bei 28V Eingangsspannung betrieben werden und bleibt trotzdem noch kalt.

    Ich habe meine vLA81 direkt beim "Erfinder" gekauft, 29,95€

    Ja, die hab ich auch gesehen. Kommt die aber nicht aus Neuseeland? Was hast du da komplett mit Porto und Zoll gezahlt?

    Vor ein paar Wochen hab ich von einem guten Freund den ZX81 seines letztes Jahres viel zu früh verstorbenen Bruders bekommen (RIP Thomas).

    Beim Anschluss an einen Fernseher bekam ich zwar den typisch weißen ZX81 Hintergrund, aber der K Cursor fehlte. Als erstes also aufschrauben und Takt, Video, Daten- und Adressleitungen geprüft. Während der Takt wunderbar erzeugt wird, werden die Datenpulse nur extrem verwaschen ausgegeben.

    Das Videosignal ist allerdings bzgl. H-Sync und V-Sync völlig unauffällig. Bei den Adressleitungen fielen mir dann gleich drei Ausreißer auf: Während A9 dauerhaft auf High lag, klebten A13 und A15 auf Low. Da alle drei Leitungen für das Tastatur Multiplexing gebraucht werden, ist das natürlich ganz klar ein Fehler.
    Zuerst dachte ich, dass die Z80 CPU defekt ist. Allerdings sind diese im Normalfall ziemlich robust, während die ULAs des ZX81 ein notorisches Problem darstellt. Da die ULA als einziger Baustein auf diesem Issu 3 Mainboard gesockelt ist, hab ich also hier zu allererst angesetzt und mal Pin 5 alias A15 aus dem Sockel gebogen. Und et voilà, sofort war Leben auf den A9 und A13 Leitungen.
    Um nicht immer den Rechner zum Fernseher tragen zu müssen musste zuerst mal ein Composite Mod her, der allerdings möglichst Reversibel sein sollte, da mein Ziel ja eigentlich war, den Rechner im Gedenken an seinen früheren Besitzer möglichst unangetastet zu lassen. Daher ist also alles auf einer Rest-Lochrasterplatine aufgebaut und mit Clips an den neuralischen Punkten der Hauptplatine und mit einem Monitor verbunden.

    Ergebnis (wie zu erwarten) immer noch kein Cursor.

    Da ich noch einen zweiten ZX81 habe, der von mir allerdings noch nie geöffnet wurde, wollte ich dort die ULA zum Testen ausbauen und in den Patienten implantieren. Der Rechner war sogar mit Garantieklebern über den Schraublöchern versehen (solche, die beim Abreißen VOID anzeigen). Also offensichtlich hat hier wirklich noch nie jemand darin rumgefummelt. Inhalt, ein Issu 1 Mainboard, mit einer sehr interessanten Besonderheit:

    Statt des PROMS befindet sich auf dem ROM Sockel ein mit 64K ZX81 beschriftetes EPROM mit vogelwilder Außenverdrahtung.

    Leider ist dafür die ULA nicht gesockelt, womit mein Tauschversuch leider gescheitert ist. Der Issu 1 Rechner ist jetzt wieder in seinem alten Zustand und die VOID Aufkleber sind auch fast original wieder aufgebracht.


    Letzlich hab ich mich jetzt entschlossen, das Issu 3 Board zu modifizieren, sprich zuerst wurde mal den ständig überhitzten 7805 Regler gegen einen modernen 78E5.0-1.0 getauscht, der dann auch kein Kühlblech mehr benötigt. Als nächstes muss ich natürlich einen Ersatz für die defekte ULA (Version 2C210E) herbekommen.

    Falls jemand hier noch eine "rumfahren" hat, wäre es schön, wenn er sich bei mir meldet.

    Ansonsten bleibt wohl nur, eine vLAB81 ULA auf CPLD Basis stattdessen einzubauen. Die wird allerdings auch bereits zu Mondpreisen zwischen 50 und 100€ verkauft. Letzlich kommt dann wohl noch der Composite Mod und ein 32K SRAM auf die Platine. Zu guter letzt vielleicht noch eine neue Tastatur mit Microswitches?! Wahrscheinlich würde das Thomas sogar besser gefallen als alles im Original zu belassen.

    2ee danke für die gute Zeit auf der VCFe und vor llem für die Unterstützung bei meinen Hardware-Wehwehchen

    Dietrich

    Ja, war mal wieder richtig schön auf dem VCFe, eben auch, weil man so viele nette Bekanntschaften dort machen kann und eben auch einige von euch in echt kennenlernen darf. Deshalb hier auch nochmal ein riesen großes Danke an Hans alias Raffzahn für sein wie immer großartig gelungenes Fest für Computer Nerds wie uns.

    Dietrich , ich konnte dir zwar bei der Fehlersuche helfen, aber für die erfolgreiche Transplantation des defekten 74LS244 waren dann eben jenes Bausteinchen und Werkzeug zum heraushebeln notwendig. Und wer außer klaly könnte das aus seinen Wunderkisten zaubern. Daher auch an dich lieber Klaus herzlichen Dank für deinen Support.

    286Micha war ja mal vor einiger Zeit aufgefallen, dass bei einem Directory Listing von mir eine Datei PACMAN.COM aufgetaucht war. Ich wollte damals darüber noch nicht zu viel erzählen, da ich nicht sicher war, ob das ganze mal Realität werden würde. Da ich mal wieder direkt neben den beiden Jungs - Marco und Thomas - vom Steckschwein Computer Projekt sitzen durfte, hat sich dieses Jahr auch diesbezüglich einiges getan. Marco hat vor einigen Jahren angefangen, eine möglichst originalgetreue Pac-Man Version auf das Steckschein zu bringen, was letztes Jahr auf dem VCFe das erste mal vollständig lauffähig zu bewundern war. Da ich Marco immer angestachelt hatte, mit seinem 6502 Pac-Man mal fertig zu werden, hat er es sich auch gleich mal nicht nehmen lassen die Steckschwein Version für den Junior ][ anzupassen, woran wir seit dem letzten VCFe immer mal wieder per Video Konferenz dran gearbeitet hatten. Da das Steckschwein und der JC2 faktisch den gleichen Video Chip benutzen (Steckschwein V9958, JC2 V9938) war hier die Hoffnung groß, das schnell erledigen zu können. Allerdings stehen dem 6502 im Steckschwein eine Taktrate von 10MHz im Vergleich zum JC2 mit 1MHz gegenüber. Da der Original Pac-Man Arcade einen mit etwa 3MHz getakteten Z80 besaß, sollte das für die 6502 mit einem MHz locker machbar sein. Allerdings ist die V9938/58 etwas aufwendiger was das Laden der Grafikdaten angeht. Daher hatte der Junior ][ immer einen Frame geschluckt, und war somit merkbar langsamer als das Steckschein. Ein Ausschalten von einigen Effekten (blinkender Highscore und Power Pillen) wirkte da wunder und tatsächlich konnte Marco noch am Sonntag eine bereits Spielbare Vorversion zusammenbasteln. Wahnsinn :anbet:. Das ganze ist noch nicht ganz fertig und man muss natürlich auch mal darüber reden, was man für Marcos Pac-Man benötigt. Da Marco ja eine möglichst originalgetreue Version machen wollte, arbeitet er mit 60Hz NTSC Auflösung. Glücklicherweise kann man an meinem Sanyo Monitor von 50 auf 60Hz umstellen, so dass das kein Problem war. Das ist aber natürlich nicht mit jedem Monitor möglich. Ausserdem läuft Pac-Man nativ im Hochkant Format mit 224x288 Pixeln. Das kann der V9938/58 eigentlich nicht an Auflösung bieten. Mittels eines Hacks konnte Marco das aber zum Teil kompensieren. Wie auch immer, seine Version läuft 90 Grad ccw gedreht auf dem Bildschirm. Das ist mit einem Röhrenmonitor nicht ganz einfach zu machen. Mittels eines MacBazels und einem LCD Monitor sollte das aber kein Problem sein.

    Wenn Marco die JC2 Version soweit fertig haben sollte, dass auch der der Sound Chip unterstützt wird, werdet ihr dann möglichst zeitnah damit beglückt. Bis es so weit ist, müsst ihr euch erst mal mit einem Schnappschuß zufrieden geben, aber das kann die Vorfreude ja auch schon etwas steigern.

    :zock:

    The Pac-Man...

    ... and the Man

    :pacman:

    Hier noch was Nettes zum Probieren. Wäre genau so ein Teil, wo die LINETO Variante sehr schön / nützlich ist.

    Nach kleinen Änderungen (Zentrierung, Breite) läuft dein Programm problemlos. Sieht schön aus, auch wenn es recht beschaulich läuft. Aber macht echt Spass mit verschiedenen Winkel und Count Werten zu experimentieren. Mal schauen, ob man das mit verschiedenen Farben noch etwas aufpeppen kann.

    Jedenfalls war das Doughnut Programm auch sehr hilfreich mal den Monitor endlich in Bildlage und Höhe richtig zu kalibrieren, was leider nur intern möglich war.


    Edit: Übrigens kann EhBasic im Junior jetzt auch Rechtecke.

    So, es ist geschafft. Der Junior ist "On-The-Line" 8o.

    Zur Fehlerkorrektur benötigte ich noch ein PHA/PLA Paar, was bei nur noch einem freien Byte in der ROM Page ein echtes Problem war. Letztlich konnte ich an anderer Stelle noch genau dieses eine fehlende Byte einsparen. Restliche freie Bytes also 0,0.
    Dann gab es noch ein falsch gesetztes Bit zu korrigieren und siehe da:

    Zur Zeit hab ich noch nicht die Ideen von Norbert-97801 und Reinhard im EhBasic umgesetzt, ich hoffe, das bekomme ich noch bis Samstag gebacken.
    Schön ist auch, dass ich nun in Basic von den Standard 80 Zeichen auf 40 Zeichen umschalten kann, was dann da doch irgendwie "klassischer" aussieht.


    Zur Zeit ist das Umschalten in einen anderen Bidschirmmode durch SCREEN noch mit einem automatischen Löschen des Bidschirminhalts verbunden, da sowohl die Text als auch die Grafikseiten noch im gleichen Speicheradressraum rumwerkeln. Wegen des - oben beschriebenen - nicht mehr vorhandenen Platzes in der ROM Bank, lies sich das jetzt aber auf die Schnelle nicht mehr ändern. Letztlich soll es dann mal möglich sein, von Text auf Grafik und wieder zurück Umschalten zu können und den jeweils alten Bildschirminhalt wieder zu bekommen, also. z.B. auch Fehlermeldungen aus Basic dann einsehen zu können, die während des Grafikmodes geschmissen wurden.

    Z.Zt. muss ich die Textausgabe unterdrücken, wenn man in einem Grafikmodus arbeitet, da sonst durch die im Hintergrund entstehenden Meldungen in die Grafikseite geschrieben wird und Fehlerpixel dargestellt werden.

    Wie auch immer, nach dem VCFe gibt es dann für euch einen Satz neuer ROMs - System BIOS, EhBasic und FGCBIOS.

    Bis dahin viel Spass

    Jörg

    Hallo zusammen. Um Diskusionen zuvor zu kommen und nochmal zu verbildlichen, warum ich PHI1 an den /OE Pin des ROMs angeschlossen habe, hier das Timing Diagramm der 6502:

    Da die Datenphase der 6502 in der High Phase von PHI2 liegt, kann ich /OE natürlich nicht mit PHI2 verbinden. Die PHI1 Low Phase startet vor der Steigenden Flanke von PHI2 und endet nach der fallenden Flanke von PHI2, an der die Daten von der CPU gefetcht werden. Somit kann da auch kein Timing Problem entstehen, die Daten des ROMs liegen lange genug am Bus an.

    Letztlich kann man das /OE des ROMs auch fest auf Masse legen und nur über den Chip Select arbeiten, der ja bereits - erzeugt durch die Adresssignale - in der Low Phase von PHI2 anliegt. Allerdings kann das /CS Signal erst mal durch diverse Gatterlaufzeiten etwas unstabil sein und somit bei einem Dauer /OE den Datenbus bis zur Stabilisation mit Müll vollpusten. Wenn man - so wie auf dem FGC - Bausteine verwendet, die nicht wie die von MOS (kompatiblen) mit einem PHI2 Eingang ausgestattet sind und sich somit selber synchronisieren können, ist es eine gute Idee, die Daten erst bereit zu stellen, wenn diese stabil anliegen. Und genau das macht hier die Verbindung von PHI1 mit /OE.

    Ich hoffe, das war jetzt nicht zu sehr Oberlehrer. Ich wollte nur nochmal aufzeigen, dass ich mir hier schon Gedanken dazu gemacht hatte :).

    Ich habe mich zwar null mit der vorliegenden Schaltung befasst, aber bei PHI1 klingelt es bei mir. Müsste das nicht PHI2 sein?

    PHI1 passt schon, da ja an /OE (negative Logik). Das Problem bei Dietrich liegt evtl. an einem gebrochenen Via. Wir schauen uns das auf dem VCFe mal zusammen an.

    Kann man das nicht so lösen, das wenn LINE als Parameter "nur" x und y angegeben bekommen hat, um das nicht benötigte "MOVE TO" zu überspringen?

    Je nachdem, was der Parser hergibt, könnte auch LINE viele x,y Paare als Parameter haben (Polyline), und falls der Parser es auch hergibt,

    LINE ,,x2,y2,x3,y3 könnte das Moveto weglassen.

    Das sind sehr gute Ideen. Werd mich nächste Woche mal damit beschäftigen.