Skoolkit

Latest version: v9.1

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

Scan your dependencies

Page 1 of 2

9.1

* Added support to `snapmod.py` for modifying SZX snapshots and 128K snapshots
* Added support to `bin2sna.py` for writing 128K snapshots (by using the `--page` and `--bank` options, or by providing a 128K input file)
* Added support to `bin2tap.py` for writing 128K TAP files (by using the `--7ffd`, `--banks` and `--loader` options)
* Added support to `bin2sna.py`, `snapmod.py`, `tap2sna.py` and `trace.py` for modifying 128K RAM banks (via the `--move`, `--poke`, `--ram move` and `--ram poke` options)
* Added the `BANK` macro (for switching the RAM bank that is mapped to 49152-65535)
* Added the `bank` directive (for specifying the RAM bank that is mapped to 49152-65535, and for populating a RAM bank from the contents of another skool file)
* Added the `--banks` option to `skool2bin.py` (for processing `bank` directives and writing RAM banks 0-7 to a 128K file)
* Added the `cmio` simulated LOAD configuration parameter to `tap2sna.py` (to specify whether to simulate memory and I/O contention)
* Added the `--cmio` option to `trace.py` (to enable simulation of memory and I/O contention)
* Added the `cmio` parameter to the `AUDIO`, `SIM` and `TSTATES` macros (to specify whether to simulate memory and I/O contention)
* Added the `execint` parameter to the `AUDIO`, `SIM` and `TSTATES` macros (to specify whether to simulate the execution of interrupt routines)
* Added the `tstates` parameter to the `SIM` macro (to set the value of the simulator's clock)
* Added the `iff` parameter to the `SIM` macro (to set whether interrupts are enabled)
* Added the `im` parameter to the `SIM` macro (to set the interrupt mode)
* Made the `stop` parameter of the `SIM` macro optional
* Added support to the `AUDIO`, `SIM` and `TSTATES` macros for executing code in a 128K memory snapshot
* Fixed how `trace.py` handles the value of the SP register in a 128K SNA file
* Fixed how `tap2sna.py` and `trace.py` log timestamps when an interrupt occurs
* Fixed how interrupts are accepted when `tap2sna.py` and `trace.py` execute code in a simulator
* Fixed how the Z80 instruction set simulator updates bit 2 of the flags register when executing an 'LD A,I' or 'LD A,R' instruction just before an interrupt is accepted
* Fixed the bug that makes the `--basic` option of `snapinfo.py` fail when the value of PROG is 65535
* Fixed the bug that prevents an `M` directive from being repeated in a control file loop

9.0

* Dropped support for Python 3.7
* `tap2sna.py` now performs a simulated LOAD by default, and will also overwrite an existing snapshot by default
* Added the `machine` simulated LOAD configuration parameter to `tap2sna.py` (to specify whether to simulate a 48K or a 128K Spectrum)
* Added the `load` simulated LOAD configuration parameter to `tap2sna.py` (to specify an alternative command line to use to load the tape)
* Added the `polarity` simulated LOAD configuration parameter to `tap2sna.py` (to specify the EAR bit reading produced by the first pulse on the tape)
* Added the `in-flags` simulated LOAD configuration parameter to `tap2sna.py` (to specify how to handle 'IN' instructions)
* The output snapshot argument of `tap2sna.py` is now optional
* Added the `DefaultSnapshotFormat` configuration parameter for `tap2sna.py` (to specify the default output snapshot format)
* Added support to `tap2sna.py` for register pairs (`r[bc]`, `r[de]` etc.) in the `TraceLine` configuration parameter
* Added the `antirom`, `ernieware` and `housenka` tape-sampling loop accelerators
* Statistics for 'DEC A' tape-sampling delay loops are now shown by `tap2sna.py` when `accelerator=list`
* Added support to `trace.py` for executing machine code in 128K snapshots
* Added support to `trace.py` for reading configuration from *skoolkit.ini*
* Added the `--ini` and `--show-config` options to `trace.py` (for setting the value of a configuration parameter and for showing all configuration parameter values)
* Added the `--no-interrupts` option to `trace.py` (to prevent the execution of interrupt routines, which are now executed by default)
* Added support to `bin2sna.py`, `tap2sna.py` and `trace.py` for writing SZX snapshots
* Added support to `bin2sna.py` and `tap2sna.py` for setting the `fe` hardware state attribute (i.e. the last value written to port 0xFE in SZX snapshots)
* Added support to the `AUDIO` macro for passing delays through a moving average filter (which can produce higher quality audio, especially for multi-channel tunes)
* Added support to control directive loops for avoiding repetition of an `N` directive at the start of a loop
* `tapinfo.py` now shows the LINE number (if present) for 'Program:' header blocks, and renders BASIC tokens in header block names
* `snapinfo.py` now shows the current AY register in 128K SZX and Z80 snapshots
* Changed the default value of `H` and `A` for the `assemble` directive to 2
* Fixed the bug that prevents `tap2sna.py` from loading a tape that has a hash character (``) in its filename

8.10

* Added the `finish-tape` simulated LOAD configuration parameter to `tap2sna.py` (to specify whether to finish the tape before stopping the simulation at the given start address)
* Added the `contended-in` simulated LOAD configuration parameter to `tap2sna.py` (to specify whether to interpret 'IN A,($FE)' instructions in the address range $4000-$7FFF as reading the tape)
* Added the `accelerate-dec-a` simulated LOAD configuration parameter to `tap2sna.py` (to specify whether to accelerate 'DEC A: JR NZ,$-1' or 'DEC A: JP NZ,$-1' delay loops)
* Added the `alkatraz-05`, `alkatraz-09`, `alkatraz-0a`, `alkatraz-0b`, `alternative`, `alternative2`, `boguslaw-juza`, `bulldog`, `crl`, `crl2`, `crl3`, `crl4`, `cybexlab`, `d-and-h`, `delphine`, `design-design`, `gargoyle2`, `gremlin2`, `microprose`, `micro-style`, `mirrorsoft`, `palas`, `raxoft`, `realtime`, `silverbird`, `software-projects`, `sparklers`, `suzy-soft`, `suzy-soft2`, `tiny`, `us-gold` and `weird-science` tape-sampling loop accelerators for use with `tap2sna.py`
* Added the special `auto` and `list` tape-sampling loop accelerator names for use with the `accelerator` simulated LOAD configuration parameter of `tap2sna.py`, and the ability to specify multiple accelerators
* Added support to `bin2sna.py`, `snapmod.py` and `tap2sna.py` for setting the `issue2` hardware state attribute (to enable or disable issue 2 emulation)
* Added support to `tap2sna.py` for loading tapes that end with a pulse sequence instead of data
* Added support to `tap2sna.py` for reading configuration from *skoolkit.ini*
* Added the `--ini` and `--show-config` options to `tap2sna.py` (for setting the value of a configuration parameter and for showing all configuration parameter values)
* Added support to `tap2sna.py` for configuring the format of a simulated LOAD trace log file via the `TraceLine` and `TraceOperand` configuration parameters
* Added the `--tape-analysis` option to `tap2sna.py` (for showing an analysis of the tape's tones, pulse sequences and data blocks)
* `snapinfo.py` now shows the value of the T-states counter and the issue 2 emulation flag in SZX and Z80 snapshots
* Fixed the bug that prevents `snapinfo.py` from displaying the value of a floating-point number in a BASIC line when the accompanying numeric string is a single decimal point (`.`)
* Fixed how the value of the R register is set in a Z80 snapshot when bit 7 is reset
* Fixed how tape-sampling loop accelerators affect the carry flag after at least one pass through the loop

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

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.