icd2: assert in progress when programming with icd2 debugger TODO programmers: * icd1/2: optimize programming/reading: only program/read what's necessary!! * direct: alternate method to direct-program "Vdd first" chips (needed ?) * pickit2: protocol for firmware 2.x * support for other bootloaders (AN851, ...) * look into xwisp2/avrdude * pickit1/2: speed-up by not programming mask words and by programming 4/n words when possible... * pickit2: now supports 16F886/887 * add promate2 * direct: support dsPIC * add option to not autoload firmware (?) * direct: support 16F88X devices * icd2: 12F609/615 16F610 16F677(debug) 16F88X 30F1010/2020/2023 famid for 18J devices * pickit2: configuration to set target voltage to different values (?) * icd2: progress for firmware uploading * psp: add 18F support * psp: detection of programmer type (PSP, JuPIC, or Warp13) * psp: for Warp13, there are some differences for 18F devices... TODO debuggers: * gpsim: add stopwatch feature + clock speed config * icd2: fix 16FXXX debugging: init + reset + ... * 18F1330-ICD ? * icd2: how to read PORTB from 16F7X7 * device power toggle action: problem while running/debugging... (?) * should be able to read/verify/blankcheck while debugging: restart debug: ask ? * icd2: support more than one breakpoint for 18F * advanced breakpoints (register, function, ...) * add icd1 debugging * support sdcdb (?) * support ICD from CCS * PIC30: no disassembly in disassembly listing TODO interface: * set breakpoint in disassembly listing, close, reopen: not displayed... * escaping in string register entry * add serial terminal * "read all" registers is slow (gui refresh for each read) * add PC and goto PC in breakpoint list view (?) * add "random/set_range/..." actions to each range in hex editor * more filters in device selector * undo/redo + better selection in hex editor * .o view: more complete (?) * renaming of source files * COFF disassembly highlighting does not properly highlight multiline comments for C TODO toolchains: * support CC8E * PICC: no need to compile and assemble in two steps for C files * PICC: test debugging (from C or ASM files) * mix different compiler and assembler in a project... (subproject ?) * support for MPASM/MPLINK (mpasm freezes my version of wine...) * error/warning filter for C30/PICC/JAL/C18 * syntax highlighting for JAL: highlight assembler blocks * better syntax highlighting for Boost Basic * PICC Lite windows executable crashes with wine * support dsPICC: demo windows only and not working with wine * support C2C, C2C++, P2C: exception in wine... * support Proton Basic compiler * library project: other toolchains ? TODO generators: * fix cname generation for BSSEC/BSSIZ SSSEC/SSSIZ (none supported yet by gputils/sdcc ?) * add missing template generators * config generator: add/fix config names for gpasm/sdcc (18F) + picc + ... TODO command-line: * add "merge" commands to "piklab-hex" * add utility to disassemble (?) TODO misc: * if CTRL+D in konsole: should restart it... * check endianness: it should be alright since we are reading from hex file and outputing strings (?) * add log settings: log file / timestamp * allow saving hex to other formats * shouldn't we always use the IHX32 format for devices 18 and up ??? * Vdd-frequency graphs ignore different osc/modes... * code for UserId disassembly doesn't seem to be right... DEVICES: - finish checking device XML with XML Schema... - make an automatic parser for file "gpprocessor.c" of gputils to extract coff codes. - check list of devices against MPLAB for missing devices and discrepencies. - config bits: check config bits from MPLAB - vdd/freq: not sure I understand the Vdd range in 30F datasheets - sometimes "vpp" depends on "vdd"... - revision names... - 16F630-ICD has lower Vdd requirements for read/write - for 18F1230/1330 16F88X: Vdd-F graphs not available yet... - 12F6XX-16F6XX-ICD have lower Vdd requirements for bulk erase - checksums: unknown : 16C641/C661/C84 18J 18F2XXX/4XXX all wrong (?) : 16CE923/CE925 30F protected wrong (?) : 16CR73/CR74/CR76/CR77 16F72/F73/F74/F76/F77 16F873A/874A 18F1230/1330 datasheet wrong (?) : 12F508(Off:cc=DC68) 16C55A (All:cc=F332) 16C56A(All:not XOR4) 16C712(size=3FF) 16F616 (All:bc=FFBE cc=CBD8) 18F4331(same as 18F2331) 18F2439/4439/6520/8520 (wrong program size) blank value discrepencies : 18F6525 - 16C433: config bits datasheet do not agree with progsheet (used progsheet) - 16CR54/16C557: status ? - 16HV540: discrepency between datasheet and progsheet for CP bits - 18F2585/4585/2680/4680: data sheet is wrong for block description (boot block size is variable) - 18F6X10/6X90: discrepencies between datasheet and progsheet for PM and EBTR bits - unknown devices (from gpasm) : 18F2681/F4681/F64J15/F84J15 - 16CR57A ? - nr: PS501 PS810 PS700 - new devices: 33F 24F16/32/48 18F6628/8628/6723/8723 (compatible 18F8722) - future devices: 16F526 18F23K20/24K20/25K20/26K20 18F43K20/44K20/45K20/46K20 24FJ256GA110 GPUTILS: 0.13.5 - 16C54A: _CP_ON doesn't yield 0x007 [fixed in trunk] - 16C715: _CP_75 is missing [fixed in trunk] - 16F737/767/777 16F87/88: _FCMEN_OFF doesn't yield 0xFFE [submitted] - 16F883/884/886/887: BORV_21 doesn't yield 0xEFF - 17C42A/C43/C44: _PMC_MODE doesn't yield 0x7FAF - 18F1230/1330: BORV doesn't have the correct values in .inc file - 18F258/458: BORV_25 should be BORV_20 - 18F2510: using 12F510 lkr (?) - 18F6X10/6X90/8X10/8X90: missing PM/EBTR (if they exists on these devices ??) - 18J: config bits commented in "inc" file SDCC: 2.7.0 - 16CR620A/CR73/CR74/CR76/CR77: missing include - 16F616/F747/F946: missing include - 16F737/767/777/87/88: cf gputils - 16F886/887: missing DEBUG define [fixed in trunk] - 18F1320/2320/2525/4525: missing include - 18F2221/2321/4221/4320: not supported by GPUtils 0.13.5 - 18F4455/4550: missing ENICPORT_ON - 18F4620: missing XINST