This is the Hognose release of PiTubeDirect.
There are two main new features in Hognose:
1. A JIT-based implementation of the 65C02 Co Processor that is up to 4x faster:
Here's some data comparing Co Pro 0 (non-JIT) with Co Pro 24 (JIT):
- Pi Zero: Speed-up is 1.44x
- Co Pro 0: 282.60MHz
- Co Pro 24: 408.26MHz
- Pi Zero 2: Speed-up is x3.14
- Co Pro 0: 242.46MHz
- Co Pro 24: 760.76MHz
- Pi 3A+: Speed-up is 3.14x
- Co Pro 0: 290.75MHz
- Co Pro 24: 914.37MHz
- Pi 4: Speed-up is 4.23x
- Co Pro 0: 366.52MHz
- Co Pro 24: 1553.03MHz
(measured using the BASIC 2 version of CLOCKSP)
The JIT 6502 (Co Pro 24) is now the default Co Processor; this can be changed by editing cmdline.txt.
Thanks to Dominic (dp11) for creating the new JIT 6502 Co Pro!
2. A BBC compatible VDU driver that allows use of the Pi's HDMI port as a secondary display:
See this Wiki page for more details : Pi VDU Driver
In addition to the above, there have been a number of other fixes/changes since the Gecko release:
- Pi Zero W 2 / 3A+ / 3B+: Add support for activity LED
- Pi 4: fixed overclocking bug
- All: Switch to using ARM GCC 11.1 (~10% faster on the Pi 4)
- All: Increase GCC warning level and fix lots of warnings
- All: Update firmware blob to stable on 2021/12/26
- All: Increase GCC HEAP size to 16MB (fixes issues with things that use malloc)
- All: Reduce unnecessary use of malloc (e.g. in the lib6502 Co Pro)
- All: Add a tube detection fast path to tube_io_handler()
- Fast6502 Co Pro: Fix for JSR/RTS stack wrap issue with TwinHead
- Native ARM Co Pro: Implement OS_SWINumberToString
- Native ARM Co Pro: Modularize SWI implementation
- Native ARM Co Pro: Many new SWIs implemented to support Frame Buffer
- Native ARM Co Pro: Simplify reset sequence; delay copy of ARM Basic
- Native ARM Co Pro: Fix OSBYTE SWI returns unexpected value in R1 (#120)
- Native ARM Co Pro: Fix bug in OS_SynchroniseCodeAreas that broken ARM Basic on Pi 4 (#114)
- Native ARM Co Pro: Fix an incorrect start address for ARM Basic
- 32016 Co Pro: Fix a disassembly issue with EaPlusRn index register
- 32016 Co Pro: Fix a disassembly issue with EaPlusRn scaled indexed addressing
- 32016 Co Pro: Prevent disassembly of junk causing traps
- 32016 Co Pro: Implement TOS for access class regaddr (fixes #118)
- 32016 Co Pro: Avoid blatting 16MB of RAM on power-up reset (makes switching to the 32016 unreliable)
- 65816 Co Pro: Fix flag bug in 16-bit ROL (found with Drass tests)
- PDP-11 Co Pro: Update Client rom to v0.30 from JGH, fixes soft break issues amongst other things
- PDP-11 Co Pro: Fix infinite loop when logging traps that crashed PiTubeDirect
- 80x86 Co Pro : Fix Issues with IDIV (#127) (with lots of help from SteveF)
- ARM2 Co Pro: FIx a disassembly issue with LDR rd,[rn,rm, shift#xx]!
- Debugger: Fixed ioread bug (found with Coverity)