home *** CD-ROM | disk | FTP | other *** search
- !short unit eco_lib;
-
- This is The ECO Library II -- Concise Edition
-
- It contains all functions freqently used by DOS - OS/2 programmers.
- It is not depending on any other units that SYSTEM.TPU from
- TurboPascal V6.0 or higher.
- In crossplatform development, you should therefore have not much
- troubles locating the cumbersome parts, and convert them to
- the standards requested by those environments.
-
- The code has been written thus, that conversion to C(++) is very
- easy. In fact, almost all little warnings and errors now
- pertain to the field of string conversion (str[0] manipulation).
- This should be solved easily.
-
-
-
- !short STANDARD constants
-
-
- none = $00; only = $40; notnone = $80;
-
- _period = $342E; _colon = $273A; _c_2= $0300;
- _slash = $352F; _padslash = $E02F; _c_6= $071E;
- _c_minus = $0C1F;
- _left = $4BE0; _padleft = $4B00;
- _cleft = $73E0; _cpadleft = $7300;
- _right = $4DE0; _padright = $4D00;
- _cright = $74E0; _cpadright = $7400;
- _up = $48E0; _padup = $4800;
- _down = $50E0; _paddown = $5000;
- _pgup = $49E0; _padpgup = $4900;
- _pgdn = $51E0; _padpgdn = $5100;
- _home = $47E0; _padhome = $4700;
- _chome = $7700; _end = $4FE0;
- _padend = $4F00; _cend = $7500;
- _ins = $52E0; _padins = $5200;
- _del = $53E0; _paddel = $5300;
- _spaddel = $532E; _backspace = $0E08;
- _minus = $0C2D; _padminus = $4A2D;
- _plus = $0D2B; _padplus = $4E2B;
- _star = $092A; _padstar = $372A;
- _enter = $1C0D; _newline = $1C0A;
- _padenter = $E00D;
-
- _tab = $0F09; _s_tab = $0F00;
- _esc = $011B; _space = $3920;
-
- _a = $1E61; _b = $3062; _s_a = $1E41; _s_b = $3042;
- _c = $2E63; _d = $2064; _s_c = $2E43; _s_d = $2044;
- _e = $1265; _f = $2166; _s_e = $1245; _s_f = $2146;
- _g = $2267; _h = $2368; _s_g = $2247; _s_h = $2348;
- _i = $1769; _j = $246A; _s_i = $1749; _s_j = $244A;
- _k = $256B; _l = $266C; _s_k = $254B; _s_l = $264C;
- _m = $326D; _n = $316E; _s_m = $324D; _s_n = $314E;
- _o = $186F; _p = $1970; _s_o = $184F; _s_p = $1950;
- _q = $1071; _r = $1372; _s_q = $1051; _s_r = $1352;
- _s = $1F73; _t = $1474; _s_s = $1F53; _s_t = $1454;
- _u = $1675; _v = $2F76; _s_u = $1655; _s_v = $2F56;
- _w = $1177; _x = $2D78; _s_w = $1157; _s_x = $2D58;
- _y = $1579; _z = $2C7A; _s_y = $1559; _s_z = $2C5A;
-
- _c_a = $1E01; _c_b = $3002; _a_a = $1E00; _a_b = $3000;
- _c_c = $2E03; _c_d = $2004; _a_c = $2E00; _a_d = $2000;
- _c_e = $1205; _c_f = $2106; _a_e = $1200; _a_f = $2100;
- _c_g = $2207; _c_h = $2308; _a_g = $2200; _a_h = $2300;
- _c_i = $1709; _c_j = $240A; _a_i = $1700; _a_j = $2400;
- _c_k = $250B; _c_l = $260C; _a_k = $2500; _a_l = $2600;
- _c_m = $320D; _c_n = $310E; _a_m = $3200; _a_n = $3100;
- _c_o = $180F; _c_p = $1910; _a_o = $1800; _a_p = $1900;
- _c_q = $1011; _c_r = $1312; _a_q = $1000; _a_r = $1300;
- _c_s = $1F13; _c_t = $1414; _a_s = $1F00; _a_t = $1400;
- _c_u = $1615; _c_v = $2F16; _a_u = $1600; _a_v = $2F00;
- _c_w = $1117; _c_x = $2D18; _a_w = $1100; _a_x = $2D00;
- _c_y = $1519; _c_z = $2C1A; _a_y = $1500; _a_z = $2C00;
-
- _f1 = $3B00; _f2 = $3C00; _f3 = $3D00; _f4 = $3E00;
- _f5 = $3F00; _f6 = $4000; _f7 = $4100; _f8 = $4200;
- _f9 = $4300; _f10 = $4400;
-
- _s_f1 = $5400; _s_f2 = $5500; _s_f3 = $5600; _s_f4 = $5700;
- _s_f5 = $5800; _s_f6 = $5900; _s_f7 = $5A00; _s_f8 = $5B00;
- _s_f9 = $5C00; _s_f10 = $5D00;
-
- _c_f1 = $5E00; _c_f2 = $5F00; _c_f3 = $6000; _c_f4 = $6100;
- _c_f5 = $6200; _c_f6 = $6300; _c_f7 = $6400; _c_f8 = $6500;
- _c_f9 = $6600; _c_f10 = $6700;
-
- _a_f1 = $6800; _a_f2 = $6900; _a_f3 = $6A00; _a_f4 = $6B00;
- _a_f5 = $6C00; _a_f6 = $6D00; _a_f7 = $6E00; _a_f8 = $6F00;
- _a_f9 = $7000; _a_f10 = $7100;
-
-
- !short STRING constants
-
- _left_just_str = 0;
- _right_just_str = 1;
- _center_str = 2;
-
- _rem_white_str = $0001;
- _rem_lead_white_str = $0002;
- _rem_trail_white_str = $0004;
- _reduce_white_str = $0008;
- _save_quoted_str = $0010;
- _to_upcase_str = $0020;
- _to_lowcase_str = $0040;
- _discard_str = $0080;
-
- _usa_dt_str = 0;
- _euro_dt_str = 1;
- _year_dt_str = 2;
- _mont_dt_str = 3;
- _form_dt_str = 4;
-
- _12hour_str = $0001;
- _inc_sec_str = $0002;
- _inc_tic_str = $0004;
- _inc_ampm_str = $0008;
- _standard_str = $0009;
- _complete_str = $0006;
- _dos_dir_str = $0011;
-
- _ampm_str : array[0..1] of string[3] = (' AM',' PM');
- _ap_str : string[2] = 'ap';
-
- _fmt_buflen_str = 256;
-
- _strmonths : array[1..12] of string[9] = (
- 'January', 'February', 'March', 'April', 'May', 'June', 'July',
- 'August', 'September', 'October', 'November', 'December'
- );
-
- _strdays : array[0..6] of string[9] = (
- 'Sunday', 'Monday', 'Tuesday', 'Wednesday',
- 'Thursday', 'Friday', 'Saturday'
- );
-
- _strusach : char = '/';
- _streuroch : char = '-';
- _strmoneych : char = 'f';
-
- fk_ctrl_mark: char = '^';
- nonblock : char = '-';
- block : char = 'X';
- maxstr_ = 255;
-
- logfilename : string[12] = 'ECOPURGE.LOG'; { 22 Aug 69 14:50.11 }
- programname : string[40] = 'ECOPURGE';
- purge : byte = 7;
- lines : word = 512;
-
-
- !short DOS constants
-
- (* flags bit masks *)
-
- fcarry = $0001;
- fparity = $0004;
- fauxiliary = $0010;
- fzero = $0040;
- fsign = $0080;
- foverflow = $0800;
-
- (* file mode magic numbers *)
-
- fmclosed = $d7b0;
- fminput = $d7b1;
- fmoutput = $d7b2;
- fminout = $d7b3;
-
- (* file attribute constants *)
-
- readonly = $01;
- hidden = $02;
- sysfile = $04;
- volumeid = $08;
- directory = $10;
- archive = $20;
- anyfile = $3f;
-
- _keep_mode = -1; { do not change file mode in fopen }
- _readonly = $00; { share mode dos 3++ and above }
- _denyall = $10;
- _writeonly = $01;
- _denywrite = $20;
- _readwrite = $02;
- _denyread = $30;
- _denynone = $40;
-
- lockregion = 00;
- unlockregion = 01;
-
-
-
- !short CHAR constants
-
- nullchar = $00;
- colon = ':';
- period = '.';
- separ = 'ยท';
- space = ' ';
- zero = '0';
-
-
- !short SCREEN constants
-
- fcol: byte = 7;
- bcol: byte = 0;
- bt_double = 15; bt_single = 0;
- black = 00; blue = 01;
- green = 02; cyan = 03;
- red = 04; magenta = 05;
- brown = 06; lightgray = 07;
- darkgray = 08; lightblue = 09;
- lightgreen = 10; lightcyan = 11;
- lightred = 12; lightmagenta = 13;
- yellow = 14; white = 15;
- blink = 128;
-
- _unknown = $7f;
- _absent = 0; { no adapter installed }
- _mono = 1; { monochrome type adapter }
- _color = 2; { color type adapter }
-
- _biosseg = $0040; { segment of bios/dos communica- }
-
-
-
- !short TYPES used in the unit
-
- type
- stream = file;
- textbuf = array [0..127] of char;
- textrec = record
- handle : word;
- mode : word;
- bufsize : word;
- private : word;
- bufpos : word;
- bufend : word;
- bufptr : ^textbuf;
- openfunc : pointer;
- inoutfunc : pointer;
- flushfunc : pointer;
- closefunc : pointer;
- userdata : array [1..16] of byte;
- name : array [0..79] of char;
- buffer : textbuf;
- end;
- comstr = string[127]; { command line string }
- pathstr = string[79]; { full file path string }
- dirstr = string[67]; { drive and directory string }
- namestr = string[8]; { file name string }
- extstr = string[4]; { file extension string }
- filestr = string[12]; { file name + extension string }
- registers = record case integer of
- 0 : (ax,bx,cx,dx,bp,si,di,ds,es,flags : word);
- 1 : (al,ah,bl,bh,cl,ch,dl,dh : byte);
- end;
- searchrec = record
- fill : array [1..21] of byte;
- attr : byte;
- time : longint;
- size : longint;
- name : string[12];
- end;
- datetime = record
- year,month,day,hour,min,sec : word;
- end;
-
- _memorychar = array[1..65534] of char;
- _vectoraddr = record _ofs : word; _seg : word end;
- str3 = string[3];
- str8 = string[8];
- str9 = string[9];
- str32 = string[32];
- anystr = string;
- asciiz = array[0..255] of char;
- asciizptr = ^asciiz;
- ar1024 = array[1..1024] of char;
-
-
- daterecord = record
- year : word;
- month : word;
- date : word;
- dayofweek : word
- end;
-
- timerecord = record
- hour : word;
- minute : word;
- second : word;
- hundredth : word
- end;
-
- clockrecord = record
- clockstartdate : daterecord;
- clockstarttime : timerecord;
- elapsedtime : timerecord;
- clockisrunning : boolean;
- end;
-
- _scnpos = record _ch : char; _attr : byte end;
- _scnimage = array[1..4000] of _scnpos;
- _scnimageptr = ^_scnimage;
- str80 = string[80];
- _monitortype = (
- _nomonitor,
- _monomonitor, { monochrome monitor }
- _colormonitor, { color monitor (composite also) }
- _enhancedmonitor, { ega rnhanced color monitor }
- _anmonomonitor, { ps/2 analog monochrome monitor }
- _ancolormonitor { ps/2 analog color monitor }
- );
-
-
- !Short VARIABLES used
- var
- exitcode : word;
- doserror : integer;
- _dosdrv : integer;
- _dosdrvchar : char;
- _doscurpath : pathstr;
- _dosdiscfree,
- _dosdiscsize : longint;
-
- lastkey : char;
- lastscan : byte;
-
- logheader : array[1..11] of string[62];
- error,
- yr, mo, da : word;
- i : byte;
-
- _hidemouse : byte;
- baseofscreen,
- vseg, vofs,
- rows, cols,
- _curcolumns, { number of screen columns }
- _currows : word; { number of screen rows }
-
- _scnloc : _scnimageptr; { screen adapter memory location }
- _curmonitor : _monitortype; { monitor attached to _curdevice }
- _curmode : byte; { current video display mode }
- _curdevice : byte; { _mono or _color device }
- _maxdisplaypage : byte; { maximum display page number }
- _curdisplaypage : byte; { current video display page }
- _curactivepage : byte; { current video active page }
- _monoadapter : byte; { monochrome adapter }
- _coloradapter : byte; { color/graphics adapter }
- _egaadapter : byte; { ega adapter }
- _hercadapter : byte; { hercules mono graphics card }
- _vgaadapter : byte; { ps/2 video graphics array }
- _mcgaadapter : byte; { ps/2 model 30 adapter }
- _scrolltab : word; { spaces to skip for tab scroll }
- _tabincr : word; { tab increment for _txbufscn }
- _bufindent : word; { left margin for _txbufscn }
-
- {scnstate_ : scnstat_; } { bios video save information }
- {availcolormodes_ : videomodes_; } { modes available on color device}
- {availmonomodes_ : videomodes_; } { modes available on mono device }
- {availcolorrows_ : legalrows_; } { rows available on color device }
- {availmonorows_ : legalrows_; } { rows available on mono device }
- {dualdisplay_ : boolean; } { two adapters present }
- egamonitor_ : _monitortype; { monitor attached: ega }
- analogmonitor_ : _monitortype; { monitor attached: vga/mcga }
- egamemory_ : word; { 64, 128, 192, or 256 (k) }
- maxscanline_ : byte; { current character set size }
-
- scn1, scn2,
- scn3, scn4 : _scnimageptr;
-
-
- !short
-
-
-
-
- !short BASE STRING functions
-
- { BASE STRING FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- function __leftstr(source : string; num : word): string;
- function __rightstr(source : string; chpos : word): string;
- function __substr(source : string; chpos, num: word): string;
- function __midstr(source,target : string; chpos: word): string;
- function __fillstr(
- fillch : char; target : string;
- chpos,num : word
- ): string;
- function __xlatestr(source,table,trans : string) : string;
- function __juststr(
- source : string; fillch : char;
- fieldsize : word;
- justcode : word
- ): string;
- function __cvtstr(source : string; cvtcode : word) : string;
- function __entabstr(source : string; incr : byte) : string;
- function __detabstr(
- source : string; incr : byte;
- var remstr : string
- ): string;
- function __toradstr(
- intvalue : longint;
- size,radix,width: word
- ): string;
- function __todecstr(intvalue: longint; size: word) : string;
- function __tohexstr(intvalue: longint; size: word) : string;
- function __ptr2str(thisptr: pointer): string;
- function __formstr(mask : string; x : real) : string;
- procedure __initfstr(var fmtfil : text);
- function __retbfstr(var fmtfil : text) : string;
- function __dirstr(srec : searchrec) : string;
- function locase(ch : char) : char;
-
-
-
-
-
- !short SECONDARY STRING functions
-
- { SECONDARY STRING FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- procedure __app(var st: string; aps: string);
- function __backapp(s: string) : string;
- function __backrem(s: string) : string;
-
- function __comp(s1, s2: string): boolean;
- function __overtype(n:byte;strs,strt:string):string;
- function __rep(n: byte; character: char): string;
- function __nw(s: string): string;
-
- function __pntstr(n: longint): string;
- function __up(s: string): string;
- function __lo(s: string): string;
- function __uprem(s: string): string;
-
- function __hexdecstr(hexstr: string): longint;
- function __str(st: string): integer;
- function __num(nr: longint): string;
- function __val(st: string): longint;
-
- function __byte2str(b: byte): str8;
- function __str2byte(s: str8): byte;
- function __longint2str(l: longint): str32;
- function __str2longint(s: str32): longint;
-
- procedure __str2obj(s: anystr; var a; length_a: integer);
- procedure __str2arr(s: anystr; var a; length_a: integer);
- function __readctrls(s: anystr): anystr;
- function __writectrls(s: anystr): anystr;
- function __az2str(a: asciiz): string;
- procedure __str2az(s: string; var a : asciiz);
-
- procedure __clr1024(var a: ar1024);
- procedure __app1024(var app: ar1024; s: string);
- function __len1024(var a: ar1024) : word;
- procedure __del1024(var a: ar1024; b, l: word);
- procedure __ins1024(var a: ar1024; b : word; s: string);
- procedure __write1024(var a: ar1024);
-
-
-
-
- !short PRIMARY DATA CONVERSION functions
-
-
- { PRIMARY DATA CONVERSION FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- function __main(b: longint; w: word): longint;
- function __max(v1, v2: longint): longint;
- function __min(v1, v2: longint): longint;
- function __power(x,y: integer): longint;
-
-
-
- function __2longsup(hiword,loword : word): longint;
- inline($58 { pop ax } /$5A); { pop dx }
-
- function __hiwrdsup(intvalue : longint) : word;
- inline($58 { pop ax } /$58); { pop ax }
-
- function __lowrdsup(intvalue : longint) : word;
- inline($58 { pop ax } /$5A); { pop dx }
-
- function __2wordsup(hibyte,lobyte : byte) : word;
- inline($58 { pop ax } /$5A { pop dx } /$8A/$E2); { mov ah,dl }
-
- function __2bytesup(hinybble,lonybble : byte) : byte;
- inline(
- $5B/ { pop bx } $58/ { pop ax }
- $32/$E4/ { xor ah,ah } $b1/$04/ { mov cl,4 }
- $d3/$E0/ { shl ax,cl } $80/$e3/$0f/ { and bl,0fh }
- $0A/$C3 { or al,bl }
- );
-
- function __hinybsup(bytevalue : byte) : byte;
- inline(
- $58 { pop ax } /$32/$E4 { xor ah,ah }
- /$B1/$04 { mov cl,4 } /$D3/$E8 { shr ax,cl }
- );
-
- function __lonybsup(bytevalue : byte) : byte;
- inline($58 { pop ax } /$25/$0F/$00); { and ax,000fh }
-
- procedure __fcallsup(procptr : pointer; var reg : registers);
- inline(
- $8B/$DC/ { mov bx,sp } $83/$C3/$04/ { add bx,4 }
- $36/$FF/$1F/ { call dword ptr ss:[bx] } $83/$C4/$04 { add sp,4 }
- );
-
- procedure __ncallsup(procptr : pointer; var reg : registers);
- inline(
- $8B/$DC { mov bx,sp } /$83/$C3/$04 { add bx,4 }
- /$36/$FF/$17 { call word ptr ss:[bx] } /$83/$C4/$04 { add sp,4 }
- );
-
- function __caddrsup : pointer;
- inline(
- $8B/$46/$02 { mov ax,[bp + 2] } /$2D/$03/$00 { sub ax,3 }
- /$8B/$56/$04 { mov dx,[bp + 4] }
- );
-
- procedure __iptrsup (var p : pointer; n : longint);
- procedure __dptrsup (var p : pointer; n : longint);
- function __nptrsup (thisptr : pointer) : pointer;
- function __ptr2lsup(thisptr : pointer) : longint;
- procedure __fillwsup(var target; count : longint; fillword : word);
- procedure __fillbsup(var target; count : longint; fillbyte : byte);
- procedure __repmsup (var target,source; count : longint; sourcesize : word);
- function __alphasup(ch : char) : boolean;
-
-
-
-
- !short IMPORTANT DOS functions
-
- { IMPORTANT DOS FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
-
- procedure getdate(var year,month,day,dayofweek : word);
- procedure setdate(year,month,day : word);
- procedure gettime(var hour,minute,second,sec100 : word);
- procedure settime(hour,minute,second,sec100 : word);
-
- function diskfree(drive : byte) : longint;
- function disksize(drive : byte) : longint;
-
- procedure getfattr(var f;var attr : word);
- procedure setfattr(var f;attr : word);
- procedure getftime(var f;var time : longint);
- procedure setftime(var f;time : longint);
-
- procedure findfirst(path : pathstr;attr : word;var f : searchrec);
- procedure findnext(var f : searchrec);
-
- function fexpand(path : pathstr) : pathstr;
- procedure fsplit(
- path : pathstr;var dir : dirstr;
- var name : namestr;var ext : extstr
- );
-
- function __existfil(pathname : pathstr) : boolean;
- procedure __erasefil(filename : pathstr; var errorcode : word);
- procedure intr(intno : byte; var regs : registers);
- procedure swapvectors;
- function envcount : integer;
- function envstr(index : integer) : string;
- function getenv(envvar : string) : string;
- function __dosinkey(var extendedcode : byte) : char;
- function __retkey: word;
- function __exinkey(useextended: boolean; var scancode: byte): char;
- function __exrdykey(
- useextended : boolean;
- var nextch : char;
- var scancode : byte
- ) : boolean;
- procedure __flushkey;
-
-
- { LOCK FUNCTIONS }
- function fopen(var fv : stream; fn : pathstr; mode : integer) : integer;
- function fclose(var fv : stream) : integer;
- function shareloaded : boolean;
- function filelock(
- handle : word;
- action : byte;
- start,
- bytes : longint;
- var ax : integer
- ): boolean;
-
-
-
- !short DATE functions
-
- { DATE FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- function __dt2ststr(year, month, day, datefmt : word): string;
- function __datestr(var year,month,day: word): string;
- function __timestr(var hours,minutes,seconds,tics: word): string;
- procedure __st2dtstr(st: string; var year, month, day: word; datefmt: word);
- function __time2str(hours, mins, secs, tics, format: word): string;
- function __2timestr(timestr: string; var hours,mins,secs,tics:word): boolean;
-
- function __retdowstr(dayofweek: word; ful: boolean): string;
- function __todaystr(ful: boolean): string;
- procedure __jl2dtutl(julian: longint; var year, month, day, weekday: word);
- function __dt2jlutl(year, month, day : word) : longint;
- function __daysutl(yr1, mn1, day1 : word; yr2, mn2, day2 : word) : longint;
- function __retdow(y, m, d: word): word;
- function __today: byte;
-
- function __curdate: string;
- function __curdate2longint: longint;
- function __longint2date(l: longint): string;
- function __date2longint(d: string): longint; { 'xx NNN yy HH:MM.ss' }
- { eg. '22 Aug 69 14:50.11' }
- procedure __longint2datetime(d : longint; var dt : datetime);
- function format_date(dt : datetime; format : byte): string;
- function __formatdate(d : longint; format : byte): string;
-
- function __dbdate: string;
- function __radate: string;
-
- procedure unpacktime(p : longint;var t : datetime);
- procedure packtime(var t : datetime;var p : longint);
-
-
-
-
- !short TIMER functions
-
- { IMPORTANT TIMER FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- procedure starttimer(whichclock : byte);
- function getlaptime(whichclock : byte) : string;
- procedure restarttimer(whichclock : byte);
- function stoptimer(whichclock : byte) : string;
-
-
-
-
- !short FILE functions
-
- { IMPORTANT FILE FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- function __attrfilter(fileattr, filter: byte): boolean;
- function __bak(s: string): string;
- function __comexebatcmdfilter(s: namestr): boolean;
- function __curdir: string;
- function __deverr: string;
- procedure __drvparm(drv: char);
- procedure __erasefiles(s: string);
- function __existpath(s: string): boolean;
- function __extractext(name: pathstr): str3;
- function __extractname(s : string): string;
- function __extractpath(s : string): string;
- function __findfil(f: string; var s: string): boolean;
- function __inparams(s: string; var i: word): boolean;
- function __packfil(str: string; size: byte): string;
- procedure __parsefil(name: filestr; var nam: namestr; var ext: extstr);
- function __searchrec(
- src : searchrec;
- nm, woord, mainsize : word;
- takemainsize, extended,
- ampm, show_attr,
- wide : boolean
- ): string;
- function __sizefil(pt: string): longint;
- function __strattr(attr: byte; full: boolean): string;
- procedure __uniquefil( { i.s.o. __tempfil, an unique textfile }
- var pathname: string; var tmpfile: text; var errorcode: word
- );
- function __copyfil(x1,x2,y,f,b: byte; fs: longint; src, targ: string): byte;
-
-
-
- !short LOG functions
-
- { XXXXXXXXXX LOG FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
-
-
- procedure __loginit;
- procedure __logapp(s: string);
- procedure __filapp(fil, s : string);
-
- procedure __setpurge(b: byte);
- procedure __logpurge;
-
- function __recent(s: string): boolean;
-
-
-
- !short FAST SCREEN functions
-
- { XXXXXXXXXXXX FAST SCREEN FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
-
-
- function at(f, b: byte): byte;
- procedure __scn(col, row, attr: byte; st: str80);
- procedure __vid(col, row: byte; st: str80);
- procedure changeattr(col,row,attr: byte; number: word);
- function get_video_mode: byte;
-
- { extended functions, just like in eco_vid, but for small use }
- procedure __attrib(x1, y1, x2, y2, f, b: byte);
- procedure __bandwin(del: boolean; x1,y1,x2,y2,f,b,bt: byte);
- procedure __betwscn(x1, x2, y, f, b: byte; st: string);
- procedure __boxscn(x1,y1,x2,y2,boxtype,fore,back : byte);
- procedure __clrscn(x1, y1, x2, y2, f, b: byte; c: char);
- procedure __cls;
- procedure __copyscn(x1, y1, x2, y2, x, y: byte);
-
- function __retdvscn(
- var dvmode : byte;
- var dvcols : word;
- var dvrows : word;
- var dbactpage : byte;
- var dvdispage : byte
- ): byte;
-
- procedure __vert(x, y, f, b: byte; s: string);
- procedure __write(col, row, f, b: byte; st: str80);
-
- procedure __resscn(sc: _scnimageptr);
- procedure __savscn(sc: _scnimageptr);
- function __barchoice(x,x1,y,f,b,h : byte; st: string): byte;
-
-
-
-
- !short CRT functions
-
- { XXXXXXXXXXXX CRT FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- procedure standardio;
-
-
-
-
-
- !short TEXT functions
-
- { XXXXXXXXXXXX TEXT FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
-
- type
- strptr = ^string;
- textnodeptr = ^textnode;
- textnode = record
- next,prev :textnodeptr; {line may not be made longer}
- line :strptr; {allocation is length+1}
- end;
- textbuffer = record
- first,last :textnodeptr;
- end;
-
- {-
- Note: Don't mess around inside the data structures defined above.
- Use the procedures to access them instead. This unit should be
- written object orientated. Some procedures don't use all their
- parameters at the moment. This is intentional and will be useful
- if the structures are enhanced.
- -}
-
- {- initialise an empty buffer -}
- procedure newbuffer(var t :textbuffer);
-
- {- return true if the buffer is empty -}
- function emptybuffer(var t :textbuffer) :boolean;
-
- {- return a pointer to the first line of a buffer -}
- function firstline(var t :textbuffer) :textnodeptr;
-
- {- return a pointer to the last line of a buffer -}
- function lastline(var t :textbuffer) :textnodeptr;
-
- {- return the next line in a buffer -}
- function nextline(var t :textbuffer; pos :textnodeptr) :textnodeptr;
-
- {- return the previous line in a buffer -}
- function prevline(var t :textbuffer; pos :textnodeptr) :textnodeptr;
-
- {- add a line to the end of a buffer -}
- procedure addtoend(var t :textbuffer; line :string);
-
- {- insert a line before another line -}
- procedure addinsert(var t :textbuffer; pos :textnodeptr; line :string);
-
- {- delete a line and return the next line or nil if it was the last line -}
- function deleteline(var t :textbuffer; var pos :textnodeptr) :textnodeptr;
-
- {- delete a buffer -}
- procedure deletebuffer(var t :textbuffer);
-
- {- retrieve the text value from a line -}
- function gettextline(var t: textbuffer; pos :textnodeptr) :string;
-
- {- assign a new string to a line of text -}
- procedure modifytextline(var t: textbuffer; pos :textnodeptr; line :string);
-
- {- word wrap the buffer -}
- procedure wrapbuffer(var t :textbuffer; margin :byte);
-
- {- create a new buffer with maximum length (255) lines -}
- procedure unwrapbuffer(var t,w :textbuffer);
-
- {- count the number of lines in a buffer -}
- function bufferlength(var t :textbuffer) :word;
-
-
-
-
- !short CRC FUNCTIONS
-
- { XXXXXXXXXXXX CRC FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX }
- function __crc32(value: byte; crc: longint) : longint;
- function __crc16(value: byte; crc: word) : word;
-
-
-
-
-
-
-