ich höre häufig das die Leute "Eclipse und WUDSN / MADS-Assembler" verwenden. Ich wollte doch mal meine Umgebung aufzeigen.
Die ist noch mehr für eingefleischte Entwickler... Die ständig zwischen Windows und Linux wechseln wie ich. Mal der Windows Laptop, dann der Linux Desktop
* Ich verwende zum Editieren den IntelliJ-Editor in der Community Edition. Die Suche zum schnellen Auffinden von Code/Dateien ist einfach besser. Auch die Git-Integration ist recht gut gelungen, obwohl ich hier eher die Konsole/Terminal verwende. Überhaupt verwende ich immer wieder gern das Terminal. Für Git gibt es auf der Konsole das "Tig (Text mode Interface)" (https://jonas.github.io/tig/)
* Als Assembler nutze ich den atasm, da dieser als simples Konsolen-Programm unter Linux & Windows vorliegt und per Parameter gesteuert werden kann. Zudem ist dieser Assembler MAC65 kompatibel.
* Als Emulator verwende ich meist den atari800, weil auch hier die Parameter sehr gut sind und der Turbo-Modus bei mir mit Faktor 200 einfach unschlagbar ist. Den Altirra verwende ich vorzugweise zum Debuggen, wenn scharfes Hingucken einfach nicht mehr reicht.
* Meine Programme bestehen meist auf vielen kleinen einzelnen Dateien für Zeichensätze, Grafiken, Funktionen, Libraries, etc. um diese zu bauen verwende ich das gute alte Makefile.
* Da ich aber eher Hochsprachenaffin bin und mir Assembler einfach zu unleserlich ist, habe ich mir einen einfachen Compiler selbst geschrieben. (Erst in TurboBasic und mittlerweile gibt es das Teil in Java) Der hält das Programm komplett zusammen. (https://github.com/the-atari-team/wnf.compiler) Und der Compiler erzeugt kein Binary, sondern Assembler-Source-Code, das ist praktisch zum Spicken. Zudem sieht der Source fast aus wie Turbo-Basic. Wer jetzt glaubt, dieser "einfache" Compiler kann nix, der mag irren, Oxygene-Be wurde damit erstellt. (https://github.com/the-atari-team/tat.oxygene.be) Das zugrunde liegende Original-Oxygene hatte ich in den späten 80er noch in Assembler geschrieben.
Das folgende Listing zeigt ein Makefile, es braucht:
* atasm irgendwo im $PATH
* ../firmware/ATARIXL.ROM
* ../compiler/LiteDOS-DD-starter.atr (http://www.mr-atari.com/Mr.Atari/LiteDOS/) wie man sich eine DD Disk erstellt, steht in der Anleitung.
* xldir irgendwo im $PATH (https://github.com/the-atari-team/lla.xldir.disktool)
* Das Listing (asm-text.inc) (viewtopic.php?p=2743#p2743) Man könnte auch etwas eigenes nehmen.
Code: Alles auswählen
ASM=atasm
ATARI800_OPTIONS='-kbdjoy0 -nosound'
FIRMWARE=../firmware
COMPILER=../compiler
.PHONY: clean all prepare
OBJ_FILES=\
ASMTEXT.65o
INCLUDES=
all: $(INCLUDES) $(OBJ_FILES)
clean::
rm -f $(OBJ_FILES) $(INCLUDES)
rm -f *.COM *.ASM *.65o
rm -f .insert.txt
rm -f *.log *.lab
clean::
rm -f $(DISKNAME)
# Auflistung der OBJ_FILES immer
# targetname: <'mach was' ist abhängig von ...>
# <mach was>
ASMTEXT.65o: asm-text.inc
$(ASM) $< -o$(@) >/dev/null
cp $@ $(@:.65o=.COM)
prepare:
rm -f .insert.txt
prepare_files: prepare
echo "ASMTEXT.COM -> ASMTEXT.AU0" >>.insert.txt
DISKNAME=asm-disk.atr
create_atr_disk: prepare_files
xldir $(COMPILER)/LiteDOS-DD-starter.atr insert .insert.txt $(DISKNAME)
start_atari800: create_atr_disk
atari800 \
-hreadwrite \
-H2 /tmp/atari \
-xlxe_rom $(FIRMWARE)/ATARIXL.ROM \
-xl -xl-rev 2 \
-pal -showspeed -nobasic \
-windowed -win-width 682 -win-height 482 \
-vsync -video-accel\
${ATARI800_OPTIONS} \
$(DISKNAME)
start: $(INCLUDES) $(OBJ_FILES) start_atari800
help:
@echo "Makefile for the Atari 8bit asm test"
@echo "usage:"
@echo "make - to create the whole disk"
@echo "make clean - remove all build files"
@echo "make start - start in atari800 emulator"
@echo "make help - show this list"
Ein "make start" würde es bauen, und sofort den atari800 Emulator hinterher anwerfen.
"make clean" räumt die "gebauten/temporären" Dateien wieder weg.
Der Aufbau dieser Art "Entwicklungsumgebung" scheint etwas zusammengefrickelt zu wirken, aber was soll ich sagen, es funktioniert gut.