;**************************************************************************
;
; Filename : MACROS.D
; -------------------
;
; (c) 1990 by Thomas Lehmann
;
;
; Jackophone V5.00
;
;
; Macrodefinitionen
;
;
;**************************************************************************


	; ----------------------------------------
	; Macro für Testzwecke, Main Prg. anhalten
	; ----------------------------------------
sleep	macroseg

	pha
	lda #255
	jsr task_delay
	pla

	endmacro




	; ---------------------
	; Macro für TXY, X -> Y
	; ---------------------
txy	macroseg

	phx
	ply

	endmacro


	; ---------------------
	; Macro für TYX, Y -> X
	; ---------------------
tyx	macroseg

	phy
	plx

	endmacro




	; ----------------------------------------------
	; Macro zum Erzeugen der Tastenberechtigung, BTA
	; ----------------------------------------------

key	macroseg

	byte !1		; Tastenwert bis
	shift "!2"	; Tastentext

	endmacro



	; -------------------------------------------
	; Macro zum erhöhen eines 16BIT Pointers um 1
	; ?inc16 adr(2)
	; -------------------------------------------

inc16	macro

	inc !1		; low Byte +1
	bne end		; kein Überlauf

	inc !1+1	; high Byte nachführen
end
	endmacro



	; --------------------------------------------------
	; Macro zum beliebiegen erhöhen eines 16BIT Pointers
	; ?add16 adr(2),wert
	; --------------------------------------------------

add16	macro

	lda !1		; low Byte laden
	clc
	adc #!2		; Wert addieren
	bcc end		; kein Überlauf

	inc !1+1	; high Byte nachführen
end	sta !1		; aufaddierten Wert ablegen
	endmacro


	; -----------------------------------------------------
	; Macro zum beliebiegen verringern eines 16BIT Pointers
	; ?sub16 adr(2),wert
	; -----------------------------------------------------

sub16	macro

	lda !1		; low Byte laden
	sec
	sbc #!2		; Wert addieren
	bcs end		; kein Überlauf

	dec !1+1	; high Byte nachführen
end	sta !1		; substrahierten Wert ablegen
	endmacro



	; -------------------------------------------------------------------
	; Macro`s um deutsche Umlaute zu erzeugen, funktioniert nur nicht ???
	; -------------------------------------------------------------------

dsp_ae	macro
	byte $e1	; Display Code für "ä"
	endmacro

dsp_oe	macro
	byte $ef	; Display Code für "ö"
	endmacro

dsp_ue	macro
	byte $f5	; Display Code für "ü"
	endmacro

dsp_ss	macro
	byte $e2	; Display Code für "ß"
	endmacro




