home *** CD-ROM | disk | FTP | other *** search
- { QWIK.PAS - Unit for quick, direct screen writing ver 4.0, 12-01-87 }
-
- UNIT Qwik;
-
- INTERFACE
- var
- VideoMode: byte absolute $0040:$0049; { Video mode: Mono=7, Color=0-3 }
- VideoPage: byte absolute $0040:$0062; { Video page number }
- EgaRows: byte absolute $0040:$0084; { Rows on screen (0-based) }
- EgaFontSize: word absolute $0040:$0085; { Character cell height (1-based)}
- EgaInfo: byte absolute $0040:$0087; { EGA info. See QINIT.DOC }
- CRTcolumns: word absolute $0040:$004A; { Number of CRT columns (1-based)}
-
- SystemID, { Equipment ID. See QINIT.DOC }
- SubModelID, { Equipment ID. See QINIT.DOC }
- CRTrows, { Global variable of Rows/EgaRows (1-based!)}
- CRTcols: byte; { Global variable of CRTcolumns (1-based) }
- CardSeg, { Segment for page 0 for video card }
- Page0seg, { Segment for page 0 for video card/buffer }
- Qseg: word; { Segment for Q writing }
- MaxPage: byte; { Maximum possible page }
- CardSnow, { Wait-for-retrace (snow) for video card }
- Qsnow, { Wait-for-retrace (snow) while Q writing }
- HavePS2, { Using some type of IBM PS/2 equip }
- Have3270: boolean; { Using IBM 3270 PC workstation hard/software }
- EgaSwitches, { EGA card and monitor setup }
- ActiveDispDev, { Active Display Device }
- ActiveDispDev3270, { Active Display Device for IBM 3270 PC }
- AltDispDev: byte; { Alternate Display Device }
- AltDispDevPCC: word; { Alt Display Device for PC Convertible }
- HercModel: byte; { Model of Hercules card. }
-
- const
- { Constants assigned by IBM: } { Arbitrarily assigned constants: }
- NoDisplay = $00; VgaMono = $07; NoHerc = 0;
- MdaMono = $01; VgaColor = $08; HgcMono = 1;
- CgaColor = $02; DCC9 = $09; HgcPlus = 2;
- DCC3 = $03; DCC10 = $0A; HercInColor = 3;
- EgaColor = $04; McgaMono = $0B;
- EgaMono = $05; McgaColor = $0C;
- PgcColor = $06; Unknown = $FF;
-
- procedure Qinit;
-
- procedure Qwrite (Row, Col: byte; Attr: integer; aStr: string);
- procedure QwriteC (Row, ColL, ColR: byte; Attr: integer; aStr: string);
- procedure QwriteA (Row, Col: byte; Attr: integer; ArrayLength: word; VAR aStr);
-
- procedure Qfill (Row,Col,Rows,Cols: byte; Attr: integer; Ch: char);
- procedure Qattr (Row,Col,Rows,Cols: byte; Attr: integer);
- procedure QfillC (Row,ColL,ColR,Rows,Cols: byte; Attr: integer; Ch: char);
- procedure QattrC (Row,ColL,ColR,Rows,Cols: byte; Attr: integer);
-
- procedure QstoreToMem (Row,Col,Rows,Cols: byte; VAR Dest);
- procedure QstoreToScr (Row,Col,Rows,Cols: byte; VAR Source);
-
- procedure QviewPage (PageNum: byte);
- procedure QwritePage (PageNum: byte);
-
- procedure GotoRC (Row, Col: byte);
- procedure CursorChange (New: word; VAR Old: word);
- procedure CursorOff;
- procedure CursorOn;
- function WhereR: byte;
- function WhereC: byte;
-
- IMPLEMENTATION
- {$L qinit.obj}
- const
- FirstQinit: boolean = true; { True if Qinit is yet to be run }
- procedure Qinit; external;
- {$L qwrites.obj}
- procedure Qwrite; external;
- procedure QwriteC; external;
- procedure QwriteA; external;
- {$L qfills.obj}
- procedure Qfill; external;
- procedure Qattr; external;
- procedure QfillC; external;
- procedure QattrC; external;
- {$L qstores.obj}
- procedure QstoreToMem; external;
- procedure QstoreToScr; external;
- {$L qpages.obj}
- procedure QviewPage; external;
- procedure QwritePage; external;
- {$L cursor.obj}
- procedure GotoRC; external;
- procedure CursorChange; external;
- procedure CursorOff; external;
- procedure CursorOn; external;
- function WhereR; external;
- function WhereC; external;
-
- BEGIN
- Qinit;
- END.