More REETODOs handled. Down to 14 in COMMON4
In theory Renegade should now work in local mode since the 14 items in COMMON4 are all comm related. I don't have v1.19 installed to test with though, so can't confirm.
This commit is contained in:
parent
9642f60655
commit
26d778c4ac
|
@ -862,7 +862,8 @@ VAR
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
FUNCTION TrueDosVer(VAR WinNTOk: Boolean): Word;
|
FUNCTION TrueDosVer(VAR WinNTOk: Boolean): Word;
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO BOOT TrueDosVer'); Halt;
|
WinNtOK := TRUE;
|
||||||
|
TrueDosVer := 5;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
@ -888,7 +889,9 @@ VAR
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
FUNCTION DosVer(VAR Minor,OS2Ver: Word): Word;
|
FUNCTION DosVer(VAR Minor,OS2Ver: Word): Word;
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO BOOT DosVer'); Halt;
|
Minor := 0;
|
||||||
|
OS2Ver := 0;
|
||||||
|
DosVer := 5;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
@ -911,7 +914,7 @@ VAR
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
FUNCTION Win3_Check_On: Boolean;
|
FUNCTION Win3_Check_On: Boolean;
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO BOOT Win3_Check_On'); Halt;
|
Win3_Check_On := FALSE;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
@ -937,7 +940,7 @@ VAR
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
FUNCTION DV_Check_On: Boolean;
|
FUNCTION DV_Check_On: Boolean;
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO BOOT DV_Check_On'); Halt;
|
DV_Check_On := FALSE;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
|
@ -668,10 +668,13 @@ USES
|
||||||
File11,
|
File11,
|
||||||
Mail0,
|
Mail0,
|
||||||
MultNode,
|
MultNode,
|
||||||
|
{$IFDEF MSDOS}
|
||||||
SpawnO,
|
SpawnO,
|
||||||
|
{$ENDIF}
|
||||||
SysOp12,
|
SysOp12,
|
||||||
Vote
|
Vote
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
|
,VPSysLow
|
||||||
,VPUtils
|
,VPUtils
|
||||||
,Windows
|
,Windows
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
@ -694,9 +697,72 @@ FUNCTION UpdateCRC32(CRC: LongInt; VAR Buffer; Len: Word): LongInt; EXTERNAL;
|
||||||
{$L CRC32.OBJ }
|
{$L CRC32.OBJ }
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
|
CONST
|
||||||
|
CRC_32_TAB : array[0..255] of LongInt = (
|
||||||
|
$00000000, $77073096, $ee0e612c, $990951ba, $076dc419,
|
||||||
|
$706af48f, $e963a535, $9e6495a3, $0edb8832, $79dcb8a4,
|
||||||
|
$e0d5e91e, $97d2d988, $09b64c2b, $7eb17cbd, $e7b82d07,
|
||||||
|
$90bf1d91, $1db71064, $6ab020f2, $f3b97148, $84be41de,
|
||||||
|
$1adad47d, $6ddde4eb, $f4d4b551, $83d385c7, $136c9856,
|
||||||
|
$646ba8c0, $fd62f97a, $8a65c9ec, $14015c4f, $63066cd9,
|
||||||
|
$fa0f3d63, $8d080df5, $3b6e20c8, $4c69105e, $d56041e4,
|
||||||
|
$a2677172, $3c03e4d1, $4b04d447, $d20d85fd, $a50ab56b,
|
||||||
|
$35b5a8fa, $42b2986c, $dbbbc9d6, $acbcf940, $32d86ce3,
|
||||||
|
$45df5c75, $dcd60dcf, $abd13d59, $26d930ac, $51de003a,
|
||||||
|
$c8d75180, $bfd06116, $21b4f4b5, $56b3c423, $cfba9599,
|
||||||
|
$b8bda50f, $2802b89e, $5f058808, $c60cd9b2, $b10be924,
|
||||||
|
$2f6f7c87, $58684c11, $c1611dab, $b6662d3d, $76dc4190,
|
||||||
|
$01db7106, $98d220bc, $efd5102a, $71b18589, $06b6b51f,
|
||||||
|
$9fbfe4a5, $e8b8d433, $7807c9a2, $0f00f934, $9609a88e,
|
||||||
|
$e10e9818, $7f6a0dbb, $086d3d2d, $91646c97, $e6635c01,
|
||||||
|
$6b6b51f4, $1c6c6162, $856530d8, $f262004e, $6c0695ed,
|
||||||
|
$1b01a57b, $8208f4c1, $f50fc457, $65b0d9c6, $12b7e950,
|
||||||
|
$8bbeb8ea, $fcb9887c, $62dd1ddf, $15da2d49, $8cd37cf3,
|
||||||
|
$fbd44c65, $4db26158, $3ab551ce, $a3bc0074, $d4bb30e2,
|
||||||
|
$4adfa541, $3dd895d7, $a4d1c46d, $d3d6f4fb, $4369e96a,
|
||||||
|
$346ed9fc, $ad678846, $da60b8d0, $44042d73, $33031de5,
|
||||||
|
$aa0a4c5f, $dd0d7cc9, $5005713c, $270241aa, $be0b1010,
|
||||||
|
$c90c2086, $5768b525, $206f85b3, $b966d409, $ce61e49f,
|
||||||
|
$5edef90e, $29d9c998, $b0d09822, $c7d7a8b4, $59b33d17,
|
||||||
|
$2eb40d81, $b7bd5c3b, $c0ba6cad, $edb88320, $9abfb3b6,
|
||||||
|
$03b6e20c, $74b1d29a, $ead54739, $9dd277af, $04db2615,
|
||||||
|
$73dc1683, $e3630b12, $94643b84, $0d6d6a3e, $7a6a5aa8,
|
||||||
|
$e40ecf0b, $9309ff9d, $0a00ae27, $7d079eb1, $f00f9344,
|
||||||
|
$8708a3d2, $1e01f268, $6906c2fe, $f762575d, $806567cb,
|
||||||
|
$196c3671, $6e6b06e7, $fed41b76, $89d32be0, $10da7a5a,
|
||||||
|
$67dd4acc, $f9b9df6f, $8ebeeff9, $17b7be43, $60b08ed5,
|
||||||
|
$d6d6a3e8, $a1d1937e, $38d8c2c4, $4fdff252, $d1bb67f1,
|
||||||
|
$a6bc5767, $3fb506dd, $48b2364b, $d80d2bda, $af0a1b4c,
|
||||||
|
$36034af6, $41047a60, $df60efc3, $a867df55, $316e8eef,
|
||||||
|
$4669be79, $cb61b38c, $bc66831a, $256fd2a0, $5268e236,
|
||||||
|
$cc0c7795, $bb0b4703, $220216b9, $5505262f, $c5ba3bbe,
|
||||||
|
$b2bd0b28, $2bb45a92, $5cb36a04, $c2d7ffa7, $b5d0cf31,
|
||||||
|
$2cd99e8b, $5bdeae1d, $9b64c2b0, $ec63f226, $756aa39c,
|
||||||
|
$026d930a, $9c0906a9, $eb0e363f, $72076785, $05005713,
|
||||||
|
$95bf4a82, $e2b87a14, $7bb12bae, $0cb61b38, $92d28e9b,
|
||||||
|
$e5d5be0d, $7cdcefb7, $0bdbdf21, $86d3d2d4, $f1d4e242,
|
||||||
|
$68ddb3f8, $1fda836e, $81be16cd, $f6b9265b, $6fb077e1,
|
||||||
|
$18b74777, $88085ae6, $ff0f6a70, $66063bca, $11010b5c,
|
||||||
|
$8f659eff, $f862ae69, $616bffd3, $166ccf45, $a00ae278,
|
||||||
|
$d70dd2ee, $4e048354, $3903b3c2, $a7672661, $d06016f7,
|
||||||
|
$4969474d, $3e6e77db, $aed16a4a, $d9d65adc, $40df0b66,
|
||||||
|
$37d83bf0, $a9bcae53, $debb9ec5, $47b2cf7f, $30b5ffe9,
|
||||||
|
$bdbdf21c, $cabac28a, $53b39330, $24b4a3a6, $bad03605,
|
||||||
|
$cdd70693, $54de5729, $23d967bf, $b3667a2e, $c4614ab8,
|
||||||
|
$5d681b02, $2a6f2b94, $b40bbe37, $c30c8ea1, $5a05df1b,
|
||||||
|
$2d02ef8d);
|
||||||
FUNCTION UpdateCRC32(CRC: LongInt; VAR Buffer; Len: Word): LongInt;
|
FUNCTION UpdateCRC32(CRC: LongInt; VAR Buffer; Len: Word): LongInt;
|
||||||
|
VAR
|
||||||
|
i: Integer;
|
||||||
|
Octet: ^Byte;
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO COMMON UpdateCRC32');
|
Octet := @buffer;
|
||||||
|
for i := 1 to Len do
|
||||||
|
begin
|
||||||
|
CRC := CRC_32_TAB[Byte(Crc XOR LongInt(Octet^))] XOR ((Crc SHR 8) AND $00FFFFFF);
|
||||||
|
Inc(Octet);
|
||||||
|
end;
|
||||||
|
UpdateCRC32 := CRC;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
@ -2043,6 +2109,7 @@ BEGIN
|
||||||
|
|
||||||
SwapVectors;
|
SwapVectors;
|
||||||
|
|
||||||
|
{$IFDEF MSDOS}
|
||||||
IF (General.SwapShell) THEN
|
IF (General.SwapShell) THEN
|
||||||
BEGIN
|
BEGIN
|
||||||
s := GetEnv('TEMP');
|
s := GetEnv('TEMP');
|
||||||
|
@ -2051,6 +2118,10 @@ BEGIN
|
||||||
Init_SpawNo(s,General.SwapTo,20,10);
|
Init_SpawNo(s,General.SwapTo,20,10);
|
||||||
ResultCode := Spawn(GetEnv('COMSPEC'),FName,0);
|
ResultCode := Spawn(GetEnv('COMSPEC'),FName,0);
|
||||||
END;
|
END;
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
ResultCode := -1;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
IF (NOT General.SwapShell) OR (ResultCode = -1) THEN
|
IF (NOT General.SwapShell) OR (ResultCode = -1) THEN
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -2787,7 +2858,8 @@ BEGIN
|
||||||
NoSound;
|
NoSound;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON GetKey'); Halt;
|
Sound(500, 200);
|
||||||
|
Sound(1500, 200);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
END;
|
END;
|
||||||
LastBeep := TempTimer;
|
LastBeep := TempTimer;
|
||||||
|
@ -4071,7 +4143,7 @@ BEGIN
|
||||||
c := Chr(Mem[VidSeg:(160 * (YPos - 1) + 2 * (XPos - 1))]);
|
c := Chr(Mem[VidSeg:(160 * (YPos - 1) + 2 * (XPos - 1))]);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON ScreenDump'); Halt;
|
c := SysReadCharAt(XPos - 1, YPos - 1);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
IF (c = #0) THEN
|
IF (c = #0) THEN
|
||||||
c := #32;
|
c := #32;
|
||||||
|
@ -4921,7 +4993,7 @@ BEGIN
|
||||||
C2 := ((1.0 * Regs.Bx) * C1);
|
C2 := ((1.0 * Regs.Bx) * C1);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON DiskKBFree'); Halt;
|
C2 := DiskFree(ExtractDriveNumber(DrivePath));
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
END;
|
END;
|
||||||
DiskKBFree := Round(C2 / 1024.0);
|
DiskKBFree := Round(C2 / 1024.0);
|
||||||
|
|
|
@ -31,6 +31,7 @@ USES
|
||||||
SysOp3,
|
SysOp3,
|
||||||
SplitCha
|
SplitCha
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
|
,VPSysLow
|
||||||
,Windows
|
,Windows
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
;
|
;
|
||||||
|
@ -180,7 +181,13 @@ END;
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
PROCEDURE BiosScroll(up: Boolean);
|
PROCEDURE BiosScroll(up: Boolean);
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO COMMON2 BiosScroll'); Halt;
|
if (up) then
|
||||||
|
begin
|
||||||
|
SysScrollUp(0, 0, MaxDisplayCols-1, MaxDisplayRows-1, 2, 7);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
SysScrollDn(0, 0, MaxDisplayCols-1, MaxDisplayRows-1, 2, 7);
|
||||||
|
end;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
@ -296,7 +303,7 @@ BEGIN
|
||||||
Update_Logo(Win1,ScreenAddr[(FirstRow - 1) * 160],WIN1_LENGTH);
|
Update_Logo(Win1,ScreenAddr[(FirstRow - 1) * 160],WIN1_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON2 Update_Logo(Win1'); Halt;
|
Update_Logo(Win1, 1, FirstRow, WIN1_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
GoToXY(02,FirstRow);
|
GoToXY(02,FirstRow);
|
||||||
Write(Caps(Name));
|
Write(Caps(Name));
|
||||||
|
@ -346,7 +353,7 @@ BEGIN
|
||||||
Update_Logo(Win2,ScreenAddr[(FirstRow - 1) * 160],WIN2_LENGTH);
|
Update_Logo(Win2,ScreenAddr[(FirstRow - 1) * 160],WIN2_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON2 Update_Logo(Win2'); Halt;
|
Update_Logo(Win2, 1, FirstRow, WIN2_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
GoToXY(02,FirstRow);
|
GoToXY(02,FirstRow);
|
||||||
Write(Street);
|
Write(Street);
|
||||||
|
@ -384,7 +391,7 @@ BEGIN
|
||||||
Update_Logo(Win3,ScreenAddr[(FirstRow - 1) * 160],WIN3_LENGTH);
|
Update_Logo(Win3,ScreenAddr[(FirstRow - 1) * 160],WIN3_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON2 Update_Logo(Win3'); Halt;
|
Update_Logo(Win3, 1, FirstRow, WIN3_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
GoToXY(06,FirstRow);
|
GoToXY(06,FirstRow);
|
||||||
Write(Loggedon);
|
Write(Loggedon);
|
||||||
|
@ -438,7 +445,7 @@ BEGIN
|
||||||
Update_Logo(Win4,ScreenAddr[(FirstRow - 1) * 160],WIN4_LENGTH);
|
Update_Logo(Win4,ScreenAddr[(FirstRow - 1) * 160],WIN4_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON2 Update_Logo(Win4'); Halt;
|
Update_Logo(Win4, 1, FirstRow, WIN4_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
GoToXY(20,FirstRow);
|
GoToXY(20,FirstRow);
|
||||||
Write(Callers);
|
Write(Callers);
|
||||||
|
@ -466,7 +473,7 @@ BEGIN
|
||||||
Update_Logo(Win5,ScreenAddr[(FirstRow - 1) * 160],WIN5_LENGTH);
|
Update_Logo(Win5,ScreenAddr[(FirstRow - 1) * 160],WIN5_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON2 Update_Logo(Win5'); Halt;
|
Update_Logo(Win5, 1, FirstRow, WIN5_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
GoToXY(20,FirstRow);
|
GoToXY(20,FirstRow);
|
||||||
Write(General.CallerNum);
|
Write(General.CallerNum);
|
||||||
|
@ -596,7 +603,7 @@ BEGIN
|
||||||
Update_Logo(SYSKEY,ScreenAddr[0],SYSKEY_LENGTH);
|
Update_Logo(SYSKEY,ScreenAddr[0],SYSKEY_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO COMMON2 Update_Logo(SYSKEY'); Halt;
|
Update_Logo(SYSKEY, 1, 1, SYSKEY_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
CursorOn(FALSE);
|
CursorOn(FALSE);
|
||||||
C := ReadKey;
|
C := ReadKey;
|
||||||
|
|
|
@ -32,7 +32,11 @@ PROCEDURE InputCaps(VAR S: STRING; MaxLen: Byte);
|
||||||
IMPLEMENTATION
|
IMPLEMENTATION
|
||||||
|
|
||||||
USES
|
USES
|
||||||
Crt;
|
Crt
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
,RPScreen
|
||||||
|
{$ENDIF}
|
||||||
|
;
|
||||||
|
|
||||||
PROCEDURE InputDefault(VAR S: STRING; v: STRING; MaxLen: Byte; InputFlags: InputFlagSet; LineFeed: Boolean);
|
PROCEDURE InputDefault(VAR S: STRING; v: STRING; MaxLen: Byte; InputFlags: InputFlagSet; LineFeed: Boolean);
|
||||||
VAR
|
VAR
|
||||||
|
@ -359,7 +363,13 @@ VAR
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
PROCEDURE SetCursor(InsertMode: Boolean);
|
PROCEDURE SetCursor(InsertMode: Boolean);
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO COMMON3 SetCursor'); Halt;
|
if (InsertMode) then
|
||||||
|
begin
|
||||||
|
RPInsertCursor;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
RPBlockCursor;
|
||||||
|
end;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,9 @@ BEGIN
|
||||||
NoSound;
|
NoSound;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO LINECHAT RequestSysOpChat'); Halt;
|
Sound(3000, 200);
|
||||||
|
Sound(1000, 200);
|
||||||
|
Sound(3000, 200);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
END;
|
END;
|
||||||
IF (KeyPressed) THEN
|
IF (KeyPressed) THEN
|
||||||
|
@ -384,7 +386,12 @@ BEGIN
|
||||||
UNTIL (Counter = 200);
|
UNTIL (Counter = 200);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO LINECHAT SysOpLineChat'); Halt;
|
Sound(650, 200);
|
||||||
|
Sound(700, 200);
|
||||||
|
Sound(600, 200);
|
||||||
|
Sound(500, 200);
|
||||||
|
Sound(400, 200);
|
||||||
|
Sound(300, 200);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
Prompt(^G^G);
|
Prompt(^G^G);
|
||||||
END
|
END
|
||||||
|
|
|
@ -76,10 +76,16 @@ IMPLEMENTATION
|
||||||
USES
|
USES
|
||||||
Crt
|
Crt
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
|
,RPScreen
|
||||||
,VpSysLow
|
,VpSysLow
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
VAR
|
||||||
|
SavedScreen: TScreenBuf;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF MSDOS}
|
{$IFDEF MSDOS}
|
||||||
PROCEDURE CursorOn(b: BOOLEAN); ASSEMBLER;
|
PROCEDURE CursorOn(b: BOOLEAN); ASSEMBLER;
|
||||||
ASM
|
ASM
|
||||||
|
@ -99,7 +105,13 @@ END;
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
PROCEDURE CursorOn(b: BOOLEAN);
|
PROCEDURE CursorOn(b: BOOLEAN);
|
||||||
BEGIN
|
BEGIN
|
||||||
WriteLn('REETODO MYIO CursorOn'); Halt;
|
if (b) then
|
||||||
|
begin
|
||||||
|
RPShowCursor;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
RPHideCursor;
|
||||||
|
end;
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
@ -555,7 +567,7 @@ BEGIN
|
||||||
Move(ScreenAddr[0],Wind[0],ScreenSize);
|
Move(ScreenAddr[0],Wind[0],ScreenSize);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO MYIO SaveScreen'); Halt;
|
RPSaveScreen(SavedScreen);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
@ -565,7 +577,7 @@ BEGIN
|
||||||
Move(Wind[0],ScreenAddr[0],ScreenSize);
|
Move(Wind[0],ScreenAddr[0],ScreenSize);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
WriteLn('REETODO MYIO RemoveWindow'); Halt;
|
RPRestoreScreen(SavedScreen);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,157 @@
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
{$I DEFINES.INC}
|
||||||
|
{$ENDIF}
|
||||||
|
unit RPScreen;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
uses
|
||||||
|
Windows;
|
||||||
|
|
||||||
|
type
|
||||||
|
TScreenBuf = Array[1..25, 1..80] of TCharInfo; // REETODO Don't hardcode to 80x25
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
procedure RPBlockCursor;
|
||||||
|
procedure RPGotoXY(xy: SmallWord);
|
||||||
|
procedure RPHideCursor;
|
||||||
|
procedure RPInsertCursor;
|
||||||
|
procedure RPRestoreScreen(var screenBuf: TScreenBuf);
|
||||||
|
procedure RPSaveScreen(var screenBuf: TScreenBuf);
|
||||||
|
function RPScreenSizeX: Word;
|
||||||
|
function RPScreenSizeY: Word;
|
||||||
|
procedure RPSetAttrAt(x, y, attr: SmallWord);
|
||||||
|
procedure RPShowCursor;
|
||||||
|
function RPWhereXY: SmallWord;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
var
|
||||||
|
StdOut: THandle;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
procedure RPBlockCursor;
|
||||||
|
var
|
||||||
|
CCI: TConsoleCursorInfo;
|
||||||
|
begin
|
||||||
|
CCI.bVisible := true;
|
||||||
|
CCI.dwSize := 15;
|
||||||
|
SetConsoleCursorInfo(StdOut, CCI);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure RPGotoXY(xy: SmallWord);
|
||||||
|
var
|
||||||
|
Coord: TCoord;
|
||||||
|
begin
|
||||||
|
Coord.x := xy AND $00FF;
|
||||||
|
Coord.y := xy AND $FF00 SHR 8;
|
||||||
|
SetConsoleCursorPosition(StdOut, Coord);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure RPHideCursor;
|
||||||
|
var
|
||||||
|
CCI: TConsoleCursorInfo;
|
||||||
|
begin
|
||||||
|
GetConsoleCursorInfo(StdOut, CCI);
|
||||||
|
CCI.bVisible := false;
|
||||||
|
SetConsoleCursorInfo(StdOut, CCI);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure RPInsertCursor;
|
||||||
|
var
|
||||||
|
CCI: TConsoleCursorInfo;
|
||||||
|
begin
|
||||||
|
CCI.bVisible := true;
|
||||||
|
CCI.dwSize := 99;
|
||||||
|
SetConsoleCursorInfo(StdOut, CCI);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ REETODO Should detect screen size }
|
||||||
|
procedure RPRestoreScreen(var screenBuf: TScreenBuf);
|
||||||
|
var
|
||||||
|
BufSize : TCoord;
|
||||||
|
WritePos : TCoord;
|
||||||
|
DestRect : TSmallRect;
|
||||||
|
begin
|
||||||
|
BufSize.X := 80;
|
||||||
|
BufSize.Y := 25;
|
||||||
|
WritePos.X := 0;
|
||||||
|
WritePos.Y := 0;
|
||||||
|
DestRect.Left := 0;
|
||||||
|
DestRect.Top := 0;
|
||||||
|
DestRect.Right := 79;
|
||||||
|
DestRect.Bottom := 24;
|
||||||
|
WriteConsoleOutput(StdOut, @screenBuf[1][1], BufSize, WritePos, DestRect);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ REETODO Should detect screen size }
|
||||||
|
procedure RPSaveScreen(var screenBuf: TScreenBuf);
|
||||||
|
var
|
||||||
|
BufSize : TCoord;
|
||||||
|
ReadPos : TCoord;
|
||||||
|
SourceRect : TSmallRect;
|
||||||
|
begin
|
||||||
|
BufSize.X := 80;
|
||||||
|
BufSize.Y := 25;
|
||||||
|
ReadPos.X := 0;
|
||||||
|
ReadPos.Y := 0;
|
||||||
|
SourceRect.Left := 0;
|
||||||
|
SourceRect.Top := 0;
|
||||||
|
SourceRect.Right := 79;
|
||||||
|
SourceRect.Bottom := 24;
|
||||||
|
ReadConsoleOutput(StdOut, @screenBuf[1][1], BufSize, ReadPos, SourceRect);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function RPScreenSizeX: Word;
|
||||||
|
var
|
||||||
|
CSBI: TConsoleScreenBufferInfo;
|
||||||
|
begin
|
||||||
|
GetConsoleScreenBufferInfo(StdOut, CSBI);
|
||||||
|
RPScreenSizeX := CSBI.srWindow.Right - CSBI.srWindow.Left + 1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function RPScreenSizeY: Word;
|
||||||
|
var
|
||||||
|
CSBI: TConsoleScreenBufferInfo;
|
||||||
|
begin
|
||||||
|
GetConsoleScreenBufferInfo(StdOut, CSBI);
|
||||||
|
RPScreenSizeY := CSBI.srWindow.Bottom - CSBI.srWindow.Top + 1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure RPSetAttrAt(x, y, attr: SmallWord);
|
||||||
|
var
|
||||||
|
NumWritten: Longint;
|
||||||
|
WriteCoord: TCoord;
|
||||||
|
begin
|
||||||
|
WriteCoord.X := x;
|
||||||
|
WriteCoord.Y := y;
|
||||||
|
WriteConsoleOutputAttribute(StdOut, @attr, 1, WriteCoord, NumWritten);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure RPShowCursor;
|
||||||
|
var
|
||||||
|
CCI: TConsoleCursorInfo;
|
||||||
|
begin
|
||||||
|
GetConsoleCursorInfo(StdOut, CCI);
|
||||||
|
CCI.bVisible := true;
|
||||||
|
SetConsoleCursorInfo(StdOut, CCI);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function RPWhereXY: SmallWord;
|
||||||
|
var
|
||||||
|
CSBI: TConsoleScreenBufferInfo;
|
||||||
|
begin
|
||||||
|
GetConsoleScreenBufferInfo(StdOut, CSBI);
|
||||||
|
RPWhereXY := CSBI.dwCursorPosition.x + (CSBI.dwCursorPosition.y SHL 8);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
BEGIN
|
||||||
|
StdOut := GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
|
{$ENDIF}
|
||||||
|
END.
|
|
@ -317,7 +317,7 @@ BEGIN
|
||||||
Update_Logo(ANSWER,ScreenAddr[(3*2)+(19*160)-162],ANSWER_LENGTH);
|
Update_Logo(ANSWER,ScreenAddr[(3*2)+(19*160)-162],ANSWER_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
Update_logo(ANSWER, 3, 19, ANSWER_LENGTH);
|
Update_Logo(ANSWER, 3, 19, ANSWER_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
rl := 0;
|
rl := 0;
|
||||||
|
@ -429,14 +429,14 @@ BEGIN
|
||||||
Update_Logo(WFC,ScreenAddr[0],WFC_LENGTH);
|
Update_Logo(WFC,ScreenAddr[0],WFC_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
Update_logo(WFC, 1, 1, WFC_LENGTH);
|
Update_Logo(WFC, 1, 1, WFC_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
IF (General.NetworkMode) THEN
|
IF (General.NetworkMode) THEN
|
||||||
{$IFDEF MSDOS}
|
{$IFDEF MSDOS}
|
||||||
Update_Logo(WFCNET,ScreenAddr[(3*2)+(19*160)-162],WFCNET_LENGTH);
|
Update_Logo(WFCNET,ScreenAddr[(3*2)+(19*160)-162],WFCNET_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
Update_logo(WFCNET, 3, 19, WFCNET_LENGTH);
|
Update_Logo(WFCNET, 3, 19, WFCNET_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
LoadURec(ThisUser,1);
|
LoadURec(ThisUser,1);
|
||||||
|
@ -611,7 +611,7 @@ BEGIN
|
||||||
Update_Logo(WFC0,ScreenAddr[0],WFC0_LENGTH);
|
Update_Logo(WFC0,ScreenAddr[0],WFC0_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
Update_logo(WFC0, 1, 1, WFC0_LENGTH);
|
Update_Logo(WFC0, 1, 1, WFC0_LENGTH);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
END;
|
END;
|
||||||
END;
|
END;
|
||||||
|
|
Loading…
Reference in New Issue