Adapt bootloader for 12F1840 devices
[bootloader] / mybootload.X / main.asm
index 9df5743..9425e29 100644 (file)
@@ -2,18 +2,7 @@
 
     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
@@ -87,15 +76,20 @@ StartBoot
 ;    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
@@ -135,8 +129,8 @@ SetBaud
     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