
 IFND    OPAL_I
OPAL_I   SET     1

 IFND EXEC_TYPES_I
 INCLUDE "exec/types.i"
 ENDC

 IFND EXEC_LIBRARIES_I
 INCLUDE "exec/libraries.i"
 ENDC


	LIBINIT

	LIBDEF	_LVOOpenScreen24
	LIBDEF	_LVOCloseScreen24
	LIBDEF	_LVOWritePixel24
	LIBDEF	_LVOReadPixel24
	LIBDEF	_LVOClearScreen24
	LIBDEF	_LVOILBMtoOV
	LIBDEF	_LVOUpdateDelay24
	LIBDEF	_LVORefresh24
	LIBDEF	_LVOSetDisplayBottom24
	LIBDEF	_LVOClearDisplayBottom24
	LIBDEF	_LVOSetSprite24
	LIBDEF	_LVOAmigaPriority
	LIBDEF	_LVOOVPriority
	LIBDEF	_LVODualDisplay24
	LIBDEF	_LVOSingleDisplay24
	LIBDEF	_LVOAppendCopper24
	LIBDEF	_LVORectFill24
	LIBDEF	_LVOUpdateCoPro24
	LIBDEF	_LVOSetControlBit24
	LIBDEF	_LVOPaletteMap24
	LIBDEF	_LVOUpdatePalette24
	LIBDEF	_LVOScroll24
	LIBDEF	_LVOLoadIFF24
	LIBDEF	_LVOSetScreen24
	LIBDEF	_LVOSaveIFF24
	LIBDEF	_LVOCreateScreen24
	LIBDEF	_LVOFreeScreen24
	LIBDEF	_LVOUpdateRegs24
	LIBDEF	_LVOSetLoadAddress24
	LIBDEF	_LVORGBtoOV
	LIBDEF	_LVOActiveScreen24
	LIBDEF	_LVOFadeIn24
	LIBDEF	_LVOFadeOut24
	LIBDEF	_LVOClearQuick24
	LIBDEF	_LVOWriteThumbnail24
	LIBDEF	_LVOSetRGB24
	LIBDEF	_LVODrawLine24
	LIBDEF	_LVOStopUpdate24
	LIBDEF	_LVOWritePFPixel24
	LIBDEF	_LVOWritePRPixel24
	LIBDEF	_LVOOVtoRGB
	LIBDEF	_LVOOVtoILBM
	LIBDEF	_LVOUpdateAll24
	LIBDEF	_LVOUpdatePFStencil24
	LIBDEF	_LVOEnablePRStencil24
	LIBDEF	_LVODisablePRStencil24
	LIBDEF	_LVOClearPRStencil24
	LIBDEF	_LVOSetPRStencil24
	LIBDEF	_LVODisplayFrame24
	LIBDEF	_LVOWriteFrame24
	LIBDEF	_LVOBitPlanetoOV
	LIBDEF	_LVOSetCoPro24
	LIBDEF	_LVORegWait24
	LIBDEF	_LVODualPlayField24
	LIBDEF	_LVOSinglePlayField24
	LIBDEF	_LVOClearPFStencil24
	LIBDEF	_LVOSetPFStencil24
	LIBDEF	_LVOReadPRPixel24
	LIBDEF	_LVOReadPFPixel24
	LIBDEF	_LVOOVtoBitPlane
	LIBDEF	_LVOFreezeFrame24
	LIBDEF	_LVOLowMemUpdate24
	LIBDEF	_LVODisplayThumbnail24
	LIBDEF	_LVOConfig24
	LIBDEF	_LVOAutoSync24
	LIBDEF	_LVODrawEllipse24
	LIBDEF	_LVOLatchDisplay24
	LIBDEF	_LVOSetHires24
	LIBDEF	_LVOSetLores24
	LIBDEF	_LVODownLoadFrame24
	LIBDEF	_LVOSaveJPEG24
	LIBDEF	_LVOLowMem2Update24
	LIBDEF	_LVOLowMemRGB24
	LIBDEF	_LVOAmosPatch24


CALLOPAL	MACRO
		move.l	_OpalBase,a6
		jsr	_LVO\1(a6)
		ENDM

