2009-03-13 David Barnett <daviebdawg@gmail.com> * gputils-0.13.7 released 2009-03-13 David Barnett <daviebdawg@gmail.com> * Minor signed/unsigned cleanups from bug #2556391. 2009-03-12 Marko Kohtala <marko.kohtala@gmail.com> * Add LIST M=??? support for EEPROM8. 2009-03-10 Marko Kohtala <marko.kohtala@gmail.com> * configure script updated to only test for what is used. Fixes compilation problems due to unresolved rpl_malloc and others. * Some includes of stdlib.h and string.h fixed to take advice from configure. 2009-02-09 Marko Kohtala <marko.kohtala@gmail.com> * gpasm/parse.y: Move use of token symbols after definition. This is needed to compile with bison 1.4.1. * gpasm/Makefile.am, gplink/Makefile.am: Separate AM_YFLAGS -d option to enable automake magic to make EXTRA_DIST and MAINTAINERCLEANFILES unnecessary. Use BUILT_SOURCES to have parse.h available for include in other files (namely gpasm/directive.c). 2009-02-06 Marko Kohtala <marko.kohtala@gmail.com> * Synchronized device support with MPLAB IDE 8.20. Updated 82 devices. For some devices object files compiled with previous version will not link against object files from this version due to coff file type changes and memory size changes. Coff file type changed on pic12f508, pic12f509, pic12f635, pic12f683, pic16f505, pic16f54, pic16f57, pic16f59, pic16f610, pic16f636, pic16f639, pic16f716, pic16f737, pic16f767, pic16f777, pic16f785, pic16f84, pic16f84a, pic16f913, pic16f914, pic16f916, pic16f917, pic18f1230, pic18f1330, pic18f2610, pic18f2620, pic18f26k20, pic18f4610, pic18f4620, pic18f6310, pic18f6390, pic18f6410, pic18f6490, pic18f6627, pic18f66j60, pic18f66j65, pic18f6722, pic18f67j60, pic18f8627, pic18f86j60, pic18f86j65, pic18f87j60, pic18f96j60, pic18f96j65, pic18f97j60. Memory sizes fixed to match MPASM v5.30 for pic12c509, pic12c509a, pic12cr509a, pic12f509, pic12f510, pic12ce519, pic16c505, pic16f610, pic16f630, pic16f676, pic16f88, pic16f882, pic16f883, pic16f884, pic16f914, pic16f916, rf509af, rf509ag, rf675f, rf675h, rf675k. BSR position fixed on pic18f6525, pic18c658, pic18f6621, pic18c858, pic18f8621. Added 122 new devices from MPASM v5.30. * [gpasm] Updated config options with script by Michael Ballbach. 2009-1-30 David Barnett <daviebdawg@gmail.com> * Patch from Marko Kohtala to open COFF files with unknown device ID (using generic device of the same ROM width) 2008-12-15 David Barnett <daviebdawg@gmail.com> * Cleaned up processor definitions and updated from MPASM data (special thanks Marko Kohtala) 2008-12-03 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed warnings checking RAM against max ROM address (bug #2255225) 2008-12-02 David Barnett <daviebdawg@gmail.com> * Corrected COFF type for p12f510 (bug #2255399) 2008-12-02 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed infinite loop for odd addresses on 18F parts (bug #1988473) * [gpasm] Display code_pack sections byte-by-byte in listing file * Special thanks to Michael Ballbach 2008-12-02 David Barnett <daviebdawg@gmail.com> * Fixed filename expansion bug in regression test script 2008-12-02 David Barnett <daviebdawg@gmail.com> * Made regression tests Bourne shell compatible 2008-11-06 David Barnett <daviebdawg@gmail.com> * Added missing definitions for p18f23k20 and p18f43k20 (thanks Raphael Neider) 2008-08-19 David Barnett <daviebdawg@gmail.com> * Added header & LKR files for p18f23k20, p18f24k20, p18f25k20, p18f26k20, p18f43k20, p18f44k20, p18f45k20, p18f46k20 2008-07-08 David Barnett <daviebdawg@gmail.com> * Added support for p18f23k20, p18f24k20, p18f25k20, p18f26k20, p18f43k20, p18f44k20, p18f45k20, p18f46k20 (thanks Renato Caldas) 2008-06-06 David Barnett <daviebdawg@gmail.com> * Fixed segfault in gplink -O2 for symbols w/o sections (bug #1985543) 2008-06-06 David Barnett <daviebdawg@gmail.com> * Fixed CONFIG address range for 18f65j50 (bug #1986505) 2008-06-03 David Barnett <daviebdawg@gmail.com> * Fixed line number problems with CODE_PACK directive (bug #1972099) 2008-05-17 David Barnett <daviebdawg@gmail.com> * gputils-0.13.6 released 2008-05-17 David Barnett <daviebdawg@gmail.com> * Fixed bug in r528 (involving bug #1534641) 2008-05-16 David Barnett <daviebdawg@gmail.com> * Added support for p18f45k20 * Added this and previous few processors to processor list in documentation 2008-05-16 David Barnett <daviebdawg@gmail.com> * Added support for p18f65j50 2008-05-15 David Barnett <daviebdawg@gmail.com> * Added support for p18f4321 (thanks Rob Pearce) 2008-05-14 David Barnett <daviebdawg@gmail.com> * Updated CONFIG directive definitions to match MPASM 5.20 2008-05-14 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed segfault involving relocations on second pass of assembler (bug #1858537) 2008-05-13 David Barnett <daviebdawg@gmail.com> * [gpasm] Added support for p18f66j60, p18f66j65, p18f67j60, p18f86j60, p18f86j65, p18f87j60, p18f96j60, p18f96j65, and p18f97j60 (thanks Strobl Anton) * Added these and other added processors to processor list in documentation 2008-05-13 David Barnett <daviebdawg@gmail.com> * [gpasm] Updated French manpage for -C option (patch by Alain Portal) 2008-05-11 David Barnett <daviebdawg@gmail.com> * [gpasm] Added CONFIG start/end addresses into processor table (bugs #1831152, #1852585) 2008-05-11 David Barnett <daviebdawg@gmail.com> * [gputils] Updated p18f65j50.inc 2008-05-11 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed special-case default for PIC18 access bit (bug #1534641) 2008-05-11 David Barnett <daviebdawg@gmail.com> * [gputils] Fixed missing #include for Windows builds 2008-05-11 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed segfault on call w/ no args in PIC18's (bug #1943484) 2008-05-08 David Barnett <daviebdawg@gmail.com> * [gpdasm] Improved gpdasm to allow non-word-aligned byte addresses (bug #1917597) 2008-05-07 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed failed assertion for unreasonably high code addresses (bug #1741065) 2008-05-06 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed symbol problems for labels on blank lines in data sections (bug #1943487) 2008-05-05 David Barnett <daviebdawg@gmail.com> * [gpasm] Applied patch by Borut Razem to fix buffer overflow in LST file generation (bug #1922419) 2008-03-21 David Barnett <daviebdawg@gmail.com> * [gpasm] Added support for 18f2450, 18f4450, 18f2523 2008-03-21 David Barnett <daviebdawg@gmail.com> * Fixed bug with multiple spaces in #define directives (bug #1860881) 2007-11-22 David Barnett <daviebdawg@gmail.com> * Fix bug with #v substituted labels in code_pack sections 2007-11-21 David Barnett <daviebdawg@gmail.com> * Updated gputils manual (gputils.lyx) to LyX 1.5.1 and fixed outdated information 2007-11-20 David Barnett <daviebdawg@gmail.com> * Applied patch by Michael Ballbach to support code_pack directive 2007-11-19 David Barnett <daviebdawg@gmail.com> * Fixed endianness bugs in gpvc based on patch by Steve Tell (bug #803352) 2007-11-18 David Barnett <daviebdawg@gmail.com> * Changed "mode" directive on sx48/sx52 to support 5 bits (FR #835201) 2007-11-18 David Barnett <daviebdawg@gmail.com> * Changed COFF v2 optional magic number to 0x5678 (same as COFF v1) * Fixed strange errors in sx.asm and pageselw2.asm tests expected output 2007-11-18 David Barnett <daviebdawg@gmail.com> * Fixed COFF magic number regression 2007-11-17 David Barnett <daviebdawg@gmail.com> * Fixed CONFIG definitions for 16c54a and 16c715 (in PIC headers) 2007-11-14 David Barnett <daviebdawg@gmail.com> * Updated gpasm manpage for flag to output new COFF format (-C) 2007-11-13 David Barnett <daviebdawg@gmail.com> * Merged changes from patch by Andreas Kabel to support the new COFF format across all of gputils 2007-11-12 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed -g option to give meaningful error instead of failed assertion when missing .file directive (bug #1825940) 2007-11-11 David Barnett <daviebdawg@gmail.com> * [gpasm] Added support for 18f2321 2007-11-11 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed bad information on 12f509 and 18f6722 in processor data 2007-11-10 David Barnett <daviebdawg@gmail.com> * Fixed old version number to 0.13.5 (actually released 2007-10-27) 2007-11-08 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed gpasm absolute mode to give "maximum range" warnings between program memory and eeprom 2007-11-08 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed maxrom to respect max eeprom address (but temporarily removed warnings for addresses in between) 2007-11-05 David Barnett <daviebdawg@gmail.com> * [gplink] Applied patch from Robert Pearce to fix address/line mapping in COD files 2007-11-05 David Barnett <daviebdawg@gmail.com> * [gpasm] Updated gpcfg-table.c based on MPASMWIN 5.13 and script by Michael Ballbach 2007-11-05 David Barnett <daviebdawg@gmail.com> * Changed 'FCMEM' to 'FCMEN' in p18f4550.inc 2007-10-28 David Barnett <daviebdawg@gmail.com> * Applied patch from Alain Portal to fix French manpage 2007-10-28 David Barnett <daviebdawg@gmail.com> * Applied patch from Alain Portal to fix manpage formatting 2007-10-27 David Barnett <daviebdawg@gmail.com> * gputils 0.13.5 Released 2007-09-17 Scott Dattalo <scott@dattalo.com> * [gpasm] Single character strings were not being interpreted correctly for the .direct macros. 2007-09-28 David Barnett <daviebdawg@gmail.com> * [gputils] Fixed bsr location for p18f6585, p18f6680, p18f8585 and p18f8680 2007-09-17 Scott Dattalo <scott@dattalo.com> * [gputils] Added support for the p12f510. 2007-06-26 David Barnett <daviebdawg@gmail.com> * [gpasm] Report message when RES directive size evaluates to zero (or truncates on PIC18) * [gpasm] Report error when ORG has odd address on PIC18 2007-06-26 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed bug #1638506, where fixed idata addresses were divided by 2 2007-06-26 David Barnett <daviebdawg@gmail.com> * [gpasm] Added message when assuming first CBLOCK address 2007-06-25 David Barnett <daviebdawg@gmail.com> * [gpasm] Added support for pageselw directive * [gpasm] Added test cases for pageselw directive in gpasm.project directory 2007-06-25 David Barnett <daviebdawg@gmail.com> * [gputils] Patch by Michael Ballbach to add support for new COFF format 2007-06-25 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed bug #1466150, where gpasm produced bad HEX output (instead of an error) for addresses above 0xFFFF under some hex formats 2007-06-25 David Barnett <daviebdawg@gmail.com> * [gpasm] Reverted forward reference changes for RES directive (on 2007-6-19 & 6-20) since they affect the wrong value * [gpasm] Fixed potential uninitialized pointer access in do_define 2007-06-25 David Barnett <daviebdawg@gmail.com> * [gputils] Added support for p18f2682, p18f2685, p18f4682, and p18f4685 2007-06-22 David Barnett <daviebdawg@gmail.com> * Fixed bug in test scripts that prevented failures from being reported properly * [gpasm] Disabled reporting testing failed if tests in gpasm.mchip fail (several have never passed) * [gpasm] Added sx.o into test script directory, apparently forgotten * [gpvc] Changed 'gpdasm' to 'gpvc' in gpvc usage message 2007-06-22 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed token problem that caused some beginning-of-line directives (include, title, subtitle) to be accepted when not followed by whitespace or a delimiter 2007-06-21 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed bug #1335511, where redefining a symbol silently corrupts the COFF relocations 2007-06-21 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed to return non-zero for invalid command-line arguments 2007-06-20 David Barnett <daviebdawg@gmail.com> * [gpasm] Implemented warning for program code overflow * [gpasm] Implemented __maxrom directive (but not __badrom) * [gputils] Removed 16c747 (doesn't exist) and added 16f747 * [gputils] Fixed wrong address in 16c771.lkr 2007-06-20 David Barnett <daviebdawg@gmail.com> * [gpasm] Minor fix to previous update, assume 0 instead of 1 for "res" directive argument (size). 2007-06-19 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed behavior of undefined expressions on the first pass to assume 0 as in MPASM (affects strange "differ on second pass" cases like bug #1058509) 2007-06-18 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed to allow blank parameters on macro invocation, substituting nothing (not even empty quotes) as in MPASM 2007-06-18 David Barnett <daviebdawg@gmail.com> * [gplink] Fixed bug #1472396, error on empty comment line in LKR script 2007-06-17 David Barnett <daviebdawg@gmail.com> * [gpasm] Limited string->character coercion of 1-length string literals to contexts where syntax doesn't permit strings * [gpasm] Allowed special escape sequences (like hex codes) in character literals. Old behavior would silently return incorrect result. 2007-06-14 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed bug #897875, assertion failed instead of error for substitution of #define label without a value * [gpasm] Fixed minor bug with ignored parameter in check_defines 2007-06-12 David Barnett <daviebdawg@gmail.com> * [gpasm] Patch by Michael Ballbach to add support for CONFIG directive 2007-06-12 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed minor lexer error with title and subtitle directive involving whitespace after parameter * [gpasm] Fixed errors on misuse of #define directive 2007-06-11 David Barnett <daviebdawg@gmail.com> * [gpasm] Improved quote behavior on include, title, and subtitle directives and moved their logic into the parser grammar 2007-06-11 David Barnett <daviebdawg@gmail.com> * [gpasm] Corrected behavior for include directive with quoted, braced, and unquoted parameter 2007-06-07 David Barnett <daviebdawg@gmail.com> * [gputils] Added support for sx48 and sx52 * [gputils] Updated list of supported processors in gputils.lyx 2007-06-07 David Barnett <daviebdawg@gmail.com> * [gputils] Added support for p10f220 and p10f222 2007-06-07 David Barnett <daviebdawg@gmail.com> * [gputils] Added support for p16f610 * [gputils] Added support for p16f882, p16f883, p16f884, p16f886, and p16f887 * [gputils] Added support for p18f1230 and p18f1330 * [gputils] Added support for p18f24j10, p18f25j10, p18f44j10, and p18f45j10 2007-06-06 David Barnett <daviebdawg@gmail.com> * [gpasm] Corrected processor class and removed special-case missing instructions for p16f5x 2007-06-06 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed erroneous page count on p16f88 2007-06-06 David Barnett <daviebdawg@gmail.com> * [gpasm] Fixed missing warning for line ending in unpaired quote 2006-12-16 Scott Dattalo <scott@dattalo.com> * [gpasm] Patch from David Barnett to fix 'Duplicate Label' bug. 2006-08-19 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.13.4 Released. * [gputils] Updated header files and linker scripts. * {gputils] Fixed UPPER to mask with 0xff instead of 0x3f. * [gpasm] Mask MOVLB with 0xf instead of 0xff. * [gpasm] Fixed default access bit for extended pic16e. 2005-12-19 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpasm] Fixed 18xx config bug when config the last section. 2005-10-13 Craig Franklin <craigfranklin@users.sourceforge.net> * [gputils] Fixed bsr boundary for 18f2455/2550/4455/4550. 2005-08-18 Borut Razem <borutr@users.sourceforge.net> * [gplib] Allow forward and back slashes as directory delimiters. 2005-08-03 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.13.3 Released. * [gpasm] Added more arity checks to bit special instruction mnemonics. 2005-08-03 Raphael Neider <tecodev@users.sourceforge.net> * [gplink] Allow processor mismatch warning to be disabled. 2005-07-25 Craig Franklin <craigfranklin@users.sourceforge.net> * [gplink] Changed order of stack and cinit functions to fix bugs. 2005-07-02 Scott Dattalo <scott@dattalo.com> * [gpasm] Quoted strings can now be passed in a .direct directive. 2005-06-14 Alain Portal <aportal AT univ-montp2 DOT fr> * [man] Updated French man pages. 2005-05-26 Alain Portal <aportal AT univ-montp2 DOT fr> * [man] Updated French man pages. 2005-05-22 Craig Franklin <craigfranklin@users.sourceforge.net> * [gplink] Remove dead sections from the object files. * [gplink] Added default linker path to search paths. 2005-05-18 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpasm] Check for divide by zero on modulo operator. 2005-05-11 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpstrip] Allow multiple input files. 2005-05-07 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpasm] Generate dependency file. 2005-05-06 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpvo] Added symbol export feature. 2005-05-05 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.13.2 Released. * [gpal] Removed gpal until it reaches alpha status. * [libgputils] Fixed pointer bug in symbol removal function. * [gpasm] Use .org_{address} for ORG COFF section names. 2005-04-24 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpstrip] Added new utility. 2005-04-15 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.13.1 Released. * [gpasm] Generate an error if config is placed in the middle of section. * [gplink] Generate an error if a relocation address is outside a section. 2005-04-13 Craig Franklin <craigfranklin@users.sourceforge.net> * [gplink] Fixed a bug in section merging. * [gpvo] Fixed a bug when disassembling multiword instructions. 2005-03-23 Craig Franklin <craigfranklin@users.sourceforge.net> * [gputils] Updated header files and linker scripts. 2005-03-11 Craig Franklin <craigfranklin@users.sourceforge.net> * [gplink] Fixed RELOCT_ALL relocation. 2005-01-27 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpal] Updated pub files. 2005-01-22 Craig Franklin <craigfranklin@users.sourceforge.net> * [gplink] Remove weak symbols from input object files. 2005-01-17 Craig Franklin <craigfranklin@users.sourceforge.net> * [gplink] Scan archives for missing symbols multiple times if necessary. 2005-01-17 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpasm] Fix relocation error with LCALL and LGOTO directives. 2005-01-14 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpasm] Allow concatenation operators in extern and global directives. 2005-01-12 Craig Franklin <craigfranklin@users.sourceforge.net> * Updated config scripts. 2005-01-06 Alain Portal <aportal AT univ-montp2 DOT fr> * Updated French man pages. 2005-01-03 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.13.0 Released. * [gpdasm] Fixed error in decoding two word instructions. 2004-12-31 Craig Franklin <craigfranklin@users.sourceforge.net> * [gputils] Added support for 18xx extended instruction set. * [gplink] Generate a warning if object processor names don't match. * [gpdasm] Decode 18xx instruction mnemonics. 2004-12-24 Craig Franklin <craigfranklin@users.sourceforge.net> * [gputils] Updated header files and linker scripts. * [gputils] Added new processors: p10f200, p10f202, p10f204, p10f206, p16f59, p16f639, p16f685, p16f687, p16f689, p16f690 p18f6310, p18f6390, p18f64j15, p18f65j10, p18f65j15, p18f6627, p18f66j10, p18f66j15, p18f6722, p18f67j10, p18f8310, p18f8390, p18f84j15, p18f85j10, p18f85j15, p18f8627, p18f86j10, p18f86j15, p18f8722, p18f87j10 2004-11-28 Robert Kaes <rjkaes@users.sourceforge.net> * [gpal] Improved context save during isr. * [gpal] Simplified symbol offsets in the code generator. 2004-11-26 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpal] Added symbol attributes. * [gpal] Added access types. * [gpal] Added volatile symbols. * [gpal] Added records. 2004-11-09 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpal] Write a newline before eof in deps output. * [gpal] Require a public file for the module being compiled. 2004-11-09 Craig Franklin <craigfranklin@users.sourceforge.net> * [gpal] Generate Make compatible dependency lists. * [gpal] Attempt to open <public>.pub file if <public> isn't in memory. * [gpal] Use extended coff directives in gpal output files. * [gpasm] Fixed errors in new COFF directives. * [gplink] Sort sections in the map file. 2004-11-05 Craig Franklin <craigfranklin@users.sourceforge.net> * Moved gpal FSR code to device specific code generators. 2004-11-05 Robert Kaes <rjkaes@users.sourceforge.net> * Improved gpal 16e code generator. 2004-10-29 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed bugs in gpal banksels, code generation, and optimizer. 2004-10-27 Robert Kaes <rjkaes@users.sourceforge.net> * Moved gpal reset and interrupt vectors to device specific code generators. * Fixed gpal com operator. * Fixed gpal bug when function calls appear in test expressions. * Improved gpal 16e indirect accesses, indf accesses, and inc/dec functions. 2004-10-26 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow conditionals in gpal subprogram declaration region. 2004-10-24 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow complex alias expressions in gpal. * Allow pragmas in gpal subprograms. * Add second pass to gpal optimizer. 2004-10-21 Craig Franklin <craigfranklin@users.sourceforge.net> * Reduced number of gpal banksels. 2004-10-19 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed bug in new linker script option. * Use autoconf PACKAGE_BUGREPORT macro. * Improvements in gpal's 18xx code generator. 2004-10-17 Craig Franklin <craigfranklin@users.sourceforge.net> * Added absolute path option on win32 hosts. * Allow the linker script to be specified on as first item of the object list in gplink. 2004-10-15 Craig Franklin <craigfranklin@users.sourceforge.net> * Delete gplink output files when errors occur. * Use more boolean types. * Clean up top level of gplink. * Added French translation of gputils man pages. 2004-10-10 Craig Franklin <craigfranklin@users.sourceforge.net> * Merged changes from cod-branch: - Fixed stop location error in directory map of COD files. - Added time and date to COD files. - Fixed error in gpvc time reporting. - Changed to byte addressing for 18xx cod files. * Added direct messaging from COFF and COD files to simulator. * Added new COFF directives .ident and .type. * Allow expressions as arguments to banksel, bankisel, and pagesel. * Improved rpm spec file. 2004-10-02 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed error in disassembly of 18xx instuctions. 2004-09-26 Craig Franklin <craigfranklin@users.sourceforge.net> * Added directives to gpasm for directly modifying COFF symbol tables. * Changed the gpasm COFF debug directives to .file, .eof, and .line. 2004-09-24 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.12.4 Released. * Allow odd relocation addresses in gplink and gpasm. 2004-09-16 Craig Franklin <craigfranklin@users.sourceforge.net> * Improved banksel and pagesel directives. 2004-09-13 Craig Franklin <craigfranklin@users.sourceforge.net> * Remove processor name kludge in gpasm lexer. * Fixed bug in gpal indirect access banksel. * Fixed bug in gpal function return values. 2004-09-05 Craig Franklin <craigfranklin@users.sourceforge.net> * Added new error message to gplink to catch udata sections in devices with only shared memory definitions. * Allow udata sections to be relocated by gplink to shared sections if no space is available. 2004-08-29 Craig Franklin <craigfranklin@users.sourceforge.net> * Add 18xx support to gpal. * Fix disassembly of multi-word 18xx instructions. 2004-08-25 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow "#" in gpasm labels. 2004-08-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed disassembly of clrwdt on 16xx processors. 2004-08-22 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed BSR location for 18f2331, 18f2431, 18f4331, and 18f4431 2004-07-25 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.12.3 Released. 2004-07-24 Craig Franklin <craigfranklin@users.sourceforge.net> * Merged patches from OpenBSD port. 2004-07-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Added new processors: 12f508 12f509 12f635 12f683 16f505 16f636 16f785 16f913 16f914 16f916 16f917 18f2410 18f2420 18f2455 18f2480 18f2510 18f2515 18f2520 18f2525 18f2550 18f2580 18f2585 18f2610 18f2680 18f2681 18f4410 18f4420 18f4455 18f4480 18f4510 18f4515 18f4520 18f4525 18f4550 18f4580 18f4585 18f4610 18f4680 18f4681 18f6410 18f6490 18f8410 18f8490 * Updated header files and linker scripts. 2004-07-22 Craig Franklin <craigfranklin@users.sourceforge.net> * Define SFRs in pub files as uint8 instead of constant uint8. 2004-07-18 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow multiple modules and publics in one gpal file. 2004-07-17 Craig Franklin <craigfranklin@users.sourceforge.net> * Added _stack_end symbol to gplink to simplify downward growing stacks. 2004-07-13 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.12.2 Released. 2004-07-08 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow empty modules and publics in gpal. * Allow if statements in a module or public, but outside of subprograms in gpal. 2004-07-07 Craig Franklin <craigfranklin@users.sourceforge.net> * Added support for manually assigned data memory addresses in gpal. 2004-07-04 Craig Franklin <craigfranklin@users.sourceforge.net> * Added support for nested case statements in gpal. * Added support for multiple switch elements in gpal case statements. 2004-07-03 Craig Franklin <craigfranklin@users.sourceforge.net> * Added symbol alias feature to gpal. 2004-06-27 Craig Franklin <craigfranklin@users.sourceforge.net> * Added several new gpal optimizations. 2004-06-25 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed gpasm regression. Duplicate extern feature can cause assertions. * Allow cblocks in gpasm macros. 2004-06-16 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow duplicate extern directives in gpasm. 2004-06-15 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed relocations in idata sections. 2004-05-05 Craig Franklin <craigfranklin@users.sourceforge.net> * Added labels and gotos to gpal. 2004-05-02 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.12.1 Released. 2004-04-22 Craig Franklin <craigfranklin@users.sourceforge.net> * Added processor pub file generation. * Added default search path to gpal. 2004-04-17 Craig Franklin <craigfranklin@users.sourceforge.net> * Added support for #if directive and allow else in column 1. * Fixed malformed header files. They were missing a NL before the EOF. * Added interrupt context save to gpal. 2004-03-13 Craig Franklin <craigfranklin@users.sourceforge.net> * Added gplink command line option to disable list file output. * Fixed gplink bug that caused an error to be generated if a source file wasn't found when generating a list file. * Fixed gplink 18xx initialized data sections so retlw isn't used. * Added support for stack sections in gplink. * Use section type to determine format for gpvo disassembly output. 2004-02-09 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed bug in gpdasm relative branches. 2004-02-07 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed uninitialized memory in escape character conversion. 2004-01-20 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.12.0 Released. * Fixed bug in gpdasm relative branches. * Force decimal interpretation of debug line number directive in gpasm. * Don't insert LIST or NOLIST symbols in gpasm COFF outputs if debug directives are used. * Fixed bug when concatenated symbols <string>_#v<expr> is used as a macro argument. * Fill missing 18xx config words in gpasm relocatable objects with 0xff instead of generating an error. 2004-01-16 Craig Franklin <craigfranklin@users.sourceforge.net> * Use install path for default when environmental variable isn't set. * Added GPUTILS_LIB_PATH environmental variable for gplink. * Added list file output to gplink and fixed bugs in cod file output. * Added automake work around to fix compile order for bison outputs. * Switched to AM_ flags in automake so users can specify additional flags. 2004-01-09 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow full path to object file in gplib when creating an archive. * Always generate a warning when a source is missing an endif. * Prevent #v label from being processed when assembly is disabled. * Force list file to print blank space when assembly is disabled. 2004-01-07 Craig Franklin <craigfranklin@users.sourceforge.net> * Use environmental variables GPUTILS_HEADER_PATH and GPUTILS_LKR_PATH for the default header and lkr paths. * Removed CFLAGS from mingw port. * Fixed COFF line number bugs in gplink. * Fixed 18xx symbol offset bug when merging sections in gplink. * Fixed segfault in gplink when sections missing relocations are merged. 2004-01-01 Scott Dattalo <scott@dattalo.com> * libgputils/gpsystem.c - added unsigned short gp_getu16(char *addr) * gputils/dump.c - changed references of gp_getl16 to gp_getu16. Added new function fget_line() to read a line from a file. 2004-01-01 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow multiple config words for all devices in gpasm. 2003-12-25 Craig Franklin <craigfranklin@users.sourceforge.net> * Use full symbol name in gpal at the base of symbol tables. * Add symbol alias at the top of symbol table stack. * Use full type name in types. 2003-12-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Removed constant and variable keywords from gpal. Added constant type. * Removed header file scan from gpal. 2003-12-20 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed i_memory allocation so memory beyond 32k words is initialized to 0. * Fixed memory map in gpasm list files for 18xx devices. The map is now in byte format. 2003-12-18 Craig Franklin <craigfranklin@users.sourceforge.net> * Changed gpasm classification to beta, gpal to pre-alpha, and all others to alpha. * Updated gputils manual to include gpal. * Added gpal man page. * Fixed many gpal bugs. 2003-12-15 Craig Franklin <craigfranklin@users.sourceforge.net> * Added a new tool called gpal. * Added debug-info feature to gpasm, so HLL linenumbers can be inserted into COFF outputs. 2003-12-14 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed a bug in gpasm 18xx absolute data memory sections that caused the address to be wrong. 2003-12-01 Craig Franklin <craigfranklin@users.sourceforge.net> * Changed gpasm behavior so cblocks are only processed when assembly is enabled. 2003-11-30 Craig Franklin <craigfranklin@users.sourceforge.net> * Changed gpasm while loops to insert raw text instead of a parsed tree. 2003-11-29 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed gpasm bug that prevented some symbols from being substitued with macro parameters and #defines. 2003-11-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed gpasm bug that caused the relocation to be omitted if the macro argument is complex. * Fixed gpasm bug that could cause symbol offsets in relocations to be calculated incorrectly. 2003-11-22 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.8 Released. * Added new processors: 16f54, 16f57, 16f688 * Updated header files and linker scripts. * Updated libiberty from upstream sources. * Changed gpasm 18xx banksel from movlb relocation to banksel relocation. * Changed gplink movlb relocation to use the upper byte of symbol address. 2003-10-21 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed string to long conversion in gpasm so 32 bit numbers could be used. 2003-10-19 Craig Franklin <craigfranklin@users.sourceforge.net> * Updated documentation. 2003-10-18 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed a bug in 16xx special instruction mnemonics that could cause an incorrect branch calculation if a goto proceded the mnemonic. 2003-10-17 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.7 Released. 2003-10-09 Craig Franklin <craigfranklin@users.sourceforge.net> * Allow gplink to parse linker scripts with missing newlines before the EOF. 2003-10-08 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed an initialization problem that causes a segfault when the first line has a parse error. 2003-10-03 Craig Franklin <craigfranklin@users.sourceforge.net> * Added 18xx config and idlocs sections to gpasm coff outputs. * Cleaned up gplink script error reporting. 2003-09-28 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed gplink bug in 18xx absolute sections. * Fixed gplink memory allocation bug in 18xx devices. 2003-08-08 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed bug that could cause problems with comments on include directives. 2003-08-01 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.6 Released. * Added support for idata sections in gplink. * Changed extension of gplink object output from ".out" to ".cof" 2003-07-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed bsr boundary location for 18f248, 18f258,18f448, and 18f458. * Changed gpasm, gpdasm, and gpvo memory dump address format from word to byte for 18xx devices. * Changed gplink processor check to be processor family instead of processor name. * Changed gpdasm to display the second word of 18xx two word instructions. 2003-07-20 Craig Franklin <craigfranklin@users.sourceforge.net> * Added new processors: 16f716, 18f2620, 18f4620 * Update header files and linker scripts. * Fixed gplink error that caused the map file to always be generated. * Fixed bug in gpasm that caused 18xx access bank bit to be ignored if it was specified on some instructions. * Changed gpdasm 18xx address format from word to byte. 2003-07-07 Craig Franklin <craigfranklin@users.sourceforge.net> * Changed extension of gplink object output from ".o" to ".out" * Fixed error in RES directive when used for data sections. * Fixed typo in gp_date_string. 2003-06-28 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.5 Released. * Fixed byte count when RES directive is used in 18xx data sections. * Display help when multiple files are passed to gpasm, gpdasm, gpvo, and gpvc on the command line. * Check for lower case filename if include file is not found. 2003-06-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Extended the legal syntax for difference of coff symbols within the same section. 2003-06-22 Craig Franklin <craigfranklin@users.sourceforge.net> * Changed coff to use byte addressing for program memory of 18xx devices. * Changed absolute coff sections generated with org directive to use org_"number" for a name instead of org_"address". * Added missing relocation for "$" symbol. * Fixed bug in gpvo which could cause section data to not be printed for 18xx devices. * Added range warning to gplink for 18xx relative branches. * Changed default behavior of the 18xx access bit in gplink to be like gpasm. * Changed build directory for rpms. 2003-06-14 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed error in the range check for 17xx movpf and movfp instructions. 2003-06-04 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.4 Released. * Replaced or removed obsolete macros in configure.ac. 2003-06-01 Craig Franklin <craigfranklin@users.sourceforge.net> * Added new processors: p16c557 p16c747 p16f648a p16f684 p16f737 p16f767 p16f777 p18f2331 p18f2431 p18f2439 p18f2539 p18f4331 p18f4431 p18f4439 p18f4539 p18f6520 p18f6525 p18f6585 p18f6621 p18f6680 p18f8520 p18f8525 p18f8585 p18f8621 p18f8680 rf675f rf675h rf675k * Updated header files and linker scripts. 2003-05-20 Craig Franklin <craigfranklin@users.sourceforge.net> * Updated scripts to automake-1.6 and autoconf-2.57. * Ran autoscan and fixed reported problems. * Added AM_MAINTAINER_MODE to autoconf. 2003-05-10 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.3 Released. * Fixed seg fault in gpasm when difference between coff symbols is calculated. * Fixed map file bug that caused the end section address to be reported incorrectly. * Added gplink command line option to fill unused unprotected program memory. * Added gplink testsuite. 2003-05-06 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed conditional assembly of INCLUDE directives in gpasm. * Fixed seg fault in gplink when object has no sections or symbols. * Fixed target memory allocation in gplink when section size = page size * Fixed target memory allocation in gplink when section size = 1 * Implemented section fill in gplink. 2003-05-03 Scott Dattalo <scott@dattalo.com> * 18f Bit instructions were not handling the Access bit properly 2003-04-19 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.2 Released. * Fixed section size bug in org directives when used in gpasm coff outputs. * Fixed bug in cod file address size that confused MPLAB. * Fixed bug in lexer when < and > were used in the same expression. * Prevented symbols from absolute sections from being updated after relocation. * Added feature so gplink now loads a default linker script if one is not specified. * Updated header files. * Updated linker scripts. * Added configuration settings for OS/2 host. * Modified lexer to allow [.][a-z][a-z0-9]* labels. * Moved gpasm default header path to last in the search list. 2003-04-02 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.1 Released. 2003-03-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Moved common cod functions into libgputils. * Added cod file output to gplink. * Updated config scripts. * Added variable bsr boundary location for default access bit on 18xx devices. 2003-03-21 Craig Franklin <craigfranklin@users.sourceforge.net> * Check status of all fopens to prevent file io problems. 2003-03-14 Craig Franklin <craigfranklin@users.sourceforge.net> * Specified fopen() mode to prevent CRLF conversion on binary files when using the mingw port. * Fixed gplink bug that causes some symbols to be incorrect after section merging. * Report symbol names when resolving external references in gplink fails. 2003-03-14 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.11.0 Released. * Fixed bug that caused amode stack to be incorrect when exitm was used. * The P value for movpf and movfp instructions is now checked. * Added check for invalid destinations with movff instructions. * Cleared defines table at the start of second pass. * Generate a warning for macros only invoked on pass 2. 2003-03-09 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed segmentation fault in gplink. * Fixed a parse error in the sharebank definitions in linker scripts. * Moved COFF definitions to gpcoff.h. 2003-03-03 Craig Franklin <craigfranklin@users.sourceforge.net> * Finished relocation patching. * Added map and hex file outputs to gplink. 2003-02-27 Craig Franklin <craigfranklin@users.sourceforge.net> * Added relocation and linking functions to gplink. 2003-02-22 Craig Franklin <craigfranklin@users.sourceforge.net> * Removed nuisance warning about malformed asm files. * Fixed errors when using escape characters in strings. 2003-02-17 Craig Franklin <craigfranklin@users.sourceforge.net> * Added auxiliary coff symbols. 2003-02-16 Craig Franklin <craigfranklin@users.sourceforge.net> * Added pointers in object files to simplify linking operations. * Added checks when reading object files. 2003-02-02 Craig Franklin <craigfranklin@users.sourceforge.net> * Combined overlayed sections in gpasm coff outputs. * Append prefix on local variables that end up in coff file. * Fixed error that prevented using $ with data directives. 2003-01-19 Craig Franklin <craigfranklin@users.sourceforge.net> * Added object test files. * Fixed errors found by running new test files. * Added bankisel directive. 2003-01-05 Craig Franklin <craigfranklin@users.sourceforge.net> * Converted to new object structures. * Fixed errors in gpasm, gplib, and gplink. * Changed gpvo output format. 2002-12-22 Craig Franklin <craigfranklin@users.sourceforge.net> * Added coff file support to gpasm. * Added UPPER operator. * Removed invalid parts. 2002-12-04 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed incorrect range warning on 18xx gotos. * Fixed parse error for << operators > in the comment. * Cleaned up parse debug output. 2002-11-22 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.10.6 Released. * Fixed behavior of de directive for 18xxx devices. Data is now packed. * Added new directives: banksel and pagesel * Fixed default BSR behavior for 18xxx devices. * Changed gpasm default hex file format to inhx32. 2002-11-09 Scott Dattalo <scott@dattalo.com> * Invalid relative branches for 18xxx family were not generating errors. eg: bc $+258, bc $-256, rcall $-2048, rcall $+2050 all now generate appropriate errors. 2002-11-07 Craig Franklin <craigfranklin@users.sourceforge.net> * Added support for sx, 17xx, and 18xx devices in gpdasm. * Fixed config directive for 18xx devices with address > 0x300007 2002-10-27 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.10.5 Released. 2002-10-19 Craig Franklin <craigfranklin@users.sourceforge.net> * Added new processors: 12f629 12f675 16c557 16f627a 16f628a 16f630 16f676 16f72 16f76 16f77 16f818 16f819 16f87 16f873a 16f874a 16f876a 16f88 18f1220 18f1320 18f2220 18f2320 18f4220 18f4320 18f6620 18f6720 18f8620 18f8720 rf509af rf509ag * Updated header files 2002-10-12 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.10.4 Released. * Fixed bug that caused assertion when macro calls procede definition. * Fixed bug that required gpasm arguments be in a specific order. * Moved opcode definitions into libgputils for future gpdasm improvments. * Fixed bug that prevented conditional assembly directives in column 1 to be missed if assembly had been previously disabled. * Generate an error if endm is missing from a macro definition. * Increased gpvc file number limit from 20 to 100. 2002-08-18 Scott Dattalo <scott@dattalo.com> * gpasm - arithmetic for negative relative branches on a 16bit core was loosing the sign bit. 2002-05-12 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.10.3 Released. 2002-04-27 Craig Franklin <craigfranklin@users.sourceforge.net> * Added Code Warrior changes. 2002-04-09 Craig Franklin <craigfranklin@users.sourceforge.net> * Updated header files and linker scripts. * Added manpages. 2002-04-08 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed error that could cause a seg fault on AmigaOS. 2002-04-03 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.10.2 Released. * Any argument to an instruction which exceeds its range will now generate at least a warning. * Bank warnings are now generated for access to register files that aren't in bank 0. * Any goto or call which is to a page other than the current page will now generate a page warning. * Added --force-list option, so gpasm will ignore nolist directives. * The default values for hex format, radix, and warning level are now displayed. * Added description of the alternative number formats to documents. 2002-02-28 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed a bug that inserted an extra NULL line in a macro definition when += type ops are used. The bug caused a seg fault. 2002-02-23 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.10.1 Released. 2002-02-23 Craig Franklin <craigfranklin@users.sourceforge.net> * Macros are now implemented as a text substitution at the input to the lexer. All macro arguments are preprocessor substitutions like #define. * Fixed a bug that caused i = i + 1 type expressions to be evaluated twice in macros. * Include statements now appear before the body of the file in the listing. * Macro calls now appear before the body of the macro in the listing. * Fixed a bug that allowed #defines in the body of a macro to be processed during the macro definition. * "fill (<expression>),number", equ, and various other commands now work in macros. * Fixed several bugs in the processing of numeric constants. For example, with a hex radix setting "100b" is now evaluated as 0x100b not 0x4. * #v() subsitutions will now work in cblocks and macros. * Fixed a bug that could cause a segmentation fault with a bad text substitution. 2002-01-27 Craig Franklin <craigfranklin@users.sourceforge.net> * added rpm spec file. 2002-01-20 Craig Franklin <craigfranklin@users.sourceforge.net> * gputils 0.10.0 Released. 2002-01-17 Craig Franklin <craigfranklin@users.sourceforge.net> * Removed target detection from configure. Target is always a PIC so it doesn't make any sense to run the test. * Removed unnecessary object extension from Makefiles. * Added bzero.c to libiberty for mingw32 port. 2002-01-16 Craig Franklin <craigfranklin@users.sourceforge.net> * Added missing () in gplink lexer. * Added a subset of libiberty so getopt_long is always available. 2002-01-15 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed a bug in gpasm that causes a nuisance warning when multiple macro definitions are selected using conditional assembly. 2002-01-13 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed a bug in gpvc that could cause a segmentation fault. 2002-01-10 Craig Franklin <craigfranklin@users.sourceforge.net> * Renamed gpasm package to gputils. * Changed library from libgpasm.a to libgputils.a * Renamed mem2asm.c to dis.c * Appended gp prefix to all library files. * Renamed /gpasm/opcode.c to /gpasm/directive.c. * Corrected and updated copyright notices. * Moved /gpasm/cod.h to library. Removed cod.h from gpvc. * Moved test files to tool subdir for future support of dejagnu. * Started updating users manual. * Moved examples to gputils-extra package. * Corrected many problems with gplib. * Continued work on gplink. 2001-12-07 Craig Franklin <craigfranklin@users.sourceforge.net> * Added linker scripts. 2001-12-06 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed cygwin warnings with -Wall -pedantic flags. * Updated maintainer information. 2001-11-26 Craig Franklin <craigfranklin@users.sourceforge.net> * Fixed a bug that could cause a core dump when expanding macros. * Fixed a bug that cause labels inside of macros for 18cxx devices to be off by 2X. * Removed unecessary -I /usr/local/share/gpasm/header from example1 Makefile. * Fixed a bug that causes command line radix to be overwritten on pass 2. * Moved symbol table functions to library for use with gplink. * Added extra warning flags to cygwin. 2001-11-24 Craig Franklin <craigfranklin@users.sourceforge.net> * Added new tool gplink. This tool is intended to be compatible with mplink. This is a development version. It is not complete. 2001-11-17 Craig Franklin <craigfranklin@users.sourceforge.net> * Added new tool gplib. This tool is intended to be compatible with mplib. This is a development version. It is not complete. 2001-10-31 Craig Franklin <craigfranklin@users.sourceforge.net> * gpasm 0.9.14 Released. * The path to the header files is now searched when including files. This means the "-I /usr/local/share/gpasm/header" argument to gpasm is no longer necessary. The path may be displayed by commanding "gpasm -h". This path may be disabled at compile time using the "--disable-path" configuration option. 2001-10-25 Craig Franklin <craigfranklin@users.sourceforge.net> * implemented "fill (<expression>),number", where <expression> is a line of assembly. example: "fill (goto start), 10" * fixed bug #423204, infinite loop when missing new line before EOF in a file without the END directive * parser debug is enabled when PARSE_DEBUG is defined 2001-10-09 Craig Franklin <craigfranklin@users.sourceforge.net> * removed all // comments to satisfy --pedantic flag * fixed several errors in gpvo 2001-10-06 Craig Franklin <craigfranklin@users.sourceforge.net> * gpasm 0.9.13 Released. * Added new processors: p16c432 p16c433 p16c781 p16c782 p16c925 p16c926 p16cr620a p16f73 p16f74 p16f85 p16f86 p16f877a p18f242 p18f248 p18f252 p18f258 p18f442 p18f448 p18f452 p18f458 * Corrected header file errors. * New header files added: p16c781.inc p16c782.inc p16f85.inc p16f86.inc p16f877a.inc p18c601.inc p18c801.inc p18f020.inc p18f242.inc p18f248.inc p18f252.inc p18f258.inc p18f442.inc p18f448.inc p18f452.inc p18f458.inc 2001-10-02 Craig Franklin <craigfranklin@users.sourceforge.net> * "list n=0" may now be used to prevent page breaks in the listing file. This feature was provided by Reto Felix <reto.felix@bluewin.ch>. * All arguments to the list directive are now processed as decimal regardless of the current radix setting. * reformat ChangeLog 0.9.12 TSD for Craig Franklin 1. The preprocessor now supports #v(expression) substitution in labels and symbols. If symbol equals 4, then the label "mylabel_#v( (symbol * 3))_ok" is replaced with "mylabel_12_ok". 2. The error message "can't evaluate expression" has been replaced by more specific error messages. 3. eeprom8 device is now supported. 4. The DOS newlines option (-n) has been disabled on win32 systems. DOS newlines are already the default on these systems. 0.9.11 TSD for Craig Franklin 1. Labels are substituted when found on the #define table. 2. Labels are treated as macros when found on the macro table. 3. gpasm can now distinguish between directives and opcodes placed in the first column. 4. defines are now printing in the listing file symbol table. 5. #ifdef and #ifndef check the entire symbol table not just #define table. 6. Several processors had characters with the incorrect case in the defined_as section of their definition. This lead to incorrect warnings when using the Microchip header files. 7. Some changes have been incorporated for cross compiling to win32 systems. 0.9.10 TSD for Craig Franklin 1. The instruction set is now loaded when the processor is selected. Previously it was loaded when the first instruction is encountered. This resolves some old problems when the first instruction is incorrectly formatted. 0.9.9 TSD for Craig Franklin 1. Labels are now checked against the symbol tables. If the label is found on the instruction or the directive lists, a warning is generated and the text is treated accordingly. 2. Symbols may now be assigned values when declared using the local directive. As in "local i, j=15, k". 3. The extended ASCII character set (ü) may now be used for labels and symbols. 4. gpasm now tests for infinite while loops. In this condition, an error is generated and assembly continues. 5. Assembly will now stop upon encountering the first END statement. Regardless of location. 6. Flags have been added to the linker to warn when a common symbol is combined with another symbol. This condition could create porting issues. The warnings that resulted from this change were fixed. 0.9.8 TSD for Craig Franklin 1. Macros and While loops are now expanded in the listing file. Macro expansion can be disabled using "list e=OFF" in the source code or "-e OFF" as a gpasm argument. While loops are always expanded. 2. Macros and While loops are also expanded in the COD file. Now when you step through the source code in gpsim, the file viewer will jump to the macro or while loop definition. 3. New Processors added: 16c745, 16c765 4. Some users require dos style new lines (CRLF) in hex files for device programmers. gpasm will generate these by selecting -n or --dos. 5. The -Wall and -pedantic flags were added to gcc on linux systems. All warnings generated from this change were corrected. 6. Various configuration problems were fixed that caused "make distcheck" to fail. 7. getopt_long() has been added to gpvo. 8. A Makefile for generating rpms has been added. See the README in the rpm subdirectory for details. 9. BUG #433291. During macro innvocation, the list linetype was set to the value of the line before endm in the definition. This could result in a bad label error, if that line was a non code generating directive. The linetype is now "none" during expansion or "insn" during nonexpansion. 0.9.7 TSD for Craig Franklin 1. The i++ and i-- operators are now implemented. Note: the variable is a label and must appear in column 1. 2. +=, -=, *=, /=, %=, <<=, >>=, &=, |=, and ^= have all been implemented. Note: the variable is a label and must appear in column 1. 3. If a file ends during an IF statement, before an ENDIF found, a warning is now generated. 4. The conditional assembly directives IFDEF, IFNDEF, and ENDIF may now be proceeded by a "#". example: #ifdef 5. The SET directive may now be proceeded by "." 6. The header files have been updated. 7. A memory map is now generated as part of the listing file. The generation of the memory map is controlled by "list mm=[ON|OFF]". 8. The number of program words used by the program is now reported in the listing file. 9. Several users have had problems linking with libfl.a to get yywrap(). gpasm has been modified so that libfl.a is no longer needed. flex is still required. 10. The message generated whenever a special mneumonic was used has been disabled. This message was part of the test files provided by Microchip, but message is not yet part of the current mpasm releases. 11. The configure script now detects the host operating system. When using cc on SunOS the "-xCC" flag is used to allow "//" comments. 12. New processors added: 18c601, 18c801, 18f010, 18f012, 18f020, 18f022 0.9.6 TSD for Craig Franklin 1. A new utility, gpvo, GNU PIC View Object, was added. This tool displays the contents of Microchip's object files. The tool is in a very preliminary stage of development. To reflect this it is designated "pre-alpha". 2. BUG #426330. getopt_long() is not available on all systems. The configure script now detects the function. If it is not present gpasm uses getopt(). This does not change the features available, only the way they are commanded. 3. To make the error messages more readable the error codes are now enclosed in []. 4. BUG #423850. gpasm would hang on symbols defined incorrectly. #define foo foo. crash --> movlw foo An error is now generated each time foo is used in an expression and gpasm doesn't lockup. 5. 1/2 of BUG #423204. The top level assembly file must always end in "END". This condition is now tested for and an error is generated if it is not present. 6. BUG #422060. gpasm will now compile on a 64 bit machine (NetBSD/Alpha is the only one that has been tested). 7. gpvc header file had declarations that were getting instantiated multiple times. 0.9.5 TSD for Craig Franklin 1. gpasm, like mpasm, is now case sensitive by default. The -c parameter now makes gpasm case insensitive. 2. The macros in special.inc have been incorporated into the source code. This was done to solve a case sensitivity problem. 3. gpdasm can now read inhx16 format in addition to inhx8m and inhx32. 4. A new option, -i, has been added to gpdasm. This option returns data on the input hex file, like number of bytes and hex file format. 5. The format of error/warning/message has been changed. To standard output the new format is "filename":"line number": Error "number" "message" to the list file: Error ["number"] : "message" The list file output conforms with MPASM. The standard output conforms with most gnu tools. 6. GNU long options have been provided by Salvador Eduardo Tropea <salvador@inti.gov.ar>. 0.9.4 TSD for Craig Franklin 1. inhx16 hex format can now be generated by gpasm. 2. 17cxx devices are now checked for exceeding their 16 bit address range. If this happens an error is generated. 3. gpasm now checks to see if an address has been written to more than once. If it has an error is generated. 4. Previously, when an invalid data memory location is accessed, gpasm would generate a warning and not write the instruction to program memory. Now it will still generate the warning, but it also outputs the instruction. 5. __fuses is now equivalent to __config. 6. The 16c461 processor has been added. 7. When two different processors are selected in the source file an error, in addition to the duplicate processor warning, is generated. 8. The "#" symbol can now be prefixed to include directives. 9. If a source file ends during a while statement, before a endw is encountered, an error is generated. 10. Bug #413296. Numeric expressions followed by b, d, h, or o, are now interpretted according to the radix they represent (i.e. 144o = 144 octal = 100 decimal) 11. Labels are now checked to verify they are on a legal line. An example is shown below: Error radixerr.asm 16 : 121 Illegal label. 00016 Label RADIX OCTAL 0.9.3 TSD for Craig Franklin 1. The 17cxx processor family is now supported. Much of the work was completed by Carlos Nieves <cnieves@iname.com>. 2. Macro name case sensitivity is now controlled by the -c option. 3. Values stored to program memory using the dt directive are now masked to ensure that a value over 0xff isn't stored. 4. The number of arguments passed to EXPAND and NOEXPAND are now checked. If any number other than 0 is passed a warning is generated. 5. If no arguments are passed to SPACE, it is now equivalent to SPACE 0. 6. 16cr56 and 14000 processors are now supported. 7. SUBTITL and STITLE are now equivalent to the SUBTITLE directive. 8. A single character enclosed by double quotes is now interpretted as the corresponding ASCII code (example: ANDLW "A" = 0x0E41 for 12 bit cores). 9. The header files have been updated. 10. The ram access bit "a" for 18cxx devices now defaults to "0" or Access RAM. 11. The AND operator now has a higher precedence then the OR operator. The following line from the preced.asm test file demonstrates this. 002D 0000 00067 DATA 2 == (2 && 0 + 1) ; 0 00068 --> 002E 0001 00069 DATA 1 || 0 && 0 ; 1 002F 0001 00070 DATA 1 || (0&&0) ; 1 0030 0000 00071 DATA (1||0) && 0 ; 0 12. A few changes were required to compile under Mac OS X. Some of these changes were incorporated. 0.9.2 TSD for Craig Franklin 1. Added many new processors. The new list is below: gen p12c508 p12c508a p12c509 p12c509a p12c671 p12c672 p12ce518 p12ce519 p12ce673 p12ce674 p12cr509a p16c5x p16cxx p16c505 p16c52 p16c54 p16c54a p16c54b p16c54c p16c55 p16c55a p16c554 p16c554a p16c558 p16c558a p16c56 p16c56a p16c57 p16c57c p16c58 p16c58a p16c58b p16c61 p16c62 p16c62a p16c62b p16c620 p16c620a p16c621 p16c621a p16c622 p16c622a p16c63 p16c63a p16c64 p16c64a p16c641 p16c642 p16c65 p16c65a p16c65b p16c66 p16c661 p16c662 p16c67 p16c70 p16c71 p16c71a p16c710 p16c711 p16c712 p16c715 p16c716 p16c717 p16c72 p16c72a p16c73 p16c73a p16c73b p16c74 p16c74a p16c74b p16c76 p16c77 p16c770 p16c771 p16c773 p16c774 p16c83 p16c84 p16c85 p16c86 p16c923 p16c924 p16ce623 p16ce624 p16ce625 p16cr54 p16cr54a p16cr54b p16cr54c p16cr56a p16cr57a p16cr57b p16cr57c p16cr58a p16cr58b p16cr62 p16cr63 p16cr64 p16cr65 p16cr72 p16cr83 p16cr84 p16f83 p16f84 p16f84a p16f627 p16f628 p16f870 p16f871 p16f872 p16f873 p16f874 p16f876 p16f877 p16hv540 p16lc74b p18cxx2 p18c242 p18c252 p18c442 p18c452 p18c658 p18c858 sx18 sx20 sx28 2. Bug #231274. Page directive conflicted with the Page instruction in sx devices. The result was a redefining symbol error when an SX device was selected. This has been fixed. The result is the PAGE directive is disabled for all SX devices. 3. Config data is now masked by the device core size. This prevents things like 0x1234 from being written into config memory for a 12 bit device. 4. "decimal" and "octal" are now valid arguments for the radix. This is a legacy feature of MPASM. It is not documented in their users manual. 5. In instances of "label org 100", label is added to the symbol table. Previously, it was ignored. 6. BUG #233207. Labels defined inside macros now work. 7. Microchip has provided the gpasm project with test files they use to test MPASM. The new test files have been added to CVS. These files required the use of their header files. These were added to the project. They are installed when "make install" is ran. 8. The distribution now includes an example located in ./examples/example1. 9. A few changes were required to compile under cygwin. Some of these changes were incorporated. 10. Cleaned up source code. (Missing comments, unused code, ...) 0.9.1 TSD for Craig Franklin 1. The project was reorganized to make room for some new tools. Each tool is now located in its own subdirectory. Common functions are located in libgpasm.a in the lib directory. 2. A new utility, gpdasm, GNU PIC Disassembler, was added. Details can be found in the project documentation. 3. A new utility, gpvc, GNU PIC View COD, was added. Details can be found in the project documentation. This is basically version 0.0.3 of Scott Dattalo's vc. It will be maintained as part of gpasm. 4. Documentation has been updated. The gpasm section includes changes made during the 0.8.x series. It still isn't perfect. It is missing information on the PIC18cxx series. New sections have been added for the new tools. 5. Previously, the ERRORLEVEL directive required the user to force interpretation of arguments as decimal using "." or "d". This is no longer required. The arguments are always interpreted as decimal regardless of the radix setting. 6. A debug message has been removed from the maybe_evaluate function in opcode.c. 0.9.0 TSD for Craig Franklin 1. A typo in the help listing for the usage of warning level was fixed. 2. The options for LIST are case sensitive when the -c option is used. Because of this, list p=<XXX> works and list P=<XXX> doesn't. This has been corrected. 3. The addition of the case sensitive defines broke the processor selection using -p <processor>. This has been fixed. 4. gpasm -q will now suppress the output from the gperror system to the screen. This doesn't effect the listing file. It doesn't currently make gpasm totally quiet. Some messages bypass the gperror system. They are not effected by -q. 5. gpasm reported an "Unknown Opcode" for each instruction whenever a processor wasn't selected. It now reports this error as "Processor type is undefined". 0.8.16 TSD for Craig Franklin 1. New directives: da __idlocs variable constant 2. The data and db directives generated incorrect values for 16 bit cores. This has been corrected. 3. The dw directive generated incorrect values for all devices. This as been corrected. 4. inhx8s hex format can now be generated. 5. EXPAND and NOEXPAND directives can now be called without generating an error. They will not, however, effect the listing file. Similarly, macro expansion can be selected on the command line with "gpasm -e [ON|OFF]" or using in the source file "list x=[ON|OFF]." They will not effect the listing file. 0.8.15 TSD for Craig Franklin 1. When numeric arguments were passed to a function that expects a symbol, GPASM reported the error as "Expression to Complex". This has been changed to illegal argument to conform with MPASM. 2. A previous patch always warned the user then option or tris was used. I have learned that MPASM doesn't warn the user on p16c5x devices. The behavior has been modified to conform with MPASM. 3. The -c option now makes the #defines case sensitive. 4. Command line setting of the warning level is supported. Like MPASM, command line arguments override settings in the source code. All command line settings now have flags indicating the value was set by the command line and it can't be overwritten by the asm source code. A warning or message is posted to the user. 5. Output hex file format can now be chose using LIST f=<inhx8m|inhx8s|inhx32>. 6. GPASM 0.8.14 has a bug were the org isn't reset after a config is called. This is normally not seen because most people place the config statements before their first org. This patch saves the org before the config is ran then restores it afterword. 7. GPASM 0.8.14 doesn't print the config information to the list file correctly for pic18cxx devices. 8. Several new codes have been added for new tests. 9. The FILL directive works. It works the same as MPASM with one important exception. It does't support the use of a line of assembly as an argument. That is not a problem because the while statement can do the same thing. 10. GPASM now generates inhx32 format. In adding this, a structural change had to be made. Previously, the MEMBLOCK segment size was 64K words. I changed this to 32K words. I did this because the 32K words (or 64K bytes) is equal to one segment. Which, conviently, is the maximum size for a inhx8m file and the size of one inhx32 segment. 11. The list file had some extra blanks. These were fixed. 12. All of the directives and instuctions now have the correct list linetype assignment. I abandoned the default method because of too many special cases. 13. The RADIX directive had a linetype assignment of ORG, it should be none. 14. The ORG directive originally had the correct line type assignment of ORG. It was changed to EQU in version 1.8 of opcode.c. I don't know the reason. This patch changes it back. 15. The PAGE directive had a linetype assignment of ORG, it should be NONE. 16. Directives in scan.l (include, define, ..) are now all case insensitive. There are many instances in microchips appnotes of SubTitle, Title, ... GPASM 0.8.14 dosesn't recognize them. The change was to add "-i" to flex when GPASM is compiled this makes the scan.l case insensitive. 17. #undefine now works. Previously symbols could be redefined by having another instance of #define. Doing so will now result in a warning. Symbols must be defined and undefined and defined again to be reassigned. 18. Previously, #define could only appear in column 1. Now it does not. This occurs in micorchip include files. 19. Previously, #defines were executed regardless of assembling being enabled. An example would be a set of defines inside an IF statement. This case occurs when Micorchip's include file for 16c5x devices is used. 0.8.14 TSD Yet another patch from Craig Franklin that improves gpasm error handling capabilities. Also, I added the 16f876 for Alex Holden. 0.8.13 ELS - Added gpasm.spec file to build RPMs under Red Hat Linux 7.0, use 'rpm -ta gpasm-0.8.13.tar.gz'. Added missing newline to gperror.h. 0.8.12 TSD Patch from Craig Franklin mailto:craigfranklin@users.sourceforge.net that implements the ERRORLEVEL directive. 0.8.11 TSD Patch from Craig Franklin mailto:craigfranklin@users.sourceforge.net to fix command line options (the -o option was missing, and the -e and -w options weren't being used). Also applied patch from Craig that implements the subtitle directive. 0.8.10 TSD added support for more than 8 files in one .cod file. 0.8.6 symbol information was not being written to the .cod file 0.8.5 added >64k file generation capability. added support for the __CONFIG address, config_bits directive (you used to couldn't specify the config address) added i_memory.c to handle the instruction memory. Previously, i_memory was a 64k, statically allocated array. Now it's a dynamically allocated linked list of 64k memory blocks. redesigned/rewrote major portions of cod.c to accomodate the greater than 64k code generation. Removed the unnecessary restriction that the miscellaneous code blocks had to be written in a specific order. Added multiple directories. Fixed the code range information (this specifies where there's valid code). 0.8.1 - 0.8.4 minor enhancements 0.8.0 - added a few more processors - the HIGH directive was always returning 0 - __CONFIG directive now supports an optional address - added support for >64k address space (this allows the 18cxxx config word to be handled properly, but at the same time the change is general enough to accomodate code generation at addresses above 64k - a feature gpsim will soon need). - Switched the Makefile to a more standard automake style. - Changed the number notation so that what was the micro version is now the minor version. Development releases will bump the micro version. (This means gpasm-0.0.8 is now expressed as gpasm-0.8.0). - renamed gpasm.y to parse.y so that the automake tools would be happy. - Enhanced the error message system. 0.0.8 Added SET opcode Supports '=' syntax for SET Added WHILE/WEND Added ERROR Added 'generic' processor type; needed for AVR support Support for .cod files added - added cod.c and cod.h - several small changes scattered through out all of the source some of the more significant changes: o modified the state structure to accomodate symbol files o gpasmVal now has typing information o cblock defined constant are given register typing o program labels are given typing info Added a few more pic processors __config now will display the config address and config value in the .lst file dt macro didn't ignore upper 8 bits of a literal added new macros: db byte packed data table dw same as data macro de like dw but upper nibble is zeroed Added support for the 18cxxx instruction set. Added the '-l' (dash ell) option for showing the list of supported processors 0.0.7 Tab-stops now expanded to spaces in listing, LIST b=NN supported Scenix processors added Changed sys_errlist[] to strerror() Manual update 0.0.6 Build using autoconf 0.0.5 Fixed bug where we always processed equ statements, even inside conditional assembly blocks. 0.0.4 Second invocation of macro actually runs the macro twice, so local forward definitions get resolved correctly. This means that macro bodies get 3 passes made on them. Far from pretty, but it does the job. See execute_macro(), and new function execute_body(). Restore cblock value to 0 at start of 2nd pass. Accept CBLOCK headers without an expression: continues at previous CBLOCK value. See gpasm.y. Accept CBLOCK values as labels, with or without an expression. See gpasm.y. Do #define substitution. Done in the lexical analyser, using the same stack that we use for include files. Still no support for parameters in #define. See scan.l. Evaluate '$' late, instead of at parse time. Missing parameter to bit operations was giving coredump instead of error message. Makefile now builds with "gcc -Wall --pedantic", had a general cleanup following this. Small fix to lexical analyser to make it cope with MSDOS '\r' characters.