; ===================================================================
;
;                                 S O S
;   
;                         Sanity Operating System
;
;                                 V 2.6
;
;
;                      Hardware-Register Definitions
;
; ===================================================================

; ===================================================================
;
;  Hardware Register wenn angefordert
;
; ===================================================================

	IFD	HARDWARE

DMACONR	 EQU	$dff002-HARDWARE
VPOSR	 EQU	$dff004-HARDWARE
VHPOSR	 EQU	$dff006-HARDWARE
JOY0DAT	 EQU	$dff00A-HARDWARE
JOY1DAT	 EQU	$dff00C-HARDWARE
CLXDAT	 EQU	$dff00e-HARDWARE
ADKCONR	 EQU	$dff010-HARDWARE
POTGOR	 EQU	$dff016-HARDWARE
DSKBYTR	 EQU	$dff01a-HARDWARE
INTENAR	 EQU	$dff01c-HARDWARE
INTREQR	 EQU	$dff01e-HARDWARE
DSKPTH	 EQU	$dff020-HARDWARE
DSKLEN	 EQU	$dff024-HARDWARE
VPOSW	 EQU	$dff02a-HARDWARE
COPCON	 EQU	$dff02e-HARDWARE
JOYTEST	 EQU	$dff036-HARDWARE
BLTCON0	 EQU	$dff040-HARDWARE
BLTCON1	 EQU	$dff042-HARDWARE
BLTAFWM	 EQU	$dff044-HARDWARE
BLTALWM	 EQU	$dff046-HARDWARE
BLTCPTH	 EQU	$dff048-HARDWARE
BLTCPTL	 EQU	$dff04a-HARDWARE
BLTBPTH	 EQU	$dff04c-HARDWARE
BLTBPTL	 EQU	$dff04e-HARDWARE
BLTAPTH	 EQU	$dff050-HARDWARE
BLTAPTL	 EQU	$dff052-HARDWARE
BLTDPTH	 EQU	$dff054-HARDWARE
BLTDPTL	 EQU	$dff056-HARDWARE
BLTSIZE	 EQU	$dff058-HARDWARE
BLTCON0L EQU	$dff05a-HARDWARE
BLTSIZV	 EQU	$dff05c-HARDWARE
BLTSIZH	 EQU	$dff05e-HARDWARE
BLTCMOD	 EQU	$dff060-HARDWARE
BLTBMOD	 EQU	$dff062-HARDWARE
BLTAMOD	 EQU	$dff064-HARDWARE
BLTDMOD	 EQU	$dff066-HARDWARE
BLTCDAT	 EQU	$dff070-HARDWARE
BLTBDAT	 EQU	$dff072-HARDWARE
BLTADAT	 EQU	$dff074-HARDWARE
LISAID	 EQU	$dff07c-HARDWARE
DSKSYNC	 EQU	$dff07e-HARDWARE
COP1LCH	 EQU	$dff080-HARDWARE
COP2LCH	 EQU	$dff084-HARDWARE
COPJMP1	 EQU	$dff088-HARDWARE
COPJMP2	 EQU	$dff08a-HARDWARE
DIWSTRT	 EQU	$dff08E-HARDWARE
DIWSTOP	 EQU	$dff090-HARDWARE
DDFSTRT	 EQU	$dff092-HARDWARE
DDFSTOP	 EQU	$dff094-HARDWARE
DMACON	 EQU	$dff096-HARDWARE
CLXCON	 EQU	$dff098-HARDWARE
INTENA	 EQU	$dff09A-HARDWARE
INTREQ	 EQU	$dff09C-HARDWARE
ADKCON	 EQU	$dff09E-HARDWARE
BPL1PTH	 EQU	$dff0E0-HARDWARE
BPL1PTL	 EQU	$dff0E2-HARDWARE
BPL2PTH	 EQU	$dff0E4-HARDWARE
BPL2PTL	 EQU	$dff0E6-HARDWARE
BPL3PTH	 EQU	$dff0E8-HARDWARE
BPL3PTL	 EQU	$dff0EA-HARDWARE
BPL4PTH	 EQU	$dff0EC-HARDWARE
BPL4PTL	 EQU	$dff0EE-HARDWARE
BPL5PTH	 EQU	$dff0F0-HARDWARE
BPL5PTL	 EQU	$dff0F2-HARDWARE
BPL6PTH	 EQU	$dff0F4-HARDWARE
BPL6PTL	 EQU	$dff0F6-HARDWARE
BPL7PTH	 EQU	$dff0F8-HARDWARE
BPL7PTL	 EQU	$dff0FA-HARDWARE
BPL8PTH	 EQU	$dff0FC-HARDWARE
BPL8PTL	 EQU	$dff0FE-HARDWARE
BPLCON0	 EQU	$dff100-HARDWARE
BPLCON1	 EQU	$dff102-HARDWARE
BPLCON2	 EQU	$dff104-HARDWARE
BPLCON3	 EQU	$dff106-HARDWARE
BPL1MOD	 EQU	$dff108-HARDWARE
BPL2MOD	 EQU	$dff10a-HARDWARE
BPLCON4	 EQU	$dff10c-HARDWARE
CLXCON2	 EQU	$dff10e-HARDWARE
COLOR0	 EQU	$dff180-HARDWARE

