; export symbols XDEF Entry ; export 'Entry' symbol ABSENTRY Entry ; for absolute assembly: mark this as application entry point ORG $4000 ;This program waits until switch on PM2 PTM: EQU $250 ;is closed, then it generates 20 ms DDRM: EQU $252 ;Square wave on PM1 output. PERM: EQU $254 ;PTM pull-up enable reg ;See Fig 3.19 of S12C32PIMV1.pdf Entry: LDS #$3F00 ;Init Stk Ptr ;(Just below UBUG12 stack) CLR PERM ;Disable PTM input pullups MOVB #2,DDRM;Make PM1 output, PM2 input. WT_SW_LOW: LDAA PTM ;A SW is connected to PM2 ANDA #4 ;If SW on PM2 high,A=4; if SW low,A=0 BNE WT_SW_LOW ;Loop here until SW is pressed. NEW_CYCLE: MOVB #2,PTM ;Make PM1 high JSR DELAY10MS;Wait 10 ms CLR PTM ;Make PM1 Low JSR DELAY10MS;Wait 10 ms JMP NEW_CYCLE;Repeat this forever. DELAY10MS: PSHX ;Save X on stack LDX #$FFFF WAIT_HR: DEX ;Wait by counting X down BNE WAIT_HR ;$FFFF to 0. PULX ;Restore X from stack RTS ;Return from Subroutine ;(Pop two bytes off stack ; and put into the PC) ;************************************************************** ;* Interrupt Vectors * ;************************************************************** ORG $FFFE fdb Entry ; Reset