| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- (* Release 3.10 *)
- (*-------------------------------------------------------------------------*
- * *
- * COREGRAP.DEF - Modula-2 interface to COREGRAP.A *
- * *
- * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
- * All Rights Reserved *
- * *
- *--------------------------------------------------------------------------*)
- (*# call(o_a_size => off,
- o_a_copy=>off,
- c_conv=>on,
- result_optional=>on) *)
- (*# module(implementation=>off, init_code => off) *)
- (*# name(prefix => c) *)
- DEFINITION MODULE CoreGraph;
- TYPE
- FillMaskType = ARRAY [0..7] OF SHORTCARD;
- VideoConfig = RECORD
- numxpixels: CARDINAL; (* number of pixels on X axis *)
- numypixels: CARDINAL; (* number of pixels on Y axis *)
- numtextcols: CARDINAL; (* number of text columns available *)
- numtextrows: CARDINAL; (* number of text rows available *)
- numcolors: CARDINAL; (* number of actual colors *)
- bitsperpixel: CARDINAL; (* number of bits per pixel *)
- numvideopages: CARDINAL; (* number of available video pages *)
- mode: CARDINAL; (* current video mode *)
- adapter: CARDINAL; (* active display adapter *)
- monitor: CARDINAL; (* active display monitor *)
- memory: CARDINAL; (* adapter video memory in K bytes *)
- END;
- GraphCoords = RECORD
- xcoord, ycoord: INTEGER;
- END;
- TextCoords = RECORD
- row, col: INTEGER;
- END;
- FillMaskPtr = POINTER TO FillMaskType;
- VideoType = RECORD
- sys0, dis0, sys1, dis1: SHORTCARD;
- END;
- FloodStart = RECORD
- best_quad, quad_type: INTEGER;
- flag: INTEGER;
- END;
- VAR
- _text_br: TextCoords;
- _fill_mask: FillMaskType;
- _fstart: FloodStart;
- _current_linestyle: CARDINAL;
- _EGAStartPlane: CARDINAL;
- _EGAPlaneShift: CARDINAL;
- _EGAtranslate: CARDINAL;
- _defaultmode: CARDINAL;
- _lastmode: CARDINAL;
- _depth: CARDINAL;
- _width: CARDINAL;
- _clip_tl: GraphCoords;
- _clip_br: GraphCoords;
- _text_tl: TextCoords;
- _current_graph: GraphCoords;
- _current_text: TextCoords;
- _current_video: VideoConfig;
- _active_page: CARDINAL;
- _visual_page: CARDINAL;
- _page_size: CARDINAL;
- _bkcolor: LONGCARD;
- _fgcolor: INTEGER;
- _txcolor: INTEGER;
- _EGA64K: BOOLEAN;
- _cursor_lock: INTEGER;
- _cursor_state: BOOLEAN;
- _wrap_state: BOOLEAN;
- _display_state: BOOLEAN;
- _scr_attr: CARDINAL;
- _current_mask: FillMaskPtr;
- (*# save *)
- (*%T _fcall *)
- (*# call(seg_name => Graphics) *)
- (*%E *)
- (*# call(c_conv=>on, reg_param => (), reg_saved=>(ds, di, si,st1,st2)) *)
- VAR
- _get: PROCEDURE(FarADDRESS, INTEGER, INTEGER, INTEGER, INTEGER);
- _put: PROCEDURE(INTEGER, INTEGER, FarADDRESS, INTEGER);
- PROCEDURE _getvideomode(): INTEGER;
- PROCEDURE _txt_out(ch: INTEGER);
- PROCEDURE _gr_out(ch: INTEGER);
- PROCEDURE _setbiosmode(mode: INTEGER);
- PROCEDURE _setlimits(V: VideoConfig);
- PROCEDURE _getsystem(VAR vid: VideoType);
- PROCEDURE _getmemory(): CARDINAL;
- PROCEDURE _clear_Herc();
- PROCEDURE _clear_CGA();
- PROCEDURE _resetEGA();
- PROCEDURE _CGA320Get(image: FarADDRESS; x1, y1, x2, y2: INTEGER);
- PROCEDURE _CGA320Put(x, y: INTEGER; image: FarADDRESS; action: INTEGER);
- PROCEDURE _CGA640Get(image: FarADDRESS; x1, y1, x2, y2: INTEGER);
- PROCEDURE _CGA640Put(x, y: INTEGER; image: FarADDRESS; action: INTEGER);
- PROCEDURE _EGAGet(image: FarADDRESS; x1, y1, x2, y2: INTEGER);
- PROCEDURE _EGAPut(x, y: INTEGER; image: FarADDRESS; action: INTEGER);
- PROCEDURE _VGAGet(image: FarADDRESS; x1, y1, x2, y2: INTEGER);
- PROCEDURE _VGAPut(x, y: INTEGER; image: FarADDRESS; action: INTEGER);
- PROCEDURE _HercGet(image: FarADDRESS; x1, y1, x2, y2: INTEGER);
- PROCEDURE _HercPut(x, y: INTEGER; image: FarADDRESS; action: INTEGER);
- (*# restore *)
- (*# save *)
- (*%T _fcall *)
- (*# call(seg_name => Graphics) *)
- (*%E *)
- (*# call(reg_param => (ax,bx,cx,dx,st0,st6,st5,st4,st3), reg_saved=>(ds, di, si,st1,st2), c_conv=>off) *)
- VAR
- _hscan: PROCEDURE(VAR INTEGER, VAR INTEGER, INTEGER, INTEGER);
- _plot: PROCEDURE (INTEGER, INTEGER, INTEGER);
- _point: PROCEDURE(INTEGER, INTEGER): INTEGER;
- _hline: PROCEDURE(INTEGER, INTEGER, INTEGER, INTEGER);
- _line: PROCEDURE(INTEGER, INTEGER, INTEGER, INTEGER, CARDINAL);
- PROCEDURE _CGA320Line (x1, y1, x2, y2: INTEGER; fmask: CARDINAL);
- PROCEDURE _CGA320HLine(x, y, x2: INTEGER; FillCol: INTEGER);
- PROCEDURE _CGA640Line (x1, y1, x2, y2: INTEGER; fmask: CARDINAL);
- PROCEDURE _CGA640HLine(x, y, x2: INTEGER; FillCol: INTEGER);
- PROCEDURE _EGAPlot(x, y, c: INTEGER);
- PROCEDURE _EGA2Plot(x, y, c: INTEGER);
- PROCEDURE _EGAPlot1(x, y, c: INTEGER);
- PROCEDURE _EGAPoint(x, y: INTEGER): INTEGER;
- PROCEDURE _EGA2Point(x, y: INTEGER): INTEGER;
- PROCEDURE _EGAHLine (x, y, x2: INTEGER; FillCol: INTEGER);
- PROCEDURE _EGA2HLine(x, y, x2: INTEGER; FillCol: INTEGER);
- PROCEDURE _EGALine(x1, y1, x2, y2: INTEGER; fmask: CARDINAL);
- PROCEDURE _EGA2Line(x1, y1, x2, y2: INTEGER; fmask: CARDINAL);
- PROCEDURE _EGAHScan(VAR xl, xr: INTEGER; y, border: INTEGER);
- PROCEDURE _VGAPoint(x, y: INTEGER): INTEGER;
- PROCEDURE _VGAPlot(x, y, c: INTEGER);
- PROCEDURE _VGAHLine(x, y, x2: INTEGER; FillCol: INTEGER);
- PROCEDURE _VGALine(x1, y1, x2, y2: INTEGER; fmask: CARDINAL);
- PROCEDURE _HercLine(x1, y1, x2, y2: INTEGER; fmask: CARDINAL);
- PROCEDURE _HercHLine(x, y, x2: INTEGER; FillCol: INTEGER);
- PROCEDURE _gcur(state, x, y, page: INTEGER);
- PROCEDURE _setcur(r, c, p: INTEGER);
- PROCEDURE _clear_blink();
- PROCEDURE _CGA320leftscan(ptr: CARDINAL; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _CGA320rightscan(ptr: CARDINAL; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _CGA640leftscan(ptr: CARDINAL; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _CGA640rightscan(ptr: CARDINAL; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _EGAleftscan(ptr: FarADDRESS; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _EGArightscan(ptr: FarADDRESS; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _VGAleftscan(ptr: CARDINAL; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _VGArightscan(ptr: CARDINAL; border, lim, left: INTEGER): INTEGER;
- PROCEDURE _EGAxlat(c: INTEGER): INTEGER;
- (*# restore *)
- END CoreGraph.
|