
	xref	init
;---------------------------------------------------------------------------
	xdef	startup
startup:
	bsr		init
	btst	#6,$bfe001	; linke Maustaste?
	bne.s	startup	
	rts					; Ende, steig aus
	
	end
	

zweiter Test vasm und vlink
===============================================================================

Sobald eine ausführbare Datei (executable) aus mehreren Objektdateien mit
Referenzierung erstellt werden soll wird ein AmigaOS linker wie vlink benötigt. 

Die Dateien startup.s, init.s vasmm68k_mot.exe, vlink.exe befinden sich in
einem Verzeichnis test02. Über die Eingabeaufforderung wechseln wir in das
Verzeichnis test02.

G: cd G:\Amiga\vasm\test02
G:\Amiga\vasm\test02>dir		; alle Dateien da?

Wir müssen jetzt beide Sourcedateien in Objektdateien übersetzen und 
anschließend linken.

G:\Amiga\vasm\test02>vasmm68k_mot -Fhunk -nocase -o startup.o startup.s 
G:\Amiga\vasm\test02>vasmm68k_mot -Fhunk -o init.o init.s
G:\Amiga\vasm\test02>vlink -bamigahunk -o test startup.o init.o 
Nach jeder Zeile natürlich Enter drücken:

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

(Alternative Methode über die Power-Shell)
- in das Verzeichnis test02 wechseln
- dort Shift-Taste drücken und rechte Maustaste
- im Kontextmeü PowerShell-Fenster hier öffnen 
PS G:....>dir
test02> .\vasmm68k_mot -Fhunk -nocase -o startup.o startup.s 
test02> .\vasmm68k_mot -Fhunk -o init.o init.s
test02> .\vlink -bamigahunk -o test startup.o init.o 

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

Es wurde ein fertiges Executable namens "test" erzeugt und wir können das
Ergebnis wieder in WinUAE testen:
>test 

Ausgabe ansehen:

Unter Amiga/WinUAE gibt es die Möglichkeit sich das Hex-Ergebnis anzusehen
>Ram Disk:test/vasm> type test opt h

unter der Power-Shell wäre der Befehl >Format-Hex test

PS G:\Amiga\vasm\test02>Format-Hex test

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   00 00 03 F3 00 00 00 00 00 00 00 01 00 00 00 00  ...ó............
00000010   00 00 00 00 00 00 00 07 00 00 03 E9 00 00 00 07  ...........é....
00000020   61 00 00 0E 08 39 00 06 00 BF E0 01 66 F2 4E 75  a....9...¿à.fòNu
00000030   33 F9 00 DF F0 06 00 DF F1 80 4E 75 00 00 03 F0  3ù.ßð..ßñNu...ð
00000040   00 00 00 02 73 74 61 72 74 75 70 00 00 00 00 00  ....startup.....
00000050   00 00 00 01 69 6E 69 74 00 00 00 10 00 00 00 00  ....init........
00000060   00 00 03 F2                                      ...ò

;------------------------------------------------------------------------------

Die Symbole sind noch drin, falls man sie debuggen möchte. Ansonsten kann man
sie mit der vlink-Option -s (strip) entfernen. (siehe Lektion19 - Debugger 
uaedbg)

PS G:\Amiga\vasm\test02>vlink -bamigahunk -o test startup.o init.o -s

PS G:\Amiga\vasm\test02>Format-Hex test

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   00 00 03 F3 00 00 00 00 00 00 00 01 00 00 00 00  ...ó............
00000010   00 00 00 00 00 00 00 07 00 00 03 E9 00 00 00 07  ...........é....
00000020   61 00 00 0E 08 39 00 06 00 BF E0 01 66 F2 4E 75  a....9...¿à.fòNu
00000030   33 F9 00 DF F0 06 00 DF F1 80 4E 75 00 00 03 F2  3ù.ßð..ßñNu...ò
		
3. wichtige Optionen:
===============================================================================																							

-s Option
G:\Amiga\vasm\test02>vlink -bamigahunk -o test startup.o init.o -s

WinUAE>Ram Disk:test/vasm> type test opt h
Windows (Power-Shell)>Format-Hex 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:test02.bat

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

AS = vasmm68k_mot
ASOPT = -Fhunk -nocase -quiet

LD = vlink
LDOPT = -bamigahunk

OBJS = startup.o init.o

all: test

test: $(OBJS)
	$(LD) $(LDOPT) -o $@ $(OBJS)

%.o: %.s
	$(AS) $(ASOPT) -o $@ $<

Aufruf des Makefiles über >make
	
	