100 / PARITY ROUTINES FOR 7-BIT DATA 110 120 / PARITY GENERATION/DETECTION ROUTINES FOR 7-BIT DATA. 130 140 / BY: CHARLES J. LASNER & DR. THEODORE RAPHAN 150 160 / CHARLES LASNER ASSOCIATES 170 180 / LAST EDIT: 08-OCT-1987 04:00:00 CJL 190 200 / TO GENERATE/DETECT EVEN PARITY SET THE CONTENTS OF LOCATION "EVENODD" TO SZL CLA. 210 220 / TO GENERATE/DETECT ODD PARITY SET THE CONTENTS OF LOCATION "EVENODD" TO SNL CLA. 230 240 / CALLING CONVENTIONS. 250 260 / TAD CHAR /ANY SEVEN-BIT VALUE (HIGH BITS WILL BE IGNORED) 270 / JMS I (GENPARITY) /CALL EIGHTH-BIT PARITY GENERATING ROUTINE 280 / RETURNS HERE WITH THE CHARACTER NOW AUGMENTED BY AN EIGHTH PARITY BIT. 290 300 / TAD CHAR /ANY EIGHT-BIT VALUE (HIGH BITS WILL BE IGNORED 310 / JMS I (CHKPARITY) /CALL EIGHTH-BIT PARITY CHECKING ROUTINE 320 / JMP GOODPARITY /IMMEDIATE RETURN IF PARITY OK 330 / JMP BADPARITY /SKIP RETURN IF PARITY BAD 340 350 / LOCATION "EVENODD" SHOULD BE SET (TO SNL CLA/SZL CLA AS NECESSARY) BEFORE 360 / USING THESE ROUTINES. N.B. "GENPARITY" IS CALLED BY "CHKPARITY" DURING THE 370 / NORMAL COURSE OF EXECUTION. 380 390 / PARITY SCHEMES GENERALLY CONFORM TO ONE OF THE FOLLOWING: 400 410 / NONE: RECEIVE CHAR&377 AND SEND CHAR&377 WITH NO CHECKING 420 430 / SPACE: RECEIVE CHAR&177 AND SEND CHAR&177 WITH NO CHECKING 440 450 / MARK: RECEIVE CHAR&177 AND SEND CHAR&177!200 WITH NO CHECKING 460 470 / EVEN: RECEIVE CHAR&177 AND SEND CHAR&177!PARITY WITH INCOMING CHECK 480 490 / ODD: RECEIVE CHAR&177 AND SEND CHAR&177!PARITY WITH INCOMING CHECK 500 510 / THESE ROUTINES ARE ONLY NEEDED TO DEAL WITH THE LAST TWO CASES. THE PROGRAM 520 / FLOW SHOULD BYPASS THEM AND DO THE APPROPRIATE .AND. AND .OR. OPERATIONS 530 / AS NECESSARY. 540 550 / IN THE INTEREST OF COMPATIBILITY, KERMIT PACKIT INFORMATION SHOULD BE 560 / SENT/RECEIVED WITH SPACE PARITY WHEN 8-BIT PACKET DATA IS SENT WITH NO PARITY. 570 EJECT 580 CHKPARI,.-. /CHECK PARITY ROUTINE 590 AND (377) /REMOVE JUNK BITS 600 DCA CHKTEMP /SAVE PASSED VALUE 610 TAD CHKTEMP /GET IT BACK 620 JMS GENPARITY /GENERATE CORRECT PARITY FOR THE CHARACTER 630 CIA /INVERT AND 640 TAD CHKTEMP /COMPARE TO ORIGINAL VALUE 650 SZA CLA /SKIP IF PARITY OK 660 ISZ CHKPARITY /BUMP RETURN IF PARITY IS BAD 670 JMP I CHKPARITY /RETURN EITHER WAY 680 690 GENPARI,.-. /GENERATE PARITY ROUTINE 700 AND (177) /JUST KEEP DATE BITS 710 DCA GENTEMP /SAVE PASSED VALUE 720 TAD GENTEMP /GET IT BACK 730 RTR /MOVE BIT[10-11] TO LINK, AC[0] 740 SZL /SKIP IF BIT[10] WAS OFF 750 TAD (20) /EXOR WITH BIT[5] NOW IN AC[7] 760 SPA /SKIP IF BIT[11] WAS OFF 770 TAD (20) /EXOR WITH BIT[5] NOW IN AC[7] 780 RTR /MOVE BIT[8-9] TO LINK, AC[0] 790 SZL /SKIP IF BIT[8] WAS OFF 800 TAD (4) /EXOR WITH BIT[5] NOW IN AC[9] 810 SPA /SKIP IF BIT[9] WAS OFF 820 TAD (4) /EXOR WITH BIT[5] NOW IN AC[9] 830 RTR /MOVE BIT[6-7] TO LINK, AC[0] 840 SZL /SKIP IF BIT[6] WAS OFF 850 IAC /TAD (1) /EXOR WITH BIT[5] NOW IN AC[11] 860 SPA /SKIP IF BIT[7] WAS OFF 870 IAC /TAD (1) /EXOR WITH BIT[5] NOW IN AC[11] 880 RAR /MOVE PARITY BIT TO LINK 890 EVENODD,SZL CLA /**** ODD PARITY **** SNL CLA 900 TAD (200) /ADD PARITY IN AC[4] 910 TAD GENTEMP /ADD ON CHARACTER IN AC[5-11] 920 JMP I GENPARITY /RETURN WITH EIGHT-BIT DATA 930 940 CHKTEMP,.-. /CHECK PARITY TEMPORARY 950 GENTEMP,.-. /PARITY GENERATOR TEMPORARY