
Informal notes about the changes from BASIC 1.23 to 1.24...

* ALIGN will now force any unused bytes to zero when assembling at
  both P% and O%. This is better than leaving possibly uninitialised
  memory behind (makes diffs very difficult).

* The assembler now correctly recognises the new 'LR' special variable
  when the L is lower-case.

* The assembler also has the 'SP' (13) special variable defined.

* TRACE PROC (and the identical TRACE FN) now flushes the VCACHE when
  it is encountered. This is important, because procedure and function
  calls are normally cached to avoid looking-up the name and searching
  for the location of the DEF.

  When tracing is active, we don't add any procedure or function calls
  to the cache, because we can't output the name to the trace output
  (without parsing it - hence slowing-down cache behaviour).

  So, we now flush the VCACHE at the start of PROC/FN tracing so that
  all calls are reported (before, the cached ones would not appear in
  the trace output).

* TRACE ENDPROC has been implemented to allow the output of 'ENDPROC'
  and 'ENDFN' in the trace output whenever a procedure or function is
  exited. This complements the TRACE PROC/FN functionality.

* QUIT <expression> has been added to allow a return code to be passed
  back to the called when BASIC exits. This is the /only/ sensible way
  for a BASIC program to set Sys$ReturnCode on exit (others get trashed
  when BASIC removes it's environment handlers).

-- SAR, 16th Mar 2001


Changes in version 1.26:

* New syntax for MODE: MODE <width>,<height>,<bpp>[,<framerate>]

  Uses OS_ScreenMode 0, rather than *WimpMode. bpp may be 1,2,4,6,8,16
  or 32. 8 selects a full palette 256-colour mode, 6 an old-style one.

* COLOUR and GCOL both allow colour numbers rather than old-style
  colours. Also, background colours can be set with R,G,B forms.

  COLOUR [OF f] [ON b]
  COLOUR [[OF] r,g,b] [ON r,g,b]
  GCOL [OF [<action>],f] [ON [<action>],b]
  GCOL [[OF] [<action>,]r,g,b] [ON [<action>,]r,g,b]

  For COLOUR R,G,B, the OF is unnecessary, but provided for uniformity.
  For GCOL R,G,B, OF tightens up the usage of <action> - without it
  <action>is passed in to both R3 and R4 of ColourTrans_SetGCOL for
  backwards compatibility (some may have used GCOL 128,r,g,b to
  set the background colour - although this ends up setting reserved
  flags in the ColourTrans_SetGCOL call).

* Used as a function VDU n returns the value of the specified VDU
  variable.

* BASIC will now surrender application space if possible at certain
  moments: during SYS calls (as long as no string parameters are
  passed in), MODE changes, OSCLI and * commands. Also, it will not
  refuse requests to grow application space (although it will not
  expand into the extra space).

  Application space is only surrendered if no library is INSTALLed,
  HIMEM is set to the top of BASIC's memory, and BASIC's memory extends
  to the top of the application slot.

  This permits easy MODE changes etc outside the desktop. Note the
  effect that now outside the desktop, with screen memory at <300K and
  no free pool, MODE 28 will work, while VDU 22,28 will not. This
  restores some long lost BBC MOS behaviour.

-- KB


Changes in version 1.30:

* Removed the D from various FIX instructions as it is not valid.

* Converted all 408 LDM/STM stack pushes and pulls of a single
  register into LDR/STR instructions. This should give a slight
  performance boost on modern ARMs (i.e. SA110 or later).

* Added the DIM <var> LOCAL <expr> syntax which allows blocks to be
  claimed local to a PROC/FN that are automatically released on exit
  or error.

-- SAR, 17th Apr 2002