Category : Modula II Source Code
Archive   : TASKING.ZIP
Filename : SCREENBI.DEF

 
Output of file : SCREENBI.DEF contained in archive : TASKING.ZIP
DEFINITION MODULE ScreenBIOS;

(*
This module will use screen coordinates as defined by Wirth (0,0 is the
lower left hand corner of the page), FOR GRAPHICS ONLY. Text coordinates
are defined with 0,0 in the upper left hand corner of the screen.
Page refers to page number defined as 0 to 7 for lowResText, 0 to 3 for
hiResText, and 0 for graphics.
*)

EXPORT QUALIFIED
screenMode, area, settings, current,
SetScreenMode, SetCursorType, PutCursor, GetCursor, CursorOff, CursorOn,
RestoreScreen, ReadLightPenPosition, SelectActivePage,
ScrollUp, ScrollDown, ClearScreen, GetChar, PutCharAttr, PutChar,
SetPalette, WritePixel, ReadPixel, WriteChDTD, GetVideoState,
SetScrollMode;

TYPE
screenMode = (mono40x25, col40x25, mono80x25, col80x25, col320x200,
mono320x200, mono640x200, bw80x25);
area = RECORD
topMargin, bottomMargin, leftMargin, rightMargin: CARDINAL
(* in text coordinates *)
END;
settings = RECORD
mode: screenMode;
window: area;
page: CARDINAL;
numCols: CARDINAL;
maxGraphX, maxGraphY: INTEGER;
cursY, cursX: CARDINAL;
cursorStart, cursorEnd: CARDINAL;
attrib: CARDINAL;
END;

VAR
current: settings;

PROCEDURE SetScreenMode(newMode: screenMode);
(*
screenMode = (mono40x25, col40x25, mono80x25, col80x25, col320x200,
mono320x200, mono640x200, bw80x25);
*)

PROCEDURE SetCursorType(startScan, endScan : CARDINAL);

PROCEDURE PutCursor(row, column, page : CARDINAL);

PROCEDURE GetCursor(VAR row, column : CARDINAL;
page : CARDINAL;
VAR startScan, endScan : CARDINAL);
(* Returns both cursor position and cursor type. *)

PROCEDURE CursorOn;

PROCEDURE CursorOff;

PROCEDURE RestoreScreen; (* Restore screen to initial entry params *)

PROCEDURE ReadLightPenPosition(VAR x, y:CARDINAL);
(* Not implemented *)

PROCEDURE SelectActivePage(page : CARDINAL);

PROCEDURE ScrollUp(lines: CARDINAL; window : area; attr: CARDINAL);

PROCEDURE ClearScreen(attr: CARDINAL);

PROCEDURE ScrollDown(lines: CARDINAL; window : area; attr: CARDINAL);

PROCEDURE GetChar(VAR ch : CHAR; VAR attr: CARDINAL; page: CARDINAL);
(* Reads the character at the current cursor position *)

PROCEDURE PutCharAttr(ch : CHAR; attr: CARDINAL; count, page: CARDINAL);
(* Writes the character at the current cursor position with attribute
for text or colour in graphics, count times *)

PROCEDURE PutChar(ch : CHAR; count, page: CARDINAL);
(* Writes the character at the current cursor position count times *)

PROCEDURE SetPalette(ID, colour : CARDINAL);
(* medResGraphics ONLY *)
(* ID = 0 -> colour = background, ID = 1, corour = palette (0 or 1) *)

PROCEDURE WritePixel(row, column, colour: CARDINAL);

PROCEDURE ReadPixel(row, column: CARDINAL; VAR colour: CARDINAL);

PROCEDURE WriteChDTD(ch: CHAR; colour: CARDINAL; page: CARDINAL);
(* Checks for bs, cr, lf, bel and executes as commands. *)

PROCEDURE GetVideoState( VAR mode : screenMode; VAR col: CARDINAL;
VAR page: CARDINAL);

PROCEDURE SetScrollMode(mode: CARDINAL);
(* FOR Heath MS-DOS BIOS ONLY
0 = normal software, 1 = jump scroll (hardware), 2 = smooth *)

END ScreenBIOS.


  3 Responses to “Category : Modula II Source Code
Archive   : TASKING.ZIP
Filename : SCREENBI.DEF

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/