The tcbm2sd is a cartridge that combines a 1551 paddle replacement with a 1551 simulator interfacing an SD card.
It's less than sd2iec (no space in flash for that), but more than a Tapecart. It is able to LOAD, SAVE, handle directories, and several disk commands: CD, MD, RD, S, R.
It doesn't require any special software or loader and works with stock CBM Kernal.
I liked Directory Browser 1.2, so I embedded it in the flash as a file browser. It loads automatically when you try to load '*', like with SHIFT+RUN/STOP. I also patched it for fastload protocol.
Using the Kernal LOAD, I measured a loading speed of about 3100 bytes/s. The fast loader is about three times faster than that, on par with the parallel cable DolphinDOS from C64/128.
This project has two parts:
a) paddle replacement cartridge that combines the 6523T with PLA. It uses a CPLD that can handle 5V input but outputs 3.3V. It should work with a 1551 drive, but I don't own one, so I can't test if it needs additional buffers or pullups.
b) a 1551 simulator that runs on an Arduino Mini Pro (32K ATmega328). This is not enough for an sd2iec port, so disk images are not supported, but it might motivate me to create a new revision with a microcontroller that can handle that.
The simulator part is optional - it's just connected to TCBM connector lines arranged in an Arduino Mini Pro footprint. Something else (like a real 1551 or RaspberryPi for Pi1551) could be connected in that place.
If the lack of disk image support bothers me enough, I'll probably go with the next revision, having a more capable microcontroller and an sd2iec port. This first revision was meant to be simple, cheap and use off the shelf modules. This is a MVP to test if this stuff would even work (it's my first CPLD project), but it's very useful on its own already.
Please check out Github for a more detailed description, photos, and some operation videos.
Re: Introducing tcbm2sd Hey, this is supercool, great job! I also appreciate that it's a 100% open project, good choice! I am also interested in trying it out ASAP!
Also I'm glad that LittleSixteen helped with the development. This gives me a couple of ideas...
Re: Introducing tcbm2sd This is great! I suppose the original 1551 should have reach that speed on 8bit parallel line. (I suppose a little more RAM would not hurt for 1551) This speed, especially with a fastloader is really impressive. I am also ready to buy one, as I see the disc support will also come sooner or later.
I already gave up the idea to own an 1551, so this one will be great instead of 1551. Let us know if some pieces will be available.
Re: Introducing tcbm2sd Thanks! This is really encouraging.
Assembling a small batch won't be a big problem.
I'll give myself about a month or so to continue testing and finally decide on the microcontroller. If I can quickly get an sd2iec port to run on something larger, like an RP2040 with a TCBM bus within this time, I would redesign the cartridge and add the buttons.
If not, that's okay too - I would postpone things at least until the winter holiday season. It would mean that this first revision has some shelf life in it and I could offer you that in the meantime.
I'll keep you updated!
@SukkoPera I can thank you directly LittleSixteen was very educational - especially with all the additional comments on the schematic pages. I bought my first Plus/4 only in May, I didn't know anything about this machine before.
@MMS I played with the idea of extra ram in 1571 and 1541. It can be used to load and cache whole track data - like 1581 does. I patched DOS for that: https://github.com/ytmytm/1571-TrackCacheROM. It makes sense when transfer is fast enough (at least JiffyDOS speed) because only then we have the speed gain of ignoring the sector interleave business. A similar patch could be done for 1551 (even without real hardware, entirely within patched VICE). But that's entirely different project
Re: Introducing tcbm2sd I'm not sure if it worth the effort to use the SD2IEC firmware. Your version already supports basic directory management and file handling functionality. Support of disk images would be nice but I can live without that. In addition to that the main value of SD2IEC is the compatibility with several fastloaders but those are for the serial port and most of them for C64 only anyway so in a TCBM device those does not hold value. On the other hand supporting the FlexSD firmware of BSz with the virtual CPU extension for SD2IEC could be a nice thing. But currently that is also for serial port only. (But I heard some rumors that he is working on a parallel extension so that could come handy )
Re: Introducing tcbm2sd I managed to squeeze into the firmware also the read-only support for disk images (D64/D71/D81). This pretty much completes what I wanted to achieve.
The author of Directory Browser kindly shared the source code with me, so there is now a version that supports the native fastload protocol (23x, ~9KB/s) for files and directory listings.
After thinking more about this I agree with @siz that SD2IEC is not worth the effort. If anything, a cycle-exact Pi1551 emulation (based on Pi1541) would be the next step. The PCB, without Arduino installed, can already be directly connected to RPi's GPIOs, without needing any level shifters. So, such project would be "only" a software problem.
I have some parts left and will be ordering more. If you'd like to buy a ready-made TCBM2SD from me, please send me an email: ytm@elysium.pl Let me know how many you'd like and include your country of residence. Once I have an estimate of the quantity needed, I'll get back to you with a price offer.
(If you are reading this in the future, don’t hesitate to ask either - I will order some spares too.)
Re: Introducing tcbm2sd Great development! I built it and tested it. Enchanted Castle (.PRG 239 BLOCK) Normal loading 17-18sec. Turbo loading in 6 seconds.
Re: Introducing tcbm2sd Wow, I'm thrilled and would also be interested, if it becomes available for purchase. As a software guy, I unfortunately cannot even to simple hardware work myself, as a solder iron is not compatible with my hands ...
IThats also the reason, why I don't have some other interesting projects, I would like to have, but shy away from doing myself, as e.g. LittleSixteen ...
Re: Introducing tcbm2sd @rossi: I've heard that thing many times (and I have actually believed the same thing for myself for years) and most often it was just cases of having an indecent soldering iron or solder wire.
Get yourself a good iron (I always recommend the Hakko FX-888D, around 110€ but it'll outlive you) and good old leaded solder wire and you'll be surprised at how easy it is...
Re: Introducing tcbm2sd @SukkoPera: I of course tried and killed a good chunk of decoder (model railway, my other hobby) due to my utter and complete lack of skills, despite a good soldering iron, which I bought on recommendation of a good friend of mine, what had to do all the repairs of my trials, where possible. But somehow the soldering iron and myself simply don't match.But if there is no other way, I probably need to give it one more try and should just order myself the board from PCBWay.
Re: Introducing tcbm2sd Finally the first batch is with me. I have the units available for 35€ + shipping. If you want one (or more), drop me an email: ytm@elysium.pl for cost estimation.
Re: Introducing tcbm2sd @Haegar, Thank you! it looks more professional within a proper housing
I opted for one at YTM, but he ran out of the first batch, till that time he will be ready with the second round, I will look after a local 3D printing facility (I admit I do not own one, and not planning to buy one, due to the noise). BTW Tip does not work for me...
Re: Introducing tcbm2sd Great development and very interested! But after contacting ytm via mail together decided it would be better for me to wait a bit as known issues with both the CPU and PLA I have in my Plus/4, and possibly it’s JiffyDOS ROM replacement as well, probably will give issues at my machine.
So wait until confirmed working with those. And sincerely hope that a full Pi1551 is a next step that we do not need to wait too long for. Want one!
Re: Introducing tcbm2sd This is a really great developement!
The SD2IEC is a kind of solution working for C64 and 264, but the C64 has the Ultimate-64 to emulate the disk drive as closest as possible for using speeded games and new releases made for disk. I always thought that we need something like that in the 264-scene for the emulation of the 1551. The disk drives are kind of rare and therefore new developers might get a C16 or plus/4 easily but not such a drive. That's a problem because in my opinion every D64-release should be speeded, testet and 100% working not only with the 1541 but with the 1551 too.
I talked to toms01 (from Forum64: https://www.forum64.de/index.php?thread/137781-gab-es-jemals-eine-1551-ii/) at last LuheCon about the idea to build such an "Ultimate-1551" because he is deep in the hardware (more with C128, but started to recreate the C16) and has done support to make the 1551-II happen with kinzi and AndroSID. Unortunately he is not interessted in building such a drive.
In between I found Joco's SD drive (http://joco.homeserver.hu/c16stm/) but as I see that projekt it needs special loaders but your approach is really to come close to the behaviour of a real 1551 but usind SD-cards. Great! I will like to drop you the e-mail and test the first bunch out and even want to come back to later bunches if you want to come closer to real 1551 behaviour.
@Haegar: Nice approach but as really new case developement what do you think about creating a case that looks like the paddle a real 1551 has but without the cable canal on the one side and a slot to insert the card?
Re: Introducing tcbm2sd @GeTE: I think the idea is good. But building something like that from scratch takes time and would require a better program. But then I would create it with and without a cable. With as a case for people whose paddle on the 1551 have broken and without as a case for the tcbm2sd.
I'll have to start looking into how I can get all my projects and ideas on the Plus/4 one after the other. Too many ideas, too little time
Re: Introducing tcbm2sd I have an update - it looks like today I finally got the CPLD equations right to make tcbm2sd work with 6502/10 replacements. The only strange thing left JiffyDOS+6502 combination - fastloader doesn't work with that one.
I ran out of stock that I can sell at the moment. In a month or so I will be ordering more.
Since expansion port connectors are impossible to find I'm going to drop the cartridge passthrough feature and just put a 64K ROM on the PCB already to be available as cartridge 1 and 2.
Re: Introducing tcbm2sd For me that are great news!
There were never much cartridges available for the 264 line, but I always used Kingsofts TURBOPLUS inserted at the back of my 1551-paddle for programming. Therefore you are on the way to substitute that setup for my "mobile plus/4".
How will it be possible to load up new cartridge images in the TCBM2SD's ROM?
This also demonstrates the next/prev buttons and cartridge ROM on the updated PCB. That Plus/4 had JiffyDOS and 6510 CPU replacement installed for compatibility tests.
I need to complete some more tests and within a month or so I will place an order to have a new batch of these manufactured.
As long as @siz 's I/O library is used this is quite straighforward once the library entry point and loader location are recognized.
When the software uses only one method: just loading files or just loading compressed data it's easy.
But my second game choice was Alpharay, which loads some data compressed and some directly. The loader overflowed its area by 32 bytes. Finding unused memory inside game which I won't be able to complete is a bit of a challenge. For a moment I put my code on the bottom of the stack ($0100-$011F), but in the end I was able to some space in the decruncher area.
I tried patched GEOS, Giana Sisters, and Alpharay and I can't get them to work with my TCBM2SD. GEOS stucks on a black screen. If I reset the machine, I get a "Laufwerk A einschalten" window. Alpharay displays the "commodore plus/4" screen and then it jams. Giana Sisters jams when loading the first stage.
Re: Introducing tcbm2sd @Spectro, though I am still waiting for my device (on the way), and cannot test on my device yet, it looks like you have a previous version. As the GEOS video is rather conviencing.
Re: Introducing tcbm2sd I also had problems to finding it. I have it now. Unfortunately, I have to order the hardware first to install the new firmware. I have a t2cbm from the first batch that was delivered and it is very unstable, at least for me. Does anyone have experience with this? My hope is that after the update the t2cbm will run better and that I haven't completely destroyed it
Re: Introducing tcbm2sd @Haegar @Spektro I'm sorry to hear that. All 1.1 boards can be updated to the current firmware, which means updating both the CPLD and the Arduino. The required files (Arduino source code and JED) are available in the releases section on GitHub: release 1.1 on the right-hand side. If you prefer not to handle this yourself, consider sending the boards to me, I can make updates and send them back to you. Please contact me via email for that.
@George Only DLOAD/DSAVE and commands over channel 15 are supported
Re: Introducing tcbm2sd I have now re-flashed my tcbm2sd and it seems to be working perfectly now. I hope there will be a few more adapted games soon. @ytm Thanks for the help with flashing the tcbm2sd
Re: Introducing tcbm2sd @Spektro: Be informed that GEOS for Plus/4 uses a dedicated turboload for 1551 drives. It is not a separated file, but it is enclosed inside the O.S. files.
Re: Introducing tcbm2sd I have a question of understanding: Does only "tcbm" in the image name mean that this D64 was optimzed for all TCBM-drives and would also run on a real disk used in a real 1551 and "tcbmfast" means this will load much faster but only with a TCBM2SD? Or is there another difference?
And yeah, the cartridge and loader is great. Perfect to carry a real plus/4 to conventions.Therefore I would love to have the newer Megademos ported to the TCBM2SD too.
Re: Introducing tcbm2sd Does only "tcbm" in the image name mean that this D64 was optimzed for all TCBM-drives and would also run on a real disk used in a real 1551 and "tcbmfast" means this will load much faster but only with a TCBM2SD? Or is there another difference?
Correct. These "tcbm" D64 images also work with YaPe in its "1551 IEC emulation" mode. With a real 1551 you are better off with the original (unpatched) verison, because it will have fastloader on the drive side.
Yes, "tcbmfast" will load even faster. Prince of Persia shows its "Loading" screen after intro far too long to play music even though the loading was already finished.
When possible, I kept both versions because "tcbm" is easy to debug on the emulator.
There are more patched games available now: Lemmings, Lykia, Pets Rescue, Prince of Persia and Turbo Outrun.
Re: Introducing tcbm2sd @MMS Sorry, it's not possible with that Arduino. Even though there might be some flash left for such functionality, there is not enough RAM left to maintain state and track opened files. DSAVE within disk images is also not possible due to lack of resources.
Given time, I would leave it at this stage - a browser+loader. The next big thing would be Pi1551.
Re: Introducing tcbm2sd @George: Thank you for the great video, especially mentioning me. Thank you, friend! :-D
Everyone else: For storing your PRGs and loading them super fast, TCBM2SD seems to be a perfect device. As a lot of D64s will also work, it does not have too much limitation, except fastloaders and SEQ files. I mean demos, modern games, 1541/1551 fastloaders, track loaders :-D.
I suppose adding a super fast device on expansion port to the +4 at release could have been a game changer back in 1984... C64 was treated as a toy computer because of the 1541 loading speed, just compare it to Apple II Disc drive. 1551 was not ready at the start, unfortunately, but was still not a cheetah. (Between us: 1551 was not really fast. It had the HW bit banging capability, and 8x wider data bus, and still just 4x faster than a 1 bit bit loading made in sw by the 6510. meh...)
If we wait for the "close to 100% 1551 compatibility" (PI-1551), the full slow 1551 protocol need to be applied, means just 4x speed increase compared to 1541. I do not see then chance to become much faster than this 4x speed with faithful emulation. Though there were some really decent fastloaders on 1551 too, could be integrated.
(Frankly speaking, for me JiffyDOS+4 is a disappointment with the switched off screen. Why it does not load only on the border, when the CPU is faster? Yeah, I know, small RAM buffer at 1541 side - this can be solved...)
I recently got a TCBM2SD directly from @ytm and I was looking for a bit of advice. I'm not sure if I am doing things correctly but I have having a little trouble.
I am using an expanded Commodore 16 (SuRuMan-TED) 64K.
YTM kindly linked me to a zip of files to use with the device, including the boot.t2sd file for quick starting the directory browser.
The first problem I had was when loading this file it would load then just freezing with a message like "loading directories' nothing would happen, I would have to restart. I managed to get this to go further by getting the directory_browser_v1_2.prg and using that. It would load via DLOAD and also the keyboard shortcut when renamed to boot.t2sd and replacing the original file.
So, I can load this software up and browse the files on the SD Card. Unfortunately, whenever I try to load any software this way the machine goes to a black screen and just stays that way. This is the same for the patched software as well as the regular software you can get from this site etc.
Eventually by chance I discovered that if I hit reset then hit DIRECTORY (f3) first I get the result "33924" but if I hit reset one more time then DIRECTORY it lists the contents of the disk I have just loaded. I can then DLOAD"game name.prg" (for example) etc and it will load! I am confused! I have tried this with a few different softwares and all seem to load fine by doing it this way. Very strange.
Also how do you use the CBM DOS commands? I tried to navigate using these (such as CD:GAMES) but all I get is syntax error?
Not sure what is happening, I cannot load anything directory from browser the filesystem, I cannot load directly from the file browser software (black screen) I can only load after reseting twice when trying to load from the directory browser first.
Am I doing something wrong? Could it be something to do with the memory expansion? I would appreciate any help from. the experts here
Re: Introducing tcbm2sd I had the same issues from time to time.. so i guess eithen the fileexplorer has some bugs or the pcb. Let us not forget that these are mostly experimental. Don't expect flawless products.
i know you were not complaining, it was just a reminder for me and us all :).
Its incredibly cool, that people put so much effort and create knew things for old homecomputers and push the boundaries. I wish i had the skills to make new hardware for the plus/4, but i am more on the high-level softwareside. Developers are always happy if their products are used and bugs are reported to them.
Re: Introducing tcbm2sd Little off: Well, maybe just a small wish, but @GAIA, is is possible to implement the support for .D82 disc format in YAPE? This is the disc format of my favoured SFD-1001 drive.
As I showed in the past, SFD-1001 worked well with Plus/4 combined with IEEE2IEC converter, but the speed was as slow as an 1541.
Thanks to @ytm TCBM2SD drive support now this double sided, 1MB sized disc.
It could be great for slideshows, picture filled adventures, even some animation. Combined with the great speed, I think it is the format we always wished. The biggest and best floppy format of Commodore with one of the highest speed we could experience with a hardware device. ( Certainly the HW behind the Evulution is way faster than this, but has a specific task, like the clips played from DVD at Space Ace.)
Would it be possible for you to try without SaRuMan-TED? That could eliminate one variable.
I have one of those, but mine works only with the original CPU and only as 64K setting. I have no idea if it's how it was designed or of it's broken. Nevertheless, I tested tcbm2sd with this setup (original CPU+SaRuMan) and it worked fine.
The results you're getting suggest that fastloader doesn't work properly. Fastloader is always used if you DLOAD"* and patched directory browser uses it also for directory and file loads.
Try DLOAD"B* to force Kernal protocol to load the unpatched Directory Browser or FB16.
You can issue disk commands from BASIC: OPEN 15,8,15,"CD:GAMES":CLOSE15. Or (if you have it) with JiffyDOS: @CD:GAMES
We can continue over the email if you wish
I can't double post so another message follows:
Last Saturday, I had the pleasure of presenting this project as a 20-minute talk at the Commodore Users Europe online meeting.
Thanks for the suggestions and explaining how the disk commands work. I have never used those before
I will try without the SaRuMan-TED, hopefully it's not that causing the problem as it would limit things a bit not having the extra RAM. If it is an issue with my SaRuMan-TED then at least I'll know but I guess I'd need to live with it and work around.
Another variable could be that I have a PLA264 replacement instead of the original component. No idea if this would cause things to operate differently.
I will try the alternate DLOAD command also.
Like I said, I can get around the issues so it's not the end of the world. I am very happy with the extra functionality your device is giving me.
If I discover anything or hae any more questions I am happy to email you direct to keep this thread as clean as possible.