OPALLIBNAME	MACRO
		dc.b	"opal.library",0
		EVEN
		ENDM


	STRUCTURE OpalLib,LIB_SIZE
		ULONG	OL_SysLib
		ULONG	OL_DosLib
		ULONG	OL_SegList
		UBYTE	OL_Flags
		UBYTE	OL_pad
		ULONG	OL_ActiveTask
		LABEL	OpalLib_Sizeof


	STRUCTURE	OS,0
		UWORD	OS_Width
		UWORD	OS_Height
		UWORD	OS_Depth
		WORD	OS_ClipX1
		WORD	OS_ClipY1
		WORD	OS_ClipX2
		WORD	OS_ClipY2
		WORD	OS_BytesPerLine
		UWORD	OS_Flags
		WORD	OS_RelX
		WORD	OS_RelY
		APTR	OS_UserPort
		WORD	OS_MaxFrames
		WORD	OS_VStart
		WORD	OS_CoProOffset
		WORD	OS_LastWait
		WORD	OS_LastCoProIns
		STRUCT	OS_BitPlanes,24*4
		LONG	OS_MaskPlane
		LONG	OS_AddressReg
		UBYTE	OS_UpdateRate
		UBYTE	OS_PalLoadAddress
		UBYTE	OS_PixelReadMask
		UBYTE	OS_CommandReg
		STRUCT	OS_Palette,3*256
		UBYTE	OS_Pen_R
		UBYTE	OS_Pen_G
		UBYTE	OS_Pen_B
		UBYTE	OS_Red
		UBYTE	OS_Green
		UBYTE	OS_Blue
		STRUCT	OS_CoProData,290
		UWORD	OS_Modulo
		STRUCT	OS_Reserved,38
		STRUCT	OS_CopList_Cycle,12*4
		UBYTE	OS_Update_Cycles
		UBYTE	OS_Pad
	LABEL	OS_SIZEOF



MAXCOPROINS	EQU	290	;Number of CoPro instructions
OVMODULO	EQU	371	;Don't use this, use OS_Modulo


;OpenScreen24 flags

HIRES24		EQU	$1
ILACE24		EQU	$2
OVERSCAN24	EQU	$4
NTSC24		EQU	$8	;Not user definable
CLOSEABLE24	EQU	$10
PLANES8		EQU	$20
PLANES15	EQU	$40
CONTROLONLY24	EQU	$2000
PALMAP24	EQU	$4000	;Screen is in palette mapped mode
INCHIP24	EQU	$8000	;Not user definable

FLAGSMASK24	EQU  CONTROLONLY24!PALMAP24!CLOSEABLE24!PLANES8!PLANES15!OVERSCAN24!ILACE24!HIRES24


HIRES24B	EQU	0
ILACE24B	EQU	1
OVERSCAN24B	EQU	2
NTSC24B		EQU	3
CLOSEABLE24B	EQU	4
PLANES8B	EQU	5
PLANES15B	EQU	6
CONTROLONLY24B	EQU	13
PALMAP24B	EQU	14
INCHIP24B	EQU	15

;LoadIFF24 Flags

FORCE24		EQU	1	;Force conversion of palette mapped to 24 bit.
KEEPRES24	EQU	2	;Keep the current screen resolution.
LOADMASK24	EQU	4	;Load mask plane if it exists.
VIRTUALSCREEN24	EQU	8	;Load complete image into fast ram.

;SaveIFF24 Flags

OVFASTFORMAT	EQU	1	;Save as opalvision fast format.
NOTHUMBNAIL	EQU	4	;Inhibit thumbnail chunk.
SAVEMASK24	EQU	8	;Don't save MaskPlane with image.

;Config Flags

OVCF_OPALVISION	EQU	1	;Display board is an OpalVision
OVCF_COLORBURST	EQU	2	;Display board is a ColorBurst

;Coprocessor bits.

ADDLOAD		EQU	$80
PRISTENCIL	EQU	$40
OVPRI		EQU	$20
DUALDISPLAY	EQU	$10
HIRESDISP	EQU	$08
DISPLAYBANK2	EQU	$04
VIDMODE1	EQU	$02
VIDMODE0	EQU	$01

