filer__:	set 0
auto__:		set 0

auto_request:	MACRO
auto__:		set 1
		move.l \1,_ts1+12
		move.l \2,_ts2+12
		move.l \3,_ts3+12
		moveq \4,d0
		moveq \5,d1
		move.l \6,d2			;Breite
		move.l \7,d3			;Hhe
		move.l windowhd,a0
		lea _ts1,a1
		lea _ts2,a2
		lea _ts3,a3
		move.l intbase,a6
		jsr -348(a6)
		ENDM

file_req:	MACRO
filer__:	set 1
		IFNE NARG-2
		lea _rname\@(pc),a0
		bra _filera\@
_rname\@:	dc.b \1,0
		even
_filera\@:
		bsr _file_req
		ENDC
		IFEQ NARG-2
		lea _rnameb\@(pc),a0
		bra _filerb\@
_rnameb\@:	dc.b \1,0
		even
_filerb\@:
		lea _rdir\@(pc),a1
		bra _filerc\@
_rdir\@:	dc.b \2,0
		even
_filerc\@:
		lea _dir,a2
_filerd\@:
		move.b (a1)+,d0
		beq.s _filer2\@
		move.b d0,(a2)+
		bra.s _filerd\@
_filer2\@:
		move.b #0,(a2)
		bsr _file_req
		ENDC
		ENDM

print:		MACRO
		lea _textst(pc),a0
		move.b \1,(a0)
		move.b \2,1(a0)
		move.w \3,d0
		move.w \4,d1
		move.l \5,12(a0)
		move.l windowhd,a0
		move.l 50(a0),a0
		lea _textst(pc),a1
		move.l intbase,a6
		jsr -216(a6)
		ENDM
menu:		MACRO
		dc.l \1
		dc.w \2,\3
		dc.w \4,10
		dc.w \5
		dc.l \6
		dc.l \7
		dc.w 0,0,0,0
		ENDM
sub_menu:	MACRO
		dc.l \1
		dc.w \2,\3
		dc.w \4,10
		dc.w \5
		dc.l 0
		dc.l \6
		dc.l 0
		dc.b \7
		even
		dc.l \8
		dc.l 0
		ENDM
itext:		MACRO
		dc.b 0,1
		dc.b 0,0
		dc.w 0,0
		dc.l 0
		dc.l \1
		dc.l 0
		ENDM

;------------------------------------------
; save #fileneame,#anfang der Daten,#laenge
;------------------------------------------
save:		MACRO
		move.l \1,_name_save
		move.l \2,_anfang_save
		move.l \3,_lang_save
		move.l #1006,_modus
		jsr _bsave
		ENDM

saveb:		MACRO
		move.l \2,_anfang_save
		move.l \3,_lang_save
		lea save2b\@(pc),a5
		move.l a5,_name_save
		bra save3b\@

save2b\@:	dc.b \1,0
		even
save3b\@:		
		move.l #1006,_modus
		jsr _bsave
		ENDM

;------------------------------------------
; load #fileneame,#anfang des Speichers,#laenge
;------------------------------------------
load:		MACRO
		move.l \1,_name_save
		move.l \2,_anfang_save
		move.l \3,_lang_save
		jsr _bload
		ENDM

loadb:		MACRO
		move.l \2,_anfang_save
		move.l \3,_lang_save
		lea load2b\@(pc),a5
		move.l a5,_name_save
		bra load3b\@

load2b\@:	dc.b \1,0
		even
load3b\@:		
		jsr _bload
		ENDM


;------------------------------------------
; get_mem #groesse,#Chip_Ram
; get_mem #groesse,#Fast_Ram
;------------------------------------------
get_mem:	MACRO
		movem.l d1-d7/a0-a6,-(a7)
		move.l \1,d0		;Speichergroesse
		move.l \2,d1		;Bedingungen
		move.l 4,a6
		jsr -198(a6)		;D0 = Anfangsadresse des Speichers
		movem.l (a7)+,d1-d7/a0-a6
		ENDM			;D0 = 0 dann Fehler

