Beiträge von RhinoDevel

    Danke. Ach, ich hatte überlesen, dass auch Umlaute vorhanden sind.

    So wie hier (Nr. 6)?


    http://www.6502.org/users/sjgr…editrom/cbmkeyboards.html


    Mach doch sonst bitte mal ein Foto, würde mich interessieren!

    Was passiert, wenn man so ein POKE/SYS auf einem Computer mit 2K Character ROM ausführt?

    Werde ich sonst mal im Emulator testen..

    Bei POKE passiert gar nichts, weil der Video Controller Chip bei diesen Kisten fehlt.

    Das hieße ja, man kann davon ausgehen, dass alle CBMs mit CRTC ein 4K großes Character ROM haben. Bist Du Dir da sicher?

    Naja, wenn sie nur 2k haben, dann fehlt auch die Umschaltung per PRINT CHR... im Editor ROM ... :)

    Wäre jedenfalls sinnvoll. Damals wurde wahrscheinlich noch so ordentlich gearbeitet..

    Danke!


    Mir war nicht klar, wie ich den Wert für CHR_GRAFIC erhalte.


    Aber das würde dann ja so gehen:


    1. Eingeben:


    Code
    ?asc("

    2. Tastenkombination CTRL + rechte Hochstelltaste + B drücken


    3. Eingeben:


    Code
    ")

    4. Return drücken.


    Da kommt der PETSCII-Wert 130 heraus.


    Mit


    Code
    ?chr$(130)

    konnte ich schonmal "auf Englisch" umschalten.


    Ich teste das später mal in Assembler.

    oder einen Schuhkarton ...


    Aber mal im Ernst: Macht das nicht evtl. doch einen Unterschied ? Bei den Einzeltrafonetzteilen mit zwei Spannungen kommt doch der Ausgang in gleicher Wellenform an, auch wenn dann dahinter noch ein Teil (z.B. 5V) gleichgerichtet wird.

    Und abseits der gleichen Schwingung sind die doch dann auch automatisch auf einem gleichen Masselevel, was ja evtl. schon bei 2 einzelnen NTen nicht so sein muß.

    Ich hoffe, dass das in der Praxis keine Rolle spielt. Wird die 9V Wechselspannung noch für etwas anderes verwendet, als für den SID?


    Bestimmt kann ja jemand mit mehr Ahnung von der Stromversorgung des C64, als ich, etwas zu Deinem berechtigten Einwand sagen.

    Hier


    http://www.6502.org/users/sjgray/computer/cbmchr/cbmchr.html


    habe ich beispielsweise das als


    324242-01-german.bin


    bezeichnete Character ROM gefunden, welches (zumindest im 8296) 4K groß sein soll.


    Meine Fragen:


    - In welchen CBMs können denn 4K Character ROMs enthalten sein (habe hier einen 8032-SK mit deutschem DIN-Keyboard)?


    - Wie kann man denn zwischen den beiden Zeichensätzen umschalten (ich meine nicht POKE 59468,12, bzw. 14, sondern die beiden 2K-Zeichensätze)?


    Oder habe ich da etwas falsch verstanden? Dann die Bitte um Aufklärung.

    Ist genauso, wie Toast_r geschrieben hat.


    Nur so nebenbei:


    Der Stand bei CBM Tape Pi ist, dass ich Fastload und -save implementiert habe, es aber noch nicht ausreichend "poliert" ist für ein Release.

    Werde ich demnächst mal mit weitermachen (hoffentlich!).

    Denn dann fängt es ja erst an, Spaß zu machen (obwohl es jetzt ja auch funktioniert).


    Viel Erfolg bei Deinem Projekt!

    Also im VICE schaut es mal ganz gut aus.

    Das sagt aber nix, nach meiner Erfahrung.


    Das, was auf dem VICE Screenshot von Dir zu sehen ist, funktioniert genauso auf meinem 3032 mit BASIC 2.


    Außerdem habe ich das "Unsinn"-Programm aus Deiner Doku (siehe unten)

    erfolgreich assemblieren können (jedenfalls zeigt er Phase 1, Phase 2 und Endadresse an)!


    Bei Gelegenheit werde ich mir das noch genauer anschauen.


    VIELEN DANK!


    5 *=$027a

    10 lda #1

    20 stx 23

    30 lda $8000

    40 lda $70,x

    50 pha

    60 sta ($77),y

    70 jmp ($0345)

    80 asl

    Der 3032 hat ja nur 40 Spalten,

    Warum rüstest du nicht auf BASIC 4 auf?


    Brauchst du alle drei ROM Sockets?

    Für die Programme, die ich schreibe, hatte ich ursprünglich mal BASIC 1 und 2 als Ziel vorgesehen.

    Ist schon etwas länger her, deswegen weiss ich den Grund gar nicht mehr so genau (unterstützt BASIC 4 evtl. den PET 2001 nicht?)..


    Also: Ja, ich kann wahrscheinlich auch auf BASIC 4 aufrüsten.

    Cool, danke schonmal.


    Der 3032 hat ja nur 40 Spalten,

    ich benutze normalerweise BASIC 2 ("### COMMODORE BASIC ###")

    und würde den Assembler gern möglichst weit oben im RAM haben.


    Du kannst ja mal schauen, ob das den Aufwand wert ist. :)


    Außerdem: Hast Du Deinen Source Code irgendwo veröffentlicht (evtl. habe ich das auch überlesen..)?

    gelöscht. ;)

    :) Kann ich trotzdem gern nochmal für andere erklären, die sich evtl. (auch) wundern:


    Warum der merkwürdige Syntax mit SAVE"...":LOAD ?


    CBM Tape Pi lädt noch keine Software (Fastloader/Wedge), sondern alles funktioniert mit dem normalen Commodore ROM.


    LOAD sendet aber keine Daten (z.B. den Dateinamen) an die Datassette,

    sondern liest bei Eingabe des Dateinamens (LOAD"MYFILE.PRG") einfach so lange vom Datassetten-Port,

    bis der Begin der Daten einer Datei mit dem Namen (MYFILE.PRG) geladen wird.


    Deswegen sende ich alle Kommandos an den Raspberry Pi via SAVE"...", eben auch den Ladebefehl.

    Gibt es jetzt eigentlich eine Erfolgsmeldung dazu (also funktioniert der RaspPi als Datasette ohne Probleme) ?

    Immer, wenn ich mal Zeit habe, bastel ich daran weiter (siehe auch GitHub)!


    Die SD-Karte soll ja letztendlich die Kommunikation mit dem PC per serieller Schnittstelle ersetzen (siehe Videos).


    Aktueller Stand (noch nicht im aktuellen Release):


    - Lesen und Schreiben der SD-Karte funktioniert.


    - FAT32-Dateisystem wird unterstützt.


    - Das Verfahren zum gezielten Laden und Speichern per Commodore wird gerade umgesetzt.


    Falls Interesse, kann ich da gern noch mehr zu schreiben.

    Das musst Du mir mal erklären... da steht ein Laptop (mit Mikrofon-Eingang) nebendran, dann ist da noch ein Raspi, eine Platine mit Taster, und der C64.

    Statt direkt den Laptop zu nehmen, und per Mikrofoneingang und später dem Headset-Ausgang den C64 direkt zu bedienen, wird der Raspi und diese Platine mit dem Taster noch dazwischen geschaltet (so sieht's auch auf dem Video aus).

    Selbst wenn der Raspi selbst eine Tastatur und einen Monitor bekommt, aber der Laptop wegfällt, ist die Lösung nicht wirklich elegant.


    Soll das später nur ein kleines Kästchen mit Einzeilen-Display und zwei Tasten werden (nur so würde es Sinn machen) ?

    Genau, sowas in der Richtung!


    Der erste Schritt war, das Laden vom Raspi hinzubekommen.


    Jetzt funktioniert auch das Speichern.


    Die serielle Schnittstelle ist wesentlich einfacher anzubinden, als SD-Karte oder USB-Stick,

    deswegen wird darauf ersteinmal zurückgegriffen.


    Nun, wo die Übertragung in beide Richtungen funktioniert,

    werde ich (bei Gelegenheit) mit Interrupts und SD-Karte weitermachen.


    Dass es mir persönlich bei dem Projekt auch um die Bare Metal - Entwicklung an sich geht,

    hatte ich ja schon in vorherigen Posts klar gemacht.


    Mir geht es auch darum, direkt am CBM schnell mal zwischendurch speichern zu können

    und da bin ich mir nicht sicher, ob das mit Mikrofon & Headset wirklich die elegantere Lösung ist

    (natürlich vom CBM Tape Pi - Entwicklungsaufwand abgesehen).

    Beispielsweise, wenn man direkt auf dem Commodore Computer entwickeln möchte

    (natürlich auch nur zum Spaß - wie alles hier im Forum diskutierte, oder?).

    Stimmt, die Motorspannung wird dann ja nach dem Laden wieder abgeschaltet trotz Sense = low (= Taste immer noch gedrückt).


    Dann muss zumindest das Abschalten ja durch Software ausgelöst werden.


    Wird das Einschalten denn durch Hardware ausgelöst, oder per Interrupt-Routine?


    Müsste ich sonst mal Recherchieren, so interessehalber..

    Warum braucht man da eigentlich noch einen PC extra ??

    Sinnvoller wäre doch eigentlich, wenn die Sachen direkt vom RPi kämen - oder ?


    Der könnte dann sogar auch gleich von selber mit dem Senden anfangen, sobald das "LOAD"+Return ausgeführt ist, wenn man das MotorSignal mit abfragt.

    Den PC braucht man nur extra, weil bisher nur die serielle Schnittstelle implementiert ist (ist halt bare-metal, also ohne OS auf dem Raspi).

    Ich hoffe, das in Zukunft weiterentwickeln zu können!


    Wenn ich mich richtig erinnere, wird die Motor-Spannung unabhängig vom LOAD eingeschaltet,

    sobald der Pegel der Sense-Leitung von der Datasette auf Masse gelegt wird (also beim Drücken von z.B. Play).


    D.h., automatisch geht das nicht, oder täusche ich mich??

    Geschwindigkeitsprobleme in dem Sinne, als dass ich das Ganze nicht mehr schneller machen konnte.

    Ich werde das, wie gesagt, demnächst mal mit dem Arduino aufbauen. Zum einen möchte ich über den Userport kommunizieren (da werden deine PetPi-Routinen sicher hilfreich sein) und dann plane ich auch eine Version für den Kassettenport, aber mit dem Tapecart-Protokoll. Das geht, wie gesagt, nicht so schnell wie auf dem C64, aber es sollte trotzdem deutlich schneller sein, also ein normaler Tape-Loader.

    Wenn Du mehrere Bits parallel überträgst, wird das bestimmt schneller gehen,

    ich hatte mich allerdings auf eine Datenleitung eingeschränkt.


    Trotzdem: Sag Bescheid, falls ich mit Erklärungen zum Source Code (oder so) helfen kann!