Commodore Cross-Entwicklung unter Windows XP
Mit den geeigneten Tools kann man unter Windows [XP] schnell Programme entwickeln und dank des VICE-Emulators auch gleich testen. So kommt man schnell zum Ergebnis.
Installieren
Folgende Programme werden benötigt, sie von der Homepage des jeweiligen Herstellers downloaden. Von npp die Zip-Version, nicht die mit dem Installer.
- acme0.96.4-1win.zip von https://forum.emu64.net/acme/
- WinVICE-3.1-x86.7z von https://vice-emu.sourceforge.io/windows.html
- make-3.81.exe von http://gnuwin32.sourceforge.net/packages/make.htm
- npp-7.8.7.bin.zip von https://notepad-plus-plus.org/downloads/v7.8.7/ (32-Bit-Version zip-Package nehmen)
So installieren: in c:\ einen ordner cbm anlegen Die Ordner mit den Programmen dorthin verschieben, und der Einfachheit halber in acme, make, npp und vice umbenenen. Achtung - bei Make braucht es das Programm make.exe und die 2 dlls. Siehe Bild. Man kanns natürlich auch ganz anders machen, ich habe mich jetzt mal für das entschieden. Diese Lösung hat den Vorteil, dass man dann ganz einfach das Verzeichnist c:\cbm zippen und auf einen anderen Rechner verschieben kann. Alle Einstellungen usw. sind dann erhalten. Man kann dieses Zipfile dann z. B. cbm-xdev-xtra-0.20.zip nennen und auf dem USB-Stick mitführen.
Los gehts - einfaches Projekt Basic Boot
folgende 4 Dateien mit Notepad++ erstellen (oder einfach das zip mit allem unten Downloaden und entpacken).
constants.asm
;; Start of BASIC program
basic = $0801
;; Background color
bgcol = $d021
;; Border color
bocol = $d020
basic-boot.asm
; A BASIC booter, encodes `10 SYS <address>`.
; Macroified from http://www.pouet.net/topic.php?which=6541
!source "constants.asm"
!macro start_at .address {
* = basic
!byte $0c,$08,$00,$00,$9e
!if .address >= 10000 { !byte 48 + ((.address / 10000) % 10) }
!if .address >= 1000 { !byte 48 + ((.address / 1000) % 10) }
!if .address >= 100 { !byte 48 + ((.address / 100) % 10) }
!if .address >= 10 { !byte 48 + ((.address / 10) % 10) }
!byte $30 + (.address % 10), $00, $00, $00
* = .address
}
; A cooler example is to write
;
; 10 SYS <address>: REM <backspaces>Your comment
;
; When the user types LIST, he will just see
;
; 10 Your comment
;
; but still be able to run it.
; For this, see http://codebase64.org/doku.php?id=base:acme-macro-tut
index.asm
!source "basic-boot.asm"
+start_at $0900
; Set background and border to black
ldx #$00
stx bgcol
stx bocol
; Flicker border and background
.loop
inc bgcol
inc bocol
jmp .loop
makefile
TARGETS := index
C1541 := c:\cbm\vice\c1541.exe
X64 := c:\cbm\vice\x64sc.exe
.PRECIOUS: %.d64
all: $(TARGETS)
%.prg: %.asm
c:\cbm\acme\acme.exe --cpu 6510 --format cbm --outfile $@ $<
%.d64: %.prg
$(C1541) -format foo,id d64 $@ -write $<
%: %.d64
$(X64) $<
clean:
rm -f $(TARGETS) *.prg *.d64
Das eigentliche Programm inst index.asm. Konstantendefinition sollte klar sein. Basic-Boot.asm generiert die SYS-Zeile, die das dahinter assemblierte Programm startet. Das Makefile ist die Steuerdatei für das ganze, um so mehr zu automatisieren. Braucht man nicht zwingend, wenn man eh nur eine Datei assemblieren will und alles mit include löst.
Jetzt kann man make eingeben, das Programm wird übersetzt und im Vice gleich gestartet. Ich gebe es hier komplett mit dem Pfad ein. Aber man kann auch einfach path setzen:
path %PATH%;c:\cbm\make
Ausführen des Make-Kommandos direkt aus Notepad++
NppExec-Plugin installieren
- folgendes von https://sourceforge.net/projects/npp-plugins/files/NppExec/ downloaden
NppExec_06RC3_dll.zip
Die Datei NppExec.dll aus dem Archiv in den Plugin-Folder der Notepad++-Installation kopieren, in diesem Fall
c:\cbm\npp\plugins
- Notepad++ starten, dann das Plugin so installieren:
- Settings -> Import -> Import plugin -> NppExec.dll auswählen und importieren.
- Notepad++ neu starten.
NppExec-Plugin konfigurieren
- Starte Notepad++
- F6 drücken, um das Execute-Fenster zu öffnen
- die folgenden Kommandos eingeben:
npp_save CD $(CURRENT_DIRECTORY) c:\cbm\make\make.exe
- Save klicken
- Einen neuen Namen für das Skript eingeben (Bsp. “basic_boot”)
- Gehe im Menü zu: Plugins -> Nppexec -> advanced options -> Menu Item
- In der Combobox mit Namen ‘Associated Script’ das Script im Dropdown-Menu auswählen, Add/Modify auswählen und OK klicken.
- Notepad++ neu starten
- Gehe im Menü zu: Settings -> Shortcut mapper -> Plugins commands -> Skript-Name suchen (hier ganz unten!)
- Skript-Name anklicken, gewünschten Shortcut definieren (F10), OK klicken
- Überprüfen, ob jetzt durch das drücken von F10 der Befehl auch wirklich ausgeführt wird
Links, die bei der Erstellung dieses Artikels geholfen haben, mit weiterführenden Informationen
https://www.c64-wiki.de/wiki/ACME
https://csl.name/post/c64-coding/
https://vice-emu.sourceforge.io/
https://www.c64-wiki.de/wiki/C64_Crossdevelopment_unter_Windows_mit_Notepad%2B%2B
Artikel erstellt am: 11 June 2020 , aktualisiert am 11 June 2020