More A35 work

This commit is contained in:
mysticbbs 2013-05-25 13:56:32 -04:00
parent 80b7d40a77
commit 79d94e90c7
14 changed files with 264 additions and 236 deletions

View File

@ -1276,13 +1276,12 @@ Begin
If BufPos MOD BaudEmulator = 0 Then WaitMS(6);
End;
(*
If AllowAbort And (BufPos MOD 128 = 0) Then
If InKey(0) = #32 Then Begin
If AllowAbort And (BufPos MOD 128 = 0) And Not Session.LocalMode Then
If Session.Client.DataWaiting And (InKey(0) = #32) Then Begin
AnsiColor(7);
Break;
End;
(*
If AllowAbort And (InKey(0) = #32) Then Begin
AnsiColor(7);
Break;
@ -1440,7 +1439,7 @@ Begin
Handles[0] := Input.ConIn;
If Not TBBSCore(Core).LocalMode Then Begin
If TBBSCore(Core).Client.FInBufPos <= TBBSCore(Core).Client.FInBufEnd Then
If TBBSCore(Core).Client.FInBufPos < TBBSCore(Core).Client.FInBufEnd Then
InType := 2
Else Begin
Handles[1] := SocketEvent;
@ -1916,7 +1915,7 @@ Var
End;
Begin
PurgeInputBuffer;
// PurgeInputBuffer;
If UseInLimit Then Begin
Field := InLimit;

View File

@ -350,6 +350,7 @@ Var
Begin
If Not Config.MCompress Then Begin
Result := GetBaseByNum(Num, TempBase);
Exit;
End;
@ -826,31 +827,13 @@ Var
End;
End;
Close (MBaseFile);
Session.io.OutFull (Session.GetPrompt(430));
End;
Procedure ToggleBase (A : Word);
Var
B : Word;
Procedure ToggleCurrent (Forced: LongInt);
Begin
If A = 0 Then Exit;
B := 0;
FileMode := 66;
Reset (MBaseFile);
Repeat
{$I-} Read (MBaseFile, MBase); {$I+}
If IoResult <> 0 Then Exit;
If Session.User.Access(MBase.ListACS) Then
Inc(B);
If A = B Then Break;
Until False;
GetMessageScan;
Session.io.PromptInfo[1] := MBase.Name;
@ -858,32 +841,74 @@ Var
If QWK Then Begin
Case MScan.QwkScan of
0 : Begin
MScan.QwkScan := 1;
Session.io.OutFullLn (Session.GetPrompt(97));
If Forced <> -1 Then
MScan.QwkScan := Forced
Else Begin
MScan.QwkScan := 1;
Session.io.OutFullLn (Session.GetPrompt(97));
End;
End;
1 : Begin
MScan.QwkScan := 0;
Session.io.OutFullLn (Session.GetPrompt(96));
If Forced <> -1 Then
MScan.QwkScan := Forced
Else Begin
MScan.QwkScan := 0;
Session.io.OutFullLn (Session.GetPrompt(96));
End;
End;
2 : Session.io.OutFullLn (Session.GetPrompt(302));
2 : If Forced <> -1 Then
Session.io.OutFullLn (Session.GetPrompt(302));
End;
End Else Begin
Case MScan.NewScan of
0 : Begin
MScan.NewScan := 1;
Session.io.OutFullLn (Session.GetPrompt(99));
If Forced <> -1 Then
MScan.NewScan := Forced
Else Begin
MScan.NewScan := 1;
Session.io.OutFullLn (Session.GetPrompt(99));
End;
End;
1 : Begin
MScan.NewScan := 0;
Session.io.OutFullLn (Session.GetPrompt(98));
If Forced <> -1 Then
MScan.NewScan := Forced
Else Begin
MScan.NewScan := 0;
Session.io.OutFullLn (Session.GetPrompt(98));
End;
End;
2 : Session.io.OutFullLn (Session.GetPrompt(302));
2 : If Forced <> -1 Then
Session.io.OutFullLn (Session.GetPrompt(302));
End;
End;
SetMessageScan;
End;
Procedure ToggleAll (Value: Byte);
Begin
Reset (MBaseFile);
While Not Eof(MBaseFile) Do Begin
Read (MBaseFile, MBase);
If Session.User.Access(MBase.ListACS) Then
ToggleCurrent(Value);
End;
Close (MBaseFile);
End;
Procedure ToggleByNumber (BaseNumber: LongInt);
Begin
If (BaseNumber > 0) And GetBaseCompressed(BaseNumber, MBase) Then
ToggleCurrent(-1);
End;
Var
Old : RecMessageBase;
Temp : String[40];
@ -892,7 +917,8 @@ Var
Num1 : String[40];
Num2 : String[40];
Begin
Old := MBase;
Old := MBase;
FileMode := 66;
Session.User.IgnoreGroup := Pos('/ALLGROUP', strUpper(Data)) > 0;
@ -900,8 +926,11 @@ Begin
If Total = 0 Then Begin
Session.io.OutFullLn (Session.GetPrompt(94));
MBase := Old;
Session.User.IgnoreGroup := False;
Exit;
End;
@ -912,8 +941,14 @@ Begin
If (Temp = '') or (Temp = 'Q') Then Break;
If Temp = 'A' Then
ToggleAll(1)
Else
If Temp = 'D' Then
ToggleAll(0)
Else
If Temp = '?' Then
List_Bases
// do nothing
Else Begin
Num1 := '';
Num2 := '';
@ -924,9 +959,9 @@ Begin
If Temp[Count1] = ',' Then Begin
If Num2 <> '' Then Begin
For Count2 := strS2I(Num2) to strS2I(Num1) Do
ToggleBase(Count2);
ToggleByNumber(Count2);
End Else
ToggleBase(strS2I(Num1));
ToggleByNumber(strS2I(Num1));
Num1 := '';
Num2 := '';
@ -940,15 +975,13 @@ Begin
If Num2 <> '' Then Begin
For Count1 := strS2I(Num2) to strS2I(Num1) Do
ToggleBase(Count1);
ToggleByNumber(Count1);
End Else
ToggleBase(strS2I(Num1));
List_Bases;
ToggleByNumber(strS2I(Num1));
End;
Until False;
Close (MBaseFile);
List_Bases;
Until False;
MBase := Old;

View File

@ -1000,7 +1000,7 @@ Begin
TmpDt.Hour := strS2I(Copy(SqInfo^.StrTime,1,2));
TmpDt.Min := strS2I(Copy(SqInfo^.StrTime, 4,2));
TmpDt.Sec := 0;
TmpStr := FormattedDate(TmpDT, 'DD NNN YY ') + Copy(SqInfo^.StrTime, 1, 5) + ':00';
TmpStr := FormatDate(TmpDT, 'DD NNN YY ') + Copy(SqInfo^.StrTime, 1, 5) + ':00';
PackTime (TmpDT, TmpDate);

View File

@ -1309,51 +1309,53 @@ Begin
Session.io.OutFile ('prelogon', True, 0);
If UserNum = -1 Then Begin
Count := 1;
Count := 1;
Repeat
If Count > Config.LoginAttempts Then Halt;
Repeat
If Count > Config.LoginAttempts Then Halt;
Session.io.PromptInfo[1] := strI2S(Count);
Session.io.PromptInfo[2] := strI2S(Config.LoginAttempts);
Session.io.PromptInfo[3] := strI2S(Config.LoginAttempts - Count);
Session.io.PromptInfo[1] := strI2S(Count);
Session.io.PromptInfo[2] := strI2S(Config.LoginAttempts);
Session.io.PromptInfo[3] := strI2S(Config.LoginAttempts - Count);
Session.io.OutFull (Session.GetPrompt(0));
Session.io.OutFull (Session.GetPrompt(0));
Str := strStripB(Session.io.GetInput(30, 30, 18, ''), ' ');
Str := strStripB(Session.io.GetInput(30, 30, 18, ''), ' ');
If Not FindUser(Str, True) Then Begin
Session.io.OutFile ('newuser', True, 0);
If Not FindUser(Str, True) Then Begin
Session.io.OutFile ('newuser', True, 0);
If Session.io.GetYN(Session.GetPrompt(1), False) Then Begin
CreateNewUser(Str);
UserLogon2;
UserLogon3;
If Session.io.GetYN(Session.GetPrompt(1), False) Then Begin
CreateNewUser(Str);
UserLogon2;
UserLogon3;
Exit;
End;
Exit;
End;
Inc (Count);
End Else Break;
Until False;
Inc (Count);
End Else
Break;
Until False;
A := UserNum; {If user would drop carrier here itd save their info }
UserNum := -1; {which is only User.ThisUser.realname at this time }
A := UserNum; {If user would drop carrier here itd save their info }
UserNum := -1; {which is only User.ThisUser.realname at this time }
If Not Session.io.GetPW(Session.GetPrompt(2), Session.GetPrompt(3), TempUser.Password) Then Begin
If Config.PWInquiry Then
If Session.io.GetYN(Session.GetPrompt(475), False) Then
Session.Msgs.PostMessage(True, '/TO:' + strReplace(Config.FeedbackTo, ' ', '_') + ' /SUBJ:Password_Inquiry');
If Not Session.io.GetPW(Session.GetPrompt(2), Session.GetPrompt(3), TempUser.Password) Then Begin
If Config.PWInquiry Then
If Session.io.GetYN(Session.GetPrompt(475), False) Then
Session.Msgs.PostMessage(True, '/TO:' + strReplace(Config.FeedbackTo, ' ', '_') + ' /SUBJ:Password_Inquiry');
Session.Msgs.PostTextFile('hackwarn.txt;0;' + Config.SysopName + ';' + TempUser.Handle + ';Possible hack attempt', True);
Session.Msgs.PostTextFile('hackwarn.txt;0;' + Config.SysopName + ';' + TempUser.Handle + ';Possible hack attempt', True);
Halt(0);
Halt(0);
End;
UserNum := A;
ThisUser := TempUser;
End;
UserNum := A;
End;
ThisUser := TempUser;
// ThisUser := TempUser;
End;
Session.SystemLog ('User: ' + ThisUser.Handle + ' logged in');

View File

@ -197,7 +197,8 @@
; &1 = base number &2 = base name &3 = scan base? (Yes or No)
093 |07|$R04|&1|15|$R03|&3 |07|$R29|&2
094 |CR|12There are no available message bases!
095 |09Selection |01[|10##|01]|09, |01[|10##|01-|10##|01,|10##|01]|09, |01[|10?|01/|10List|01]|09, or |01[|10Q|01]|09uit: |XX
; Message base new and qwk scan toggle prompt:
095 Toggle: |09[|11#-#,#|09], Select [|11A|09]ll, [|11D|09]eselect All, [|11?|09/|11List|09]: |XX
; For strings 096 - 099: &1 = message base name
096 |CR |11|&1 will NOT be scanned in QWK packets!|CR
097 |CR |11|&1 will be scanned in QWK packets!|CR

View File

@ -316,7 +316,9 @@ Begin
Console.SetWindow (1, 1, 80, 25, True);
FocusCurrent := FocusMax;
DrawStatusScreen;
SwitchFocus;
End;

View File

@ -10,7 +10,7 @@ Uses
SysUtils,
m_Strings,
m_FileIO,
m_Socket_Class,
m_io_Sockets,
m_DateTime,
MIS_Server,
MIS_NodeData,
@ -19,7 +19,7 @@ Uses
BBS_MsgBase_JAM,
BBS_MsgBase_Squish;
Function CreateHTTP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TSocketClass) : TServerClient;
Function CreateHTTP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TIOSocket) : TServerClient;
Type
THTTPServer = Class(TServerClient)
@ -30,7 +30,7 @@ Type
Cmd : String;
Data : String;
Constructor Create (Owner: TServerManager; CliSock: TSocketClass);
Constructor Create (Owner: TServerManager; CliSock: TIOSocket);
Procedure Execute; Override;
Destructor Destroy; Override;
@ -39,12 +39,12 @@ Type
Implementation
Function CreateHTTP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TSocketClass) : TServerClient;
Function CreateHTTP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TIOSocket) : TServerClient;
Begin
Result := THTTPServer.Create(Owner, CliSock);
End;
Constructor THTTPServer.Create (Owner: TServerManager; CliSock: TSocketClass);
Constructor THTTPServer.Create (Owner: TServerManager; CliSock: TIOSocket);
Begin
Inherited Create(Owner, CliSock);
@ -83,6 +83,7 @@ Begin
If Cmd = 'QUIT' Then Begin
GotQuit := True;
Break;
End Else
Client.WriteLine(re_UnknownCommand);

View File

@ -17,7 +17,6 @@ Function ToUnixDate (DosDate: LongInt): LongInt;
Function DTToUnixDate (DT: DateTime): LongInt;
Procedure UnixToDT (SecsPast: LongInt; Var Dt: DateTime);
Procedure Str2Az (Str: String; MaxLen: Byte; Var AZStr); {Convert string to asciiz}
Function FormattedDate (DT: DateTime; Mask: String): String;
Function LoadFilePos (FN: String; Var Rec; FS: Word; FPos: LongInt): Word;
Function ExtendFile (FN: String; ToSize: LongInt): Word;
Function SaveFilePos (FN: String; Var Rec; FS: Word; FPos: LongInt): Word;
@ -119,69 +118,6 @@ Begin
End;
End;
Function FormattedDate (DT: DateTime; Mask: String) : String;
Var
DStr : String[2];
MStr : String[2];
MNStr : String[3];
YStr : String[4];
HourStr : String[2];
MinStr : String[2];
SecStr : String[2];
TmpStr : String;
CurrPos : Word;
i : Word;
Begin
TmpStr := Mask;
Mask := strUpper(Mask);
DStr := Copy(strPadL(strI2S(Dt.Day), 2, '0'), 1, 2);
MStr := Copy(strPadL(strI2S(Dt.Month), 2, '0'), 1, 2);
YStr := Copy(strPadL(strI2S(Dt.Year), 4, '0'), 1, 4);
HourStr := Copy(strPadL(strI2S(Dt.Hour), 2, '0'), 1, 2);
MinStr := Copy(strPadL(strI2S(Dt.Min), 2, '0'), 1, 2);
SecStr := Copy(strPadL(strI2S(Dt.Sec), 2, '0'), 1, 2);
MNStr := MonthString[Dt.Month];
If (Pos('YYYY', Mask) = 0) Then YStr := Copy(YStr, 3, 2);
CurrPos := Pos('DD', Mask);
If CurrPos > 0 Then
For i := 1 to Length(DStr) Do
TmpStr[CurrPos + i - 1] := DStr[i];
CurrPos := Pos('YY', Mask);
If CurrPos > 0 Then
For i := 1 to Length(YStr) Do
TmpStr[CurrPos + i - 1] := YStr[i];
CurrPos := Pos('MM', Mask);
If CurrPos > 0 Then
For i := 1 to Length(MStr) Do
TmpStr[CurrPos + i - 1] := MStr[i];
CurrPos := Pos('HH', Mask);
If CurrPos > 0 Then
For i := 1 to Length(HourStr) Do
TmpStr[CurrPos + i - 1] := HourStr[i];
CurrPos := Pos('SS', Mask);
If CurrPos > 0 Then
For i := 1 to Length(SecStr) Do
TmpStr[CurrPos + i - 1] := SecStr[i];
CurrPos := Pos('II', Mask);
If CurrPos > 0 Then
For i := 1 to Length(MinStr) Do
TmpStr[CurrPos + i - 1] := MinStr[i];
CurrPos := Pos('NNN', Mask);
If CurrPos > 0 Then
For i := 1 to Length(MNStr) Do
TmpStr[CurrPos + i - 1] := MNStr[i];
FormattedDate := TmpStr;
End;
Function LoadFilePos(FN: String; Var Rec; FS: Word; FPos: LongInt): Word;
Var
F: File;

View File

@ -64,55 +64,63 @@ Procedure InitProcedures (O: Pointer; S: Pointer; Var CV: VarDataRec; Var X: Wor
Procedure AddProc ({$IFDEF MPLPARSER} I: String; {$ENDIF} P: String; T: TIdentTypes);
Begin
Inc(X);
New(CV[X]);
Inc (X);
New (CV[X]);
With CV[X]^ Do Begin
VarID := IW;
Inc(IW);
VarID := IW;
vType := T;
Move(P[1], Params, Ord(P[0]));
NumParams := Ord(p[0]);
ArrPos := 0;
Move (P[1], Params, Ord(P[0]));
NumParams := Ord(P[0]);
Inc(IW);
{$IFNDEF MPLPARSER}
VarSize := 0;
DataSize := 0;
Data := NIL;
ProcPos := 0;
Kill := True;
FillChar (pID, SizeOf(pID), 0);
{$ELSE}
Ident := I;
InProc := False;
Proc := True;
{$ENDIF}
ArrPos := 0;
End;
End;
Procedure AddStr ({$IFDEF MPLPARSER} I: String; {$ENDIF} T: TIdentTypes; SI: Word);
Begin
Inc(X);
New(CV[X]);
Inc (X);
New (CV[X]);
With cV[x]^ Do Begin
With CV[X]^ Do Begin
VarID := IW;
Inc(IW);
vType := T;
vType := T;
NumParams := 0;
ArrPos := 0;
Inc(IW);
{$IFNDEF MPLPARSER}
ProcPos := 0;
Kill := True;
VarSize := SI + 1;
DataSize := VarSize;
GetMem (Data, DataSize);
FillChar (Data^, DataSize, 0);
FillChar (pID, SizeOf(pID), 0); //cant we just assign it to 0 here?
ProcPos := 0;
Kill := True;
{$ELSE}
Ident := I;
InProc := False;
Proc := False;
Proc := False;
{$ENDIF}
ArrPos := 0;
End;
End;
@ -123,27 +131,31 @@ Procedure InitProcedures (O: Pointer; S: Pointer; Var CV: VarDataRec; Var X: Wor
Procedure AddPointer ({$IFDEF MPLPARSER} I: String; {$ENDIF} T: TIdentTypes; SI: Word; PD: Pointer);
Begin
Inc(x);
New(cV[x]);
Inc (X);
New (CV[X]);
With cV[x]^ Do Begin
With CV[X]^ Do Begin
VarID := IW;
Inc(IW);
vType := t;
vType := T;
NumParams := 0;
ArrPos := 0;
Inc (IW);
{$IFNDEF MPLPARSER}
If T = iString Then VarSize := SI + 1 Else VarSize := SI;
DataSize := VarSize;
Data := PD;
Data := PD;
ProcPos := 0;
Kill := False;
FillChar (pID, SizeOf(pID), 0);
ProcPos := 0;
Kill := False;
{$ELSE}
Ident := I;
InProc := False;
Proc := False;
Proc := False;
{$ENDIF}
ArrPos := 0;
End;
End;

View File

@ -33,6 +33,7 @@ Uses
Var
SavedX : Byte;
SavedY : Byte;
Console : TOutput;
WasError : Boolean;
@ -72,15 +73,17 @@ Begin
Else Begin
If Pos('-ALL', strUpper(ParamStr(1))) > 0 Then Begin
FindFirst ('*.mps', AnyFile - Directory - VolumeID, Dir);
While DosError = 0 Do Begin
Parser := TParserEngine.Create(Status);
If Not Parser.Compile(Dir.Name) Then Begin
Parser.Free;
Break;
End;
FindNext(Dir);
Parser.Compile(Dir.Name);
Parser.Free;
FindNext(Dir);
End;
FindClose(Dir);
End Else Begin
Parser := TParserEngine.Create(Status);

View File

@ -236,7 +236,7 @@ Var
MH.OrigNet := MsgBase^.GetOrigAddr.Net;
MH.DestNet := EchoNode.Address.Net;
TempStr1 := FormattedDate(DT, 'DD NNN YY HH:MM:SS') + #0;
TempStr1 := FormatDate(DT, 'DD NNN YY HH:II:SS') + #0;
Move (TempStr1[1], MH.DateTime[0], 20);
If MsgBase^.IsLocal Then MH.Attribute := MH.Attribute OR pktLocal;

View File

@ -159,7 +159,8 @@ Var
Excluded : Boolean;
SortMode : TSortMethod;
Begin
Result := True;
Result := True;
FileMode := 66;
Case ListType of
TopCall : ProcessStatus('Top Callers', False);
@ -206,6 +207,7 @@ Begin
If (strUpper(User.Handle) = Str) or (strUpper(User.RealName) = Str) Then Begin
Excluded := True;
Break;
End;
End;

View File

@ -33,6 +33,7 @@ Uses
Type
PhoneRec = Record
Position : LongInt;
Name : String[26];
Address : String[60];
User : String[30];
@ -164,6 +165,7 @@ Begin
Book[Count].StatusBar := INI.ReadString(strI2S(Count), 'statusbar', '1') = '1';
Book[Count].LastCall := INI.ReadString(strI2S(Count), 'last', '');
Book[Count].Calls := INI.ReadString(strI2S(Count), 'calls', '');
Book[Count].Position := Count;
End;
INI.Free;
@ -704,18 +706,60 @@ Begin
Screen.PutScreenImage(Image);
End;
Procedure TelnetClient (Dial: PhoneRec);
Procedure EditEntry (Var Book: PhoneBookRec; Num: SmallInt);
Var
Box : TMenuBox;
Form : TMenuForm;
NewRec : PhoneRec;
Begin
NewRec := Book[Num];
Box := TMenuBox.Create(TOutput(Screen));
Form := TMenuForm.Create(TOutput(Screen));
Procedure DrawStatus;
Box.HeadAttr := 1 + 7 * 16;
Box.Header := ' Book Editor ';
Box.Open (17, 8, 63, 16);
Form.HelpSize := 0;
Form.AddStr ('N', ' Name' , 24, 10, 32, 10, 6, 26, 26, @NewRec.Name, '');
Form.AddStr ('A', ' Address', 21, 11, 32, 11, 9, 30, 60, @NewRec.Address, '');
Form.AddStr ('U', ' User Name', 19, 12, 32, 12, 11, 30, 30, @NewRec.User, '');
Form.AddPass ('P', ' Password', 20, 13, 32, 13, 10, 20, 20, @NewRec.Password, '');
Form.AddBol ('S', ' StatusBar', 19, 14, 32, 14, 11, 3, @NewRec.StatusBar, '');
Form.Execute;
If Form.Changed Then
If ShowMsgBox(1, 'Save changes?') Then Begin
Book[Num] := NewRec;
WriteBook(Book);
End;
Form.Free;
Box.Close;
Box.Free;
End;
Procedure TelnetClient (Var Book: PhoneBookRec; Dial: PhoneRec);
Procedure DrawStatus (Toggle: Boolean);
Begin
If Dial.StatusBar Then Begin
Screen.SetWindow (1, 1, 80, 24, False);
Screen.WriteXY (1, 25, Config.StatusColor3, strPadC('ALT/B-Scrollback ALT/L-Send Login ALT/T-Zmodem ALT-H/Hangup ALT-X/Quit', 80, ' '));
Screen.WriteXY (1, 25, Config.StatusColor3, strPadC('ALT/B-Scrollback ALT/L-Send Login ALT/T-Zmodem ALT-E/Edit ALT-X/Quit', 80, ' '));
End Else
If Toggle Then Begin
Screen.SetWindow (1, 1, 80, 25, False);
Screen.WriteXY (1, 25, 7, strRep(' ', 79));
End;
End;
Const
BufferSize = 1024 * 4;
Var
Client : TIOSocket;
Res : LongInt;
@ -733,13 +777,20 @@ Begin
If Not Client.Connect(StripAddressPort(Dial.Address), GetAddressPort(Dial.Address)) Then
ShowMsgBox (0, 'Unable to connect')
Else Begin
Book[Dial.Position].LastCall := DateDos2Str(CurDateDos, 1);
Book[Dial.Position].Calls := strI2S(strS2I(Dial.Calls) + 1);
WriteBook(Book);
Dial := Book[Dial.Position];
Screen.TextAttr := 7;
Screen.ClearScreen;
Done := False;
Term := TTermAnsi.Create(TOutput(Screen));
DrawStatus;
DrawStatus(False);
Term.SetReplyClient(TIOBase(Client));
@ -748,8 +799,6 @@ Begin
Res := Client.ReadBuf (Buffer, BufferSize);
If Res < 0 Then Begin
ShowMsgBox (0, 'Connection terminated');
Done := True;
Break;
@ -785,13 +834,23 @@ Begin
Case Ch of
#00 : Case Keyboard.ReadKey of
#18 : Begin
EditEntry(Book, Dial.Position);
If Dial.StatusBar <> Book[Dial.Position].StatusBar Then Begin
Dial := Book[Dial.Position];
DrawStatus (True);
End Else
Dial := Book[Dial.Position];
End;
#20 : Begin
Case GetTransferType of
1 : DoZmodemDownload(TIOBase(Client));
2 : DoZmodemUpload(TIOBase(Client));
End;
DrawStatus;
DrawStatus(False);
End;
#35 : Done := True;
#38 : Begin
@ -801,7 +860,7 @@ Begin
#45 : Break;
#48 : Begin
ActivateScrollBack;
DrawStatus;
DrawStatus(False);
End;
#71 : Client.WriteStr(#27 + '[H');
#72 : Client.WriteStr(#27 + '[A');
@ -827,48 +886,12 @@ Begin
Client.Free;
ShowMsgBox (0, 'Connection terminated');
Screen.TextAttr := 7;
Screen.SetWindow (1, 1, 80, 25, True);
End;
Procedure EditEntry (Var Book: PhoneBookRec; Num: SmallInt);
Var
Box : TMenuBox;
Form : TMenuForm;
NewRec : PhoneRec;
Begin
NewRec := Book[Num];
Box := TMenuBox.Create(TOutput(Screen));
Form := TMenuForm.Create(TOutput(Screen));
Box.HeadAttr := 1 + 7 * 16;
Box.Header := ' Book Editor ';
Box.Open (17, 8, 63, 16);
Form.HelpSize := 0;
Form.AddStr ('N', ' Name' , 24, 10, 32, 10, 6, 26, 26, @NewRec.Name, '');
Form.AddStr ('A', ' Address', 21, 11, 32, 11, 9, 30, 60, @NewRec.Address, '');
Form.AddStr ('U', ' User Name', 19, 12, 32, 12, 11, 30, 30, @NewRec.User, '');
Form.AddPass ('P', ' Password', 20, 13, 32, 13, 10, 20, 20, @NewRec.Password, '');
Form.AddBol ('S', ' StatusBar', 19, 14, 32, 14, 11, 3, @NewRec.StatusBar, '');
Form.Execute;
If Form.Changed Then
If ShowMsgBox(1, 'Save changes?') Then Begin
Book[Num] := NewRec;
WriteBook(Book);
End;
Form.Free;
Box.Close;
Box.Free;
End;
Procedure SearchEntry (Var Owner: Pointer; Str: String);
Begin
If Str = '' Then
@ -943,13 +966,6 @@ Begin
#13 : If Book[List.Picked].Address = '' Then
ShowMsgBox(0, 'Address is empty')
Else Begin
With Book[List.Picked] Do Begin
LastCall := DateDos2Str(CurDateDos, 1);
Calls := strI2S(strS2I(Calls) + 1);
End;
WriteBook(Book);
Dial := Book[List.Picked];
Result := True;
@ -1005,7 +1021,7 @@ Begin
Repeat
If Not GetTerminalEntry(Book, Dial) Then Break;
TelnetClient(Dial);
TelnetClient(Book, Dial);
Until False;
End;

View File

@ -3440,4 +3440,25 @@
+ If the download directory doesn't exist when NodeSpy attempts a Zmodem
download, it will now tell you instead of crashing.
+ NodeSpy Terminal now allows the current connected phone book entry to be
edited while connected. This allows the password to be set, statusbar to
be turned on/off, etc.
+ NodeSpy Terminal now only updates the last call date and times called if
the connection was successful.
+ NodeSpy terminal now fully disconnects the session before displaying the
"connection terminated" box.
+ MPLC will now continue to attempt to compile subsequent MPL programs even
if one compilation fails.
+ Message Base QWK scan and regular scan settings now have the ability to
toggle ALL bases on or off at one time. An updated prompt goes along with
this:
; Message base new and qwk scan toggle prompt:
095 Toggle: |09[|11#-#,#|09], Select [|11A|09]ll, [|11D|09]eselect All, [|11?|09/|11List|09]: |XX
<ALPHA 35 RELEASED>