Skip to content

Hognose

Latest
Compare
Choose a tag to compare
@hoglet67 hoglet67 released this 31 Aug 10:02

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:

Screenshot from 2022-08-31 10-59-42

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)