Jdibas 3/5

 BBS: Inland Empire Archive
Date: 05-30-92 (12:31)             Number: 136
From: JEFF FREEMAN                 Refer#: NONE
  To: ALL                           Recvd: NO  
Subj: Jdibas                3/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$
        JDI.LineCount = 0
        FC = JDI.FC
        Bc = JDI.Bc
        JColor (JDI.MoreFc), (JDI.MoreBc)
        JPrint RTRIM$(JDI.MoreMsg), False
        DO
          K$ = UCASE$(JInKey$)
        LOOP UNTIL INSTR("YNC" + CHR$(13), K$) AND K$ <> Null$
        IF K$ = CHR$(13) THEN K$ = "Y"
        JColor FC, Bc
        JDI.FC = FC
        BackSpace LEN(RTRIM$(JDI.MoreMsg))
        MORE$ = UCASE$(K$)
END FUNCTION

FUNCTION NCase$ (Name$)

  Name$ = RTRIM$(LCASE$(Name$))
  IF Name$ = Null$ THEN EXIT FUNCTION
  MID$(Name$, 1, 1) = UCASE$(LEFT$(Name$, 1))
  FOR X = 1 TO LEN(Name$)
        IF MID$(Name$, X, 1) = CHR$(32) THEN MID$(Name$, X + 1, 1) =
UCASE$(MID$
  NEXT X
  NCase$ = Name$

END FUNCTION

SUB OpenCom (ComPort, Baud&)

  JDI.LFNum = FREEFILE
  OPEN "CON" FOR OUTPUT AS #JDI.LFNum

  IF ComPort = 0 THEN
        JDI.IsLocal = True
  ELSE
        JDI.IsLocal = False
        ON UEVENT GOSUB ErrorInDoor  'Carrier Loss trap
  END IF

  IF ComPort = 0 THEN HS = 0 ELSE HS = 1
  OpenComm ComPort, 0, 8, 0, Baud&, HS

END SUB

SUB OpenDorinfo (DF$)
  IF DF$ = Null$ THEN
        DF$ = "DORINFO1.DEF"
        IF NOT JEXIST(DF$) THEN DF$ = "..\DORINFO1.DEF"
  END IF
  JOpen DF$, "I", DFNum, 0
  IF DFNum = 0 THEN CloseDoor
  LINE INPUT #DFNum, JDI.BBSName        'name of the BBS
  LINE INPUT #DFNum, Dummy1$            'Sysop's first name
  LINE INPUT #DFNum, Dummy2$            'Sysop's last name
        JDI.SysopName = Dummy1$ + CHR$(32) + Dummy2$
  LINE INPUT #DFNum, Dummy1$             'COMx
        ComPort = VAL(RIGHT$(Dummy1$, 1))
  LINE INPUT #DFNum, Dummy1$            'BAUD and parity (8N1 is assumed)
        Baud& = VAL(Dummy1$)
  LINE INPUT #DFNum, Dummy1$            'network type
  LINE INPUT #DFNum, Dummy1$            'Player's first name
  LINE INPUT #DFNum, Dummy2$            'Player's last name
        JDI.PlrName = Dummy1$ + CHR$(32) + Dummy2$
        IF JDI.PlrName = JDI.SysopName THEN JDI.Sysop = True
  LINE INPUT #DFNum, Dummy1$            'player's city, state zip
  LINE INPUT #DFNum, Dummy1$            'graphics mode
  JDI.Ansi = VAL(Dummy1$)
  IF JDI.Ansi > 0 THEN JDI.Ansi = True
  LINE INPUT #DFNum, Dummy1$            'security level
  JDI.SecLevel = VAL(Dummy$)
  CLOSE DFNum
  OpenCom ComPort, Baud&
END SUB

SUB ViewFile (F$, MorePrompts)
IF JDI.Ansi AND JEXIST(F$ + ".ANS") THEN
  F$ = F$ + ".ANS": HR = False 'no CRLF for Ansi files
ELSE
  F$ = F$ + ".ASC": HR = True  'CRLF's for Ascii files
END IF
JOpen F$, "I", VFNum, 0
IF VFNum = 0 THEN EXIT SUB
TP = JDI.Pauses: JDI.Pauses = False   'turn these off temp.
LNum = JDI.LineCount + 1
WHILE (NOT EOF(VFNum))
  IF JInKey$ <> Null$ THEN LNum = 23
  LINE INPUT #VFNum, L$: JPrint L$, HR
  IF MorePrompts THEN
        LNum = LNum + 1
        IF LNum > 22 THEN
                SELECT CASE MORE$
                        CASE IS = "Y"                   'continue
                                LNum = 0
                        CASE IS = "N"                   'don't continue
                                CLOSE #VFNum
                                JDI.Pauses = TP         'restore Pauses
                                JDI.LineCount = 0
                                EXIT SUB                'quit
                        CASE ELSE
                                MorePrompts = False     'turn em off
                END SELECT
        END IF
  END IF
WEND
CLOSE #VFNum

JDI.Pauses = TP                         'restore pauses
JDI.LineCount = LNum

END SUB




   Following are the docs to JDI.BAS, QuickBASIC 4.5 door writing routines.

                        Jeff Freeman
                        9417 Mixon #235
                        Dallas, TX  75220

DEFINT A-Z
        It is important to note that JDI.BAS is written with DEFINT A-Z.
        This means the default data type is not the SINGLE precision
        numeric variable, but the INTEGER variable.  All of the subs and
        functions expect to be passed INTEGERs!  If the need arrises to
        pass a numeric variable of a different type to a sub or function,
        then pass the variable by value.  (Place the variable in parin's).

FUNCTION JEXIST (F$)
        This function returns TRUE if the file (F$) exists.

FUNCTION JInKey$ ()
        This function works exactly like INKEY$.  If no key is pressed,
        JInKey$ returns a null string, otherwise it returns the key pressed.
        If you want to wait for the user to press a key, then use like so:
        DO : A$ = JINKEY$ : LOOP UNTIL A$ <> NULL$

FUNCTION JRND (Lo, Hi)
        This function returns a random number (INTEGER!) between Lo and

        Hi.  A standard six-sided dice roll would be:
        Dice = JRND(1,6)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET