home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
PROGRAM
/
BASIC
/
QBS_0103
/
QBS103-C.DOC
< prev
next >
Wrap
Text File
|
1993-04-30
|
55KB
|
1,548 lines
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12290
Date: 04-01-93 22:21 (Public)
From: QUINN TYLER JACKSON
To: ALL
Subject: Source massager
────────────────────────────────────────────────────────────────────────────────
' This file massaged by STRUCT v1.0
' STRUCT v1.0 BASIC FILE MASSAGER
' Written by Quinn Tyler Jackson
'
' This program massages BASIC files for visual ease of reading.
'
' I wrote it so that files in this echo could be written this way:
'
' FOR i = 1 TO 10
' PRINT 10
' SELECT CASE i
' CASE 1
' PRINT "One"
' CASE 2
' PRINT "Two"
' DO
' PTR = PTR + 1
' PRINT ":)"
' LOOP UNTIL Ptr = 10
' CASE ELSE
' PRINT "Else"
' END SELECT
' NEXT i
'
'
' Files like this have less chance of wrap occuring, but they are hard
' to read. This program turns the above type of thing into this, so it
' is easier to read:
'
' FOR i = 1 TO 10
' PRINT 10
' SELECT CASE i
' CASE 1
' PRINT "One"
' CASE 2
' PRINT "Two"
' DO
' Ptr = Ptr + 1
' PRINT ":)"
' LOOP UNTIL Ptr = 10
' CASE ELSE
' PRINT "Else"
' END SELECT
' NEXT i
'
DECLARE SUB BuildBox (Title$)
DEFINT A-Z
CONST LMARGIN = 3
CONST TABSIZE = 5
CONST TBLSIZE = 9
DIM TabOver$(TBLSIZE)
DIM TabBack$(TBLSIZE)
DIM SHARED InFile, OutFile
Ptr = 0
INPUT InFile$, OutFile$
InFile = FREEFILE
OPEN InFile$ FOR INPUT AS InFile LEN = 1024
OutFile = FREEFILE
OPEN OutFile$ FOR OUTPUT AS OutFile LEN = 1024
FOR i = 1 TO TBLSIZE
READ TabOver$(i), TabBack$(i)
NEXT i
PRINT #OutFile, SPACE$(LMARGIN); "' This file massaged by STRUCT v1.0"
DO UNTIL EOF(InFile)
LINE INPUT #InFile, Buffer$
Buffer$ = RTRIM$(LTRIM$(Buffer$)) + " "
IF LEFT$(Buffer$, 3) = "REM" THEN
MID$(Buffer$, 1, 3) = "' "
END IF
FOR i = 1 TO TBLSIZE
Temp$ = TabOver$(i)
IF LEFT$(Buffer$, LEN(Temp$) + 1) = Temp$ + " " THEN
Flag = -1
GOTO Jump
END IF
NEXT i
FOR i = 1 TO TBLSIZE
Temp$ = TabBack$(i)
IF LEFT$(Buffer$, LEN(Temp$) + 1) = Temp$ + " " THEN
Ptr = Ptr - 1
IF Ptr < 0 THEN
Ptr = 0
END IF
EXIT FOR
END IF
NEXT i
SELECT CASE LEFT$(Buffer$, 4)
CASE "ELSE", "CASE"
Ptr = Ptr - 1
PRINT #OutFile, SPACE$(Ptr * TABSIZE + LMARGIN) + Buffer$
Ptr = Ptr + 1
GOTO PastPrint
END SELECT
Jump:
PRINT #OutFile, SPACE$(Ptr * TABSIZE + LMARGIN) + Buffer$
PastPrint:
IF Flag THEN
Flag = 0
Ptr = Ptr + 1
END IF
LOOP
END
DATA SELECT,END SELECT
DATA IF,END IF
DATA DO,LOOP
DATA WHILE,WEND
DATA FOR,NEXT
DATA SUB,END SUB
DATA FUNCTION,END FUNCTION
DATA STATIC SUB,END SUB
DATA STATIC FUNCTION,END FUNCTION
--- Maximus 2.01wb
* Origin: VKUG/VPCC QuickBasic Echo - Richmond, BC (1:153/151)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12618
Date: 04-22-93 18:53 (Public)
From: MARTY DUPLISSEY
To: MIKE CLEMENS
Subject: FILE TIME/DATES
────────────────────────────────────────────────────────────────────────────────
Blabbering as if I knew what I was talking about!
In a msg of <19 Apr 93>, Mike Clemens mumbled incoherently to All:
MC> does anyone have a routine to get the time and date of a file?
MC> if so, could you post it? thanks.
Heres some code I captured off the echo a while back to do this.
-----------------------------------cut-----------------------------
DECLARE SUB FileInfo (FSp$, Nm$, FSz&, Yr%, Mon%, Dy%, Hr%, Min%, Sec%, attr$)
'$INCLUDE: 'Qb.bi'
TYPE DTAdatatype
Unused AS STRING * 21
attr AS STRING * 1
Time AS INTEGER
Date AS INTEGER
FileSize AS LONG
FileName AS STRING * 13
END TYPE
REM Sample Usage of FileInfo Subprogram
DECLARE SUB FileInfo (FSp$, Nm$, FSz&, Yr%, Mon%, Dy%, Hr%, Min%, Sec%, attr$)
CONST false = 0, true = NOT false, Move = 1, Normal = 2, ReadOnly = 4, Hidden
= 8, Archive = 16, EveryThing = 30, DelFileInt21h = &H4100,
MoveFilePointerInt21h = &H4200, SetDTAInt21h = &H1A00, GetDTAInt21h = &H2F00,
GetDiskFreeSpaceInt21h = &H3600
DO
PRINT "Enter FileSpec (or [Enter] to end)"
INPUT FSp$
IF LEN(FSp$) = 0 THEN END
loopcount = 1
FSz& = 1
DO UNTIL FSz& = -1
CALL FileInfo(FSp$, Nm$, FSz&, Yr%, Mon%, Dy%, Hr%, Min%, Sec%, attr$)
PRINT Nm$, FSz&, LTRIM$(STR$(Mon%)); "-"; LTRIM$(STR$(Dy%)); "-";
PRINT LTRIM$(STR$(Yr%)), LTRIM$(STR$(Hr%)); ":"; LTRIM$(STR$(Min%));
":";
PRINT LTRIM$(STR$(Sec%)), attr$
loopcount = loopcount + 1
IF loopcount MOD 24 = 0 THEN DO WHILE INKEY$ = "": LOOP
LOOP
LOOP
SUB FileInfo (FSp$, Nm$, FSz&, Yr%, Mon%, Dy%, Hr%, Min%, Sec%, attr$) STATIC
IF times% = 0 THEN
DIM Regs AS RegTypeX
DIM DTA AS DTAdatatype
Regs.ds = VARSEG(DTA)
Regs.dx = VARPTR(DTA)
Regs.ax = &H1A00
CALL INTERRUPTX(&H21, Regs, Regs)
FSCopy$ = FSp$ + CHR$(0)
Regs.ds = VARSEG(FSCopy$)
Regs.dx = SADD(FSCopy$)
Regs.cx = &H16
Regs.ax = &H4E00
times% = 1
ELSE
Regs.ax = &H4F00
END IF
CALL INTERRUPTX(&H21, Regs, Regs)
IF (Regs.ax AND &HFF) <> 0 THEN
FSz& = -1
times% = 0
EXIT SUB
END IF
FSz& = DTA.FileSize
Yr% = (DTA.Date AND &H7FFF) \ 512 + 80
IF DTA.Date < 0 THEN Yr% = Yr% + 64
IF Yr% > 99 THEN Yr% = Yr% - 100
Mon% = ((DTA.Date AND &H7FFF) \ 32) AND &HF
Dy% = DTA.Date AND &H1F
Hr% = (DTA.Time AND &H7FFF) \ 2048
IF DTA.Time < 0 THEN Hr% = Hr% + 16
Min% = ((DTA.Time AND &H7FFF) \ 32) AND &H3F
Sec% = (DTA.Time AND &H1F) * 2
Nm$ = DTA.FileName
J% = INSTR(Nm$, CHR$(0))
Nm$ = LEFT$(Nm$, J% - 1)
attr$ = STRING$(6, 32)
IF (ASC(DTA.attr) AND &H20) <> 0 THEN MID$(attr$, 1, 1) = "A"
IF (ASC(DTA.attr) AND &H10) <> 0 THEN MID$(attr$, 2, 1) = "D"
IF (ASC(DTA.attr) AND &H2) <> 0 THEN MID$(attr$, 3, 1) = "H"
IF (ASC(DTA.attr) AND &H1) <> 0 THEN MID$(attr$, 4, 1) = "R"
IF (ASC(DTA.attr) AND &H4) <> 0 THEN MID$(attr$, 5, 1) = "S"
IF (ASC(DTA.attr) AND &H8) <> 0 THEN MID$(attr$, 6, 1) = "V"
END SUB
-----------------------------------------cut-------------------------------
MARTY
--- GoldED 2.40
* Origin: World Link, Longview,TX.USA OS/2 (903-643-7607) (1:398/1)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12619
Date: 04-22-93 19:17 (Public)
From: MARTY DUPLISSEY
To: ALL
Subject: Nushell.bas 1/5
────────────────────────────────────────────────────────────────────────────────
Blabbering as if I knew what I was talking about!
Apparently everyone did not get my post of Nushell in binary format.
Here is a Text version. It will return an errorlevel from a child process.
'________O_/________________________| SNIP |______________________\_O_______
' O \ | HERE | / O
'This file created by PostIt! v5.1.
'>>> Start of page 1.
'**********************************************************************
'* NS.BAS
'**********************************************************************
'* This code is hereby donated to the public domain by Logan Ashby on
'* 3/1/1992. Use, abuse, and enjoy freely.
'**********************************************************************
'$INCLUDE: 'QBX.BI' 'PDS 7.1 *Comment out the one you don't need *
'$INCLUDE: 'QB.BI' 'QB 4.?
DEFINT A-Z
TYPE ParmBlockType '| The parameter block structure for
EnvPtr AS INTEGER '| the DOS EXEC interrupt
CmdLinePtr AS LONG
FCB1Ptr AS LONG
FCB2Ptr AS LONG
END TYPE
TYPE FCBType
FCBBlock AS STRING * 12
END TYPE
TYPE DOSFindType '| The DTA structure for the DOS
Reserved AS STRING * 21 '| FindFirst/FindNext functions
DFileAttr AS STRING * 1
DosTime AS INTEGER
DosDate AS INTEGER
FileSize AS LONG
FileName AS STRING * 13
END TYPE
CONST FALSE = 0
CONST TRUE = NOT FALSE
DECLARE FUNCTION FixChildName$(CmdLine$)
DECLARE FUNCTION NuShell% (CommandLine$)
DECLARE SUB SearchCurDir(SFileName$, Found%)
DECLARE SUB SearchPath(SFileName$, Found%)
'═══════════════════════════════ Main Module ══════════════════
DIM SHARED Null$
DIM SHARED CR$
Null$ = CHR$(0)
CR$ = CHR$(13)
CLine$ = COMMAND$
'╔═════════════════════════════════════════════════════════════════════╗
'║ The following function call will run a child process and return the║
'║ errorlevel it exited with. If the errorlevel is negative, this
'║ indicates that there was an error in the function, not the called
'program.
'╚═════════════════════════════════════════════════════════════════════╝
ErrLevel% = NuShell%(Cline$)
SELECT CASE ErrLevel%
CASE -1 :
PRINT "Invalid Interrupt Call Function Number"
CASE -2 :
PRINT "File Not Found"
CASE -5 :
PRINT "Access Denied"
CASE -6 :
PRINT "Insufficient Memory Available"
CASE -10 :
PRINT "Invalid Environment"
CASE -11 :
PRINT "Invalid Format"
CASE ELSE :
PRINT "The ErrorLevel returned was"; ErrLevel%
'>>> Continued on page 2.
--- GoldED 2.40
* Origin: World Link, Longview,TX.USA OS/2 (903-643-7607) (1:398/1)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12620
Date: 04-22-93 19:16 (Public)
From: MARTY DUPLISSEY
To: ALL
Subject: Nushell.bas 2/5
────────────────────────────────────────────────────────────────────────────────
'>>> Start of page 2.
END SELECT
END
'══════════════════════════════ FixChildName═════════════════════════
FUNCTION FixChildName$(CmdLine$)
CmdLine$ = LTRIM$(RTRIM$(CmdLine$)) '| Get rid of any extra spaces
IF (LEN(CmdLine$) = 0) THEN '| If passed a null command
' line,
'| execute the command
' processor
'| (go to a DOS prompt)
FixChildName$ = ENVIRON$("COMSPEC") + Null$
CmdLine$ = Null$ + CR$
EXIT FUNCTION
END IF
SpacePos% = INSTR(CmdLine$, " ") '| Find where Child program
' args start
IF (SpacePos%) THEN '| Strip Child program name from
'| its command line
ChildName$ = LEFT$(CmdLine$, SpacePos% - 1)
CmdLine$ = LTRIM$(MID$(CmdLine$, SpacePos%))
ELSE
ChildName$ = CmdLine$
CmdLine$ = ""
END IF
CALL SearchCurDir(ChildName$, Found%) '| Is it in the current
' directory?
IF (NOT Found%) THEN '| No, how 'bout on the path?
CALL SearchPath(ChildName$, Found%)
END IF
IF (Found%) THEN '| We found it one place or the
' other.
IF (UCASE$(RIGHT$(ChildName$, 3)) = "BAT") THEN
'| Its a batch file we load
' COMMAND.COM
'| to run it for us.
CmdLine$ = "/C " + ChildName$ + " " + CmdLine$
FixChildName$ = ENVIRON$("COMSPEC") + Null$
ELSE
'| Its a 'com' or 'exe' file.
FixChildName$ = ChildName$ + Null$
END IF
ELSE
FixChildName$ = Null$ '| Couldn't find it.
EXIT FUNCTION
END IF
CmdLine$ = LTRIM$(RTRIM$(CmdLine$)) '| Strip off extra spaces
'| Fix the command line.
'| The first byte must be
' length of
'| the command string, the
' last
'| byte is a carriage return.
CmdLine$ = CHR$(LEN(CmdLine$)) + CmdLine$ + CR$
END FUNCTION
'═════════════════════════════════ NuShell════════════════════════
FUNCTION NuShell% (CommandLine$)
DIM FCB1 AS FCBType
DIM FCB2 AS FCBType
DIM ParmBlock AS ParmBlockType
DIM ChildName AS STRING * 64
DIM ChildCmdLine AS STRING * 64
DIM RegXs AS RegTypeX
ParmBlock.EnvPtr = 0 '| Initialize the parameter
' block
FCB1.FCBBlock = Null$ + STRING$(11, " ")
FCB2.FCBBlock = Null$ + STRING$(11, " ")
ParmBlock.FCB1Ptr = (VARSEG(FCB1) * &H10000) + VARPTR(FCB1)
ParmBlock.FCB2Ptr = (VARSEG(FCB2) * &H10000) + VARPTR(FCB2)
ChildName = FixChildName$(CommandLine$) '| Set up program to call
IF (LEFT$(ChildName, 1) = Null$) THEN '| Oops, we couldn't find the
' file
NuShell% = -2 '| to run.
EXIT FUNCTION
'>>> Continued on page 3.
--- GoldED 2.40
* Origin: World Link, Longview,TX.USA OS/2 (903-643-7607) (1:398/1)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12621
Date: 04-22-93 19:17 (Public)
From: MARTY DUPLISSEY
To: ALL
Subject: nushell.bas 3/5
────────────────────────────────────────────────────────────────────────────────
'>>> Start of page 3.
END IF
'| This is command line
' parameter set
ChildCmdLine = CommandLine$ '| for the child process
'| See how much memory we have
FMemLeft1& = SETMEM(0) '| available on far heap.
'| De-allocate what memory we
' can
FMemLeft2& = SETMEM(-(FMemLeft1& - &H100))
ParmBlock.CmdLinePtr = (VARSEG(ChildCmdLine) * &H10000) +_
VARPTR(ChildCmdLine)
RegXs.ax = &H4B00 '| Set up for CALL InterruptX
RegXs.bx = VARPTR(ParmBlock)
RegXs.dx = VARPTR(ChildName)
RegXs.ds = VARSEG(ChildName)
RegXs.es = VARSEG(ParmBlock)
CALL InterruptX(&H21, RegXs, RegXs) '| Call DOS EXEC function
IF (RegXs.Flags AND 1) THEN '| We errored out, get error
' code,
NuShell% = -(RegXs.ax) '| make it negative to avoid
' confusing
END IF '| it with an errorlevel
' return
FMemLeft3& = SETMEM(FMemLeft1& - &H100)
RegXs.ax = &H4D00 '| Call DOS Get Return Code
' function
CALL InterruptX(&H21, RegXs, RegXs)
NuShell% = RegXs.ax AND &HFF
END FUNCTION
'═══════════════════════════════ SearchCurDir══════════════════════
SUB SearchCurDir(SFileName$, Found%)
DIM SRegXs AS RegTypeX
DIM DOSFindBuff AS DOSFindType '| DOS Findfirst buffer
DIM FindFileBuff AS STRING * 64 '| Buffer to hold file path
DIM TestExts$(3)
TestExts$(1) = ".COM"
TestExts$(2) = ".EXE"
TestExts$(3) = ".BAT"
Found% = FALSE
GotExt% = INSTR(SFileName$, ".")
SRegXs.ax = &H2F00 '| Get the old DTA address
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
OldDTASeg% = SRegXs.es '| Save it to restore later
OldDTAOff% = SRegXs.bx
SRegXs.ax = &H1A00 '| Set our filefind buffer as
SRegXs.ds = VARSEG(DOSFindBuff) '| the new DTA
SRegXs.dx = VARPTR(DOSFindBuff)
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
IF (GotExt%) THEN
'| Load our current filename
FindFileBuff = SFileName$ + Null$
SRegXs.ax = &H4E00 '| into the FileName buffer
SRegXs.cx = 0 '| Attribute for 'normal' files
SRegXs.ds = VARSEG(FindFileBuff)
SRegXs.dx = VARPTR(FindFileBuff)
'| Call the DOS findfirst func.
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
IF ((SRegXs.flags AND 1) <> 1) THEN
'| Found it, exit the loop
SFileName$ = SFileName$
Found% = TRUE
END IF
ELSE
FOR i% = 1 TO 3
'| Load our current filename
FindFileBuff = SFileName$ + TestExts$(i%) + Null$
SRegXs.ax = &H4E00 '| into the FileName
' buffer
SRegXs.cx = 0 '| Attribute for 'normal'
' files
SRegXs.ds = VARSEG(FindFileBuff)
SRegXs.dx = VARPTR(FindFileBuff)
'| Call the DOS findfirst
' func.
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
IF ((SRegXs.flags AND 1) <> 1) THEN
'>>> Continued on page 4.
--- GoldED 2.40
* Origin: World Link, Longview,TX.USA OS/2 (903-643-7607) (1:398/1)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12622
Date: 04-22-93 19:17 (Public)
From: MARTY DUPLISSEY
To: ALL
Subject: Nushell.bas 4/5
────────────────────────────────────────────────────────────────────────────────
'>>> Start of page 4.
'| Found it, exit the loop
SFileName$ = SFileName$ + TestExts$(i%)
Found% = TRUE
EXIT FOR
END IF
NEXT i%
END IF
SRegXs.ax = &H1A00 '| Restore the original DTA
SRegXs.ds = OldDTASeg%
SRegXs.dx = OldDTAOff%
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
END SUB
'═══════════════════════════════ SearchPath════════════════════════════
SUB SearchPath(SFileName$, Found%)
DIM SRegXs AS RegTypeX
DIM DOSFindBuff AS DOSFindType '| DOS Findfirst buffer
DIM FindFileBuff AS STRING * 64 '| Buffer to hold file path
DIM TestExts$(3)
TestExts$(1) = ".COM"
TestExts$(2) = ".EXE"
TestExts$(3) = ".BAT"
SRegXs.ax = &H2F00 '| Get the old DTA address
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
OldDTASeg% = SRegXs.es '| Save it to restore later
OldDTAOff% = SRegXs.bx
SRegXs.ax = &H1A00 '| Set our filefind buffer as
SRegXs.ds = VARSEG(DOSFindBuff) '| the new DTA
SRegXs.dx = VARPTR(DOSFindBuff)
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
Path$ = ENVIRON$("PATH")
PathIndex% = INSTR(Path$, "=") + 1
Path$ = MID$(Path$, PathIndex%)
Found% = FALSE
Done% = FALSE
GotExt% = INSTR(SFileName$, ".")
DO WHILE NOT Done%
PathIndex% = INSTR(Path$, ";")
IF (PathIndex%) THEN
'| Set search directory to next
' dir. in
'| path
SrchPath$ = LEFT$(Path$, PathIndex% - 1)
'| If we're not past the end,
' cut this
'| directory off path for
' next pass
IF (LEN(Path$) >= PathIndex%) THEN
Path$ = MID$(Path$, PathIndex% + 1)
ELSE
Path$ = "" '| All done, no more dirs to
' search
Done% = TRUE
END IF
IF (RIGHT$(SrchPath$, 1) <> "\") THEN
'| Add a trailing '\' if needed
SrchPath$ = SrchPath$ + "\"
END IF
IF (GotExt%) THEN
FindFileBuff = SrchPath$ + SFileName$ + Null$
SRegXs.ax = &H4E00
SRegXs.cx = 0 '| Attribute for 'normal' files
SRegXs.ds = VARSEG(FindFileBuff)
SRegXs.dx = VARPTR(FindFileBuff)
'| Call the DOS findfirst func.
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
IF ((SRegXs.flags AND 1) <> 1) THEN
'| Found it, exit DO LOOP
SFileName$ = SrchPath$ + SFileName$
Found% = TRUE
Done% = TRUE
END IF
ELSE
FOR i% = 1 TO 3
'| Load our current filename
'| into the FileName
' buffer
FindFileBuff = SrchPath$ + SFileName$ + TestExts$(i%) +_
Null$
'>>> Continued on page 5.
--- GoldED 2.40
* Origin: World Link, Longview,TX.USA OS/2 (903-643-7607) (1:398/1)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12623
Date: 04-22-93 19:09 (Public)
From: MARTY DUPLISSEY
To: ALL
Subject: Nushell.bas 5/5
────────────────────────────────────────────────────────────────────────────────
'>>> Start of page 5.
SRegXs.ax = &H4E00
SRegXs.cx = 0 '| Attribute for 'normal'
' files
SRegXs.ds = VARSEG(FindFileBuff)
SRegXs.dx = VARPTR(FindFileBuff)
'| Call the DOS findfirst
' func.
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
IF ((SRegXs.flags AND 1) <> 1) THEN
'| Found it, exit both loops
SFileName$ = SrchPath$ + SFileName$ + TestExts$(i%)
Found% = TRUE
Done% = TRUE
EXIT FOR
END IF
NEXT i%
END IF
ELSE '| Check the last directory, if
' there
IF (LEN(Path$)) THEN
'| Set search directory to last
' dir. in
SrchPath$ = Path$ '| path
Done% = TRUE
IF (RIGHT$(SrchPath$, 1) <> "\") THEN
'| Add a trailing '\' if needed
SrchPath$ = SrchPath$ + "\"
END IF
IF (GotExt%) THEN
FindFileBuff = SrchPath$ + SFileName$ + Null$
SRegXs.ax = &H4E00
SRegXs.cx = 0 '| Attribute for 'normal'
' files
SRegXs.ds = VARSEG(FindFileBuff)
SRegXs.dx = VARPTR(FindFileBuff)
'| Call the DOS findfirst
' func.
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
IF ((SRegXs.flags AND 1) <> 1) THEN
'| Found it, exit DO LOOP
SFileName$ = SrchPath$ + SFileName$
Found% = TRUE
Done% = TRUE
END IF
ELSE
FOR i% = 1 TO 3
'| Load our current filename
'| into the FileName
' buffer
FindFileBuff = SrchPath$ + SFileName$ +_
TestExts$(i%) + Null$
SRegXs.ax = &H4E00
SRegXs.cx = 0 '| Attribute for
' 'normal' files
SRegXs.ds = VARSEG(FindFileBuff)
SRegXs.dx = VARPTR(FindFileBuff)
'| Call the DOS findfirst
' func.
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
IF ((SRegXs.flags AND 1) <> 1) THEN
'| Found it, exit both loops
SFileName$ = SrchPath$ + SFileName$ +_
TestExts$(i%)
Found% = TRUE
EXIT FOR
END IF
NEXT i%
END IF
ELSE
Done% = TRUE
END IF
END IF
LOOP
SRegXs.ax = &H1A00 '| Restore the original DTA
SRegXs.ds = OldDTASeg%
SRegXs.dx = OldDTAOff%
CALL INTERRUPTX(&H21, SRegXs, SRegXs)
END SUB
'________O_/________________________| SNIP |______________________\_O_______
' O \ | HERE | / O
--- GoldED 2.40
* Origin: World Link, Longview,TX.USA OS/2 (903-643-7607) (1:398/1)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #8263
Date: 04-26-93 12:07 (Public)
From: QUINN TYLER JACKSON
To: ALL
Subject: fun & games
────────────────────────────────────────────────────────────────────────────────
' LITESHOW.BAS by Quinn Tyler Jackson
' Here's a silly program for everyone that plays three songs in the
' background while building pretty boxes and fireworks on the screen for
' everyone to enjoy! It's fast even in QBASIC at 7Mhz. I've added a timing
' checker to speed up or slow down bursts according to CPU speed.
DEFINT A-Z
PRINT "Wait while I gauge speed of your system...."
Start! = TIMER
FOR a = 1 TO 5000
nul = SQR(3)
NEXT a
Modifier! = (TIMER - Start!) / 2.5
ON PLAY(2) GOSUB music
PLAY ON
NextSong = 1
PLAY "MBO3N0N0N0"
CLS
SCREEN 13
DO
IF RND > .95 THEN
CentrePointX = RND * 320
CentrePointY = RND * 200
FOR a = 1 TO 250 / Modifier!
LINE (CentrePointX, CentrePointY)-(RND * 320, RND * 200), RND * 255
NEXT a
ELSE
LINE -(RND * 320, RND * 200), RND * 255, BF
END IF
LOOP UNTIL INKEY$ <> ""
END
music:
READ Bar$
IF Bar$ <> "END_OF_SONG" THEN
PLAY Bar$
ELSE
SELECT CASE NextSong
CASE 1
RESTORE ItalianData
NextSong = 2
CASE 2
RESTORE HavaNagilahData
NextSong = 3
CASE 3
RESTORE HelloMyBabyData
NextSong = 1
END SELECT
PLAY "MBO3N0N0N0"
END IF
RETURN
HelloMyBabyData:
DATA "MLT200<C8MNDP32.MLC8DC<A8MNB-P32."
DATA "MLA8B-AP32G8MNAP32.MLG8AGD<BAG>P32A8G"
DATA "P32F#8AG>C<<B-AG>P32F8AP32>C8EDC<<GAB->>"
DATA "C8MNDP32.MLC8DC<A8MNB-P32."
DATA "MLA8B-AP32G8MNAP32.MLG8AGDP32.DEFA8A8"
DATA "G2P32F#AG>T190MNCP64"
DATA "ML<AF2<C8DC8DF2P32E32E-32D32D-32C32<B32B-32A32A-32G32G-32FP4>>" DATA
"END_OF_SONG"
ItalianData:
DATA "<<T225MSG8>MNC<E8EE8EMS>C8<BB8GG8AA8MNEP8MLE2
DATA "MNP8E8DC8C<G8GG8GP16>E8DC8C<G8GG8GG8"
DATA "G>MSG8>MNC<E8EE8E>C8<BB8MSGMNG8MSAMNA8EP8MLE2
DATA "MNP32E8DC8C<G8GG8G8>P8E8DC8C<G8GG8G"
DATA "G8G>MSE8E<MNB8BB8B>MSE8F#F#8MNEMSE8MNF#F#8E.
DATA "MLE2.MNP8<B8BB8MLB1MNP8B8BB8BG8GG8GG8GP16MS>G8
DATA "MNGD8DD8DMSG8AMNA8GG8AA8GD8GD8D"
DATA "MSD8MNDD8D<B8BB8BP16>D8DD8D<B8BB8BP16"
DATA "B8BB8>MLB.A8P4B.A8P4>MSCMN<B8A>C8<B<<D8<MLBA8>>B.A8MNP4B.A8P4> DATA
"MSCMN<B8MSA>C8<MSGE8EE8MNEE8EE8EE8EE8E"
DATA "E8EE8>C1DC8<A>C8<MSGE8MNEF8MSGMNF8ED8MLC1P4"
DATA "END_OF_SONG"
HavaNagilahData:
DATA "T150<<MLDP64D.G-8E-8MND8MLG-P64G-.A8G8"
DATA "MNG-8MLGP64G.B-8A8G8P64G-E-8P64E-8D.P16G-8P64G-E-8D8P64" DATA
"D8P64D8P8E-8P64E-D8C8P64C8P64C8P8CE-"
DATA "D16C8P64C8GP64G-E-8P64E-8DP4MNG2G2"
DATA "MLG16P64G16P64MNG8P32MSB-8P16A16MNG8B-8A8G8P64"
DATA "MLG16P64G16P64MNG8P32MSB-8P16A16MNG8B-8A8G8P64"
DATA "MLA16P64A16P64MNA8P32MS>C8P16<MNB-16A8>C8<B-8A8P64"
DATA "MLA16P64A16P64MNA8P32MS>C8P16<MNB-16A8>C8<B-8A8P64"
DATA "A16A16MSA8MN>D2<A16A16MSA8MN>D2<A16A16MNA8MN>D2.D-32MLC64<" DATA
"B64B-64A64A-64G64G-64F64E64E-64"
DATA "T170>><<MLDP64D.G-8E-8MND8MLG-P64G-.A8G8"
DATA "MNG-8MLGP64G.B-8A8G8P64G-E-8P64E-8D.P16G-8P64G-E-8D8P64" DATA
"D8P64D8P8E-8P64E-D8C8P64C8P64C8P8CE-"
DATA "D16C8P64C8GP64G-E-8P64E-8DP4MNG2G2"
DATA "MLG16P64G16P64MNG8P32MSB-8P16A16MNG8B-8A8G8P64"
DATA "MLG16P64G16P64MNG8P32MSB-8P16A16MNG8B-8A8G8P64"
DATA "MLA16P64A16P64MNA8P32MS>C8P16<MNB-16A8>C8<B-8A8P64"
DATA "MLA16P64A16P64MNA8P32MS>C8P16<MNB-16A8>C8<B-8A8P64"
DATA "A16A16MSA8MN>D2<A16A16MSA8MN>D2<A16A16MNA8MN>D2.D-32MLC64<" DATA
"B64B-64A64A-64G64G-64F64E64E-64"
DATA "T190>><<MLDP64D.G-8E-8MND8MLG-P64G-.A8G8MNG-8"
DATA "MLGP64G.B-8A8G8P64G-E-8P64E-8D.P16G-8P64G-E-8D8P64"
DATA "D8P64D8P8E-8P64E-D8C8P64C8P64C8P8CE-"
DATA "D16C8P64C8GP64G-E-8P64E-8DP4MNG2G2"
DATA "MLG16P64G16P64MNG8P32MSB-8P16A16MNG8B-8A8G8P64"
DATA "MLG16P64G16P64MNG8P32MSB-8P16A16MNG8B-8A8G8P64"
DATA "MLA16P64A16P64MNA8P32MS>C8P16<MNB-16A8>C8<B-8A8P64"
DATA "MLA16P64A16P64MNA8P32MS>C8P16<MNB-16A8>C8<B-8A8P64"
DATA "A16A16MSA8MN>D2<A16A16MSA8MN>D2<A16A16MNA8MN>D2.D-32MLC64<" DATA
"B64B-64A64A-64G64G-64F64E64E-64"
DATA "D64D-64C64<B64B-64A64A-32G8P4"
DATA "END_OF_SONG"
--- Maximus/2 2.01wb
* Origin: The Nibble's Roost, New Westminster BC 604-526-7686 (1:153/918)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #8629
Date: 04-26-93 16:39 (Public)
From: CALVIN FRENCH
To: ALL
Subject: LCOUNT.BAS useful utilit
────────────────────────────────────────────────────────────────────────────────
Hello All! Here's a SIMPLE little program that I wrote it's
certainly nothing any of you guys couldn't have written but I
thought i'd spare you the time and post it anyways. Well, it
just counts up all the lines, commented lines, etc in the
program and outputs the information to a file (if you like) so
you can keep track. It's really simple I just thought someone
would like to have a look and use it like i do. It's really
pretty useful.
___------------------- Cut Here -----------------------------
INPUT "File to read? ", f$
CLS
DEFINT A-Z
OPEN f$ FOR INPUT AS #1
DO WHILE NOT EOF(1)
LOCATE 1, 1
lin& = lin& + 1
PRINT "Reading Line: "; lin&
LINE INPUT #1, a$
IF LEFT$(a$, 1) <> "'" AND LEFT$(a$, 1) <> "REM" THEN code& = code& + 1
IF INSTR(a$, "'") > 0 OR INSTR(a$, "REM") > 0 THEN clin& = clin& + 1
char& = char& + LEN(a$)
LOOP
PRINT "------------------------------------"
PRINT "lines: "; lin&
PRINT "pages: "; lin& / 24
PRINT "printer pages (by 80s): "; lin& / 80
PRINT "chars: "; char&
PRINT "bytes: "; LOF(1)
PRINT "lines with code: "; code&
PRINT "commented lines: "; clin&
PRINT "------------------------------------"
PRINT "-RAW- Source code "; lin& - clin&
PRINT "Output to file?";
a$ = INPUT$(1)
IF UCASE$(a$) = "Y" THEN
PRINT " Yes!"
OPEN "BASDAT.TXT" FOR APPEND AS #2
PRINT #2, "File Data for "; f$; " as of "; DATE$
PRINT #2, "------------------------------------"
PRINT #2, "lines: "; lin&
PRINT #2, "pages: "; lin& / 24
PRINT #2, "printer pages (by 80s): "; lin& / 80
PRINT #2, "chars: "; char&
PRINT #2, "bytes: "; LOF(1)
PRINT #2, "lines with code: "; code&
PRINT #2, "commented lines: "; clin&
PRINT #2, "------------------------------------"
PRINT #2, "-RAW- Source code "; lin& - clin&
PRINT #2, ""
CLOSE
END
END IF
PRINT " No!"
END
------------------------------------------------[here]---------------
BTW Here's the LCOUNT specs for C-TD20 so far to give you an idea of how it
works:
File Data for c-td45t.bas as of 04-25-1993
------------------------------------
lines: 2983
pages: 124.2916666666667
printer pages (by 80s): 37.2875
chars: 64547
bytes: 70513
lines with code: 2575
commented lines: 510
------------------------------------
-RAW- Source Code: 2473
... OFFLINE 1.52 "REAL programmers cross-develop on a GE toaster."
--- Maximus 2.01wb
* Origin: RJ's Byteline =[HST/DS]= Calgary (403)247-3180 CANADA (1:134/75)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12291
Date: 04-01-93 23:42 (Public)
From: EARL MONTGOMERY
To: MIKHAIL FERDMAN
Subject: 256 Colors
────────────────────────────────────────────────────────────────────────────────
' Mikhail, I think this will help you.
' Study the source code.
' Special note for Victor Yiu: I wrote this program about 2
' years ago. I didn't feel up to changing the WAIT1: etc <smile>
SCREEN 9: CLS : COLOR 14: RANDOMIZE TIMER: DEFINT R
PRINT "In the VGA (320*200*256) mode the palette command can";
PRINT "use values between 0 and 63. Did you realize that";
PRINT "regardless of the color you select that the color";
PRINT "changes from black to bright orange? Not much of a";
PRINT " selection!"
PRINT "Want to see what I mean?"
PRINT
PRINT " Press any key to continue."
wait1:
i$ = INKEY$
IF i$ = "" THEN
GOTO wait1
END IF
SCREEN 13
COLOR 8
LINE (0, 0)-(319, 199), , B
FOR y = 0 TO 169 STEP 10
LINE (0, y)-(319, y)
NEXT
FOR X = 0 TO 319 STEP 20
LINE (X, 0)-(X, 160)
NEXT
y = 4
loop1:
FOR X = 12 TO 319 STEP 20
PAINT (X, y), c, 8
c = c + 1
NEXT
y = y + 10
IF y > 156 THEN
GOTO loop2
ELSE
GOTO loop1
END IF
loop2:
r = RND * 255: IF r = 8 THEN GOTO loop2
IF r = 0 THEN GOTO loop2
FOR X = 0 TO 63
t = TIMER
WHILE TIMER < t + .1
WEND
COLOR 14
LOCATE 22, 2
PRINT "Color "; r;
LOCATE 22, 26
PRINT "Palette "; X
PALETTE r, X
NEXT
ct = ct + 1
IF ct = 4 THEN
ct = 0
GOTO Text2
' End of part one of four parts.
--- Maximus 2.01wb
* Origin: Verbose Ink * Dallas * 214-437-0914 * V32b/HST (1:124/5125)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12292
Date: 04-01-93 23:44 (Public)
From: EARL MONTGOMERY
To: MIKHAIL FERDMAN
Subject: 256 Colors
────────────────────────────────────────────────────────────────────────────────
'part 2 of 4 parts.
END IF
GOTO loop2
Text2:
t = TIMER
WHILE TIMER < t + 3
WEND
SCREEN 9
CLS
COLOR 14
PRINT "Well that should be enough to prove the point. So how";
PRINT "do we access all those beautiful shades of color";
PRINT "available in VGA? Well we can accomplish this by going";
PRINT "directly to the VGA palette Registers. Remember that";
PRINT "each color consist of Red Green & Blue components. We";
PRINT "can set any color to any shade by adjusting the amount":
PRINT "of R G B within the color. How do we accomplish this?"
PRINT
PRINT "Example:"
PRINT "SCREEN 13:CLS"
PRINT "OUT &H3C8,22"
PRINT "OUT&H3C9,55:OUT&H3C9,45:OUT&H3C9,25"
PRINT "End of example"
PRINT "Send the color you wish to work with to register &H3C8.";
PRINT : PRINT "In this case color 22."
PRINT "Send the RGB values (0-63) to &H3C9. In this case Red";
PRINT "is 55, Green is 45 and Blue is 25. This particular"'
PRINT "combination gives a predominant yellow shade."
PRINT "Let's see it in action. First we will draw and color";
PRINT "the circle with color 22 then we will change the RGB";
PRINT "to change it to a shade of yellow."
PRINT
PRINT " Press any key to continue."
wait2:
i$ = INKEY$
IF i$ = "" THEN
GOTO wait2
END IF
SCREEN 13
CLS
COLOR 22
CIRCLE (160, 100), 90
PAINT (160, 100), 22, 22
t = TIMER
WHILE TIMER < t + 3
WEND
OUT &H3C8, 22
OUT &H3C9, 55
OUT &H3C9, 45
OUT &H3C9, 25
t = TIMER
WHILE TIMER < t + 3
WEND
SCREEN 9
CLS
COLOR 14
PRINT "Now let's draw a line and move it down the screen but";
PRINT "each time we move it down we will increase the GREEN";
PRINT "value by .1 to show various shades that are possible."
t = TIMER
WHILE TIMER < t + 9
WEND
'End of part 2 of 4 parts.
--- Maximus 2.01wb
* Origin: Verbose Ink * Dallas * 214-437-0914 * V32b/HST (1:124/5125)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12293
Date: 04-01-93 23:48 (Public)
From: EARL MONTGOMERY
To: MIKHAIL FERDMAN
Subject: 256 Colors
────────────────────────────────────────────────────────────────────────────────
'Part 3 of 4 parts.
SCREEN 13
CLS
ct = 1
cc = 7
y = 0
lnrtn:
OUT &H3C8, cc
LINE (1, y)-(319, y), cc
OUT &H3C9, 10
OUT &H3C9, 22 * ct
OUT &H3C9, 10
ct = ct + .1
y = y + 1
cc = cc + 1
t = TIMER
WHILE TIMER < t + .1
WEND
IF y > 200 THEN
GOTO pause1
ELSE
GOTO lnrtn
END IF
pause1:
t = TIMER
WHILE TIMER < t + 4
WEND
SCREEN 9
CLS
COLOR 14
PRINT "Instructive but not very impressive. Maybe we can end";
PRINT "this with a jazzed up demo. Look at the source to see";
PRINT : PRINT "how it is accomplished."
t = TIMER
WHILE TIMER < t + 8
WEND
SCREEN 13
CLS
REM KEY OFF
X = 1: y = 1: fx = 11: fy = 11: t = 0
jazz:
CIRCLE (X, y), 10, 15
c = c + 1
IF c = 15 THEN
c = 16
END IF
IF c > 255 THEN
c = 1
END IF
OUT &H3C8, c
OUT &H3C9, RND * 63
OUT &H3C9, RND * 63
OUT &H3C9, RND * 63
PAINT (X, y), c, 15
CIRCLE (X, y), 10, c
borders:
X = X + fx
y = y + fy
IF X < 1 THEN
fx = RND(1) * 11 + 1
GOTO borders
END IF
' End of part 3 of 4 parts.
--- Maximus 2.01wb
* Origin: Verbose Ink * Dallas * 214-437-0914 * V32b/HST (1:124/5125)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #12294
Date: 04-01-93 23:50 (Public)
From: EARL MONTGOMERY
To: MIKHAIL FERDMAN
Subject: 256 Colors
────────────────────────────────────────────────────────────────────────────────
' Part 4 of 4 parts.
IF X > 320 THEN
fx = 0 - (RND(1) * 11 + 1)
GOTO borders
END IF
IF y < 1 THEN
fy = RND(1) * 11 + 1
GOTO borders
END IF
IF y > 200 THEN
fy = 0 - (RND(1) * 11 + 1)
GOTO borders
END IF
ct = ct + 1
IF ct >= 1500 THEN
GOTO bye
END IF
GOTO jazz
bye:
t = TIMER
WHILE TIMER < t + 3
WEND
SCREEN 0
CLS
END
'End of part 4 of 4 parts.
--- Maximus 2.01wb
* Origin: Verbose Ink * Dallas * 214-437-0914 * V32b/HST (1:124/5125)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #7632
Date: 04-03-93 16:45 (Public)
From: JOHN GALLAS
To: ALL
Subject: eliza.bas 1/3
────────────────────────────────────────────────────────────────────────────────
Heres a PostIt! script for an eliza artificial intelligence program. I
would've addressed it to the person who was asking for one, but I can't
remember his name! So anyways, here it is..
'Save this script to a file, edit out all of the non-QB related text and
'execute it in a QB environment to retrieve ELIZA2.LZH.
DEFINT A-Z:DIM SHARED A(685)AS STRING*63,I,T$:FOR A=0 TO 6:P(A)=2^A
NEXT:T$="abcdefghijklmnopqrstuvwxyz":T$=T$+UCASE$(T$)+"0123456789()"
G"qIuylSHwnTK7caaGKzaaaekwZsasajuetjPvqUq0tdPlrnbaaiSmDAATruh32KPA
G"fL(3tSyifehK006ILqqQni5M4TnjlolXZw4kzWU7oBC3mADf)X)Vx2AkP4COuLSu
G"5cHV)GDYAJ2ycdynd)Z(ld4(ZCTTxNA1to9Ilmp(kN)p98Noh6)ftyEZl13vR2Au
G"YxBwRvR26wzdlkONA7APWng1AdUYP5MTxTtfNkNT6O5gEflKfB4DxjUnLbSTn2QH
G"wfBZdtXAzRoyRix6zcABRQt92FvadSX(BlIslBq)CzBwX3f7VRUI07QkuDhxyr)j
G"OUUPs9(93JIx61bDUDAJDqvE5NCVEyQTUgoxvA1Yk1QIr(T3MHaU7vnWpVyaR61r
G"WZUR9FMT05(gKydmw1ZLPQHR3qxkme2watJJlfmN7SUcJ26vDZG30wD06tzTHD22
G"zJIEvv6Gy9JkgQqZw2k7(vKzyD)XE0AG3uhBSuGt1QyTpgB1mQJL3RRDgwlrzI4u
G"pXfM7yFC8dFeADwDwlbYYspd3Q7v4k()n0SMjRBPnATrQJsvXgcCYImmP2MVhOot
G"x6cq9vLXORbI4Gl2Tvf1q6CjxziIseMsz(IlmMLQv37fslATcspTGpBsp6DBiCrl
G"31Wl1uNwRDYH7e5d(wNA3CGYD7iYmgvzBocyVLa)EZYRo(nuwpDbn0V9GcMDb9j0
G"0b(1RlQKWnUDuV8qCmL7tp)gia9nfd52MBdZRdARTzDV7OincRSg9p2F9Ilz54qW
G"kd(RzLxwRd)wTGCt2P0ZvjSdLFY3AdMwvUTnJs)bfxcJM43kTVIesAbz5LPDASPE
G"ROvZcE2riXNWedftANrnNiJtzKGvcGIV8bPYr93vfPIeWnuIeho(UGIlPEBn1qtz
G"lCKunJIFmnR)OFedKe451MqcysO1Y0g2u416(cuePWihPP2AqsPZRbTgkOxb7IpS
G"gq6sDiHvO715hdKJN1cmy95iinp6TVCN(CKNuAoHsiNtThFe5k25wYw9a9lVffCu
G"WEgwqUuTFDPG9L3(ZnltUUD9StQCh2fG)1tUvA5qKFN)IugHn7LAkO5inmrTDPtd
G"Qig2vtkKQGDDoe7YkSxNvTNXJ2vYFVQelR58x1CaTCmsRNIcETY57csqyvyGaawk
G"Tr(F56i)MNPfRP7WvF(e)jfM9oLepQOv7BnSuRRmmSDXKLgVt2zfCqv5e1Vt56gZ
G"1kLsk8ib9hNM8t1gKOkUUK5zw)pbAssxG9RbkWExRroKpCD4rYv0AoORXtJKwRKP
G"6vP6zT31KRi13WEeJMsBMY)e50fxb2HyxEUhH)xbKdPuoG3JpwNfs)fdQjbfeZWC
G"uCn3rtBhLuLvwoyuT4zlnwxF)2u3TsCV(R6fR1MGV9n3bD3Y1F9dX(NvOQleek4y
G"4cKEGhHSD24F4j)dl)t62wgMsPMBaffaPK3F70IP)FWW(pdkIFIaOhseVgOvIPfC
G"zAd0MyqDyVF6gAIR5SVlUIhxUX2iD7YlAH5TUNKpTyXHIWd05JTgRSMPzP9gf5hq
G"CnVsFjsMruXiMURX8ITS2fBeU8cucDqayomA6t944rEuDGpaw0O1X8H2VI1EJG4H
G"FUkM9bKTs61Dc3oFJp1cTnR1GL4(KEzzF(uJwT5VTe(2Wp9T4y2wA(CDJbV99BzI
G"erBOWKjfFI5TxkcL9fHOQsV7r9qJ9LViAjno)rtTaHRr(aNAXgFQ3fdvkJk4Usqn
G"ItJirinrDzCXBQDqqJvxWwIEynpz162vakB7Sm6wXu8gnGJq4JTpIvOEP611kh7e
G"BWRj4nx8izbslJ2qBIHEai6eEK0a65g4m7C2wod9La8WPqdQ6gcXhEfITqHnnZF6
G"fdqpiehZL8Pw3QC6vyK)beuxewldMXp(e78RaLYUh52oA41QzXAL6yo3kQwKmqRT
G"sw83fOzoGRie9B77LaJIpm4ldsGxtD0rmbItSrsmo1j(4v6qLEQ6aaxakfqsemur
G"zaVpIH(7ckaLKIm7CLHo)(st7ZRqNfbMqOMOiSpRMu460RVFPEb48GbSvwHws4Mw
G"NyMYT5g0SlIDfmcDhKEViF8gVJYrlRt2neNIAsqjmpa8YfdJjplkzKAzDLfnndPd
G"ClRk17nKCSGbmq4VSySK20RJOY6lI39Q08Q(LpqcbBFaBUtjsLNOvU72Zhpy3qjy
G"OhdiWI)sayhXofnKhhas913z90vPCJStdmg21zj8Dkl8v4IBCU06DLuevJJuq5vO
G"Na6nqSOj7i7ukNu9)p0t7)I2b)bXBf8et703KmVoYOOvevlLU1jrVQ04jIsrqq9e
G"8lPLlNUS5YJmIiAZDh)WcgBevDgsIe3t8prCBInCKw4vSLQ7IvVk2QVsE)6BxD8h
G"6dblnXrzokrYwfLXoZAEWUiAWJx)YtOTbgvt275RxxgJm)E2v7NQE1Xg2YGo1zZA
G"HZxhoC5ShUSVfw3()VK5QpLiD0D)(ZtcPii8W9nlPE9kxzMMKGig1W4Fx93S8)ri
G"RL)97j)9ECi7AaXMBGw42sw)sUv2jODkHyEy2HTLGh66jzL1gVH74ECA7b(KmOuo
G"RDgPnqsBCHT5PRo6nl3D1XN(5BwydocMFutDmY2EIy2woFvbPFZKeXqPIMSw(yq4
G"iRm7fYnldc(eFXffulOGh)AnWF4n05NfYvNLZGrxsu31oPnmIkgkQcqa6td)tqcG
G"LkFdr1llgIpjvuqXQpYImouQaJRtlbyMwKl3f4u8x8kErUactbBs5JSzl3k2ArLh
G"vcbcPwuXoNuYJXWX7nDssXZ6WewGJGa7XivNDLiA6gjyHs2e5Cwa1vPDLE1(Cpw3
G"c5P59kXOPVJ4llJBJGrf49URx8fqawBBPzkCHaCZGSy(XUi5cU5Obv7N)uKfgNeO
G"QG7yVeKkayb(Vk0jn01KKV3jXQBbrwAtiqgovmFirb8jtWsupczmltpYIdbcR8sC
G"(7uGinoDs2rxYkws7IvbH5kmzz2J1uWvaofTqI9pdEtS4DGssfUTvkydeo2cAkIG
G"eyMsSzC2yl8wjXU(AYM470eOyer4sjsuw18TdAGjDk9WNmV3DtwDPcNasQitbuHU
G"1tKgQE9iu93Gp5uwt9BYqmDC7MR594waGnY1vS30h6NG6sNiBauxCgXXBJp9MZ(5
G"wVZ(JDKjgL8IBdGLmcknVHMcEyVI6wWra0A0ZKtIpo4xmHoz0T6GiSOymh45BYdu
G"fdiAE8nFnQq0MHQVG0iEXN)DRW6MRXz1)U(7)(h1AEDSu3APItko)q41QC8sycxk
G"28IVZSCGeyGDSCb1HyXSDWR7Ikv0xGMyVjYBgAazIKMlhdmnyqnsxSycehNWOgE6
G"XTjwJsFWfzZ4esPupnTvgevS83Qy5bTajIZp6N1Nv(RTr0uQ3RokWchaicPNbOjF
G"BfxoH6s7aFKeZVBxOkrb(B6zq0dhWd8HVdhkGV9wiigqS5Jd89lYWqKzieuKqjeJ
G"OlBSbhJD0YeNKlx7kwzJoZyRItyFSYQYUzTR)TWgKX4O1IoGqIk)T6lpXdEEHWP2
G"oR62bUQckgUiXAxed4KHihWY1ZmwVDDU9WPNpRsduDmW0YsYwp(hU)topagwtemo
G"4sePgXVYCzSqYt5ZlhdpH61fRhjLsEIEMjeTdy7T(4NBiX1ut6ZKtkbfG(O1HxKw
G"C8RyH8xwakBmJywk8kGmzKYx3cNy)VhymkmHfODbk)gLUe4wgAGrpnfQP0NyPONb
G"1SEc4OHUezFBVqIg2g9F0y(Xf2k2mzWLYjfOznKnkuvtZTDitBYuD4kKOP8r0jQX
G"eW5ojoZjsqpnPnFuswloJ41QPwbkyjzFFV6isrZhjawwCLNkowLy35VnRAcvGDrR
G"klslTc(JwZfjhd5mNkFmWY)WS0NLd3YXJlzC)PfSSZ(9IvYhV)b3X5nAWyPR4GHN
G"A5iA04DUZMZU6QIYMC7aLCijfjLKBW0(n88CN5cFfMHIW5lJmx(xRS4tMK2WunK)
G"TuRcTYebYk6yIceii5my))39arbh7JBEZB)5s5IAja5fG0NQUwsdN89iz2X99HsW
G"pyqX1FU8Z4CgDATtZCymDl(vf4Efin6E0toIjahy3RaoxcYjc2BUhOYtqNltXVk9
G"4D8XFpoA14R3pV8SfqicQTWgA10I2jaaaaWbaay)IDAfibKqrmLKwb5crbrfz71e
G"xaaCqc7zx14A(D87vami9tjHgeSfm(uifvgsW2pPb2A)uZNKBU4f5(UxVjEZJKnn
G"9csEzWltq5L7oC3S2iTLRDwTFfAPDE52pV8jNR3mp6uEYxwuZEwr)mzDEq1vxRjU
G"X8qBmXxj7nx5NtU6VEg64PsVSwRLEPDPlK12q2)ymm)HALAQnkeRzLnDmP1mJXVF
G"FE6NvOLFE5V0QpuU0p(PLP8QPTK70T)uRUv5LmYQdVXc3)XeJtfpFWOM(JYZAzfY
G"rTI0lBruG90jMQ8BVBUwz9knpIgk5VF(5LtrF6KsAp2Ql1ltxZwIEYg0aNXyUDmj
G"8h0GnYuZSM)YZWTSSng2Q9QTF16mPZm3SuSKHjyE7iKPn6oqiD4WzwiTspH(wTyN
G"JRnQ0bQ)AEd7mEgPhGDnCbtc7gJFU2y1(rhJQ6yt8PQ)5(3xFZFvwGDxrASCQcp3
G"7SBiMQKwwCRYS9SrHmLi1Ig9TI1boET1ZwLIjHXopU1yxdrQrICS9VelUf9RIGcc
G"inar8L9rS5cT0gDtsrKDZSQklSqxvtYEFyTbFH(6BVzPblUeSSQMvSppN(gCBDop
G"FltKqt4OVpHh6tXLy)AYrLoHKkg)nRbX(VIJUNbtB9E9ZCXyBhPq8HU(lo6jdYQ5
G"0O)lsxtS2FOSRVPWIjYMeMDDH0QLrAtoqBcBaNt1JTr4cZa63dpgfyOCGnNKmzEZ
G"kkErsVQYO977ToSgU1vn3G)(yPe4OX0)gVR4)1V()VKvULc1xy)Go0Bl0clRzi8A
G"A9)w7eQpVmdhkLJLkzRJWophJQ)0jpHqaZl9nDV)gwohr(Fs7b6Xwms)xbGCJ95F
G"BDulw8SnF2V)kNfoZkiZCpaILprCqDWPyb0CD3f66GVdNr3gjkudbhSf)w4)hqlj
G"MNjYdo9mFdXe(F5HEn6Hi2Yb9e75dFfXlimbgISgruxbH8rtZOKXdcThDh6fSeUx
IF I<>80 THEN ?:?"Page 1 is too short or long!":J=1
* OLX 2.1 TD * Repeat after me: "I will give John Gallas all my money.."
--- Maximus 2.01wb
* Origin: Command Line BBS =Mpls. MN= V.32bis [612-788-6685] (1:282/2007)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #7633
Date: 04-03-93 16:45 (Public)
From: JOHN GALLAS
To: ALL
Subject: eliza.bas 2/3
────────────────────────────────────────────────────────────────────────────────
I=80'Page 2 of ELIZA2.LZH begins here.
G"cnuCgXmsNYUpk2hZbhbcAqSSbqxkfHzcPtrMq729LSuX2BMfJ)hej5zvSl40)O4C
G"Ldr4JPqMja3RdDS53O90xQAqlrdVCbQYWhSOjZ1dA931O2Tl6z07CTR5jmf5(SIr
G"WE2lAf3Cin0rYhlxnnI8WzNs306ZSAG5ZGm7XyYJx)6EcU7OCprrEJRRMJxA660W
G"jJx0r4(hOH0CPkOGSlhKxLkSFk1ncy7nMD9I9uj1nPVUMk2MtfL7hYnYo7syRgGN
G")t4)l7vs0g2cf40WpRoQEJhW9QYc5j)b25Ddqq9Xc(ca9G33dewq5PeqT2Qt246k
G"Qm8PYuuNsTg85l3zkiFXWo6n1BFUPDwp1lJdBDxvdU)f7XuGVxygqpXC)fJB(2FT
G"Z2)W0otxD6cXkVttLz23KePY5Tj3h1njkp6rXe9ItRJccPglQOhUlkOFUrFFKp29
G"qf(SDC5Gqcl(D3DaCPTpBlTa4u28jRU15Vgm67RQmTRNdGXtyTiKyEa5vQyGowX8
G"gs1HTQeYvLmm3RRiOYC(cPxFyDh8lKHespf0rasfvFFVn)D2JzIViD5DvKoGqFta
G"Swc6ImuqncWTBfInTIGntcHm(8BXMztsPPK8xhD)WtDjPT1U)nTwwTfKk8pBryXV
G"zYIhuFTGrpie)Q)LbaE93abLhCiWPKa3MTz3zCeTERCYJ1IyLm9yRNPs)huwqsTF
G"0yi2)eHd2rHRvUYNCYSMOV1(y3r3uOiFGXgqwSUrUFCuMqbABGT4WtXLZNVyP9Ug
G"AggyIYK8o0ZI36S5kw90ZDJJaGKoAazChyzr4AEomLdVCJanGaY44hDyGXvQn8EY
G"5xXKRLkHnv)IE9ORzAsgL2u1Sq0rEV4yOH(lT2fK8d21gMunchvOb6mOLGTZ09ry
G"mHiiZoARWlobhbglOLbmk668KUPeJbKWznc(rX2Yg(zwl634yPmMrlNhczkuHWqT
G"NhYI4hAbBuetgtqxO8D5Etge)HpPL7wojteauinsmgoODyWYAkYYQS)qwdCmfhc1
G"gx6bTC6YQdLAa3nXytetktVUCwhyc45W0AQbn0LSkvifQdwpXyikxtdn1x5C7lxZ
G"UgSqVBlj5pyoY5c5QjoRu138yIuswF1I4e2(V9a2tJ5qjePiTEio1hECkG1zHhNF
G"XsocDo)NkoD2fArtZLJ1(xj9ZLu0fBNSMLZZLYqHfHN7rmgpnOIEN)FVEMVZVfrK
G"tUEuHNmipsseIOXHbZJ8GSUlVqg(m9SWZOttzjcCFZ0UQbtH5CmtN9kRzJf4cp45
G"iDLSMrx2yNbFwixe20k9UFaCQxOfXnN4YdZJViYUoHFt4I7kaoB)abYL5wDMjihL
G"REXxQyJ1fEanOiFAqwvwiQ5mv(GM)qiq3D6VcL(3MtFqsMhylWkWswrUtpOaiPkm
G"D6Uzl7umvTzEPXcbLQpU0)thcp8KJP03fCLB5aviIjYXBY9XMJB9A7DI1V0wOheV
G"dcJsJt8PBs0Ouax8HDqNvCkoWGJFvtTd6OX2O2KQfzXTrOarGYgAzCMp0LehiRr1
G"jX75ksV6AdLPvsMz49m2IZtFFt(abvtxZ8Qva4WUwnpB(IkjYDqkHuXo)TdKmExp
G"Lw1Xh6Qd8u(zRBoxCEsZfNVneJYFSdNeObmzSLU2MmAYnBYzIeHahWS2S)Q0LAfc
G"UdM)uUqRBRXC0m9BPwr1HT7TByLS6))QurvGyloKACmRrRm0LgPAHkQzcWUUvd4a
G"sJC6IEqBpx8UJLeCGRKtj92Q3DVKGPnXSHciXB6RIiCY(wlGG88Bt6vdonhJtICs
G"U0Gn2DlUP(sVFg9wi40VvL3YyYATXm3Twfzgp9IUznJ7j1ab5mImG(RVaGIjIz2E
G"s8Py0GKtphsoTO0H9TlKl)Fk73bIklpm7NMrxitCNKeaEqB)QdMc9hIzZwhQZsSd
G"bNdrcfiduKr)ddRbXWd1aF(EqaUNr8jLk5jb2QS84lnMDydDFsd47CAJMeooQmt1
G"z1a(QIi1hKBV)8XfTZnHIutMKEvAZ70NnmRBnibOLgXeuyRc60oB5pC09UgiSCRI
G"yLJAxI5AqizmVD051ABCscCSADbDFVZJdpCfp1q6Q4ppCm2cC3w7b9RMTvq0Rgfe
G"AKeJWalPs6ha2smKZDO76(isUsBvvLpGxn1kXyhNJM(zQrEDY8)gqybd1Qt1YrbS
G"7Jxw(uA5S1b5LQn59lDpHuPpLsPQ78ieuyOaineFRSGokkJvBlOW9B2KoLo94LVK
G"YcleYFkRF0Ra7)nJhhprEn2qVgXZ9MnkEmHa6hrPh8)LoouMqhDd0f4VZLFWVikM
G"R)AM94UlzjxmGJT3MXa6YOyVS0BZsd4qMmE8NpFXji)hoMseD(I)Oi4uthlW3sGA
G"QdTQhAhtLJjWmtNTl8uI0)rYG2oerFozZvLIy8BVisGbuBMbhm9LczuoCcz1bbyL
G"PtV42O1MpIFOBBFL4ANM9)2()paIarlSHwnTS2caaGxFaaaAlwZsasajuetjPvqU
G"HiuqtH2rnbaaiihDA6ER2u(nyL5KNrlVopZMGedIyaq7YfUbiwnygGqKxttUWmVy
G"KOtdJjvr2(HJ)))V3YdusNS1E1Uh4pIMDwTFV339QTz74vf1WPtVvFKzZQ)x97nP
G"bOCi)qxCA0CXlwI)xV47b1hABsMIrUrI)WAux6hP1x9p1bRTnp94JJsHqZLIF05B
G"skkFBOdK9vI6mXe57pk2tLrx87tuOE1n9bJv1JplsWgVdLqAKQv15MrRk3wXQZCq
G"J(ZiGx9ENycfXfM9Dv3YuhLe1vc6sBaBUNbRgWM818LKDNSHY51rxC7RShdAwVYy
G"7ZR())69NfnCk1CL69kIhKVHrafFRba9HGljfjvkkxp7TtLF0I(XbFc4iTKIV1Uv
G"v(gPTRIcQC93W3ZzbzDno(o1zZcJyihzhQEfj(7eTRqOOKlbljKu4bXaT5uu2BMC
G"VWg2Dyf6vlAqAAZOLa66xOp9axWAmgiRRIdQVo6Hw8w4bL(Jk(NxYymObZMkLGVM
G"8F1Ckvb38hfYkOt98fz3mWeeeTbp7mfeMHYJNXwEI)hxeoKTI6Xc7IKwEsPGe(Kq
G"CLW)76)b5iEffcDSF73kZeD4U6sdYoIEOWVViPTNpwosfkGu1L00FUiBTLvHdBH3
G"a1ziWdKdrMgZZ5R0zAhTO(1wqSItiXOP3ruMjfQC3pPIYBd85c1QJlM)sE5hw1Q(
G"HHe9fIsWRNtGXuo71j1FFMx80lcOHhBVdV4CcVmX29OhVu4aMX58kJmQy89cAgGW
G"lbeTK5qct)5GdLV3rgtOWGwkgeggcSfmm16Ut6XjBnKrMrPIT5AqOWjGdRXDb19A
G"EFgdNfL0yXtv)oUtu6PELk6VuX2LuXYvo8K3geNO7pzA15i)TPoFLBOtIxNelDix
G"tmxCJBvOv4dh(U5BG6osxvDMZu2Gk(E78kh2tHmxKmerb1P)nVDUY70m11vTZ6gU
G"y(1sBoanhN5dH37Xxdr5nuu)WUxShca1H2dvdqJk9qZ3tLk1Z6EdG5MdHPS7n7Fw
G"WfztxGUg0aftjNmcpdaePjMdFbaGB)JG6ndDgU3YULAI)YTJcuiUmqx1JrJ1yrmR
G"NL(NcefmW)QiE)rZO(MremKWregZshaIC6ESmLPYFpN6pUlvYOIrH8uWgGFiXicK
G"Wv5OaoePR)LjMZE91SGCwXhA5TBENSwEILwqKopMcoIUe4)lLjpGKVeT01Yk0Mxu
G"nQj2pSSnKqyxTv2u3n7SgA7hVPgduOhRSu8hyTgFXVCfFJQdcJ5im6CQBUkTWmwL
G"YpfMpxQi4FaugQu(pOMF54a(ZNJ9frWVIu2mYm4fHycqCz7yyseMTRpaoyB9IITw
G"ISCvMOb7X78NhsT2KaDRhNZeG28kosm2IqLR2uWqKbl5T70V2en5o7COtpZohAv3
G"(oPJwVJYgD4Sj)ZkHw8WuDBC2w7vJiHPfqDHcKinH(U15QxysywneGR)geQKvdEz
G"rpdUzRpkjBDA(FZ9WU8OIQD(Kos65tjVWbcdv6aJqaEHEKGJ1O70Bjatu)IFzscN
G"RyPnws1nRLme2kkOHDkpf8yfw90xlfigZDOcUtshJMhUDz0A4QZHtFJzgfD)93zJ
G"LWtzegY3inFmuR7MUMZtvNiOuSw3AkFSvvo2QhX37QzooPdb)kakeM5ouSSklOyY
G"sZrMVvsuRBwT06FE)iB22cbcF4VRTYqQHliHhBcsOtDGWLcbXrG87XG9ytVGCENq
G"tCM2ueajlKdzqGddbkuw3rN6RMfVbsHdX5ugpjLP4YNziG6YNkWRaiRArSjqkhNf
G"V87jb0MtcWTRcCIZAQN9b5zthU4DGyjUEgimSZ4uTJUNpdYZsPPhrCm43tSo9R30
G"awuhAN2MtA(9KMABVQmKPb78U2V7irBWuIeV6RuVsocaON)gu6u2c0KJqEQqBrn2
G"tXOmgLUeAAOv26eE95ET3wYBrtjTcWaZz53eFfT4QkiE3kBIFbFJ1FV8urrxYGRF
G"O)JVQoUiWDDiuI7CsloUU7EkwVc8832MwRw8OSR4KuGbrLr5gwH1XfpjFHlVGWvo
G"E5nk4f1KFeviwEhi1EhO3AJJqqTjSWAmkB(LT42g7Y7BHZFdNpffSKqI9tnqISfo
G"V8cC38RSw4Q9OkvL3tsvEycRKhaDnYpj6D72enhWmx(OtI4QNGhHSXukgjKbWEds
G"8wIwQzBJXTsnfRKUjxqnjQ(nq21VNhvpp26RQ9)OQCxjn9OjTNi98pbBszDk0os1
G"rcoFgmcOxOm7ZRxBGIfDNWIadxgg2qgLavW4hHmcRSL8j9UlTYwDLsEYx2BEB(pZ
G"prlfqFLtSJ5g6sZpOF8Ihgdy8Jn1Jo7h7UsRG)BW98ecwXyINuMrqKVZIQEIFwA5
G"WIHDVWtfGwMVuu3PamZqJLcAjNj)SqQdJrm7nuQfLcW4W5b57JL7MctKslBsEE1V
G"DP5ALv7a(3AW5stcxYV3wOJkPiUMfrbSQDw9YAn7GTYcBBh54p(WnB4O92pHM00l
G"UKWVNu9G)HAHcVMVcX2eNE87S5lrCJ(Q181QQOdHItihkEVyozU21ZSn(MmE1DkV
G"ypY71lQQDU(q5njrB0)hTOrrcs2ZKs8qRA1ofqVdbN1r15ezy7otmmeLGFOFwTAm
G"5VcvO)6dIkDo8KGMa0)riTe4XvCw4AJ3dxScEUv4X153BXvlsOIxTYRiRnmr3IoF
G"MreZnoK3WGZGJ1R2I7wp)E1A59v1R3ILRWhHH6uF7UfEWT46AjJeTI5vP2Zn8b4N
G"GT3u1JFdj(Y9SVTgneHS46dWokSGefGuw97Ix9F)BSL6AOf(pOGBydpTEj1CxH3e
G"CUJqEAfudMcColllcjztGU1maBMejI3WROA2U)E1f7AvdBsqkNgcHNN4Pw0dRoyD
G"zA67la2UOFBN8M8ycGzsMvGIQvAsGtscxO)aspArbrurvVKcoKrxbnP0otouD0K0
G"EfiVDStJSBqJgeBgNs8tyOQko7SqPqeKabdxYxQ8bjCjSs9lDqZk4cRB1MnEraEH
G"Pn2GLZXey8eoEeAQCJ8)(nPqLz)gW4fbK51POgzx3MMkOm19CklQlXRxv3d2sB2J
G"TRsL0ao01VQL7dfYQDZ(G3ieSl1RlBpAJNNC0ZN5rY0MXHNmrEROv3T)kou0PKD9
IF I<>168 THEN ?:?"Page 2 is too short or long!":J=1
* OLX 2.1 TD * This mime was so bad he used real glass.
--- Maximus 2.01wb
* Origin: Command Line BBS =Mpls. MN= V.32bis [612-788-6685] (1:282/2007)
════════════════════════════════════════════════════════════════════════════════
Area: QuickBasic
Msg: #7634
Date: 04-03-93 16:45 (Public)
From: JOHN GALLAS
To: ALL
Subject: eliza.bas 3/3
────────────────────────────────────────────────────────────────────────────────
I=168'Page 3 of ELIZA2.LZH begins here.
G"(zWASyHtkwvhml3uxopxL3fHlb4cf0HiICe1Xo1BAoZf5fAzacri948J)ulRvpW2
G"ilwGtPZdhwwnroCzp99pH(H3tfMevflHS3WrOM)VIY304eaFM2i6T4XcBI4xeZi2
G"O3Dde75WTZc42XIBuRGxzaLu3L(zH59R7tCftTRh3PsS7sPL5BUWhWKXSjH39wbL
G"FzYCC9H1mQB1lZL0G7a3f88VQ7CbSE4ZQtscyfMs4W6l(i2op5BV8(Hj67VzAI6k
G"8ErK9ZwsRF)jbC8Uzp3WANtgJU23VzkytV4rZOE1leZ7zn)sGflk4YXcckfyrkhW
G"1Uh21Q2yx8GPPvaDmXrkZC52Yz7QgEeT2s(MZEl6(TNqw7(PsgS44sDMzs0dTEZ8
G"3q9nKOrdlyTYCmmSjxTRVeYoo9wLwZtaR2Cp)d15k0vl2zLu9JEKsRVuT0rTwlXU
G"OOqjKP7R5H3QUwOcllJ0ANd8Q8h62sBUn4tbP19h1s(y)3feCtmkUcO0VoAgHaxa
G"at39yLiNFsVfvyu4LbWGgiqh3TkIBaoN4ATyeycFs(ezftjemaXXLJxzoHN8HPkU
G"XDfMNmOZSpKkUi2Vkiamg09sJs6Qm42NgFq0AEWpen(IGDlkii0LrxvWZUus7kma
G"5GV4LwhbTqG55j7NuTHVANvx)(SV8BRZ(Xp)111x9ET3476YEjITaMfLdqlKGfaI
G"t3)TLypUUs7e2dyL7TCGMeg3S(tyS)vUP2h27zYtiLcyvy6l7B(xaDqVOLpC(WCy
G"XGuZiYVV5N5Ey5JjMdmJqc7n8vSV5O515)9NFwxi)pOm0Q90P(ek(U(sVWeZ4LNP
G"q)a(HvTWgA10IebaaaQkaaa8WhhJbibyavtnKtfrvrD2eaaaG6APPWMwkp4FZF3t
G"0rgXKwG1gx7Sdj84SgYC5DZNNKlYVNYzGFuGouCbRlmFvaFkdCWeeeA5EthsPi5j
G"Y9DVRNE(Eo29U5En7t9H870cQmXnQeyeKe7Ny5CEfUc8SiF10gIq6DS3tbfgalFu
G"FLAIKivBA3MkGwzq8vgWOdG5p6q3iE)hG9WnfBQYaS)(Yq6AeG13SfFaKkxwrcu(
G"mR7N9II5bRNnbwAP(zl0dgXRDqqLbgJP9sqrUSs9xOYJdlQFRRt5kJwuit5vX8d5
G"z(q0pVSvJmFkgf5r3baAZ7aOMu((O6NY)XDBCRS0(ZCoAlhn3fV8rQZBBFiztmW0
G"nPFtIMOJGIyrxRagJ6LOqVp(q02g4hQ9FZla"
K=255:IF I<>188 THEN ?:?"Page 3 is invalid!":END ELSE IF J THEN END
OPEN"B",1,"ELIZA2.LZH":N&=8862:FOR Q&=1 TO N&:IF L=0 THEN GOSUB G:L=6
?(100&*Q&)\N&;"%";:W=T\P(6-L):GOSUB G:W=W OR T*P(L):B$=CHR$(W AND K)
L=L-2:PUT 1,,B$:LOCATE,1:NEXT:?"File Extracted: ELIZA2.LZH":END
G:T=INSTR(T$,MID$(A(L&\63),L& MOD 63+1,1))-1:L&=L&+1:RETURN
SUB G(B$):A(I)=MID$(B$,2):FOR Z=2 TO LEN(RTRIM$(B$)):C$=MID$(B$,Z,1)
Q=Q+ASC(C$):NEXT:I=I+1:V=(Q AND 63)<>(INSTR(T$,LEFT$(B$,1))-1):?I;
LOCATE,1:IF V THEN ?"Physical Line";I;"is bad!":EXIT SUB ELSE END SUB
* OLX 2.1 TD * -THE- 4.77MHz 8088 simulator: Microsoft Windows
--- Maximus 2.01wb
* Origin: Command Line BBS =Mpls. MN= V.32bis [612-788-6685] (1:282/2007)