| Post Your Message | |
| |
| Previous Messages | Posted By
BSZ on 2024-10-13 12:50:19
| Re: FlexSD firmware for SD2IEC drives, V1.3.0 fw
@ytm: Thank you for your effort and infos! I have saved the disk image. I'll try it sometime in the next few days! (First with a factory 1571 so I know what I'm looking at! ) Then I will see how complicated it is to implement in FlexSD firmware.
Thanks again, I will post developments in the forum.
Edit & Off: I had a little problem with my '71 drive, but this has been solved. I tried the GEOS disk above, it seems to work fine! Now "only" need to implement the necessary commands on the fw side.
|
|
Posted By
ytm on 2024-10-03 18:48:33
| Re: FlexSD firmware for SD2IEC drives, V1.3.0 fw
GEOS 128 used the same IEC fastloader as GEOS 64, this is already supported by sd2iec firmware.
The original GEOS 128 didn't use any burst features. All the disk drivers were almost exact copies of those from GEOS 64. They only had to change the code to enable/disable I/O from manipulating $01 into $FF00.
Yes, my 1571 burst disk driver doesn't use any drive code, just U0<0,2,4> commands for block read/write/inquiry. It's much shorter than the original.
I just wanted to check how it would perform comparing to the original fastloader. It turns out the speed is almost the same, so it was not worth pursuing this further, but it's a nice example of block-read and block-write commands.
Here is the boot disk image: https://drive.google.com/file/d/17qJ4FBybRc5i_inv3LSWuR0a5lFjZlhX/view?usp=sharing
And here is the relevant code: https://github.com/ytmytm/geos/blob/feature-drv1571burst/drv/drv1571burst.s
The only interesting parts for you would be next to __ReadBlock / __WriteBlock (around line 913). There is nothing original here, it was mostly lifted from the 1571 User's Guide.
|
|
Posted By
BSZ on 2024-10-03 16:19:53
| Re: FlexSD firmware for SD2IEC drives, V1.3.0 fw
@ttm: Unfortunately, I have not yet encountered the C128 GEOS, I only saw the C64 version from a distance. But... The original version don't use the '71/'81 fast serial transfer? The original sd2iec firmware has GEOS support for two versions. (I haven't tried these yet either.) But these are - by nature - for version C64, version C128 uses different disk routines?
Because of all the above, the purpose of your project is not entirely clear. Have you created a disk drive 'driver' that works for 1571 using only burst commands? Not put any own code to the drive?
If you would like that for testing I can build a boot disk image for you. If you can simply make a disk image that GEOS can load using only this "no custom code" device driver, I'd appreciate it. I think these block commands are easy to create. (Although sometimes I am surprised. )
Off: this testing part is always problematic. I usually make a test program for the features I add, but I don't have a collection of programs to check the original code. Unfortunately, this fast-serial part is only interesting for C128, and it would be nice if you didn't have to create your own test programs for these functions. However, I don't know of any programs that originally use these functions. For this reason, any little help is greatly appreciated. Of course, this also raises the question: is it worth doing?
|
|
Posted By
ytm on 2024-10-02 16:03:28
| Re: FlexSD firmware for SD2IEC drives, V1.3.0 fw
Great news!
I have toyed with using burst commands and fast serial for GEOS disk driver. This branch: https://github.com/ytmytm/geos/blob/feature-drv1571burst/drv/drv1571burst.s has 1571 disk driver which loads sectors with U0,0 and saves with U0,2 commands. The only other command used is inquire: U0,4 to check for disk change. The code is shorter. copied almost exactly from 1571 user's guide, but performance was about the same as the original IEC serial protocol.
If you would like that for testing I can build a boot disk image for you.
|
|
Posted By
BSZ on 2024-09-27 16:31:59
| Re: FlexSD firmware for SD2IEC drives, V1.3.0 fw
@siz: Thanks in advance! So far I'm the only one who's tried it, it would be nice to see reports from others. But there is no rush.
I've simplified the website a bit, maybe it's less chaotic. However, even now, this is not good: the information is in too many places. I will also post the basic user information directly on the site. Or I could include it in the downloadable firmware package. I am still thinking about it.
|
|
Posted By
siz on 2024-09-26 12:17:39
| Re: FlexSD firmware for SD2IEC drives, V1.3.0 fw
Great work! I'm going away for the weekend (tomorrow morning) but after that I'll definitely will give it a try. And I'll dig out one of my C128s too. Perhaps on Sunday but You know me: I'm not great at keeping deadlines.
|
|
Posted By
BSZ on 2024-09-25 17:34:36
| FlexSD firmware for SD2IEC drives, V1.3.0 fw
Continuing the previous topic, a new version of the FlexSD firmware has been released, see project's homepage!
The new version is 1.3.0-fspp0, a snapshot of the current state. It's starting to accumulate too many changes, so it was time to make a package.
One new feature of this version may be useful for C128 users: a basic KERNAL's "fast serial" support has been added. I have a slightly strange feeling about this, because I'm not the first person to have done this. Of course, I searched the internet beforehand and found two variations on this. One was a forum thread somewhere, one of the users posted about it, that he had made an implementation. However, the topic was quite old, none of the links worked, so I couldn't see that version. I was lucky to find source code for the another version, but unfortunately it was based on a too old sd2iec version and only partially complete. For these reasons I could not use this version either. However, what they both have in common is that neither of them was included in the "factory" sd2iec source tree.
In its current state, the basic communication and the so-called 'burst commands' LOAD are implemented. These are necessary for basic operation. The additional 'burst commands' are currently not implemented! Most of them can only be used for disk units, here they could work for disk images. These may be added later. (They are ready in the source codes found, perhaps they can be adapted from. But I should definitely find programs to test these 'burst' features.)
So far only I have tried this, I hope it works properly! At the moment it only fits in the firmware of drives with 128K program memory! Anyone who has a machine/drive or knows someone who is interested, please test it!
The other change is that I have started to make my own hardware, which run this firmware, and its additions are included in the source. For now, there is no binary version of this in the package, it will be updated when the final schematic is available (and public).
The new version comes with an updated test suite, which can also be downloaded from the site. Of these, I would highlight the "a-detect" tool: a simple configuration part has been added compared to the previous version, with which the various functions of the SD2IEC drive can be set. Among other things, this (also) enables the fast-serial mode mentioned above. Attention: enable this mode only for C128! If the device is used with more than one type of computer, the 'auto' mode is appropriate.
Again I have written a lot, the point is:
FlexSD 1.3.0-FSPP0 firmware binaries TestCodes 1.3.0 Everything else (source codes, documentation, ...) is available on the project page.
|
|
| |
Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon |