C64 Assemblerprogrammierung

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

Nach langer Zeit, möchte ich mich mit der C64 Assemblerprogrammierung beschäftigen, aber lasst mich am Anfang beginnen 😉 :

Es begab sich zu einer Zeit…

dass ein 13jähriger, Eckernförder Junge (der auf den Namen Jörn hört), seinen ZX81 und sein geliebtes VCS-2600 verkaufte, um sich mit seinem Ersparten und einer weiteren Spende seiner Eltern einen Brotkasten zuzulegen.


Hier einige Bilder meines über 30 Jahre alten C64:

Die 1541 wurde allerdings vor einigen Jahren über ebay hinzugekauft, meine hatte ich verkauft um mir den Amiga zulegen zu können. Heute bereue ich diesen Verkauf, aber irgendwie musste das Geld für die neue „Freundin“ zusammengekratzt werden.

Kaum war ich im Besitz meines C64, wurde auch gleich der vermisste Reset-Taster eingebaut. Im Laufe der Jahre fanden noch ein ROM-Umschalter und ein weiterer Reset-Taster für die Floppy Einzug ins geräumige Gehäuse des Brotkasten.

 

Meine angesammelte Hardware habe ich übrigens unter Meine „altertümlichen“ Gerätschaften verewigt.


C64 Assemblerprogrammierung

Mittlerweile habe ich die 40 hinter mir gelassen, arbeite als Software-Entwickler und wurde vom Retro-Virus infiziert. Da ich seinerzeit für den C64 nur sehr wenig programmiert habe, später auf dem Amiga ging es erst richtig los, reizt es mich jetzt endlich mal mit der C64 Assemblerprogrammierung zu beginnen.

Jeder der ein ähnliches Interesse hegt, sei hiermit eingeladen, mich auf meiner Reise zu begleiten. Ich lerne selbst erst wieder, wie man für den C64 Programme entwickelt, während ich diese Seiten schreibe.

Falls ihr noch keinerlei Erfahrung mit der Programmierung habt, findet ihr auch Infos zu Zahlensystemen und eine ganz kurze BASIC-Einweisung. Außerdem gibt es Links zu allen benötigten Programmen und eine Beschreibung (teilweise inkl. Video), wie diese eingerichtet werden.

Da jede noch so lange Reise mit dem ersten Schritt beginnt, machen wir doch einfach den ersten…


Schrott!!Naja...Geht so...Ganz gut...SUPER! (51 Bewertungen | Ø 4,71 von 5 | 94,12%)

Loading...



Commodore Banner Exchange


 
Mini-Blog Schlagworte…

 

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

