Excerpt of SMSQ version history

Please note that QPC-only changes are often just documented in QPC’s version history.

Since v2.99 you can see something like (MK) after every entry. Those are the initials of the developer(s) responsible for the change. They translate as follows (in order of appereance):

MK Marcel Kilgus WL Wolfgang Lenerz
FD Fabrizio Diversi JG Jérôme Grimbert
PW Per Witte GG George Gwilt
3.38  WMAN can now draw indexes (AH).
      SOUND command renamed to SOUND_AY b/c of clash with SOUND device (MK).
      A single QSOUND channel can now address several chips at once (MK).
      QPC added QPC_FLASHBUTTON and QPC_HASFOCUS (MK).
      Fixed QUBIDE/QLW1 driver (MK).
      Q68 fixed FAT1_ config item (wl).

3.37  Ramdisk makes QDOS driver again (MK).
      Fixed io.minf for dv3 to fill name with spaces as before (broken in v3.36) (MK).
      QL-SD: Minerva fixes, QLNET support, new BASIC utilities (MK+wl).
      Ptr_gen fixed QL Mode support, added native QemuLator support (MK).
      Make QDOS NUL driver again (MK).
      Fixed dead ' key on spanish keyboard for Gold card (MK).
      Gut make channel list distinguishes between CON and SCR channels (MK).
      Adaption for QPC2 v5 (MK).
      Initial support for QPC QSOUND for AY sound (MK).
      No longer add default devices if filename starts with valid device name (MK).
      Q68 16-bit card transfer, bugfixes (wl).
      Q40 fix for Atari partition check (wl).
      SBasic fixed "buffer full" error in command line history (wl).
      SMSQmulator support for udp/udd device (wl).

3.36  QL-SD allows direct formatted cards (MK).
      Ibm keyboard : key to generate chr$(188) added (MK+wl).
      Better handling of iof_xinf (for dmedium_name$) (MK+wl).
      SMSQmulator better keyboard read (wl).
      Fixed FDEL (wl).
      Q68 fixed spp_par thing (wl).
      Q68 better card handling, CARD_INIT no longer needed (wl, inspired by MK).
      Q68 may use interrupt for kbd read (needs new FPGA programming) (wl).
      Q40 correct handling of direct QLWA formatted CF cards (wl).
      Q40 can use container files on partitions 0-3 (wl).
      Q40 WIN_CHECK, CARD_DIR, CARD_CRUSH commands added (wl).
      Spanish keyboard tables and messages added (MK).

3.35  QL-SD modified driver (MK).
      Fixed crash in network driver (MK).
      Added SUSJB and FDEL keywords (PJW).
      Sbasic : string variable cannot be REPeat control variable (wl).
      Q68 always return even address for mem request for fast memory (wl).
      SMSQmulator better 8 bit sprite cache handling (wl).

3.34  Added SSJOB command, extended JOB_NAME to compiled programs (PJW).
      TK II provide for ROM and standalone version (mk).
      QL-SD updated drivers (mk).
      Q68 WIN_FORMAT command fixed (wl).
      Q68 better handling of SD Cards (wl).
      Q68 and Qx0 fix time stretch (wl).

3.33  Fixed Sbasic "end of program/command line" problems (MK).
      Fixed Sbasic "retry-in-floating point" mechanism on overflow (MK).
      QL network improvements (MK).
      Disable ABC keyboard by default (MK).
      Floppy sets step for 4 drives, not 5 (MK).
      Improved EE + WMAN for QDOS (MK).
      Smaller UC case conversion code (MK).
      Incorporate stand-alone TK II sources (MK).
      QL-SD Drivers for QLWA & QLW1 container files (MK + wl).
      Qx0 compressed ROM (wl).
      Qx0 better handling of FAT16 formatted CF cards in ISA adapter (wl).
      Q68 better reading of slower cards, reads writes some SD cards (wl).
      Q68 better ssss handling (wl).
      SMSQmulator new way to get SSSS sample size (wl).

