# Version history

Version 1.14 - June 8th 2019

- Upgraded the C Compiler to version 1.36 by integrating all the latest changes from Fabrice Frances: Better code generator, float/int conversion fixes, better error handling.
- Changed the default compile optimization level from -O2 to -O3 - providing significantly better code generation, both in size and speed
- Upgraded Link65 to the version 0.66: The new macro file generate lines that contain multiple instructions, the linker stopped at the first encountered instruction, this new version correctly parses that
- The code generator macro file is now compatible with both XA and FRASM
- Updated FilePack version number to 0.2 to 0.5 after somebody reported an issue with a veryyyyyyy old version which happened to have the same version number of a much more recent one.
- Tap2Dsk 2.1.1: Added a fix to avoid the tool to stay stuck on tapes with incorrect size specified in their headers
- Fixed a problem with itoa not correctly processing negative numbers (the "-" was overwritten by the number printing routine). Also took the opportunity to optimize the code (removed the jsr itoa / rts as well as an unnecessary x register clearing (it's set to zero when we are back from udiv10)
- Added support for %u to printf
- A new environment variable, OSDKVERSION contains the version number of the SDK, it is shown when building a program

Version 1.13 - October 14th 2018

- Upgraded Bas2Tap to version 2.1, with better handling of defines and DATA instructions
- Added a missing EQ0W_C macro for the C compiler.
- Added a missing reference to Sedoric in the library index file

Version 1.12 - July 29th 2018

- Upgraded Bas2Tap to version 2.0, with support for labels, defines, escape codes and binary optimization
- Updated macros for the C compiler from version 1.29 to 1.30 (fixes in the ADDW_IID, SUBW_IID, ANDW_IID, XORW_IID and ORW_IID which used the wrong register to access the source pointer).
- Fixed the BomberZ sample program to use the new Bas2Tap syntax
- Fixed the library functions 'scanf' and 'sscanf' (For some reason these files had not been converted to use the XA syntax when we switched from FRASM)
- Upgraded the version of Sedoric 3 used by Tap2DSK with the patch that improves the handling of the "insert master disk" prompt
- Modified the Oricutron batch file to use PUSHD/POPD instead of CD, this makes it possible to start the emulator even when the project is on another disk drive location

Version 1.11 - March 17th 2018

- Upgraded FloppyBuilder to version 1.2 (fixed issues with gap2 and crc values)
- Upgraded Bas2Tap to version 1.0, now correctly handles corrupted programs using out of range tokens as well as saving to a file instead of stdout
- Upgraded PictConv to version 1.0 (Fixed some error handling as well as a minor issue in the Atari multipalette conversion)

Version 1.10 - April 13th 2017

- Upgraded XA to the version 2.2.5 (Added a new '-cc' command line parameter to allow compatibility with the CC65 toolchain)
- Upgraded PictConv to the version 0.25 (Fixed the off-by-one error in the tape header when Exporting Oric images to tape format)
- Added a new environment variable, OSDKXAPARAMS, which can be used to pass any arbitrary set of parameters to XA when the build script is called

Version 1.9 - March 18th 2017

- Upgraded XA to the version 2.2.4 (Extended the values for a number of hardcoded defines (labels, blocks, number of open files, etc...))
- Upgraded Link65 to the version 0.65 (Fixed some issues in the token pattern matching used to detect labels resulting in #includes containing relative paths to be incorrectly parsed)
- Upgraded FloppyBuilder to version 1.1 (New format, new commands, sector interleaving, ...)
- Upgraded PictConv to the version 0.24 (Fixed a problem in the color reduction code failing on a 32bit source image)
- 6502 syntax coloring for Notepad++, by Jede

Version 1.8 - January 17th 2016

- The build script is now correctly setting up XA: If you use 65816 or 65c02 instructions they will be refused with an error message
- Upgraded Link65 to the version 0.64 (fixed a bunch of problems with include files and external symbols)
- Upgraded FloppyBuilder to version 0.19 (Better error handling).
- Improved the FloppyBuilder sample program with a new API file to make it easier to use

Version 1.7 - January 7th 2016

- Upgraded PictConv to the version 0.23 (Two new options for the Atari ST monochrome mode, -f2 and -s1)
- Upgraded FloppyBuilder to version 0.18 (Added a 'ReserveSectors' command that can be used to leave room on the disk for save games or stuff like that).
- Added a FloppyBuilder sample program
- The OSDK is now going through the Coverity analyzer (https://scan.coverity.com/projects/osdk - a number of small issues have been corrected, but as all code changes that can lead to bugs)

Version 1.6 - May 31th 2015

- Upgraded PictConv to the version 0.22 (Fixed the -o0/-o1 documentation error, and made the -f5 charmap mode actually work)
- Upgraded FloppyBuilder to version 0.17 (data can now be extracted from an existing DSK file, parser and macro expansion improvements).
- Upgraded Ym2Mym to the version 1.6 (music can now be truncated and faded out)
- Disabled the verbose messages displayed by old2mfm.

Version 1.5 - February the 24th 2015

- Upgraded PictConv to the version 0.21 (Support for AIC and alpha channel)

Version 1.4 - December the 12st 2014

- Upgraded Oricutron to the version 1.2
- Upgraded Ym2Mym to the version 1.5
- Updated the documentation.

Version 1.3 - September the 20st 2014

- Updated code generator and macros for the C compiler (bug fix for the MicroChess program).
- The C Compiler now supports binary values (using the 0b prefix).
- Many fixes to make the LINUX version a reality (case change for files, gcc compile fixes, ...)
- Upgraded Bas2Tap and Tap2Dsk to give names to the generated tapes.
- Upgraded Header: The address can now be specified with either $ or 0x as an hexadecimal prefix

Version 1.2 - March the 16st 2014

- Upgraded Bas2Tap to fix a loading bug.

Version 1.1 - February the 24st 2014

- Upgraded Oricutron to the version 1.1

Version 1.0 - February the 23rd 2014

- Added FloppyBuilder 0.15 - A new tool to generate bootable floppies with full access to overlay memory.
- Added Ym2Mym 1.4 - A new tool to convert Atari ST and Amstrad musics to a format suitable for the Oric.
- Upgraded PictConv to the version 0.19 (New 'img2oric/libpipi' algorithm)
- Plus quite many internal changes (linux compatibility, bug fixes, ...) which should not impact the end user of the SDK

Version 0.20 - April the 8th 2012

- Oricutron 0.9 is now used by default instead of Euphoric, you can set OSDKEMUL to choose between EUPHORIC and ORICUTRON.

Version 0.19 - January the 18th 2011

- Upgraded XA to the version 2.2.3
- Added TapTool 1.0 - Should work as a drop-in replacement for Tap2CD, in the future will provide in one tool all the functionalities of Tap2Wav, Tap2CD and Tap2DSK.
- Added DskTool 1.0 - Should work as a drop-in replacement for Old2Mfm, in the future will provide in one tool all the functionalities of Old2Mfm, Raw2Mfm, CRCFix, Init, MakeDsk, ...

Version 0.18 - January the 15th 2011

- Upgraded Euphoric to the version 1014
- Upgraded MemMap to the version 0.04
- Upgraded XA to the version 2.2.2
- The handling of the stackframe should not be more robust, fixing the random variable corruption that happened in code using many functions calls and local variables.
- The libraries now contains a 32 bit multiplication routine, and a Microsoft compatible random number generator.

Version 0.17 - November the 29th 2009

- It is now possible to indicate subfolders in the OSDK_CONFIG file list
- A new configuration parameter OSDKDISK can be used to define the layout of a DSK file. When calling OSDK_EXECUTE this will automatically run Euphoric in microdisc mode, and make it boot on the newly generated floppy.
- Upgraded the version of Tap2Dsk
- Integrated the first version of Wilfrid AVRILLON's BASIC labelizer tool
- Bas2Tap now accepts line number 0, and has a new parameter -color[0|1] to enable syntax coloring on rem statements.
- Added a 256 bytes demo in the assembler samples, to show how to do a minimalistic program.
- PictConv now uses FreeImage 3, this means more supported file formats.
- Fixed an issue in LIB.H with the macros peek and poke

Version 0.16 - December the 13th 2006

- Replaced a part of the build process that was crashing Wine. It is now possible to compile an Oric program with the OSDK on a Linux machine.
- If you have DosBox installed, it is now possible to run Euphoric in a windowed mode.
- Updated the documentation with more interpage links.
- Upgraded Euphoric to the version 1007
- Added Bas2Tap as a native part of the OSDK. It is now possible to generate programs from a BASIC source code easily.
- Added a lot of options to fine tune the output of Bin2Txt, including the possibility to generate BASIC files.
- PictConv can now export pictures as BASIC DATA lines.
- PictConv can convert colored pictures that are not 240 pixels wide

Version 0.15 - August the 2nd 2006

- Corrected a stupid mistake that led to invalid code generation

Version 0.14 - June the 9th 2006

- Some new features in PictConv
  - If there is something specified after -o3 or -o4 modes, it's used as a label name to use when generating source code data.
  - If there is a 'z' specified after -f0 mode (monochrome conversion), it means that bit 6 should not be set in converted bytes
  - Added -n switch to set the number of values per line (stolen from Bin2Txt !)
- Update the documentation page about PictConv, it was severly lacking some important details -like file formats-

Version 0.13 - June the 4th 2006

- Corrected a bug in the makefile (introduce in version 0.12) that make it impossible to compile C programs
- It is now possible to use .ASM extension for assembly source code, in addition to .S
- Added pictures of Windows 2000 and Windows XP system properties in the installation page.

Version 0.12 - June the 4th 2006

- Corrected a bug in the linker that made it impossible to use the linker with only one source file
- Corrected a bug in the #file command in XA, it now correctly displays the file and line if an error happens during the second pass
- Corrected a bug in the handling of static function pointer generating bad code (1.29 code generator by Fabrice)
- Added an option to display the size of generated programs in Header

Version 0.11 - March 2006

- Corrected a bug in the data unpacking code (overflow when offset was equal to 4096 exactly)
- Corrected a bug (hack) in XA that make it crash when processing too many levels of macro expansion
- Added a way to generate masks from a bitmap in PictConv
- Added support for Atari ST compatible bitmap data in PictConv
- Added an option in Bin2Txt to set the number of values per line of data
- Added a new program in the OSDK, MemMap with the associated osdk_showmap.bat to show how memory is used

Version 0.10 - January 2004

- Corrected bug in the memset routine: it was trashing the first byte that follow the routine.
- Added screenshots of Euphoric menu, boot sequence and debugger in action

Version 0.09 - January 2004

- Corrected a bug in the data unpacking code
- Corrected a bug in the EQW_DI macro instruction
- Modified the linker to handle pure assembly code projects (SET OSDKLINK=-B in the configuration file)
- Modified the linker to make it not complain about .( and .)
- Modified the linker to add #file directives in order to get valid error messages (file/line) from XA assembler
- Modified the linker to makes it accept /* */ comments (was previously crashing badly)
- Modified the assembleur to accept the #file directive
- Modified the makefile to accept a OSDKCOMP variable to handle compiler optimisation settings
- Updated Euphoric to release 1.004a
- Added "testing" mode to PictConv
- Added a "don't save header" mode to FilePack
- Added a new sample project: 4KKong game

Version 0.08 - Nov 2002

- Corrected bug in the code generator: floating point code is now working.
- Made some improvements in the build and execute batch files.
- Added already made Visual Studio projects and workspaces.

Version 0.07 - Nov 2002

- Corrected bug in the code generator: function pointers are now working correctly.
- Corrected bug in the code generator: NULL pointers as parameters are now working correctly.
- Corrected bug in memset, it was crashing !
- Added configuration information on how to use VisualC++ and UltraEdit for editing.
- Added some definitions in the glossary.
- Added a page with the 6502 instruction set.

Version 0.06 - Nov 2002

- Corrected bug with -u option of FilePack (was not working anymore)
- Corrected various problems in the documentation (spelling, html errors)
- Added version number on the first documentation page.

Version 0.05 - Nov 2002

- Corrected error in Bin2Txt documentation
- Corrected problem with "tmp" folder that was missing in the Zip archive
- Added FreeImage.dll (needed for PictConv)

Version 0.04 - Nov 2002

- Updated code generator and macros for the C compiler.
- Updated tape header manager, can now remove headers and set autorun flag
- Added FilePack, Bin2Txt, PictConv, WriteDsk, Tap2Cd and Tap2Wav
- Added this documentation :)
- Added two samples (picture display, and file decompression)
- Added "file_unpack" function
- Corrected bug in "clock" function
- XA symbol table is now compatible with Euphoric debuger format

Version 0.03 - Jan 2002

- Lots of modification. The setup/use is a lot simpler than before.
- Can now be used from within Visual Studios.
- Euphoric is integrated into the release

Version 0.02 - August 2001

- Correction of a bug in the header creator

Version 0.01 - March 2001

- First version of the OSDK

Version 0.00

- Internal test release