1. 23 Jul, 2021 4 commits
    • Ben Avison's avatar
      Enable CI/CD · 26b9243b
      Ben Avison authored
      26b9243b
    • Ben Avison's avatar
      Rewrite makefile to use shared makefiles · 8ffb1042
      Ben Avison authored
      Also strip dependencies in `!MkClean` now that we create some, and set up
      `.gitignore` appropriately.
      
      Requires RiscOS/BuildSys!32
      8ffb1042
    • Ben Avison's avatar
      Add `-nosavepath` option · cb761b08
      Ben Avison authored
      This prevents Squish from outputting an initial line containing `REM>` and
      the output filename - in other words, the default pathname for the `SAVE`
      statement. This is useful for a number of reasons:
      
      * It is arguably a waste of space, since a Squished version of a program
        should ideally never be hand-edited.
      
      * The output pathname used in ROM builds bears no relationship to anything
        on the target device (currently, the installed version of the Alarm and
        Chars programs both start with `REM>Resources.!RunImage` which relates to
        the layout of the source component directory tree).
      
      * It is desirable for cross-compilation and native builds to be binary
        identical, so having a host pathname embedded in the output is unhelpful.
        We could have added an option to override the pathname used, to ensure
        consistency, but it's easier simply to omit the relevant line.
      cb761b08
    • Ben Avison's avatar
      Adapt to run on Brandy BASIC as well as BBC BASIC · 8dffd6a8
      Ben Avison authored
      Detail:
      * Detect interpreter by scanning `REPORT$` on entry
      * When running on Brandy:
        + Memory allocation is done using `DIM` instead of assembler
        + Token lookup is achieved using hard-coded `DATA` statements rather than
          calling the interpreter
        + Linked-list assembly code reimplemented in BASIC
        + Arguments are fetched from `ARGV$()` rather than SWI `OS_GetEnv`
        + Numbers are parsed from `swis.h` using `EVAL` rather than SWI
          `OS_ReadUnsigned`
      
      Admin:
        Requires Matrix Brandy 1.22.10 or later
      8dffd6a8
  2. 17 Sep, 2020 3 commits
    • Ben Avison's avatar
      Remove unused `PROC` definitions · 23071f4f
      Ben Avison authored
      Also correct the comments describing the meaning of `adr` and `fadr`
      23071f4f
    • Ben Avison's avatar
      Avoid invalid PTR# call · b962b9e7
      Ben Avison authored
      When the `-literal` switch was not given, one `IF` statement would attempt to
      evaluate `PTR#0` (i.e. the pointer of an invalid file handle). This is
      reported as an error when running under Brandy BASIC.
      b962b9e7
    • Ben Avison's avatar
      Correct syntax of file statements/functions · 6aef156c
      Ben Avison authored
      The source code had erroneous space characters before the `#` character. This
      was removed during the `CRUNCH` that happened during the build process, but
      this meant that the behaviour of the raw source code could not be compared
      because it could not be run.
      6aef156c
  3. 28 Mar, 2019 1 commit
    • Robert Sprowson's avatar
      Annotate Squish · c53cc1d9
      Robert Sprowson authored
      In the process of unrelated archiving an unsquished copy of Squish from 1989 was unearthed, allowing many of the variable names to be made meaningful after the sources were lost. Also created a document detailing operation from a large block comment.
      Tested by comparing the output with Squish 1.15 from several heavyweight uses, eg. Alarm HForm Chars.
      
      Version 1.16. Tagged as 'Squish-1_16'
      c53cc1d9
  4. 02 Apr, 2013 1 commit
    • Robert Sprowson's avatar
      Add ability to get SWI names from C exports · dae3a50e
      Robert Sprowson authored
      Squish will now make a list of SWI names from CLib:h.swis (or some override header file provided by the -SYSFROM switch) before falling back to using OS_SWINumberFromString. This avoids the need to have all the modules in the world loaded when squishing a BASIC program.
      
      Version 1.15. Tagged as 'Squish-1_15'
      dae3a50e
  5. 27 Oct, 2012 1 commit
    • Robert Sprowson's avatar
      Makefile adjustments · 0b40e305
      Robert Sprowson authored
      Use things from StdTools where possible.
      Bumped the version number string up by hand.
      
      Version 1.14. Tagged as 'Squish-1_14'
      0b40e305
  6. 27 Aug, 2012 2 commits
    • Jeffrey Lee's avatar
      Reconstruct Squish sources by un-squishing the v1.12 binary · fb4d42dd
      Jeffrey Lee authored
      Detail:
        This is some reconstructed sources for the Squish tool, formed by running the 1.12 binary through Beebug's/ProAction's !BasFormat, and then fixing up a few extra bits by hand.
        Most of FNs and PROCs have had meaningful names applied to them, making the sources more readable. However only a couple of the variables have been renamed.
        The test script (Test/Squish,feb) was used to verify that this new squish (after being re-squished) produces identical output to the original binary.
        Note that squishing these sources won't produce a binary identical to the original, as the original appears to have been modified post-squishing in order to add PROCknockoutkept.
      Admin:
        Tested against original Squish binary for Disc & BCM2835 builds
        Version number is currently hardcoded in sources; build procedure needs updating to take it from VersionNum
      
      
      Version 1.13. Tagged as 'Squish-1_13'
      fb4d42dd
    • Jeffrey Lee's avatar
      created by srccommit. · 1890b125
      Jeffrey Lee authored
      1890b125