INSTALLATION MANUAL User Manual

Chapter 6
Slave Mode Operation / Examples
6–29
5300 REM ASSIGN FIELD 6 BYTE 3
5310 F63=129
5320 RETURN
5330 END
5400 REM CHECKSUM CALCULATION
5410 TCSUM=0:CHD=0:CSUM=0
5420 PUSH 0 :REM GET LENGTH $(0)
5430 CALL 68
5440 POP SL
5450 BAD=0
5460 IF SL=0 THEN GOTO 5500
5470 FOR POSIT = 1 TO SL STEP 1
5480 TCSUM=TCSUM+ASC($(0),POSIT)
5490 NEXT POSIT
5500 CSUM=CTBT+CLR+24+TCSUM+SLADD+LINO
5510 CSUM=CSUM+13+F6+F62+F63
5520 CHH=INT(CSUM/256)
5530 CHL=CSUM–(256*CHH)
5540 IF CHL=13 .OR. CHL=18 THEN CHD=1:BAD=1
5550 IF CHH=13 .OR. CHH=18 THEN CHD=CHD+127:BAD=1
5560 IF BAD=1 THEN GOTO 5420
5570 RETURN
5580 END
5700 REM SEND OUTPUT SUBROUTINE
5710 PRINT# CHR(CTBT),CHR(CLR+24),$(0),
5720 PRINT# CHR(SLADD),CHR(LINO),CHR(13),
5730 PRINT# CHR(F6),CHR(F62),CHR(F63),
5740 PRINT# CHR(CHD),CHR(CHH),CHR(CHL),
5750 DLY=TMOUT:GOSUB 5800 :REM TIME DELAY
5760 RETURN
5770 END
5800 REM TIME DELAY SUBROUTINE
5805 FOR I = 1 TO DLY
5810 NEXT I
5820 RETURN
5830 END
5900 REM GET DL50 RESPONSE
5910 REM WAIT FOR DL50 RESPONSE
5920 IF SLADD=255 THEN RETURN
5930 J = 0
5940 PUSH1:CALL 36 : REM GET INPUT BUFFER LENGTH
5950 POP BL
5960 J = J + 1
5970 IF J > RTMOUT THEN GOTO 6030
5980 IF BL < 5 THEN GOTO 5940 ELSE 5990
5990 FOR I = 1 TO BL STEP 1
6000 RESP(I) = GET#
6010 PRINT RESP(I)
6020 NEXT I
6030 PUSH 1 :REM CLEAR INPUT BUFFER
6040 CALL 37
6050 RETURN
6060 END