************ * Program STEP_1 (6811) * * Moves stepping motor in direction determined by S7. * Speed is controlled by switches S6-S0. * * Note that index register is used to get patterns rather than * the technique used in the Lab 3 exercise. * * P. H. Anderson, 16 Oct 90; 14 Oct '91; 15 Jan 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 LDX #PATS AGAIN LDAA PORTC,Y * read switches STAA SWITCHES ANDA #$80 * ms bit BEQ L1 * if zero then cw BRA L2 * otherwise ccw L1 BSR CW BRA AGAIN L2 BSR CCW BRA AGAIN CW * subr - to turn cw increase adr of pattern, if at PATS+8 set back to * PATS. INX * next adr CPX #PATS+8 BNE ARND_1 * if at PATS + 8 reset to PATS LDX #PATS ARND_1 LDAA 00,X STAA PORTB,Y BSR TIME RTS CCW * subr - to turn ccw decrease adr of pattern, if at PATS-1 set back to * PATS+7. DEX * next adr CPX #PATS-1 BNE ARND_2 * if at PATS -1 reset to PATS+7 LDX #PATS+7 ARND_2 LDAA 00,X STAA PORTB,Y BSR TIME RTS TIME PSHX * uses nested loop PSHA LDAA SWITCHES ANDA #$7F T2 LDX #5000 T1 NOP DEX BNE T1 DECA BNE T2 PULA PULX RTS ORG DSCT SWITCHES RMB 1 ORG IDSCT PATS FCB $01, $03, $02, $06, $04, $0C, $08, $09