= Info = Beschreibung:: Installation von C64 Emulator und Cross-Compiler <> = Toolchain = Im wesentlichen geht es hier um die Installation und Konfiguration von dem C64 Emulator Vice. Hinzu kommt der C64 Cross-Assembler ACME und wie beide Programme zusammen arbeiten um C64 Assemblerprogramme zu entwickeln und diese auszuführen. == Vice == Der C64 Emulator. === Installation === Installation unter Linux (Debian). Anleitung: * [[https://www.c64-wiki.de/index.php/VICE#Installation_unter_Linux]] ''debian Paket installieren'': {{{ aptitude install vice }}} Fehlende ''ROMS'' nach `/usr/lib/vice` installieren in dem die Verzeichnisse aus dem Windows Archiv dort hin kopiert werden. ''Starten'': {{{ x64 }}} === Installation testen === ''Test Image'':<
> Spiel Aztec Challange von http://www.c64games.de (-> Suche: "Aztec Challenge") ''Emulator starten'':<
> Entpacken und Emulator mit Diskettenimage als Argument starten (Programm startet automatisch). {{{ x64 Aztec_Challenge_\(HS\).d64 }}} ''Manuelles laden:''<
> Zeige Disketteninhalt: {{{ LOAD "$",8 LIST }}} Lade 1. Programm von Diskette in den Speicher und dessen Start: {{{ LOAD "*",8,1 RUN }}} ''Joystick (Port 2) Konfiguration'': (auf die Cursor Tasten legen) * Einstellungen -> Joystick Einstellungen -> Joystick in Port #2 -> ''Tastaturbelegung A'' * Einstellungen -> Joystick Einstellungen -> Keymap definieren: ''Keyset 1'' * up: Cursor-up * down: Cursor-down * left: Cursor-left * right: Cursor-right * fire: Right-Ctrl * Einstellungen -> Joystick Einstellungen -> ''Joystick Keymaps erlauben'': AN ''Einstellung speichern'': * Einstellungen -> Einstellungen speichern == Assembler ACME == Cross-Assembler für u.a. dem 6502 Prozessor des C64. Referenzen: * Wikipage: http://www.c64-wiki.de/index.php/ACME * Quellcode: http://sourceforge.net/projects/acme-crossass/ ACME muss manuell gebaut und in das System eingebunden werden. Debian: * Verzeichnis für die Quellen: `/usr/local/src` * Installation hier hin: `/usr/local/bin` * Nutzer muss der Gruppe staff angehören (existierenden Nutzer zu Gruppe staff hinzufügen: `usermod -a -G staff `) === Download === Download (svn checkout): {{{ cd /usr/local/src svn checkout svn://svn.code.sf.net/p/acme-crossass/code-0/trunk acme-crossass-code-0 }}} === Installieren === ''Build'': {{{ cd acme-crossass-code-0/src make }}} ''Installieren'': Das `install` Target des Makefiles kopiert das gebaute `acme` Binary nach `/usr/local/bin`. {{{ make install }}} Falls es zu dem Fehler: {{{ install -d /usr/local/bin install: cannot change permissions of '/usr/local/bin': Operation not permitted Makefile:61: recipe for target 'install' failed make: *** [install] Error 1 }}} kommt, einfach die Zeile (hier 61) auskommentieren. Das Makefile versucht hier das `usr/local/bin` Verzeichnis erneut anzulegen. ''Beispiel'': c64-test - Gibt den String "Simples Beispiel" aus. * [[attachment:c64-test.tgz]] Bauen und starten: {{{ cd asm/c64-test make build make run }}} Vice legt ein Diskettenimage mit dem Kompilat als Inhalt an und lädt dieses. Eventuell muss noch das `~/.vice` Verzeichnis angelegt werden. Ansonsten passiert erst einmal nichts und im Vice Output steht: {{{ Disk Create: Error - Cannot create disk image `/home/damicha/.vice/autostart-C64.d64'. AUTOSTART: Error - Error creating autostart disk image: /home/damicha/.vice/autostart-C64.d64 }}} Das Programm muss jetzt noch gestartet werden: {{{ SYS 49152 }}} `SYS` startet ein Maschinenprogramm an Speicheradresse `49152` (`0xc000`) an dem das Programm geladen wurde. === Vim Syntax === ACME Syntax Datei für vim zum Syntax Highlighting. Vim Syntax: * http://codebase64.org/doku.php?id=base:syntax_highligthing_acme_vim Nach `~/.vim/syntax/` kopieren. Aktivieren mit: {{{ set ft=acme }}} oder im Source File (`modeline` Option muss aktiv sein): {{{ ; vim: ft=acme ; vim: noexpandtab tabstop=8 softtabstop=8 }}} oder in `.vimrc`, gilt dann aber für alle Dateien die mit `*.asm` enden. * `autocmd BufNewFile,BufRead *.asm set syntax=acme.vim` == Relauch64 IDE == Gibt es auch noch. Schöne clicky-bunti GUI mit Projektverwaltung, Charset und Sprite Editor.