; ; Single Message Morse Program ; ;Defines #DEFINE REGHI BSF 3,5 #DEFINE REGLO BCF 3,5 #DEFINE KEYDN BSF 5,1 #DEFINE KEYUP BCF 5,1 ;Internal File Assignments PCL .EQU $02 PORTA .EQU $05 PORTB .EQU $06 PCLATH .EQU $0A ;Internal Bit Assignments W .EQU 0 F .EQU 1 ;User File Assignments OFFSET .EQU $0D TIMER1 .EQU $10 TIMER2 .EQU $11 ;User Bit Assignments KEYIN .EQU 2 KEYOUT .EQU 1 ;Program Starts Here!!!!!!!!! .ORG 5 CLRF PORTA CLRF PORTB CLRF PCLATH REGHI CLRF PORTA ;Set PORTA to all outputs MOVLW $FF MOVLW PORTB ;Set PORTB to all inputs REGLO LOOP BTFSS PORTB,0 ;Is Switch pressed GOTO TABLE ;Yes GOTO LOOP ;No DOT KEYDN CALL TIME KEYUP CALL TIME RETURN DASH KEYDN CALL TIME CALL TIME CALL TIME KEYUP CALL TIME RETURN SPACE CALL TIME CALL TIME CALL TIME RETURN LONG CALL TIME CALL TIME CALL TIME CALL TIME CALL TIME RETURN TIME MOVLW 22 MOVWF TIMER1 T1 MOVLW 128 MOVWF TIMER2 T2 DECFSZ TIMER2,F GOTO T2 DECFSZ TIMER1,F GOTO T1 RETURN END GOTO LOOP TABLE CALL DOT CALL DASH CALL SPACE CALL DOT CALL DASH CALL LONG GOTO END .END