/**************PULS WIDTH MODULATOR***************** /CALL: INPUT / INPUT PRECISION / OUTPUT /BLOCK MAY BE USED ONLY ONCE IN A PROGRAMM, CONTAINS INTERNAL /STATES!!!!!!!!! PWM, 3 PRESIGN 1 2 CK0TEM BLOUT GETAD 3 DCA OUTPOI INBLIP BLOTNT PWINT JMS CHECK0 JMP PWNOT0 ISZ PWCNT /INPUT ZERO JMP PWTRYP /GO TO PULS ROUTINE ISZ PWLNG /INCREASE PULS LENGTH COUNT NOP TAD PWINCR /RESET COUNT 1 CIA PWCONT, TAD PWOLDN DCA PWCNT PWTRYP, CMA CLA TAD PWLNG SPA SNA JMP PWPDON DCA PWLNG TAD PWTEMA DCA INPOI JMP PWEND PWPDON, CLA DCA PWLNG TAD ZEROAD DCA INPOIT PWEND, TAD OUTPOI DCA TM1POI JMS HWRSR INBLIP PWINIT, DCA PWLNG PWNOT0, TAD CK0TMA DCA INPOI TAD PWTEMA DCA TM1POI CLL JMS HWRSR TAD PWSTEP CIA DCA PWOLDN JMP PWCONT ZEROAD, ZERO PWTEMA, PWTEM PWOLDN, 0 PWINCR, 2 PWSTEP, 2 PWLNG, 0 PWTEM, ZBLOCK N CHECK0, 0 /SKP IF ZERO CLA TAD CK0TMA DCA TM1POI TAD WORDCT DCA COUNT CKLOP, TAD I TM1POI SZA CLA JMP I CHECK0 ISZ TM1POI ISZ COUNT JMP CKLOP ISZ CHECK0 JMP I CHECK0 CK0TEM, ZBLOCK N CK0TMA, CK0TEM