 

waitmouse:						; diese LABEL steht als Referenzpunkt für das bne
	move.w	$dff006,$dff180		; gib den Wert von $dff006 in $dff180
								; also von VHPOSR in COLOR00
	btst	#6,$bfe001			; linke Maustaste gedrückt?
	bne.s	waitmouse			; wenn nicht, kehre zu Waitmouse zurück
								; und wiederhole
	rts							; Ende, steig aus

	end

1. erster Test von vasm
===============================================================================

Die Dateien test.s und vasmm68k_mot.exe befinden sich in einem Verzeichnis
test01. Wir wechseln über die Eingabeaufforderung in das Verzeichnis.
z.B. unten neben Start "cmd" eingeben für die Eingabeaufforderung und in das
test-Verzeichnis wechseln. z.B.

C:\Users\Administrator>G:		; entsprechendes Laufwerk
G: cd G:\Amiga\vasm\test01		; euren Pfad natürlich...
G:\Amiga\vasm\test01>dir		; sind wir richtig? 
G:\Amiga\vasm\test01>vasmm68k_mot -Fhunkexe -o test -nosym test.s

Die vasm-exe-Datei wird ausgeführt und es wird eine ausführbare Datei "test"
erstellt, welche in WinUAE über die shell gestartet werden kann.

in WinUAE/shell:
>test 

Dieses Verfahren gilt wenn eine Exe-Datei erstellt wird. Es können mehrere
Assemblerdateien vorhanden sein, die dabei über include eingebunden werden.

2.  über die Power-Shell
===============================================================================

(Alternative Methode über die Power-Shell)
- in das Verzeichnis test01 wechseln
- dort Shift-Taste drücken und rechte Maustaste
- im Kontextmeü PowerShell-Fenster hier öffnen 
PS G:....>dir
test01> .\vasmm68k_mot -Fhunkexe -o test1 -nosym test.s
vasm 1.9a (c) in 2002-2022 Volker Barthelmann
vasm M68k/CPU32/ColdFire cpu backend 2.5a (c) 2002-2022 Frank Wille
vasm motorola syntax module 3.15d (c) 2002-2022 Frank Wille
vasm hunk format output module 2.13a (c) 2002-2021 Frank Wille

(You can run .exe files in PowerShell using three different methods:
Typing ".\" followed by the name of the file.)

3. wichtige Optionen:
===============================================================================

-Fhunkexe		; ausführbare Datei erstellen
-o				; Name der Output-Datei
-nosym			; keine Symbole
-quiet			; Unterdrückung der Namen

>vasmm68k_mot -Fhunkexe -o test -nosym test.s			; original
>vasmm68k_mot.exe -Fhunkexe -nosym test.s -o test		; getauschte Plätze
>vasmm68k_mot -Fhunkexe test.s -o test -nosym			;  - " -
>vasmm68k_mot -Fhunkexe -nosym -quiet test.s -o test 	; 

4. batchfile
===============================================================================

Alternativ kann dieser Weg auch über eine Batch-Datei erfolgen. Dabei werden
die entsprechende Anweisungszeilen mit Optionen und Programmnamen in eine 
Batch-Datei geschrieben und z.B. über den Doppelklick gestartet.
(siehe Lektion 20: batchfile)

Aufruf:test01.bat

5. makefile
===============================================================================

Die dritte Möglichkeit ist die Programmerstellung über einen Makefile.
(siehe Lektion 22: makefile)

Zum Aufruf die Dateien makefile_test01a bzw. makefile_test01b umbenennen in 
makefile.

#makefile_test01a
AS = vasmm68k_mot
ASOPT = -Fhunkexe -nocase -quiet

all: test

test: test.s
	vasmm68k_mot -Fhunkexe -o test -nosym test.s

Aufruf: >make

;----------------
#makefile_test01b
AS = vasmm68k_mot
ASOPT = -Fhunkexe -nocase -quiet

all: test

test: test.s
	$(AS) $(ASOPT) -o $@ $<	
# vasmm68k_mot -Fhunkexe -nocase -quiet -o test test.s

Aufruf: >make

6. CODE(acrx2): 
===============================================================================
PS D:\asm-kurs\Listings22\test01> make
vasmm68k_mot -Fhunkexe -o test -nosym test.s
vasm 1.9a (c) in 2002-2022 Volker Barthelmann
vasm M68k/CPU32/ColdFire cpu backend 2.5a (c) 2002-2022 Frank Wille
vasm motorola syntax module 3.15d (c) 2002-2022 Frank Wille
vasm hunk format output module 2.13a (c) 2002-2021 Frank Wille

CODE(acrx2):              22 bytes

acrx2 ?

Das sind Section-Attribute, so wie sie z.B. in der std-Syntax (GNU-as)
üblich sind.

- a: Allocated. Eine Section ohne dieses Flag würde zwar Symbole (Labels)
mit den passenden Adressen definieren, aber keinen im Output sichtbaren
Inhalt haben.
- c: Section enthält Code (Instruktionen).
- d: Section enthält initialisierte Daten.
- u: Section enthält uninitialisierte Daten.
- r: Section ist lesbar.
- w: Section ist beschreibbar.
- x: Section ist ausführbar.

Die meisten Flags sind für AmigaOS irrelevant. 'x' würde z.B. bei Unix
Betriebssystemen verwendet um die Section in MMU-Pages zu laden, die von
der CPU ausgeführt werden dürfen (Speicherschutz). 'w' würde man nicht
setzen, wenn die Section in ein ROM geschrieben wird.

Die Ziffer steht für das minimal benötigte Alignment in Bytes der Section.
Hätte in dieser Code-Section z.B. ein "cnop 0,4" gestanden, dann würde aus der
"2" eine "4" werden. Dann reicht es nicht mehr, wenn die Section nur an eine
durch 2 teilbare Adresse geladen wird.
