QLSD driver testers sought

Nagging hardware related question? Post here!
User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

QLSD driver testers sought

Post by mk79 »

Update: lastest driver at https://www.kilgus.net/soft/qlsd107_bin.zip

I've got a new QLSD driver release which needs some testing, so if anybody is willing to help there is a ROM and RAM version at

https://www.kilgus.net/soft/qlsd105_bin.zip

I'm mainly interested in making sure it still works as stable as
before. This can be done by testing the RAM version so no need to burn a new ROM at this point.

There are 4 changes:

1. It solves a small problem with the card auto-detection when more than one card is used at the same time. Probably few people run into this with existing single slot QLSD hardware ;)

2. It adds some sort of API so 3rd party software can call into the driver to have raw access to the card sectors. In case anybody is interested there is some demo code at

https://www.kilgus.net/soft/qlsd_demo.zip

3. The "QLSD is busy" flag moved into the system variables so several drivers or other software can share QLSD more easily.

4. It checks the version of the hardware and outputs it on startup. For this to work I added a new register to my hardware that encodes the version and variant. The original hardware is detected simply by not having this register.

When the feedback is good I can go forward with releasing the new hardware.

All the best, Marcel
Last edited by mk79 on Mon Jul 30, 2018 11:04 pm, edited 1 time in total.


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: QLSD driver testers sought

Post by Peter »

Hi Marcel,

I'd like to try, but at the moment very short of time. Could you provide a complete ROM image with Minerva ready for burning? (IIRC you had a patched German Minerva which would be great.)

Then I could give it half an hour on GC/SGC if that helps a little.

Peter


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: QLSD driver testers sought

Post by mk79 »

Sure, just download the same file again, I put the Minerva versions in there.

Cheers, Marcel


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: QLSD driver testers sought

Post by Peter »

Thank you very much, I saw you also added a british Minerva version, perfect. :D
Unfortunately my weekend timeslot is over, not 100% sure I can do it this week. Hope there will be more testers. Great job anyway!


martyn_hill
Aurora
Posts: 909
Joined: Sat Oct 25, 2014 9:53 am

Re: QLSD driver testers sought

Post by martyn_hill »

Hi Marcel!

I haven't yet tested exhaustively, but using the Minerva+QLSD v1.05 image burnt to EPROM in my memory expanded (but otherwise bare) QL:

The legacy SD HW is detected as such (V1).
The boot file on my SD card/WIN image loads and runs as expected.

I'll report back again after I play some more next week.

m.


martyn_hill
Aurora
Posts: 909
Joined: Sat Oct 25, 2014 9:53 am

Re: QLSD driver testers sought

Post by martyn_hill »

Hi again Marcel

Been playing a bit more with the updated QLSD WIN driver.

No problems thus far, but perhaps you could help me with something...

I'm planning to test more aggressively by mass-copying between two 16MB WIN images on the same card - "QXL.WIN" and "SDC2.WIN", but can't mount the second WIN image using 'WIN_DRIVE'. The initial QXL.WIN image is mounted automatically & successfully at boot-time.

(The images were prepared in QPC and copied - one at a time - to a freshly formatted 8GB SD card.)

Specifically, whilst the documentation describes the syntax as WIN_DRIVE drive, file_name$ - reflected also in Wolfgang's original src file (qlsd_basic_asm) - on my QL providing anything less than 3 parameters returns a 'bad parameter' error.