HTOTAL	 EQU	$dff1c0-HARDWARE
HSSTOP	 EQU	$dff1c2-HARDWARE
HBSTRT	 EQU	$dff1c4-HARDWARE
HBSTOP	 EQU	$dff1c6-HARDWARE
VTOTAL	 EQU	$dff1c8-HARDWARE
VSSTOP	 EQU	$dff1ca-HARDWARE
VBSTRT	 EQU	$dff1cc-HARDWARE
VBSTOP	 EQU	$dff1ce-HARDWARE
BEAMCON0 EQU	$dff1dc-HARDWARE
HSSTRT	 EQU	$dff1de-HARDWARE
VSSTRT	 EQU	$dff1e0-HARDWARE
HCENTER	 EQU	$dff1e2-HARDWARE
DIWHIGH	 EQU	$dff1e4-HARDWARE
FMODE	 EQU	$dff1fc-HARDWARE

_BLTCON0  EQU	$040
_BLTCON1  EQU	$042
_BLTAFWM  EQU	$044
_BLTALWM  EQU	$046
_BLTCPTH  EQU	$048
_BLTCPTL  EQU	$04a
_BLTBPTH  EQU	$04c
_BLTBPTL  EQU	$04e
_BLTAPTH  EQU	$050
_BLTAPTL  EQU	$052
_BLTDPTH  EQU	$054
_BLTDPTL  EQU	$056
_BLTSIZE  EQU	$058
_BLTCON0L EQU	$05a
_BLTSIZV  EQU	$05c
_BLTSIZH  EQU	$05e
_BLTCMOD  EQU	$060
_BLTBMOD  EQU	$062
_BLTAMOD  EQU	$064
_BLTDMOD  EQU	$066
_BLTCDAT  EQU	$070
_BLTBDAT  EQU	$072
_BLTADAT  EQU	$074
_LISAID	  EQU	$07c
_DSKSYNC  EQU	$07e
_COP1LCH  EQU	$080
_COP2LCH  EQU	$084
_COPJMP1  EQU	$088
_COPJMP2  EQU	$08a
_DIWSTRT  EQU	$08E
_DIWSTOP  EQU	$090
_DDFSTRT  EQU	$092
_DDFSTOP  EQU	$094
_DMACON	  EQU	$096
_CLXCON	  EQU	$098
_INTENA	  EQU	$09A
_INTREQ	  EQU	$09C
_ADKCON	  EQU	$09E
_BPL1PTH  EQU	$0E0
_BPL1PTL  EQU	$0E2
_BPL2PTH  EQU	$0E4
_BPL2PTL  EQU	$0E6
_BPL3PTH  EQU	$0E8
_BPL3PTL  EQU	$0EA
_BPL4PTH  EQU	$0EC
_BPL4PTL  EQU	$0EE
_BPL5PTH  EQU	$0F0
_BPL5PTL  EQU	$0F2
_BPL6PTH  EQU	$0F4
_BPL6PTL  EQU	$0F6
_BPL7PTH  EQU	$0F8
_BPL7PTL  EQU	$0FA
_BPL8PTH  EQU	$0FC
_BPL8PTL  EQU	$0FE
_BPLCON0  EQU	$100
_BPLCON1  EQU	$102
_BPLCON2  EQU	$104
_BPLCON3  EQU	$106
_BPL1MOD  EQU	$108
_BPL2MOD  EQU	$10a
_BPLCON4  EQU	$10c
_CLXCON2  EQU	$10e
_COLOR0	  EQU	$180

_HTOTAL	  EQU	$1c0
_HSSTOP	  EQU	$1c2
_HBSTRT	  EQU	$1c4
_HBSTOP	  EQU	$1c6
_VTOTAL	  EQU	$1c8
_VSSTOP	  EQU	$1ca
_VBSTRT	  EQU	$1cc
_VBSTOP	  EQU	$1ce
_BEAMCON0 EQU	$1dc
_HSSTRT	  EQU	$1de
_VSSTRT	  EQU	$1e0
_HCENTER  EQU	$1e2
_DIWHIGH  EQU	$1e4
_FMODE	  EQU	$1fc


BLTH	MACRO					; Blitter high priority
	move.w	#$8400,DMACON(a4)
	ENDM

BLTL	MACRO					; Blitter low priority
	move.w	#$0400,DMACON(a4)
	ENDM

BLTW	MACRO					; Blitter wait
	IFEQ	DMACONR
.\@a	btst	#6,(a4)
	ENDC
	IFNE	DMACONR
.\@a	btst	#6,DMACONR(a4)
	ENDC
	bne.s	.\@a
	ENDM

	ENDC

DEBCOL	MACRO					; change color if debug
	IFD	DEBUG
	move.w	#\1,($dff180)
	ENDC
	ENDM


DEBCOL2	MACRO					; set color and wait if debug
	movem.l	d0/d1,-(a7)
	moveq	#15,d1
	moveq	#-1,d0
.\@loop	move.w	#\1,$dff180
	nop
	dbf	d0,.\@loop
	dbf	d1,.\@loop
	movem.l	(a7)+,d0/d1
	ENDM

	IFD	DEBUG				; use this in copperlists
D0180	equ	$01fe				; do define background color.
	ENDC					; if you assembler with
	IFND	DEBUG				; debug, your copperbars
D0180	equ	$0180				; will not interfere with
	ENDC					; the debug-colors.
