For the newer PICs not defined in icdpictypes.inc, the following generic types have been defined: model IdTypePIC max_flash (this is the max address of PIC) 18F w/4KB flash 0x60 0x800*2 18F w/8KB flash 0x61 0x1000*2 18F w/16KB flash 0x62 0x2000*2 18F w/24KB flash 0x63 0x3000*2 18F w/32KB flash 0x64 0x4000*2 18F w/48KB flash 0x65 0x6000*2 18F w/64KB flash 0x66 0x8000*2 18F w/80KB flash 0x67 0xA000*2 18F w/96KB flash 0x68 0xC000*2 18F w/128KB flash 0x69 0x10000*2 dsPIC w/6KB flash 0x90 0x1000 dsPIC w/12KB flash 0x91 0x2000 dsPIC w/24KB flash 0x92 0x4000 dsPIC w/48KB flash 0x93 0x8000 dsPIC w/66KB flash 0x94 0xB000 dsPIC w/132KB flash 0x95 0x16000 dsPIC w/144KB flash 0x96 0x18000 In order to work with a new PIC not found in icdpictypes.inc: 1. do NOT include the file icdpictypes.inc (remove the line: #include "../icdpictypes.inc") and: 2. define max_flash in bytes for the desired PIC (#define max_flash 0x4000*2 ; this is for a PIC with 16384 instruction words, with 2 bytes per instruction, resulting in 32768 bytes of flash) 3. assign to IdTypePIC the corresponding value from the above table. (IdTypePIC = 0x64) Example: Suppose the PIC18F252 is not listed: Take the .asm for a simmilar PIC and modify it like this: radix DEC LIST P=18F252 #include "p18f252.inc", xtal EQU 20000000 baud EQU 115200 IdTypePIC = 0x64 ; code from table above #define max_flash 0x4000*2 ; size of flash for 252 (32Kbytes == 16384 words == 0x4000 words) #include "../spbrgselect.inc" #define first_address max_flash-200 ....