November 2021

Some Assembly Required. Crashkurs in Assemblerprogrammierung für den C64


Wer verstehen will, wie ein Computer funktioniert, kommt um das Thema Assembler/Maschinensprache nicht herum. Nur in dieser Sprache kommuniziert der Programmierer direkt mit der Maschine, lernt ihre Hardware-Elemente und Funktionsweisen kennen. Der 6502/6510-Assembler bietet hierfür den idealen Einstieg, ist er doch nicht nur einer der am leichtesten erlernbaren Assembler-Dialekte, sondern er ermöglicht auch die Programmierung ganz unterschiedlicher historischer Homecomputer von Commodore, Atari, Apple, Acorn und anderer. Die Kenntnis einer Assemblersprache erleichtert das Erlernen anderer Assemblerdialekte (sowohl für historische als auch aktuelle CPUs) ganz wesentlich, denn in ihren Grundsätzen sind sie alle gleich.

Im vierteiligen Crashkurs lernen wir 6502/6510-Assembler für die Plattform Commodore 64 kennen. Nach einer grundlegenden Einführung in den Aufbau und die Arbeitsweise des Systems und seiner Komponenten wird der übersichtliche Befehlssatz der CPU vorgestellt, einige Programmiertechniken und ihre Grundlagen (Binär- und Hexadezimalzahlensystem, Logik, Adressierungsarten). Dann entwickeln wir zusammen ein kleines Computerspiel für den C64, indem wir Betriebssystemroutinen und eigene in Assembler programmierte Algorithmen zum Einsatz bringen. Wir lernen die Programmierung der Ein- und Ausgabe (Joystick, Tastatur, Bildschrimspeicher, Soundausgabe mit dem SID) kennen, erhalten einen Einblick in bestimmte Betriebsystemroutinen des C64 und beschäftigen uns mit dem Timing, das für die Spielprogrammierung unerlässlich ist.

Der Kurs richtet sich an Anfänger und setzt keine Vorkenntniss in Programmierung oder Hardwarekenntnisse voraus. Programmiert wird über eine Entwicklungsumgebung (Relauch64, Debugger64) mit einem Emulator (VICE) auf einer modernen Platform (Mac/Windows/Linux). Alle Kursmaterialien (Literatur, Software, Informationen) werden zur Verfügung gestellt. Die erstellten Maschinensprache-Programme können selbstverständlich auch auf der Original-Hardware getestet werden. (Hierzu empfiehlt sich der Einsatz eines SD-Speicher-Moduls für den C64, z.B. MSD2IEC). Vor Beginn des Workshops sollten alle Teilnehmer ein lauffähiges Programmiersystem auf ihren Rechnern installiert haben. Die Anleitung hierzu wird mit der Anmeldebestätigung zum Kurs verwendet.

 

Anmeldung per E-Mail an: hoeltgen@computermuseum-oldenburg.de

Per E-Mail erhalten Sie mit der Anmeldebestätigung erste Informationen zum Kurs.
Anmeldungen bitte bis zum 22.10.2021.

Termine und Themen:

Dienstag, 2.11., 18-21 Uhr: Einstieg in die Thematik: Was ist ein Mikroprozessor? Was ist die MOS 6510? Was ist der C64? Was ist Assembler? Was ist Maschinensprache? Tools & Techniken für die Programmierung

Dienstag, 9.11., 18-21 Uhr: Binärzahlen, Hexadezimalzahlen, Flag-Register, Logik, Adressierungsarten, Übersicht über die Befehle, erste kurze Programme

Dienstag, 16.11., 18-21 Uhr: Schleifen, Sprünge, Programmaufbau (Hauptschleife, Subroutinen), Verwendung von BASIC-Routinen, I/O-Ports, Bildschirmspeicher, VIC-2 und SID

Dienstag, 23.11., 18-21 Uhr: Wir schreiben gemeinsam ein Computerspiel

Juli 2021

Chipmunk Basic:

Zum Mitmachen kannst Du Dir hier Chipmunk Basic herunter laden.

Beispiel-Programme:

Würfel

2 print tab (34);”WÜRFEL”
4 print tab (15);”CREATIVE COMPUTING MORRISTOWN, NEW JERSEY”
6 print : print : print
10 dim f(12)
20 rem DANNY FREIDUS
30 print “DIESES PROGRAMM SIMULIERT DAS WÜRFELN”
40 print “EINES WÜRFELPAAR”
50 print “SIE GEBEN EIN, WELCHE ZAHL DER COMPUTER WÜRFELN DARF”
60 print “ACHTUNG, SEHR GROSSE ZAHLEN DAUERN LANGE ZEIT.”
70 print “INSBESONDERE ZAHLEN ÜBER 5000”
80 for q = 1 to 12
90 f(q) = 0
100 next q
110 print : print “WELCHE ZAHL SOLL GEWÜRFELT WERDEN”;
120 input x
130 for s = 1 to x
140 a = int(6*rnd(1)+1)
150 b = int(6*rnd(1)+1)
160 r = a+b
170 f(r) = f(r)+1
180 next s
185 print
190 print “AUGENZAHL”,”ANZAHL”
200 for v = 2 to 12
210 print v,f(v)
220 next v
221 print
222 print : print “NOCHMAL?”;
223 input z$
224 if z$ = “JA” then 80
240 end

Nach oben