/4.10.71 JG /SR FOR COEFFICIENT TRANSFER /NRS ARE LIMITED TO 777=2 AND 1000=-2 AND TRUNCATED TO /SPECIFIED NRS OF BITS /ARG OF SR IS N *PART3 ITF, 0 CLA CLL TAD MASK1/ SET UP MASK2 FOR ROUNDING BIT RAL CMA AND MASK1 DCA MASK2 TAD TIME CIA DCA TIMECT DCA FLAG TAD LIMIT CIA DCA MLIMIT JMS I ITF TF, 0 CLA TAD I TF/ GET ADDRESS OF NR OF TAPS ISZ TF DCA TAPNR DCA FLAG ISZ TIMECT JMP I TF TAD TIME CIA DCA TIMECT/ RESET TIMECOUNT JMS DO A0BPTR A0CPTR JMS DO A0BPTR A0BPTR JMP I TF DO, 0 TAD I TAPNR/ SET TAPCOUNT CIA DCA TAPCT TAD I DO/ GET ADDRESSES ISZ DO DCA FROMHI TAD I FROMHI DCA FROMHI TAD I DO ISZ DO DCA TOHI TAD I TOHI DCA TOHI NEXT, TAD FROMHI IAC DCA FROMLO TAD TOHI IAC DCA TOLO TAD I FROMHI/ POS OR NEG? SPA JMP MINUS TAD MLIMIT/ POS NUMBER CHECK FOR LIMIT SMA CLA JMP POSLIM JMP NOLIM MINUS, TAD LIMIT SPA CLA JMP NEGLIM JMP NOLIM POSLIM, CMA RAR CLL/ SET AC TO 3777 ISZ FLAG JMP LIMDON NEGLIM, CLL CML RAR/ SET AC TO 4000 ISZ FLAG JMP LIMDON NOLIM, TAD I FROMLO/ 12 MEANINGFULL BITS IN AC MQL TAD I FROMHI SHL 1 LIMDON, DCA SAVE TAD SAVE SHL/ GET NEXT BIT FOR ROUNDING 0 AND MASK2 DCA SAVRND MQL/ CLEAR MQ TAD SAVE SPA/ CHECK FOR POS COE JMP NEG TAD SAVRND SMA/ OVERFLOW BECAUSE FO ROUNDING JMP OK CLA CLL CMA RAR/ LIMIT TO 3777 SKP NEG, TAD SAVRND OK, AND MASK1/ TRUNCATE ASR/ SHIFT BACK 1 DCA I TOHI MQA DCA I TOLO ISZ FROMHI ISZ FROMHI ISZ TOHI ISZ TOHI ISZ TAPCT JMP NEXT JMP I DO TIME, 200 /10 PER MSEC INTERVALL FOR 8 KHZ MASK1, 7700 / SET FOR 6 BIT CHANGE WITH LIMIT! MASK2, 0 TIMECT, 0 FLAG, 0 LIMIT, 1000 /CHANGE SHL,ASR FOR OTHER LIMIT MLIMIT, 0 TAPNR, 0 FROMHI, 0 FROMLO, 0 TOHI, 0 TOLO, 0 TAPCT, 0 SAVE, 0 SAVRND, 0 $$$$$$$$$$$$$$$ *U**?G