********** * Program BASE_1 (6811) * * Toggle switches - hi and low nibbles are X^1 and X^0 where * X is any base in range 2 - 16. * For example 44 (base 5) = 24 dec = $18 * * No error checking. For example an entry of 50 in base 5 is * not valid but it will not be caught by this routine. * * Switches converted to natural binary and displayed on discrete LEDs * * P. H. Anderson, MSU, 26 Sept 91; Jan 14, '93 ********** PSCT EQU $C000 DSCT EQU $D000 IDSCT EQU $D300 STACKTP EQU $0045 REG_BASE EQU $1000 PORTB EQU $04 PORTC EQU $03 DDRC EQU $07 ORG PSCT LDS #STACKTP LDY #REG_BASE CLR DDRC,Y * port c configured as 8-bit input TOP LDAA PORTC,Y * get switches STAA TEMP * retain copy ANDA #$0F * isolate low nibble STAA RESULT LDAA TEMP * get the switches again LSRA LSRA LSRA LSRA * hi nibble to lo nibble LDAB BASE * multiply hi nibble by base MUL ADDB RESULT STAB RESULT * hi * base + lo STAB PORTB,Y * output BRA TOP * repeat ORG IDSCT BASE FCB 10 * this may be 2 thru 16 decimal ORG DSCT TEMP RMB 1 RESULT RMB 1