;------------------------------------------
; fre_mem #groesse,Anfang
;------------------------------------------
fre_mem:	MACRO			;Freedom for Random Acces Memory
		movem.l d0-d7/a0-a6,-(a7)
		move.l \1,d0		;Speichergroesse
		move.l \2,a1		;Anfang des Speicherblocks
		move.l 4,a6
		jsr -210(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM
delay:		MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l \1,_wait
		jsr _warte
		movem.l (a7)+,d0-d7/a0-a6
		ENDM

;next.l,x.w,y.w,breite.w,hhe.w,flag0.w,flag1.w,type.w,image.l (usw)
gadget:		MACRO
		dc.l \1
		dc.w \2,\3,\4,\5,\6,\7,\8
		dc.l \9,\A,\B,\C,\D
		dc.w \E
		dc.l \F
		ENDM
;ofx.w,ofy.w,beite.w,hhe.w,planes.w,image daten (usw)
image:		MACRO
		dc.w \1,\2,\3,\4,\5
		dc.l \6
		dc.b \7,\8
		dc.l \9
		ENDM
planet:		MACRO
		dc.l \1		;^image
		dc.l \2		;^pick			4
		dc.l \3		;^name			8
		dc.l \4		;^ober			12
		dc.l \5		;^schiffe (Militr)	16
		dc.l 0		;attack power		20
		dc.l 0		;defense power		24
		dc.l 0		;bewohner		28
		dc.l 0		;soldaten		32
		dc.l 0		;wohnungen		36
		dc.l 0		;metall			40
		dc.l 0		;nahrung		44
		dc.l 0		;produktion metall	48
		dc.l 0		;produktion nahrung	52
		dc.l 0		;energie		56
		dc.l 0		;nahrung speicher	60
		dc.l 0		;produktion energie	64
		dc.l 0		;energie speicher	68
		dc.l \6		;^transportflotte	72
		dc.l \7		;^Koloniallotte		76
		dc.w 0		;energieschirm		80
		dc.w 0		;x.w			82
		dc.w 0		;y.w			84
		dc.b 0		;technik level		86
		dc.b 0		;bildungslevel		87
		dc.b 0		;Krankenhaus		88
		dc.b 0		;wessen planet		89
		even
		ENDM

rectfill:	MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l _rp,a1
		move.l \1,d0		;Xcor
		move.l \2,d1		;Ycor
		move.l \3,d2		;Xcor
		move.l \4,d3		;Ycor
		move.l grafbase,a6
		jsr -306(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM
pen:		MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l _rp,a1		;Rastport
		move.l \1,d0		;Color
		move.l grafbase,a6
		jsr -342(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM
paper:		MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l _rp,a1		;Rastport
		move.l \1,d0		;Color
		move.l grafbase,a6
		jsr -348(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM

;------------------------------------------
; color #farbnummer,#rot,#gelb,#blau
;------------------------------------------
color:		MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l vp,a0		;Viewport
		move.l \1,d0		;Farbregister 0
		move.w \2,d1		;rot
		move.w \3,d2		;gelb
		move.w \4,d3		;blau
		move.l grafbase,a6
		jsr -288(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM
;------------------------------------------
; gotoxy #Xcoord,#Ycoord
;------------------------------------------
gotoxy:		MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l _rp,a1		;Rastport
		move.l \1,d0		;Xcoord
		move.l \2,d1		;Ycoord
		move.l grafbase,a6
		jsr -240(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM
;------------------------------------------
; int_text #string,#anzahl
;------------------------------------------
int_text:	MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l _rp,a1		;Rastport
		move.l \2,d0		;Anzahl
		bra.s int_textb\@
		
int_texta\@:	dc.b \1,0		;String
		even
int_textb\@:	lea int_texta\@(pc),a0
		move.l grafbase,a6
		jsr -60(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM
;------------------------------------------
; int_text2 #string,#anzahl
;------------------------------------------
int_text2:	MACRO
		movem.l d0-d7/a0-a6,-(a7)
		move.l _rp,a1		;Rastport
		move.l \1,a0
		move.l \2,d0		;Anzahl
		move.l grafbase,a6
		jsr -60(a6)
		movem.l (a7)+,d0-d7/a0-a6
		ENDM		