.TITLE ICNT HAMMING WEIGHT COUNTER ; FORTRAN IV COMPATIBLE ; ; WRITTEN BY MICHAEL LAMPI JANUARY 1978 ; .ENABL AMA ; ;THIS ROUTINE IMPLEMENTS THE INTEGER*2 BIT COUNTING FUNCTION ;OTHERWISE KNOWN AS A HAMMING WEIGHT FUNCTION ;IT IS CALLED BY ; ; RESULT=ICNT(VARIABLE) ; .GLOBL ICNT R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 ICNT: MOV (R5)+,R4 ;ARGUMENT LIST IN R5... GET # ARGUMENTS. MOV @(R5),R1 ;GET VARIABLE. CLR R0 CLC ;CLEAR CARRY BIT 20$: ADC R0 ;ADD CARRY BIT TO R0 ROR R1 ;NOW ROTATE THIS WORD BNE 20$ ;DONE? ADC R0 ;ADD LAST CARRY BIT TO R0 RTS PC ;EXIT WHEN DONE. .END