********* * Program COUNT_1S (6811) * * Reads switchs. Outputs the number of switches at logic one on * discrete LEDs. * * Uses shift technique to count number of ones. Illustrates a use * of the carry flag. * * P. H. Anderson, 12 Sept 91; Checked 12 Sept 91; 15 Jan 93 ********** PSCT EQU $C000 DSCT EQU $D000 IDSCT EQU $D300 REG_BASE EQU $1000 PORTB EQU $04 PORTC EQU $03 DDRC EQU $07 ORG PSCT LDY #REG_BASE CLR DDRC,Y * portc configured as input TOP CLR NUM_ONES * zero number of ones LDAA #$08 * 8 bits to examine STAA BITS_LEFT LDAA PORTC,Y * get the switches L1 LSRA BCC AROUND INC NUM_ONES * bit was a one AROUND DEC BITS_LEFT BNE L1 * at this point all 8 bits have been examined. LDAA NUM_ONES * output the number of ones STAA PORTB,Y * to discrete LEDs BRA TOP ORG DSCT NUM_ONES RMB 1 BITS_LEFT RMB 1