INSTALLATION MANUAL User Manual

Appendix F
Checksum Calculations
F–2
The following subroutine calculates the checksum of a message for a
1746-BAS SLC BASIC module. The message text is stored in string $(0) and
the duplex control fields are in the variables F1, F3, F4, F6, F62, and F63.
5400 REM ** CHECKSUM CALCULATION FOR 1746-BAS
5401 REM ** WHERE MESSAGE TEXT IS IN STRING $(0)
5402 REM ** AND F1, F3, F4, F6, F62, AND F63
5403 REM ** ARE THE DUPLEX FIELD VALUES
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=F1+TCSUM+F3+F4
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
Checksum Program for
SLC BASIC Module