7 ms·
Transwarp v0.84 – 50x fastload system on plain vanilla stock 1541 (use with C64)
- snvzz 4y agoAnd it's at least 100x cooler than most fastloaders, because it is Open Source (GPLv3 or later). This isn't just "yet another fastloader". :) >edit: It's actually open source!
- thedonncha 4y agoI haven't looked at it but I bet it's written in handwritten ASM. You can disassemble that. It probably won't be easy but with a memory map of the C64 and 1541 you could tell how it's working and learn from it.
- thedonncha 4y agoI just checked the newest release on csdb and it has a .s source file you can download. It is released under the GPL. :)
- classichasclass 4y agoWish granted: https://csdb.dk/release/download.php?id=260085 https://csdb.dk/release/download.php?id=260085 It's even GPL.
- snvzz 4y agoAnd so is the new version: https://csdb.dk/release/download.php?id=264898 https://csdb.dk/release/download.php?id=264898 I couldn't find it when I searched earlier, but it's there in plain sight, among the other downloads! I 100% expected a link to a git repo. Google was also, as usual, useless.
- jandrese 4y agoAmazing. It should be noted that 50x faster is 20KBps, the original 1541 firmware was stupendously crippled. Loading the entire C64 memory space in 4 seconds is a tremendous quality of life improvement for a C64 user. Heck, you can read the entire disk in less than 9 seconds.
- corysama 4y agoAny explanation of how it works?
- bonzini 4y agoSomething here: https://www.c64-wiki.com/wiki/Transwarp https://www.c64-wiki.com/wiki/Transwarp Also: "Plain Commodore GCR encodes 4 bytes raw to 5 bytes on disk, Transwarp encodes 3.5 bytes raw to 5 bytes on disk. (Thus only 223 = $df instead of 256 bytes per block, the 224th byte is the checksum.) One trick is to encode those 3.5 bytes using a subset of plain Commodore GCR, such that it works just fine with d64 and regular transfer/copy solutions. Part of that trick is that decoding a GCR byte drive-side just takes a table lookup (4 cycles). =)"
- KrillPlush 4y agoThere is a lengthy thread with some technical details attached to the original v0.64 release (late November 2020): https://csdb.dk/forums/?roomid=12&topicid=146327 https://csdb.dk/forums/?roomid=12&topicid=146327 The core scheme hasn't changed much since then. =)
- NateLawson 4y agoThese typically work by changing the media bit encoding to be easier to process with 6502 instructions instead of a lookup table. Others simplify the table and use more RAM so that fewer lookups are needed. I haven’t looked at how Transwarp works yet but it seems like the latter. Some discussion with the author: https://www.lemon64.com/forum/viewtopic.php?t=78558&start=0 https://www.lemon64.com/forum/viewtopic.php?t=78558&start=0 There’s a newer version here: https://csdb.dk/release/?id=214786 https://csdb.dk/release/?id=214786 Release notes: https://csdb.dk/release/?id=214786&show=notes#notes https://csdb.dk/release/?id=214786&show=notes#notes More details from another advanced loader: https://www.linusakesson.net/programming/gcr-decoding/index.php https://www.linusakesson.net/programming/gcr-decoding/index.... https://www.linusakesson.net/software/spindle/v3.php https://www.linusakesson.net/software/spindle/v3.php