[Back to MISC SWAG index] [Back to Main SWAG index] [Original]
Unit globals;
{ Use this Unit For Procedures, Functions and Variables that every Program you
Write will share.
}
Interface
Uses
Dos;
Type
str1 = String[1]; str2 = String[2]; str3 = String[3];
str4 = String[4]; str5 = String[5]; str6 = String[6];
str7 = String[7]; str8 = String[8]; str9 = String[9];
str10 = String[10]; str11 = String[11]; str12 = String[12];
str13 = String[13]; str14 = String[14]; str15 = String[15];
str16 = String[16]; str17 = String[17]; str18 = String[18];
str19 = String[19]; str20 = String[20]; str21 = String[21];
str22 = String[22]; str23 = String[23]; str24 = String[24];
str25 = String[25]; str26 = String[26]; str27 = String[27];
str28 = String[28]; str29 = String[29]; str30 = String[30];
str31 = String[31]; str32 = String[32]; str33 = String[33];
str34 = String[34]; str35 = String[35]; str36 = String[36];
str37 = String[37]; str38 = String[38]; str39 = String[39];
str40 = String[40]; str41 = String[41]; str42 = String[42];
str43 = String[43]; str44 = String[44]; str45 = String[45];
str46 = String[46]; str47 = String[47]; str48 = String[48];
str49 = String[49]; str50 = String[50]; str51 = String[51];
str52 = String[52]; str53 = String[53]; str54 = String[54];
str55 = String[55]; str56 = String[56]; str57 = String[57];
str58 = String[58]; str59 = String[59]; str60 = String[60];
str61 = String[61]; str62 = String[62]; str63 = String[63];
str64 = String[64]; str65 = String[65]; str66 = String[66];
str67 = String[67]; str68 = String[68]; str69 = String[69];
str70 = String[70]; str71 = String[71]; str72 = String[72];
str73 = String[73]; str74 = String[74]; str75 = String[75];
str76 = String[76]; str77 = String[77]; str78 = String[78];
str79 = String[79]; str80 = String[80]; str81 = String[81];
str82 = String[82]; str83 = String[83]; str84 = String[84];
str85 = String[85]; str86 = String[86]; str87 = String[87];
str88 = String[88]; str89 = String[89]; str90 = String[90];
str91 = String[91]; str92 = String[92]; str93 = String[93];
str94 = String[94]; str95 = String[95]; str96 = String[96];
str97 = String[97]; str98 = String[98]; str99 = String[99];
str100 = String[100]; str101 = String[101]; str102 = String[102];
str103 = String[103]; str104 = String[104]; str105 = String[105];
str106 = String[106]; str107 = String[107]; str108 = String[108];
str109 = String[109]; str110 = String[110]; str111 = String[111];
str112 = String[112]; str113 = String[113]; str114 = String[114];
str115 = String[115]; str116 = String[116]; str117 = String[117];
str118 = String[118]; str119 = String[119]; str120 = String[120];
str121 = String[121]; str122 = String[122]; str123 = String[123];
str124 = String[124]; str125 = String[125]; str126 = String[126];
str127 = String[127]; str128 = String[128]; str129 = String[129];
str130 = String[130]; str131 = String[131]; str132 = String[132];
str133 = String[133]; str134 = String[134]; str135 = String[135];
str136 = String[136]; str137 = String[137]; str138 = String[138];
str139 = String[139]; str140 = String[140]; str141 = String[141];
str142 = String[142]; str143 = String[143]; str144 = String[144];
str145 = String[145]; str146 = String[146]; str147 = String[147];
str148 = String[148]; str149 = String[149]; str150 = String[150];
str151 = String[151]; str152 = String[152]; str153 = String[153];
str154 = String[154]; str155 = String[155]; str156 = String[156];
str157 = String[157]; str158 = String[158]; str159 = String[159];
str160 = String[160]; str161 = String[161]; str162 = String[162];
str163 = String[163]; str164 = String[164]; str165 = String[165];
str166 = String[166]; str167 = String[167]; str168 = String[168];
str169 = String[169]; str170 = String[170]; str171 = String[171];
str172 = String[172]; str173 = String[173]; str174 = String[174];
str175 = String[175]; str176 = String[176]; str177 = String[177];
str178 = String[178]; str179 = String[179]; str180 = String[180];
str181 = String[181]; str182 = String[182]; str183 = String[183];
str184 = String[184]; str185 = String[185]; str186 = String[186];
str187 = String[187]; str188 = String[188]; str189 = String[189];
str190 = String[190]; str191 = String[191]; str192 = String[192];
str193 = String[193]; str194 = String[194]; str195 = String[195];
str196 = String[196]; str197 = String[197]; str198 = String[198];
str199 = String[199]; str200 = String[200]; str201 = String[201];
str202 = String[202]; str203 = String[203]; str204 = String[204];
str205 = String[205]; str206 = String[206]; str207 = String[207];
str208 = String[208]; str209 = String[209]; str210 = String[210];
str211 = String[211]; str212 = String[212]; str213 = String[213];
str214 = String[214]; str215 = String[215]; str216 = String[216];
str217 = String[217]; str218 = String[218]; str219 = String[219];
str220 = String[220]; str221 = String[221]; str222 = String[222];
str223 = String[223]; str224 = String[224]; str225 = String[225];
str226 = String[226]; str227 = String[227]; str228 = String[228];
str229 = String[229]; str230 = String[230]; str231 = String[231];
str232 = String[232]; str233 = String[233]; str234 = String[234];
str235 = String[235]; str236 = String[236]; str237 = String[237];
str238 = String[238]; str239 = String[239]; str240 = String[240];
str241 = String[241]; str242 = String[242]; str243 = String[243];
str244 = String[244]; str245 = String[245]; str246 = String[246];
str247 = String[247]; str248 = String[248]; str249 = String[249];
str250 = String[250]; str251 = String[251]; str252 = String[252];
str253 = String[253]; str254 = String[254]; str255 = String[255];
Const
MaxWord = $ffff;
MinWord = 0;
MinInt = Integer($8000);
MinLongInt = $80000000;
UseCfg = True;
{Color Constants:
Black = 0; Blue = 1; Green = 2; Cyan = 3; Red = 4;
Magenta = 5; Brown = 6; LtGray = 7;
DkGray = 8; LtBlue = 9; LtGreen = A; LtCyan = B; LtRed = C;
LtMagenta = D; Yellow = E; White = F
}
Const Blink = $80;
{Screen color Constants}
Const BlackOnBlack = $00; BlueOnBlack = $01;
Const BlackOnBlue = $10; BlueOnBlue = $11;
Const BlackOnGreen = $20; BlueOnGreen = $21;
Const BlackOnCyan = $30; BlueOnCyan = $31;
Const BlackOnRed = $40; BlueOnRed = $41;
Const BlackOnMagenta = $50; BlueOnMagenta = $51;
Const BlackOnBrown = $60; BlueOnBrown = $61;
Const BlackOnLtGray = $70; BlueOnLtGray = $71;
Const GreenOnBlack = $02; CyanOnBlack = $03;
Const GreenOnBlue = $12; CyanOnBlue = $13;
Const GreenOnGreen = $22; CyanOnGreen = $23;
Const GreenOnCyan = $32; CyanOnCyan = $33;
Const GreenOnRed = $42; CyanOnRed = $43;
Const GreenOnMagenta = $52; CyanOnMagenta = $53;
Const GreenOnBrown = $62; CyanOnBrown = $63;
Const GreenOnLtGray = $72; CyanOnLtGray = $73;
Const RedOnBlue = $14; MagentaOnBlue = $15;
Const RedOnGreen = $24; MagentaOnGreen = $25;
Const RedOnCyan = $34; MagentaOnCyan = $35;
Const RedOnRed = $44; MagentaOnRed = $45;
Const RedOnMagenta = $54; MagentaOnMagenta = $55;
Const RedOnBrown = $64; MagentaOnBrown = $65;
Const RedOnLtGray = $74; MagentaOnLtGray = $75;
Const BrownOnBlack = $06; LtGrayOnBlack = $07;
Const BrownOnBlue = $16; LtGrayOnBlue = $17;
Const BrownOnGreen = $26; LtGrayOnGreen = $27;
Const BrownOnCyan = $36; LtGrayOnCyan = $37;
Const BrownOnRed = $46; LtGrayOnRed = $47;
Const BrownOnMagenta = $56; LtGrayOnMagenta = $57;
Const BrownOnBrown = $66; LtGrayOnBrown = $67;
Const BrownOnLtGray = $76; LtGrayOnLtGray = $77;
Const DkGrayOnBlack = $08; LtBlueOnBlack = $09;
Const DkGrayOnBlue = $18; LtBlueOnBlue = $19;
Const DkGrayOnGreen = $28; LtBlueOnGreen = $29;
Const DkGrayOnCyan = $38; LtBlueOnCyan = $39;
Const DkGrayOnRed = $48; LtBlueOnRed = $49;
Const DkGrayOnMagenta = $58; LtBlueOnMagenta = $59;
Const DkGrayOnBrown = $68; LtBlueOnBrown = $69;
Const DkGrayOnLtGray = $78; LtBlueOnLtGray = $79;
Const LtGreenOnBlack = $0A; LtCyanOnBlack = $0B;
Const LtGreenOnBlue = $1A; LtCyanOnBlue = $1B;
Const LtGreenOnGreen = $2A; LtCyanOnGreen = $2B;
Const LtGreenOnCyan = $3A; LtCyanOnCyan = $3B;
Const LtGreenOnRed = $4A; LtCyanOnRed = $4B;
Const LtGreenOnMagenta = $5A; LtCyanOnMagenta = $5B;
Const LtGreenOnBrown = $6A; LtCyanOnBrown = $6B;
Const LtGreenOnLtGray = $7A; LtCyanOnLtGray = $7B;
Const LtRedOnBlue = $1C; LtMagentaOnBlue = $1D;
Const LtRedOnGreen = $2C; LtMagentaOnGreen = $2D;
Const LtRedOnCyan = $3C; LtMagentaOnCyan = $3D;
Const LtRedOnRed = $4C; LtMagentaOnRed = $4D;
Const LtRedOnMagenta = $5C; LtMagentaOnMagenta = $5D;
Const LtRedOnBrown = $6C; LtMagentaOnBrown = $6D;
Const LtRedOnLtGray = $7C; LtMagentaOnLtGray = $7D;
Const YellowOnBlack = $0E; WhiteOnBlack = $0F;
Const YellowOnBlue = $1E; WhiteOnBlue = $1F;
Const YellowOnGreen = $2E; WhiteOnGreen = $2F;
Const YellowOnCyan = $3E; WhiteOnCyan = $3F;
Const YellowOnRed = $4E; WhiteOnRed = $4F;
Const YellowOnMagenta = $5E; WhiteOnMagenta = $5F;
Const YellowOnBrown = $6E; WhiteOnBrown = $6F;
Const YellowOnLtGray = $7E; WhiteOnLtGray = $7F;
Const BlackOnDkGray = Blink + $00; BlueOnDkGray = Blink + $01;
Const BlackOnLtBlue = Blink + $10; BlueOnLtBlue = Blink + $11;
Const BlackOnLtGreen = Blink + $20; BlueOnLtGreen = Blink + $21;
Const BlackOnLtCyan = Blink + $30; BlueOnLtCyan = Blink + $31;
Const BlackOnLtRed = Blink + $40; BlueOnLtRed = Blink + $41;
Const BlackOnLtMagenta = Blink + $50; BlueOnLtMagenta = Blink + $51;
Const BlackOnYellow = Blink + $60; BlueOnYellow = Blink + $61;
Const BlackOnWhite = Blink + $70; BlueOnWhite = Blink + $71;
Const GreenOnDkGray = Blink + $02; CyanOnDkGray = Blink + $03;
Const GreenOnLtBlue = Blink + $12; CyanOnLtBlue = Blink + $13;
Const GreenOnLtGreen = Blink + $22; CyanOnLtGreen = Blink + $23;
Const GreenOnLtCyan = Blink + $32; CyanOnLtCyan = Blink + $33;
Const GreenOnLtRed = Blink + $42; CyanOnLtRed = Blink + $43;
Const GreenOnLtMagenta = Blink + $52; CyanOnLtMagenta = Blink + $53;
Const GreenOnYellow = Blink + $62; CyanOnYellow = Blink + $63;
Const GreenOnWhite = Blink + $72; CyanOnWhite = Blink + $73;
Const RedOnDkGray = Blink + $04; MagentaOnDkGray = Blink + $05;
Const RedOnLtBlue = Blink + $14; MagentaOnLtBlue = Blink + $15;
Const RedOnLtGreen = Blink + $24; MagentaOnLtGreen = Blink + $25;
Const RedOnLtCyan = Blink + $34; MagentaOnLtCyan = Blink + $35;
Const RedOnLtRed = Blink + $44; MagentaOnLtRed = Blink + $45;
Const RedOnLtMagenta = Blink + $54; MagentaOnLtMagenta= Blink + $55;
Const RedOnYellow = Blink + $64; MagentaOnYellow = Blink + $65;
Const RedOnWhite = Blink + $74; MagentaOnWhite = Blink + $75;
Const BrownOnDkGray = Blink + $06; LtGrayOnDkGray = Blink + $07;
Const BrownOnLtBlue = Blink + $16; LtGrayOnLtBlue = Blink + $17;
Const BrownOnLtGreen = Blink + $26; LtGrayOnLtGreen = Blink + $27;
Const BrownOnLtCyan = Blink + $36; LtGrayOnLtCyan = Blink + $37;
Const BrownOnLtRed = Blink + $46; LtGrayOnLtRed = Blink + $47;
Const BrownOnLtMagenta = Blink + $56; LtGrayOnLtMagenta = Blink + $57;
Const BrownOnYellow = Blink + $66; LtGrayOnYellow = Blink + $67;
Const BrownOnWhite = Blink + $76; LtGrayOnWhite = Blink + $77;
Const DkGrayOnDkGray = Blink + $08; LtBlueOnDkGray = Blink + $09;
Const DkGrayOnLtBlue = Blink + $18; LtBlueOnLtBlue = Blink + $19;
Const DkGrayOnLtGreen = Blink + $28; LtBlueOnLtGreen = Blink + $29;
Const DkGrayOnLtCyan = Blink + $38; LtBlueOnLtCyan = Blink + $39;
Const DkGrayOnLtRed = Blink + $48; LtBlueOnLtRed = Blink + $49;
Const DkGrayOnLtMagenta = Blink + $58; LtBlueOnLtMagenta = Blink + $59;
Const DkGrayOnYellow = Blink + $68; LtBlueOnYellow = Blink + $69;
Const DkGrayOnWhite = Blink + $78; LtBlueOnWhite = Blink + $79;
Const LtGreenOnDkGray = Blink + $0A; LtCyanOnDkGray = Blink + $0B;
Const LtGreenOnLtBlue = Blink + $1A; LtCyanOnLtBlue = Blink + $1B;
Const LtGreenOnLtGreen = Blink + $2A; LtCyanOnLtGreen = Blink + $2B;
Const LtGreenOnLtCyan = Blink + $3A; LtCyanOnLtCyan = Blink + $3B;
Const LtGreenOnLtRed = Blink + $4A; LtCyanOnLtRed = Blink + $4B;
Const LtGreenOnLtMagenta= Blink + $5A; LtCyanOnLtMagenta = Blink + $5B;
Const LtGreenOnYellow = Blink + $6A; LtCyanOnYellow = Blink + $6B;
Const LtGreenOnWhite = Blink + $7A; LtCyanOnWhite = Blink + $7B;
Const LtRedOnDkGray = Blink + $0C; LtMagentaOnDkGray = Blink + $0D;
Const LtRedOnLtBlue = Blink + $1C; LtMagentaOnLtBlue = Blink + $1D;
Const LtRedOnLtGreen = Blink + $2C; LtMagentaOnLtGreen= Blink + $2D;
Const LtRedOnLtCyan = Blink + $3C; LtMagentaOnLtCyan = Blink + $3D;
Const LtRedOnLtRed = Blink + $4C; LtMagentaOnLtRed = Blink + $4D;
Const LtRedOnLtMagenta = Blink + $5C; LtMagentaOnLtMagenta= Blink + $5D;
Const LtRedOnYellow = Blink + $6C; LtMagentaOnYellow = Blink + $6D;
Const LtRedOnWhite = Blink + $7C; LtMagentaOnWhite = Blink + $7D;
Const YellowOnDkGray = Blink + $0E; WhiteOnDkGray = Blink + $0F;
Const YellowOnLtBlue = Blink + $1E; WhiteOnLtBlue = Blink + $1F;
Const YellowOnLtGreen = Blink + $2E; WhiteOnLtGreen = Blink + $2F;
Const YellowOnLtCyan = Blink + $3E; WhiteOnLtCyan = Blink + $3F;
Const YellowOnLtRed = Blink + $4E; WhiteOnLtRed = Blink + $4F;
Const YellowOnLtMagenta = Blink + $5E; WhiteOnLtMagenta = Blink + $5F;
Const YellowOnYellow = Blink + $6E; WhiteOnYellow = Blink + $6F;
Const YellowOnWhite = Blink + $7E; WhiteOnWhite = Blink + $7F;
Var
TempStr : String;
TempStrLen : Byte Absolute TempStr;
Function Exist(fn: str80): Boolean;
{ Returns True if File fn exists in the current directory }
Function ExistsOnPath(Var fn: str80): Boolean;
{ Returns True if File fn exists in any directory specified in the current }
{ path and changes fn to a fully qualified path/File. }
Function StrUpCase(s : String): String;
{ Returns an upper Case String from s. Applicable to the English language. }
Function StrLowCase(s : String): String;
{ Returns a String = to s With all upper Case Characters converted to lower }
Function Asc2Str(Var s; max: Byte): String;
{ Converts an ASCIIZ String to a Turbo Pascal String With a maximum length }
{ of max Characters. }
Procedure Str2Asc(s: String; Var ascStr; max: Word);
{ Converts a TP String to an ASCIIZ String of no more than max length. }
{ WARNinG: No checks are made that there is sufficient room in destination }
{ Variable. }
Function LastPos(ch: Char; s: String): Byte;
{ Returns the last position of ch in s }
Procedure CheckIO(a: Byte);
Implementation
Function Exist(fn: str80): Boolean;
begin
TempStrLen := 0;
TempStr := FSearch(fn,'');
Exist := TempStrLen <> 0;
end; { Exist }
Function ExistsOnPath(Var fn: str80): Boolean;
begin
TempStrLen := 0;
TempStr := FSearch(fn,GetEnv('PATH'));
ExistsOnPath := TempStrLen <> 0;
fn := FExpand(TempStr);
end; { ExistsOnPath }
Function StrUpCase(s : String): String;
Var x : Byte;
begin
StrUpCase[0] := s[0];
For x := 1 to length(s) do
StrUpCase[x] := UpCase(s[x]);
end; { StrUpCase }
Function StrLowCase(s : String): String;
Var x : Byte;
begin
StrLowCase[0] := s[0];
For x := 1 to length(s) do
Case s[x] of
'a'..'z': StrLowCase[x] := chr(ord(s[x]) and $df);
else StrLowCase[x] := s[x];
end; { Case }
end; { StrLowCase }
Function Asc2Str(Var s; max: Byte): String;
Var stArray : Array[1..255] of Char Absolute s;
len : Integer;
begin
len := pos(#0,stArray)-1; { Get the length }
if (len > max) or (len < 0) then { length exceeds maximum }
len := max; { so set to maximum }
Asc2Str := stArray;
Asc2Str[0] := chr(len); { Set length }
end; { Asc2Str }
Procedure Str2Asc(s: String; Var ascStr; max: Word);
begin
FillChar(AscStr,max,0);
if length(s) < max then
move(s[1],AscStr,length(s))
else
move(s[1],AscStr,max);
end; { Str2Asc }
Function LastPos(ch: Char; s: String): Byte;
Var x : Word;
begin
x := succ(length(s));
Repeat
dec(x);
Until (s[x] = ch) or (x = 0);
end; { LastPos }
Procedure CheckIO(a: Byte);
Var e : Integer;
begin
e := Ioresult;
if e <> 0 then begin
Writeln('I/O error ',e,' section ',a);
halt(e);
end;
end; { CheckIO }
end. { Globals }
[Back to MISC SWAG index] [Back to Main SWAG index] [Original]