Jdibas 2/5

 BBS: Inland Empire Archive
Date: 05-30-92 (12:31)             Number: 135
From: JEFF FREEMAN                 Refer#: NONE
  To: ALL                           Recvd: NO  
Subj: Jdibas                2/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
SUB JCenter (T$, CRLF)
  IF T$ = Null$ THEN
        Tabs = 40
  ELSE
        Tabs = 40 - CINT(LEN(T$) / 2)
  END IF
  JPrint CHR$(27) + "[" + LTRIM$(STR$(Tabs)) + "C" + T$, True
END SUB

SUB JCls
IF JDI.Ansi = False THEN C$ = CHR$(12) ELSE C$ = CHR$(27) + "[2J"
JPrint C$, False
JDI.LineCount = 0
CLS
END SUB

SUB JColor (FC, Bc)
  IF JDI.Ansi = False THEN EXIT SUB
  IF (JDI.FC = FC) AND (JDI.Bc = Bc) THEN EXIT SUB
  JPrint CHR$(27) + "[3;0m", False
  JDI.FC = FC

  JDI.Bc = Bc
  BlinkMode = False: High = False
  M$ = CHR$(27) + "[3"
  IF FC > 16 THEN BlinkMode = True: FC = FC - 16
  IF FC > 8 THEN High = True: FC = FC - 8
  M$ = M$ + LTRIM$(STR$(FC)) + ";4" + LTRIM$(STR$(Bc))
  IF High THEN M$ = M$ + ";1"
  IF BlinkMode THEN M$ = M$ + ";5"
  M$ = M$ + "m"
  JPrint M$, False
END SUB

FUNCTION JEXIST (F$)
  JDI.FileExists = True
  ON ERROR GOTO FileNotFound
  JDI.EFNum = FREEFILE
  OPEN F$ FOR INPUT AS #JDI.EFNum
  CLOSE #JDI.EFNum
  ON ERROR GOTO 0                  'remove this line to enable error-trapping
  'ON ERROR GOTO ErrorInDoor       'set this to your error trapping routine
  JEXIST = JDI.FileExists
END FUNCTION

FUNCTION JInKey$
  C$ = INKEY$
  IF JDI.IsLocal OR C$ <> Null$ THEN
        JInKey$ = C$
        EXIT FUNCTION
  ELSE
        IF DataWaiting THEN JInKey$ = CHR$(ReadChar)
  END IF
END FUNCTION

SUB JInPut (P$, In$, W)
  JDI.LineCount = 0: In$ = Null$
  JPrint P$, False
  IF W <= 0 THEN W = ABS(W): WW = True
JDInputMain:
  DO: M$ = JInKey$: LOOP UNTIL M$ <> Null$
  IF WW AND LEN(In$) > (W - 8) AND M$ = CHR$(32) THEN M$ = CHR$(13)
  IF W = 0 THEN
        In$ = M$
        JDI.EchoMode = False
        EXIT SUB
  END IF
  SELECT CASE M$
  CASE IS = CHR$(13)
        JPrint Null$, True
        JDI.EchoMode = False
        JDI.AllCaps = False
        EXIT SUB
  CASE IS < CHR$(9)
        GOSUB JDIBackspace
  END SELECT
  IF M$ < CHR$(32) OR M$ > CHR$(128) OR LEN(In$) = W THEN GOTO JDInputMain
  IF JDI.AllCaps THEN M$ = UCASE$(M$)
  IF JDI.EchoMode = 0 THEN JPrint M$, False
  IF JDI.EchoMode = 1 THEN JPrint JDI.EchoChar, False
  In$ = In$ + M$
  IF WW AND LEN(In$) = W THEN
        JDI.AllCaps = False
        JDI.EchoMode = False
        EXIT SUB
  END IF
  GOTO JDInputMain

JDIBackspace:
  IF LEN(In$) = 0 THEN RETURN
  IF LEN(In$) = 1 THEN
        In$ = Null$
  ELSE
        In$ = LEFT$(In$, LEN(In$) - 1)
  END IF
  BackSpace 1
  RETURN

END SUB

SUB JLines (L)
        CRLF$ = CHR$(10) + CHR$(13)
        FOR Ln = 1 TO L
                CR$ = CR$ + CRLF$
        NEXT Ln
        JPrint CR$, False
        JDI.LineCount = JDI.LineCount + L
END SUB

SUB JLocate (R, C)
  IF JDI.Ansi = False THEN EXIT SUB
  C$ = CHR$(27) + "[" + LTRIM$(STR$(R)) + ";" + LTRIM$(STR$(C)) + "H"
  JPrint C$, False
END SUB

SUB JOpen (F$, Mode$, FileNum, RecLen)
FileNum = FREEFILE
IF Mode$ = "I" THEN
  IF NOT JEXIST(F$) THEN
        FileNum = 0
        EXIT SUB
  END IF
END IF
IF RecLen = 0 THEN RecLen = 128
OPEN Mode$, FileNum, F$, RecLen
END SUB

SUB JPrint (T$, CRLF)
  IF CRLF THEN
        IF JDI.Pauses THEN JDI.LineCount = JDI.LineCount + 1
        IF JDI.LineCount > 23 THEN HitAKey
  END IF
  IF CRLF THEN T$ = T$ + CHR$(10) + CHR$(13)
  IF T$ <> Null$ THEN
        Transmit T$
        PRINT #JDI.LFNum, T$;
  END IF
END SUB

FUNCTION JRND (Lo, Hi)
        RANDOMIZE TIMER
        JRND = FIX((Hi - Lo + 1) * RND + Lo)
END FUNCTION

FUNCTION JTrim$ (T$)
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