; original File = C:\Program Files\Microchip\Project\wp\wp.hex processor 16F628A #include __config 0x3FC4 ; _CP_OFF & _DATA_CP_OFF & _LVP_ON & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_ON ; & _LP_OSC ; RAM-Variable LRAM_0x0A equ 0x0A LRAM_0x0B equ 0x0B LRAM_0x10 equ 0x10 LRAM_0x16 equ 0x16 LRAM_0x19 equ 0x19 LRAM_0x20 equ 0x20 LRAM_0x21 equ 0x21 LRAM_0x22 equ 0x22 LRAM_0x23 equ 0x23 LRAM_0x24 equ 0x24 LRAM_0x25 equ 0x25 LRAM_0x26 equ 0x26 LRAM_0x27 equ 0x27 LRAM_0x28 equ 0x28 LRAM_0x29 equ 0x29 LRAM_0x2A equ 0x2A LRAM_0x2B equ 0x2B LRAM_0x2C equ 0x2C LRAM_0x2D equ 0x2D LRAM_0x2E equ 0x2E LRAM_0x2F equ 0x2F LRAM_0x30 equ 0x30 LRAM_0x31 equ 0x31 LRAM_0x32 equ 0x32 LRAM_0x33 equ 0x33 ; Program Org 0x0000 ; Reset-Vector MOVLW 0x00 ; b'00000000' d'000' MOVWF LRAM_0x0A GOTO LADR_0x0031 RETLW 0x01 ; b'00000001' d'001' ; Interrupt-Vector MOVWF LRAM_0x20 MOVF STATUS,W CLRF STATUS MOVWF LRAM_0x2A MOVF FSR,W MOVWF LRAM_0x2B MOVF LRAM_0x0A,W MOVWF LRAM_0x2C CLRF LRAM_0x0A MOVF LRAM_0x27,W MOVWF LRAM_0x31 MOVF LRAM_0x28,W MOVWF LRAM_0x32 MOVF LRAM_0x29,W MOVWF LRAM_0x33 MOVF LRAM_0x2F,W MOVWF LRAM_0x2D MOVF LRAM_0x30,W MOVWF LRAM_0x2E BTFSC LRAM_0x0B,RBIF BTFSS LRAM_0x0B,RBIE GOTO LADR_0x001D BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select CALL LADR_0x0066 BCF LRAM_0x0B,RBIF LADR_0x001D BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVF LRAM_0x31,W MOVWF LRAM_0x27 MOVF LRAM_0x32,W MOVWF LRAM_0x28 MOVF LRAM_0x33,W MOVWF LRAM_0x29 MOVF LRAM_0x2D,W MOVWF LRAM_0x2F MOVF LRAM_0x2E,W MOVWF LRAM_0x30 MOVF LRAM_0x2B,W MOVWF FSR MOVF LRAM_0x2C,W MOVWF LRAM_0x0A MOVF LRAM_0x2A,W MOVWF STATUS SWAPF LRAM_0x20,F SWAPF LRAM_0x20,W RETFIE LADR_0x0031 MOVLW 0x21 ; b'00100001' d'033' "!" MOVWF FSR MOVLW 0x26 ; b'00100110' d'038' "&" CALL LADR_0x0045 MOVLW 0x00 ; b'00000000' d'000' MOVWF LRAM_0x30 MOVLW 0x03 ; b'00000011' d'003' MOVWF LRAM_0x2F MOVLW 0x26 ; b'00100110' d'038' "&" MOVWF FSR MOVLW 0x27 ; b'00100111' d'039' "'" CALL LADR_0x004A BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select CALL LADR_0x03FF MOVWF LRAM_0x10 CLRF STATUS GOTO LADR_0x00B0 LADR_0x0042 XORWF FSR,W CLRF INDF INCF FSR,F LADR_0x0045 XORWF FSR,W BTFSS STATUS,Z GOTO LADR_0x0042 CLRWDT RETLW 0x00 ; b'00000000' d'000' LADR_0x004A MOVWF LRAM_0x27 LADR_0x004B CALL LADR_0x0055 MOVWF INDF INCF FSR,F MOVF FSR,W XORWF LRAM_0x27,W BTFSS STATUS,Z GOTO LADR_0x004B RETLW 0x00 ; b'00000000' d'000' BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVWF LRAM_0x2F LADR_0x0055 BTFSC LRAM_0x30,7 GOTO LADR_0x005E MOVF LRAM_0x30,W MOVWF LRAM_0x0A MOVF LRAM_0x2F,W INCF LRAM_0x2F,F BTFSC STATUS,Z INCF LRAM_0x30,F MOVWF PCL ; !!Program-Counter-Modification LADR_0x005E BCF STATUS,IRP BTFSC LRAM_0x30,0 BSF STATUS,IRP MOVF LRAM_0x2F,W INCF LRAM_0x2F,F MOVWF FSR MOVF INDF,W RETURN LADR_0x0066 BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select INCF LRAM_0x26,F BCF STATUS,C RLF LRAM_0x21,F RLF LRAM_0x22,F MOVLW 0x12 ; b'00010010' d'018' SUBWF LRAM_0x26,W BTFSC STATUS,C GOTO LADR_0x0074 MOVF LRAM_0x21,W MOVF LRAM_0x22,W INCF LRAM_0x21,F BTFSC STATUS,Z INCF LRAM_0x22,F LADR_0x0074 MOVLW 0x21 ; b'00100001' d'033' "!" SUBWF LRAM_0x26,W BTFSS STATUS,C GOTO LADR_0x007A CLRF LRAM_0x26 INCF LRAM_0x26,F LADR_0x007A MOVLW 0x10 ; b'00010000' d'016' MOVWF LRAM_0x23 GOTO LADR_0x0097 LADR_0x007D MOVF LRAM_0x21,W MOVWF LRAM_0x24 MOVF LRAM_0x22,W MOVWF LRAM_0x25 MOVF LRAM_0x23,W MOVWF LRAM_0x29 MOVF LRAM_0x25,W MOVWF LRAM_0x28 MOVF LRAM_0x24,W MOVWF LRAM_0x27 INCF LRAM_0x29,F GOTO LADR_0x008C LADR_0x0089 BCF STATUS,C RRF LRAM_0x28,F RRF LRAM_0x27,F LADR_0x008C DECFSZ LRAM_0x29,F GOTO LADR_0x0089 RRF LRAM_0x27,W BTFSS STATUS,C GOTO LADR_0x0093 BSF PORTA,2 ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented GOTO LADR_0x0094 LADR_0x0093 BCF PORTA,2 ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented LADR_0x0094 BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BSF PORTA,0 ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented BCF PORTA,0 ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented LADR_0x0097 DECF LRAM_0x23,F INCFSZ LRAM_0x23,W GOTO LADR_0x007D BSF PORTA,1 ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented BCF PORTA,1 ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented LADR_0x009C BTFSC PORTA,5 ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented RETURN GOTO LADR_0x009C LADR_0x009F CLRF LRAM_0x0B MOVLW 0x07 ; b'00000111' d'007' BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVWF LRAM_0x19 MOVLW 0x20 ; b'00100000' d'032' " " BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVWF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select CLRF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BCF TMR0,7 ; !!Bank!! TMR0 - OPTION_REG - TMR0 - OPTION_REG BSF LRAM_0x16,5 BSF LRAM_0x0B,RBIE BCF LRAM_0x0B,RBIF BSF LRAM_0x0B,GIE BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select RETURN LADR_0x00B0 BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select CALL LADR_0x009F LADR_0x00B2 GOTO LADR_0x00B2 End