12 #define LINE_VSYNC 0 // long vertical sync
13 #define LINE_VVSYNC 1 // short vertical + vertical sync
14 #define LINE_VHSYNC 2 // short vertical + horizontal sync
15 #define LINE_HHSYNC 3 // short horizontal + horizontal sync
16 #define LINE_HVSYNC 4 // short horizontal + vertical sync
17 #define LINE_DARK 5 // dark line
18 #define LINE_IMG 6 // progressive image 0, 1, 2,...
19 #define LINE_IMGEVEN1 7 // interlaced image even 0, 2, 4,..., 1st subframe
20 #define LINE_IMGEVEN2 8 // interlaced image even 0, 2, 4,..., 2nd subframe
21 #define LINE_IMGODD1 9 // interlaced image odd 1, 3, 5,..., 1st subframe
22 #define LINE_IMGODD2 10 // interlaced image odd 1, 3, 5,..., 2nd subframe
24 extern u8 ScanlineType[MAXLINE];
29 extern volatile int ScanLine;
30 extern volatile u32 Frame;
31 extern volatile int BufInx;
32 extern volatile Bool VSync;
35 extern ALIGNED u8 LineBuf1[DBUF_MAX];
36 extern ALIGNED u8 LineBuf2[DBUF_MAX];
37 extern int LineBufSize[LAYERS_MAX];
38 extern u32 LineBufHsBp[4];
40 extern u32 LineBufDark[2];
41 extern u32 LineBufSync[10];
48 extern ALIGNED u8 LineBuf0[BLACK_MAX];
51 extern u32 CtrlBuf1[CBUF_MAX];
52 extern u32 CtrlBuf2[CBUF_MAX];
54 extern int CtrlBufSize[LAYERS_MAX];
57 extern u32 RenderTextMask[512];
64 extern "C" u32* MemSet4(u32* buf, u32 data,
int num);
71 extern "C" void BlitKey(u8* dst, u8* src,
int w, u8 key);
77 extern "C" void RenderSprite(u8* dbuf,
int y,
sLayer* scr);
85 extern "C" u32* RenderFastSprite(u32* cbuf,
int y,
sLayer* scr, u8* buf);
91 extern "C" void RenderPersp(u8* dbuf,
int y,
sLayer* scr);
97 extern "C" void RenderPersp2(u8* dbuf,
int y,
sLayer* scr);
105 extern "C" u32* Render(u32* cbuf, u8* dbuf,
int line,
int pixnum);
108 void ScanlineTypeInit(
const sVmode* v);
111 void ScanlineTypePrint(
const u8* scan,
int lines);
115 void VgaInit(
const sVmode* vmode);