SUPERFLUID: Difference between revisions

From ReplayResources
Jump to navigationJump to search
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 2: Line 2:
'''SUPERFLUID'''
'''SUPERFLUID'''
[[File:Retro_Replay_LED.jpg|alt=SUPERFLUID Startup|thumb|right]]
[[File:Retro_Replay_LED.jpg|alt=SUPERFLUID Startup|thumb|right]]
Written by Daniel Kahlin <daniel@kahlin.net>
Written by Daniel Kahlin <daniel(AT)kahlin.net> - ''Thanks to him for allowing us to put all his stuff up here!''


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




== Binaries ==
As usual we package everything into one _all_ archive but here we of course also offer the original release files as well:
* [[:File:SUPERFLUID_all_0.1_0.8.rar|SUPERFLUID 0.1 to 0.8]]
* [[:File:Superfluid-0.8.zip|SUPERFLUID 0.8]]
* [[:File:Superfluid-0.7.zip|SUPERFLUID 0.7]]
* [[:File:Superfluid-0.6.zip|SUPERFLUID 0.6]]
* [[:File:Superfluid-0.5.zip|SUPERFLUID 0.5]]
* [[:File:Superfluid-0.4.zip|SUPERFLUID 0.4]]
* [[:File:Superfluid-0.3.zip|SUPERFLUID 0.3]]
* [[:File:Superfluid-0.2.zip|SUPERFLUID 0.2]]
* [[:File:Superfluid-0.1.zip|SUPERFLUID 0.1]]


== KNOWN ISSUES ==
== KNOWN ISSUES ==
Line 52: Line 65:




== Binaries ==
== HISTORY ==
 
As usual we package everything into one _all_ archive but here we of course also offer the original release files as well:


* A
* SUPERFLUID V0.8 (2021-10-08) tlr
* A
    - added a nicer startup/menu screen
* A
    - cleaned up screen setup to reduce various glitches during startup
* A
    - added small delay on reset to simplify startup key combinations
* A
    - only initialize certain parameters on power on, like current device
* A
      number
* A
    - "Z" zero filling and "C" configuring now also clears color ram at
 
      $DBE8-$DBFF
 
    - much improved parsing and error checking in the monitor
 
    - bytes can now optionally be expressed as a single hex digit.
== HISTORY ==
      (based on suggestion for 'L "<file>" 8' by RHX/Excess)
    - added command "TR" transfer reverse which moves data _to_ the
      source range _from_ the destination instead of the normal direction.
    - added monitor prefix '!' to measure execution time of a command.
    - space in the monitor now pauses scrolling. (suggested by RHX/Excess)
    - pressing C= in the monitor holds scrolling while depressed
    - IEC devices 8-15 are now selectable using '@'
    - IEC devices 8-15 are useable as monitor targets
    - prevent user from setting an out of range device number
    - compatibility improvements to the disk turbo
    - cia type detection at startup added
    - improved drive detection, remembers the last drive detected at
      a specific dev num
    - fixed behaviour of reset freeze vs normal freeze such that the
      $0000-$0FFF area is swapped back correctly when needed.
    - improved freeze backups removing a few cases where generating the
      binary would be unsuccessful
    - cleaned up a lot of zeropage handling to avoid collisions with
      basic
    - The Nordic Replay .crt is now built with hw revision 1 as supported
      by vice as of r36850 (thanks to groepaz for implementing it).
    - [BUG] sometimes the drive status message would be blank after reading
      drive ram in the monitor, fixed!
    - [BUG] wrapping of ranges, e.g "T FFF0 0010 0800" only worked
      randomly.  Now fixed!
    - [BUG] some subtle problems with REU address ranges fixed.
    - [BUG] "'" write back interpret wouldn't allow writing chars over
      certain byte combinations, now fixed!  (reported by RHX/Excess)
    - [BUG] freezing with in the menu would crash on "X", fixed.
    - [BUG] sector load/verify/save variants didn't check for missing
      parameters so doing "L 08" would load sector data to some random
      address, fixed!
    - [BUG] write frozen IO '-' would allow arbitrary adresses, messing
      stuff up, fixed!
    - [BUG] write frozen IO '-' would be allowed even if not frozen, fixed!
    - [BUG] quote mode wasn't disabled in the monitor, fixed!
    - [BUG] go 'G' would not work correctly from the frozen state, fixed!
    - [BUG] fixed the default state of CIA timer latches on entering basic.


