SUPERFLUID

From ReplayResources
Revision as of 23:05, 8 March 2021 by Count Zero (talk | contribs) (Created page with "{{ReplayResources:RoadWorks}} {{-}} '''SUPERFLUID''' Written by Daniel Kahlin <daniel@kahlin.net> SUPERFLUID is a basic extension, freezer and machine language monitor for t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Attention please!
Work is still in progress here!


SUPERFLUID

Written by Daniel Kahlin <daniel@kahlin.net>

SUPERFLUID is a basic extension, freezer and machine language monitor for the C64 or C128 with a Retro Replay (or compatible) cartridge.

It was written from scratch taking ideas from various sources. The general handling is inspired by Datel's Action Replay series. The monitor is inspired by HESMON/CCS MON, but tries to generalize address and range handling. It also tries to improve on what is visible (and how) in the frozen state. Some of the ideas on monitor address parsing were inspired by Graham's The Final Replay.


COMPATIBILITY


Manual

SUPERFLUID Manual should have the latest documentation as provided with the most recent release.


Files

Latest SUPERFLUID versions come with these supplied files:


  • Extra_Replay.txt
    • Technical document detailing the various mappings of the Retro Replay vs. the Nordic Replay cartridge.
  • retro_replay/
    • Version for Retro Replay or compatible. Traditional freezer implementation that corrupts a moderate amount of stack. This variant will work with both original Retro Replay/Nordic Replay cartridges and compatible clones.
  • nordic_replay/
    • Version for Nordic Replay or compatible. This variant corrupts much less stack when freezing.
      • NOTE1: only works with Nordic Replay or compatible!
      • NOTE2: the CRT-format has no way of specifying Nordic Replay so this must be manually selected in the cartridge clone or emulator used!
  • experimental/
    • Experimental version for Retro Replay clones not sensitive to button contact bounce, e.g Easyflash 3. This variant is equivalent to the NR version with respect to stack corruption during freeze.
      • NOTE: Freezing is unstable on the original Retro Replay and some of the compatible clones! Try to use the two other variants if possible.


KNOWN ISSUES

  • kernal tape support in the monitor loads straight to ram without considering the current access mode.
  • restore from freeze lacks some functionality with regards to CIAs.


HISTORY

  • SUPERFLUID V0.7 (2019-04-10) tlr
   - entering monitor from the boot menu shows the "frozen" ram when reset
     was pressed.  This has the advantage of corrupting only the top two
     bytes of stack and it can always be used even if the freeze button
     does not work for some reason.
   - added "MENU" command to enter boot menu from basic
   - "Z" zero fill now clears the full $0000-$FFFF
   - added freeze backups!  Prepare with "C" from the boot menu.
   - added monitor command "XB" to do a freeze backup.
   - added monitor command "XX" to exit through the freeze backup routine
     (for debugging)
   - [BUG] F-keys wasn't behaving in a sane way in quote-mode, fixed!
  • SUPERFLUID V0.6 (2018-02-10) tlr
   - Includes variants for Retro Replay, Nordic Replay and
     RR clones tolerating aggressive freeze acks.
   - Added document describing the different mapping of the Retro Replay and
     Nordic Replay cartridges.
   - General portability and stability improvements.
     Special thanks to Mr Ammo, AlexC, HTH and Groepaz for testing on
     various Retro Replay and Nordic Replay originals and clones!
   - Switched to a more Nordic Power friendly RAM mode in the banking code.
   - slightly less aggressive $01 sampling during freeze (leave tape sense
     unsampled for now)
   - $00 and $01 in the frozen memory map now better reflects what the cpu
     was seeing
   - freezing while frozen now just enters the monitor again
   - [BUG] freezing now samples CIA2 interrupt enables correctly
   - [BUG] freezing now samples CIA Timer B interrupt enables correctly
  • SUPERFLUID V0.5 (2018-01-04) tlr
   - improved unfreeze code that handles $00/$01 configurations without
     I/O visible
   - freezing/unfreezing now works even when running inside cart code.
   - monitor "IO" and "R" now always reflect the same values
   - freezing correctly samples $01 output bits that where configured
     as inputs in $00
   - improved setup of timer counter values when unfreezing
   - go "G" now allows an RTS to return back to the monitor
   - [BUG] fixed a major freezing lock up problem on 1541u2.
     a big thanks to insane for testing on his setup!
   - [BUG] fixed go "G" when the target is an IEC-device
  • SUPERFLUID V0.4 (2017-12-18) tlr
   - completely rewrote the monitor accessor system to use chunked accesses.
     massive speed increase for all operations!  (e.g, try monitor commands
     against disk "*8")
   - [BUG] fixed nasty bug that hangs after saving with fastsave in the
     monitor! (file was saved ok though)
  • SUPERFLUID V0.3 (2017-11-14) tlr
   - 1541 fastload (open screen, ~5.3x, PAL/NTSC/PAL-N)
   - 1541 fastsave (open screen, verify, ~5.3x, PAL/NTSC/PAL-N)
     (verify done using GCR level bit interleaved parity in a single
      revolution)
   - added special save in basic extension ("£")
   - added special verify in basic extension ("&")
   - add assembly and disassembly of undocumented opcodes (select with "£")
   - implemented tape support in the monitor.  specifying load
     address overrides, even for type 3. specifying save address
     overrides load address on saved file
   - pressing '1' during reset exits directly to basic without setting
     up $de01 (useful for debugging)
   - [BUG] $b2/$b3 was incorrecly setup, breaking tape loading in basic
   - [BUG] LOAD ERROR wasn't reported correctly in the monitor
  • SUPERFLUID V0.2 (2017-02-05) tlr
   - includes variants: direct to expanded basic, direct to menu and
     direct to normal basic
   - added machine type detection to startup
   - added wait for key release in boot menu to avoid spurious chars
   - freezer now guards against unsafe freezing near $d012 wrapping points
   - freezer now handles any raster line value set in $d011/$d012
     including non-existing lines
   - mem dump of I/O regs in the frozen state shows contents of regs at
     freeze time.  (IO command shows what to load on unfreeze)
   - RUN/STOP now works in monitor compare "C" and hunt "H" commands
   - added various wild cards for monitor hunt "H":
     "?" in strings, "<val>&<mask>" and "X" as wildcard nybbles in hex
     values
   - numbers and strings can be intermixed in monitor hunt "H" and fill "F"
   - monitor fill "F" allows sequences of numbers and/or strings just like
     hunt "H"
   - [BUG] corrected problem with zero fill in the boot menu
   - [BUG] restore default configuration of CIA2 timer A after startup
     detection code
  • SUPERFLUID V0.1 (2016-05-30) tlr
   - initial release


Weblinks

https://csdb.dk/release/?id=176641 https://csdb.dk/release/?id=162135 https://csdb.dk/release/?id=161259 https://csdb.dk/release/?id=160913 https://csdb.dk/release/?id=160463 https://csdb.dk/release/?id=153333 https://csdb.dk/release/?id=148565