3.32  Fixed arithmetic stack overflow on long strings (MK).
      All goldcard versions link in external roms (wl).
      SQRT offset in QPC & SMSQmulator patchtables fixed (wl).
      Release removable drive after delete (MK).
      Better network name check (MK + wl).
      FAT16 driver for lager disks ( up to 256 MB) (wl).
      QUBide file system driver added (wl).
      SMSQmulator better sound & mousewheel handling (wl).
      Version for Q68 added (wl).
      Q40 DISP_MODE command added (wl).
      Q40 LBA access to QXL.WIN files on FAT32 media (wl).

3.31  RPIXL works in 8 and 16 bit colour modes (dw).
      LRESPR within procedure bug fixed (mk).
      Home thing uses correct job ID when opening the dir for a file (wl).
      SMSQmulator uses "java control" Thing for misc operations (wl).
      The string slicing bug fix in v. 3.28 is cancelled, reverting back to old behaviour (wl).

3.30  QPC: Fixed 3rd slice of mod table, start at $10000 and not $fffc (MK).
      SMSQmulator : link in floppy module (was broken in 3.29 - wl).

3.29  DMEDIUM_DRIVE$ fixed (MK).
      INPUT buffer is limited to max string length (32K -2) (wl).

3.28  Index of string_length +1 in string slicing before the TO no longer accepted (MK).
      FSEND_EVENT function added (wl).
      SMSQmulator : JVA_VER$ etc added, better stipple handling, copy QL screen (wl). 

3.27  Max string array size is 32766, not 32767 (wl).

3.26  Implemented RENAME support for the DOS device (MK).
      Added alpha blending support for general graphics functions (MK/WL).
      New trap iow.salp to set the alpha blending weight (MK).
      New SBasic keyword ALPHA_BLEND to set the alpha blending weight (MK).

3.25  Fixed crash for slightly overlapping windows (MK).

3.24  CKEYON/OFF no longer block jobs other than job 0 (wl).
      When jobs are created, the size of the job, and the data space, are made even (wl).
      Recent thing implemented (wl).
      JVA_SCRUPDT & JVA_MBAR_STATUS for SMSQmulator (wl).
      cosmetic changes for smsqeweb (pjw)

3.23  DMEDIUM_DENSITY returns -1 if ramdisk, ...NAME$ returns correct name (wl).
      SMSQmulator keyrow >8 doesn't read keyrow 0 (wl).

3.22  Added FEX_M keyword (PJW).
      Better edge detection when moving window (wl).
      Atari mono mode works again (wl)
      SMSQmulator ieee float ops adde   (wl)
      removed debug code during initialisation (wl)

3.21  Added file open check when making directories (wl).
      SMSQ/E DV3 floppy driver for SMSQmulator (wl).

3.20  Added read-only check in dv3_sbyt (MK).

3.19  Integrated QPC specific code (MK).
      Fixed pending new-line bug in csize for appsub windows (MK).

3.18  Menu appsub wdws may have csizes for text objects (wl).

3.17  Window move with transparency fixed for pulled-down wdws (WL).

3.16  COLOUR_NATIVE for aurora modes fixed (MK).
      Window move with transparency implemented (for display modes 16, 32 and 33) (wl).

