errorlevel -302
-#include "p16f1455.inc"
-
-; CONFIG1
- __config _CONFIG1, 0xFCC
-;; __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_SWDTEN & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
-; CONFIG2
- __config _CONFIG2, 0x16CF
-; __CONFIG _CONFIG2, _WRT_OFF & _CPUDIV_NOCLKDIV & _USBLSCLK_48MHz & _PLLMULT_3x & _PLLEN_DISABLED & _STVREN_ON & _BORV_LO & _LPBOR_ON & _LVP_OFF
-
-
-#define max_flash 0x2000
-#define row_size 32
+#include "cpuselect.inc"
; 16F1455 errata says self-program only works <= 4MHz clock
xtal EQU 4000000
; banksel TRISC
; BSF TRISC,5 ; RC5 as input
; BCF TRISC,4 ; RC4 as output
- banksel PORTC
- CLRF PORTC
+ banksel SERIAL_PORT
+ CLRF SERIAL_PORT
+
+#ifdef SERIAL_ANSEL
+ banksel SERIAL_ANSEL
+ CLRF SERIAL_ANSEL
+#endif
- BTFSC PORTC,5 ; RC5 is Clear (break state) carry on
+ BTFSC SERIAL_PORT,SERIAL_RXPIN ; RC5 is Clear (break state) carry on
BRA AppVector ; Was not clear, launch app instead
; Lets start the bootloader properly
banksel OSCCON
- MOVLW b'00110100'
+ MOVLW OSC_4MHZ
MOVWF OSCCON ; 4Mhz clock mode
BTFSS OSCSTAT,HFIOFR
BRA $-1 ; wait until oscillator is ready
CALL SendByte
; Wait for PC to drop the break condition
- banksel PORTC
- BTFSS PORTC,5
+ banksel SERIAL_PORT
+ BTFSS SERIAL_PORT,SERIAL_RXPIN
BRA $-1
; Transmit device ID