;*************************************************************
;     G L O B A L   M A C R O S
;*************************************************************
; These macros were not in the original FP09 package.  asm6809
; cannot directly handle these constructs from the original:
;
;**********************************************
;
; LSRD N
;   MACRO TO LOGICALLY SHIFT D-REG N BITS OO
;   THE RIGHT. (1 <= N <= 8)
;
;   CALL: LSRD N
;
;**********************************************
;
LSRD1	macro
	LSRA
	RORB
	endm
LSRD2	macro
	LSRD1
	LSRD1
	endm
LSRD3	macro
	LSRD1
	LSRD2
	endm
LSRD4	macro
	LSRD2
	LSRD2
	endm
;**********************************************
;
; ASRD N
;   MACRO TO LOGICALLY SHIFT D-REG N BITS OO
;   THE RIGHT. (1 <= N <= 8)
;
;   CALL: ASRD N
;
;**********************************************
;
ASRD1	macro
	ASRA
	RORB
	endm
ASRD2	macro
	ASRD1
	ASRD1
	endm
ASRD3	macro
	ASRD1
	ASRD2
	endm
ASRD4	macro
	ASRD2
	ASRD2
	endm
;
;**********************************************
;
; RORD N
;   MACRO TO LOGICALLY SHIFT D-REG N BITS OO
;   THE RIGHT. (1 <= N <= 8)
;
;   CALL: ASRD N
;
;**********************************************
;
RORD1	macro
	RORA
	RORB
	endm
RORD2	macro
	RORD1
	RORD1
	endm
RORD3	macro
	RORD1
	RORD2
	endm
RORD4	macro
	RORD2
	RORD2
	endm
;
;**********************************************
;
; LSLD N
;   MACRO TO LOGICALLY SHIFT D-REG N BITS OO
;   THE LEFT. (1 <= N <= 8)
;
;   CALL: LSLD N
;
;**********************************************
;
LSLD1	macro
	LSLB
	ROLA
	endm
LSLD2	macro
	LSLD1
	LSLD1
	endm
LSLD3	macro
	LSLD1
	LSLD2
	endm
LSLD4	macro
	LSLD2
	LSLD2
	endm
;
;**********************************************
;
; ASLD N			(Same as LSLD)
;   MACRO TO LOGICALLY SHIFT D-REG N BITS OO
;   THE LEFT. (1 <= N <= 8)
;
;   CALL: ASLD N
;
;**********************************************
;
ASLD1	macro
	ASLB
	ROLA
	endm
ASLD2	macro
	ASLD1
	ASLD1
	endm
ASLD3	macro
	ASLD1
	ASLD2
	endm
ASLD4	macro
	ASLD2
	ASLD2
	endm
;
;**********************************************
;
; ROLD N			(Same as LSLD)
;   MACRO TO LOGICALLY SHIFT D-REG N BITS OO
;   THE LEFT. (1 <= N <= 8)
;
;   CALL: ASLD N
;
;**********************************************
;
ROLD1	macro
	ASLB
	ROLA
	endm
ROLD2	macro
	ROLD1
	ROLD1
	endm
ROLD3	macro
	ROLD1
	ROLD2
	endm
ROLD4	macro
	ROLD2
	ROLD2
	endm
;
;**********************************************
;
;  INCREMENT AND DECREMENT 16 BIT REGISTERS
;
;**********************************************
;
INCX		macro
		LEAX 1,X
		endm
DECX		macro
		LEAX -1,X
		endm
INCY		macro
		LEAY 1,Y
		endm
DECY		macro
		LEAY -1,Y
		endm
INCU		macro
		LEAU 1,U
		endm
DECU		macro
		LEAU -1,U
		endm
INCS		macro
		LEAS 1,S
		endm
DECS		macro
		LEAS -1,S
		endm
INCD		macro
		ADDD	#1
		endm
DECD		macro
		SUBD	#1
		endm
;
; ALL    REG   D,CC,X,Y,U
; ALLPC  REG   D,CC,X,Y,U,PC
;
;        PSHS  #ALL
;        PULS  #ALLPC
;
; These macros provide a convenient replacement.
PSHS_MAIN	macro
		PSHS	D,X,Y,U
		endm
PULS_MAIN_PC	macro
		PULS	D,X,Y,U,PC
		endm
PSHS_ALL	macro
		PSHS	CC,D,DP,X,Y,U
		endm
PULS_ALL_PC	macro
		PULS	CC,D,DP,X,Y,U,PC
		endm