3.15  Double border type fixed (MK).
      Fixed 3d border with zero width (MK).
      In some pointer ops, save A3 during sms.rchp for QDOS systems (MK).
      Fixed mode 8 for recolour (MK).
      Fixed keyrow line 1, bit 5 ("\" on English kbds) in ibm tables (MK).
      Fixed denormalised value on divide (MK).
      Fixed "for i=0 to a(0,0)" loop bug  (MK).
      Fixed uq_ssq in serio (GG).
      Correctly handle sprites with 0 mask pointer for qxl,java (MK,wl).

3.14  Cosmetic changes, removal of "Blat" macro defns in several files (WL).
      Correct stack compression in init_exv_asm (GG).
      Added java "machine" in machine definitions (WL).
      Added check for SMSQmulator when moving windows (WL).
      Added SMSQmulator specific code (WL).
                        
3.13  One-line SELect no longer crashes on multiple expressions (MK).
      Function()(x) no longer gives wrong char if x = last char index (MK).
      If necessary, INPUT returns buffer overlow for compiled programs (MK).
      Fixed swapped CTRL+SHIFT+Y and CTRL+SHIFT+Z on German keyboard (MK).
      Fixed return value for sliced strings (MK).
      Enable QPC numlock. Provide entry to set numlock for QPC (MK).
      Shadow drawing bug (introduced in 3.10) fixed for Aurora (MK).
      New system variable sys_xdly (delay after executing a job in 1/50s) (MK).
      All inbuilt job executions respect sys_xdly (MK).
      QPC initialises sys_xdly with 5 (MK).
      New CTRL+C behaviour introduced, uses least-recently-used job order (MK).
      New CTRL+C behaviour made configurable in QPC (MK).
      Background I/O made configurable in QPC (MK).
      Correct length set in home dir if simple device (wl).
      New keywords YEAR%, MONTH%, DAY% and WEEKDAY% (MK).
      QA.OP/QA.MOP load/store fixed for op-codes below $80 (MK).
      Working QXL keyboard LEDs (BC).

3.12  HOME thing bugfixed and integrated: it is a new module (MK + wl).
      Boot filename is set as current SBasic filename and Home filename (MK).
      Sbasic sets home dir upon (q)load (wl).
      File name from QD is set as home file name when using SBAS/QD (MK).
      Improved Qx0 cache handling (TG).
      Improved History device: Keeps track of number of message, disallows empty 
         string (MK).
      History device returns number of messages as file length & file pointer is 
         limited to nbr of message (MK).
      Basic has a new command line history (up/down arrows) (MK).
      When display size decreased, Basic windows will be reset to within screen (MK).
      Restore screen when unmanaged window is altered/closed (MK).
      Screen background drawing even if window is partly buried (default OFF) (MK).
      New commands PE_BGON and PE_BGOFF to enable/disable background drawing (MK).
      New commands PEEK_F, PEEKS_F, POKE_F, POKES_F (MK).
      Tries to release a Drive Definition Block if drive table is full (MK).
      JOBID added (PW).

3.11  Bugfixes in platforms other than QPC (thanks to MK).
      Call to HOME thing via EXxx commands added (wl).
	  
3.10  Bugfixes: lower right corner of high colour shadows fixed (MK).
      Wrong errror return of wm.jbpal fixed (MK).
      Double 3D border type fixed (MK).
      Wrong error sprite return fixed (wl).
      Sprite clipping at upper and lower screen border implemented (MK).
      Implemented sprites with no (= solid) mask (MK).
      New copy sprite WMAN vector added (MK).

3.09  HOT_GETSTUFF$ added (MK).
      Qx0 code is ROMmable again (wl).
      The Qx0 cachecontrol module is removed again as this will also stop
         the code from working in ROM (wl).
      No directory drive nbr > 8 allowed (wl).
      QXL version bugfixes and restart possibility (BC).
      QPC new basic commands (QPC_WINDOWSIZE, PAR_GETFILTER, PAR_SETFILTER) (MK)
      Outline move spurious outline problem fixed (wl)

3.08  QPC new basic commands (PAR_DEFAULTPRINTER$, SER_GETPORT$, SER_SETPORT) (MK)
	  
3.07  New keyword EX_M use like EX, but the job created is owned by the calling 
         job
      Q40 flp density is REALLY preset to High (1.44 MB disks). If you want to
         format other density disks, set the density to D or E. (WL)
      QXL version allows you to determine which PC drive is win1_ etc.
      QPC SMSQ/E sampled sound system (SSSS) support (MK)
      QPC small fix in FORMAT of removeable WIN drives (MK)
	  
3.06  The "Quit" keyword takes an optional parameter (long int) that is
         passed to the calling job (eg return_code=FEW(your_program)) (PW)
      Q40 flp density is preset to High (1.44 MB disks). If you want to
         format other density disks, set the density to D or E. (WL)
      Sprites (of 6x10 size) may be used as cursor (WL)

3.05  Corrected QL mode 8 sprite cache handling (JG)
      Rptr distinguishes better between loose items & appsub menu items (WL)
      SPP open clears CD inactive count (MK)
      Fixed 3d border bug (MK)

3.04  Fixed pointer save on new move operation (WL)
			
3.03  WM_BLOCK prodecure fixed (GG + MK)
      Some bugfixes for SER PAR PRT ports (MK)
      PRT_USE$ used wrong offset - fixed (WL)
      Cursor move if one-line wdw fixed (delete still a problem) and added
         configurable key to enter line into stuffer buffer (WL)
      PARNAM$ and PARSTR$ fixed (WL)
      EXTRAS lists all keywords, not only those it thinks are not in ROM (MK)
      New Cachemode module for the Qx0 (FD, based on code donated by Mark Swift)
      Extended colour border call with 0 border bug fixed (MK)
      (Super) Goldcard initilisation problem fixed (MK)
      Left & right shift keys are handled separately (MK)
      Mode screen aspect ratio is variable (MK)

3.02  Extended revamp for mode 16 (Gold Card/ Aurora). (MK)
      Bugfix for rchp : Doesn't break free space list if block was already
         free (MK).

3.01  More system sprites (MK)
      New window move routines & Config block (WL + MK)
      Fixed bug for stippled borders in WMAN (WL)
      More con vectors (WL)
      Bugfix for object drawing & wman rptr routines (WL + MK)
      Fixed wallpaper on display change, broken in 2d99 (MK)

3.00  Fixed bug in screen driver that could crash the machine in low memory
         situations (MK)
      Added many sprite modes (mode 64, mode 32/33 etc.) (MK & JG)
      Added support for large sprites (MK)
      New high colour WMAN with lots of new features (MK & WL)
      New sprite formats with alpha blending & RLE compression (MK)
      Better handling of hard disks for Q40 (JG)
      Better handling of system sprites, many more system sprites introduced (MK)
      WMAN colour palettes introduced & config block for them (MK)
      New keywords Fex etc... (PW + MK)
      Default keyboard may be different from default message languages (WL)
      Sprites may be drawn differently depending on item status (WL + MK)
      New con/ptr vectors concept introduced (MK)
      Better handling of background colours (MK)
      Basic procs OK even if a LARGE number of parameters are passed to them (MK)
      Bugfixes for some EE traps, keep A1 as per documentation (WL)
      Qx0 caches on at startup (FD)
      8 bit Aurora GD2 screen driver, also introduced in QPC (MK)
      Screen aspect ratio for graphics functions now a CON variable (MK)
      Hotkey system configurable again like standalone version (MK)

2.99  RND no longer returns invalid floating point for RND=0
      A3 addressing problems in pointer open routine fixed.
      
   d  Fixed free/total sector info of STAT and DIR for large drives (MK)
      Re-implemented sms.frtp the way it was supposed to be (MK)
      Changed FREE_MEM SBASIC function to use sms.frtp (MK)
      Background colour now drawn on-the-fly instead of consuming memory (MK)
      Updated WMAN to V1.54. This implements the first phase of the
         high colour enhancements (MK)
      Changed RAM disc for fast memory use (MK)
      
   e  QPC implemented "fast" memory (MK)

   f  EXTRAS command changed to show all SBASIC commands no matter where
          their code is located (MK)

   x,y,z better handling of shadows in high colour mode (MK)
      "Fast memory" also on Qx0  (MK)
      Italian language support (FD)
      No more MOVEP for Qx0 (FD)

2.98  Q40 channel name for ser H/I corrected.
      Push unnormalised FP corrected.
      Revised init - soft RESET / hard keyboard RESET for all versions.

2.97  IBM keyboard / keypad / keyrow / tables updated.
      Atari diskette format density selection corrected (bug since 2.93).
      Gold Card Test version

2.96  First Atari ST/TT GD2 version
      Length of negative integer to string conversion fixed again
      Consolidated Q40 V2.95 test versions a to e.
      Atari select drive 1/2 for stopping drive corrected (error since 2.93).
      Single sided formatting restored.
      Atari disk change density detection timout increased.
      Keypad ENTER creates DO event on all extended keyboards.

2.95  Length of negative integer to string conversion fixed!!!
      GD2 - Spurious D0 return from pan/scroll by zero fixed.
      GD2 - Pan with stippled paper fixed for extended colours.
      Another job / pointer event fix fix.
      SSSS free queue length corrected.

   a  Q40 translation for instructions > 16 MB corrected / removed

   b  Q40 DISP_SIZE checks > 512x256 not >= 512x256 for large screen
      Q40 More rigourous initialisation (does not assume reset)

   c  Q40 DISP_SIZE size check not lost on QL => 16 bit change
      Q40 sms.dmod sets d2 = 0
      Q40 ROM reset vector restored
      Q40 transparent translation set for ROM
      >4Gb drive truncation corrected
      When reformatting a partition that has changed size and the new
          format has fewer allocation sectors and the new number of
          allocation sectors is odd, the free space linked list is now
          correctly terminated.

   e  Q40/60 FPU/MMU detection corrected.
      Q40 COM interrupts not masked on Q40 motherboard!
      Q40 LPT interrupts masked in MultiIOchip and interrupt scanner
      Q40 Machine/Processor transferred to system variables.
      Q40 serial mouse re-enabled after mouse buffer full.
      Q40/QXL Insert key coded as Shift Space (was CTRL F6).
      GD2 modified to set $18063!

2.94  First extended colour version
      Hit not thrown away by certain button event routines (QPAC2).
        - bug introduced in V2.93 when trying to fix Job events.
      FP FOR loop rounding corrected for end point >= 256 x step.
      IDE drives format fixes for spurious bad sectors.
      IDE drive limited to < 4 Gbyte (> 4G requires new format).
      Writethrough cache disable code reordered.
      Q40 MMU set up for QLiberator.
      IDE and PC floppy disk timeouts measured during init.
      Select on expression compiler bug fixed.

2.93  Q40 border width truncated to byte
      Q40 stipples 1 and 3 reversed
      V2.92 Q40 changes for floppy disk driver carried into other versions.
      DV3 length check on direct sector read / write
      Events not thrown away by calls to WM.RPTR within WM.RTPR (eg WM.CHWIN)
      PIPE open channel ID xxxx0004 not confused with directory (I hope).

2.92  First Q40 version
      Revised pointer scheduler routine.

2.91  Assign to slice of string array repaired (damaged in 2.89).
      Selective suppression of active keystrokes.
      Euro symbol added to fount.

2.90  In-line selects can have an explicit end select.
      In-line defines can have an explicit end define (V2.89).
      Thing use does not smash D3 before TH_USE call (V2.89).
      Dragging the dursor with wake speed 0 does not lock up.
      Atari wait for HDD ready abandoned (test cmd crashes some disks)

2.89  Ptr V1.72 Job events handled even if pointer is invisible
      Offscreen event (actually edge of screen) only gives out of window
         if the job is interested in offscreen events.
      Thing use can be called from supervisor mode.
      Scheduler routines called with exception vector as for job 0.
      High priority intensive calculation tasks no longer hog the machine.
      Atari USA keyboard table.
      Language dependent selection works even when there are no preferences
         defined for the languages.
      PIPE name and channel tied up on close.
      Dragging the dursor with wake speed 0 does not lock up.
      File error on SAVE without filename correctly handled.
      In-line defines accepted.
      ED improvemnts for line numbers >32757.

2.88  D7 passed through to WM.RPTR action routines.
      Out of window flags cleared when sprite is changed.
      PAN in mode 8 truncated to even values.
      French keyboard driver (with "normal" number keys) for SuperHermes (UK).
      Aurora monitor detect corrected.

2.87  Atari load can load into QVME memory.
      Extended SCSI commands used for disks >1 Gbyte.
      Dummy fileinfo accepts any non-zero key for execution and .bas .sav.
      QDOS executables stored on MSDOS format disks with (invisible) .EXn
      MSDOS files with the last char of the name '_' accessible.
      Overwrite MSDOS file with zero length file fixed.
      Opening SBASIC default channel 0 does not destroy messages.
      Gold card format with no disk returns error more quickly.

2.86  INT vector corrected for small negative numbers.

2.85  UT.WTEXT modified (should be more compatible with QDOS version under
      error conditions.
      More changes to GOLD card init - should now recognise Aurora.