BBS: Inland Empire Archive Date: 04-01-93 (00:05) Number: 259 From: SCOTT BAILEY Refer#: NONE To: PAUL CRUTCHFIELD Recvd: NO Subj: pocal 1/3 Conf: (2) Quik_Bas
In a message dated 28 Mar 93 14:48:21, Paul Crutchfield wrote:
PC> What is your name? (Then they enter their name..(both sides see it)
PC> (I can backspace a letter if they type it in right
PC> after they type it in)
PC> then it does:
PC> Hello, (red) <name>!
Here are a couple SUBs from one of my first doors. I don't use the
command parser, but I thought I'd write a quick one just to
see how hard it would be, so it may be a little rough. I
prefer using the COL sub myself.
Anyway, here goes...
'----Start of pocal.bas----
'ANSI.SYS must be installed
'colour commands must be in lowercase
'for bright colours and blink use col
DEFINT A-Z
DECLARE SUB col (A%, f%, b%)
DECLARE SUB pocal (text$, y%, Z%)
DECLARE SUB getkeys (hm%, A$)
DIM SHARED A$, modem, display, baud&, plaintext
'A$ holds answer after a call to getkeys
plaintext = 1 '0=no ANSI
modem = 1
display = 2
baud& = 0 'not online
CLS
LOCATE , , 1 'turn cursor on
OPEN "com2:2400" FOR RANDOM AS #modem
OPEN "cons:" FOR OUTPUT AS #display
pocal "@cyanEnter your name:>@magenta", 0, 1
CALL getkeys(32, "")
pocal "", 1, 1 'CR+LF
pocal "@cyanHello @red" + A$ + "@cyan!", 1, 1
col 1, 33, 40'bright yellow on black
pocal "", 1, 1
pocal "Good bye!", 1, 1
'simple menu
'pocal "@greenEnter <@cyanM@green>enu,", 0, 1
'pocal "<@cyanL@green>ook,<@cyanS@green>earch@magenta>", 0, 1
'CALL getkeys(1, "MLS")
'pocal "", 1, 1
'IF A$ = "M" THEN pocal "@blueYou chose Menu", 1, 1
'IF A$ = "L" THEN pocal "@whiteYou chose Look", 1, 1
'IF A$ = "S" THEN pocal "@cyanYou chose Search", 1, 1
END
SUB col (A, f, b)
'a=attribute: 0=all attributes off
' 1=bold on
' 5=blink on
' 7=reverse video
'f=foreground: 30=black
' 31=red
' 32=green
' 33=yellow
' 34=blue
' 35=magenta
' 36=cyan
' 37=white
'b=background 40=black
' 41=red
' 42=green
' 43=yellow
' 44=blue
' 45=magenta
' 46=cyan
' 47=white
IF plaintext = 0 THEN EXIT SUB
change$ = CHR$(27) + "[" + LTRIM$(STR$(A)) + ";"
change$ = change$ + LTRIM$(STR$(f)) + ";" + LTRIM$(STR$(b)) + "m"
IF baud& THEN 'if online then
CALL pocal(change$, 0, 1) 'print to modem and locally
ELSE
CALL pocal(change$, 0, 0) 'just print locally
END IF
END SUB
'Continued next message
--- DLG Pro v0.995/DLGMail
* Origin: Computer Answers, Prince Albert, Sask., Canada (1:140/601)

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