home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-02-26 | 127.3 KB | 3,845 lines |
-
-
- ┌──────────────────────────────────────────────┐
- │ MOTOR CITY SOFTWARE │
- │ ┌──────────────────────────────────────┐ │
- │ │ JPDoor - Version 3.2 SE │ │
- │ │ Copyright 1990 - 1992 │ │
- │ │ ┌──────────┐ │ │
- │ │ │\ │ │ │
- │ │ │ \ │ │ │
- │ │ │ \ P │ │ │
- │ │ │ \ A │ │ │
- │ │ │ │ S │ │ │
- │ │ │ │ C │ │ │
- │ │ 5.5 │ │ A │ 6.0 │ │
- │ │ │ o│ L │ │ │
- │ │ │ │ │ │ │
- │ │ \ │──────┘ │ │
- │ │ \ │ │ │
- │ └──────────────\ │─────────────────────┘ │
- │ The Ultimate \│ Door Writing Unit. │
- └────────────────────┴─────────────────────────┘
-
-
-
- JPDoor - Version 3.2 SE
- Copyright 1990,1991,1992 by Motor City Software
- All Rights Reserved
-
-
-
-
-
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * *
- * R E F E R E N C E S E C T I O N *
- * *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-
-
- P R I N T T H I S S E C T I O N A N D U S E I T F O R
-
-
-
- Q U I C K R E F E R E N C E
-
- * * * * * * * * * * * * * * *
-
-
-
-
-
-
-
-
-
-
-
-
-
- REFERENCE:
- ----------
-
-
- Unit Constants
- --------------
-
- JPDoor has some pre-defined constants which cannot be changed, but
- can be used by your program.
-
-
- MaxPort = 4; { Max Com Ports Supported }
-
- JPDVersion = '3.2'; { JPDoor Version }
-
- Compiled = 'Compiled on <Date>'; { Date JPDoor was compiled }
-
- Beta = False; { True in Beta versions }
-
- ANSIcls = #27 + '[40m' + #27 + '[2J'; { Ansi Codes to clear screen }
-
- MaxKeys = 20; { Max User keys supported }
-
- LockMde = 64+2; { File Locking opens files as}
- { Shared/Read/Write }
-
- SoftCr = #141; { Use this in messages for CR}
-
- Cr = #13; { Carriage Return }
-
-
- The Following are Used in PostMsg attributes
-
- Msg_Delete = 1; { (Attr AND 1) = 1 msg deleted }
-
- Msg_Out_Net = 2; { (Attr AND 2) = 2 netmail to be scanned out}
-
- Msg_Net = 4; { (Attr AND 4) = 4 Netmail Message }
-
- Msg_Private = 8; { (Attr AND 8) = 8 Private Message }
-
- Msg_Received = 16; { (Attr AND 16) = 16 Message Received }
-
- Msg_Out_Echo = 32; { (Attr AND 32) = 32 Echomail to be scanned out }
-
- Msg_Local = 64; { (Attr AND 64) = 64 ALWAYS SET msg entered locally }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 2 ]
-
- Unit Types
- ----------
-
- The following Types are already defined in JPDoor, and are available
- for your own use:
-
- PathStr = String[79];
- StatStr = String[78];
- TextString = String;
- Str18 = String[18];
- Str15 = String[15];
- Str8 = String[8];
- Str5 = String[5];
- Str2 = String[2];
- Str1 = String[1];
- NameStr = String[30];
- CharSet = Set of Char;
- FlagSet = (A0,A1,A2,A3,A4,A5,A6,A7,A8,
- B1,B2,B3,B4,B5,B6,B7,B8,
- C1,C2,C3,C4,C5,C6,C7,C8,
- D1,D2,D3,D4,D5,D6,D7,D8);
- On_Off = (Null,On,Off);
- Killer = (Kill,NoKill);
- CardSuit = (C,D,H,S);
- JPUseData = Array[1..2048] of Byte;
- JPUseRecord = Record
- Name : String[35];
- Line : Byte;
- DoorName : String[20];
- Status : Byte;
- MaxPlayers : Byte;
- Filler : Array[1..13] of Byte;
- MultiNode : Boolean;
- PID : Integer;
- Data : JPUseData;
- End;
-
- AskType = (Yes, No, Ask, Only);
-
- VideoType = (Auto, Short, Long);
-
- MsgKindsType = (Both, Private, Public, ROnly);
-
- MsgTxt = Record
- Line : String[255];
- End;
-
- MsgToIdx = Record;
- User : String[35];
- End;
-
- MsgType = (LocalMail, NetMail, EchoMail);
- OrphanType = (Ignore, Create, RA_Kill);
- FlagType = array[1..4] of Byte;
- RA_Time = String[5];
- RA_Date = String[8];
- LongDate = String[9];
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 3 ]
-
- Unit Types (Continued)
- ----------------------
-
- NetAddress = record
- Zone,
- Net,
- Node,
- Point : Word;
- end;
-
- LANGUAGErecord = record
- Name : String[20];
- Attribute : Byte;
- DefName,
- MenuPath,
- TextPath,
- QuesPath : String[60];
- FreeSpace : Array[1..200] of Byte;
- end;
-
- MSGINFOrecord = record
- LowMsg,
- HighMsg,
- TotalMsgs : Word;
- TotalOnBoard : array[1..200] of Word;
- end;
-
- MSGIDXrecord = record
- MsgNum : Integer;
- Board : Byte;
- end;
-
- MSGTOIDXrecord = String[35];
-
- MSGHDRrecord = record
- MsgNum : Integer;
- PrevReply,
- NextReply,
- TimesRead : Word;
- StartBlock : Word;
- NumBlocks,
- DestNet,
- DestNode,
- OrigNet,
- OrigNode : Word;
- DestZone,
- OrigZone : Byte;
- Cost : Word;
- MsgAttr,
- NetAttr,
- Board : Byte;
- PostTime : RA_Time;
- PostDate : RA_Date;
- WhoTo,
- WhoFrom : MSGTOIDXrecord;
- Subject : String[72];
- end;
-
- MSGTXTrecord = String[255];
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 4 ]
-
- Unit Types (Continued)
- ----------------------
-
- { RemoteAccess V1.1x Useron.Bbs }
- USERON110record = record
- Name : MSGTOIDXrecord;
- Handle : MSGTOIDXrecord;
- Line : Byte;
- Baud : Word;
- City : String[25];
- DoNotDisturb : Boolean;
- Status : Byte;
- Attribute : Byte;
- end;
-
-
- { RemoteAccess 1.00 Useron.Bbs }
- USERONrecord = record
- Name : MSGTOIDXrecord;
- Line : Byte;
- Baud : Word;
- City : String[25];
- DoNotDisturb : Boolean;
- Status : Byte;
- end;
-
- { RemoteAccess Status byte - 0 : Browsing (in a menu)
- 1 : Uploading/downloading
- 2 : Reading/posting messages
- 3 : In a door/external utility
- 4 : Chatting with sysop
- 5 : Answering questionnaire }
-
-
- { QBBS 2.75 UserOn.BBS }
- Q_USERONrecord= Record
- Name : String[35];
- Line : Byte;
- Baud : Word;
- City : String[25];
- DoNotDisturb : Boolean;
- End;
-
-
- { RemoteAccess V1.10 Lastcall.Bbs }
- LASTCALL110record = record
- Line : Byte;
- Name : MSGTOIDXrecord;
- Handle : MSGTOIDXrecord;
- City : String[25];
- Baud : Word;
- Times : LongInt;
- LogOn : String[5];
- LogOff : String[5];
- Attribute : Byte; { Byte 0 : Hidden }
- end;
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 5 ]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess V1.00 / QBBS Lastcall.Bbs
-
- LASTCALLrecord = record
- Line : Byte;
- Name : MSGTOIDXrecord;
- City : String[25];
- Baud : Word;
- Times : LongInt;
- LogOn : String[5];
- LogOff : String[5];
- end;
-
-
- LASTREADrecord = array[1..200] of Word;
-
-
- COMBINEDrecord = array[1..25] of Byte;
-
-
- USERSIDXrecord = record
- NameCRC32,
- HandleCRC32 : Longint;
- End;
-
-
- USERSXIrecord = record
- Handle : String[35];
- Comment : String[80];
- FirstDate : RA_Date;
- CombinedInfo : Array[1..25] of byte;
- BirthDate : RA_Date;
- SubDate : RA_Date;
- ScreenWidth : Byte;
- MsgArea : Byte;
- FileArea : Byte;
- Language : Byte;
- DateFormat : Byte;
- ForwardTo : String[35];
- Extra : Array[1..43] of byte;
- End;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 6 ]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess/QBBS USERS.BBS File Structure
-
- USERSRecord = record
- Name : string[35];
- Location : string[25];
- Password : string[15];
- DataPhone,
- VoicePhone : string[12];
- LastTime : string[5];
- LastDate : RA_Date;
- Attribute : byte;
- { Bit 0 : Deleted
- 1 : Clear screen
- 2 : More prompt
- 3 : ANSI
- 4 : No-kill
- 5 : Xfer priority
- 6 : Full screen msg editor
- 7 : Quiet mode }
- Flags : FlagType;
- Credit,
- Pending,
- MsgsPosted,
- LastRead,
- Security,
- NoCalls,
- Uploads,
- Downloads,
- UploadsK,
- DownLoadsK : word;
- TodayK,
- Elapsed : integer;
- ScreenLength : word;
- LastPwdChange : byte;
- Attribute2 : byte;
- { Bit 0 : Hot-keys
- 1 : AVT/0
- 2 : Full screen message viewer
- 3 : Hidden from userlist }
- Group : byte;
- XIRecord : word;
- Extra : array[1..3] of byte;
- end;
-
- SYSINFOrecord = record
- CallCount : LongInt;
- LastCaller : MSGTOIDXrecord;
- ExtraSpace : array[1..128] of Byte;
- end;
-
- TIMELOGrecord = record
- StartDate : RA_Date;
- BusyPerHour : array[0..23] of Word;
- BusyPerDay : array[0..6] of Word;
- end;
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 7 ]
-
- Unit Types (Continued)
- ----------------------
-
- MNUrecord = record
- Typ : Byte;
- Security : Word;
- Flags : FlagType;
- Display : String[75];
- HotKey : Char;
- MiscData : String[80];
- Foreground,
- Background : Byte;
- end;
-
-
- EVENTrecord = record
- Status : Byte; { 0=Deleted 1=Enabled 2=Disabled }
- RunTime : RA_Time;
- ErrorLevel : Byte;
- Days : Byte;
- Forced : Boolean;
- LastTimeRun : RA_Date;
- end;
-
- EVENTrecordArray = array[1..20] of EVENTrecord;
-
-
- MESSAGErecord = record
- Name : String[40];
- Typ : MsgType;
- MsgKinds : MsgKindsType;
- Attribute : Byte;
- { Bit 0 : Enable EchoInfo
- 1 : Combined access
- 2 : File attaches
- 3 : Allow aliases
- 5 : Force handle
- 6 : Allow Deletes }
- DaysKill, { Kill older than 'x' days }
- RecvKill : Byte; { Kill recv msgs, recv for more than 'x' days }
- CountKill : Word;
- ReadSecurity : Word;
- ReadFlags : FlagType;
- WriteSecurity : Word;
- WriteFlags : FlagType;
- SysopSecurity : Word;
- SysopFlags : FlagType;
- OriginLine : String[60];
- AkaAddress : Byte;
- end;
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 8 ]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess V1.1x FILES.RA File Structure
-
- FILESrecord = record
- Name : String[30];
- Attrib : Byte;
-
- { Bit 0 : Include in new files scan
- 1 : Include in upload dupe scan
- 2 : Permit long descriptions }
-
- FilePath : String[40];
- FreeSpace : Array[1..35] of Byte;
- UploadSecurity : Word;
- UploadFlagsFlags:FlagType;
- Security : Word;
- Flags : FlagType;
- ListSecurity : Word;
- ListFlags : FlagType;
- end;
-
-
- RemoteAccess V1.1x CONFIG.RA File Structure
-
- CONFIG110record = Record
- VersionID : Word;
- CommPort : Byte;
- Baud : LongInt;
- InitTries : Byte;
- InitStr,
- BusyStr : String[70];
- InitResp,
- BusyResp,
- Connect300,
- Connect1200,
- Connect2400,
- Connect4800,
- Connect9600,
- Connect19k,
- Connect38k : String[40];
- AnswerPhone : Boolean;
- Ring,
- AnswerStr : String[20];
- FlushBuffer : Boolean;
- ModemDelay : Integer;
- MinimumBaud,
- GraphicsBaud,
- TransferBaud : Integer;
- SlowBaudTimeStart,
- SlowBaudTimeEnd,
- DownloadTimeStart,
- DownloadTimeEnd,
- PageStart,
- PageEnd : Array[0..6] of RA_Time;
- FreeSpace1 : Array[1..70] of Byte;
-
- Continued Next Page...
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 9 ]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess V1.1x CONFIG.RA File Structure Continued
-
- PwdExpiry : Word;
- MenuPath,
- TextPath,
- AttachPath,
- NodelistPath,
- MsgBasePath,
- SysPath,
- ExternalEdCmd : String[60];
- Address : Array[0..9] of NetAddress;
- SystemName : String[30];
- NewSecurity : Word;
- NewCredit : Word;
- NewFlags : FlagType;
- OriginLine : String[60];
- QuoteString : String[15];
- Sysop : String[35];
- LogFileName : String[60];
- FastLogon,
- AllowSysRem,
- MonoMode,
- StrictPwdChecking,
- DirectWrite,
- SnowCheck : Boolean;
- CreditFactor : Integer;
- UserTimeOut,
- LogonTime,
- PasswordTries,
- MaxPage,
- PageLength : Word;
- CheckForMultiLogon,
- ExcludeSysopFromList,
- OneWordNames : Boolean;
- CheckMail : AskType;
- AskVoicePhone,
- AskDataPhone,
- DoFullMailCheck,
- AllowFileShells,
- FixUploadDates,
- FreezeChat : Boolean;
- ANSI, { ANSI: Yes, no, or ask new users }
- ClearScreen, { Clear: " }
- MorePrompt : AskType; { More: " }
- UploadMsgs : Boolean;
- KillSent : AskType; { Kill/Sent " }
- CrashAskSec : Word; { Min sec# to ask 'Crash Mail ?' }
- CrashAskFlags : FlagType;
- CrashSec : Word; { Min sec# to always send crash mail. }
- CrashFlags : FlagType;
- FAttachSec : Word; { " ask 'File Attach ?' }
- FAttachFlags : FlagType;
-
- Continued Next Page...
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 10]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess V1.1x CONFIG.RA File Structure Continued
-
- NormFore,
- NormBack,
- StatFore,
- StatBack,
- HiBack,
- HiFore,
- WindFore,
- WindBack,
- ExitLocal,
- Exit300,
- Exit1200,
- Exit2400,
- Exit4800,
- Exit9600,
- Exit19k,
- Exit38k : Byte;
- MultiLine : Boolean;
- MinPwdLen : Byte;
- MinUpSpace : Word;
- HotKeys : AskType;
- BorderFore,
- BorderBack,
- BarFore,
- BarBack,
- LogStyle,
- MultiTasker,
- PwdBoard : Byte;
- BufferSize : Word;
- FKeys : Array[1..10] of String[60];
- WhyPage : Boolean;
- LeaveMsg : Byte;
- ShowMissingFiles : Boolean;
- FreeSpace2 : Array[1..11] of Byte;
- AllowNetmailReplies : Boolean;
- LogonPrompt : String[40];
- CheckNewFiles : AskType;
- ReplyHeader : String[60];
- BlankSecs : byte;
- ProtocolAttrib : Array[1..6] of Byte;
- ErrorFreeString : String[15];
- DefaultCombined : COMBINEDrecord;
- RenumThreshold : Word;
- LeftBracket,
- RightBracket : Char;
- AskForHandle : Boolean;
- AskForBirthDate : Boolean;
- GroupMailSec : Word;
- ConfirmMsgDeletes : Boolean;
- FreeSpace3 : Array[1..163] of Byte;
-
- Continued Next Page...
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 11]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess V1.1x CONFIG.RA File Structure Continued
-
- NewUserGroup : Byte;
- AVATAR : AskType;
- BadPwdArea : Byte;
- Location : String[40];
- DoAfterAction : Byte; {0 = wait for CR, > 0 = wait for x seconds}
- FileLine : String[40];
- CRfore,
- CRback : Byte;
- LangHdr : String[40];
- SendBreak : Boolean;
- ListPath : String[60];
- FullMsgView : AskType;
- EMSI_Enable,
- EMSI_NewUser : Boolean;
- EchoChar : String[1];
- Connect7200,
- Connect12000,
- Connect14400 : String[40];
- Exit7200,
- Exit12000,
- Exit14400 : Byte;
- ChatCommand : String[60];
- ExtEd : AskType;
- NewuserLanguage : Byte;
- LanguagePrompt : String[40];
- VideoMode : VideoType;
- AutoDetectANSI : Boolean;
- OffHook : Boolean;
- NewUserDateFormat : Byte;
- KeyboardPwd : String[15];
- CapLocation : Boolean;
- NewuserSub : Byte;
- PrinterName : String[4];
- HilitePromptFore,
- HiLitePromptBack : Byte;
- InitStr2 : String[70];
- AltJSwap : Boolean;
- SemPath : String[60];
- AutoChatCapture : Boolean;
- FutureExpansion : Array[1..97] of Byte;
- end;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 12]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess V1.10 EXITINFO.BBS File Structure
-
- ExitRec = record
- Baud : Word;
- SysInfo : SYSINFOrecord;
- TimeLogInfo : TIMELOGrecord;
- UserInfo : USERSrecord;
- EventInfo : EVENTrecord;
- NetMailEntered,
- EchoMailEntered : Boolean;
- LoginTime : RA_Time;
- LoginDate : RA_Date;
- TimeLimit : Word;
- LoginSec,
- Credit : LongInt;
- UserRecord : Integer;
- ReadThru,
- NumberPages,
- DownloadLimit : Word;
- TimeOfCreation : RA_Time;
- LogonPassword : String[15];
- WantChat : Boolean;
- DeductedTime : Integer;
- MenuStack : Array[1..50] of String[8];
- MenuStackPointer : Byte;
- UserXIinfo : USERSXIrecord;
- ErrorFreeConnect,
- SysopNext : Boolean;
- EMSI_Session : Boolean; { These fields hold }
- EMSI_Crtdef, { data related to an }
- EMSI_Protocols, { EMSI session }
- EMSI_Capabilities,
- EMSI_Requests,
- EMSI_Software : String[40];
- Hold_Attr1,
- Hold_Attr2,
- Hold_Len : Byte;
- ExtraSpace : Array[1..100] of Byte;
- end;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 13]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess PROTOCAL.RA File Structure
-
- PROTOCOLrecord = record
- Name : String[15];
- ActiveKey : Char;
- OpusTypeCtlFile,
- BatchAvailable : Boolean;
- Attribute : Byte; { 0=Disabled, 1=Enabled }
- LogFileName,
- CtlFileName,
- DnCmdString,
- DnCtlString,
- UpCmdString,
- UpCtlString : String[80];
- UpLogKeyword,
- DnLogKeyword : String[20];
- XferDescWordNum,
- XferNameWordNum : Byte;
- end;
-
-
- QBBS 2.75 USERS.BBS File Structure
-
- Q_UserRecord = record
- Name : String[35];
- City : String[25];
- Pwd : String[15];
- DataPhone,
- HomePhone : String[12];
- LastTime : String[5];
- LastDate : String[8];
- Attrib : Byte; -------------- Bit 0: Deleted
- Flags : FlagType; Bit 1: Screen Clear Codes
- Credit, Bit 2: More Prompt
- Pending, Bit 3: ANSI
- TimesPosted, Bit 4: No-Kill
- HighMsgRead, Bit 5: Ignore Download Hours
- SecLvl, Bit 6: ANSI Full Screen Editor
- Times, Bit 7: Sex (0=male, 1=female)
- Ups,
- Downs,
- UpK,
- DownK,
- TodayK : Word;
- Elapsed,
- Len : Integer;
- CombinedPtr : Word; (* Record number in COMBINED.BBS *)
- AliasPtr : Word; (* Record number in ALIAS.BBS *)
- Birthday : Longint;
- End;
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 14]
-
- Unit Types (Continued)
- ----------------------
-
-
- EventStat = (Deleted, Enabled, Disabled);
-
-
- Q_EventRecord = Record (* QBBS 2.75 EVENTCFG.DAT *)
- Status : Byte;
- RunTime : LongInt;
- ErrorLevel : Byte;
- Days : Byte;
- Forced : Boolean;
- LastTimeRun : LongInt;
- Spare : Array[1..7] of Byte;
- End;
-
- GosubDataType = array[1..20] of String[8];
-
-
- QBBS 2.75 Exitinfo.bbs File Structure
-
- Q_ExitRecord = Record
- BaudRate : Integer;
- SysInfo : SysInfoRecord;
- TimeLogInfo : TimeLogRecord;
- UserInfo : Q_UserRecord;
- EventInfo : Q_EventRecord;
- NetMailEntered : Boolean;
- EchoMailEntered : Boolean;
- LoginTime : String[5];
- LoginDate : String[8];
- TmLimit : Integer;
- LoginSec : LongInt;
- Credit : LongInt;
- UserRecNum : Integer;
- ReadThru : Integer;
- PageTimes : Integer;
- DownLimit : Integer;
- WantChat : Boolean;
- GosubLevel : Byte;
- GosubData : GosubDataType;
- Menu : String[8];
- End;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 15]
-
- Unit Types (Continued)
- ----------------------
-
- RemoteAccess V0.04 Exitinfo.bbs File Structure
-
- RA04_ExitRec = RECORD
- Baud : WORD ;
- SysInfo : SysInfoRecord ;
- TimeLogInfo : TimeLogRecord ;
- UserInfo : UsersRecord ;
- EventInfo : EventRecord ;
- NetMailEntered : BOOLEAN ;
- EchoMailEntered : BOOLEAN ;
- LoginTime : STRING[5] ;
- LoginDate : STRING[8] ;
- TimeLimit : WORD ;
- LoginSec : LONGINT ;
- Credit : LONGINT ;
- UserRecord : WORD ;
- ReadThru : WORD ;
- NumberPages : WORD ;
- DownLoadLimit : WORD ;
- TimeOfCreation : STRING[5] ;
- LogonPassword : STRING[15] ;
- WantChat : BOOLEAN ;
- End;
-
-
- QBBS 2.66 Exitinfo.BBS File Structure
-
- Q_Rec = RECORD
- BaudRate: INTEGER ;
- SysInfo: SysInfoRecord ;
- TimeLogInfo: TimeLogRecord ;
- UserInfo: UsersRecord ;
- EventInfo: EventRecord ;
- NetMailEntered: BOOLEAN ;
- EchoMailEntered: BOOLEAN ;
- LoginTime: STRING[5] ;
- LoginDate: STRING[8] ;
- TmLimit: INTEGER ;
- LoginSec: LONGINT ;
- Credit: LONGINT ;
- UserRecNum: INTEGER ;
- ReadThru: INTEGER ;
- PageTimes: INTEGER ;
- DownLimit: INTEGER ;
- WantChat: BOOLEAN ;
- GosubLevel: BYTE ;
- GosubData: GosubDataType ;
- Menu: STRING[8] ;
- End;
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 16]
-
- Unit Variables
- --------------
-
- JPDoor has some global unit variables which you can address in your
- program if necessary. These are usually initialized upon program startup
- when 'GetDorInfo' is called. Some variables will be initialized
- automatically when JPDoor is initialized.
-
- AFlag,
- BFlag,
- CFlag,
- DFlag STRING[8] These variables are initialized by the
- 'GetDorInfo' procedure. The current
- user's flag settings are read from
- EXITINFO.BBS and stored in these variables.
-
- ActiveCount BYTE Used internally in Input routines to time
- remote keyboard activity. This is set to
- InavtiveVal upon entry into any input
- routine, and decremented each minute, if
- it reaches 1, then a beep will sound on
- the remote terminal, and upon reaching
- zero, will terminate with a halt code 3.
-
- ANSI BYTE Set to 1 if user's ANSI setting is on,
- set to 0 if it is off. Initialized by
- the 'GetDorInfo' procedure. Can also be
- 5 if you use the SetGraphics function.
-
- BaudString STRING[35] This is the user's baud rate and com port
- settings. Initialized by the 'GetDorInfo'
- procedure.
-
- Buffers BOOLEAN Initially set to FALSE, this variable deter-
- mines whether or not output buffering is used.
- When JPDoor is initialized, the DOS environ-
- ment variable OUTBUFF is examined. If OUTBUFF
- is not set or is set to anything other than
- ON, Buffers is set to FALSE. Your program
- can override this setting by setting Buffers
- within your program. JPDoor has never util-
- ized output buffers prior to 2.6c. This was
- to speed the action of hot-keys, when used.
- However, on high speed systems running under
- a multitasker, JPDoor would slow considerably.
- Setting Buffers to TRUE speeds up output.
- Hot-keys still work with Buffers set to TRUE
- although they are a bit slower.
-
-
-
- C_Back BYTE This variable contains the currently selected
- background color. Valid attributes are as
- shown in the Display procedure. Initialized
- by the 'SetColor' procedure.
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 17]
-
- Unit Variables (Continued)
- --------------------------
-
- C_Blink BYTE This variable contains the currently selected
- blinking attribute. Valid attributes are 0
- and 1 (0 = off 1 = on). Initialized by the
- 'SetColor' procedure.
-
- C_Fore BYTE This variable contains the currently selected
- foreground color. Valid attributes are as
- shown in the Display procedure. Initialized
- by the 'SetColor' procedure.
-
- CheckActivity BOOLEAN If your program needs to spend time processing
- something, and you don't want the user keyboard
- timeout to throw him off, then set this to
- FALSE and it will not monitor for keyboard
- activity. Carrier watch will still be active.
- This is automatically set to TRUE on any input
- routines within JPDoor, and set False after
- the input has occured.
-
- CkMsgs BOOLEAN This Variable if set to TRUE the programs
- compiled with Jpdoor will automatically check
- for online message for the current node in
- use, and is used by CkMsg procedure.
-
- CkExitInfo BOOLEAN This Variable can be set to false, JPDoor
- will not look for an EXITINFO.BBS file. This
- is handy for Someone who is writting a door
- that only needs information only from
- DORINFOX.DEF. The default is TRUE.
-
- ClubChar CHAR This variable is initialized by JPDoor and
- contains an ascii #5 (The Club Character)
- This is used in the DrawCard routine.
- This variable is used because some terminal
- programs don't display the club character
- properly, so you may change it to another
- character such as a 'C'
-
-
- Counter INTEGER Used as a general counter. Can be used freely
- by the programmer.
-
-
- Date STRING[20] This variable is initialized by JPDoor and
- contains the date at which your program was
- started. This is used internally and can be
- referenced by your program.
-
- DoorExit PROCEDURE This is a Null Procedure called when exiting
- the door.
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 18]
-
- Unit Variables (Continued)
- --------------------------
-
- DoorSys BOOLEAN This variable which is initialized to FALSE.
- If set to TRUE will then only read the drop
- file Door.Sys. This supports both the
- RA 1.xx Door.Sys or PCBoard Door.Sys. This
- is read in by the GetDorinfo procedure.
-
- NOTE: RA 1.xx Door.Sys does not give much Information.
- The following variables are valid :
-
- UserName
- UserFirst
- UserLast
- PortNum
- BaudString
- TimeRemaining
- ANSI
-
- The following are not supplied by Door.Sys but have
- defaults set as listed :
-
- SystemName := 'BBS'
- SysopFirst := 'Sysop'
- SysopLast := ''
- SysopName := 'Sysop'
- UserCityState := 'Unknown'
- UserSecurity := 0
-
- The standard Door.Sys does NOT supply the following
- info, which defaults to the values listed above :
-
- SystemName
- SysopName
- SysopFirst
- SysopLast
-
- These variables can be changed if you wish AFTER
- calling the GetDorinfo procedure.
-
-
- DV BOOLEAN True if Desqview is detected, false if not.
- This is initialized upon program startup.
-
- ExitInfo ExitRec This holds the Exitinfo.bbs info if you are
- loading it.
-
- ExitInfoBBSName STRING Contains the full path and filename of the
- ExitInfo.Bbs file. Initialized by the
- GetDorInfo procedure.
-
- ExitInfoPath STRING Defaults to '' until 'GetDorInfo' is called.
- This is the path to EXITINFO.BBS. When
- 'GetDorInfo' is called, the path to
- EXITINFO.BBS is passed to it by your program.
- From this point on, your routines may
- reference this variable if EXITINFO.BBS needs
- to be addressed later on in your program.
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 19]
-
- Unit Variables (Continued)
- --------------------------
- ExtendedChars BOOLEAN Defaults to FALSE when JPDoor is initialized.
- If set to TRUE by your program, JPDoor's
- line input routines (GetInput and GetLine)
- will allow entry of extended characters (i.e.
- control characters, ASCII characters 128 -
- 255, etc.). If your program does not
- require extended character input, you should
- leave this set to false. It acts as a guard
- against entry of extended characters in the
- event of telephone line noise.
-
- ForceNode BOOLEAN If set to True, then JPDoor will read a
- Dorinfo1.def file rather than look for
- a dorinfo2.def if you pass a 2 as the
- NODE to GetDorinfo Default is TRUE.
- If you wish to read a dorinfo2.def then
- ForceNode MUST be set to false.
-
- FossilHot BOOLEAN If this variable is set to TRUE, the Fossil
- will not be de-initialized when your program
- exits.
-
- FossilInstalled BOOLEAN True if the Fossil was detected with the
- InitFossil procedure. False if not.
-
- FuncKey BOOLEAN Returns True if the last key pressed was
- an extended character in Charin, GetChar,
- GetInput, or an Extended Character Hot-Key
- was pressed.
-
- Hdr MsgHdrRecord This variable is of type MsgHdrRecord defined
- above, and is used in the PostMsg function.
-
- HotKey CHAR If you do not tell JPDoor to Kill the hotkey
- then this will contain the hotkey character
- which was pressed.
-
- HotKeyOn BOOLEAN Initially set to FALSE upon program startup.
- This variable is used internally by the
- unit and is set using the SetHotKeys_On and
- SetHotKeys_OFF procedures. It may be used
- during program execution (see section on
- Hot-Keys) .
-
- HotKeyPressed BOOLEAN Initially set to FALSE upon program startup.
- If Hot-Keys are turned on and a valid Hot-Key
- is pressed, this variable will be set to
- TRUE. It may be used during program
- execution (see section on Hot-Keys).
-
- Hr,Mn,Dum WORD Used internally by JPDoor for Time functions
- and procedures.
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 20]
-
- Unit Variables (Continued)
- --------------------------
-
- InactiveVal BYTE This is the amount of time allowed before
- the program is terminated due to remote user
- inactivity. This value has an initial default
- value of 5. If you change it, be sure to
- change it to any value greater than 1 as
- JPDoor sends a beep to the remote user one
- minute prior to the expiration of this
- value (the beep is not sent to the local
- console).
-
- InUseFile String[45]; This variable is used in the GameInUse
- function. If InUseFile is NOT '' then you
- call GameInUse which checks for the file
- InUseFile. If InUseFile exists, it tells the
- user that the game is in use and GameInUse
- returns TRUE. If the file does not exist, it
- creates it, and GameInUse returns FALSE.
- NOTE: it will NOT terminate you program.
-
- If InUseFile = '' then GameInUse returns
- False. Make sure this gets called only once,
- as it will return TRUE the second time!
-
-
- JP_Debug BOOLEAN Defaults to False. If you set this to true
- then JPDoor will create a log file in the
- current directory called 'JP_Debug.Log'
- which will log all activity as it tries to
- read the dropfiles etc for your door.
- This is very handy in determining problems
- with sysops setting up your door. The user
- of your software may turn this logging on
- by setting an environment variable as
- follows : SET JP_DEBUG=ON
- He/She would do this in the batch file
- which loads your door. Make sure you tell
- them to turn it off afterwards :
- SET JP_DEBUG=
-
- JPUSE JPUSERecord Used to update the JPDoor.Use file with
- information about the current user.
- (See section on MultiNode communications)
-
- JPUSEOther JPUSERecord Used to read the JPDoor.Use file for
- information about other users on the system.
- (See section on MultiNode communications)
-
- KillHotKey BOOLEAN Toggled True/False in the SetHotKeys_On
- procedure by passing either Kill or NoKill.
- See SetHotKeys_On procedure for example.
- If True, HotKeys are killed when they are
- detected and you will not know which key was
- pressed. If you wish to know which key was
- hit, then you will need to turn hotkeys on
- with NoKill.
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 21]
-
- Unit Variables (Continued)
- --------------------------
-
- LastChecked INTEGER Last time that JPDoor checked for a carrier.
- This is Minutes since midnight.
-
- Local BOOLEAN Set to TRUE if user is logged on locally.
- Otherwise, set to false. Initialized by the
- 'GetDorInfo' procedure.
-
- LocalKey BOOLEAN Returns TRUE if a key is pressed at the local
- console during a call to GetChar, GetInput,
- or GetLine. This is used within the unit but
- may be referenced by your program.
-
- MsgBuff ARRAY[0..100] This is the array which will hold the lines
- of STRING[80] of text in the PostMsg function.
- MsgBuff[0] is reserved and used internally.
-
- MsgToMe STRING[45] This variable holds the name of an online
- message to this node ( IE: 'D:\RA\NODE01.RA').
-
- MsgWaiting BOOLEAN This boolean variable maybe referrenced
- within your program. If the value is TRUE,
- an online message is waiting for the current
- node is use. Messages are checked once every
- 60 seconds and when the status line is drawn.
- You can check any time using the CkMsg
- procedure.
-
- MultiNode BOOLEAN Defaults to False. If left at False, then
- none of the multinode functions and pro-
- cedures will work. They will simply Exit
- without doing anything. If you do NOT need
- to use multi-node functions in your door, do
- not set this to true. Setting this to true
- will force JPDoor to read the UserOn.BBS to
- detect which node the user is calling on, and
- this can cause problems when the file
- structures change (beyond our control) If
- this is left as False, then JPDoor will only
- attempt to read the Door.sys or DorinfoX.def
- file, and Exitinfo.bbs if CkExitInfo is True.
-
-
- Node String[2] Node defaults to '1'. Node is used to specify
- which line number is in use.
-
- Portnum BYTE Com port in use. If user is local then
- this variable is not used by the unit and
- need not be initialized. Otherwise, it
- should be initialized to 0,1,2 or 3. This
- unit supports COM1,COM2,COM3 and COM4
- configurations. A value of zero represents
- COM1. Initialized by the 'GetDorInfo'
- procedure. You should not initialize this
- variable manually.
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 22]
-
- Unit Variables (Continued)
- --------------------------
-
- PortStat ARRAY[0..MAXPORT] Contains the Status word of the com ports
- of WORD as returned from the last call to the fossil.
-
- ProductName STRING[20] Defaults to NIL when JPDoor is initialized.
- If this variable is not NIL, it will be
- displayed in the status bar if StatusLineOn
- is set to TRUE. This is a good place to put
- the name of your program or other information
- (i.e. [ALT-C=CHAT]).
-
-
- QBBS BOOLEAN In order to use any of the Multi-Node type
- functions and procedures, you must be running
- your door on either RA 1.xx or QBBS 2.75 or
- above. If you read the exitinfo.bbs then it
- will automatically determine which it is, and
- set either the RA100 or QBBS boolean to true;
- If your NOT reading Exitinfo but wish to use
- the multi-node functions and procedures, then
- you are responsible for setting one of these
- to True. Don't forget you also need to set
- MultiNode := True;
-
-
- RA004 BOOLEAN If JPDoor detects a RemoteAccess V0.04 or
- earlier Exitinfo (if you read it) then this
- will be set to True and MultiNode functions
- and procedures will not be allowed. They will
- simply exit.
-
-
- RA100 BOOLEAN In order to use any of the Multi-Node type
- functions and procedures, you must be running
- your door on either RA 1.xx or QBBS 2.75 or
- above. If you read the exitinfo.bbs then it
- will automatically determine which it is, and
- set either the RA100 or QBBS boolean to true;
- If your NOT reading Exitinfo but wish to use
- the multi-node functions and procedures, then
- you are responsible for setting one of these
- to True. Don't forget you also need to set
- MultiNode := True;
-
-
- RA110 BOOLEAN This is automatically detected and set to
- true if the system is running RA 1.1x in
- order to accomodate the different file
- structures. All you need to set is RA100
- as JPDoor will set RA110 if needed.
- (See RA100 above)
-
- Range CharSet Used Internally by JPDoor to hold a set
- of characters. May be used by the programmer.
- Eg. Range := ['A','B','C'];
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 23]
-
- Unit Variables (Continued)
- --------------------------
-
- Raxit BOOLEAN Defaults to FALSE. If true, then JPDoor will
- monitor the semaphore directory for a
- RAXITn.eee file which RemoteAccess uses to
- force a node to exit with a specific error-
- level. See ChkRAXIT procedure below.
-
-
- Scrap_Entry STRING Used by GetLine function. See reference to
- GetLine below.
-
- ScrLen BYTE Defaults to 24 when JPDoor is initialized.
- This is the user's screen length. When
- 'GetDorInfo' is called, the screen length
- of the current user is read from
- EXITINFO.BBS. If the user's screen length
- setting is not equal to 0, it will be
- assigned to ScrLen. Otherwise, 24 will
- remain the default.
-
- SemaphorePath STRING[45] With RemoteAccess 1.10 you may specify
- a semaphore directory. This is where all
- inter-node communication files are located,
- eg. NODE1.RA NODE2.RA etc... If you wish
- your program to send/receive online messages
- from other nodes, you will be required to
- put the path in this variable.
-
- ShowWindow BOOLEAN This boolean variable which defaults to
- TRUE. If set to FALSE will cause JPDoor's
- blow up window, which is normally shown for
- about 1 second at start up of a program
- execution, to be supressed.
-
- Snoop BOOLEAN Defaults to TRUE when JPDoor is
- initialized. If set to FALSE by your
- program, Snoop mode is turned OFF and no
- text will be displayed to the local
- console.
-
- SoFar STRING This is a temporary variable used by the
- GetInput and GetLine routines. If for some
- reason input should be interrupted (i.e. a
- SysopKey or UserKey is pressed) the text typed
- "so far" is contained in this variable and
- may be redisplayed, processed or ignored.
-
- StatLineA Array[1..10] These string variables can be used to change
- of StatStr; the contents of the sysop status bars.
-
- StatLineB Array[1..10] This variable as discribed in above statement
- of StatStr; can be used to change the contents of the
- second line of the sysop status bars.
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 24]
-
- Unit Variables (Continued)
- --------------------------
-
- StatusBar BYTE This is used to tell the ShowStatus procedure
- which status bar to display. Hitting the
- function keys will toggle this byte, but
- you may also give it a value, and then call
- ShowStatus if for some reason you need to
- control which bar is available. For instance
- you may wish to Ask the user for a reason to
- chat, put the reason in StatLineA[6] (Like
- RemoteAccess) and then display that status
- bar if there is no answer to the page.
-
-
- StatusLineOn BOOLEAN This is the current setting of the Status
- Bar. If set to TRUE, the last two lines of
- the local screen will contain a Status Bar
- with the current online user information.
- Initialized by JPDoor with a default setting
- of FALSE. To turn the Status Bar on, simply
- set this variable to TRUE.
-
- StoreMenu STRING[8] If the program is run on a QuickBBS 2.64
- system, JPDoor will automatically convert
- EXITINFO.BBS to RemoteAccess 0.03 format. In
- doing so, JPDoor, stores the name of the menu
- to return to in this variable. When your
- program exits and converts EXITINFO.BBS back
- to QuickBBS 2.64 format, the value of this
- variable will be restored in EXITINFO.BBS.
-
- SysopFirst STRING[35] This is the Sysop's first name as read from
- the DORINFO1.DEF file. Initialized by the
- 'GetDorInfo' procedure.
-
- SysopKey ARRAY [1..20] This variable stores valid Sysop (local)
- OF STRING[2] extended keys that may be read during a call
- to GetChar, GetLine or GetInput. See
- 'Getting Started With JPDoor' for more
- information.
-
- SysopKeysOn BOOLEAN Must be set to true if you wish to use the
- Extended key input and SysopKeys. Defaults
- to False.
-
- SysopLast STRING[35] This is the Sysop's last name as read from
- the DORINFO1.DEF file. Initialized by the
- 'GetDorInfo' procedure.
-
- SysopName STRING[35] This is the Sysop's name as read from the
- DORINFO1.DEF file. Initialized by the
- 'GetDorInfo' procedure and returned in
- mixed case.
-
- SystemName STRING Contains the name of the BBS as read from
- the DORINFO1.DEF file. Initialized by the
- 'GetDorInfo' procedure.
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 25]
-
- Unit Variables (Continued)
- --------------------------
-
- SysopProc ARRAY [1..20] This variable stores the list of Sysop far
- OF PROCEDURE call procedures as defined by the programmer.
- See 'Getting Started With JPDoor' for more
- information.
-
- ThisNode STRING[2] Defaults to 01 This is used in the status
- bar display to show which Line : the user
- is calling on. It is up to you to put a
- different value in here for each node. I
- recommend getting it on the command line,
- or from a config file.
-
- Time STRING[10] This variable is initialized by JPDoor and
- contains the time at which your program was
- started. This is used internally and can be
- referenced by your program.
-
-
- TimeRemaining INTEGER This is the user's time remaining in
- minutes. Once initialized, JPDoor's I/O
- functions will keep track of this variable
- and decrement it as needed. If this variable
- reaches a value less than 1, a halt code of 2
- will be returned. You should use the
- TrapExit.Pas program to handle this program
- halt accordingly. Initialized by the
- 'GetDorInfo' procedure.
-
- TxtIOBuffer ARRAY[1..4096] This is a buffer set up for use with JPDoor
- of CHAR internal Text File reading. You are free to
- use this buffer for your own Text File I/O
- If your interested, read up on the SetTextBuf
- procedure in your TurboPascal reference
- manual.
-
- UseHandle BOOLEAN Show User HANDLES rather than real names
- in the UserOnNode and Whoson procedures.
- Defaults to False.
-
- UseLock BOOLEAN If share is loaded and detected on the
- system, then UseLock will be set to true
- and record locking will be enabled. If
- share is not loaded, then UseLock will
- be set to false and the record locking
- functions will simply exit without attempting
- to lock records.
-
- UserCityState STRING This is the user's city and state as read
- from the DORINFO1.DEF file and as defined
- in the user's record in USERS.BBS.
- Initialized by the 'GetDorInfo' procedure.
-
- UserFirst STRING[35] This is the user's first name as read from
- the DORINFO1.DEF file. Initialized by the
- 'GetDorInfo' procedure.
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 26]
-
- Unit Variables (Continued)
- --------------------------
-
- UserKey ARRAY [1..20] This variable stores valid User (remote)
- OF STRING[2] extended keys that may be read during a call
- to GetChar, GetLine or GetInput. See
- 'Getting Started With JPDoor' for more
- information.
-
- UserKeysOn BOOLEAN Must be set to True if you wish to allow user
- extended keys and UserKey. Defaults to False.
-
- UserLast STRING[35] This is the user's last name as read from
- the DORINFO1.DEF file. Initialized by the
- 'GetDorInfo' procedure.
-
- UserName STRING[35] This is the user name as read from the
- DORINFO1.DEF file. If one word names are
- allowed, the last name is not used since
- it is a blank line in DORINFO1.DEF.
- Initialized by the 'GetDorInfo' procedure.
- Which will return in Mixed case.
-
- UserProc ARRAY [1..20] This variable stores the list of user far
- OF PROCEDURE call procedures as defined by the programmer.
- See 'Getting Started With JPDoor' for more
- information.
-
- UserSecurity WORD This is the user's security level as read
- from the DORINFO1.DEF file. It is converted
- from a string to an integer. Initialized by
- the 'GetDorInfo' procedure.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 27]
-
- Halt Codes
- ----------
-
- The file TrapExit.Pas is an include file containing a far call
- procedure called TRAPEXIT. This procedure's function is to trap HALT
- codes from within your program. For example, unexpected exits for
- reasons like dropped carrier, user inactivity timeouts etc. should be
- trapped and handled here.
-
- JPDoor reserves HALT codes 0 through 10. If you use any HALT
- statements in your code, you should use HALT codes above 10.
-
- HALT codes returned by JPDoor functions/procedures are as follows:
-
-
- Code Description
- ---- ---------------------------------------------
- 0 Normal program termination
- 1 Carrier lost
- 2 Time limit exceeded
- 3 User inactive for InactiveVal+ minutes
- 4 Dorinfo1.Def file not found
- 5 ExitInfo.BBS file not found
- 6 Directory change or directory read error
- 7 CTS - Clear To Send flow Control error
- 8 Forced Exit via RAXit Semaphore
- 9 Door.Sys file not found
- 10 Reserved for future use
-
-
- For a demonstration of how these are used, see Getting Started With
- JPDoor. If you decide to use halt codes within your program, make sure
- that you do not use any of the codes listed above (with the exception
- of halt code zero).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 28]
-
- REFERENCE:
- ----------
-
- Functions and Procedures:
- -------------------------
-
- The following functions and procedures are listed in the format:
-
- =============================================================================
-
- - Function or Procedure Name (internal) (external)
-
- - Function or Procedure Interface Structure
-
- - Description
-
- - Usage Example
-
- NOTE: An indication of 'internal' and/or 'external' is indicated to
- the right of the function or procedure name. This indicates
- the use of the function or procedure as noted below:
-
- internal - function/procedure is used by the unit
- itself and is not required to be used by
- your program.
-
- external - function/procedure is designed for use by your
- program and is not used by the unit itself.
-
- internal/external - function/procedure is used by the unit itself but
- it is also designed for use by your program.
-
-
-
- =============================================================================
-
- Function Ask_YN (external)
-
- ASK_YN( Prompt : TextString ; Color : BYTE) : CHAR ;
-
- Asks for a yes/no response (Y/N) with a variable prompt string using
- the defined 'Color'. Once the user hits either Y or N the prompt and answer
- will be removed from the screen by backspacing over it.
-
- Prompt := 'Are you sure? (Y/N) ' ;
- Answer := ask_yn(prompt, 2) ;
-
- The only valid keys are Y and N. All others will be ignored.
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 29]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure AscFile (external)
-
- AscFile(AsciiFile : String);
-
- This is good for displaying Help files or etc, that do not have
- embedded control codes which need to be expanded. The following
- commands will work with the display output : S for Stop and P to Pause
- are valid Hotkeys during output, and the More prompting is in effect
- with the prompt of : Continue? (Y/n/=) Yes default on hitting the enter
- key. n for No, and = for continous.
-
- =============================================================================
-
- Procedure BackSpace (external)
-
- BackSpace( BckSp : CHAR) ;
-
- This procedure will write a destructive backspace and allows you
- to define the character to leave behind. For example, if you wanted a
- completely destructive backspace (no character left behind) you would
- specify the space (ASCII #32) character.
-
- FOR i := 1 TO LENGTH(PromptStr) DO BackSpace(#32) ;
-
- =============================================================================
-
- Function Carrier (internal)
-
- Carrier : BOOLEAN ;
-
- Returns TRUE if carrier is detected on com port 'PortNum'. This
- function is called by other functions within the unit. If LOCAL is true
- the Carrier will ALWAYS return True.
-
- IF NOT Carrier THEN WRITELN('No carrier detected') ;
-
- =============================================================================
-
- Function Center (external)
-
- Center(StrToAdjust : String; LineLen : Integer) : String ;
-
- This will Center a string within a line of LineLen Long.
-
- Example:
- Display(0,15,0,Center('TITLE',80));
-
- Would Center TITLE on the line on the screen but will NOT write blanks after
- the string to be centered.
-
- =============================================================================
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 30]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
-
- Function CenterFill (external)
-
- Center(StrToAdjust : String; LineLen : Integer) : String ;
-
- This will Center a string within a line of LineLen Long.
-
- Example:
- Display(0,15,0,Center('TITLE',80));
-
- Would Center TITLE on the line on the screen and will write
- blanks after the string to be centered. This is usefull if
- you are wanting to center text on a line using a background
- color bar.
-
- =============================================================================
-
- Function ChangeCase (external)
-
- ChangeCase(Instr:STRING[80]) : STRING[80] ;
-
- Converts string 'Instr' to upper case characters.
-
- NameString := ChangeCase(NameString) ;
-
- =============================================================================
-
- Function CharIn (internal)
-
- CharIn : CHAR ;
-
- Assigns an incoming character to Charin. If local is FALSE
- then input is received from the com port 'PortNum'. If local
- is TRUE then input is received from the local keyboard. This
- function is called by character input functions within the unit.
-
- Ch := CharIn ;
-
- =============================================================================
-
-
- Procedure CharOut (internal)
-
- CharOut(Ch:CHAR) ;
-
- Outputs a single character to the com port 'PortNum'.
- This function is called by the character output routines
- within the unit.
-
- CharOut('a') ;
-
- =============================================================================
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 31]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure ChkConnect (internal)
-
- ChkConnect;
-
- This procedure is constantly called from within JPDoor and checks for a
- carrier if LOCAL is true. It also updated the status bar and checks for
- online messages if CKMSGS is true, and RemoteAccess Semaphore RAXITn.???
- files if RAXIT is True. There should be no reason for you to call this
- procedure yourself, although you may if you wish.
-
- =============================================================================
-
- Procedure ChkMsg (internal)
-
- ChkMsg : Boolean ;
-
- This procedure which is called by JPDoor 3.2 once every minute, will check
- to see if there is an online message for the node that your door is running
- from. If a message is waiting then MsgWaiting will be set to TRUE. If your
- running on RA 1.xx then you must ensure that the SemaphorePath variable holds
- the path to the semaphore directory, otherwise the current directory will be
- used, and you will not be able to send or recieve online messages.
-
- ============================================================================
-
- Procedure ChkRAXIT (Internal)
-
- ChkRAXIT : Boolean ;
-
- This procedure which is called by JPDoor 3.2 once every minute, will check
- to see if the sysop has forced this node down using the RAXIT semaphore file.
- This is only valid when running on a RemoteAccess System, and the following
- conditions must be met before this procedure will work.
-
- - Boolean Variable RAXIT must be True.
- - Boolean Variable RA100 MUST be True. This will automatically be set to
- True if your door reads the exitinfo.bbs and JPDoor detects that it is
- a version 1.00 or greater. If your door does not read the exitinfo.bbs
- then you will need to set this yourself.
- - SemaphorePath MUST point to the RA Semaphore directory. This can be
- accomplished in one of 3 ways. You may read it from the CONFIG.RA file
- yourself, or get it from the sysop in your configuration file for your
- door, OR have the sysop set an environment variable RASEM to point to
- this directory.
-
- You will also need to ensure that the variable ThisNode contains the correct
- node number. This can be accomplished by reading the node number from the
- command line and assigning it to this variable. ThisNode defaults to '01'
- and will cause problems if the sysop forces node 1 down, and your door has
- not put the proper value in this variable.
-
- ============================================================================
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 32]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function CkPath (internal/external)
-
- CkPath(InPath : STRING) : STRING ;
-
- This function is similar to FixPath except it does not check the validity
- of the directory path 'InPath'. CkPath checks the last character of 'InPath'.
- If it is not a backslash ('\') character, CkPath will append a backslash
- character to the end of 'InPath'.
-
- TempPath := '\RA' ;
- TempPath := CkPath(TempPath) ;
-
- Results in:
-
- TempPath = '\RA\'
-
- =============================================================================
-
- Procedure ClearRegs (external/internal)
-
- ClearRegs;
-
- This procedure fills the Regs variable (used for DOS calls etc)
- with #0's. Use this prior to making a DOS call to insure that
- previous Regs data does not interfere with your DOS call.
-
-
- =============================================================================
-
- Procedure ClearScreen (external)
-
- ClearScreen ;
-
- This procedure will clear the local and remote video display. This must be
- called rather than the CLRSCR procedure in CRT or if the status line is on,
- it will be erased by CRT.CLRSCR.
-
- Functions of ClearScreen:
-
- 1. If status line is on, local screen lines 1-23 are erased, lines
- 24 and 25 are left intact. Remote terminal lines 1-25 are erased.
-
- 2. If status line is off, local screen lines 1-25 are erased. Remote
- terminal lines 1-25 are erased.
-
- =============================================================================
-
- Function CommaStr (external)
-
- CommaStr ( N : LONGINT ) : STRING;
-
- This function will take the numeric value passed to it, and return it
- in a string which will have the commas inserted in the correct places.
-
- Example: CommaStr(1024)
- would return '1,024'
- =============================================================================
- [ JPDoor V3.2 SE Reference Manual ] [ Page 33]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure Crlf (external)
-
- Crlf ;
-
- This procedure will echo a carriage-return, line-feed sequence to
- both the local console and com port 'PortNum'. This procedure is used
- frequently in place of writeln when used to provide a carriage-return,
- line-feed sequence.
-
- Crlf ;
-
- =============================================================================
-
- Procedure CursorPos (external)
-
- CursorPos(Row, Column : BYTE) ;
-
- Positions the cursor on 'Row' and 'Column' if ANSI is set to 1. If
- ANSI is set to 0, this procedure will exit. CursorPos will also exit if
- 'Row' is less than 0 or greater than 25 and/or if 'Column' is less than 0
- or greater than 80.
-
- CursorPos(25,1) ;
-
- Positions the cursor on 'Row' (line) 25, 'Column' 1.
-
- =============================================================================
-
- Function DateStr (external/internal)
-
- DateStr : String;
-
- Returns the current date as MM-DD-YY
-
- Display(0,15,0,'The Current Date Is ' + DateStr);
-
- =============================================================================
-
- Procedure DecreaseTime (internal)
-
- DecreaseTime ;
-
- Decrements the unit variable 'TimeRemaining' by 1 and checks to
- see if 'TimeRemaining' is less than 1. If it is, then a halt code of
- 2 is returned to the TrapExit procedure. Your program should handle
- this accordingly. This procedure is called by other functions within
- the unit that keep track of carrier, time limits and user inactivity.
-
- BEGIN
- FOR i := 1 TO 5 DO DecreaseTime ;
- END ;
-
- =============================================================================
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 34]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure DecTime (external)
-
- DecTime(TimeInc:INTEGER) ;
-
- Same as IncTime but decrements time remaining in the files EXITINFO.BBS
- and DORINFO1.DEF in the 'ExitInfoPath' directory.
-
- DecTime(20) ;
-
- NOTE: This procedure should only be called when the program is ended and
- before control returns to the BBS.
-
- See also: IncTime
-
- =============================================================================
-
- Procedure DeleteFile (external)
-
- DeleteFile ( FileToDelete : STRING ) ;
-
- Use this procedure to easily delete files using a filename.
-
- Example:
-
- DeleteFile('C:\DOOR\FILE.TMP');
-
- =============================================================================
-
- Procedure DepositTime (external)
-
- DepositTime(Path : STRING[255] ; Name : STRING[30] ; n : INTEGER) ;
-
- This is used in conjunction with time banking support using RATS 0.1c
- (RemoteAccess TimeBank System) or later. THEBANK.EXT is also supported by
- QuickBank (David Kuhn) and The Bank 1.0 or later (David Hazelton) time banks.
- This procedure will append to or create the file THEBANK.EXT in the
- directory set by the 'Path' parameter. 'N' minutes will be deposited in
- the account of 'Name'. 'N' may be a negative number as well (for automatic
- time withdrawing).
-
- NOTE: 'Path' should be the path to the directory which contains the bank
- program files.
-
- DepositTime('','JOHN DOE',20) ;
-
- Deposits 20 minutes to the user JOHN DOE's account, writing to THEBANK.EXT
- in the current directory.
-
- DepositTime('\RA\','JOHN DOE',-20) ;
-
- Withdraws 20 minutes from the user JOHN DOE's account, writing to
- THEBANK.EXT in the \RA\ directory. Note: When specifying a path, the
- trailing backslash is required.
-
- NOTE: 'Name' MUST be in upper case only in order for The Bank to apply
- the credit to the user's account.
- =============================================================================
- [ JPDoor V3.2 SE Reference Manual ] [ Page 35]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure Display (external)
-
- Display(BackGround,ForeGround,Blink:BYTE ; Line:STRING[80]) ;
-
- This procedure displays the line ('Line') to both local and remote.
- It is much like the writeln procedure except that it also requires color
- attributes. The color attributes 'BackGround' and 'ForeGround' must be
- within the range of the table given below. The 'Blink' attribute must be
- a 0 (non-blinking) or a 1 (blinking). Valid color attributes are listed
- below.
- Valid Background Attributes:
- 0 : black 4 : red
- 1 : blue 5 : magenta
- 2 : green 6 : brown
- 3 : cyan 7 : light gray
-
- Valid Foreground attributes:
- 0 : black 4 : red 8 : dark gray 12 : light red
- 1 : blue 5 : magenta 9 : light blue 13 : light magenta
- 2 : green 6 : brown 10 : light green 14 : yellow
- 3 : cyan 7 : light gray 11 : light cyan 15 : white
-
- Display(0,15,0,'This is a white line') ;
- Display(7,0,0,'This line is in reverse video') ;
- Display(0,1,0,'This line is blue') ;
- Display(0,9,1,'This is a light blue, blinking line') ;
-
- NOTE: If you wish to shorten the Display or sDisplay procedures, you
- might want to write your own procedure that in turn calls Display or
- sDisplay. For example:
-
- PROCEDURE Println(ForeGround : BYTE ; LineToPrint : TextString) ;
- BEGIN
- Display(0,ForeGround,0,LineToPrint) ;
- END ;
-
- PROCEDURE Print(ForeGround : BYTE ; LineToPrint : TextString) ;
- BEGIN
- sDisplay(0,ForeGround,0,LineToPrint) ;
- END ;
-
- This would be good for shortening the coding of a program when there
- is no need to use background colors or blinking characters.
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 36]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure DisplayLoc (external)
-
- DisplayLoc(BackGround,ForeGround,Blink:BYTE ; Line:STRING[80]) ;
-
- This procedure displays the line ('Line') to local console only.
- This procedure should be used instead of WRITELN when displaying text
- to the local console only. If StatusLineON is set to TRUE, this procedure
- will take care of scrolling the screen window properly.
-
- Valid color attributes are as shown in the Display procedure.
-
- BEGIN
- IF NOT EXIST('MyFile.Txt') THEN BEGIN
- DisplayLoc(0,15,1,#7 + 'MYFILE.TXT NOT FOUND') ;
- HALT(15) ;
- END ;
- END ;
-
- =============================================================================
-
- Procedure DrawCard (external)
-
- DrawCard(CardNum:STR2; Suit:CardSuit; Row, Col, CardColor:BYTE; Edge:BOOLEAN);
-
- This procedure allows you to draw ANSI graphic playing cards within your
- door. Each card is 3 rows high by 5 columns wide. BLACK cards are displayed
- back on grey, RED cards are displayed red on grey. CardColor will allow you
- to draw different colors of blank cars. If it is 0 it will default to 7.
- The interface for DrawCard is:
-
- Where: 'CardNum' is 'A' through '9', '10', 'J', 'Q', OR 'K' OR 'B' for Blank.
- 'Suit' is C, D, H or S (for the clubs, diamonds, hearts or spades).
- 'Row' is the row where the card is to be drawn.
- 'Col' is the column where the card is to be drawn.
- 'CardColor' is the color of the blank cards
- 'Edge' if True, a border will be drawn around the card.
-
- This procedure will exit if ANSI is set to 0.
- =============================================================================
-
- Function Exist (internal/external)
-
- Exist(InFile:STRING[255]) : BOOLEAN ;
-
- Returns true if specified file exits or false if it doesn't.
-
- BEGIN
- IF NOT Exist('Dorinfo1.Def') THEN BEGIN
- DisplayLoc(0,15,0,'Dorinfo1.Def not found') ;
- HALT(5) ;
- END ;
- END ;
-
- =============================================================================
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 37]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure ExitJP (internal)
-
- ExitJP;
-
- This is called internally by JPDoor. There is NO reason for you to
- call this routine. It does any EXITINFO.BBS re-conversions needed,
- and if FossilHot := False, it de-initializes the fossil driver before
- exiting JPDoor.
-
- =============================================================================
-
-
- Function FixPath (internal/external)
-
- FixPath(Instr:STRING[255]) : STRING[255] ;
-
- Returns a fixed path based on 'Instr'. Specifically, this function
- is intended to append a backslash (\) character to the end of the specified
- path if one is not already specified. FixPath also qualifies the path
- by checking whether or not the path actually exists and attempts to change
- to that directory and back again. If FixPath encounters an error while
- attempting to change directories, a halt code of 6 is returned and the
- program is aborted (see also halt codes).
-
- TPath := '\RA\Doors' ; { a sample possible path parameter }
- TPath := FixPath(TPath) ; { '\' is appended and the directory }
- { \RA\Doors\ is tested }
- GetDorInfo(node, TPath) ; { the path can now be used with confidence }
-
- =============================================================================
-
- Procedure FlushCommBuffer (internal)
-
- FlushCommBuffer ;
-
- If 'Local' is TRUE, this procedure will flush the com port 'PortNum'
- incoming character buffer. This procedure is called by other functions
- within the unit.
-
- =============================================================================
-
- Function FormatStr (external)
-
- FormatStr(Instr:STRING[80]) : STRING[80] ;
-
- Formats string 'Instr' so that the first letter of each word is shifted to
- upper case and all other characters are shifted to lower case.
-
- VAR
- ExampleString : STRING[80] ;
- BEGIN
- ExampleString := 'this is an example' ;
- ExampleString := FormatStr(ExampleString) ;
- END ;
-
- Would result in: 'This Is An Example'
- =============================================================================
- [ JPDoor V3.2 SE Reference Manual ] [ Page 38]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function GameInUse (external)
-
- GameInUse : BOOLEAN ;
-
- This function is use in conjuction with the InUseFile (string)
- variable. If InUseFile specifies a filename, then this function will
- create that file, and return False. This means the door is NOT in use
- at this time. If the file exists, then it assumes that someone is using
- the door, displays a notice, and returns True. If your door is not
- multi-node aware, then you should use this to make sure ony one person
- is using it.
-
- Example:
-
- InUseFile := 'MyDoor.on';
- If GameInUse then Halt(0);
-
- If GameInUse returns true, the following notice will be displayed to the
- user:
-
- 'ProductName' is currently being played by 'UserName' on another node.
-
- Please Try Again Later...
-
- Hit RETURN To Continue :
-
- Where ProductName is the name of your door as defined by ProductName, and
- UserName is the name of the User who is playing.
-
-
- ============================================================================
-
- Procedure GameNotInUse (external)
-
- GameNotInUse;
-
- This procedure is used if you have invoked the function GameInUse.
- If InUseFile <> '' and it exists (which is created by GameInUse) then the
- file is removed. YOU are responsible for making sure this function is called
- before exiting your door or no-one else will get to play!
-
- ============================================================================
-
- Procedure GameScreen (external)
-
- GameScreen(FileName);
-
- A faster method of displaying an ANSI graphic screen (such as a full
- screen game board, etc.). ShowFile works for this purpose but is a bit
- slower since it checks for Sysop keys, hot keys, and so on. GameScreen
- does not check ANYTHING. There is no page pausing and the screen is cleared
- before the file is displayed. Gamescreen also sets the DOS READ ONLY flag
- on the file prior to displaying it, and removeing this flag after. This
- allows two nodes to display the file at the same time.
-
- ==========================================================================
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 39]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function GetNode (internal/external)
-
- GetNode : INTEGER ;
-
- When writing a multi-node door program, this function will return
- the current node number based on the information found in USERON.BBS file.
-
- =============================================================================
-
- Procedure GetMsg (internal/external)
-
- GetMsg ;
-
- If There is an online message waiting for the current node, then it
- will be displayed to that node.
-
- =============================================================================
-
- Function GetBirthDate (external)
-
- GetBirthDate : STRING[8] ;
-
- This function is used for getting a valid formatted Birthdate input.
- The MM-DD-YY format is forced within this function.
-
- Example: (var MyBirthDay : String[8];)
-
- sDisplay(0,2,0,'Enter you date of birth : ');
- MyBirthDay := GetBirthDate;
-
- ============================================================================
-
- Function GetChar (internal/external)
-
- GetChar : CHAR ;
-
- This function returns a single character received from either the Fossil
- or the local console. If 'Local' is FALSE, input is still accepted from the
- local console if any exists.
-
- UserChar := GetChar ;
-
- or for an upper case character...
-
- UserChar := UPCASE(GetChar) ;
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 40]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure GetDorInfo (external)
-
- GetDorInfo(Node : STRING[2]; ExitPath :STRING[255]) ;
-
- Reads the DORINFO<node>.DEF file in the 'ExitPath' directory. Reads
- the EXITINFO.BBS file in the 'ExitPath' directory. If DORINFO<node>.DEF
- is not found, a halt code of 5 will be returned. If EXITINFO.BBS is not
- found, a halt code of 4 is returned. The global variable 'ExitInfoPath'
- will be set to the value of 'ExitPath' when this procedure is called.
- This procedure reads in the contents of DORINFO<node>.DEF and EXITINFO.BBS
- and initializes the unit variables:
-
- SystemName
- SysopName BaudString
- SysopFirst ANSI
- SysopLast TimeRemaining
- UserName Local
- UserFirst AFlag
- UserLast BFlag
- UserCityState CFlag
- UserSecurity DFlag
- PortNum ScrLen
-
- Node := '1' ;
- ExitPath := 'c:\ra\' ;
- GetDorInfo (node, exitpath) ;
-
- DORINFO1.DEF is read from the c:\ra\ subdirectory.
- EXITINFO.BBS is read from the c:\ra\ subdirectory.
- ExitInfoPath is set to 'c:\ra\'.
-
-
- NOTES: If 'ExitPath' is specified as '' then the current directory will
- be used and 'ExitInfoPath' will be set to ''.
-
- 'Node' defaults to '1' upon unit initialization.
-
- This procedure must be called near the beginning of program execution
- in order to initialize the unit variables.
-
- Once unit variables are initialized, you may use them for display
- or other purposes within your program. For example:
-
- sDisplay(0,15,0,'The Sysop''s name is: ') ;
- Display(0,14,0,SysopName) ;
-
- JPDoor is designed to support RemoteAccess 0.03 data structures.
- However, if the program you create is run on a QuickBBS 2.64 system,
- the EXITINFO.BBS file will be converted automatically to RemoteAccess
- 0.03 format upon program startup. It will also be automatically
- converted back to QuickBBS 2.64 format when your program ends. No
- intervention or conversion is required by your program!
-
- =============================================================================
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 41]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function GetInput (external)
-
- GetInput(EchoChar : STRING[1] ; Cap,Len : INTEGER) : STRING[80] ;
-
- This function returns a STRING of length 'Len' characters received
- from the Fossil or the local console. The STRING is shifted to upper case
- if 'Cap' is set to 1. The STRING is not shifted if 'Cap' is set to 0. If
- 'EchoChar' is set to '' then the input received is what is echoed. If
- 'EchoChar' is set to anything other than '' then input received is echoed
- to the Fossil and local console as the character specified. If 'Local' is
- true, input is still accepted from the local console if any exists.
-
- InStr := GetInput('',0,20) ; {get 20 chars, echo as entered, no upshift }
- InStr := GetInput('~',0,20) ; {same as above but echo the '~' character }
- InStr := GetInput('~',1,20) ; {same as above but shifts to upper case }
-
- =============================================================================
-
- Function GetLine (external)
-
- GetLine(Length, TabLength, Color : BYTE) : STRING[255] ;
-
- Returns a string of text with word wrap occurring at 'Length'
- characters. TAB's are expanded to 'TabLength' spaces and output is
- echoed using the foreground color 'Color'. The unit variable 'Scrap_Entry'
- must be initialized prior to the use of this function. 'Scrap_Entry'
- contains the wrapped string from the previous GetLine and will be inserted
- before the string received in the next call to GetLine.
- If 'Length' is less than 1 or greater than 255, it will be set to 77.
- If 'TabLength' is less than 0 or greater than 32, it will be set to 8.
- If 'Color' is less than 0 or greater than 15, it will be set to 7.
-
- Scrap_Entry := '' ;
- FOR i := 1 TO 5 DO Instr[i] := GetLine(77,8,15) ;
- FOR i := 1 TO 5 DO WRITELN(Instr[i]) ;
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 42]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function GetPhone (external)
-
- GetPhone(Style : BYTE) : STRING[18] ;
-
- Prompts for input of a USA or free-style format phone number
- including area code. This function automatically formats the user
- input field depending on the 'Style' used. Valid 'Styles' are:
-
- 0 : USA Format (Area Code) Prefix-Suffix. The formatted
- result returned is: ###-###-####
- 1 : Free-Style - Stores input number as entered by the user.
- Allows input of up to 18 characters including digits and
- dashes ('-').
-
- BEGIN
- sDisplay(0,15,0,'Enter your phone number: ') ;
- SetColor(1,15,0) ;
- PhoneStr := GetPhone(0) ;
- Crlf ;
- sDisplay(0,12,0,'The phone number entered was: ') ;
- Display(0,11,0,PhoneStr) ;
- END ;
-
- This procedure uses the currently selected color attributes. Therefore,
- the color attributes last used in a call to Display, sDisplay or SetColor
- will be used.
-
- =============================================================================
-
- Function GetSysDir (external/internal)
-
- GetSysDir : String;
-
- If your door needs to find a directory common to all nodes, this will return
- one of the following:
-
- The System Directory pointed to by the RA environment variable
- The System Directory pointed to by the QUICK environment variable
-
- If used on a system other than QBBS or RA, then you can have the user
- set an environment variable JPDOOR and it will be used.
-
-
- =============================================================================
-
- Function GetWords (external/internal)
-
- GetWords ( NumWords : INTEGER; Temp : STRING ) : STRING;
-
- This is used to get 'NumWords' words from the string passed in 'Temp'
- starting at the beginning of the line.
-
- Example: GetWords(4,'This is a test of the Getwords Function');
- would return 'This is a test'
-
- =============================================================================
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 43]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure Hangup (external)
-
- HangUp ;
-
- Turns DTR OFF for 700 milliseconds which causes carrier to drop on
- modems which do not have carrier detect forced ON.
-
- Display(0,15,0,'Hanging up on user') ;
- Hangup ;
-
- =============================================================================
-
- Procedure IncTime (external)
-
- IncTime(TimeInc:INTEGER) ;
-
- Increments a user's time remaining in both the EXITINFO.BBS and
- DORINFO1.DEF files in the 'ExitInfoPath' directory. These may be read
- in by RemoteAccess using the RA -R command line and parameter.
-
- IncTime(20) ;
-
- Adds 20 minutes to the TmLimit field in the EXITINFO.BBS file. Subtracts
- 20 minutes from the UserInfo.Elapsed field in the EXITINFO.BBS file.
-
- NOTE: This procedure should only be called when the program is ended
- and before control returns to the BBS. So, instead of calling IncTime
- repeatedly each time a user is awarded some time, keep a running
- tally of time to be incremented and save it for program exit time.
-
- See also: DecTime
-
- =============================================================================
-
- Function Inready (internal)
-
- Inready : BOOLEAN ;
-
- Returns TRUE or FALSE depending on status of port 'PortNum'. If a
- character is ready to be read from the port, inready returns TRUE. This
- function is called by other functions within the unit.
-
- REPEAT
- UNTIL Inready ;
-
- =============================================================================
-
- Procedure InitFossil (internal)
-
- InitFossil ( Port : BYTE ) ;
-
- You should have no reason to call this procedure, as it is called
- internally by the SetFossil Function.
-
- =============================================================================
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 44]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function ITOA (external)
-
- ITOA(I : LONGINT ) : STRING ;
-
- This function will convert Integers and LongIntegers to a String Value.
-
- Example :
- sDisplay(0,15,0,ITOA(er));
- would return: '45'
-
- =============================================================================
-
- Procedure JP_Log; (internal/external)
-
- JP_Log ( TextToLog : String );
-
- If JP_Debug is True
-
- =============================================================================
-
- Function JPUseAdd; (external)
-
- JPUseAdd : Boolean; {See Multi.Doc}
-
- This function is used when writing a multi-player door.
- This function is used to add a player to the multi-node data file.
- Returns TRUE if successful, FALSE if not.
- =============================================================================
-
- Procedure JPUseUpdate; (external)
-
- JPUseUpdate; {See Multi.Doc}
-
- This procedure is used when writing a multi-player door.
- It is used to update the JPDOOR.USE file to reflect any new data
- from this node.
-
- =============================================================================
-
- Procedure JPUseExit; (external)
-
- JPUseExit; {See Multi.Doc}
-
- This procedure is used when writing a multi-player door.
- It is used to remove the user from the JPDOOR.USE file when your
- door exits.
-
- =============================================================================
-
- Function JPUseGet; (external)
-
- JPUseGet : Boolean; {See Multi.Doc}
-
- This procedure is used when writing a multi-player door.
- It is used to get data from another node.
- =============================================================================
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 45]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure KillFossil (internal)
-
- KillFossil ;
-
- De-initializes the FOSSIL driver. Upon program termination, this
- procedure will run automatically.
-
- =============================================================================
-
- Function LastPos (internal/external)
-
- LastPos( SubStr, InStr : STRING ) : INTEGER ;
-
- The function LastPos finds the LAST occurance of SubStr in InStr.
- One user of this function is to seperate a pathname from a full path\filename.
-
- Example:
- PathFile := 'D:\BBS\DOORS\YOURDOOR\YOURFILE.EXT';
- Path := Copy(PathFile,1,LastPos('\',Pathfile));
- FileName := Copy(PathFle,LastPos('\',PathFile)+1,256);
- at this point, Path Will be D:\BBS\DOORS\YOURDOOR\
- FileName will be YOURFILE.EXT
-
-
- =============================================================================
-
- Function LeftS (external)
-
- LeftS ( StrToAdjust : STRING; Tot : INEGER ) STRING;
-
- This function will return 'Tot' number of characters from the
- beginning of 'StrToAdjust'.
-
- Example: LeftS('12345',2); would return '12'
-
- =============================================================================
-
- Function LJust (external)
-
- LJust ( StrToAdjust : STRING; Tot : INTEGER ) : STRING;
-
- This function will left-justify 'StrToAdjust' in a field of 'Tot'
- character.
-
- Example: LJust('1',3); would return: '1 '
-
- ===========================================================================
-
- Function LTrim (external)
-
- LTrim( A : STRING ) : STRING ;
-
- A simple function to remove all leading spaces from a string variable.
-
- ============================================================================
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 46]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function Lock (external/internal)
-
- Lock(Var FileToLock; LockStartByte,LockEndByte:Longint):Word;
-
- This function is used to lock a portion of a typed file. If SHARE is
- loaded, then this function will return one of the following values:
- 0 - Lock is successful
- 6 - File not open
- 33 - Some of the specified range is already locked
-
- If share is not loaded, a 0 is returned as it assumes that locking is not
- needed.
-
- NOTE: If you lock a part of a data file, you MUST make sure you UNLOCK it
- as well! If you do not, it WILL remain locked until you reboot the computer.
-
- To lock the first record in a file:
-
- Type
- DataRecord = Record
- Name : String[35];
- Age : Word;
- End;
-
- Var
- DataFile : File Of DateRecord;
- Data : DataRecord;
- Result : Word;
-
- Begin
- Assign(DataFile,'Names.dat');
- Reset(DataFile);
- Result := Lock(DataFile,1,SizeOf(Data));
- If Result = 0 then
- Begin
- Writeln('Record 1 is locked);
- End Else
- Writeln('Lock Failed - Error : ',Result);
- End;
-
- =============================================================================
-
- Function LowCase (internal/external)
-
- LowCase(Ch : CHAR) : CHAR ;
-
- Used to convert an upper case character to it's lower case value. If
- 'Ch' is not an upper case character between A and Z, then the function will
- simply return the character originally passed, unchanged. This function
- is called by the FormatStr function.
-
- TChar := LowCase(TChar) ;
-
- =============================================================================
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 47]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function MaxNodes (external/internal)
-
- MaxNodes : Integer;
-
- This will scan either a QBBS 2.75 or RA 1.xx USERON.BBS and count the number
- of records. This will be the maximum number of nodes supported by your door.
- This routine is called internally.
-
- =============================================================================
-
- Function MKString (external)
-
- MKString(Number,Character);
-
- This handy function that can save time in drawing lines.
-
- Before: (you had to do this)
- sDisplay(0,15,0,'-------------------------');
-
- Example: (now it's this easy)
- sDisplay(0,15,0,MKString(25,'-'));
-
- =============================================================================
-
- Procedure More (external)
-
- More(Prompt : STRING[80] ; n : BYTE) ;
-
- Causes 'Prompt' to be displayed using color attribute 'n' to the Fossil
- and local console and waits for single character input.
-
- FOR i := 1 TO 5 DO Display(15,Instr[i]) ;
- More('Press any key to continue',15) ;
-
- =============================================================================
-
- Procedure NilProc (external/internal)
-
- NilProc;
-
- This is simply a do-nothing procedure.
-
- If SomeBoolean then NilProc Else OtherProcedure;
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 48]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function PostMsg (external)
-
- PostMsg(Lines : Integer; MsgPath : String) : Integer;
-
- This function will check the Global Boolean QBBS to see if it is to
- write to the QBBS message base. If QBBS is False (default) then it will
- attempt to write to an RA1.xx message base. Full file locking is supported.
-
- Uses MsgBuff : Array[0..100] of String[80]; which is a global array.
- Fill MsgBuff with your message, starting with MsgBuff[1].
- MsgBuff[0] is used internally to add a product ID kludge to the message.
- You MUST make sure to add a character 13 (Carriage Return) to the end of
- each line, including blank lines...
-
- Lines is the number of lines used (ie, if last line used was MsgBuff[10]
- then set Lines := 10
- MsgPath is the path to the message base - MUST end with \
-
- If successful, PostMsg returns a 0, if not, -100
-
- PostMsg will determine the correct Message Number, but you are required
- to fill out the rest of the following structure:
-
-
-
- MSGHDRrecord = record
- MsgNum : Integer;
- PrevReply,
- NextReply,
- TimesRead : Word;
- StartBlock : Word;
- NumBlocks,
- DestNet,
- DestNode,
- OrigNet,
- OrigNode : Word;
- DestZone,
- OrigZone : Byte;
- Cost : Word;
- MsgAttr,
- NetAttr,
- Board : Byte;
- PostTime : String[5];
- PostDate : String[8];
- WhoTo,
- WhoFrom : String[35];
- Subject : String[72];
- end;
-
- The pre-defined variable that contains this structure is Hdr
-
- Hdr : MsgHdrRecord;
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 49]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function PostMsg (Continued)
-
- Here is an example of posting a message, taken from my Battle Ships
- Door:
-
-
-
-
- Procedure PostResults;
- Var
- X : Integer;
- Begin
- ClearScreen;
- Display(0,15,0,'Congratulations! You are a winner!');
- With Hdr do
- begin
- WhoTo := FormatStr(Opponent);;
- Subject := 'BattleShips Report';
- Board := Boardno;
- WhoFrom := UserName;
- PostDate := DateStr;
- PostTime := TimeStr;
- PrevReply := 0;
- NextReply := 0;
- DestNet := 0;
- DestNode := 0;
- OrigNet := 0;
- OrigNode := 0;
- DestZone := 0;
- OrigZone := 0;
- Cost := 0;
- MsgAttr := Msg_Local;
- NetAttr := 0;
- End;
- MsgBuff[1] := 'Message posted by Motor City Battle Ships!'+#13;
- MsgBuff[2] := ' ' + #13;
- MsgBuff[3] := 'In a game of BattleShips on '+DateStr+' at '+TimeStr+ #13;
- MsgBuff[4] := ' ' + #13;
- MsgBuff[5] := FormatStr(Username)+' Won in '+ ItoA(NumShots) +' Shots!'+ #13;
- MsgBuff[6] := FormatStr(Opponent)+' Lost'+ #13;
- MsgBuff[7] := ' '+ #13;
- If BoardNo <> 0 then
- Begin
- CrLf;
- Display(0,14,0,'Hang on, posting message');
- X := PostMsg(7,MsgPth);
- Delay(2000);
- End;
- End;
-
-
-
- =============================================================================
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 50]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function RightS (external)
-
- RightS ( StrToAdjust : STRING; Tot : INEGER ) STRING;
-
- This function will return 'Tot' number of characters from the
- end of 'StrToAdjust'.
-
- Example: RightS('12345',2);
- would return '45'
-
- =============================================================================
-
- Function RJust (external)
-
- RJust(StrToAdjust : STRING ; Tot : INTEGER ) : STRING ;
-
- This function will Right-justify 'StrToAdjust' in a field of 'Tot'
- characters.
-
- Example: RJust('1',3);
- Would Return: ' 1'
-
- ============================================================================
-
- Function RTrim (external)
-
- RTrim(A : STRING) : STRING ;
-
- This function will trim trailing spaces from the varaible string.
-
- Example: RTrim('Apple ');
- Would Return: 'Apple';
-
- ============================================================================
-
- Procedure sDisplay (external)
-
- sDisplay(BackGround,ForeGround,Blink : BYTE ; Line:STRING[80]) ;
-
- This is identical to the Display procedure except that no carriage
- return/line feed sequence is output.
-
- sDisplay(0,15,0,'Menu options') ;
- sDisplay(0,12,0,' [A/B/C/Q] ') ;
- sDisplay(0,2,0,'Your choice: ') ;
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 51]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure sDisplayLoc (external)
-
- sDisplayLoc(BackGround,ForeGround,Blink:BYTE ; Line:STRING[80]) ;
-
- This procedure displays the line ('Line') to local console only. This
- procedure should be used instead of WRITE when displaying text to the local
- console only. If StatusLineON is set to TRUE, this procedure will take care
- of scrolling the screen window properly.
-
- Valid color attributes are as shown in the Display procedure.
-
- BEGIN
- IF NOT EXIST('MyFile.Txt') THEN BEGIN
- sDisplayLoc(0,15,1,#7 + 'MYFILE.TXT') ;
- DisplayLoc(0,14,0,' NOT FOUND') ;
- HALT(15) ;
- END ;
- END ;
-
-
- =============================================================================
-
- Procedure SendMsg (external)
-
- SendMsg;
-
- This procedure is another of the Multi-node support functions and
- procedures. This will allow your user to send an online message while they
- are in the door program that you have constructed. Users can now send up to
- 10 lines of text in an online message. Online message may be broadcast to
- ALL users currently online. DoNotDistrub flag is honored.
-
- ==============================================================================
-
- Procedure SetColor (external)
-
- SetColor(BackGround,ForeGround,Blink) ;
-
- This procedure will initialize the ANSI sequences. This should only
- be done after the unit variable ANSI has been set to either 0 (no graphics)
- or 1 (ANSI on). The valid color values for initialization are given in the
- color table shown under the Display procedure.
-
- This procedure also initializes the variables C_Back, C_Fore and C_Blink.
-
- GetDorInfo(Node,'') ;
- SetColor(0,7,0) ;
-
- =============================================================================
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 52]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure SetFlag (external)
-
- SetFlag(Flag : FlagSet ; OnOff : On_Off) ;
-
- Sets a user's flag in the EXITINFO.BBS file in the 'ExitInfoPath'
- directory. On a type 15 exit, the EXITINFO.BBS file would be read in
- and the values stored in USERS.BBS upon re-entry to the BBS. So, a
- permanent change would take effect when the user re-enters the BBS.
-
- SetFlag(A1,On) ;
-
- Sets the user's A1 flag to ON in the EXITINFO.BBS file contained
- in the 'ExitInfoPath' directory.
-
-
- =============================================================================
-
- Function SetFlagUser (external)
-
- SetFlagUser(Path:Str80 ; UserToSet:Str35 ; Flag:FlagSet ; OnOff:On_Off):BYTE;
-
- Sets a flag for 'UserToSet' in the USERS.BBS file located in the
- 'Path' directory. If 'UserToSet' is set to 'ALL' then all users in the
- USERS.BBS file will have their flags set accordingly. This function works
- directly on the USERS.BBS file and does not effect any existing EXITINFO.BBS
- file. This is good for other utility programs not necessarily run as door
- programs.
-
- SetFlagUser returns one of the following byte values:
-
- 0 : No errors
- 1 : 'UserToSet' was not found in the USERS.BBS file
- 2 : The USERS.BBS file was not found in the 'path' directory
-
-
- HOW TO USE SetFlagUser:
-
- VAR
- ErrVal : BYTE ;
- BEGIN
- ErrVal := SetFlagUser('',UserName,A5,ON) ;
- IF ErrVal <> 0 THEN BEGIN
- CASE ErrVal OF
- 1 : WRITELN(UserName,' was not found in USERS.BBS') ;
- 2 : WRITELN('USERS.BBS file was not found') ;
- END ;
- END ;
- END ;
-
- Sets flag A5 to ON for the user name contained in the unit variable
- 'UserName' in the USERS.BBS file located in the current directory. If ErrVal
- is not equal to 0, the appropriate error message is displayed to the local
- console.
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 53]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function SetFlagUser (Continued)
-
- IF SetFlagUser('','John Doe',A5,ON) <> 0 THEN WRITELN('error occurred') ;
-
- Sets flag A5 to ON for user name 'John Doe' in the USERS.BBS file
- located in the current directory. If the value returned by SetFlagUser is
- not equal to 0 then the error message 'error occurred' is displayed to the
- local console.
-
- IF SetFlagUser('\QuickBBS\','ALL',A5,ON) <> 0
- THEN WRITELN('USERS.BBS file not found') ;
-
- Sets flag A5 to ON for all users in the USERS.BBS file located in
- the \QuickBBS\ directory. If the value returned by SetFlagUser is not
- equal to 0 then we can assume that the USERS.BBS file was not found since
- this example is not looking for a specific user. The error message
- 'USERS.BBS file not found' is displayed.
-
- NOTE: The values passed to SetFlagUser are not case-sensitive. Therefore:
-
- IF SetFlagUser('','all',a5,on) <> 0 THEN WRITELN('error occurred') ;
-
- is the same as:
-
- IF SetFlagUser('','ALL',A5,ON) <> 0 THEN WRITELN('error occurred') ;
-
- =============================================================================
-
- Function SetFossil (external)
-
- SetFossil : BOOLEAN ;
-
- Returns TRUE if a FOSSIL driver is installed and FALSE if one is not.
-
- IF SetFossil THEN WRITELN('Fossil installed') ELSE BEGIN
- WRITELN(#7,'Fossil not found') ;
- HALT(0) ;
- END ;
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 54]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function SetGraphics (external)
-
- SetGraphics : CHAR ;
-
- SetGraphic returns a character value:
-
- A = User has ASCII only Capability...... ANSI is set to 0.
- C = User has Color and ANSI ability..... ANSI is set to 1.
- M = User has ANSI but mono display...... ANSI is set to 5.
-
- ANSI value of 5 is the used by DrawCard, and works well! So, we are
- reserving ANSI = 5.
-
- Example usage:
- Var
-
- Graphics : CHAR ;
- .......
- ......
-
- GetDorInfo('1','') ;
- SetColor(0,7,0) ;
- Graphics := SetGraphics ;
- IF Graphics = 'A' THEN
- BEGIN
- sDisplay(0,7,0,'Sorry but this game Requires Graphics') ;
- HALT(99) ;
- END ;
-
- =============================================================================
-
- Procedure SetHotKeys_OFF (external)
-
- SetHotKeys_OFF ;
-
- Turns off Hot-Key trapping. Also, the following variables are set:
-
- HotKeyPressed := FALSE ;
- HotKeyOn := FALSE ;
- Range := [#0] ;
-
- =============================================================================
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 55]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure SetHotKeys_ON (external)
-
- SetHotKeys_ON(Kill:KillType ; Range:CharSet) ;
-
- The TYPES used are declared as follows:
-
- TYPE
- KillType = Kill, NoKill ;
- CharSet = Set Of CHAR ;
-
- 'Range' is a set of characters which are valid Hot-Keys. These should
- be specified in upper case format. If any of the specified characters are
- pressed, all display output is stopped (nothing is echoed to the FOSSIL
- driver), and the global unit variable 'HotKeyPressed' is set to TRUE. Once
- this call is made, an internal global variable 'HotKeyOn' is also set to
- TRUE. You may reference this variable if necessary.
-
-
- If 'Kill' is specified, the Hot-Key pressed is killed from its
- accumulator. That is to say that it is not "remembered". If 'NoKill'
- is specified, the Hot-Key is "remembered" and will be automatically
- returned to the next call to GetChar. This is intended for uses such
- as breaking out of a text file display. You can define a Hot-Key to
- break out of the display yet not have it passed onto the next 'GetChar'
- call. Specifying the 'Kill' parameter allows this.
-
- For example:
-
- VAR
- Choice : CHAR ;
- PROCEDURE ShowMenu ;
- BEGIN
- Display(0,15,0,'<C>hange Setup') ;
- Display(0,15,0,'<H>elp Text') ;
- Display(0,15,0,'<G>oodbye') ;
- CRLF ;
- sDisplay(0,14,0,'Enter your choice: ') ;
- END ;
- BEGIN
- SetHotKeys_ON(NoKill, ['C','H','G']) ;
- ShowMenu ;
- REPEAT
- Choice := UPCASE(GetChar) ;
- UNTIL Choice in ['C','H','G'] ;
- Display(0,15,0,Choice) ;
- SetHotKeys_OFF ;
- CASE Choice OF
- 'C' : DoChangeSetup ;
- 'G' : DoLogOff ;
- 'H' : BEGIN
- SetHotKeys_ON(Kill, ['S']) ;
- ShowFiles(15,2,11,'MYHELP.ASC','\RA\TXTFILES\') ;
- SetHotKeys_OFF ;
- END ;
- END ;
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 56]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure SetHotKeys_ON (Continued)
-
- This would allow the Hot-Keys C, H, or G to interrupt the display of the
- menu called by ShowMenu and the next 'GetChar' call would "remember" the
- Hot-Key that was pressed.
-
- If H is selected, Hot_Keys are turned on specifying that S is a valid
- Hot-Key and that if it is pressed, it will not be remembered by the next
- call to 'GetChar'.
-
- Valid 'Range' entries can be any number of characters:
-
- SetHotKeys_On(NoKill, ['A'..'Z', '0'..'9', '!']) ;
- SetHotKeys_On(Kill, ['S']) ;
- SetHotKets_On(NoKill, ['A','B','C']) ;
-
-
- =============================================================================
-
- Procedure Set_Retries (external/internal)
-
- Set_Retries(LockRetries,LockLoops:Integer);
-
- LockRetries is the number of times DOS will try to read the locked file
- before a failure is reported. LockLoops is the pause between each retry.
- DOS defaults are LockRetries := 3, and LockLoops := 1
-
- =============================================================================
-
-
- Procedure ShowFile (external)
-
- ShowFile(fColor, pType, pColor, FileName, Path)
-
-
- fColor is the initial color to display 0 = no change.
- pType is the prompt type 0 = no prompt. 1 = pause. 2 = more.
- pColor is the prompt color 0 = no prompt.
- FileName is the file name
- Path is the path to find FileName
-
-
- ShowFile replaces the ShowAnsiFile and ShowTextFile procedures. It
- is used display ANSI files and/or ASCII text files. ShowFile will look for
- the file 'FileName' in the 'Path' directory. If no filename extension is
- specified, ShowFile will check the user's ANSI setting. If ANSI is set
- to 1, ShowFile will then check for to see if 'FileName' + '.ANS' exists.
- If no .ANS file exists, ShowFile will check to see if 'FileName' + '.ASC'
- exists.
-
- You may specify any filename extension. If the file exists in the
- 'Path' directory, ShowFile will display it.
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 57]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure ShowFile (Continued)
-
- ShowFile recognizes many of the RemoteAccess/QuickBBS embedded
- control codes. If a control code is encountered for which there is
- no support, 'N/A' will be substituted.
-
- Examples :
-
- ShowFile(0,0,0,'WELCOME.ANS','\RA\TXTFILES');
-
- will display \RA\TXTFILES\WELCOME.ANS with no color change or pausing.
-
- ShowFile(10,1,12,'HELLO.TXT','');
-
- will display HELLO.TXT (from the current directory) in light green,
- with a red '---PAUSED---' prompt.
-
- ShowFile(1,2,2,'SECURITY','\');
-
- will display \SECURITY.ANS, if ANSI = 1 and \SECURITY.ANS exists, and
- will over ride the color/prompting settings to 0. If ANSI = 0 or
- \SECURITY.ANS doesn't exist, it will display \SECURITY.ASC in blue
- with a green 'More (Y,n)?' prompt.
-
- ShowFile(7,1,7,'README.','');
-
- will display the file README in white with a white '---PAUSED---' prompt
- (specifying the '.' forces no extension).
-
- Since a text file could have any name and extension (even an extension
- of .ANS) it will use the color/prompt values passed, unless no extension
- is specified and .ANS is automatically selected.
-
- ShowFile(10,2,12,'GREET.ANS');
-
- will display GREET.ANS with an initial color of green and a red
- 'More (Y,n)?' prompt.
-
- ShowFile(0,0,0,'GREET.ASC');
-
- will display STORY.ASC with no initial color change and no prompting.
-
- ShowFile(10,2,12,'GREET');
-
- will not use the color/prompting values, if it assumes .ANS, but will
- use them, if it assumes .ASC.
-
- =============================================================================
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 58]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure ShowFilesBBS (external)
-
- ShowFilesBBS(VAR LnCount : INTEGER ;
- n, pause, Fc, Sc, Dc, Ec, Mc, Bc : BYTE ;
- FPath, Fn : TextString ;
- VAR Cont : BOOLEAN ;
- oneline : BOOLEAN) ;
-
- This procedure allows the user to pass a path and filename to a
- files.bbs file format and the ShowFilesBBS will display with more prompting,
- and display files, sizes, date/time stamp and description. This is fully
- configurable.
-
- LnCount : how many lines to display before issuing a more prompt.
- n : color of more prompt
- pause : 0 = no pause, 1 = '==PAUSED==', 2 = 'More (Y/n)' more prompt styles
- Fc : color to use to display files
- Sc : color to use to display file sizes
- Dc : color to use to display date stamp
- Ec : color to use to display descriptions
- Mc : color to use to display *** MISSING ***
- Bc : background color to all of the above.
- Fpath : path to files.bbs (fully qualified)
- fn : filename of files.bbs format file.
- cont : passes the response to the more prompt back to users code segment.
-
- =============================================================================
-
- Procedure Show_Status (internal)
-
- Show_Status ;
-
- This procedure will cause the status line to be refreshed when called.
- Users are not required to call this procedure directly as the use of any of
- JPDOOR's I/O functions will automatically refresh the status line when needed.
-
- JPDOOR MUST BE INITIALIZED BEFORE ANY CALLS ARE MADE TO THIS PROCEDURE
- or unpredicted results will occurr. That is to say that this should only be
- used after GetDorInfo has been executed.
-
- =============================================================================
-
- Function SizeFile (external)
-
- SizeFile : LONGINT ;
-
- This Function Returns LongInt vaule which represent the size (number of
- bytes) of a file name that is passed to it.
-
- =============================================================================
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 59]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Procedure StatBar (external/internal)
-
- StatBar ( N : BYTE );
-
- This procedure can be called to change the status bar to any
- of the 9 visible status bars, or if you pass it a 10, it turns off the
- status bar, and sets StatusLineOn := False; Hitting the function keys
- while the door is running calls this procedure, EG F1 makes a call to
- StatBar(1) while F6 makes a call to StatBar(6);
-
- =============================================================================
-
- Function TimeStr (external/internal)
-
- TimeStr : String;
-
- Returns the current time as HH:MM:SS in 24 hour format.
-
- Display(0,15,0,'The Current Time Is ' + TimeStr);
-
- =============================================================================
-
- Function TimeToEvent (external)
-
- TimeToEvent : INTEGER ;
-
- Returns the number of minutes until the next system event. This
- function will open and read the EXITINFO.BBS file in the 'ExitInfoPath'
- directory. If not found, a halt code of 4 will be returned.
-
- VAR
- Time : INTEGER ;
- s : STRING[4] ;
- BEGIN
- Time := TimeToEvent ;
- sDisplay(0,15,0,'Time to next system event: ') ;
- STR(Time,s) ;
- sDisplay(0,5,0,s) ;
- Display(0,15,0,' minutes') ;
- END ;
-
- =============================================================================
-
- Procedure UnLock; (external/internal)
-
- Unlock(Var FileToUnlock; LockStartByte,LockEndByte:LongInt);
-
- When you lock a portion of a data file, you MUST make sure you unlock it
- or it will remain locked until you reboot the computer!
-
- =============================================================================
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 60]
-
- Functions and Procedures (Continued)
- ------------------------------------
-
- Function UserOnNode (external/internal)
-
- UserOnNode(NodeToPage : INTEGER ) : STRING ;
-
- This function used with multi-node setups, will return the name of
- the user on NodeToPage. And will return '' if no one is online.
-
- =============================================================================
-
- Procedure Win_Scroll (internal)
-
- Win_Scroll ;
-
- This procedure will cause the window (lines 1-23) to scroll up one
- line. Users are not required to call this procedure directly as the use
- of any of JPDOOR's I/O functions will automatically scroll the video when
- needed, if StatusLineOn is set to TRUE.
-
- =============================================================================
-
- Procedure WhosOn (external)
-
- WhosOn ;
-
- This procedure will return a list of users currently online in a
- multi-node(line) setup. Similar to RA 1.xx and Quickbbs 2.75.
-
- ===============================================================================
-
- Function WTOA (external)
-
- WTOA(I : WORD) : STRING ;
-
- This function will convert a word value to string.
-
- Example:
- sDisplay(0,15,0,WTOA(75)) ;
- Would return: '75'
-
- ===============================================================================
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 61]
-
-
-
- E n d O f
-
- D o c u m e n t a t i o n
- -------------------------
-
-
- For Printed copies of this documentation please contact
-
- Motor City Software
-
-
- ┌──────────────────────────────────────────────┐
- │ MOTOR CITY SOFTWARE │
- │ ┌──────────────────────────────────────┐ │
- │ │ JPDoor - Version 3.2 SE │ │
- │ │ Copyright 1990 - 1992 │ │
- │ │ ┌──────────┐ │ │
- │ │ │\ │ │ │
- │ │ │ \ │ │ │
- │ │ │ \ P │ │ │
- │ │ │ \ A │ │ │
- │ │ │ │ S │ │ │
- │ │ │ │ C │ │ │
- │ │ 5.5 │ │ A │ 6.0 │ │
- │ │ │ o│ L │ │ │
- │ │ │ │ │ │ │
- │ │ \ │──────┘ │ │
- │ │ \ │ │ │
- │ └──────────────\ │─────────────────────┘ │
- │ The Ultimate \│ Door Writing Unit. │
- └────────────────────┴─────────────────────────┘
-
-
-
- JPDoor - Version 3.2 SE
- Copyright 1990,1991,1992 by Motor City Software
- All Rights Reserved
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [ JPDoor V3.2 SE Reference Manual ] [ Page 62]
-