Skoolkit

Latest version: v9.4

Safety actively analyzes 682416 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

8.9

* Added support to `tap2sna.py` for TZX loops (block types 0x24 and 0x25), pauses (block types 0x10, 0x11, 0x14 and 0x20), and unused bits in data blocks (block types 0x11 and 0x14)
* `tap2sna.py` now accelerates the simulation of tape-sampling loops in loading routines, and also simulates the execution of interrupt routines when interrupts are enabled
* Added the `--sim-load-config` option to `tap2sna.py` (to set the value of a `--sim-load` configuration parameter: `accelerator`, `fast-load`, `first-edge`, `pause`, `timeout`, `trace`)
* Added the `--tape-name` option to `tap2sna.py` (to specify the name of a TAP/TZX file in a zip archive, in case there is more than one)
* Added the `--tape-start` and `--tape-stop` options to `tap2sna.py` (to start or stop the tape at a specific block number)
* Added the `--tape-sum` option to `tap2sna.py` (to specify the MD5 checksum of the TAP/TZX file)
* Added support to `tap2sna.py` for quoted arguments in an arguments file
* Added the `--interrupts` option to `trace.py` (to enable the execution of interrupt routines)
* `trace.py` now reads and writes the T-states counter in Z80 snapshots and reads the T-states counter in SZX snapshots
* Added support to `bin2sna.py`, `snapmod.py` and `tap2sna.py` for setting the `tstates` hardware attribute (i.e. the T-states counter in Z80 snapshots)
* `tapinfo.py` now shows full info for TZX block types 0x10 (standard speed data) and 0x11 (turbo speed data)
* Fixed how the Z80 instruction set simulator updates the A and R registers in the ‘LD A,R’ and ‘LD R,A’ instructions
* Fixed how the Z80 instruction set simulator handles a CALL instruction that overwrites its own address operand
* Fixed how a Z80 snapshot memory block that ends with a single 0xED byte is decompressed
* Fixed how the `--sim-load` option of `tap2sna.py` transitions from a tape block that ends with data to the next block when there is no pause between them
* Fixed the bug that prevents the `--find` option of `snapinfo.py` from finding byte sequences below address 16384
* Fixed the bug that prevents the `--find-text` option of `snapinfo.py` from finding text strings below address 16384

8.8

* Added the `trace.py` command (for tracing the execution of machine code in a 48K memory snapshot)
* The `--sim-load` option of `tap2sna.py` now performs any `call`, `move`, `poke` and `sysvars` operations specified by the `--ram` option
* Improved the performance of the `--sim-load` option of `tap2sna.py`
* Improved the performance of the `SIM` macro
* Improved the performance of the `AUDIO` and `TSTATES` macros when they execute instructions in a simulator
* Removed the `MaxAmplitude` parameter from the `[AudioWriter]` section

8.7

* Dropped support for Python 3.6
* Added the `SIM` macro (for simulating the execution of machine code in the internal memory snapshot constructed from the contents of the skool file)
* Added the `AUDIO` macro (for creating HTML5 `<audio>` elements, and optionally creating audio files in WAV format)
* Added the `TSTATES` macro (which expands to the time taken, in T-states, to execute one or more instructions)
* Added the `--sim-load` option to `tap2sna.py` (to simulate a 48K ZX Spectrum running LOAD "")
* Added the `rom` directive (for inserting a copy of the 48K ZX Spectrum ROM into the internal memory snapshot constructed from the contents of the skool file)
* Added the `AudioPath` parameter to the `[Paths]` section (for specifying where the `AUDIO` macro should look for or create audio files by default)
* Added the `audio` template (for formatting the `<audio>` element produced by the `AUDIO` macro)
* Added the `[AudioWriter]` section (for configuring audio files created by the `AUDIO` macro)
* Added the `--rebuild-audio` option to and the `RebuildAudio` configuration parameter for `skool2html.py` (to overwrite existing audio files)
* Added the `AudioFormats` parameter to the `[Game]` section (for specifying the alternative audio file formats that the `AUDIO` macro should look for before creating a WAV file)
* Added the `--defb` option to `sna2skool.py` (to disassemble as DEFB statements instead of as code)
* Added the `Timings` configuration parameter for `sna2skool.py` (for showing instruction timings in the comment fields)
* Added the `flags` parameter to the `FOR` macro (for affixing commas to and replacing variable names in each separator)
* Added support to the 'M' directive for applying its comment to each instruction in its range
* When `tap2sna.py` ignores a headerless block because no `--ram load` options have been specified, it now prints a warning
* Amended the `register` ASM template so that it can handle empty register names
* Fixed the bug where the `stop` value of the `FOR` macro is used even when it does not differ from `start` by a multiple of `step`
* Fixed the bug where an 'M' directive with an explicit length overrides the sublengths of an earlier sub-block directive at the same address

