[Back to COMM SWAG index] [Back to Main SWAG index] [Original]
{ determine if ANSI.SYS loaded on micro }
Function AnsiSysLoaded : Boolean;
Var
_AX : Word;
Regs: Registers;
begin
Regs.AX := $1a00;
Intr($2f,Regs);
_Ax := Regs.AX;
ANSISysLoaded := Lo(_AX) = $FF
end;
{ ------------------------------------------------------------------------
DETECTANSI
Detect whether the remote user has ANSI support For initial Graphic mode.
------------------------------------------------------------------------ }
Function DetectAnsi : Boolean;
Var
AnsiDetected : Boolean;
AnsiChar : Char;
begin
AnsiDetected := False;
If (OrgCarr) then { not sysop_local then }
begin
Fossil.ModemPut(#27+'[6n'); { Esc[6n (Cursor Position Request) }
Fossil.FlushBuff;
Crt.Delay(2000); { waits For response (2 second) }
If (Fossil.SerialChar) then { if modem buffer is not empty }
begin
AnsiChar := Fossil.Receive;
If (AnsiChar in [#27,'0'..'9','[','H']) then
AnsiDetected := True;
end;
Crt.Delay(1000); { Pause 1 second }
Fossil.PurgeLine; { Purge input buffer }
Fossil.PurgeOutput; { Make sure nothing is in output buffer }
end
else
{ if local, check For ANSI.SYS loaded }
AnsiDetected := AnsiSysLoaded;
{ here you might wanna say:
if not AnsiSysLoaded then UseAnsiSimulator := True; }
If AnsiDetected then
PrintLn('ANSI Graphics detected.')
else
PrintLn('ANSI Graphics disabled.');
DetectAnsi := AnsiDetected;
end;
[Back to COMM SWAG index] [Back to Main SWAG index] [Original]