beautypg.com

Microsoft quick basic program – Max Machinery 120 FLOW RATE & TOTAL INDICATOR User Manual

Page 31

background image

120-200-350 © 1993 (Rev 5/97) Max Machinery, Inc.

Page 31

IF A$ = “E” THEN
EXITFLAG = 1
RETURN
END IF
REM*****BUILD CHECKSUM FOR BUFFER*****
BUFF$ = HEADER$ + A$
Y = 0
FOR X = 2 TO LEN(BUFF$)
Y = Y + ASC(MID$(BUFF$, X, 1))
NEXT X
Y = Y MOD 256: CS$ = HEX$(Y)
IF LEN(CS$) = 0 THEN CS$ = “00”
IF LEN(CS$) = 1 THEN CS$ = “0” + CS$
BUFF$ = BUFF$ + CS$
LOCATE , , 1: PRINT
PRINT : PRINT “ COMMAND SENT = “; BUFF$
REM*****SEND BUFFER OUTPUT*****
CLOSE
OPEN COMM$ FOR RANDOM AS #1
OUT PT, 11
PRINT #1, BUFF$
DO
A = INP(PT1) - (INP(PT1) MOD 96)
LOOP UNTIL A = 96
OUT PT, 9
C$ = “”
REM*****FIND END OF TRANSFER*****
DO
C$ = C$ + INPUT$(1, #1)
LOOP UNTIL ASC(RIGHT$(C$, 1)) = 13
C$ = LEFT$(C$, LEN(C$) - 1)
OUT PT, 11
Y = 0
REM*****CHECK FOR ERROR CODE*****
IF LEFT$(C$, 1) = “N” THEN
GOSUB RESPONSE
RETURN
END IF
REM*****CHECK FOR OK TRANSFER*****
IF LEN(C$) = 1 AND C$ = “A” THEN
GOSUB RESPONSE
RETURN
END IF
REM*****CHECK FOR RETURN DATA CHECKSUM*****
FOR X = 2 TO (LEN(C$) - 2)
Y = Y + ASC(MID$(C$, X, 1))
NEXT X
CS$ = HEX$(Y MOD 256)
IF LEN(CS$) = 0 THEN CS$ = “00”
IF LEN(CS$) = 1 THEN CS$ = “0” + CS$
IF CS$ = RIGHT$(C$, 2) THEN
GOSUB RESPONSE
RETURN

*** END OF MICRO SOFT QUICK BASIC PROGRAM ***

MICROSOFT QUICK BASIC PROGRAM