34 Gedanken zu „C64 Assemblerprogrammierung“

  1. Hallo,

    ich bin immer begeistert über deine Retropie Tutorials.
    Nun bin ich auf etwas anderes Projekt gestoßen. Aber da ich mich nicht damit auskenne, wage ich mich da nicht dran.

    Ich will hier auch keine Links posten. Einfach mal nach Happiga Googlen.
    Dann kommt die Game Center seite.

    Oben rechts ist dann der Kartenreiter Happiga.

    Mit Happiga hat man ein Rasberry PI der direkt nach dem Einschalten in die Workbench Bootet.
    Ist eine sehr tolle sache wie ich finde. Sogar AGA soll funktionieren.

    Es ist zwar ein YouTube Video mit einem Videotutorial verlinkt. Aber dieses Tutorial ist eigentlich für das Gamecenter gedacht und nicht für Happiga.

    Ich wäre Dir sehr dankbar wenn Du darüber ein Tutorial machen würdest 🙂

  2. Guten Morgen
    Ich bin zufaellig auf die seite geraden, programmiere auf dem c64 einen hex editor den anhand der zu ladenen datei dad laufwerk selbst berechnet, ein bereich kann mskiert und gestartetcwerden umschaltun des wertes erfolg binaer, dezimal oder durch +¬ bewegung im hexafenster dur ch pfeiltasten dateien koennen geladen und gespeichrt werden. Adresse 8-11. Desweiteten programmiere ich noch in qbasic.
    Mfg lars

    1. Igitt, das kommt davon, wenn man Links manuell einfügt. Ein kleiner Zahlendreher und nichts geht mehr. 😉

      Danke für den Hinweis, jetzt sollte der Link wieder klappen.

      Gruß,
      Jörn

  3. Hallo Gemeinde, ich bräuchte mal eine kurze Hilfe. Ich bin zwar noch Anfänger im Codes, das aber schon seit 30 Jahren 🙂 ich versuche verzweifelt den Basiccode open 1,4,1 in Assembler zu machen und auch noch den dazugehörenden Printbefehl. Also das Gerät öffnen und die Daten an den Drucker senden. Ich suche nun schon lange rum und finde einfach nichts, welche Register ich laden muss undxwohon ich springen soll. Wäre echt gut wenn mir einer eine Hilfe dazu schreiben könnte….. Danke euch…. Frank

  4. Echt geil wie du das Programmieren des C64 beschreibst! Ich bin immer am Abzählen der der Taktzyklen des 6510 gescheitert; um was halbwegs flackerfreies im Rasterzeileninterupt hin zubekommen…

  5. Wir haben schon miteinander geplaudert. Deine Seite rockt, mach‘ weiter so! Geniale Tutorials 🙂

    Wie wär’s mal mit was zu Copperbars?

    1. Hallo,
      danke fürs Lob.

      Ein paar Grundlagen zu Rasterbars gibt es ja schon. Fehlt dir da noch etwas oder möchtest du für den Amiga-Programmieren, da du den Begriff Copperbars verwendest?

      Gruß,
      Jörn

      PS: Dein Wunsch nach einer Einführung zum Thema Sprite-Multiplexer habe ich nicht vergessen, der steht noch auf der Liste. Ist ja auch erst ein Jahr her 😉 .

  6. Eine wirklich tolle und interessante Seite! Es macht Spaß hier zu stöbern und immer wieder zu denken „Ach ja, so war das…“

    Top!

  7. Hallo, total interessante Seite auf Deutsch. Ich bin seit die online ist fast täglich am lesen. Leider bin ich in programmieren nicht so die Leuchte, hoffe aber durch viel lesen doch mal die Kunst zu erlernen. Ich hoffe die Seite bleibt ewig on und es weitere Tutorials in Erklärungen rund um die Commodores in Deutsch. Interessant ist auch http://www.mingos-commodorepage.com. Dort kann man auch viel n deutsch erfahren . Vielleicht helfen dir einmal,ein paar Pros mit den Ausbau deiner Seite aus dem forum64.de gibt ein Haufen Leute mit tollen wissen. Leider werden dort nie wie es in anderen Foren (zB. Ich Bau mir einen Rennwagen)die sich mit anderen Themen beschäftigen genaue begleitende Anleitungen von den Usern online gestellt. Die man dann zwecks lernen nachspielen könnte. Sowas vermisse ich dort. Ich finde es toll sich mit einer ziemlich abgeschlossenen Thematik wie den C64 zu beschäftigen, wenn man heute in Windows was lernt kann man hoffen noch ein paar Dinge beim nächsten Update zu können, sowas nimmt mir jede Lust sich mit der ständig ändernden Pc Thematik zu befassen. Mir ist erst heute bewusst was für eine Tragik hinter den Verlust der Fa. Commodore durch den Konkurs steht. Abgeschlossenes System das man einfach komplett durchschaut gibt es heute leider nicht einmal mehr im konsolenbereich

  8. Ja laaange ist es her… knapp mehr als 30 Jahre habe ich in den Unterlagen eine mini Sammlung an Papieren gefunden, die damals mit Mr. Cursor angereichert wurden. Hier nun der erste weg der „Multi Raster Routine“ die zur damaligen Zeit noch nicht vollendet war, aber das Zeitalter der RasterRoutine eingeläutet hat.
    LDA#$BC
    CMP$D012
    BNE$ [auf CMP]
    BIT$EAEA
    LDA#$15
    STA$D018
    LDA#$C8
    STA$D016
    BIT$EAEA
    LDX#$C2
    CPX$D012
    BNE$ [auf adresse CPX]
    LDY#$00
    JMP$[auf JSR]
    JSR$[auf adresse LDX#$06]
    LDA#$19
    STA$D011
    RTS
    LDX#$06
    DEX
    BNE$ [ auf DEX]
    LDX#$06
    nop
    nop
    JMP$[ auf LDA$1500,Y]
    nop
    nop
    nop
    nop
    nop
    LDX#$07
    LDA$1500,Y [ eintritt von ende]
    STA$D020
    STA$D020
    LDA#$00 [Sprungmarke * siehe unten]
    STA$D021
    LDA$1600,Y
    STA$D020
    INY
    CPY#$30
    BCS$ [Sprungmarke LDA '$00 siehe unten]
    DEX
    BNE$ [Sprung auf LDA$1550,Y ..siehe unten]
    LDA$1551,Y
    STA$ ( auf Sprungmarke *)
    LDX$ 1600,Y
    LAD$ 1500,Y
    INY
    NOP
    NOP
    BIT$D020
    LDX$154F,Y
    STX$D021
    STA$D020
    STA$D020
    JMP$ [adresse zurück auf LDX #$07]
    LDX#$06
    DEX
    BNE$ [ auf adresse DEX]
    LDA#$00 [ Sprungmarke auf BCS$]
    STA$D020
    STA$D021
    LDA#$C8
    STA$D016
    LDA#$15
    STA$D018
    LDX#$02
    DEX
    BNE$ [ Sprung auf DEX]
    RTS
    LDA$1550,Y [ Sprung von BNE$..siehe oben]
    STA$ [ Sprung auf * .. LDA#$00]
    NOP
    NOP
    NOP
    BIT$EA
    NOP
    NOP
    NOP
    JMP$ [ Sprung auf LDA$1500,Y]

    Das waren die ersten Gehversuche..30 Jahre her… Mr. Cursor hat sie dann verfeinert. bzw. Der Spezi, der kein zuhause hatte..:-)

    LEVEL 99, Mr.Magic..

    Gruß an die alte Bande..wenn Ihr noch lebt….

  9. Hallo Jörn, kam zufällig auf deine Seite. Bei mir laufen noch 2 C64 und steuern meine Eisenbahn. Eigentlich 1 64er und ein 128er der läuft aber im 64er Modus. Das komm weil das Programm ziemlich fertig war als ich den 128er bekam. Bis jetzt liefen Beide einwandfrei, und das seit über 30 Jahre. Programmiert habe ich mit Super-Basic.

    1. Hi.
      Da sieht man mal wieder, wie zuverlässig der C64 ist. Super-Basic sagt mir jetzt erstmal nichts, allerdings habe ich mich auch nie viel mit BASIC beschäftigt.
  10. Hallo interessant zu sehen, dass es immer noch Leute gibt die sich noch mit der Programmierung am C64 beschäftigen. Ich habe ein Problem, bei dem du mir vielleicht behilflich sein könntest. Würdest mir und meinem Schwager ne Freude bereiten. Wir spielen gelengtlich das Spiel „Soccermaster“, einer der bekanntesten und beliebtesten Fussball Manager. Nun würden wir gerne die Mannschaften und Spielernamen, gegen aktuelle Vereine ändern. Leider ist dort ein Schutz im Spiel, so dass ich die Programmierliste garnicht einsehen kann. Ich gehe wie folgt vor…… LOAD“Soccermaster“,8,1……nach dem Ladevorgang gebe ich dann nicht RUN ein sondern LIST und dann folgt das Problem. Anstatt sich die Programmierliste öffnet, kommt 10 SYS2002:REM (c) BY Nils Kron. Wie kann ich das umgehen oder wie komme ich in die Programmierliste ? Wäre super wenn du uns weiter helfen könntest

    1. Hi,
      mehr als diese Zeile wirst du vom BASIC auch nicht sehen, da es sich um ein Assemblerprogramm handelt.

      Um die Vereinsnamen zu ändern, müsstest du entweder

      • den original Sourcecode haben, anpassen und das Programm erstellen
      • das Programm disassemblieren, ändern und neuerstellen
      • es (z. B. mit einem Hexeditor) patchen

      Da das erste wohl eher unwahrscheinlich ist, bleiben nur die letzten beiden Punkte.

      1. Diese Aufgabe löst man am besten mit einem „Diskmonitor“, der Byte für Byte den gesamten Inhalt der Diskette durchgeht und abbildet.
        Sehr oft finden sich die Stringbausteine im Klartext, sie können dann direkt abgeändert werden, ohne die Programmstruktur zu beeinflussen.

  11. Hallo!
    Ich bin auch JG 1973 und seit den 80ern mit dem Virus infiziert. Damals war halt BASIC angesagt, Assembler war was für die „Experten“, die Zeit verging so schnell, bald (1988) war der erste PC da und heute programmiere ich C#, ASP.NET, MS SQL Server usw.

    Seit einem Jahr sammle ich die alten Dinger (bisher 3 x C64, A500, A600, A2000, Atari ST1040) und möchte nun vieles nachholen und da gehört auch das Programmieren des 6510 dazu.

    Spannende Sache, muss ich sagen, die Bauweise und Fähigkeiten der alten kleinen Kiste ist unglaublich.

    Tolle Seite, mit viel Liebe und Herzblut gemacht, Daumen hoch!

    Viele Grüße aus Gröbming (Austria)

    Thomas

  12. Hallo !
    Mein Name ist Alexander (43 ) , bin ebenso mit VC-20 + C64 aufgewachsen ! Mehr als ein wenig Basic war bei mir damals nicht drin da ich einfach zu Faul war etwas zu lernen 😉 Dafür interessiere ich mich heute umso mehr dafür und bin gerade dabei Assembler 6502 / 6510 zu erlernen , zumindest versuche ich es zu verstehen , was eine echte Herausforderung für mich darstellt da ich in Mathe damals einfach nur schlecht war 🙂
    Vielen Dank für die tolle Seite hier und ich finde es schön das es noch Leute gibt die sich mit der Materie befassen und Ihr Wissen an andere weitergeben !

    LG aus Mainz 😉
    Alex

  13. Hallo Jörn, sag mal gibt es den Assemblerkurs als PDF o.ä.? Tue mich mit dem lesen am Bildschirm immer sehr schwer….das alter 😉

    Grüße aus Kropp

    1. Hallo Roman,
      bisher nicht.

      Ich habe schon mal mit einem PlugIn ‚Konvert WordPress to PDF‘ experimentiert, das Ergebnis war allerdings sehr ernüchternd. Ich hätte zuviel Zeit in die Nachbearbeitung stecken müssen und die fehlt mir (immerhin gibt es noch soviel ‚Neues‘, über das ich schreiben möchte).

  14. Hallo,
    wollte einfach auch mal einen Gruß hinterlassen.
    Habe auch die 40 hinter mir gelassen und bin mit Laser210 und C64 ganz in der Nähe von Eckernförde gross geworden. Ich habe mehrmals versucht in Assembler einzusteigen, doch irgendwie fehlt mir wohl der interllektuelle Hintergrund, soll heissen bin wohl nicht talentiert…schade.
    Trotzdem danke für diesen interessanten Blog und einen Guten Rutsch ins neue Jahr 🙂
    Roman

  15. Hallo!

    Es ist absolut toll, dass es noch Leute gibt, die sich eine solche Mühe
    machen und eine so „informativ-nostalgische“ Website aufbauen. Hier
    steckt „viel Liebe drin“, wenn ich das so sagen darf. 🙂
    Befinde mich auch schon seit einiger Zeit auf einem Retrotrip und
    experimentiere mit Assembler.

    Frohe Weihnachten und einen guten Rutsch!

    1. Hi,
      danke fürs Lob!

      Eigentlich schreibe ich nur das auf, was ich selbst schon immer wissen wollte, schön, dass sich auch ‚andere‘ dafür interessieren.

      Ebenfalls einen schönen 2. Weihnachtstag und einen guten Rutsch.

  16. Durch meinen aktuellen Retro-Trip bin ich auf diese Seite gestossen. Es gibt leider wenig deutsche Seiten, die sich mit diesem Thema heute noch beschäftigen. WOW! Toll gemacht und sehr informativ!. Ob ich doch nochmal anfange 6510 Assembler in meinen Alter(40+) zu lernen?Ich habe damals in den 80igern zwar schon damit angefangen, aber ich konnte dem Amiga dann einfach nicht widerstehen 🙂 Jucken tut es auf jeden Fall schon. Alleine schon wegen dem Nostalgierflair 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Protected by WP Anti Spam