Compiles on Linux, but is very broken

This commit is contained in:
R. Eric Wheeler 2016-03-06 18:10:47 -08:00
parent ae32f3040e
commit 13e7596fdd
52 changed files with 766 additions and 554 deletions

3
.gitignore vendored
View File

@ -11,6 +11,9 @@
*.PPU
*.VPI
*.vpi
*.bak
*.o
SOURCE/ELECOM/
SOURCE/UNUSED/
src/elecom/

View File

@ -36,7 +36,7 @@ USES
PROCEDURE ArcDeComp(VAR Ok: Boolean; AType: Byte; CONST FileName,FSpec: AStr);
VAR
ResultCode: Integer;
ResultCode: SmallInt;
BEGIN
PurgeDir(TempDir+'ARC\',FALSE);
ExecBatch(Ok,TempDir+'ARC\',General.ArcsPath+
@ -48,7 +48,7 @@ END;
PROCEDURE ArcComp(VAR Ok: Boolean; AType: Byte; CONST FileName,FSpec: AStr);
VAR
ResultCode: Integer;
ResultCode: SmallInt;
BEGIN
IF (General.FileArcInfo[AType].ArcLine = '') THEN
Ok := TRUE
@ -63,7 +63,7 @@ END;
PROCEDURE ArcComment(VAR Ok: Boolean; AType: Byte; CommentNum: Byte; CONST FileName: AStr);
VAR
TempStr: AStr;
ResultCode: Integer;
ResultCode: SmallInt;
SaveSwapShell: Boolean;
BEGIN
IF (CommentNum > 0) AND (General.FileArcComment[CommentNum] <> '') THEN
@ -80,7 +80,7 @@ END;
PROCEDURE ArcIntegrityTest(VAR Ok: Boolean; AType: Byte; CONST FileName: AStr);
VAR
ResultCode: Integer;
ResultCode: SmallInt;
BEGIN
IF (General.FileArcInfo[AType].TestLine <> '') THEN
ExecBatch(Ok,TempDir+'ARC\',General.ArcsPath+
@ -205,7 +205,7 @@ VAR
ES: ExtStr;
Cmd: Char;
AType: Byte;
ReturnCode,
ReturnCode: SmallInt;
DirFileRecNum: Integer;
DidSomething,
Ok: Boolean;
@ -446,7 +446,7 @@ VAR
Cmd: Char;
AType,
SaveNumBatchDLFiles: Byte;
ReturnCode,
ReturnCode: SmallInt;
GotPts,
SaveFileArea: Integer;
Ok,

View File

@ -52,7 +52,7 @@ VAR
NumFiles,
RecNum,
Counter: Byte;
Junk,
Junk: SmallInt;
RN,
FArea,
SaveFileArea,

View File

@ -28,7 +28,7 @@ VAR
NS: NameStr;
ES: ExtStr;
AType: Byte;
ReturnCode,
ReturnCode: SmallInt;
DirFileRecNum: Integer;
OldSiz,
NewSiz: LongInt;

View File

@ -144,7 +144,7 @@ BEGIN
Next := TRUE;
END;
PROCEDURE Details(Out: OutRec;
PROCEDURE Details(OutR: OutRec;
VAR Level,
NumFiles: Integer;
VAR TotalCompSize,
@ -155,12 +155,12 @@ VAR
DT: DateTime;
Ratio: LongInt;
BEGIN
Out.FileName := AllCaps(Out.FileName);
DT.Day := Out.Date AND $1f; {* Day = bits 4-0 *}
DT.Month := (Out.Date SHR 5) AND $0f; {* Month = bits 8-5 *}
DT.Year := ((Out.Date SHR 9) AND $7f) + 80; {* Year = bits 15-9 *}
DT.Min := (Out.Time SHR 5) AND $3f; {* Minute = bits 10-5 *}
DT.Hour := (Out.Time SHR 11) AND $1f; {* Hour = bits 15-11 *}
OutR.FileName := AllCaps(OutR.FileName);
DT.Day := OutR.Date AND $1f; {* Day = bits 4-0 *}
DT.Month := (OutR.Date SHR 5) AND $0f; {* Month = bits 8-5 *}
DT.Year := ((OutR.Date SHR 9) AND $7f) + 80; {* Year = bits 15-9 *}
DT.Min := (OutR.Time SHR 5) AND $3f; {* Minute = bits 10-5 *}
DT.Hour := (OutR.Time SHR 11) AND $1f; {* Hour = bits 15-11 *}
IF (DT.Month > 12) THEN
Dec(DT.Month,12); {* adjust for Month > 12 *}
@ -173,17 +173,17 @@ BEGIN
ConvertAmPm(DT.Hour,AmPm);
IF (Out.USize = 0) THEN
IF (OutR.USize = 0) THEN
Ratio := 0
ELSE {* Ratio is 0% for null-Length file *}
Ratio := (100 - ((Out.CSize * 100) DIV Out.USize));
Ratio := (100 - ((OutR.CSize * 100) DIV OutR.USize));
IF (Ratio > 99) THEN
Ratio := 99;
OutP := '^4'+PadRightStr(FormatNumber(Out.USize),13)+
' '+PadRightStr(FormatNumber(Out.CSize),13)+
OutP := '^4'+PadRightStr(FormatNumber(OutR.USize),13)+
' '+PadRightStr(FormatNumber(OutR.CSize),13)+
' '+PadRightInt(Ratio,2)+'%'+
' ^9'+MethodType[Out.Method]+
' ^9'+MethodType[OutR.Method]+
' ^7'+ZeroPad(IntToStr(DT.Month))+
'/'+ZeroPad(IntToStr(DT.Day))+
'/'+ZeroPad(IntToStr(DT.Year))+
@ -194,16 +194,16 @@ BEGIN
IF (Level > 0) THEN
OutP := OutP + PadRightStr('',Level); {* spaces for dirs (ARC only)*}
OutP := OutP + Out.FileName;
OutP := OutP + OutR.FileName;
PrintACR(OutP);
IF (Out.Method = 0) THEN
IF (OutR.Method = 0) THEN
Inc(Level) {* bump dir Level (ARC only) *}
ELSE
BEGIN
Inc(TotalCompSize,Out.CSize); {* adjust accumulators and counter *}
Inc(TotalUnCompSize,Out.USize);
Inc(TotalCompSize,OutR.CSize); {* adjust accumulators and counter *}
Inc(TotalUnCompSize,OutR.USize);
Inc(NumFiles);
END;
END;
@ -659,7 +659,7 @@ VAR
LZH_H_Length,
Counter,
ArcType: Byte;
RCode,
RCode: SmallInt;
FileType,
Level,
NumFiles: Integer;

View File

@ -1,3 +1,4 @@
{$MODE TP}
{$A+,B-,D-,E-,F+,I-,L-,N-,O+,R-,S+,V-}
@ -247,7 +248,7 @@ BEGIN
BBSList.Port := 23;
MPL(SizeOf(BBSList.Port) - 1);
InputLongIntWoc(Question,BBSList.Port,[NumbersOnly,InterActiveEdit],1,65535);
InputWordWoc(Question,BBSList.Port,[NumbersOnly,InterActiveEdit],1,65535);
END
ELSE IF WhichOne = 'LOCATION' THEN
BEGIN
@ -311,7 +312,7 @@ BEGIN
BEGIN
MPL(SizeOf(BBSList.SDG) - 1);
InputLongIntWoc(Question,BBSList.SDG,[NumbersOnly,InterActiveEdit],1,65535);
InputWordWoc(Question,BBSList.SDG,[NumbersOnly,InterActiveEdit],1,65535);
{Abort := (BBSList.xE = '');}
END
ELSE IF WhichOne = 'SDH' THEN

View File

@ -54,7 +54,7 @@ VAR
General.ProtPath := StartDir+'\PROT\';
General.ArcsPath := StartDir+'\ARCS\';
General.FileAttachPath := StartDir+'\FATTACH\';
General.lMultPath := StartDir+'\STRING\';
General.MultPath := StartDir+'\STRING\';
SaveGeneral(FALSE);
Assign(BootFile,StartDir+'1STBOOT');
Erase(BootFile);
@ -92,7 +92,7 @@ VAR
END;
8 : BEGIN
DirDesc := 'STRING';
DirName := General.lMultPath;
DirName := General.MultPath;
END;
END;
IF (NOT ExistDir(DirName)) THEN
@ -125,7 +125,7 @@ VAR
5 : General.LogsPath := S2;
6 : General.ArcsPath := S2;
7 : General.ProtPath := S2;
8 : General.lMultPath := S2;
8 : General.MultPath := S2;
END
ELSE
BEGIN
@ -825,7 +825,7 @@ BEGIN
Mov T_Al,Al
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
T_Al := $FF;
{$ENDIF}
SchareLoaded := (T_Al = $FF);
@ -859,7 +859,7 @@ VAR
END;
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
FUNCTION TrueDosVer(VAR WinNTOk: Boolean): Word;
BEGIN
WinNtOK := TRUE;
@ -886,7 +886,7 @@ VAR
END;
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
FUNCTION DosVer(VAR Minor,OS2Ver: Word): Word;
BEGIN
Minor := 0;
@ -911,7 +911,7 @@ VAR
END;
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
FUNCTION Win3_Check_On: Boolean;
BEGIN
Win3_Check_On := FALSE;
@ -937,7 +937,7 @@ VAR
DV_Check_On := TRUE;
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
FUNCTION DV_Check_On: Boolean;
BEGIN
DV_Check_On := FALSE;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D-,E-,F+,I-,L-,N-,O+,R-,S+,V-}
UNIT Bulletin;
@ -498,7 +498,7 @@ VAR
BEGIN
IF (MenuOption = '') THEN
Exit;
Assign(StrPointerFile,General.LMultPath+MenuOption+'.PTR');
Assign(StrPointerFile,General.MultPath+MenuOption+'.PTR');
Reset(StrPointerFile);
TotLoad := FileSize(StrPointerFile);
IF (TotLoad < 1) THEN
@ -522,7 +522,7 @@ BEGIN
NL;
END;
TotLoad := 0;
Assign(RGStrFile,General.LMultPath+MenuOption+'.DAT');
Assign(RGStrFile,General.MultPath+MenuOption+'.DAT');
Reset(RGStrFile,1);
Seek(RGStrFile,(StrPointer.Pointer - 1));
REPEAT
@ -554,16 +554,16 @@ BEGIN
PrintF('QUOTE');
InResponseTo := '';
MHeader.Status := [];
IF (InputMessage(TRUE,FALSE,'New Quote',MHeader,General.LMultPath+MenuOption+'.TMP',78,500)) then
IF Exist(General.LMultPath+MenuOption+'.TMP') THEN
IF (InputMessage(TRUE,FALSE,'New Quote',MHeader,General.MultPath+MenuOption+'.TMP',78,500)) then
IF Exist(General.MultPath+MenuOption+'.TMP') THEN
BEGIN
Assign(F,General.LMultPath+MenuOption+'.NEW');
Assign(F,General.MultPath+MenuOption+'.NEW');
Reset(F);
IF (IOResult <> 0) THEN
ReWrite(F)
ELSE
Append(F);
Assign(F1,General.LMultPath+MenuOption+'.TMP');
Assign(F1,General.MultPath+MenuOption+'.TMP');
Reset(F1);
IF (IOResult <> 0) THEN
Exit;
@ -580,7 +580,7 @@ BEGIN
WriteLn(F);
Close(F);
Close(F1);
Kill(General.LMultPath+MenuOption+'.TMP');
Kill(General.MultPath+MenuOption+'.TMP');
NL;
Print('^7Your new quote was saved.');
PauseScr(FALSE);

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D-,E-,F+,I-,L-,N+,O-,R-,S-,V-}
UNIT Common;
@ -280,8 +280,8 @@ VAR
DatFilePath: STRING[40];
Interrupt14: Pointer; { far ptr TO interrupt 14 }
{$IFDEF MSDOS}
Ticks: LongInt ABSOLUTE $0040:$006C;
{$IFDEF LINUX}
Ticks: LongInt; {ABSOLUTE $0040:$006C;}
{$ENDIF}
IEMSIRec: IEMSIRecord;
FossilPort: Word;
@ -708,7 +708,7 @@ end;
FUNCTION UpdateCRC32(CRC: LongInt; VAR Buffer; Len: Word): LongInt; EXTERNAL;
{$L CRC32.OBJ }
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
CONST
CRC_32_TAB : array[0..255] of LongInt = (
$00000000, $77073096, $ee0e612c, $990951ba, $076dc419,
@ -1186,14 +1186,14 @@ VAR
S: STRING;
TotLoad: LongInt;
BEGIN
Assign(StrPointerFile,General.LMultPath+'RGSCFGPR.DAT');
Assign(StrPointerFile,General.MultPath+'RGSCFGPR.DAT');
Reset(StrPointerFile);
Seek(StrPointerFile,StrNum);
Read(StrPointerFile,StrPointer);
Close(StrPointerFile);
LastError := IOResult;
TotLoad := 0;
Assign(RGStrFile,General.LMultPath+'RGSCFGTX.DAT');
Assign(RGStrFile,General.MultPath+'RGSCFGTX.DAT');
Reset(RGStrFile,1);
Seek(RGStrFile,(StrPointer.Pointer - 1));
REPEAT
@ -1229,14 +1229,14 @@ VAR
S: STRING;
TotLoad: LongInt;
BEGIN
Assign(StrPointerFile,General.LMultPath+'RGNOTEPR.DAT');
Assign(StrPointerFile,General.MultPath+'RGNOTEPR.DAT');
Reset(StrPointerFile);
Seek(StrPointerFile,StrNum);
Read(StrPointerFile,StrPointer);
Close(StrPointerFile);
LastError := IOResult;
TotLoad := 0;
Assign(RGStrFile,General.LMultPath+'RGNOTETX.DAT');
Assign(RGStrFile,General.MultPath+'RGNOTETX.DAT');
Reset(RGStrFile,1);
Seek(RGStrFile,(StrPointer.Pointer - 1));
REPEAT
@ -1272,14 +1272,14 @@ VAR
S: STRING;
TotLoad: LongInt;
BEGIN
Assign(StrPointerFile,General.LMultPath+'RGMAINPR.DAT');
Assign(StrPointerFile,General.MultPath+'RGMAINPR.DAT');
Reset(StrPointerFile);
Seek(StrPointerFile,StrNum);
Read(StrPointerFile,StrPointer);
Close(StrPointerFile);
LastError := IOResult;
TotLoad := 0;
Assign(RGStrFile,General.LMultPath+'RGMAINTX.DAT');
Assign(RGStrFile,General.MultPath+'RGMAINTX.DAT');
Reset(RGStrFile,1);
Seek(RGStrFile,(StrPointer.Pointer - 1));
REPEAT
@ -1315,14 +1315,14 @@ VAR
S: STRING;
TotLoad: LongInt;
BEGIN
Assign(StrPointerFile,General.LMultPath+'RGLNGPR.DAT');
Assign(StrPointerFile,General.MultPath+'RGLNGPR.DAT');
Reset(StrPointerFile);
Seek(StrPointerFile,StrNum);
Read(StrPointerFile,StrPointer);
Close(StrPointerFile);
LastError := IOResult;
TotLoad := 0;
Assign(RGStrFile,General.LMultPath+'RGLNGTX.DAT');
Assign(RGStrFile,General.MultPath+'RGLNGTX.DAT');
Reset(RGStrFile,1);
Seek(RGStrFile,(StrPointer.Pointer - 1));
REPEAT
@ -2117,7 +2117,12 @@ BEGIN
Com_DeInstall;
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
SwapVectors;
@ -2401,7 +2406,7 @@ BEGIN
Dec(Year);
AgeUser := Year;
END;
{$IFNDEF LINUX}
FUNCTION AllCaps(InString: STRING): STRING;
VAR
Counter: Byte;
@ -2411,7 +2416,12 @@ BEGIN
InString[Counter] := Chr(Ord(InString[Counter]) - Ord('a')+Ord('A'));
AllCaps := InString;
END;
{$ELSE}
Function AllCaps(InString: String): String;
Begin
AllCaps := InString;
End;
{$ENDIF}
FUNCTION Caps(Instring: STRING): STRING;
VAR
Counter: Integer; { must be Integer }
@ -3112,7 +3122,7 @@ ASM
POP ds
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
FUNCTION AOnOff(b: Boolean; CONST s1,s2:AStr): STRING;
BEGIN
if (b) then
@ -3560,7 +3570,7 @@ BEGIN
LIL := 0;
TempPause := SaveTempPause;
END;
{$IFNDEF LINUX}
FUNCTION BSlash(InString: AStr; b: Boolean): AStr;
BEGIN
IF (b) THEN
@ -3575,6 +3585,22 @@ BEGIN
Dec(InString[0]);
BSlash := Instring;
END;
{$ELSE}
Function BSlash(InString: Astr; b: Boolean): Astr;
Begin
IF (b) THEN
BEGIN
WHILE (Copy(InString,(Length(InString) - 1),2) = '//') DO
InString := Copy(Instring,1,(Length(InString) - 2));
IF (Copy(InString,Length(InString),1) <> '/') THEN
InString := InString + '/';
END
ELSE
WHILE (InString[Length(InString)] = '/') DO
Dec(InString[0]);
BSlash := Instring;
End;
{$ENDIF}
FUNCTION Exist(FileName: AStr): Boolean;
VAR
@ -3593,6 +3619,7 @@ BEGIN
ExistDir := (DOSError = 0) AND (DirInfo1.Attr AND $10 = $10);
END;
PROCEDURE PrintFile(FileName: AStr);
VAR
s: AStr;
@ -4187,7 +4214,7 @@ BEGIN
REPEAT
TempDirPath := DirPath;
Changed := FALSE;
InputWN1(DisplayStr,TempDirPath,39,[UpperOnly,InterActiveEdit],Changed);
InputWN1(DisplayStr,TempDirPath,39,[InterActiveEdit],Changed);
TempDirPath := SQOutSp(TempDirPath);
IF (Length(TempDirPath) = 1) THEN
@ -4205,6 +4232,7 @@ BEGIN
NL;
Print('^7A valid path must be specified!^1');
END
{$IFNDEF LINUX}
ELSE IF (NOT (TempDirPath[1] IN ['A'..'Z'])) OR (Length(TempDirPath) < 3) OR
(NOT (TempDirPath[2] = ':')) OR (NOT (TempDirPath[3] = '\')) THEN
BEGIN
@ -4212,8 +4240,9 @@ BEGIN
Print('^7Invalid drive specification: "'+Copy(TempDirPath,1,3)+'"^1');
TempDirPath := '';
END
{$ENDIF}
ELSE
BEGIN
BEGIN {$IFNDEF LINUX}
GetDir(0,CurDir);
ChDir(TempDirPath[1]+':');
IF (IOResult <> 0) THEN
@ -4223,6 +4252,7 @@ BEGIN
TempDirPath := '';
END
ELSE
{$ENDIF}
BEGIN
ChDir(CurDir);
IF (CreateDir) THEN
@ -4718,11 +4748,21 @@ BEGIN
'T' : Add := CurrentConf;
'+' : BEGIN
Add := '';
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
END;
'-' : BEGIN
Add := '';
CursorOn(FALSE);
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
END;
END;
'D' : CASE UpCase(S[Index + 2]) OF
@ -4872,7 +4912,7 @@ BEGIN
'P' : CASE UpCase(S[Index + 2]) OF
'1' : Add := General.MsgPath;
'2' : Add := General.NodePath;
'3' : Add := General.LMultPath;
'3' : Add := General.MultPath;
'4' : Add := General.SysOpPW;
'5' : Add := General.NewUserPW;
'6' : Add := General.MinBaudOverride;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S-,V-}
UNIT Common1;

View File

@ -160,8 +160,9 @@ CONST
'H','o','u','r','s',':',#25,#6 ,'M','a','i','l',' ',':',#25,#6 ,'O',
'v','e','r','l','a','y','s',':',#25,#7 ,#24);
{$IFDEF MSDOS}
{$IFDEF LINUX}
PROCEDURE BiosScroll(up: Boolean); ASSEMBLER;
{$ASMMODE intel}
ASM
Mov cx,0
Mov dh,MaxDisplayRows
@ -292,17 +293,14 @@ BEGIN
SecondRow := (FirstRow + 1);
TextAttr := 120;
LastScreenSwap := 0;
CursorOn(FALSE);
{ CursorOn(FALSE);}
Clear_Status_Box;
IF (WhichScreen < 99) THEN
General.CurWindow := WhichScreen;
CASE WhichScreen OF
1 : WITH ThisUser DO
BEGIN
{$IFDEF MSDOS}
Update_Logo(Win1,ScreenAddr[(FirstRow - 1) * 160],WIN1_LENGTH);
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
Update_Logo(Win1, 1, FirstRow, WIN1_LENGTH);
{$ENDIF}
GoToXY(02,FirstRow);
@ -528,7 +526,7 @@ BEGIN
Window(1,3,MaxDisplayCols,MaxDisplayRows)
ELSE
Window(1,1,MaxDisplayCols,MaxDisplayRows - 2);
CursorOn(TRUE);
CursorOn;
IF (NOT SaveWindowOn) THEN
ToggleWindow(FALSE);
GoToXY(SaveWhereX,SaveWhereY);
@ -549,7 +547,7 @@ VAR
SaveWhereX,
SaveWhereY,
SaveTextAttr: Byte;
RetCode,
RetCode: SmallInt;
i: Integer;
SaveTimer: LongInt;
SaveInChat: Boolean;
@ -605,11 +603,19 @@ BEGIN
{$IFDEF WIN32}
Update_Logo(SYSKEY, 1, 1, SYSKEY_LENGTH);
{$ENDIF}
CursorOn(FALSE);
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(FALSE);
{$ENDIF}
C := ReadKey;
IF (C = #0) THEN
C := ReadKey;
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
RemoveWindow(Wind);
GoToXY(SaveWhereX,SaveWhereY);
Update_Screen;
@ -850,12 +856,21 @@ BEGIN
Window(1,1,MaxDisplayCols,MaxDisplayRows);
ClrScr;
WantOut := FALSE;
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(FALSE);
{$ENDIF}
END
ELSE
BEGIN
WantOut := TRUE;
CursorOn(TRUE);
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(FALSE);
{$ENDIF}
WriteLn('Local display on.');
Update_Screen;
END;
@ -1103,7 +1118,13 @@ VAR
END;
Write(' ');
TextBackGround(0);
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(i IN [1..4]);
{$ENDIF}
IF (b) THEN
BEGIN
GoToXY(26,12);
@ -1127,7 +1148,11 @@ VAR
VAR
Counter: Byte;
BEGIN
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(FALSE);
{$ENDIF}
TextColor(9);
Box(1,18,6,68,13);
Window(19,7,67,12);
@ -1304,7 +1329,11 @@ BEGIN
UNTIL (Done);
GoToXY(SaveWhereX,SaveWhereY);
TextAttr := SaveTextAttr;
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
NewCompTables;
SaveURec(ThisUser,UserNum);
END;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S-,V-,X-}
UNIT Common3;
@ -345,6 +345,7 @@ VAR
END;
{$IFDEF MSDOS}
PROCEDURE SetCursor(InsertMode: Boolean); ASSEMBLER;
ASM
cmp InsertMode,0
@ -360,15 +361,23 @@ VAR
int 10h
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
PROCEDURE SetCursor(InsertMode: Boolean);
BEGIN
if (InsertMode) then
begin
{$IFDEF FPC}
cursoron;
{$ELSE}
RPInsertCursor;
{$ENDIF}
end else
begin
{$IFDEF FPC}
cursorbig;
{$ELSE}
RPBlockCursor;
{$ENDIF}
end;
END;
{$ENDIF}

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S-,V-}
(*
@ -353,7 +353,7 @@ IMPLEMENTATION
USES
Crt,
Common
{$IFDEF WIN32}
{$IFDEF WINDOWS}
,EleNorm
{$ENDIF}
;
@ -377,7 +377,8 @@ PROCEDURE Com_Flush_Recv;
BEGIN
IF (NOT LocalIOOnly) THEN
BEGIN
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Cmp InWfcMenu,1
Je @TheEnd
@ -418,8 +419,9 @@ the output buffer (not transmitted yet) is discarded.
PROCEDURE Com_Purge_Send;
BEGIN
{$IFDEF MSDOS}
ASM
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Cmp LocalIOOnly,1
Je @TheEnd
Mov AH,09h
@ -464,7 +466,8 @@ VAR
Dummy: Byte;
BEGIN
Dummy := 0; (* New *)
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Cmp LocalIOOnly,1
Je @TheEnd
@ -518,7 +521,8 @@ VAR
BEGIN
Com_Recv := #0;
T_RecvChar := FALSE;
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Cmp LocalIOOnly,1
Je @TheEnd
@ -591,7 +595,8 @@ VAR
Dummy: Byte;
BEGIN
Dummy := 0; (* New *)
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Cmp LocalIOOnly,1
Je @TheEnd
@ -643,7 +648,8 @@ VAR
{$ENDIF}
BEGIN
Dummy := 0; (* New *)
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Cmp LocalIOOnly,1
Je @TheEnd
@ -680,7 +686,8 @@ value of 0000h is returned in AX. If the driver accepts the character
PROCEDURE Com_Send(C: Char);
BEGIN
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Cmp LocalIOOnly,1
Je @TheEnd
@ -773,7 +780,8 @@ BEGIN
T_AL := 32;
END;
Inc(T_AL,3);
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Mov AH,00h
Mov AL,T_AL
@ -801,7 +809,8 @@ PROCEDURE Com_DeInstall;
BEGIN
IF (NOT LocalIOOnly) THEN
BEGIN
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Mov AH,05h
Mov DX,FossilPort
@ -822,7 +831,8 @@ END;
PROCEDURE Com_Install;
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
FUNCTION DriverInstalled: Word; ASSEMBLER;
ASM
Mov AH,5
@ -845,7 +855,8 @@ BEGIN
FossilPort := (Liner.Comport - 1);
IF (LocalIOOnly) THEN
Exit;
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
IF (DriverInstalled <> $1954) THEN
BEGIN
ClrScr;
@ -881,7 +892,8 @@ BEGIN
Com_Set_Speed(Liner.InitBaud);
END;
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
PROCEDURE CheckHangup; ASSEMBLER;
ASM
Cmp LocalIOOnly,1
@ -935,7 +947,8 @@ VAR
BEGIN
IF (OutCom) THEN
BEGIN
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
REPEAT
T_DI := OFS(S[1]);
T_CX := Length(S);
@ -991,7 +1004,8 @@ BEGIN
Empty := NOT KeyPressed;
IF (InCom) AND (NOT KeyPressed) THEN
BEGIN
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Mov DX,FossilPort
Mov AH,03h
@ -1027,7 +1041,8 @@ BEGIN
IF (NOT LocalIOOnly) THEN
BEGIN
T_AL := Byte(Status);
{$IFDEF MSDOS}
{$IFDEF LINUX}
{$ASMMODE intel}
ASM
Mov AH,06h
Mov DX,FossilPort

View File

@ -26,7 +26,7 @@ VAR
PROCEDURE CStuff(Which,How: Byte; VAR User: UserRecordType);
VAR
Try: Byte;
Trys: Byte;
Done,
Done1: Boolean;
@ -336,10 +336,10 @@ VAR
BEGIN
NL;
Print(^G'^7Sorry, can''t use that name.^1');
Inc(Try);
Inc(Trys);
sl1('Unacceptable Name : '+s);
END;
IF (Try >= 3) AND (How = 1) THEN
IF (Trys >= 3) AND (How = 1) THEN
HangUp := TRUE;
IF ((Done) AND (How = 1) AND (NOT General.AllowAlias)) THEN
@ -1011,7 +1011,7 @@ VAR
END;
BEGIN
Try := 0;
Trys := 0;
Done1 := FALSE;
CASE How OF
1 : REPEAT

View File

@ -689,7 +689,7 @@ END;
PROCEDURE DoDoorFunc(DropFileType: Char; MenuOption: Str50);
VAR
Answer: AStr;
ReturnCode: Integer;
ReturnCode: SmallInt;
DoorTime: LongInt;
UseRealName: Boolean;
BEGIN

View File

@ -16,12 +16,12 @@ PROCEDURE ExecWindow(VAR Ok: Boolean;
CONST Dir,
BatLine: AStr;
OkLevel: Integer;
VAR RCode: Integer);
VAR RCode: SmallInt);
PROCEDURE ExecBatch(VAR Ok: Boolean;
Dir,
BatLine: AStr;
OkLevel: Integer;
VAR RCode: Integer;
VAR RCode: SmallInt;
Windowed: Boolean);
PROCEDURE Shel(CONST s: AStr);
PROCEDURE Shel2(x: Boolean);
@ -54,7 +54,7 @@ PROCEDURE ExecWindow(VAR Ok: Boolean;
CONST Dir,
BatLine: AStr;
OkLevel: Integer;
VAR RCode: Integer);
VAR RCode: SmallInt);
VAR
SaveWindowOn: Boolean;
SaveCurWindow: Byte;
@ -156,7 +156,7 @@ PROCEDURE ExecBatch(VAR Ok: Boolean; { result }
Dir: AStr; { directory takes place in }
BatLine: AStr; { .BAT file line to execute }
OkLevel: Integer; { DOS errorlevel for success }
VAR RCode: Integer; { errorlevel returned }
VAR RCode: SmallInt; { errorlevel returned }
Windowed: Boolean); { Windowed? }
VAR
BatchFile: Text;

View File

@ -229,7 +229,7 @@ BEGIN
BEGIN
NL;
IF (NOT CopyMoveFile(NOT (IsFileAttach IN TransferFlags),
+AOnOff(IsFileAttach IN TransferFlags,'^1Moving ... ','^1Copying ... '),
AOnOff(IsFileAttach IN TransferFlags,'^1Moving ... ','^1Copying ... '),
DownloadPath+SQOutSp(FileInfo.FileName),
CopyPath+SQOutSp(FileInfo.FileName),TRUE)) THEN
Include(TransferFlags,IsPaused);
@ -1470,7 +1470,7 @@ BEGIN
END;
TempStr := TempStr + AOnOff(ShowScan AND NewScanFileArea,'0'+ScanChar[1],' ')+
PadLeftStr(PadRightStr('1'+IntToStr(CompFileArea(FArea,0)),5)+
PadLeftStr(PadRightStr('1'+IntToStr(CompFileArea(FArea,0)),5)
+'2 '+MemFileArea.AreaName,37)+' ';
Inc(NumOnline);
IF (NumOnLine = 2) THEN

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT File11;
@ -648,7 +648,7 @@ END;
PROCEDURE SearchFileAreaSpec(FArea: Integer; FName: Str12; VAR FArrayRecNum: Byte);
VAR
DirFileRecNum: Integer;
DirFileRecNum: LongInt;
Found: Boolean;
BEGIN
IF (FileArea <> FArea) THEN
@ -776,7 +776,7 @@ PROCEDURE SearchFileAreaDescription(FArea: Integer; SearchString: Str20; VAR FAr
VAR
LineNum,
NumExtDesc: Byte;
DirFileRecNum: Integer;
DirFileRecNum: LongInt;
SearchStringFound,
Found: Boolean;
BEGIN
@ -902,7 +902,7 @@ END;
PROCEDURE NewFileScan(FArea: Integer; Global: Boolean; VAR FArrayRecNum: Byte);
VAR
DirFileRecNum: Integer;
DirFileRecNum: LongInt;
Found: Boolean;
BEGIN
IF (FileArea <> FArea) THEN
@ -1014,9 +1014,9 @@ PROCEDURE FileAreaChange(VAR Done: Boolean; CONST MenuOption: Str50);
VAR
InputStr: Str5;
Cmd: Char;
SaveFArea: Integer;
FArea,
SaveFArea,
NumFAreas: Integer;
NumFAreas: LongInt;
SaveTempPause: Boolean;
BEGIN
IF (MenuOption <> '') THEN

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT File12;
@ -370,9 +370,9 @@ VAR
ProtocolNumber,
SaveFArea,
SaveFileArea,
TempBULVTextSize: Integer;
NumFAreas,
FArea,
TempBULVTextSize: Integer;
TempVPointer,
RecNum,
RecNum1,
@ -387,7 +387,7 @@ VAR
PROCEDURE UpFile;
VAR
GotPts: Integer;
GotPts: LongInt;
ConversionTime: LongInt;
ArcOk,
Convt: Boolean;

View File

@ -15,7 +15,7 @@ PROCEDURE ExecProtocol(TextFN,
Dir,
BatLine: AStr;
OKLevel: Integer;
VAR ReturnCode: Integer;
VAR ReturnCode: SmallInt;
VAR TransferTime: LongInt);
FUNCTION FindReturnCode(ProtCode: ProtocolCodeType; XBStat: PRFlagSet; ReturnCode: AStr): Boolean;
FUNCTION DoProtocol(VAR Protocol: ProtocolRecordType; UL,DL,Batch,Resume: Boolean): Integer;
@ -48,7 +48,7 @@ PROCEDURE ExecProtocol(TextFN,
Dir,
BatLine: AStr;
OKLevel: Integer;
VAR ReturnCode: Integer;
VAR ReturnCode: SmallInt;
VAR TransferTime: LongInt);
VAR
SaveSwapShell,

View File

@ -106,7 +106,7 @@ VAR
TSiz: LongInt;
i,
j: Byte;
RetLevel: Integer;
RetLevel: SmallInt;
b,
Ok: Boolean;
BEGIN

View File

@ -99,12 +99,12 @@ VAR
NumExtDesc,
Counter,
Counter1: BYTE;
ReturnCode,
SaveFileArea,
DirFileRecNum,
ProtocolNumber,
SaveLastDirFileRecNum,
ToXfer: Integer;
ReturnCode: SmallInt;
RecNum,
RecNum1,
TransferTime: LongInt;

View File

@ -333,7 +333,7 @@ TYPE
END;
VAR
Totals: TotalsRecordType;
ReturnCode,
ReturnCode: SmallInt;
ProtocolNumber: Integer;
TransferTime: LongInt;
BEGIN
@ -549,7 +549,7 @@ PROCEDURE Receive(FileName: Str12;
AddULBatch: Boolean;
VAR TransferTime: LongInt);
VAR
ReturnCode,
ReturnCode: SmallInt;
ProtocolNumber: Integer;
BEGIN
UploadOk := TRUE;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT File9;
@ -222,10 +222,10 @@ VAR
InputStr: Str11;
FirstFArea,
LastFArea,
FArea,
NumFAreas,
SaveFArea,
SaveFileArea: Integer;
FArea,
NumFAreas: LongInt;
SaveConfSystem,
SaveTempPause: Boolean;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT LineChat;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT Logon;
@ -602,6 +602,7 @@ VAR
RecNum1,
I: Integer;
Done,Loggedon,Ok,CmdNotHid,CmdExists: Boolean;
UserNum :LongInt;
BEGIN
PrintF('PRESHUTL');
GotName := FALSE;
@ -756,6 +757,7 @@ VAR
Ok,
TooMuch,
ACSUser: Boolean;
UserNum: LongInt;
BEGIN
WasNewUser := FALSE;
UserNum := -1;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT Mail0;
@ -855,11 +855,11 @@ VAR
FSize: LongInt;
BEGIN
TagLine := '';
IF (NOT Exist(General.lMultPath+'TAGLINE.PTR')) OR (NOT Exist(General.LMultPath+'TAGLINE.DAT')) THEN
IF (NOT Exist(General.MultPath+'TAGLINE.PTR')) OR (NOT Exist(General.MultPath+'TAGLINE.DAT')) THEN
SL1('* TAGLINE.PTR or TAGLINE.DAT file(s) do not exist!')
ELSE
BEGIN
Assign(StrPointerFile,General.LMultPath+'TAGLINE.PTR');
Assign(StrPointerFile,General.MultPath+'TAGLINE.PTR');
Reset(StrPointerFile);
FSize := FileSize(StrPointerFile);
IF (FSize < 1) THEN
@ -877,7 +877,7 @@ BEGIN
Read(StrPointerFile,StrPointer);
Close(StrPointerFile);
LastError := IOResult;
Assign(RGStrFile,General.LMultPath+'TAGLINE.DAT');
Assign(RGStrFile,General.MultPath+'TAGLINE.DAT');
Reset(RGStrFile,1);
Seek(RGStrFile,(StrPointer.Pointer - 1));
TempTextSize := 0;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT Mail1;
@ -34,6 +34,7 @@ VAR
InportFile: Text;
InportFileOpen: Boolean;
Escp: Boolean;
MaxAvail: Integer;
PROCEDURE Anonymous(Offline: Boolean; VAR MHeader: MHeaderRec);
VAR

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT Mail2;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT Mail3;
@ -126,8 +126,8 @@ VAR
MHeader: MHeaderRec;
MsgTempStr: STRING;
SaveReadMsgArea,
Unum: Integer;
TempTextSize: Word;
Unum,
TempPtr,
TempPtr1: LongInt;
ForwardOk,
@ -312,11 +312,11 @@ VAR
MHeader: MHeaderRec;
MsgTxtStr: STRING;
InputStr: Str5;
MArea,
NumMAreas,
SaveMArea,
NewMsgArea,
SaveReadMsgArea: Integer;
MArea,
NumMAreas: LongInt;
TempTextSize: Word;
SaveConfSystem: Boolean;
BEGIN

View File

@ -82,7 +82,7 @@ BEGIN
END;
TempStr := TempStr + AOnOff(ShowScan AND LastReadRecord.NewScan,':'+ScanChar[1],' ')+
PadLeftStr(PadRightStr(';'+IntToStr(CompMsgArea(MArea,0)),5)+
PadLeftStr(PadRightStr(';'+IntToStr(CompMsgArea(MArea,0)),5)
+'< '+MemMsgArea.Name,37)+' ';
Inc(NumOnline);
IF (NumOnline = 2) THEN

View File

@ -83,7 +83,8 @@ USES
TimeBank,
TimeFunc,
Vote,
OneLiner;
OneLiner,
Crt;
(*
@ -392,8 +393,11 @@ BEGIN
UserColor(6);
UNTIL ((GotCmd) OR (HangUp));
{$IFDEF FPC}
CursorOn;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
UserColor(1);

View File

@ -136,7 +136,7 @@ BEGIN
Update_Screen;
END;
PROCEDURE FindUser(VAR UserNum: Integer);
PROCEDURE FindUser(VAR UserNum: LongInt);
VAR
User: UserRecordType;
TempUserName: Str36;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D-,E-,F+,I-,L-,N-,O+,R-,S+,V-}
UNIT Multnode;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R+,S-,V-}
UNIT MyIO;
@ -13,6 +13,17 @@ TYPE
WindowRec = ARRAY[0..8000] OF Byte;
ScreenType = ARRAY [0..3999] OF Byte;
Infield_Special_Function_Proc_Rec = PROCEDURE(c: Char);
{$IFDEF LINUX}
PChar = ^Char;
SmallWord = System.Word;
TscrCell = packed record
Chr: Char;
Att: Byte;
end;
TScrBuffer = array[0..$8000] of TScrCell;
PScrBuffer = ^TScrBuffer;
{$ENDIF}
CONST
Infield_Seperators: SET OF Char = [' ','\','.'];
@ -25,13 +36,19 @@ CONST
Infield_Arrow_Exit_TypeDefs: BOOLEAN = FALSE;
Infield_Normal_Exit_Keydefs: BOOLEAN = FALSE;
Infield_Normal_Exited: BOOLEAN = FALSE;
{$IFDEF LINUX}
MonitorType: Byte = 3; // REENOTE 3=CO80, a safe assumption I think
{ScreenAddr: ScreenType ABSOLUTE $B800:$0000;}
ScreenAddr: Byte = 3;
{ Video modes }
MON1 = $FE; { Monochrome, ASCII chars only }
MON2 = $FD; { Monochrome, graphics chars }
COL1 = $FC; { Color, ASCII chars only }
COL2 = $FB; { Color, graphics chars }
{$ENDIF}
VAR
Wind: WindowRec;
{$IFDEF MSDOS}
MonitorType: Byte ABSOLUTE $0000:$0449;
ScreenAddr: ScreenType ABSOLUTE $B800:$0000;
{$ENDIF}
{$IFDEF WIN32}
MonitorType: Byte = 3; // REENOTE 3=CO80, a safe assumption I think
{$ENDIF}
@ -49,14 +66,17 @@ VAR
Infield_Special_Function_Keys,
Infield_Arrow_Exit_Types,
Infield_Normal_Exit_Keys: STRING;
{$IFDEF MSDOS}
PROCEDURE Update_Logo(VAR Addr1,Addr2; BlkLen: Integer);
{$IFDEF LINUX}
ScreenBuffer: PScrBuffer;
ScrGraphs: array[#00..#31] of Char;
ScrMode: Integer;
{$ENDIF}
{$IFDEF WIN32}
procedure Update_Logo(Data: Array of Char; OriginX, OriginY, DataLength: integer);
{$IFNDEF MSDOS}
PROCEDURE Update_Logo(Data: Array of Char; OriginX, OriginY, DataLength: integer);
{$ENDIF}
{$IFNDEF FPC}
PROCEDURE CursorOn(b: BOOLEAN);
{$ENDIF}
PROCEDURE infield1(x,y: Byte; VAR s: AStr; Len: Byte);
PROCEDURE Infielde(VAR s: AStr; Len: Byte);
PROCEDURE Infield(VAR s: AStr; Len: Byte);
@ -70,22 +90,78 @@ PROCEDURE Box(LineType,TLX,TLY,BRX,BRY: Integer);
PROCEDURE SaveScreen(VAR Wind: WindowRec);
PROCEDURE RemoveWindow(VAR Wind: WindowRec);
PROCEDURE SetWindow(VAR Wind: WindowRec; TLX,TLY,BRX,BRY,TColr,BColr,BoxType: Integer);
{$IFDEF LINUX}
procedure SysWrtCharStrAtt(CharStr: Pointer; Len, X, Y: SmallWord; var Attr: Byte);
procedure SysTVShowBuf(Pos,Size: Integer);
procedure TrmWriteString( Const InString : String );
function ColorSequence(Attr,LastAttr:word):string;
{$ENDIF}
IMPLEMENTATION
USES
Crt
Crt,
RPPort
{$IFDEF WIN32}
,RPScreen
,VpSysLow
{$ENDIF}
{$IFDEF LINUX}
,Unix
,SysUtils
{$ENDIF}
;
{$IFDEF WIN32}
VAR
SavedScreen: TScreenBuf;
{$ENDIF}
{$IFDEF LINUX}
Procedure TrmWriteString( Const InString : String );
Begin
WriteLn(Trim(InString));
End;
function ColorSequence(Attr,LastAttr:word):string;
const
// Color table
ScrPalette: array[0..7] of Char = '04261537';
Var
Result: String;
begin
if Attr=LastAttr then
Result:=''
else
begin
Result:=#27'[';
if ((Attr xor LastAttr) and $80)<>0 then
if Attr and $80=$80 then
// + blink
Result:=Result+'5;'
else
// - blink
Result:=Result+'25;';
if ((Attr xor LastAttr) and $08)<>0 then
if (Attr and $08)=$08 then
// + bold
Result:=Result+'1;'
else
// - bold
Result:=Result+'22;';
// + foreground
if ((Attr xor LastAttr) and $07)<>0 then
Result:=Result+'3'+ScrPalette[Attr and $07]+';';
// + background
if ((Attr xor LastAttr) and $70)<>0 then
Result:=Result+'4'+ScrPalette[(Attr and $70) shr 4]+';';
Result[Length(Result)]:='m';
end;
end;
{$ENDIF}
{$IFDEF MSDOS}
PROCEDURE CursorOn(b: BOOLEAN); ASSEMBLER;
ASM
@ -650,7 +726,215 @@ BEGIN
$1F);
END;
{$ENDIF}
{$IFDEF WIN32}
{$IFDEF LINUX}
procedure SysWrtCharStrAtt(CharStr: Pointer; Len, X, Y: SmallWord; var Attr: Byte);
var
Src: PChar;
Dst, I: LongInt;
begin
Src := CharStr;
Dst := Y * ScreenWidth + X;
for I := 0 to Len - 1 do
begin
ScreenBuffer^[Dst + I].Chr := Src[I];
ScreenBuffer^[Dst + I].Att := Attr;
end;
SysTVShowBuf(Dst * 2, Len * 2);
end;
procedure SysTVShowBuf(Pos,Size: Integer);
var
Attr, LastAttr: Byte;
Mode: Boolean;
Reset_Wrap,
Ctrl, Data: string;
J, X, Y, X_STOP, Y_STOP, XLimit: Integer;
NextLimit: Integer;
NeedGotoXY: Boolean;
ScrCursor: Boolean;
begin
if Odd(Pos) then
begin
Dec(Pos);
Inc(Size);
end;
if Odd(Size) then
Inc(Size);
Pos:=Pos shr 1;
Size:=Size shr 1;
if Size<=0 then Exit;
if Pos+Size>ScreenWidth*ScreenHeight then
Size:=ScreenWidth*ScreenHeight-Pos;
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(true);
{$ENDIF}
ScrCursor := true;
if ScrCursor then
TrmWriteString(#27'[?25l'#27'7') (* hide cursor, save state *)
else
TrmWriteString( #27'7'); (* save state *)
Y := Pos div ScreenWidth;
X := Pos mod ScreenWidth;
Y_STOP := (Pos+Size) div ScreenWidth;
X_STOP := (Pos+Size) mod ScreenWidth;
Mode := False;
Data := '';
Reset_Wrap := '';
J := Pos;
NeedGotoXY := True;
repeat
if (X=X_STOP) and (Y=Y_STOP) then Break;
if NeedGotoXY then
begin
if Data<>'' then
begin
TrmWriteString(Data);
Data:='';
end;
NeedGotoXY := False;
// move Corsor to upper left start position
Ctrl := #27'[' + IntToStr(Y + 1) + ';' + IntToStr(X + 1) + 'H';
TrmWriteString(Ctrl);
LastAttr := ScreenBuffer^[J].Att xor $ff;
end;
if Y=Y_STOP then
XLimit := X_STOP
else
XLimit := ScreenWidth;
while X < XLimit do
begin
with ScreenBuffer^[J] do
begin
(*** Attribute *****************************************)
Attr := Att;
if Attr<>LastAttr then
begin
TrmWriteString(Data);
Data:='';
TrmWriteString(ColorSequence(Attr, LastAttr));
LastAttr:=Attr;
end; (* Attr<>LastAttr *)
if J = NextLimit - 1 then
if J =ScreenWidth*ScreenHeight-1 then
begin
Data := Data + #27'[7l'; (* autowrap off *)
Reset_Wrap := #27'[7h'; (* autowrap on *)
end;
(*** Character *****************************************)
case Chr of
#1..#6:
begin
if Mode then
begin
Data := Data + #27'(B'; (* select ISO-8859-1 *)
Mode := False;
end;
Data := Data + ScrGraphs[Chr];
end;
#7..#31:
begin
if not (Mode or (ScrMode in [MON1,COL1])) then
begin
Data := Data + #27'(0'; (* select vt100 graphics *)
Mode := True;
end;
Data := Data + ScrGraphs[Chr];
end;
#0, #$7f..#$9f:
Data := Data + ' ';
else
if Mode then
begin
Data := Data + #27'(B'; (* select ISO-8859-1 *)
Mode := False;
end;
Data := Data + Chr;
end; (* case Chr *)
if Length(Data) > 127 then
begin
TrmWriteString(Data);
Data := '';
end;
end; (* with ScrBuffer^[J] *)
Inc(J);
Inc(X);
end; (* while J < NextLimit *)
(* next line reached ? *)
if X=ScreenWidth then
begin
X:=0;
Inc(Y);
end;
(* optimize blank line ends *)
if (Length(Data)>3) and (X=0) then
if (Data[Length(Data)]=' ') and (Data[Length(Data)-1]=' ') and (Data[Length(Data)-2]=' ') then
begin
while (Data<>'') and (Data[Length(Data)]=' ') do
Dec(Data[0]);
Data := Data + #27'[K'; (* erase up to end of line *)
NeedGotoXY:=True;
end;
until false; (* main lines loop *)
if Mode then
Data := Data + #27'(B'; (* select ISO-8859-1 *)
TrmWriteString(Data);
if ScrCursor then
TrmWriteString(#27'[?25h'#27'8') (* show cursor, restore state *)
else
TrmWriteString( #27'8'); (* restore state *)
if Reset_Wrap<>'' then
TrmWriteString(Reset_Wrap);
end;
{$ENDIF}
{$IFNDEF MSDOS}
procedure Update_Logo(Data: Array of Char; OriginX, OriginY, DataLength: integer);
var
i, x, y, count, counter: Integer;
@ -704,5 +988,4 @@ begin
end;
end;
{$ENDIF}
END.

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT NewUsers;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D-,E-,F+,I-,L-,N-,O+,R-,S+,V-}
UNIT Nodelist;
@ -190,7 +190,7 @@ VAR
Key: NodeType ABSOLUTE ALine;
Desired: NodeType ABSOLUTE Desire;
Count: Byte;
K: Integer;
K: Word;
BEGIN
Count := 0;
REPEAT

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S-,V-}
UNIT OffLine;

View File

@ -1,3 +1,4 @@
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
Unit OneLiner;

View File

@ -172,7 +172,7 @@ TYPE
SecurityRangeType = ARRAY [0..255] OF LongInt; { Access tables }
UserIDXRec = { USERS.IDX : Sorted names listing }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
PACKED RECORD
Name: STRING[36]; { the user's name }
Number, { user number }
Left, { Left node }
@ -182,7 +182,7 @@ TYPE
END;
UserRecordType = { USERS.DAT : User records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
PACKED RECORD
Name, { system name }
RealName: STRING[36]; { real name }
@ -292,7 +292,7 @@ TYPE
Junked);
FromToInfo = { from/to information for mheaderrec }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Anon: Byte;
UserNum: SmallWord; { user number }
A1S: STRING[36]; { posted as }
@ -305,7 +305,7 @@ TYPE
END;
MHeaderRec =
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
From,
MTO: FromToInfo; { message from/to info }
Pointer: LongInt; { starting record OF text }
@ -323,7 +323,7 @@ TYPE
END;
HistoryRecordType = { HISTORY.DAT : Summary logs }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Date: UniXTime;
Active,
Callers,
@ -340,7 +340,7 @@ TYPE
END;
FileArcInfoRecordType = { Archive configuration records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Active: Boolean; { active or not }
Ext: STRING[3]; { file extension }
ListLine, { /x for internal; x: 1=ZIP, 2=ARC/PAK, 3=ZOO, 4=LZH }
@ -359,7 +359,7 @@ TYPE
MFlagSet = SET OF ModemFlagType;
LineRec =
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
InitBaud: LongInt; { initialization baud }
ComPort: Byte; { COM port number }
MFlags: MFlagSet; { status flags }
@ -394,7 +394,7 @@ TYPE
END;
ValidationRecordType =
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Key, { Key '!' to '~' }
ExpireTo: Char; { validation level to expire to }
Description: STRING[30]; { description }
@ -412,7 +412,7 @@ TYPE
END;
GeneralRecordType =
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
ForgotPWQuestion: STRING[70];
QWKWelcome, { QWK welcome file name }
@ -428,7 +428,7 @@ TYPE
TempPath, { TEMP path }
ProtPath, { PROT path }
ArcsPath, { ARCS path }
lMultPath, { MULT path }
MultPath, { MULT path }
FileAttachPath, { directory for file attaches }
QWKLocalPath, { QWK path for local usage }
DefEchoPath, { default echomail path }
@ -621,7 +621,7 @@ TYPE
ARRAY [1..3] OF STRING[40]; { BBS comment files for archives }
Aka: ARRAY [0..20] OF
{$IFDEF WIN32} PACKED {$ENDIF} RECORD { 20 Addresses }
Packed Record { 20 Addresses }
Zone, { 21st is for UUCP address }
Net,
Node,
@ -644,13 +644,13 @@ TYPE
END;
ShortMessageRecordType = { SHORTMSG.DAT : One-line messages }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Msg: AStr;
Destin: SmallInt;
END;
VotingRecordType = { VOTING.DAT : Voting records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Question1, { Voting Question 1 }
Question2: STRING[60]; { Voting Question 2 }
ACS: ACString; { ACS required to vote on this }
@ -659,7 +659,7 @@ TYPE
CreatedBy: STRING[36]; { who created it }
AddAnswersACS: ACString; { ACS required to add choices }
Answers: ARRAY [1..25] OF
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Answer1, { answer description }
Answer2: STRING[65]; { answer description #2 }
NumVotedAnswer: SmallInt; { # user's who picked this answer }
@ -683,7 +683,7 @@ TYPE
MAFlagSet = SET OF MessageAreaFlagType;
MessageAreaRecordType = { MBASES.DAT : Message area records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Name: STRING[40]; { message area description }
FileName: STRING[8]; { HDR/DAT data filename }
MsgPath: STRING[40]; {Not Used} { messages pathname }
@ -722,7 +722,7 @@ TYPE
FAFlagSet = SET OF FileAreaFlagType;
FileAreaRecordType = { FBASES.DAT : File area records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
AreaName: STRING[40]; { area description }
FileName: STRING[8]; { filename + ".DIR" }
DLPath, { download path }
@ -750,7 +750,7 @@ TYPE
FIFlagSet = SET OF FileInfoFlagType;
FileInfoRecordType = { *.DIR : File records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
FileName: STRING[12]; { Filename }
Description: STRING[50]; { File description }
FilePoints: SmallInt; { File points }
@ -765,7 +765,7 @@ TYPE
END;
LastCallerRec = { LASTON.DAT : Last few callers records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Node: Byte; { Node number }
UserName: STRING[36]; { User name OF caller }
Location: STRING[30]; { Location OF caller }
@ -815,7 +815,7 @@ TYPE
EventDaysType = SET OF 0..6; {Set of event days}
EventRecordType = {Events - EVENTS.DAT}
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
EventDescription: STRING[30]; {Description of the Event}
EventDayOfMonth: BYTE; {If monthly, the Day of Month}
EventDays: EventDaysType; {If Daily, the Days Active}
@ -850,7 +850,7 @@ TYPE
ProtocolCodeType = ARRAY [1..6] OF STRING[6];
ProtocolRecordType = { PROTOCOL.DAT records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
PRFlags: PRFlagSet; { Protocol Flags }
CKeys: STRING[14]; { Command Keys }
Description: STRING[40]; { Description }
@ -870,7 +870,7 @@ TYPE
END;
ConferenceRecordType = { CONFRENC.DAT : Conference data }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Key: Char; { key '@' to 'Z' }
Name: STRING[30]; { name of conference }
ACS: ACString; { access requirement }
@ -887,7 +887,7 @@ TYPE
NodeFlagSet = SET OF NodeFlagType;
NodeRecordType = { MULTNODE.DAT }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
User: SmallWord; { What user number }
UserName: STRING[36]; { User's name }
CityState: STRING[30]; { User's location }
@ -905,7 +905,7 @@ TYPE
END;
RoomRec = { ROOM.DAT }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Topic: STRING[40]; { Topic OF this room }
Anonymous: Boolean; { Is Room anonymous ? }
Private: Boolean; { Is Room private ? }
@ -914,13 +914,13 @@ TYPE
END;
ScanRec = { *.SCN files / MESSAGES }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
NewScan: Boolean; { Scan this area? }
LastRead: UnixTime; { Last date read }
END;
SchemeRec = { Scheme.dat }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
Description: STRING[30]; { Description OF the color scheme }
Color: ARRAY [1..200] OF Byte; { Colors in scheme }
END;
@ -938,7 +938,7 @@ TYPE
}
BBSListRecordType = { *.BBS file records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
RecordNum, { Number OF the Record For Edit }
UserID, { User ID OF person adding this }
MaxNodes : LongInt; { Maximum Number Of Nodes }
@ -994,7 +994,7 @@ TYPE
CmdFlagSet = SET OF CmdFlagType;
MenuRec =
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
Packed Record
LDesc: ARRAY [1..3] OF STRING[100]; { Menu Or Command Long Description ARRAY }
ACS: ACString; { Access Requirements }
NodeActivityDesc: STRING[50];

View File

@ -7,9 +7,17 @@
{$IFDEF MSDOS}
{$M 35500,0,131072}
{$ENDIF}
{$MODE TP}
{ }
{ _______ __ }
{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
{ |. l | -__| | -__| _ | _ | _ | -__| }
{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
{ |: | | |_____| }
{ |::.|:. | }
{ `--- ---' }
{ }
{ R E N E G A D E }
{ =============== }
{$A+} { Align Data for faster execution }
{$B-} { Shortcut Boolean eval }
@ -30,8 +38,6 @@
PROGRAM Renegade;
USES
OverLay,
{ OvrUMB,}
Crt,
Dos,
Boot,
@ -51,7 +57,7 @@ USES
NewUsers,
OffLine,
TimeFunc,
WfCMenu;
WfCMenu, rpport;
{$O MsgPack } {$O Common1 } {$O Common2 } {$O Common3 } {$O Boot }
{$O WfcMenu } {$O Timefunc } {$O Sysop1 } {$O Sysop2 } {$O Offline }
@ -87,7 +93,7 @@ VAR
S: Astr;
Counter: Byte;
Counter1: Integer;
BBSVersion: Astr;
PROCEDURE ErrorHandle;
VAR

View File

@ -5,13 +5,22 @@ unit RPScreen;
interface
{$IFDEF WIN32}
uses
Windows;
uses
{$IFDEF WINDOWS}
Windows;
{$ELSE}
Unix, SysUtils, Crt;
{$ENDIF}
type
{$IFDEF FPC}
TCharInfo = packed record
Ch: char;
Attr: byte;
end;
{$ENDIF}
TScreenBuf = Array[1..25, 1..80] of TCharInfo; // REETODO Don't hardcode to 80x25
{$ENDIF}
procedure RPBlockCursor;
procedure RPGotoXY(xy: Word);
@ -32,8 +41,9 @@ var
StdOut: THandle;
{$ENDIF}
{$IFDEF WIN32}
{$IFNDEF MSDOS}
procedure RPBlockCursor;
{$IFDEF WINDOWS}
var
CCI: TConsoleCursorInfo;
begin
@ -41,6 +51,12 @@ begin
CCI.dwSize := 15;
SetConsoleCursorInfo(StdOut, CCI);
end;
{$ELSE}
begin
cursorbig;
end;
{$ENDIF}
procedure RPGotoXY(xy: Word);
var

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT STATS;
@ -172,7 +172,7 @@ END;
PROCEDURE SearchTop20AreaFileSpec(FArea: Integer; VAR Top20File: Top20FileArray);
VAR
F: FileInfoRecordType;
DirFileRecNum: Integer;
DirFileRecNum: LongInt;
BEGIN
IF (FileArea <> FArea) THEN
ChangeFileArea(FArea);

View File

@ -18,272 +18,6 @@ USES
SysOp7,
TimeFunc;
{
RGSysCfgStr(1,FALSE)
$Main_BBS_Configuration
%CL^5Main BBS Configuration:^1
^1A. BBS name/number : ^5%BN ^1(^5%BP^1)
^1B. Telnet Url : ^5%TN
^1C. SysOp's name : ^5%SN{15 ^1D. Renegade Version : ^5%VR
^1E. SysOp chat hours : ^5%CS ^1F. Minimum baud hours : ^5%BL
^1G. Regular DL hours : ^5%DH ^1H. Minimum baud DL hrs: ^5%BM
^1I. BBS Passwords : ^1J. Pre-event warning : ^5%ET seconds
^1K. System Menus : ^1L. Bulletin Prefix : ^5%PB
^1M. MultiNode support: ^5%MN ^1N. Network mode : ^5%NM
^10. Main data files dir. : ^5%PD
^11. Miscellaneous Files dir.: ^5%PM
^12. Message file storage dir: ^5%P1
^13. Nodelist (Version 7) dir: ^5%P2
^14. Log files/trap files dir: ^5%PL
^15. Temporary directory : ^5%PT
^16. Protocols directory : ^5%PP
^17. Archivers directory : ^5%P7
^18. File attach directory : ^5%PF
^19. RAM drive/MultiNode path: ^5%P3
Enter selection [^5A^4-^5N^4,^50^4-^59^4,^5Q^4=^5Quit^4]: @
$
RGSysCfgStr(2,TRUE)
$Main_BBS_Configuration_BBS_Name
%LFNew BBS name: @
$
RGSysCfgStr(3,TRUE)
$Main_BBS_Configuration_BBS_Phone
%LFNew BBS phone number: @
$
RGSysCfgStr(4,TRUE)
$Main_BBS_Configuration_Telnet_URL
%LF^4New Telnet Url:%LF^4: @
$
RGSysCfgStr(5,TRUE)
$Main_BBS_Configuration_SysOp_Name
%LFNew SysOp name: @
$
RGNoteStr(0,FALSE)
$Internal_Use_Only
%LF^7This is for internal use only.
%PA
$
RGNoteStr(1,FALSE)
$Only_Change_Locally
%LF^7This can only be changed locally.
%PA
$
RGSysCfgStr(6,TRUE)
$Main_BBS_Configuration_SysOp_Chat_Hours
%LFDo you want to declare sysop chat hours? @
$
RGSysCfgStr(7,TRUE)
$Main_BBS_Configuration_Minimum_Baud_Hours
%LFDo you want to declare hours people at the minimum baud can logon? @
$
RGSysCfgStr(8,TRUE)
$Main_BBS_Configuration_Download_Hours
%LFDo you want to declare download hours? @
$
RGSysCfgStr(9,TRUE)
$Main_BBS_Configuration_Minimum_Baud_Download_Hours
%LFDo you want to declare hours people at minimum baud can download? @
$
RGSysCfgStr(10,FALSE)
$Main_BBS_Configuration_SysOp_Password_Menu
%CL^5System Passwords:^1
^1A. SysOp password : ^5%P4
^1B. New user password : ^5%P5
^1C. Baud override password: ^5%P6
Enter selection [^5A^4-^5C^4,^5Q^4=^5Quit^4]: @
$
RGSysCfgStr(11,TRUE)
$Main_BBS_Configuration_SysOp_Password
%LFNew SysOp password: @
$
RGSysCfgStr(12,TRUE)
$Main_BBS_Configuration_New_User_Password
%LFNew new-user password: @
$
RGSysCfgStr(13,TRUE)
$Main_BBS_Configuration_Baud_Override_Password
%LFNew minimum baud rate override password: @
$
RGSysCfgStr(14,TRUE)
$Main_BBS_Configuration_Pre_Event_Time
%LFNew pre-event warning time@
$
RGSysCfgStr(15,FALSE)
$Main_BBS_Configuration_System_Menus
%CL^5System Menus:^1
^11. Global : ^5%M1
^12. All Start : ^5%M2
^13. Shutle logon : ^5%M3
^14. New user info: ^5%M4
^15. Message Read : ^5%M5
^16. File List : ^5%M6
Enter selection [^51^4-^56^4,^5Q^4=^5Quit^4]: @
$
RGSysCfgStr(16,TRUE)
$Main_BBS_Configuration_System_Menus_Global
%LFMenu for global commands (0=None)@
$
RGSysCfgStr(17,TRUE)
$Main_BBS_Configuration_System_Menus_Start
%LFMenu to start all users at@
$
RGSysCfgStr(18,TRUE)
$Main_BBS_Configuration_System_Menus_Shuttle
%LFMenu for shuttle logon (0=None)@
$
RGSysCfgStr(19,TRUE)
$Main_BBS_Configuration_System_Menus_New_User
%LFMenu for new user information@
$
RGSysCfgStr(20,TRUE)
$Main_BBS_Configuration_System_Menus_Message_Read
%LFMenu for message read@
$
RGSysCfgStr(21,TRUE)
$Main_BBS_Configuration_System_Menus_File_Listing
%LFMenu for file listing@
$
RGNoteStr(2,FALSE)
$Invalid_Menu_Number
%LF^7Invalid menu number.
%PA
$
RGSysCfgStr(22,TRUE)
$Main_BBS_Configuration_Bulletin_Prefix
%LFDefault bulletin prefix: @
$
RGNoteStr(1,FALSE)
$Only_Change_Locally
%LF^7This can only be changed locally.
%PA
$
RGSysCfgStr(23,TRUE)
$Main_BBS_Configuration_Local_Security
%LFDo you want local security to remain on? @
$
RGSysCfgStr(24,TRUE)
$Main_BBS_Configuration_Data_Path
%LF^4New data files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(25,TRUE)
$Main_BBS_Configuration_Misc_Path
%LF^4New miscellaneous files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(26,TRUE)
$Main_BBS_Configuration_Msg_Path
%LF^4New message files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(27,TRUE)
$Main_BBS_Configuration_NodeList_Path
%LF^4New nodelist files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(28,TRUE)
$Main_BBS_Configuration_Log_Path
%LF^4New sysop log files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(29,TRUE)
$Main_BBS_Configuration_Temp_Path
%LF^4New temporary files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(30,TRUE)
$Main_BBS_Configuration_Protocol_Path
%LF^4New protocol files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(31,TRUE)
$Main_BBS_Configuration_Archive_Path
%LF^4New archive files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(32,TRUE)
$Main_BBS_Configuration_Attach_Path
%LF^4New file attach files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(33,TRUE)
$Main_BBS_Configuration_MultNode_Path
%LF^4New multi-node files path (^5End with a ^4"^5\^4"):%LF^4: @
$
}
PROCEDURE GetTimeRange(CONST RGStrNum: LongInt; VAR LoTime,HiTime: SmallInt);
VAR
TempStr: Str5;
@ -414,7 +148,7 @@ BEGIN
'6' : InputPath(RGSysCfgStr(30,TRUE),ProtPath,TRUE,FALSE,Changed);
'7' : InputPath(RGSysCfgStr(31,TRUE),ArcsPath,TRUE,FALSE,Changed);
'8' : InputPath(RGSysCfgStr(32,TRUE),FileAttachPath,TRUE,FALSE,Changed);
'9' : InputPath(RGSysCfgStr(33,TRUE),lMultPath,TRUE,FALSE,Changed);
'9' : InputPath(RGSysCfgStr(33,TRUE),MultPath,TRUE,FALSE,Changed);
END;
END;
UNTIL (Cmd = 'Q') OR (HangUp);

View File

@ -481,7 +481,7 @@ VAR
CmdStr := '12345678'
ELSE
CmdStr := '12345678[]FJL';
LOneK('%LFModify menu [^5?^4=^5Help^4]: ',Cmd1,'Q?'+CmdStr++^M,TRUE,TRUE);
LOneK('%LFModify menu [^5?^4=^5Help^4]: ',Cmd1,'Q?'+CmdStr+^M,TRUE,TRUE);
CASE Cmd1 OF
'1' : REPEAT
TempScheme1.Description := Description;

View File

@ -159,7 +159,7 @@ VAR
PrintACR('^15. Decompression cmdline : ^5'+DisplayArcStr(UnArcLine));
PrintACR('^16. File testing cmdline : ^5'+DisplayArcStr(TestLine));
PrintACR('^17. Add comment cmdline : ^5'+DisplayArcStr(CmtLine));
PrintACR('^18. Errorlevel for success : ^5'++AOnOff(SuccLevel <> - 1,IntToStr(SuccLevel),'-1 (ignores)'));
PrintACR('^18. Errorlevel for success : ^5'+AOnOff(SuccLevel <> - 1,IntToStr(SuccLevel),'-1 (ignores)'));
END;
IF (NOT Editing) THEN
CmdStr := '12345678'

View File

@ -17,7 +17,11 @@ PROCEDURE TEdit(CONST FSpec: AStr);
IMPLEMENTATION
USES
Dos;
Dos
{$IFDEF LINUX}
,Linux
{$ENDIF}
;
PROCEDURE TEdit1;
VAR
@ -68,6 +72,7 @@ VAR
I: Integer;
Done,
AllRead: Boolean;
MemAvail: Integer;
PROCEDURE InLi(VAR S1: AStr);
VAR
@ -177,7 +182,10 @@ VAR
END;
FUNCTION NewPtr(VAR x: StrPtr): Boolean;
Var
MaxAvail : Integer;
BEGIN
MaxAvail := 2048;
IF (Used <> NIL) THEN
BEGIN
x := Used;

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT SysOp9;
@ -119,7 +119,7 @@ VAR
'T' : Add := AOnOff((MemFileArea.ArcType = 0),'*None*',General.FileArcInfo[MemFileArea.ArcType].Ext);
END;
'C' : CASE UpCase(S[Index + 2]) OF
'T' : Add := +AOnOff((MemFileArea.CmtType = 0),'*None*',IntToStr(MemFileArea.CmtType));
'T' : Add := AOnOff((MemFileArea.CmtType = 0),'*None*',IntToStr(MemFileArea.CmtType));
END;
'D' : CASE UpCase(S[Index + 2]) OF
'D' : Add := MCIVars1.Drive;
@ -178,14 +178,14 @@ VAR
TotLoad: LongInt;
Found: Boolean;
BEGIN
Assign(StrPointerFile,General.LMultPath+'FAEPR.DAT');
Assign(StrPointerFile,General.MultPath+'FAEPR.DAT');
Reset(StrPointerFile);
Seek(StrPointerFile,StrNum);
Read(StrPointerFile,StrPointer);
Close(StrPointerFile);
LastError := IOResult;
TotLoad := 0;
Assign(RGStrFile,General.LMultPath+'FAETX.DAT');
Assign(RGStrFile,General.MultPath+'FAETX.DAT');
Reset(RGStrFile,1);
Seek(RGStrFile,(StrPointer.Pointer - 1));
REPEAT

View File

@ -1,7 +1,7 @@
{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$MODE TP}
{$A+,B-,D-,E-,F+,I-,L-,N-,O+,R-,S+,V-}
UNIT TimeFunc;

View File

@ -11,7 +11,7 @@ Type
UnixTime = Longint;
OldBBSListRecordType = { *.BBS file records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
PACKED RECORD
RecordNum : LongInt; { Number OF the Record For Edit }
UserID : LongInt; { User ID OF person adding this }
BBSName : STRING[30]; { Name OF BBS }
@ -34,7 +34,7 @@ Type
END;
NewBBSListRecordType = { New *.BBS file records }
{$IFDEF WIN32} PACKED {$ENDIF} RECORD
PACKED RECORD
RecordNum, { Number OF the Record For Edit }
UserID, { User ID OF person adding this }
MaxNodes : LongInt; { Maximum Number Of Nodes }
@ -87,9 +87,9 @@ Var
Old : String;
Begin
GetDir(0,BBSListDat);
BBSListDat := BBSListDat+'\DATA\BBSLIST.DAT';
BBSListDat := BBSListDat+'/DATA/BBSLIST.DAT';
GetDir(0,Old);
Old := Old+'\DATA\BBSLIST.OLD';
Old := Old+'/DATA/BBSLIST.OLD';
If Exist(Old) Then
Begin
WriteLn;
@ -127,7 +127,7 @@ Begin { Main Program }
BBSListDat := GetDataFile; { Get BBSLIST.DAT or Quit }
TempFile := 'DATA\BBSTEMP.DAT';
TempFile := 'DATA/BBSTEMP.DAT';
Assign(OldBBSFile, BBSListDat);
Assign(BBSFile, TempFile);
@ -181,15 +181,15 @@ WriteLn;
TextColor(3);
Write(' Copying ');
TextColor(11);
Write(Dir,'\DATA\BBSLIST.DAT ');
Write(Dir,'/DATA/BBSLIST.DAT ');
TextColor(3);
Write('to ');
TextColor(11);
Write(Dir,'\DATA\BBSLIST.OLD ');
Write(Dir,'/DATA/BBSLIST.OLD ');
TextColor(3);
Write('...');
Rename(OldBBSFile,Dir+'\DATA\BBSLIST.OLD');
Rename(OldBBSFile,Dir+'/DATA/BBSLIST.OLD');
TextColor(3);
WriteLn(' Done!');
@ -197,15 +197,15 @@ WriteLn(' Done!');
TextColor(3);
Write(' Moving ');
TextColor(11);
Write(Dir,'\DATA\BBSTEMP.DAT ');
Write(Dir,'/DATA/BBSTEMP.DAT ');
TextColor(3);
Write('to ');
TextColor(11);
Write(Dir,'\DATA\BBSLIST.DAT ');
Write(Dir,'/DATA/BBSLIST.DAT ');
TextColor(3);
Write('...');
Rename(BBSFile,Dir+'\DATA\BBSLIST.DAT');
Rename(BBSFile,Dir+'/DATA/BBSLIST.DAT');
TextColor(3);
WriteLn(' Done!');

View File

@ -414,7 +414,12 @@ BEGIN
Window(1,1,MaxDisplayCols,MaxDisplayRows);
LastWFCX := 1;
LastWFCY := 1;
CursorOn(FALSE);
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
ClrScr;
IF (AnswerBaud > 0) THEN
Exit;
@ -639,14 +644,14 @@ VAR
VAR
s: AStr;
C: Char;
try: Integer;
trys: Integer;
rl,
rl1: LongInt;
done: Boolean;
BEGIN
C := #0;
done := FALSE;
try := 0;
trys := 0;
IF ((Liner.Init <> '') AND (AnswerBaud = 0) AND (NOT LocalIOOnly)) THEN
BEGIN
IF (SysOpOn) AND (NOT BlankMenuNow) THEN
@ -681,8 +686,8 @@ VAR
END;
UNTIL ((ABS(Timer - rl1) > 3) OR (done)) OR (KeyPressed);
Com_Flush_Recv;
Inc(try);
IF (try > 10) THEN
Inc(trys);
IF (trys > 10) THEN
Done := TRUE;
UNTIL ((done) OR (KeyPressed));
IF (SysOpOn) AND (NOT BlankMenuNow) THEN
@ -769,7 +774,7 @@ VAR
PROCEDURE ChkEvents;
VAR
EventNum: Byte;
RCode: Integer;
RCode: SmallInt;
BEGIN
IF (CheckEvents(0) <> 0) THEN
FOR EventNum := 1 TO NumEvents DO
@ -797,14 +802,24 @@ VAR
' from node '+IntToStr(ThisNode));
IF (EventIsShell IN EFlags) THEN
BEGIN
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
EventLastDate := Date2PD(DateStr);
Reset(EventFile);
Seek(EventFile,(EventNum - 1));
Write(EventFile,MemEventArray[EventNum]^);
Close(EventFile);
ShellDOS(FALSE,EventShellPath+'.BAT',RCode);
CursorOn(FALSE);
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
SL1('Returned from '+EventDescription+' on '+DateStr+' '+TimeStr);
DoPhoneHangup(TRUE);
InitModem;
@ -812,7 +827,12 @@ VAR
END
ELSE IF (EventIsErrorLevel IN EFlags) THEN
BEGIN
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
DoneDay := TRUE;
ExitErrorLevel := EventErrorLevel;
EventLastDate := Date2PD(DateStr);
@ -820,7 +840,12 @@ VAR
Seek(EventFile,(EventNum - 1));
Write(EventFile,MemEventArray[EventNum]^);
Close(EventFile);
CursorOn(FALSE);
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
END
ELSE IF (EventIsSortFiles IN EFlags) THEN
BEGIN
@ -829,7 +854,12 @@ VAR
Seek(EventFile,(EventNum - 1));
Write(EventFile,MemEventArray[EventNum]^);
Close(EventFile);
CursorOn(FALSE);
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
SortFilesOnly := TRUE;
Sort;
SortFilesOnly := FALSE;
@ -843,7 +873,12 @@ VAR
Seek(EventFile,(EventNum - 1));
Write(EventFile,MemEventArray[EventNum]^);
Close(EventFile);
CursorOn(FALSE);
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
PackAllBases;
InitModem;
WFCDraw;
@ -855,7 +890,12 @@ VAR
Seek(EventFile,(EventNum - 1));
Write(EventFile,MemEventArray[EventNum]^);
Close(EventFile);
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(FALSE);
{$ENDIF}
CheckFilesBBS;
InitModem;
WFCDraw;
@ -891,7 +931,12 @@ BEGIN
WFCMessage := 'Modem off hook - paging SysOp';
Randomize;
TextAttr := CurrentColor;
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(FALSE);
{$ENDIF}
LastMinute := (Timer - 61);
CheckForConnection := FALSE;
@ -1031,7 +1076,12 @@ BEGIN
END;
C := UpCase(C);
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
IF (NOT SysOpOn) THEN
CASE C OF
'Q' : BEGIN
@ -1302,7 +1352,12 @@ BEGIN
END;
END;
END;
CursorOn(FALSE);
{$IFDEF FPC}
cursoroff;
{$ELSE}
CursorOn(false);
{$ENDIF}
UNTIL ((InCom) OR (C = ' ') OR (DoneDay));
UploadKBytesToday := 0;
@ -1354,7 +1409,12 @@ BEGIN
WantOut := TRUE;
IF (WantOut) THEN
{$IFDEF FPC}
cursoron;
{$ELSE}
CursorOn(TRUE);
{$ENDIF}
SaveGeneral(TRUE);