VersionHistory

Swordfish.VersionHistory History

Hide minor edits - Show changes to output

Added lines 2-18:

!!! 28 March 2023 - 2.2.4.0
*NEW - library files ADCC.bas, I2CX.bas plus various library updates (see updated_library.txt)
*UPDATED - 18FxxQ71.bas device files
*UPDATED - mpasmx v5.93, 8bit_device.info v1.63
-->correct 18FxxQ71 RSTOSC and BBSIZE entries
*UPDATED - PPSTool v0.0.6.4
*UPDATED - ConfigGenerator v1.3.7
*IDE 2.2.4.0
*ICC V1.2.1.0
-->FIX:  byte = -byte, where src == dest ignored any required banking
-->add 8-bit division routines (SB_DIV_8x8)
-->change floating-point rounding to better match previous versions
-->various floating-point optimizations (thanks to janni)
-->change int to float conversions to increase accuracy
-->rollback default setting in SwordfishICC.ini for 'optimize bit test' change made in v1209
--->to match v1208 setting (sb_tgoto=0)...was causing bank select issues
November 14, 2022, at 03:14 PM by Jerry Messina -
Added lines 2-27:

!!! 14 Nov 2022 - 2.2.3.8
*NEW - SF now allows locating a const array at a specific address in program memory
->example:
-->Const array1() As Byte @($1000) = (1,2,3,4,5)
-->see Samples\ConstantData\const_at.bas for examples and limitations
*UPDATED - change floating-point handling to support the full range of the Microchip 32-bit format
-->FLOAT_MAX as float = 6.80564693E+38,
-->FLOAT_MIN as float = 1.17549435E-38
*UPDATED - change various multiply routines to use hardware MUL instruction
-->this can result in up to a 10x increase in speed, depending on the operation
*UPDATED - mpasmx v5.92, 8bit_device.info v1.62
-->adds 18FxxQ71 devices (preliminary)
-->device list current as of mplabx 6.00
-->custom version of mpasmx to add support for devices not in mpasmx 5.87
*SF library updates (see updated_library.txt)
-->includes support for Q71
-->misc optimizations
*IDE 2.2.3.8:
-->improve IDE CodeExplorer handling for floating-point constants
*ICC 1.2.0.9:
-->FIX: bsr issue for multiplying 'integer = shortint * shortint' (16=8*8)
-->FIX: correct word multiply when dest is the same as either of the two source variables,
-->  ie w1 = w1 * w
-->optimize bit test code generation when reg is not in the access bank

November 23, 2020, at 08:07 PM by Jerry Messina -
Added lines 2-19:

!!! 23rd Nov 2020 - 2.2.3.6
*UPDATED - mpasmx v5.90, 8bit_device.info v1.60
-->new devices include:
-->14 and 20-pin 18FxxQ40/Q41 devices
-->18FxxQ83/Q84 devices
-->device list current as of mplabx 5.45
-->custom version of mpasmx to add support for devices not in mpasmx 5.87
*UPDATED - new/updated device files
*UPDATED - MPLABX plugin
-->requires mplabx 5.45 to support new devices
-->PICkit4/ICD4/SNAP/PKOB4 required for programming/debugging new devices
*SF library update 11/23/2020 (see updated_library.txt)
-->includes support for Q40/Q41/Q83/Q84 and other xv18 core device updates
-->new modules for xv18 hardware SPI peripherals
*IDE 2.2.3.6: remove dependancy on mpasmwin.exe
*ICC 1.2.0.6: remove dependancy on device asm .inc files

Added lines 10-11:
*SwordfishICC v1.2.0.5 - updated 10th Oct 2020 to fix an issue with Q10 and Q43 devices
-->see User Modules wiki page for details and download link
Added lines 2-9:

!!! 9th Sept 2020 - 2.2.3.5
*FIX - Corrected variable initialization using '@', 'addressof()', or 'bound()'
-->dim bdata() as byte = (10,20,30)
-->dim baddr as word = addressof(bdata)
*UPDATED - SF library update 9/8/2020 (see updated_library.txt)
-->includes GLCD I2C and SPI drivers for SSD1306 and ST7565R
*MISC - add ConfigGenerator to IDE plugins
Changed line 10 from:
-->fixes 8.3 filename issue (supports long filenames)
to:
-->fixes 8.3 filename issue (now supports long filenames)
Changed line 6 from:
-->NOTE: delayus and delayms accuracy is not very good with clock settings less than 4MHz
to:
-->NOTE: delayus and delayms timing should not be relied upon for clock settings less than 4MHz
Added line 6:
-->NOTE: delayus and delayms accuracy is not very good with clock settings less than 4MHz
Changed line 6 from:
*NEW - add support for '#option _inline_delayus' to set upper limit on use of inline delayus code
to:
*NEW - add support for '#option _inline_delayus' to set upper limit on use of inline delay code
Changed line 10 from:
-->adds .ini file support (allows using mpasmx.exe as assembler)
to:
-->adds .ini file support (allows using mpasmx.exe as IDE assembler)
Changed lines 9-10 from:
->fixes 8.3 filename issue (supports long filenames)
->adds .ini file support (allows using mpasmx.exe as assembler)
to:
-->fixes 8.3 filename issue (supports long filenames)
-->adds .ini file support (allows using mpasmx.exe as assembler)
Added lines 2-11:

