/ JG 14.9.71 / SAFERR 1.4 / INCLUDING BIT PATTERN RECOGNITION *PART1 ISAFER, 0 CLA TAD MNLOCS DCA LCPCM /LCPCM ONLY TEMP USED FOR COUNT ETC TAD STORE DCA LDPCM NEXT, DCA I LDPCM ISZ LDPCM ISZ LCPCM JMP NEXT TAD ZABASE DCA ZA0 TAD ZBBASE DCA ZB0 JMS I LCINIT LCPCM, 0 JMS I LINIT SIZEA LDPCM, 0 JMS I LINIT SIZEB 0 JMS I LIPSP LPSP, 0 JMS I LIREST STATES LRESET, 0 JMS I LIREST STATER 0 JMS I ISAFER SAFERR, 0 JMS DO4000 /LIMIT X DCA X TAD UA /Y:=X-UA JMS DO4000 CIA DCA 44 LADD1 X NOP TAD 44 DCA Y TAD Y /BITSTREAM JMS I LCPCM DCA BIT TAD BIT /DECOD OUTPUT SEND END JMS I LDPCM SIZEA JMS I LYZZ UA YYA ZA ESAFA, JMS I ESAF1 /ESAF (ZA,YYA,UA) ZA YYA UA N D ZABASE ZA0 A0APTR OFLOWA TAD BIT JMS I LRESET STATES JMP I LSDO SRET, TAD BIT JMS I LPSP JMS I LDPCM SIZEB DCA CHANGY TAD CHANGY JMS I LYZZ UB YYB ZB ESAFB, JMS I ESAF1 /ESAF (ZB,YYB,UB) ZB YYB UB N D ZBBASE ZB0 A0BPTR OFLOWB TAD BIT JMS I LRESET STATER JMP I LRDO RRET, TAD ZB JMP I SAFERR DO4000, 0 TAD N4000 SNA IAC TAD N4000 JMP I DO4000 N4000, 4000 LIREST, IRESET LSDO, SDO LRDO, RDO N, 4 MNLOCS, -102 LYZZ, YZZ LCINIT, CINIT LINIT, INIT LIPSP, IPSP ESAF1, 2141 STORE, BIT ZA0, 0 ZB0, 0 ZABASE, NUM ZBBASE, NUM+10 A0APTR, NUM+20 A0BPTR, NUM+40 NUM=PART1+200 *NUM-12 BIT, 0 /LOCS TO BE CLEARED X, 0 Y, 0 YYA, 0 YYB, 0 UA, 0 UB, 0 ZA, 0 ZB, 0 CHANGY, 0 *PART1+200+60 OFLOWA, 0 OFLOWB, 0 D, 0 0 SIZEA, 0 0 SIZEB, 0 0 STATES, 0 0 STATER, 0 0 YZZ, 0 /COMP YY AND Z ENTER WITH DECOD OUT IN AC DCA TEM10 /SAVE DECOUT TAD I YZZ /GET UA ISZ YZZ DCA TEM11 /UA IN TEM11 TAD I YZZ ISZ YZZ DCA TEM12 /YY IN TEM12 TAD I TEM11 /GET (UA) ASR 2 /ALPHA SHL 0 CIA DCA 44 LADD1 TEM10 NOP TAD 44 /YY=DECOUT+ALPHA*UA DCA I TEM12 TAD I YZZ ISZ YZZ DCA TEM12 /Z IN TEM12 TAD TEM10 DCA 44 /DECOUT IN 44 LADD1 /YY IN 44 TEM11, 0 NOP TAD 44 DCA I TEM12 /ZA*=UA+DECOUT JMP I YZZ TEM10, 0 TEM12, 0 SDO, CLL CML CLA RAR TAD I LZA DCA I LZA JMP I LSRET RDO, CLL CML CLA RAR TAD I LZB DCA I LZB JMP I LRRET LZA, ZA LZB, ZB LSRET, SRET LRRET, RRET $$$$$$$$$$$$ `