Cirtech Flash Drive 1997/98 for PCW

Started by GeoffB17, 01:03, 01 May 22

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

GeoffB17

I've just seen a reference to such a device.   It is referred to in a publication archived on the web:

PCW Today Winter 97/98

Referred to as 'H Drive', I've found a reference to what seems to be the same system in one of John Elliott's documents, he refers to it as Cirtech Flash Drive.

The item I saw says it was available as 1024k or 2048k capacity, the device connected to the expansion port, and you could copy your boot disks for both CP/M and Locoscript onto this drive and at boot-up you could start the system from either boot options.  The article also suggested that certain data re Loco could be stored there as well, i.e. dictionary and similar look-up, but seemingly not general user files?  No extra data re CP/M??

Does anyone know anything more about this.   The system would have come with some software, it would be VERY interesting to know how the software achieved the boot via the expansion port?

This item was released very late in the life of the PCW, and it may never have been available retail?

Geoff

Gryzor

Extraordinary, hope more info will be available. 

jevicac

Hi GeoffB17, we only had peripheral information on PCWWiki. Habi has been messing around with him and will have more information. I only got information but it is in Spanish.

http://www.habisoft.com/pcwwiki/doku.php?id=es:hardware:perifericos:flashdisk

I have seen that I have several Cirtech disks but I cannot confirm if any belong to the flash drive.

GeoffB17

Hm, I don't read much Spanish, but this is certainly about the same device.

When JonB was creating his uIDE device, he was wondering about the possibility of booting from it, but couldn't find out how it might be done.   This Flash device shows that it IS possible.

However, there are limitations, i.e. the need for certain versions of the system.  Not sure if there are other 'limitations'.   The capacities of the original units are certainly limited by modern standards.

Following on from JonB's notes, I rearranged my PROFILE.SUB so that this file remains on the floppy drive, but everything it loads is from the C: uIDE drive.  Also, there is no need to move any utilities to M: as per the usual recommendations.   Therefore the usual CP/M boot process is MUCH faster anyway.  Yes, it would be better again if the system file could be loaded from a Flash drive,

Still, worth trying to find the software.

Geoff

GeoffB17

If you have 'several Cirtech disks' it would be interesting if you could do a DIR listing of them - I might be able to spot which one might be worth checking further?

Geoff

GeoffB17

Just reading a For Sale item about one of these Flash Dive modules.   The seller seems to be saying that the drive can contain EITHER the boot disk for CP/M, OR that for LocoScript (supported version).  Seems not both.  Other info already noted suggests extra uses while using LS, but no info regarding use under CP/M.

Suggests that this device would be no use to me, or technical interest ONLY.

Geoff

jevicac

Ok, I'll try to find the cirtech disks and create the images and see if they help you. I'll ask if Habisoft has the original disc.

JohnElliott

I've mentioned before that I'd certainly find a Flash Drive clone useful -- something that could bring any PCW to life just by plugging it into the expansion port, without any need to open the case and fix dodgy floppy drives, and without the Gem Drive's requirement for external power and dependence on ageing mechanical spinning platters.

The Spanish article says that the Flash Drive can boot CP/M or LocoScript, by holding down ALT during boot to select the other operating system. That seems reasonable to me, since the Gem drive does the same.

P5ychoFox

I had one of these about five years ago in a lot of 9512s (fitted to the rear of one) and sold it (possibly to Habi). A very impressive thing that booted the 9512 straight to Locoscript (but you could upload any program to boot to). I now have another that has PCW diagnostic programs on and it boots an 8256 straight into this. I was hoping a clone would have been made by now but it may be a difficult task.

JohnElliott

Quote from: P5ychoFox on 17:01, 02 May 22I had one of these about five years ago in a lot of 9512s (fitted to the rear of one) and sold it (possibly to Habi). A very impressive thing that booted the 9512 straight to Locoscript (but you could upload any program to boot to). I now have another that has PCW diagnostic programs on and it boots an 8256 straight into this. I was hoping a clone would have been made by now but it may be a difficult task.
Do you have the software that goes with it? That would be interesting to me even in the absence of physical hardware.

