# Version history

Version 1.19 - August 11th 2021

- All the binaries are now compiled with Visual Studio 2019 instead of 2010. This should make it easier to update in the future, but this may also have uncovered some bugs and behavior change, so beware and signal any regression
- Added a new environment variable, OSDKCPPFLAGS, which can be used to pass additional data to the C preprocessor (like additional defines)
- Upgraded Oricutron to the version 1.2.4

Version 1.18 - January 3rd 2021

- Upgraded Link65 to the version 0.67: It now indicates that error messages come from Link65, should make diagnostic errors easier
- Upgraded Header with an option to specify BASIC (-b0) or BINARY (-b1)
- Upgraded the C Compiler to version 1.39 with a fix for inline assembler directives not being generated at the proper location in the code
- Added native OSDK joystick support (library code and sample program) for PASE, IJK, OPEL and Telestrat interafaces (working and tested) as well as Dk'Tronic support (needs more work)
- Changed the Oricutron default settings to declare the presence of a IJK joystick interface and two SDL joysticks.

Version 1.17 - December 9th 2020

- Added INCW_Z and DECW_Z to the C Compiler macros file
- A new environment variable, OSDKLIB, can be added to point to a custom library folder (used to compile pinforic which comes with its own lib16 library)
- Linux makefiles for the samples are now present in the folders (but don't ask me if they work, ask Jylam or mmu_man)

Version 1.16 - Februar 20th 2020

- Upgraded Ym2Mym to the version 1.8 (New retuning options supporting Spectrum and MSX machines)

Version 1.15 - September 7th 2019

- Upgraded the C Compiler to version 1.38 by integrating all the latest changes from Fabrice Frances: Fixes some issues found by Goyo and Retroric regarding encoding of data tables by the compiler.
- Changed back the default compile optimization level from -O3 to -O2 - there are still some cases of bad code generation
- Fixed a problem with include/sys/sound.h containing invalid symbols that don't compile correctly

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