--- np2/lio/lio.h 2004/02/20 15:20:30 1.3 +++ np2/lio/lio.h 2004/06/04 16:54:57 1.8 @@ -1,65 +1,59 @@ enum { - LIO_SUCCESS = 0, - LIO_ILLEGALFUNC = 5, - LIO_OUTOFMEMORY = 7 + LIO_SEGMENT = 0xf990, + LIO_FONT = 0x00a0 }; +enum { + LIO_SUCCESS = 0, + LIO_ILLEGALFUNC = 5, + LIO_OUTOFMEMORY = 7 +}; -typedef struct { - UINT8 mode; - UINT8 sw; - UINT8 act; - UINT8 disp; -} LIOGSCREEN; - -typedef struct { - SINT16 x1; - SINT16 y1; - SINT16 x2; - SINT16 y2; - UINT8 vdraw_bg; - UINT8 vdraw_ln; -} LIOGVIEW; - -typedef struct { - UINT8 palmax; - UINT8 bgcolor; - UINT8 bdcolor; - UINT8 fgcolor; - UINT8 palmode; -} LIOGCOLOR1; - - -// ---- +enum { + LIODRAW_PMASK = 0x03, + LIODRAW_MONO = 0x04, + LIODRAW_UPPER = 0x20, + LIODRAW_4BPP = 0x40 +}; typedef struct { - UINT16 top; - UINT16 lines; - UINT8 bank; + UINT8 scrnmode; + UINT8 pos; UINT8 plane; + UINT8 fgcolor; + UINT8 bgcolor; + UINT8 padding; + UINT8 color[8]; + BYTE viewx1[2]; + BYTE viewy1[2]; + BYTE viewx2[2]; + BYTE viewy2[2]; UINT8 disp; - UINT8 dbit; -} LIO_SCRN; + UINT8 access; +} LIOWORK; typedef struct { SINT16 x1; SINT16 y1; SINT16 x2; SINT16 y2; -} LIORANGE; + UINT32 base; + UINT8 flag; + UINT8 palmax; + UINT8 bank; + UINT8 sbit; +} LIODRAW; typedef struct { - LIO_SCRN scrn; - LIOGSCREEN gscreen; - LIOGVIEW gview; - LIOGCOLOR1 gcolor1; - UINT8 degcol[8]; - - LIORANGE range; + LIOWORK work; + UINT8 palmode; -} _LIOWORK, *LIOWORK; + // ---- work + UINT32 wait; + LIODRAW draw; +} _GLIO, *GLIO; #ifdef __cplusplus @@ -71,27 +65,27 @@ extern const UINT32 lioplaneadrs[4]; void lio_initialize(void); void bios_lio(REG8 cmd); -void lio_updaterange(LIOWORK lio); -void lio_pset(const _LIOWORK *lio, SINT16 x, SINT16 y, REG8 pal); -void lio_line(const _LIOWORK *lio, SINT16 x1, SINT16 x2, SINT16 y, REG8 pal); - -REG8 lio_ginit(LIOWORK lio); -REG8 lio_gscreen(LIOWORK lio); -REG8 lio_gview(LIOWORK lio); -REG8 lio_gcolor1(LIOWORK lio); -REG8 lio_gcolor2(LIOWORK lio); -REG8 lio_gcls(LIOWORK lio); -REG8 lio_gpset(LIOWORK lio); -REG8 lio_gline(LIOWORK lio); -REG8 lio_gcircle(LIOWORK lio); -REG8 lio_gpaint1(LIOWORK lio); -REG8 lio_gpaint2(LIOWORK lio); -REG8 lio_gget(LIOWORK lio); -REG8 lio_gput1(LIOWORK lio); -REG8 lio_gput2(LIOWORK lio); -REG8 lio_groll(LIOWORK lio); -REG8 lio_gpoint2(LIOWORK lio); -REG8 lio_gcopy(LIOWORK lio); +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 }