Looking at the pictures online there's not a lot of hardware physically -- the flash chip(s), a 74HCT174, a GAL that presumably handles address decoding, and a switch.

P5ychoFox

I do have a couple of Cirtech disks and will have a go at making a duplicate.

GUNHED

Eventually it shouldn't be hard to clone the device. But a hardware person needs to be found to do that.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)


jamesots

Quote from: JohnElliott on 14:09, 04 May 22@jamesots had something prototyped a few years ago that could boot a PCW from an SD card:


I moved house three years ago and unfortunately my PCW went into storage and hasn't come back out yet, thanks to having other interesting projects such as completely renovating the house. But it will get un-stored at some point and I'll get back onto that project again.

GeoffB17

Update:

P5ycoFox has sent me a disk with the CirTech files on.  Copy passed to JE.

My VERY initial look notes that:

Flash floppy drive is clearly stated as being READ-ONLY.   It is possible to copy NEW files to the drive (using the special FCOPY utility) but you cannot otherwise change/update/delete files on the drive.  So it is FAR from a normal disk drive (things may have changed from 1994 to now though??).  All normal system operations are affected otherwise, so any edit/save/etc operation will need to use the normal floppy drive(s) or M:.

There seem to be ?? regarding the use of SUBMIT.COM, as this usually involves a temporary file.  May need a special version of SUBMIT?

When you run the INSTALL process, you copy the files you need to the flash device, and this can include the files for both CP/M and Loco.   You can specify which one is the default to boot at that time.   If you hold down the SPACE bar at bootup, you can swap to the other system.   If you need to change any of the files on the flash drive, then you need to re-run the complete install process, which wipes everything and starts again.

There is an AUTOBOOT switch on the hardware.   On/Off.   If this is Off then the system boots from the floppy as normal.  I understand that it needs to be Off if you are making any changes to the files on the drive.  So some aspect of the auto-boot process may be on the hardware.

There is an .FID file on the disk I just got, not sure what that does as this can load only after the .EMS file has loaded, so by then the boot process is well advanced already.

There must be some interesting code in the supplied utilities (INSTALL, FCOPY, etc) to allow CP/M to access the Flash drive.  Also a FD.SYS file copied onto the Flash drive.  Maybe somethinf here could allow similar access to more modern flash drives?

More later?

Geoff

JohnElliott

Looking at FDRIVER.FID, here's how I think it works:
* Reading from port xxD8h pages in bank xx of the flash memory in address ranges 00h-7Fh, 100h-17Fh, 200h-27Fh etc. With each bank being 32k this mechanism would allow a flash drive of up to 8Mb.
* The code to read the flash memory therefore has to live in an xx80h-xxFFh range of memory, and as it happens that's exactly how FDRIVER.FID does arrange things.
* Reading from port 0D9h pages the flash memory back out.

I'd guess that when the PCW is started, bank 00 of the flash memory is paged in and acts as the boot ROM. I'd also guess that that's what is to be found in FD.SYS (which I haven't disassembled yet).

GeoffB17

Thanks John, very interesting.

The INSTALL.COM prog seems not to do very much.   Most of the code is text (instructions/messages).  It does make explicit reference to the file FD.SYS, so I think that it puts this file onto the Flash memory, maybe at the place you suggest.  Apart from that, it asks which is the main boot file, and the alternate, but these can be whatever (not just the CP/M and the Loco system files I think) so INSTALL may not copy them at this time.  Maybe THAT needs doing using the FCOPY.COM once the install is done.  So you might copy the CP/M files you need from the usual CP/M startup disk, then the Loco files needed from the Loco startup disk.  The files will be mixed up, but I suppose that this doesn't matter as the drive is R/O so you cannot be doing most 'normal' activities with it.  INSTALL starts by wiping the Flash Drive, I assume that it does some sort of format as well?

Geoff

JohnElliott

