Posts by hugofisch

    Ich wollte es ja nicht glauben, dass das wirklich so gut ist, ABER


    Ich habe 3-4 Minuten gebraucht um einen 40pol CIA auszulöten. Der fiel an Ende alleine heraus! Mit Entlötlitze oder beheizter manueller Entlötpumpe habe ich so ein Ergebnis nie hinbekommen!
    Diese 120€ für eine ZD-985 haben sich gelohnt.
    Ergebnis siehe Bilder :thumbsup:

    Mit Versa64cart kann man verschiedene Module bauen (8k, 16k, mit ultimax).
    Die Gerber Datei findet man unter Guthub.
    War ein erster Versuch für „Platinen in Auftrag geben“. Bin zufrieden.
    Habe eben die erste gelötet und funzt.
    Kann man schöne Deadtest Karten machen.

    Auf jeden Fall beeindruckend ! 5€, das nenne ich einen verdammt guten Deal.
    Wenn ich meine kommen, habe ich ca. 9€ bezahlt. Wenn sie nicht kommen, habe ich 9€ verloren. :schande:

    Ab welcher dead test Version von Commodore wurden eigentlich alle Boards unterstützt?
    ich meine, es gibt ja zwischen einem 250407 und einem 250469 Board dann doch einige Unterschiede.
    Wurde der Typ des Boards eigentlich durch dead test erkannt? Wenn ja an welchenMerkmalen konnte
    das festgemacht werden?

    Ich hatte mal ein Video gesehen, da jemand Lötzinn in einer Pfanne erhitzt, die Platine reingelegt kurz gewartet, rausgenommen und sofort mit Schwung auf die Tischkante gehauen.
    Die Bauteile fielen alle raus.
    Sah spektakulär aus.
    Kann aber ein Bericht über Elektroschrott in der 3. Welt gewesen sein.
    Gesund ist das bestimmt nicht.

    Es gibt da auch die Methode Kochplatte.
    Aber ich denke das ist eher was für die Profilöter!
    Meine Frau würde mich auf jeden Fall killen, wenn ich meine Platinen auf der Kochplatte braten würde. :schande:

    Hallo,


    keine Ahnung ob das schon mal gemacht wurde. ich wollte mich in das CBM prg Studio einarbeiten und suchte eine Aufgabe.
    ich hatte mich immer schon gefragt, wie schwer es ist, ein Spiel aus einem 8k Modul anstelle des Kernals zu starten.
    Idee:
    Spiel suchen, was nur 8k Größe hat. Einfache Pack/Entroutine suchen/schreiben, um aus den 8k weniger zu machen.
    Dann einen Kernal-Loader schreiben, der das gepackte Image nach $8000 verschiebt und dann startet.
    Sollte ja nicht so schwer sein.


    Also los:
    ich entschied mich für Galaxian von Atari, weil ich Galaga Clones schon immer geliebt hae und es im gepackten Zustand 5kb groß war. Gute Chancen also!


    Als erstes musste ich aus dem CRT ein Binärfile machen. Danke Vice kein Thema, da Vice das Tool cartconv mitbringt:
    cartconv -t bin -i galaxian.crt -o galaxian.bin


    Dann kommt natürlich die Frage der Fragen: Was aus dem Kernal wird durch Galaxian aufgerufen. Die Frage ist wichtig,
    da der Kernal ja nicht mehr existiert.
    Um dies herauszubekommen habe ich das Binärfile durch den DA65 (der Disassambler des CC65) gejagt.
    Damit nicht zu großes Quatsch am Anfang entsteht, habe ich die ersten 18 Bytes gelöscht, da dort der Modulstart Header mit
    CBM80 und den Startvektoren zu finden ist.
    Das disassemblierte Programm (galaxian_dis.zip) sah dann so aus (nur der Anfang, unten das ganze File):






    Mich interessierten die Sprungadressen $EA7E und $FF81. Eine Suche im Quellcode ergab, dass $FF81 nur einmal und $EA7E zweimal aufgerufen wurde.
    Bei $EA7E handelt es sich um das Ende der Tastaturabfrage aus dem Kernal. Die muss ich ersetzen, da sie häufig aufgerufen wird.
    Bei $FF81 handelt es sich um den Einsprung in die Reset Initialisierungsroutine, die nur einmal am Anfang aufgerufen wird.


    Zum Glück ist der Code bei EA7E nur 9 Byte lang. Diese 9 Byte habe ich mir aus dem Ende des Images geklaut. Dort steht nur ein Copyright des Entwicklers.
    Sorry dafür 8o
    CodeEnde.JPG


    Neu:
    CodeEndeNeu.JPG


    Wenn man sich dann die Sprung-Orgi ab $FF81 ansieht, kam mir der Zweifel, ob ich das alles noch in den 8k unterbringen kann (und vor allem muss).
    Ich entschied mich daher zu erst es zu ignorieren.
    Stattdessen patchte ich im Binärfile die beiden Stellen mit dem EA7E Einsprung auf $FFF0. Das geht mit nem Hexeditor sehr einfach.


    Nun also zum Packen und Entpacken.
    In einem anderen Projekt hatte ich mal mit der RLE packmethode gearbeitet. Die ist eher für Grafik und nicht für Code geeignet,
    aber ich wollte mir nicht zu viel Arbeit machen.
    Unter RLE kann man sich Beispiel Code für CC65 inklusive C Code zum Packen und Entpacken herunterladen. Mit CC65 ud GCC schnell übersetzt
    hatte ich eine rlepack.exe und testete sie auf dem Galaxian Image. Es ergaben 7675 Bytes. Also noch über 400 bytes frei für die Entpack und ggf. Initialisierungroutine.
    Die Datei hängt im Anhang.galaxian_pacht2_rle.zip


    Der dann entstandene Code sah ungefähr so aus. galaxiankernal_asm.zip


    Der Code selber ist nicht groß (bitte nochmal auf die Erklärung zu initvic warten.

    Aus dem oben erwähnten RLE Toolkit habe ich die folgenden Anteile entnommen:

    So weit so gut. Aber es fehlte ja noch die Routine an $FF81.
    Ich schaute mir den Kernal Quellcode dazu an und entschied mich,
    erstmal nur die VIC Initialisierungsroutine aus $EAA0 zu nehmen.


    Fehlt noch das Einbinden des RLE gepackten Files und die Vektoren am Ende.


    Code
    1. incbin "galaxian_pacht2.rle"
    2. *=$FFFA
    3. BYTE $00,$E0,$00,$E0,$00,$E0


    Damit den neuen Kernal compilierrt und in VICE ausprobiert.
    HEUREKA es funktionierte!!!!!!!


    Es gab nur ein Problem. Das Spiel war links und rechts abgeschnitten. Was man dank schwarzem Hintergrund und Rahmen nicht sofort sehen konnte war,
    dass das Bild vertikal um 3 Pixel verschoben war. Als ich den Wert 9B aus der Initialisierungsroutine auf $98 geändert hatte. Sah alles gut aus.

    Code
    1. victable
    2. BYTE $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
    3. BYTE $00, $9B, $37, $00, $00, $00, $08, $00, $14, $0F, $00, $00, $00, $00, $00, $00
    4. BYTE $0E, $06, $01, $02, $03, $04, $00, $01, $02, $03, $04, $05, $06, $07

    Das so nun mit dem CBM prg Studio erzeugte File konnte (nach dem löschen der ersten (2 bytes) problemlos
    als Kernal im Vice eingebunden werden und startete Galaxian.


    Das war im Grunde einfacher als ich dachte. Zum Glück gab es nur wenige Sprünge in die Kernal Routinen.
    Ich denke mit einem besseren Pack Algorithmus könnte man noch mehr Platz sparen (ZIP schafft es ja den Code auf 5Kbytes zu schrumpfen). Da bliebe
    noch viel Platz für Kernal-Routinen.


    Mal sehen ob mich noch ein anderes Spiel reizt ;-)


    Der fertige "Kernal" ist dieser hier galaxian_in_the_kernal.zip



    EDIT: Da war noch Qautsch drin ! Musste daher den text noch mal anpassen.

    Hallo,


    habe nun meinen Blog fertig. Siehe commodore64breadbox.tumblr.com
    Darin habe ich alle Schritte beschrieben (wie schon im letzten Post) wie man einen Webserver
    mit Temperaturanzeige auf einem C64 aufsetzt. Der Blog erklärt zwar nicht,
    wie man das schicke C64 Design hin bekommt, aber das kommt ggf. später :D
    Aber das Webserver Prinzip und die CGI Skripte werden ausführlich erläutert.
    Ggf. baut das ja einer nach.


    Wenn meine Brotbox zu Hause am Internet hängt kommt der nächste Post.
    Ich muss noch auf ein neues C64Netzteil warten und will eine LCD-Matrix Anzeige mit
    Statusmeldungen erst ergänzen bevor die Seite live geht. Dabei ist das Netzteil am wichtigsten,
    denn für einen 24/7 Betrieb traue ich meinem Türkeil nicht mehr.
    Wer will schon der Versicherung erklären, was da die Ursache für das flammende Inferno war :schande:

    So was hatte ich mit 14 oder 15 auvh mal gebaut.
    Altes PC Gehäuse und dann ne 1541-1 und das Mainbord eingebaut.
    Alle Anschlüsse hatte ich nach vorn verlegt und eine Tastatur
    in einem abgesägten CBM610 (was für eine Blasphemie!) mit nem Tast64
    Modul angeschlossen.
    Für den Standard Kernel gab es einen Patch, man musste die Tastaturtabelle auf glaube ich 96 Tasten vergrössern.
    Ich weiss noch wie ich im EXOS Kernel freie Bereiche gesucht habe, um das da auch rein zu bekommen.
    Habe ich über viele Jahre genutzt. Irgendwann habe ich dann aus Retrogefühlen wieder
    alles zurück gebaut.

    Wir sollten Volkswagen fragen, ob man bei denen Autos kaufen kann, die ab Werk mit Commodore Rechnern vollgepackt sind :saint:


    Ich denke bei mir kamen viele glückliche Unstäbde zusammen. Also keinen Neid aufkommen lassen.


    @baxt3r: dein Kofferraum ist bei weitem cooler als meiner.


    Ich habe einen Kollegen der vor einigen Jahren seine Apple 1+2 Rechner zum Ekektroschrott gebracht hat. Er ist jetzt aber in guter Betreuung und darf bald die geschlossene wieder verlassen.


    Sein wir dich froh, dass die Leute die Rechner weitergeben und nicht in den Elektroschrott geben. Ich versuche die Rechner so oder so wieder in den Umlauf zu bringen und die Erlös gehen zu Gunsten eines lokalen Vereins für Kinder. So haben alle was davon.


    Im Moment muss ich erstmal nicht rettbaren Schrott (Netzteile (wer sammelt die nochmal?)) und den Dreck los zu werden.


    Da fragt man sich schon: nur Tastatur reinigen und nit Board in ein neues Gehäuse packen, oder auch die Gehäuse bleichen?
    Bei der vielen Bleiche die ich da brauche steht bald das BKA vor der Tür :anonym

    Vom Einsatz gibt es keine Bilder. Wenn ich nächste Woche Zeit habe mache ich ggf noch Einzelfotos. Manche sehen echt fertig aus.


    Und wenn ich mit der Sichtung durch bin gibts ggf auch was für den Marktplatz.

    Bei mir war heute Weihnachten+Geburtstag+Ostern!
    Ich bekam 18(!) C64, diverse 1541, Monitore und Drucker geschenkt.


    Die C64 liefen ca 15 Jahre als Steuercomputer im Dauerbetrieb in einer Gärtnerei. Danach lagen sie ca. 15 Jahre
    im Keller. Auf dem Foto sehen sie weisser aus als sie wirklich sind.
    Ich würde mal sagen 50 Shades of yellow and brown.


    Mal sehen wieviele von den Rechnern noch laufen :D