User Tools

Site Tools


Simple Terminal Program

by Colin McDonagh, April 2007

In my work, I often need to communicate with older pieces of equipment via RS232 cables. Of course there are many such applications available, but it's quite easy in BBC BASIC. First we set up the com port we want to use, in this case com1.

        REM a simple terminal program.
        Port% = OPENUP "COM1: baud=9600 parity=N data=8 stop=1"
        REM Port% is a global variable
        IF Port% = 0 PRINT "Could not open COM1" : END
        PRINT "We are using port number: ", Port% : REM Prints the port number 1 to 4.
        DIM commtimeouts{rit%, rttm%, rttc%, wttm%, wttc%}
        SYS "SetCommTimeouts", @hfile%(Port%), commtimeouts{}

If the com port is being used by another application, you will get “Could not open COM1”. The main body of the program is an infinite loop.

        REM  chars%  This is the number of characters.
          REM get the number of characters.
          chars% = EXT#Port%

chars% is the number characters waiting to be read. If there are no characters in the serial buffer, the keyboard is read with INKEY.

          REM Number of characters waiting in the serial input buffer, for a read action.
          IF chars%=0 THEN
            k% = INKEY(1)
            k% = INKEY(0)

If k% = -1 nothing was entered on the keyboard.

          REM If a character has been entered via keyboard, send it to serial output buffer
          IF k%>-1 THEN BPUT#Port%,k%

Otherwise the number of characters, is passed as a parameter to PROCSendToVDU

        DEF PROCSendToVDU(chrs%)
        LOCAL index%, Data%
        IF chrs% > 0 THEN
          REM Get each character in turn and send to the VDU
          FOR index% = 1 TO chrs%
            Data% = BGET#Port%
            VDU Data%
          NEXT index%
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information
simple_20terminal_20program.txt · Last modified: 2018/04/17 18:46 by tbest3112