#17
I've now looked at FD.SYS a bit. It seems to be laid out like this:
0000: Short jump to boot code at 001Fh
0002: Offset to boot programs table (as on the Gem drive, see https://www.seasip.info/Unix/Joyce/gemdrive.html)
0004: Offset to internal copy of FDRIVER.FID
0006: Offset to splash screen
0008: Offset to internal copy of FDRIVER.FIC (second, slightly different driver for LocoScript 4)
000A: Default operating system (CP/M or LocoScript)
000B: CP/M DPB for the drive
001C: Sector number of first sector of CP/M directory
001E: Checksum byte
001F: Jump to boot code at 0100h
0022-007F: Unused
0080: First stage boot code (when executed it is mapped at 0100h). Copies the PCW's floppy boot code to RAM at 0D000h, and the second-stage boot code to 0E880h.
0100: Second stage boot code (when executed it is at 0E880h).
0700: Boot programs table, used for inserting FDRIVER.FID into a loaded EMS file.
0880: FDRIVER.FID
0C80: Splash screen
4400: FDRIVER.FIC

I said earlier that the design would allow for an 8Mb flash drive. It would, but the utilities (INSTALL, FCOPY etc) that have to write to the Flash can only support the 1Mb and 2Mb configurations. The read code doesn't need to bother about how many physical chips there are or what their capacity is, but the code for erasing and programming the chips does need to know this. Currently it's only aware of the two configurations: 1Mb in one chip, or 2Mb in two chips.

JohnElliott

One other important point (if anyone was building a clone): The data lines are reversed on the first Flash chip. This doesn't affect reading and writing of data, but the command and status bytes are reversed. So where the datasheet says you send command 80h to erase the chip, the Flash Drive utilities send 80h to the second chip, but 01h to the first chip.

GUNHED

Is that some kind of hardware-clone-protection? Does it have any reason?
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

JohnElliott

I think it's because the two flash chips are on opposite sides of the PCB.

JohnElliott

Quote from: GeoffB17 on 17:40, 27 May 22Flash floppy drive is clearly stated as being READ-ONLY.  It is possible to copy NEW files to the drive (using the special FCOPY utility) but you cannot otherwise change/update/delete files on the drive.  So it is FAR from a normal disk drive (things may have changed from 1994 to now though??).  All normal system operations are affected otherwise, so any edit/save/etc operation will need to use the normal floppy drive(s) or M:.

There seem to be ?? regarding the use of SUBMIT.COM, as this usually involves a temporary file.  May need a special version of SUBMIT?
The way it seems to work is that when writing to the Flash, it's possible to change a 1 to a 0 fairly easily. But to change back to a 1, you have to erase an entire 64k block. So:
  • INSTALL erases the entire drive (and writes the header / boot block at the beginning) - everything is filled with 0FFh bytes.
  • FCOPY adds new files to the drive - areas of 0FFh bytes are overwritten with the uploaded files.
  • DELETE blanks out a filename from the directory by overwriting the entry with 00h bytes. It would not be possible to delete a file conventionally because that would involve changing the first byte of the directory entry from 00h to 0E5h (ie, changing 0 bits to 1 bits).
All operations performed by FCOPY and DELETE change 1 bits to 0 bits, not the other way round.

The SUBMIT issue you've mentioned isn't a problem, because under CP/M BIOSes 1.9 / 2.9 and later, SUBMIT writes its temporary file to drive M: rather than the startup disc.
The utilities also include a modified DISCKIT, which tries to swap drives A: and C: at the start and swap them back afterward.
The messages in FCOPY say that the Flash Drive requires CP/M 1.15 / 2.15, or LocoScript 3.06+. I can't immediately lay my hands on a running copy of LocoScript 3.06 to see how it differs from 3.04, but I'm guessing it's a modification to stop it trying to save its settings to a read-only drive.

https://www.seasip.info/Unix/Joyce/flashdrive.html contains my writeup of the drive functionality.

My thanks to all the participants in this thread. While we're here, does anyone happen to have the driver software for a Cirtech Diamond, Timatic Winchester Expansion Box, ACC Hard Disc or Vortex System 2000? ;D

jevicac

Hello. I've been looking for cirtech disks, surely there will be some more. I found these two in case you want to dump them. Cheers

Powered by SMFPacks Menu Editor Mod