I can seem to re-mount the first image with WIN_DRIVE 1,1,"QXL.WIN" (WIN_CHECK 1 and a subsequent DIR 'sdc1_' show that its mounted OK (I use WIN_USE 'sdc' in my boot-file), but none of my parameter combinations using 2 or 3 params allows a successful mounting of anything other than the first WIN image file.

I've tested the second WIN image file by renaming/switching the file-names (on a PC) of the two image files in-place and remounting the card after placing back in the QL (and issuing card_init) - WIN_DRIVE 1,1,"QXL.WIN" mounts the (blank) second image OK - both WIN_CHECK and DIR confirm.

Can multiple WIN image files be mounted simultaneously? If so, what could be causing WIN_DRIVE to behave this way?

I never tried this with the original driver, so can't be sure if its a regression, was always present, or something screwy with my QL...

M.


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: QLSD driver testers sought

Post by mk79 »

Damn, somehow forgot to subscribe to the topic, so sorry that my answer is a little late.
martyn_hill wrote:Hi again Marcel

Been playing a bit more with the updated QLSD WIN driver.
Thanks!
No problems thus far, but perhaps you could help me with something...

I'm planning to test more aggressively by mass-copying between two 16MB WIN images on the same card - "QXL.WIN" and "SDC2.WIN", but can't mount the second WIN image using 'WIN_DRIVE'. The initial QXL.WIN image is mounted automatically & successfully at boot-time.
The parameters are "WIN_FORMAT drive,card,name". So in your case that should be WIN_DRIVE 2,1,"SDC2.WIN". I have just tried it here and it seems to work.

Cheers, Marcel


martyn_hill
Aurora
Posts: 909
Joined: Sat Oct 25, 2014 9:53 am

Re: QLSD driver testers sought

Post by martyn_hill »

Hi Marcel!

Thanks for that.

OK, so now with your confirmation of the correct (new/extended?) syntax for the WIN_DRIVE command, I see where I was going wrong:

I was using WIN_CHECK <drive_num> as a means to determine whether the last WIN_DRIVE <drive_num>,... mount-attempt was successful.

Instead, using a simple DIR 'sdc2_' to verify the second mounting works as expected (following a WIN_DRIVE 2,1,'SDC2.WIN'), so I can now successfully mount additional WIN image files from the same SD card/partition in my single/v1 SD Drive. Or rather, I always could, but didn't realise!

So that leaves me wondering about the correct syntax for WIN_CHECK - providing '1' returns OK (no error message), '2' or '3' produces the 'bad or changed medium' error, and '4' 'bad parameter'. This pattern repeats for 5 through 8.

Another curiosity is that DIR 'sdcX_' where 'X' is 5 through 8 all produce the same listing as 'sdc1_' - is this to be expected? Does it relate to my having 4 WIN image files on the SD Card (currently only mounting the first 2), or an expected and reasonable limitation of 4 primary FAT partitions (I only have 1 partition on this card)?

EDIT: I see the duplicate DIR 'sdcX_' listings where X is 4 through 8. Not 5 through 8... None of the other (now, an additional 2 WIN images mounted) exhibit this curious, though harmless behaviour.

Anyway, bulk-copying between the two mounted WIN image files works OK - and swiftly. Further results to follow as I play around some more...

EDIT: I'm impressed at the performance of copying between MDV and SDC/WIN and, curiously, find copying back TO MDV actually completes faster than copying FROM MDV - at least on my rig...

M.


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: QLSD driver testers sought

Post by mk79 »

martyn_hill wrote:I was using WIN_CHECK <drive_num> as a means to determine whether the last WIN_DRIVE <drive_num>,... mount-attempt was successful.
Well, WIN_CHECK does more than that, it checks if the FAT of the image file is contiguous on disk. It might very well be that your other images are fragmented and thus should not be used in this state. What happens if WIN_CHECK 5? That should (as explained below) check your SDC1 image and as that checked out fine when you issued WIN_CHECK 1 it should return without an error, too. If that is the case WIN_CHECK seems to work fine and you need to backup your image files, re-format the SD and copy them over again as they seem to be fragmented.
Another curiosity is that DIR 'sdcX_' where 'X' is 5 through 8 all produce the same listing as 'sdc1_' - is this to be expected?
Yes, all default to the same image name "QXL.WIN" and WIN1 and 4..8 default to card 1, so they will access the same image file. WIN2 defaults to card 2 and WIN3 to card 3 (but then I'm probably the only person who ever had a QL_SD with 3 card slots).
Does it relate to my having 4 WIN image files on the SD Card (currently only mounting the first 2), or an expected and reasonable limitation of 4 primary FAT partitions (I only have 1 partition on this card)?
No, doesn't have anything to do with that. On all Windows systems other than the very latest Windows 10 only 1 partition per SD card is supported anyway.

Cheers, Marcel


martyn_hill
Aurora
Posts: 909
Joined: Sat Oct 25, 2014 9:53 am

Re: QLSD driver testers sought

Post by martyn_hill »

Thanks Marcel!
mk79 wrote: If that is the case WIN_CHECK seems to work fine and you need to backup your image files, re-format the SD and copy them over again as they seem to be fragmented.
I was careful to copy single WIN files across to the SD card one at a time following a fresh format, but will try this step again - possibly unmounting/remounting the card in between each copy (knowing how WIndows loves to cache writes...)

mk79 wrote:Yes, all default to the same image name "QXL.WIN" and WIN1 and 4..8 default to card 1, so they will access the same image file.
That explains it! Thank you.

Might be time for a documentation update :-)

As far as further v1.05 driver testing goes, do you have any other specific activities in mind that are most likely to uncover residual bugs or strange edge-case behaviour? I'm pretty confident from what I've tested so far that this driver is at least as reliable as WL's original (itself, seemingly more stable than when QubIDE images were used.)

M.


Post Reply