8.6

* Added the `STR` macro (for retrieving the text string at a given address in the memory snapshot)
* Added the `WHILE` macro (for repeatedly expanding macros until a conditional expression becomes false)
* Added the `UDGS` macro (as an alternative to the `UDGARRAY` macro for creating an image of a rectangular array of UDGs)
* Added support to the `DEF` macro for using replacement fields to represent the defined macro’s argument values, and for stripping leading and trailing whitespace from the defined macro’s output
* Added support to the `LET` macro for defining dictionary variables
* Added support to the `--ram` option of `tap2sna.py` for the `call` operation (for calling a Python function to perform arbitrary manipulation of the memory snapshot)
* Added the flags parameter to the `CHR` macro (to produce a character in the UTF-8 encoding in HTML mode, and to map character codes 94, 96 and 127 to ‘↑’, ‘£’ and ‘©’)
* Added the `Expand` parameter to the `[Config]` section (for specifying skool macros to be expanded during HTML writer initialisation)
* Added support to the `INCLUDE` macro for combining the contents of multiple ref file sections
* Added the `tindex` and `alpha` parameters to the `COPY` macro (for specifying the transparent colour and its alpha value in the new frame)
* Fixed the bug where macros inside a `LIST` or `TABLE` macro are expanded twice in HTML mode (which makes `RAW` ineffective)

8.5

* Dropped support for Python 3.5
* Added the `OVER` macro (for superimposing one frame on another)
* Added the `COPY` macro (for copying all or part of an existing frame into a new frame)
* Added the `DEF` macro (as a more powerful alternative to the `DEFINE` macro, which is now deprecated)
* Added the `Wrap` configuration parameter for `sna2skool.py` (for controlling whether to disassemble an instruction that wraps around the 64K boundary)
* Added the `RefFormat` configuration parameter for `sna2skool.py` (for specifying the format of referrers in a comment that lists them for a routine or entry point)
* Added the `EntryLabel` and `EntryPointLabel` configuration parameters for `skool2asm.py` and `skool2html.py` (for specifying the format of the default labels for routines and data blocks and their entry points)
* Added the `Address` configuration parameter for `skool2asm.py` (for specifying the format of the default link text for the `R` macro)
* The `SnapshotReferenceOperations` parameter in the `[skoolkit]` section of `skoolkit.ini` is now interpreted as a list of regular expression patterns (which enables any type of instruction to be designated by the snapshot reference calculator as one whose address operand identifies an entry point in a routine or data block)
* Added support for identifying entries by address ranges in the `[EntryGroups]` section and the `Includes` parameter in `[MemoryMap:*]` sections
* Added the `case` parameter to the `FORMAT` macro (for converting formatted text to lower case or upper case)
* Added the `DefaultDisassemblyStartAddress` parameter to the `[skoolkit]` section of `skoolkit.ini` (for specifying the address at which to start disassembling a snapshot when no control file is provided)
* Added the `InitModule` parameter to the `[Config]` section (for specifying a Python module to import before the HTML writer class is imported)
* Fixed the bug where a frame whose pixels are modified by the `PLOT` macro may have incorrect colours when converted to an image
* Fixed the bug where an `M` directive in a control file is ignored when it is followed by a sub-block that has sublengths

8.4

* Made the image writer component pluggable
* Added support for defining groups of entries (via the `[EntryGroups]` section of the ref file) whose disassembly pages can be given custom titles and headers
* Added the `Address` parameter to the `[Game]` section (for specifying the format of address fields on disassembly pages and memory map pages, and of the default link text for the `R` macro)
* Added the `Length` parameter to the `[Game]` section (for specifying the format of the new length attribute of entry objects in HTML templates, which is now used instead of size in the Length column on memory map pages)
* Added the `Peek` and `Word` configuration parameters for `snapinfo.py` (for specifying the format of each line of the output produced by the `--peek` and `--word` options)
* Added support for specifying an `expand` directive value over multiple lines by prefixing the second and subsequent lines with `+`
* Added support to the `--ram` option of `tap2sna.py` for the `sysvars` operation (for initialising the system variables in a snapshot)
* Changed the default value of the `DefmSize` configuration parameter for `sna2skool.py` from 66 to 65; this makes it compliant with the default maximum line width of 79 defined by the `LineWidth` configuration parameter
* Fixed the bug that prevents instruction comments from being repeated in a control file loop
* Fixed the bug that makes `sna2skool.py` ignore a given start address below 16384 when converting a snapshot

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.