diff --git a/.gitignore b/.gitignore index 172da15..887f3d1 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,9 @@ *.PPU *.VPI *.vpi +*.bak +*.o + SOURCE/ELECOM/ SOURCE/UNUSED/ src/elecom/ diff --git a/src/archive1.pas b/src/archive1.pas index 3cdba8c..5c274c0 100644 --- a/src/archive1.pas +++ b/src/archive1.pas @@ -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, @@ -720,4 +720,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/archive2.pas b/src/archive2.pas index 045ec4f..74e7c3f 100644 --- a/src/archive2.pas +++ b/src/archive2.pas @@ -52,7 +52,7 @@ VAR NumFiles, RecNum, Counter: Byte; - Junk, + Junk: SmallInt; RN, FArea, SaveFileArea, @@ -916,4 +916,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/archive3.pas b/src/archive3.pas index 49af8b8..d3ccab5 100644 --- a/src/archive3.pas +++ b/src/archive3.pas @@ -28,7 +28,7 @@ VAR NS: NameStr; ES: ExtStr; AType: Byte; - ReturnCode, + ReturnCode: SmallInt; DirFileRecNum: Integer; OldSiz, NewSiz: LongInt; @@ -241,4 +241,4 @@ BEGIN ConvertBytes(TotalsRecord.TotalOldSize,FALSE)+' , new size='+ConvertBytes(TotalsRecord.TotalNewSize,FALSE)); END; -END. +END. \ No newline at end of file diff --git a/src/arcview.pas b/src/arcview.pas index c5b8518..2e4b715 100644 --- a/src/arcview.pas +++ b/src/arcview.pas @@ -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; @@ -849,4 +849,4 @@ BEGIN LastError := IOResult; END; -END. \ No newline at end of file +END. \ No newline at end of file diff --git a/src/bbslist.pas b/src/bbslist.pas index 774caae..09f377a 100644 --- a/src/bbslist.pas +++ b/src/bbslist.pas @@ -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 @@ -776,4 +777,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/boot.pas b/src/boot.pas index f3c2cf0..0ceb6dc 100644 --- a/src/boot.pas +++ b/src/boot.pas @@ -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; @@ -1075,4 +1075,4 @@ BEGIN END; -END. +END. \ No newline at end of file diff --git a/src/bulletin.pas b/src/bulletin.pas index 38d1d69..ffa2ffa 100644 --- a/src/bulletin.pas +++ b/src/bulletin.pas @@ -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); @@ -589,4 +589,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/common.pas b/src/common.pas index e49a2e1..a9534bc 100644 --- a/src/common.pas +++ b/src/common.pas @@ -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; - CursorOn(TRUE); + {$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 := ''; - CursorOn(TRUE); + {$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; @@ -5073,4 +5113,4 @@ BEGIN UNTIL (Ticks > CheckMS); END; -END. +END. \ No newline at end of file diff --git a/src/common1.pas b/src/common1.pas index e939aae..771f92c 100644 --- a/src/common1.pas +++ b/src/common1.pas @@ -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; @@ -411,4 +411,4 @@ BEGIN END; END. - + \ No newline at end of file diff --git a/src/common2.pas b/src/common2.pas index 2e6d117..1910b78 100644 --- a/src/common2.pas +++ b/src/common2.pas @@ -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); - CursorOn(i IN [1..4]); + {$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,10 +1329,14 @@ BEGIN UNTIL (Done); GoToXY(SaveWhereX,SaveWhereY); TextAttr := SaveTextAttr; + {$IFDEF FPC} + cursoron; + {$ELSE} CursorOn(TRUE); + {$ENDIF} NewCompTables; SaveURec(ThisUser,UserNum); END; END. - + \ No newline at end of file diff --git a/src/common3.pas b/src/common3.pas index e321e61..b1eede6 100644 --- a/src/common3.pas +++ b/src/common3.pas @@ -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} @@ -542,4 +551,4 @@ BEGIN InputMain(S,MaxLen,[CapWords]); END; -END. +END. \ No newline at end of file diff --git a/src/common4.pas b/src/common4.pas index 71938cf..4a2cebb 100644 --- a/src/common4.pas +++ b/src/common4.pas @@ -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 @@ -1048,4 +1063,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/cuser.pas b/src/cuser.pas index 7169ffc..4defa14 100644 --- a/src/cuser.pas +++ b/src/cuser.pas @@ -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 @@ -1026,4 +1026,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/doors.pas b/src/doors.pas index f1a0c43..7fa1302 100644 --- a/src/doors.pas +++ b/src/doors.pas @@ -689,7 +689,7 @@ END; PROCEDURE DoDoorFunc(DropFileType: Char; MenuOption: Str50); VAR Answer: AStr; - ReturnCode: Integer; + ReturnCode: SmallInt; DoorTime: LongInt; UseRealName: Boolean; BEGIN @@ -769,4 +769,4 @@ BEGIN SysOpLog('Returned on '+DateStr+' at '+TimeStr+'. Spent '+FormattedTime(DoorTime)); END; -END. +END. \ No newline at end of file diff --git a/src/execbat.pas b/src/execbat.pas index c6e87dd..c4976bd 100644 --- a/src/execbat.pas +++ b/src/execbat.pas @@ -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; @@ -226,4 +226,4 @@ BEGIN LastScreenSwap := (Timer - 5); END; -END. +END. \ No newline at end of file diff --git a/src/file1.pas b/src/file1.pas index 23e6cdd..bc98bee 100644 --- a/src/file1.pas +++ b/src/file1.pas @@ -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 @@ -1585,4 +1585,4 @@ BEGIN UnlistedDownload(PathFileName) END; -END. +END. \ No newline at end of file diff --git a/src/file11.pas b/src/file11.pas index 700704f..94e130a 100644 --- a/src/file11.pas +++ b/src/file11.pas @@ -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 @@ -1246,4 +1246,4 @@ BEGIN SysOpLog('Created temporary directory #'+IntToStr(FileArea)+' in "'+TempPath+'"'); END; -END. +END. \ No newline at end of file diff --git a/src/file12.pas b/src/file12.pas index d4603c4..45e350c 100644 --- a/src/file12.pas +++ b/src/file12.pas @@ -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; @@ -960,4 +960,4 @@ BEGIN END; END. - + \ No newline at end of file diff --git a/src/file4.pas b/src/file4.pas index d2bd265..5151197 100644 --- a/src/file4.pas +++ b/src/file4.pas @@ -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, @@ -248,4 +248,4 @@ BEGIN DoProtocol := RecNum; END; -END. \ No newline at end of file +END. \ No newline at end of file diff --git a/src/file5.pas b/src/file5.pas index aa2ff9e..0e57d0b 100644 --- a/src/file5.pas +++ b/src/file5.pas @@ -106,7 +106,7 @@ VAR TSiz: LongInt; i, j: Byte; - RetLevel: Integer; + RetLevel: SmallInt; b, Ok: Boolean; BEGIN @@ -801,4 +801,4 @@ BEGIN END; END. - + \ No newline at end of file diff --git a/src/file6.pas b/src/file6.pas index 7ab44cf..5f0ca57 100644 --- a/src/file6.pas +++ b/src/file6.pas @@ -99,12 +99,12 @@ VAR NumExtDesc, Counter, Counter1: BYTE; - ReturnCode, SaveFileArea, DirFileRecNum, ProtocolNumber, SaveLastDirFileRecNum, ToXfer: Integer; + ReturnCode: SmallInt; RecNum, RecNum1, TransferTime: LongInt; @@ -992,4 +992,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/file8.pas b/src/file8.pas index acc4d97..6ff3a27 100644 --- a/src/file8.pas +++ b/src/file8.pas @@ -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; @@ -604,4 +604,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/file9.pas b/src/file9.pas index 99dc735..9e4eade 100644 --- a/src/file9.pas +++ b/src/file9.pas @@ -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; @@ -417,4 +417,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/linechat.pas b/src/linechat.pas index e493a42..aa098ee 100644 --- a/src/linechat.pas +++ b/src/linechat.pas @@ -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; @@ -451,4 +451,4 @@ BEGIN MCIAllowed := SaveMCIAllowed; END; -END. +END. \ No newline at end of file diff --git a/src/logon.pas b/src/logon.pas index 7855ede..10ab3b3 100644 --- a/src/logon.pas +++ b/src/logon.pas @@ -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; @@ -1191,4 +1193,4 @@ BEGIN GetUser := FALSE; END; -END. +END. \ No newline at end of file diff --git a/src/mail0.pas b/src/mail0.pas index da4eeb6..37260eb 100644 --- a/src/mail0.pas +++ b/src/mail0.pas @@ -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; @@ -892,4 +892,4 @@ BEGIN GetTagLine := TagLine; END; -END. +END. \ No newline at end of file diff --git a/src/mail1.pas b/src/mail1.pas index 6ac56f6..60faaac 100644 --- a/src/mail1.pas +++ b/src/mail1.pas @@ -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 @@ -2405,4 +2406,4 @@ BEGIN FreeMem(LinePtr,(MaxLines * 120)); END; -END. +END. \ No newline at end of file diff --git a/src/mail2.pas b/src/mail2.pas index ac4ffe9..7eb0c06 100644 --- a/src/mail2.pas +++ b/src/mail2.pas @@ -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; @@ -1400,4 +1400,4 @@ BEGIN LoadMsgArea(MsgArea); END; -END. +END. \ No newline at end of file diff --git a/src/mail3.pas b/src/mail3.pas index 6346b82..d14ebc8 100644 --- a/src/mail3.pas +++ b/src/mail3.pas @@ -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 @@ -474,4 +474,4 @@ BEGIN InitMsgArea(SaveReadMsgArea); END; -END. +END. \ No newline at end of file diff --git a/src/mail4.pas b/src/mail4.pas index 83f37f2..9bb056c 100644 --- a/src/mail4.pas +++ b/src/mail4.pas @@ -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 @@ -482,4 +482,4 @@ BEGIN LastCommandOvr := TRUE; END; -END. +END. \ No newline at end of file diff --git a/src/menus.pas b/src/menus.pas index 4ae8f13..5b838dd 100644 --- a/src/menus.pas +++ b/src/menus.pas @@ -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); @@ -1070,4 +1074,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/miscuser.pas b/src/miscuser.pas index a098438..e199495 100644 --- a/src/miscuser.pas +++ b/src/miscuser.pas @@ -136,7 +136,7 @@ BEGIN Update_Screen; END; -PROCEDURE FindUser(VAR UserNum: Integer); +PROCEDURE FindUser(VAR UserNum: LongInt); VAR User: UserRecordType; TempUserName: Str36; @@ -263,4 +263,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/multnode.pas b/src/multnode.pas index 8fb6183..ba3f1cc 100644 --- a/src/multnode.pas +++ b/src/multnode.pas @@ -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; @@ -1318,4 +1318,4 @@ BEGIN AllowContinue := FALSE; END; -END. +END. \ No newline at end of file diff --git a/src/myio.pas b/src/myio.pas index 8f1ea0f..9957916 100644 --- a/src/myio.pas +++ b/src/myio.pas @@ -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. +END. \ No newline at end of file diff --git a/src/newusers.pas b/src/newusers.pas index 76e2936..1db6b3d 100644 --- a/src/newusers.pas +++ b/src/newusers.pas @@ -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; @@ -281,4 +281,4 @@ BEGIN END; END; -END. +END. \ No newline at end of file diff --git a/src/nodelist.pas b/src/nodelist.pas index 4cf07e3..3816206 100644 --- a/src/nodelist.pas +++ b/src/nodelist.pas @@ -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 @@ -649,4 +649,4 @@ BEGIN NL; END; -END. +END. \ No newline at end of file diff --git a/src/offline.pas b/src/offline.pas index 7caace4..af46a6f 100644 --- a/src/offline.pas +++ b/src/offline.pas @@ -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; @@ -1222,4 +1222,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/oneliner.pas b/src/oneliner.pas index a14ed93..78dc05b 100644 --- a/src/oneliner.pas +++ b/src/oneliner.pas @@ -1,3 +1,4 @@ +{$MODE TP} {$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-} Unit OneLiner; @@ -317,4 +318,4 @@ Begin OneLiner_Add; End; -End. +End. \ No newline at end of file diff --git a/src/records.pas b/src/records.pas index c731514..6017505 100644 --- a/src/records.pas +++ b/src/records.pas @@ -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]; @@ -1016,4 +1016,4 @@ TYPE CKeys: STRING[14]; { Command Execution Keys } CmdKeys: STRING[2]; { Command Keys: Type OF Command } Options: STRING[50]); { MString: Command Data } - END; + END; \ No newline at end of file diff --git a/src/renegade.pas b/src/renegade.pas index 2bae2ea..27cf99d 100644 --- a/src/renegade.pas +++ b/src/renegade.pas @@ -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 diff --git a/src/rpscreen.pas b/src/rpscreen.pas index 4c1859f..0c353ab 100644 --- a/src/rpscreen.pas +++ b/src/rpscreen.pas @@ -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 @@ -154,4 +170,4 @@ end; BEGIN StdOut := GetStdHandle(STD_OUTPUT_HANDLE); {$ENDIF} -END. \ No newline at end of file +END. \ No newline at end of file diff --git a/src/stats.pas b/src/stats.pas index 1e50c87..1f2a0e5 100644 --- a/src/stats.pas +++ b/src/stats.pas @@ -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); @@ -454,4 +454,4 @@ BEGIN END; END; -END. \ No newline at end of file +END. \ No newline at end of file diff --git a/src/sysop2.pas b/src/sysop2.pas index 557f80e..2f4fe3f 100644 --- a/src/sysop2.pas +++ b/src/sysop2.pas @@ -92,4 +92,4 @@ BEGIN UNTIL (Cmd = 'Q') OR (HangUp); END; -END. +END. \ No newline at end of file diff --git a/src/sysop2a.pas b/src/sysop2a.pas index d7809c8..d5ff53f 100644 --- a/src/sysop2a.pas +++ b/src/sysop2a.pas @@ -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); @@ -424,4 +158,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/sysop2j.pas b/src/sysop2j.pas index ea446c8..d8fcdf9 100644 --- a/src/sysop2j.pas +++ b/src/sysop2j.pas @@ -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; @@ -820,4 +820,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/sysop2k.pas b/src/sysop2k.pas index 9d7efd5..1e61ba5 100644 --- a/src/sysop2k.pas +++ b/src/sysop2k.pas @@ -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' @@ -360,4 +360,4 @@ BEGIN UNTIL (Cmd = 'Q') OR (HangUp); END; -END. +END. \ No newline at end of file diff --git a/src/sysop4.pas b/src/sysop4.pas index 76cb032..ac687d8 100644 --- a/src/sysop4.pas +++ b/src/sysop4.pas @@ -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; @@ -560,4 +568,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/sysop9.pas b/src/sysop9.pas index 8da5e7b..75a0dcf 100644 --- a/src/sysop9.pas +++ b/src/sysop9.pas @@ -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 @@ -1263,4 +1263,4 @@ BEGIN LastError := IOResult; END; -END. +END. \ No newline at end of file diff --git a/src/timefunc.pas b/src/timefunc.pas index 84e0bcd..3ceff44 100644 --- a/src/timefunc.pas +++ b/src/timefunc.pas @@ -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; @@ -390,4 +390,4 @@ BEGIN END; -END. +END. \ No newline at end of file diff --git a/src/upgrade/fixbbsl.pas b/src/upgrade/fixbbsl.pas index 402be6d..5992280 100644 --- a/src/upgrade/fixbbsl.pas +++ b/src/upgrade/fixbbsl.pas @@ -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!'); @@ -214,4 +214,4 @@ WriteLn; Close(OldBBSFile); Close(BBSFile); -End. +End. \ No newline at end of file diff --git a/src/wfcmenu.pas b/src/wfcmenu.pas index 8feebab..4e049cd 100644 --- a/src/wfcmenu.pas +++ b/src/wfcmenu.pas @@ -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 - CursorOn(TRUE); + {$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 - CursorOn(TRUE); + {$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); - CursorOn(FALSE); + {$IFDEF FPC} + cursoroff; + {$ELSE} + CursorOn(FALSE); + {$ENDIF} + CheckFilesBBS; InitModem; WFCDraw; @@ -891,7 +931,12 @@ BEGIN WFCMessage := 'Modem off hook - paging SysOp'; Randomize; TextAttr := CurrentColor; - CursorOn(FALSE); + {$IFDEF FPC} + cursoroff; + {$ELSE} + CursorOn(FALSE); + {$ENDIF} + LastMinute := (Timer - 61); CheckForConnection := FALSE; @@ -1031,7 +1076,12 @@ BEGIN END; C := UpCase(C); - CursorOn(TRUE); + {$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,11 +1409,16 @@ BEGIN WantOut := TRUE; IF (WantOut) THEN + {$IFDEF FPC} + cursoron; + {$ELSE} CursorOn(TRUE); + {$ENDIF} + SaveGeneral(TRUE); LastError := IOResult; END; -END. \ No newline at end of file +END. \ No newline at end of file