Anbei ein uralter Code von mir, für diejenigen, die keine Crosscompiler mögen oder einfach gerne am PET entwickeln.
Der Assembler ist für $9000, $A000 oder für die dezimale Adresse 20000 zum testen.
Anbei auch ein kleiner Assembler Source zum Test.
Der Sourcecode wird einfach wie ein BASIC Programm eingegeben.
Mit DSAVE gespeichert und mit DLOAD geladen.
Der Assembler wird mit SYS 20000 (bzw. 36864 und 40960) aktiviert.
Danach gehen folgende Kommandos:
- 'a ... kompiliert den Quelltext
- 'label ... zeigt die Adresse eines Label (nach assemblieren mit 'a)
- '999 ... dezimale Zahl in HEX anzeigen
- '$99 ... HEX zahl in dezimal
Vor dem ersten Assembler Befehl muss die Zieladresse angegeben werden mit: *=adresse
Alternativ kann man den Code auch an einer anderen Adresse speicher: &=ablageadresse
Zahlen im Quellcode können wie folgt gemacht werden:
- dezimal: 12345
- hex2: $12 oder hex4: $2045
- binär: %10011100
- ASCII: "A"
- ASCII: 'P'
Daten Bytes werden einfach durch einen Punkt (.) gestartet, zB.:
100 .23,2345,$22,%10000001, "hello",0
Labels können beliebig lang sein.
Wenn nach Labels ein "=" kommt, ist es eine Zuweisung.
100 var=23
105 loop
110 lda #var
Mit ":" kann man wie in BASIC meherer Anweisungen hintereinander schreiben:
100 loop sta pointer,x:dex:bne loop