!!! 22nd June 2020 - 2.2.3.4
*FIX - Corrected initialization of bit and boolean variables
*FIX (ICC 1.2.0.4) - Corrected crash with delayms() and clock < 1MHz
*NEW - add support for '#option _inline_delayus' to set upper limit on use of inline delayus code
*UPDATED - Add parameter checks to delayus(), delayms(), and 'clock='
*UPDATED - IDE Assembler v2.0.0.2
->fixes 8.3 filename issue (supports long filenames)
->adds .ini file support (allows using mpasmx.exe as assembler)

Changed lines 22-23 from:
->ConfigGen 1.3.3 - add min & max controls, autoload mpasm .info file
->PPSTool 0.0.6.1 now included
to:
-->ConfigGen 1.3.3 - add min & max controls, autoload mpasm .info file
-->PPSTool 0.0.6.1 now included
Changed lines 25-29 from:
->LCD.bas now allows any pins to be used
->GLCD.bas updated for large_code_model support
->ISRTimer.bas allows selection of TMR1/3/5/7
->ISRX.bas allows selection of USART1-USART5
->other misc changes (see library\updated_library.txt)
to:
-->LCD.bas now allows any pins to be used
-->GLCD.bas updated for large_code_model support
-->ISRTimer.bas allows selection of TMR1/3/5/7
-->ISRX.bas allows selection of USART1-USART5
-->other misc changes (see library\updated_library.txt)
Changed line 18 from:
*FIX - Corrected frame allocation issue with aliased SFR's introduced in v2.2.3.0
to:
*FIX - Corrected frame allocation issue with aliased SFRs (introduced in v2.2.3.0)
Changed lines 16-17 from:
-->  x As Byte = 3,
-->  value As Byte = a * b - 4
to:
--->x As Byte = 3,
--->value As Byte = a * b - 4
Changed lines 16-17 from:
--->x As Byte = 3,
--->value As Byte = a * b - 4
to:
-->  x As Byte = 3,
-->  value As Byte = a * b - 4
Changed line 22 from:
->ConfigGen 1.3.3 - add min & max win controls, autoload mpasm .info file
to:
->ConfigGen 1.3.3 - add min & max controls, autoload mpasm .info file
Added lines 2-29:

!!! 15th June 2020 - 2.2.3.3
*NEW - Add support for '#option large_code_model'
->This option enables support for >64K of const data, arrays, and strings
->Set '#option large_code_model = true' before all other includes
->example:
-->#option large_code_model = true
-->include "GLCD.bas"
-->include "graphics.bas"
*NEW - Allow initialization of variables when declared
->example:
-->Const a = 10
-->Const b = 20
-->Dim
--->x As Byte = 3,
--->value As Byte = a * b - 4
*FIX - Corrected frame allocation issue with aliased SFR's introduced in v2.2.3.0
*FIX (ICC 1.2.0.3) - Corrected issue where exceeding the max code space (_maxrom) did not generate an error
*DEVICE FILES - remove PORTD/LATD/TRISD from 18F25/26/27Q43 device files (present in original files)
*TOOLS -
->ConfigGen 1.3.3 - add min & max win controls, autoload mpasm .info file
->PPSTool 0.0.6.1 now included
*UPDATED - Library files
->LCD.bas now allows any pins to be used
->GLCD.bas updated for large_code_model support
->ISRTimer.bas allows selection of TMR1/3/5/7
->ISRX.bas allows selection of USART1-USART5
->other misc changes (see library\updated_library.txt)
April 05, 2020, at 11:36 AM by Jerry Messina -
Added lines 8-9:
*NEW - Add '#option ISR_SHADOW_LOW' and '#option ISR_SHADOW_HIGH' to choose hw/software context save
->Setting the option true uses hw context (shadow registers), and false uses software to save context
April 02, 2020, at 01:49 PM by Jerry Messina -
Added lines 2-16:

!!! 2nd April 2020 - 2.2.3.2
*NEW - Add support for '#option org_ram'
->This option sets the start of SF system ram, allowing it to be moved for devices that have SFR's located in the bottom ram page(s)
->example: #option org_ram = $0500      // start of system ram for Q43
*NEW - Support for 18FxxQ43 family
*UPDATED DEVICE FILES - Add new devices
->Add/change various settings to better define memory ranges, peripherals, etc.
->Add '#option org_ram' setting for all devices.
*UPDATED - Standard libraries include support for 'org_ram' and/or the Q43 (System.bas, EEPROM.bas, UARTx.bas, etc). Misc other enhancements (see 'updated_library.txt')
*UPDATED - MPLABX plugin with new device support
*UPDATED - A list of all the new supported devices can be found [[Swordfish.SupportedDevices | here]]
*FIX - Corrected K40 device program memory access (#define _nvmcon = 1)
->startup code was not setting NVMCON1 properly, causing table reads to be incorrect
->(this only seems to be an issue with silicon revs containing the TBLRD errata)
October 31, 2019, at 10:51 AM by Jerry Messina -
Changed line 4 from:
*NEW - ICC code generator support for xv18 core device (K42, K83 families), including support for 16K RAM (64 banks), new MOVFFL instruction, and multivector interrupts
to:
*NEW - ICC code generator support for xv18 core device families (K42, K83), including support for 16K RAM (64 banks), new MOVFFL instruction, and multivector interrupts