ADDLOAD_B	EQU	7
PRISTENCIL_B	EQU	6
OVPRI_B		EQU	5
DUALDISPLAY_B	EQU	4
HIRESDISP_B	EQU	3
DISPLAYBANK2_B	EQU	2
VIDMODE1_B	EQU	1
VIDMODE0_B	EQU	0


;Control line bits

VALID0		EQU	$00001
VALID1		EQU	$00002
VALID2		EQU	$00004
VALID3		EQU	$00008
WREN		EQU	$00010
COL_COPRO	EQU	$00020
AUTO		EQU	$00040
DUALPLAYFIELD	EQU	$00080
FIELD		EQU	$00100
AUTOFIELD	EQU	$00200
DISPLAYLATCH	EQU	$00400
FRAMEGRAB	EQU	$00800
RWR1		EQU	$01000
RWR2		EQU	$02000
GWR1		EQU	$04000
GWR2		EQU	$08000
BWR1		EQU	$10000
BWR2		EQU	$20000
VLSIPROG	EQU	$40000
FREEZEFRAME	EQU	$80000

VALID0_B	EQU	0
VALID1_B	EQU	1
VALID2_B	EQU	2
VALID3_B	EQU	3
WREN_B		EQU	4
COL_COPRO_B	EQU	5
AUTO_B		EQU	6
DUALPLAYFIELD_B	EQU	7
FIELD_B		EQU	8
AUTOFIELD_B	EQU	9
DISPLAYLATCH_B	EQU	10
FRAMEGRAB_B	EQU	11
RWR1_B		EQU	12
RWR2_B		EQU	13
GWR1_B		EQU	14
GWR2_B		EQU	15
BWR1_B		EQU	16
BWR2_B		EQU	17
VLSIPROG_B	EQU	18
FREEZEFRAME_B	EQU	19

NUMCONTROLBITS	EQU	20

VALID		EQU	%0101

;  The following bits are for genlock/framegrabber
;control. These bits occupy the MSB's of the 
;load addresss register.

FRAMEGRABSOURCE0	EQU	$020000	;FGS0. 0=RGB, 1=Decoded input.
GENLOCKINPUTSEL0	EQU	$040000	;0 = Composite, 1=S-VHS
GENLOCKINPUTSEL1	EQU	$080000	;0 = RGB, 1=Decoded from above (GIS0).
GENLOCKOUTPUTSEL0	EQU	$100000	;0 = Composite, 1=S-VHS
GENLOCKMODE0		EQU	$200000	;See below.
GENLOCKMODE1		EQU	$400000	;See below.
SOURCESELECT		EQU	$800000	;0 = Live vide0, 1 = Opal output


FRAMEGRABSOURCE0_B	EQU	17
GENLOCKINPUTSEL0_B	EQU	18
GENLOCKINPUTSEL1_B	EQU	19
GENLOCKOUTPUTSEL0_B	EQU	20
GENLOCKMODE0_B		EQU	21
GENLOCKMODE1_B		EQU	22
SOURCESELECT_B		EQU	23



;Genlock Switch Mode select bits.
;	00 - Amiga Zero Detect
;	01 - Unused.
;	10 - Alpha chanel
;	11 - Use Source select.


;Error codes.

OL_ERR_OUTOFMEM		EQU	1
OL_ERR_OPENFILE		EQU	2
OL_ERR_NOTIFF		EQU	3
OL_ERR_FORMATUNKNOWN	EQU	3
OL_ERR_NOTILBM		EQU	4
OL_ERR_FILEREAD		EQU	5
OL_ERR_FILEWRITE	EQU	6
OL_ERR_BADIFF		EQU	7
OL_ERR_CANTCLOSE	EQU	8
OL_ERR_OPENSCREEN	EQU	9
OL_ERR_NOTHUMBNAIL	EQU	10
OL_ERR_BADJPEG		EQU	11
OL_ERR_UNSUPPORTED	EQU	12
OL_ERR_CTRLC		EQU	13
OL_ERR_MAXERR		EQU	40

 ENDC
