SUPERFLUID: Difference between revisions
Count Zero (talk | contribs) |
Count Zero (talk | contribs) m (→Weblinks) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{-}} | {{-}} | ||
'''SUPERFLUID''' | '''SUPERFLUID''' | ||
[[File:Retro_Replay_LED.jpg|alt=SUPERFLUID Startup|thumb|right]] | |||
Written by Daniel Kahlin <daniel | 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 46: | 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 53: | Line 65: | ||
== 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 | * SUPERFLUID V0.7 (2019-04-10) tlr | ||
Line 145: | 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=176641 | * [https://csdb.dk/release/?id=210169 SUPERFLUID 0.8] @ CSDb | ||
* https://csdb.dk/release/?id=162135 | * [https://csdb.dk/release/?id=176641 SUPERFLUID 0.7] @ CSDb | ||
* https://csdb.dk/release/?id=161259 | * [https://csdb.dk/release/?id=162135 SUPERFLUID 0.6] @ CSDb | ||
* https://csdb.dk/release/?id=160913 | * [https://csdb.dk/release/?id=161259 SUPERFLUID 0.5] @ CSDb | ||
* https://csdb.dk/release/?id=160463 | * [https://csdb.dk/release/?id=160913 SUPERFLUID 0.4] @ CSDb | ||
* https://csdb.dk/release/?id=153333 | * [https://csdb.dk/release/?id=160463 SUPERFLUID 0.3] @ CSDb | ||
* https://csdb.dk/release/?id=148565 | * [https://csdb.dk/release/?id=153333 SUPERFLUID 0.2] @ 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
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
- c64 or c128
- Retro Replay/Nordic Replay
- 1541 Ultimate-II/II+
- Easyflash 3
- Turbo Chameleon 64
- Ultimate-64
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!
- Version for Nordic Replay or compatible. This variant corrupts much less stack when freezing.
- 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.
- 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.
Binaries
As usual we package everything into one _all_ archive but here we of course also offer the original release files as well:
- SUPERFLUID 0.1 to 0.8
- SUPERFLUID 0.8
- SUPERFLUID 0.7
- SUPERFLUID 0.6
- SUPERFLUID 0.5
- SUPERFLUID 0.4
- SUPERFLUID 0.3
- SUPERFLUID 0.2
- SUPERFLUID 0.1
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
- SUPERFLUID 0.8 @ CSDb
- SUPERFLUID 0.7 @ CSDb
- SUPERFLUID 0.6 @ CSDb
- SUPERFLUID 0.5 @ CSDb
- SUPERFLUID 0.4 @ CSDb
- SUPERFLUID 0.3 @ CSDb
- SUPERFLUID 0.2 @ CSDb
- SUPERFLUID 0.1 @ CSDb