Posts by cbmhardware

    Das ist mein kleiner Patch auf FBAS. Regelbar wurde eingespart, da es so schon ganz ordentlich aussieht und für S-Video (Chroma/Luma getrennt) wäre (mir) der Aufwand dann doch zu gross.

    Bei einem sehr billigen VD TECH Klein-LCD hatte ich ein S/W-Bild, dann sollte man die eingezeichnete Diode einsparen.


    Lässt sich leicht auf etwas Rasterstreifen realisieren.


    Rasterstreifen mit auf der Massefläche mit der GND-Bahn aufgelötet. Die Leitung zum Fernseher ist geschirmt.



    Läuft ... jetzt noch Elkos tauschen und die schöneren Gehäuseteile wieder verbauen.

    Diese Einfachschaltung kannte ich und habe die etwas erweitert. Und richtig, hatte den dicken Elko nun abgeschnitten und nochmals mit voller Batterie gemessen: da ist nur noch ein gutes Viertel der Kapazität.

    Bei der bratenden Versorgung und einem Alter über 40 Jahren auch keine wirkliche Überraschung. Die müssen auf jeden Fall alle getauscht werden.




    Ich lade nach Fertigstellung Fotos und Anleitung hier hoch. Bin im Moment beim Prüfen der Elkos: einer war gut (2200µF), einer hatte ungefähr halbe Kapazität und der Rest ist weitestgehend mausetot.

    Die sollte man auf jeden Fall austauschen, damit der 5V Regler und Trafo nicht mehr so vor sich hin braten.


    Ehemals 4700µF


    Ehemals 47µF

    Ich transportiere das Thema nun mal aus der Bastelecke hierher.



                                   


    Zwei Konsolen sollen zu einem intakten und schönen Gerät werden. Im zweiten Bild die Digitalisierung aus dem Modulator eines halbwegs aktuellen LCD-Fernsehers: fail. Im dritten Bild sieht man die Ausgabe auf einem alten SW-Röhrenfernseher, also analog würde es wohl funktionieren.



                         


    Bild ohne und mit Kondensator-Patch: der Schatten an den Linien wird etwas gefiltert. Mehr fiel mir dazu leider nicht ein. :)




    Kondensator am unteren Widerstand und der aktuelle Versuchsaufbau: im Prinzip ein einstellbares Composite mit Transistor-Verstärkung.


    Es ist benutzbar und nicht perfekt. Mit der Regelung kann man die Farben nach Wunsch von entsättigt bis in den Rot-Grün Schmerzbereich drehen. :) Alles weitere folgt dann nach dem festen Einbau.



    Weitere Infos findet man hier: channelf.se/veswiki/index.php?title=Main_Page

    Zudem besteht die Möglichkeit abgesehen von FBAS (Composite), das Chroma-Signal ausgekoppelt für S-Video zu verwenden.

    Für eine S-Video-Schaltung wäre ich auch zu haben, mein Bild mit Composite sieht so ähnlich aus wie bei Dir.


    Das Problem ist die Schaltung der Konsole. Chroma und Luma liegen eigentlich schon zusammen, daher hatte ich es experimentell ausgekoppelt. Dann müsste man zumindest C20 auf der Seite zum Composite auslöten: https://console5.com/techwiki/…-F-Schematic---Page-2.png ?

    Aus zwei Saba Videoplay (Fairchild Channel F) soll eine gute Konsole entstehen. Eine hatte ich vor Jahren defekt zugekauft, wegen unverbasteltem Joystick und Gehäuseteilen. Der Modulator bringt scheinbar kein brauchbares Signal für eine Digitalisierung am Antenneneingang eines halbwegs aktuellen LCD-Fernseher. Für einen kleinen SW-Röhrenfernseher reichte es noch, könnte an den Toleranzen der nun schon über 40 Jahre alten Schaltung liegen. :)

    Habe nun das Video-Signal direkt angezapft, etwas vermengt und mit einem NPN-Transistor verstärkt. Zudem besteht die Möglichkeit abgesehen von FBAS (Composite), das Chroma-Signal ausgekoppelt für S-Video zu verwenden. Der "Ton" wird direkt vom internen Speaker abgegriffen. Ist alles im Moment noch nicht der Weisheit letzter Schluss, funktioniert aber schon mal.


    Bei beiden Konsolen hat sich die interne Folienleitung zum Cartrdige-Port in Wohlgefallen aufgelöst (Kleber tot). Da fehlt im Moment noch die trennbare Flachbandleitung.


    Eine kleine Oberfläche mit Editor für die GRBL-Steuerung. Heute den seriellen Handler eingebaut und fast die Krise bekommen. Funktionierte sofort, holte aber alles nur in Häppchen ab und die Ausgaben sahen entsprechend struppig aus. :P Die Anleitung zur Lib hoch- und runtergelesen, fast wund gegoogelt nach Foreneinträgen zum Thema und die Lösung war lächerlich einfach: 200ms Delay und der holt alles in einem Rutsch ab. Hmpf!


    Der Signal-Wächter damit man nicht pollen muss:


    Code
    1. QObject::connect(&serial, SIGNAL(readyRead()),this, SLOT(commando_response()));

    und der Slot:


    Code
    1. void MainWindow::commando_response()
    2. {
    3. while (serial.bytesAvailable()!=0 && !serial.atEnd() ){
    4. MainWindow::delay(200);
    5. const QString datain = serial.readAll();
    6. ; parser in Arbeit


    Nachteil: bei jeder Längenänderung des Codes davor verschiebt sich natürlich das ganze Spass .... ich würde das (wenn überhaupt) ganz vorne einbauen.


    Das wird nichts bringen. Die Strings liegen immer hinter dem Programm. Wenn das Programm verändert wird, ändert sich auch immer wieder deren Offset. Man müsste das Assembler-Programm zuerst im Speicher haben und dann auf den Screen dumpen. Wie schon erwähnt wurde, weiss man dann wie gross der Platzhalter sein muss. Da stellt sich dann allerdings die Frage, warum man sich diese Quälerei antut, wenn das ASM-Programm doch schon im Speicher steht ? :)

    Ist schon etwas länger als ich mir die Assembler Geschichte angesehen habe. Aber verstanden hab ich null komma nix davon.


    Kann es sein das manche Leute ein natürliches Talent dafür haben?


    Witzigerweise hatte ich schon immer ein Interesse für solche Dinge. Aber daraus etwas zu machen gelang mir nie..🤔


    Es ist nicht kompliziert. kann für einen Anfänger aber komplex sein. Für einen heutigen Anfänger würde ich das Crossdevelopment empfehlen, also ausführbares Programm mit dem PC erstellen, das dann bequem im Emulator getestet werden kann.

    Jeder lernt anders, daher würde ich nicht die übliche Schulmethode anwenden: also möglichst alles zum Thema in sich hineinstopfen, um es auf Kommando wieder erbrechen zu können.

    Bei Programmierung wird es mehr motivieren, wenn man vom kleinen "Hello World"-Programm zum nächsten Schritt geht. Und dazwischen dann mal binäre Arithmetik, Operatoren und alles notwendige erklärt.


    Was braucht man um anzufangen:


    Editor möglichst mit Syntax Highlighting

    Cross-Assembler (ich würde ACME empfehlen)

    Emulator: x64 vom Vice


    Hilfreich:

    Umrechner für Zahlensysteme, gibt es online: https://www.langeneggers.ch/nu…es/umrechner-hex-dez.html

    Memory-Map

    ROM-Listing , wird man sicher als PDF in der Wolke finden.


    Danach machst Du ein Thema auf "Assembler lernen from scratch" und wir könnten Dir verschiedene Varianten eines "Hello-Word" Programms verhackstückeln. Also z.B. mit BSOUT oder direktes Schreiben in den Bildschirmspeicher.


    Wenn Du dann erste Grundlagen verstanden hast, wirst Du auch besser mit Kursen ohne Interaktion klar kommen.

    Nicht schlecht. Aber ich dachte, es soll reassembliert werden und die komplette Spielsteuerung auch neu ...

    Kann gerne jemand machen, ich möchte mich anderen Aufgaben widmen. Habe höchstens noch grobe Aufzeichnungen zur Strukturierung:

    Code
    1. Rockman C16 Memory-Map
    2. $1000 - $14ff Data (Sound)
    3. $1500 - $2b3c Code - includes $2784 Menu-Screen (470 Byte)
    4. $2b3d - $3000 Data: Level, more datas ?
    5. $3001 - $37ff Screens (Live lost, Game Over, more ?)
    6. $3800 - $4000 Charset

    Damit es auch einen kleinen Mehrwert hat : +2 Trainer mit unlimitierten Leben, stehender Zeit oder beidem. Habe das Menü auch etwas nach Gutdünken angepasst: Fragezeichen nach Frage, nicht nach Aufforderung und etwas aufgeräumt.


    Das Geheimnis zur Plus/4-Version ist schnell gelüftet. Da hat man munter im Speicher gepfuscht :) und die Basic-Zeile aus dem C16-Loader angeklebt.



    Plus/4 PRG

    Code
    1. .C:26c7 AD 12 FF LDA $FF12
    2. .C:26ca A9 C7 LDA #$C7
    3. .C:26cc 8D 12 FF STA $FF12
    4. .C:26cf AD 13 00 LDA $0013
    5. .C:26d2 A9 D0 LDA #$D0
    6. .C:26d4 8D 13 FF STA $FF13
    7. .C:26d7 60 RTS


    C16 Tape-Version:

    Code
    1. .C:26c7 AD 12 FF LDA $FF12
    2. .C:26ca 09 04 ORA #$04
    3. .C:26cc 8D 12 FF STA $FF12
    4. .C:26cf AD 13 FF LDA $FF13
    5. .C:26d2 29 D0 AND #$D0
    6. .C:26d4 8D 13 FF STA $FF13
    7. .C:26d7 60 RTS

    Wie Luca schon erwähnte gibt keine korrigierte Version und warum sieht auch jeder mit etwas Ahnung auf den ersten Blick. Die Game Main-Routine liegt ab $1cc7 im Speicher und ist eine Kette JSR-Befehlen mit etwa 1-2kb Speicherbedarf. Da müssten die Umschaltungen der Zeichensatz-Bänke eingeschleift werden, damit es auch immer sauber funktionieren kann. Also vor der Intro, danach zum Menü und letztlich zum Spielstart.

    In diesen Bereich kann man nicht eingreifen, weil man nicht sicher weiss, ob Rücksprünge bei Verschiebungen dann falsch ankommen. Vorne angestellt wird dann noch die kleine Assembler-Routine für die zwei Sound-Befehle, die dann locker in den Bereich ab $1000 passt.

    Man müsste tiefgreifend das Programm ändern und dabei auf Glück mit dem Murks hoffen. Jemand mit etwas Ahnung greift dann zum Reassembler und strukturiert es neu. Dann könnte auch die hakelige Tastaturabfrage im Menü nachgebessert werden.

    Mit ein paar Byte Zeropage, Tapebuffer oder anderen Kinkerlitzchen kann man da gar nichts machen.


    Aus den eben genannten Gründen habe ich diese ganze Hauptroutine mit Nachbesserungen im Bereich am $4000 untergebracht. Das ist beim Plus/4 sowieso herzlich egal und für den C16 kann immer noch das Speicherabbild von Plus/4 World verwendet werden.

    Dann kreuze die Stelle mal kurz an. Der Bereich von $1000-10da reicht nicht aus und der Zeichensatz sollte drin bleiben.