BBS: Inland Empire Archive
Date: 05-30-92 (12:31) Number: 137
From: JEFF FREEMAN Refer#: NONE
To: ALL Recvd: NO
Subj: Jdibas 4/5 Conf: (2) Quik_Bas
This message was from JEFF FREEMAN to ALL,
originally in conference (V) V-TREK
and was forwarded to you by JEFF FREEMAN.
>>> Continued from previous message
FUNCTION MORE$ ()
This function displays the MORE prompt and returns the key pressed
by the user: Y for yes, N for no or C for Continuous.
FUNCTION NCase$ (Name$)
This function returns Name$ with the first letter of each word
in caps. For example: "mr brown" would return "Mr Brown".
SUB BackSpace (N)
This subroutine moves the cursor to the left N spaces.
SUB CloseDoor ()
This subroutine should be called rather than END, STOP or SYSTEM.
SUB HitAKey ()
This subroutine displays the Hit-a-Key prompt and waits for the
user to press a key.
SUB JBeep ()
This routine beeps just like BEEP.
SUB JCls ()
ALWAYS use JCls, NEVER use CLS. Otherwise it has the same affect.
SUB JCenter (T$, CRLF)
This sub displays T$ centered on the current row. It is followed
by a carriage-return/line feed if CRLF is true.
SUB JColor (Fc, Bc)
This routine changes the color just like COLOR -- but the color
codes are not the same as BASIC's color codes. JDI has declared
the necessary constants so that you may call JColor like so:
JColor Red, Black
JColor Red+Bold, Black
JColor Yellow + Bold + Blink, Black
SUB JInPut (P$, IN$, W)
Displays P$ and accepts the user's input into IN$. W is the number
of characters to accept. If W is 0, then JINPUT uses hot-key input
and doesn't echo what the user enters. If W is a negative number,
the JInPut will hit return for the user when the maximum number of
characters is approached -- affectively simulating word-wrap. For
JinPut "Name: ", Name$, 25
This will prompt the user with "Name: " and accept up to 25
characters, which are returned in Name$
SUB JLines (L)
This routine moves the cursor down L lines.
SUB JLocate (R, C)
This works just like BASIC's LOCATE command. NEVER use LOCATE.
This moves the cursor to row R, column C.
SUB JOpen (F$, Mode$, FileNum, RecLen)
Always use this, never use OPEN. JOPen uses the same format as
OPEN. Therefore instead of:
OPEN "MYFILE" FOR RANDOM AS #1 LEN = LEN(MyRecord)
GET #1, RecNum, MyRecord
You would use:
JOpen "MYFILE", "R", FNum, LEN(MyRecord)
GET #FNum, RecNum, MyRecord
JOpen will find the next file number and assign it to FNum, so
you needn't worry about which file numbers are currently available.
RecLen ( LEN(MyRecord) in the example ) is not required for INPUT,
OUTPUT or APPEND file modes. You may send a 0 in that case (you
cannot, however omit the variable altogether).
Valid modes are:
If you attempt to open a file for input that doesn't exist, Jopen
returns a zero for File Number. Save time by checking to see if
the file exists AFTER you JOPEN it.
SUB JPrint (T$, CRLF)
NEVER use PRINT, always use JPrint. This sends T$ to the screen
and the modem. If CRLF is TRUE, then JPrint follows with a
carriage-return/line feed. For example:
JPrint "Print this on my screen.",False
is the same as
PRINT "Print this on my screen." ;
SUB OpenCom (ComPort, Baud&)
This is an internal function used by JDI to initialize the com
routines. You could write support for other drop-file formats
by reading the info, assigning the appropriate user variables,
and then calling OpenCom with the COMPORT and BAUD&. JDI
supports COM's 1-4 and Baud& up to 115,200.
SUB OpenDorinfo (DF$)
This routines is passed the path and filename to DORINFOx.DEF.
It sets up the user variables such as caller name, BBS Name, etc.
and calls OpenCom to initialize the modem routines.
SUB ViewFile (F$, MorePrompts)
ViewFile will display the file F$ if it exists. For ANSI users
ViewFile will check for a .ANS version of the file. If there is
no .ANS version, or if the user is a non-ansi user, then ViewFile
will display the .ASC version. MorePrompts should be true if you
want the user to be prompted with the MORE prompt every 23 lines.
ViewFile "MYFILE", False
will display MYFILE.ASC to non-ansi users, or MYFILE.ANS to ANSI
These are the variables and their uses. Note that they are in a data type,
so that JDI.BBSName is the name of the BBS, JDI.SysopName is the name of
the sysop, etc.
BBSName AS STRING * 25
SysopName AS STRING * 25
PlrName AS STRING * 25
Sysop AS INTEGER
ANSI AS INTEGER
SecLevel AS INTEGER
AllCaps AS INTEGER
MoreFc AS INTEGER
MoreBc AS INTEGER
MoreMsg AS STRING * 30
Pauses AS INTEGER
HitKeyFc AS INTEGER
HITKeyBc AS INTEGER