--- np2/lio/lio.h 2003/10/16 17:58:26 1.1 +++ np2/lio/lio.h 2005/02/07 14:46:12 1.9 @@ -1,85 +1,91 @@ +enum { + LIO_SEGMENT = 0xf990, + LIO_FONT = 0x00a0 +}; + +enum { + LIO_SUCCESS = 0, + LIO_ILLEGALFUNC = 5, + LIO_OUTOFMEMORY = 7 +}; + +enum { + LIODRAW_PMASK = 0x03, + LIODRAW_MONO = 0x04, + LIODRAW_UPPER = 0x20, + LIODRAW_4BPP = 0x40 +}; + typedef struct { - BYTE mode; - BYTE sw; - BYTE act; - BYTE disp; -} LIOGSCREEN; + UINT8 scrnmode; + UINT8 pos; + UINT8 plane; + UINT8 fgcolor; + UINT8 bgcolor; + UINT8 padding; + UINT8 color[8]; + UINT8 viewx1[2]; + UINT8 viewy1[2]; + UINT8 viewx2[2]; + UINT8 viewy2[2]; + UINT8 disp; + UINT8 access; +} LIOWORK; typedef struct { SINT16 x1; SINT16 y1; SINT16 x2; SINT16 y2; - BYTE vdraw_bg; - BYTE vdraw_ln; -} LIOGVIEW; - -typedef struct { - BYTE palmax; // command dummy - BYTE bgcolor; - BYTE bdcolor; - BYTE fgcolor; - BYTE palmode; -} LIOGCOLOR1; + UINT32 base; + UINT8 flag; + UINT8 palmax; + UINT8 bank; + UINT8 sbit; +} LIODRAW; -// ---- - typedef struct { - UINT16 top; - UINT16 lines; - BYTE bank; - BYTE plane; - BYTE disp; - BYTE dbit; -} LIO_SCRN; - - -typedef struct { - SINT16 x1; - SINT16 y1; - SINT16 x2; - SINT16 y2; - BYTE degcol[8]; + LIOWORK work; + UINT8 palmode; - LIO_SCRN scrn; - LIOGSCREEN gscreen; - LIOGVIEW gview; - LIOGCOLOR1 gcolor1; -} LIO_TABLE; + // ---- work + UINT32 wait; + LIODRAW draw; +} _GLIO, *GLIO; #ifdef __cplusplus extern "C" { #endif -extern LIO_TABLE lio; +extern const UINT32 lioplaneadrs[4]; -void lio_init(void); -void bios_lio(BYTE cmd); +void lio_initialize(void); +void bios_lio(REG8 cmd); -void lio_makeviewmask(void); -void lio_pset(SINT16 x, SINT16 y, BYTE pal); -void lio_line(SINT16 x1, SINT16 x2, SINT16 y, BYTE pal); - -BYTE lio_ginit(void); -BYTE lio_gscreen(void); -BYTE lio_gview(void); -BYTE lio_gcolor1(void); -BYTE lio_gcolor2(void); -BYTE lio_gcls(void); -BYTE lio_gpset(void); -BYTE lio_gline(void); -BYTE lio_gcircle(void); -BYTE lio_gpaint1(void); -BYTE lio_gpaint2(void); -BYTE lio_gget(void); -BYTE lio_gput1(void); -BYTE lio_gput2(void); -BYTE lio_groll(void); -BYTE lio_gpoint2(void); -BYTE lio_gcopy(void); +void lio_updatedraw(GLIO lio); +void lio_pset(const _GLIO *lio, SINT16 x, SINT16 y, REG8 pal); +void lio_line(const _GLIO *lio, SINT16 x1, SINT16 x2, SINT16 y, REG8 pal); + +REG8 lio_ginit(GLIO lio); +REG8 lio_gscreen(GLIO lio); +REG8 lio_gview(GLIO lio); +REG8 lio_gcolor1(GLIO lio); +REG8 lio_gcolor2(GLIO lio); +REG8 lio_gcls(GLIO lio); +REG8 lio_gpset(GLIO lio); +REG8 lio_gline(GLIO lio); +REG8 lio_gcircle(GLIO lio); +REG8 lio_gpaint1(GLIO lio); +REG8 lio_gpaint2(GLIO lio); +REG8 lio_gget(GLIO lio); +REG8 lio_gput1(GLIO lio); +REG8 lio_gput2(GLIO lio); +REG8 lio_groll(GLIO lio); +REG8 lio_gpoint2(GLIO lio); +REG8 lio_gcopy(GLIO lio); #ifdef __cplusplus }