3-6SectionCommunications Program Example
51
80 PRINT ”TXD$=”;TXD$
90 PRINT #1,TXD$+CHR$(&HD); Send command.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100 IF LOC(1) <> 0 THEN 140 Decision as to whether response was received.
. . . . . . . . . . . . . . . . .
110 CNT=CNT+1
120 IF CNT=1000 THEN 1000 Time up time set according to value compared to CNT.
. . . . . . . . .
130 GOTO 100
140 INPUT #1, RXD$ Receive response.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
150 IF RXD$ <> TXD$ THEN 2000 Decision as to whether normal termination occurred.
. . . .
160 PRINT ”RXD$=”RXD$+”OK”
170 GOTO 20
1000 ’******* TIME UP *******
1010 CNT=0
1020 ER$(NG)=”TIME UP”
1030 NG=NG+1
1040 IF NG=3 THEN 3000 Number of retries set to 3.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1050 GOTO 80
2000 ******* ERROR RESPONSE *******
2010 ER$(NG)=RXD$+”NG”
2020 NG=NG+1
2030 IF NG=3 THEN 3000 Number of retries set to 3.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2040 GOTO 80
3000 ’******* ERROR MESSAGE *******
3010 PRINT ”*** ERROR OCCURRED ***”
3020 PRINT ”RXD$–1=”;ER$(0)
3030 PRINT ”RXD$–2=”;ER$(1)
3040 PRINT ”RXD$–3=”;ER$(2)
3050 GOTO 20
4000 ’******* CALCULATE FCS ******* FCS computation routine.
. . . . . . . . . . . . . . . . . . . . .
4010 * FCSSET
4020 L=LEN(T$)
4030 A=0
4040 FOR J=1 TO L
4050 TJ$=MID$(T$,J,1)
4060 A=ASC(TJ$)XOR A
4070 NEXT J
4080 FCS$=HEX$(A)
4090 IF LEN(FCS$)=1 THEN FCS$=”0”+FCS$
4100 RETURN
Note Above BASIC Program is for use with an IBM PC/AT or compatible computer.