So sollte es dann aussehen:
und so sieht es aus:
Ich hatte noch ein paar Probleme mit einem Kabel, und dann wie ich die Software auf den 2001 bekomme und sich aber all meine Laufwerke, Datasetten etc gegen mich verschwören. Aber: läuft!
You are about to leave Forum64 to get redirected to the following address:
Please note, that the target website is not operated by us. We are not responsible for it's content nor does our privacy policy apply there.
last post from cbmhardware at the
So sollte es dann aussehen:
und so sieht es aus:
Ich hatte noch ein paar Probleme mit einem Kabel, und dann wie ich die Software auf den 2001 bekomme und sich aber all meine Laufwerke, Datasetten etc gegen mich verschwören. Aber: läuft!
Sieht gut aus. Als Laufwerk verwende ich immer den Pet2SD-Cardreader. Davor hatte ich immer eine CBM2031 verwendet, die mittlerweile auch kein Lebenszeichen mehr von sich gibt. Hier ist eine Variante des Pet2SD zum Selbstbau: https://github.com/sjgray/cbmSD-mini .
Ich hätte auch gern die fertige "neue" Version. Schreibe viel lieber an Software als Hardware zu entwerfen.
Haha, bei mir wars vor allem meine SD Lösung (Petdisk Max) im 8032-SK, die Probleme machte. Irgendwie wollte kein Programm davon auf Datasette oder selbst auf Floppy (4040 und 8250LP) schreiben. Und mein Blue Pet hat nur Basic1 (schönes Original 6540 ROM-Set mit 50% Keramikchips) Am Ende dann RAMROM aufgebaut für Basic2, 4040 dran, dann 64er mit KFF auf 1541, die kann die 4040 lesen und voila, semi-direkter Transfer von PC auf BluePet
(Die Petdisk Max ist semi-fest IM SK verbaut, daher selbst mit RAMROM der Umweg über den 64er.)
Jetzt layoute grade an einer ähnlichen Version der PetSD wie verlinkt (danke), aber mit Centronics24 (IEEE488) Stecker, Laufwerks-ID Schalter, USB-C Power und generell ein, zwei "für meine Anforderungen noch einen Ticker angepasster" - Anpassungen im Layout, wie direkter Support für 2Pin-Duo-LED. Alles kein Hexenwerk oder neu, aber nett in einem Layout zu haben.
Bin auf deine Version gespannt, sicher schon weniger Hassle alles intern direkt zu haben.
Bin auf deine Version gespannt, sicher schon weniger Hassle alles intern direkt zu haben.
Ich auch. War heute gut ausgeschlafen um 5 Uhr etwas im Entwurf. Hatte in den letzten zwei Wochen wohl einen kleinen Corona-Einschlag.
Das könnte noch Fehler enthalten, muss meine Erinnerung noch mit Datenblättern abgleichen. Den Schreibzugriff habe ich da wahlweise auf $9000 oder $a000 gelegt. Ist weniger Schaltungsaufwand als es mit SEL8 zu dekodieren. Für den IDT7132 besteht die Möglichkeit über Banking ($8401) die gesamten 1KByte (in 2x512 Byte) zu verwenden. Der IDT ist doppelt drauf, damit man DIP-48 und PLCC52 verwenden kann. Was man günstiger auftreiben kann.
Auf der Oberseite liegen dann die notwendigen Bauteile und ...
auf der Unterseite Char-ROM und ein Sockelverbinder.
Die Leiterplatte kann dann oben natürlich gekürzt werden. Sieht man so nicht, das sind aber eine Menge Leitungen.
Tja, ein Fehler und man fängt nochmal an. Bei der Backplane musste ich die Pads nochmals ändern. In KiCad sah alles passend aus, Pfostenstecker und gewinkelte Pfostenleisten passten bisher. Die gerade Version mit den eckigen Pins gehen nicht rein, da braucht man mehr als 0,7mm. Ich habe die Pads dann auch entsprechend größer angelegt, da es auch mechanischer Beanspruchung beim Einstecken und Ziehen standhalten soll.
Noch ein paar Korrekturen: Schreibzugriff aufs Banking-Bit, passendes PLCC-Bauteil angelegt, SEL8 ist raus, 2 Bit fürs Banking und weitere Kleinigkeiten. Vielleicht möchte jemand mal drauf sehen und sieht noch einen Fehler ?
So etwa sieht es dann am Ende aus. Ist noch nichts gerouted.
Edit: einen Fehler sehe ich eben. Wenn ich aus $0600 lesen möchte, fühlen sich wohl SRAM und Char-ROM angesprochen. Braucht wahrscheinlich noch einen Inverter zwischen den Chip-Selects.
Edit: Schaltplan ausgetauscht.
Hier und da noch ein kleines Problemchen zu lösen, aber 64 Chars lassen sich schon mal ändern. Grundlegend funktioniert es. IDT @A000 funktioniert und das Banking-Flipflop wollte noch nicht. Ist im Moment Bank=0 mit GND. Aber das wird auch noch.
Die alten Spiele laufen auch. Einfach den Charset nach $a000 geladen und das serielle Gebimmel drin gelassen. Das geht natürlich besser. Ein unbenutzter Keramik-IDT hatte schon mal einen Schuss in der Adressierung, jetzt ist eine Plastik-Version drin.
Damit auch neben den über 40 Jahre alten Programm etwas neues entstehen kann: ein Char-Editor. Im Bild ein erster Test-Mockup mit einem Charset vom C64 (I-Ball). Später könnte noch Tile und Map-Editor dazu kommen.
Den Adapter werde ich wahrscheinlich auf IDT 7130 mit einem 7400-TLL kürzen. Das zuletzt verbaute Banking wird sowieso niemand verwenden.
Ja, gerne, ist für BASIC 2. Ein D64 mit dem Programm und Charsets hängt an. Nach dem Programmstart wird der Puffer ($1500) und auch das etwaige Char-RAM (@A000) gelöscht. Wenn man ein Zeichen neu anlegt oder modifiziert, bleibt das immer zuerst nur im Pufferspeicher. Mit der Taste "W" kann man es ins Char-RAM laden. Da könnte man auch die Routine für die alte PCG-Version einbauen.
So sieht es dann im Vice aus. Da fehlt natürlich die Möglichkeit zum richtigen Anzeigen der unteren Auswahlzeilen.
So sieht es dann mit dem Adapter aus. Da ist der Zeichensatz vom alten Future Writer 1 geladen und ich hatte einen mäßigen Space-Invader erstellt.
Die Zeichensatzdatei sollte 64 Chars in 512 und mit Ladeadresse 514 Byte enthalten. Die Ladeadresse ist von keiner Bedeutung, da darf alles drin stehen, es wird immer nach $1500 geladen. Den Edit-Mode aktiviert und deaktiviert man mit der Taste E . Dann kann man sich in der Auswahl bewegen und einzelne Pixel in der 8x8 Matrix mit Space ändern. Wenn es fertig ist, kann es auch gespeichert werden. Die Lade- und Speicher-Routinen sind Standard Kernal-Routinen, die bei Fehlbedienung das Programm aufhängen. Da muss ich in der Zukunft nochmals ran.
Man kann auch mit dem Editor x-beliebige Zeichensätze bearbeiten und dann in das alte HAL PCG laden. Komfortabler wäre natürlich der direkte Zugriff, da fehlt mir leider die Testmöglichkeit. Ich werde dieses "mess" an Source-Code dazu noch vorzeigbar gestalten und in meinem Git veröffentlichen.
Die Directory-Routine kommt auch noch später dazu, hatte nichts verwertbares da. Vielleicht kann man das dann mit der Laderoutine als Auswahl gestalten.
Soweit sollte es ansonsten ohne Fehler zum Testen funktionieren.
Hier ist noch der Quelltext: https://github.com/cbmuser/PET…/main/basic2/charedit.asm . Hat noch Optimierungsbedarf und wird in Zukunft noch besser. Wenn sich jemand etwas fürs alte HAL PCG erstellen möchte.
Ich hab dein Programm mal ausprobiert und scheitere an ein paar Themen:
- Erstellte Zeichen werden nicht in der Leiste unten dargestellt (sie besteht einfach aus inversen Linien)
- Laden/Speichern geht nicht
ABER: Ich verwende einen echten 2001er mit Basic 1- der hat noch keine funktionsfähigen IEEE Routinen, ich muss also die Datasette nehmen.
Erstellte Zeichen sollte ich aber dennoch sehen, vermutlich?
Ich hab dein Programm mal ausprobiert und scheitere an ein paar Themen:
- Erstellte Zeichen werden nicht in der Leiste unten dargestellt (sie besteht einfach aus inversen Linien)
Das ist normal bei dieser PRG-Version. Wenn Du den originalen PCG6500 oder einen Nachbau hast, müssen auch die seriellen Routinen für den Adapter drin sein. Diese: https://github.com/mnaberez/pc…ain/demo/demo-174d-ml.txt . Die kann man problemlos einbauen.
- Laden/Speichern geht nicht
Das kann so nicht funktionieren, das Programm ist für Basic 2. Ich hatte mir eben die älteste BASIC1-Version auf den RAM/ROM-Adapter geflashed, dann kann es auch eine Version für BASIC1 werden. PETSD hängt damit, hatte ich aber auch erwartet. Mal sehen was die CBM2031 damit macht.
ABER: Ich verwende einen echten 2001er mit Basic 1- der hat noch keine funktionsfähigen IEEE Routinen, ich muss also die Datasette nehmen.
Erstellte Zeichen sollte ich aber dennoch sehen, vermutlich?
Nein, so nicht. Da müssen die seriellen Routinen vorhanden sein, wenn es der alte PCG6500 ist. Bei den Floppy-Routinen bin ich nicht sicher, aber ansonsten lassen sich verschieden Versionen: Basic 1,2 und 4 (ohne 6545) erstellen, die grundlegend funktionieren sollten. Also das ganz alte Board und auch der dyanamic PET 2001N. Ich werde das berücksichtigen und verschiedene Versionen erstellen. Also verschiedene BASIC-Versionen mit DMA@$A000,$9000 (PET 2001N) oder der seriellen Verbindung mit dem Userport (Ur-PET mit BASIC1).
Ich werde Dir vorab eine BASIC1-Version mit den seriellen Routinen zum Testen erstellen und hier hochladen. Mal sehen was noch geht, habe irgend einen fiebrigen, grippalen Infekt.
Jetzt ist alles dazu erst mal im git: https://github.com/cbmuser/PET-PCG-2024
CBM_Ba: Denke noch dran. War jetzt doch ein paar Wochen anders beschäftigt, wird jetzt aber bald.
Das "Orschinool" dazu auch seit einiger Zeit auf Git:
https://github.com/InsaneDruid/PCG-6500
Meine 6510/02 Assembler Tage direkt auf dem 64er sind leider zu weit weg als das ich da momentan viel helfen kann. Ich muss vor allem erst mal einen guten Workflow/pipeline aufbauen, um wieder reinzukommen.
Ja, danke, ich baue dann noch kurz eine Verlinkung auf Deinen Klon ein.
Ich komme leider auch nicht allzu oft zum Programmieren in 6502-Assembler, was ich aber doch allzu gern mache. Muss auch immer wieder ein bisschen reinkommen. Bei der Software für die originale Version, also die Transfer-Routinen habe ich leider nichts zum Testen, kann daher nur eine gute Prognose abgeben, ob das am Ende auch funktionieren wird.
Tja, die erste BASIC1-Version ist da ein sehr spezielles Problem. Ohne Diskettenlaufwerk ist da alles etwas schwieriger und nicht besonders komfortabel in der Anwendung. Ich würde dann eher das eine ROM tauschen, als immer wieder um das Problem herum zu arbeiten. Aber mal sehen, was man da mit den Tape-Routinen machen kann.
CBM_Ba: Ich habe eine Version für BASIC 1 angehängt. Leider funktioniert das Speichern und Laden mit Tape noch nicht. Da muss ich noch genauer prüfen, ob es Unterschiede zum echten PET gibt. Im xpet des VICE mit CrossDev klappt es noch nicht.
Für mich wäre nun erst mal interessant, ob der HAL-Adapter damit beschrieben wird. Könnte das jemand testen ? - Dann kann ich das bei neuer Software berücksichtigen und es funktioniert dann mit beiden Versionen.
Der Quelltext ist auch im Archiv, falls jemand etwas ändern möchte.
Im GIT: https://github.com/cbmuser/PET-PCG-2024 erscheinen dann immer mal wieder Updates.
Oh, sorry, war ein Fehler drin. Korrigierte Version hängt an.
Ein kleines und sehr einfaches Experiment mit DMA. Der gleiche Char wird immer wieder neu beschrieben. Der Klassiker: ein Sternchen ploppen lassen. Mit 64 Chars kann man eine schöne Demo erstellen. Mal sehen was ich zustande bringe.