* SUPERFLUID V0.7 (2019-04-10) tlr
* SUPERFLUID V0.7 (2019-04-10) tlr
Line 157: Line 205:
* SUPERFLUID V0.1 (2016-05-30) tlr
* SUPERFLUID V0.1 (2016-05-30) tlr
     - initial release
     - initial release


== Weblinks ==
== Weblinks ==


* [https://csdb.dk/release/?id=210169 SUPERFLUID 0.8] @ CSDb
* [https://csdb.dk/release/?id=176641 SUPERFLUID 0.7] @ CSDb
* [https://csdb.dk/release/?id=176641 SUPERFLUID 0.7] @ CSDb
* [https://csdb.dk/release/?id=162135 SUPERFLUID 0.6] @ CSDb
* [https://csdb.dk/release/?id=162135 SUPERFLUID 0.6] @ CSDb
Line 168: Line 216:
* [https://csdb.dk/release/?id=153333 SUPERFLUID 0.2] @ CSDb
* [https://csdb.dk/release/?id=153333 SUPERFLUID 0.2] @ CSDb
* [https://csdb.dk/release/?id=148565 SUPERFLUID 0.1] @ CSDb
* [https://csdb.dk/release/?id=148565 SUPERFLUID 0.1] @ CSDb


[[Category:SUPERFLUID]]
[[Category:SUPERFLUID]]

Latest revision as of 21:00, 10 April 2024


SUPERFLUID

SUPERFLUID Startup

Written by Daniel Kahlin <daniel(AT)kahlin.net> - Thanks to him for allowing us to put all his stuff up here!

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.


Binaries

As usual we package everything into one _all_ archive but here we of course also offer the original release files as well:

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.8 (2021-10-08) tlr
   - added a nicer startup/menu screen
   - cleaned up screen setup to reduce various glitches during startup
   - added small delay on reset to simplify startup key combinations
   - only initialize certain parameters on power on, like current device
     number
   - "Z" zero filling and "C" configuring now also clears color ram at
     $DBE8-$DBFF
   - much improved parsing and error checking in the monitor
   - bytes can now optionally be expressed as a single hex digit.
     (based on suggestion for 'L "<file>" 8' by RHX/Excess)
   - added command "TR" transfer reverse which moves data _to_ the
     source range _from_ the destination instead of the normal direction.
   - added monitor prefix '!' to measure execution time of a command.
   - space in the monitor now pauses scrolling. (suggested by RHX/Excess)
   - pressing C= in the monitor holds scrolling while depressed
   - IEC devices 8-15 are now selectable using '@'
   - IEC devices 8-15 are useable as monitor targets
   - prevent user from setting an out of range device number
   - compatibility improvements to the disk turbo
   - cia type detection at startup added
   - improved drive detection, remembers the last drive detected at
     a specific dev num
   - fixed behaviour of reset freeze vs normal freeze such that the
     $0000-$0FFF area is swapped back correctly when needed.
   - improved freeze backups removing a few cases where generating the
     binary would be unsuccessful
   - cleaned up a lot of zeropage handling to avoid collisions with
     basic
   - The Nordic Replay .crt is now built with hw revision 1 as supported
     by vice as of r36850 (thanks to groepaz for implementing it).
   - [BUG] sometimes the drive status message would be blank after reading
     drive ram in the monitor, fixed!
   - [BUG] wrapping of ranges, e.g "T FFF0 0010 0800" only worked
     randomly.  Now fixed!
   - [BUG] some subtle problems with REU address ranges fixed.
   - [BUG] "'" write back interpret wouldn't allow writing chars over
     certain byte combinations, now fixed!  (reported by RHX/Excess)
   - [BUG] freezing with in the menu would crash on "X", fixed.
   - [BUG] sector load/verify/save variants didn't check for missing
     parameters so doing "L 08" would load sector data to some random
     address, fixed!
   - [BUG] write frozen IO '-' would allow arbitrary adresses, messing
     stuff up, fixed!
   - [BUG] write frozen IO '-' would be allowed even if not frozen, fixed!
   - [BUG] quote mode wasn't disabled in the monitor, fixed!
   - [BUG] go 'G' would not work correctly from the frozen state, fixed!
   - [BUG] fixed the default state of CIA timer latches on entering basic.
  • 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