home *** CD-ROM | disk | FTP | other *** search
- DEFINT A-Z
-
- DECLARE SUB Filter (InString$)
-
- COLOR 7, 1 ' Set screen color.
- CLS
-
- Quit$ = CHR$(0) + CHR$(16) ' Value returned by INKEY$
- ' when ALT+q is pressed.
-
- ' Set up prompt on bottom line of screen and turn cursor on:
- LOCATE 24, 1, 1
- PRINT STRING$(80, "_");
- LOCATE 25, 1
- PRINT TAB(30); "Press ALT+q to quit";
-
- VIEW PRINT 1 TO 23 ' Print between lines 1 & 23.
-
- ' Open communications (1200 baud, no parity, 8-bit data,
- ' 1 stop bit, 256-byte input buffer):
- OPEN "COM1:1200,N,8,1" FOR RANDOM AS #1 LEN = 256
-
- DO ' Main communications loop.
-
- KeyInput$ = INKEY$ ' Check the keyboard.
-
- IF KeyInput$ = Quit$ THEN ' Exit the loop if the user
- EXIT DO ' pressed ALT+q.
-
- ELSEIF KeyInput$ <> "" THEN ' Otherwise, if the user has
- PRINT #1, KeyInput$; ' pressed a key, send the
- END IF ' character typed to the modem.
-
- ' Check the modem. If characters are waiting (EOF(1) is
- ' true), get them and print them to the screen:
- IF NOT EOF(1) THEN
-
- ' LOC(1) gives the number of characters waiting:
- ModemInput$ = INPUT$(LOC(1), #1)
-
- Filter ModemInput$ ' Filter out line feeds and
- PRINT ModemInput$; ' backspaces, then print.
- END IF
- LOOP
-
- CLOSE ' End communications.
- CLS
- END
- '
- ' ========================= FILTER ==========================
- ' Filters characters in an input string.
- ' ============================================================
- '
- SUB Filter (InString$) STATIC
-
- ' Look for backspace characters and recode them to
- ' CHR$(29) (the LEFT cursor key):
- DO
- BackSpace = INSTR(Instring$, CHR$(8))
- IF BackSpace THEN
- MID$(InString$, BackSpace) = CHR$(29)
- END IF
- LOOP WHILE BackSpace
-
- ' Look for line-feed characters and remove any found:
- DO
- LineFeed = INSTR(Instring$, CHR$(10))
- IF LineFeed THEN
- InString$ = LEFT$(InString$, LineFeed - 1) + _
- MID$(InString$, LineFeed + 1)
- END IF
- LOOP WHILE LineFeed
-
- END SUB
-