; 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