re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
> Has anybody done this before? Any pointers? I'm very familiar with the RX50 on the Rainbow. I wrote the "copy protected disk copier" for it in that bygone era. AR!! The Rainbow ran several operating systems, CPM, CPM/86, MSDOS 2, and MSDOS 3. The Rainbow had both a z80 cpu and an 8088 cpu with the lowest 2k ram shared between the z80 and the 8088. The z80 controlled the floppy drive via a WD 1793 chip. I'd actually recommend trying to use kermit to get the data out via the serial port first :-) There is a rainbow kermit out there. I remember being able to transfer files between the Rainbow and the IBM PC using a lower density single sided format - like 40 tracks. This was in MSDOS world only and not CPM. I'd bet there are utilities on simtel20 that would read a CPM format floppy in 40 track format. I formatted them on the IBM PC in low density mode and then wrote data to them on the Rainbow. There is also a version of DECNET for the Rainbow that works via the serial port. If you can find someone with a PDP-11 or a MicroVAX unix system somewhere you might be able to just dd them. I still have my Rainbow and I have to use an air blower to get rid of dust in order to get the floppies to even read at all anymore. My apple ][ floppies still read solid with no air blower. Good Luck! Mark Hittinger Earthlink [EMAIL PROTECTED] To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
Mark Hittinger wrote: > > MSDOS world only and not CPM. I'd bet there are utilities on simtel20 that > would read a CPM format floppy in 40 track format. I formatted them on the A quick search returned 10 matches with this one looking like what you want. http://www.simtel.net/pub/pd/44392.shtml Jim -- /"\ ASCII Ribbon Campaign . \ / - NO HTML/RTF in e-mail . X - NO Word docs in e-mail . / \ - [EMAIL PROTECTED] http://www.FreeBSD.org The Power to Serve [EMAIL PROTECTED] http://www.TheHousleys.net - It's always a long day, 86400 doesn't fit into a short. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
In message <[EMAIL PROTECTED]> Mark Hittinger writes: : I'd actually recommend trying to use kermit to get the data out via the : serial port first :-) There is a rainbow kermit out there. Not an option. I have about 100 floppies to transfer. I know I could set this up, but 9600 baud is just too slow. : I remember being able to transfer files between the Rainbow and the IBM PC : using a lower density single sided format - like 40 tracks. This was in : MSDOS world only and not CPM. I'd bet there are utilities on simtel20 that : would read a CPM format floppy in 40 track format. I formatted them on the : IBM PC in low density mode and then wrote data to them on the Rainbow. Well, I could use the IMPDRIVE driver that I wrote for the 720k low density floppy and transfer things that way. I don't want to do that either. While less painful than serial, it is still painful. There was a driver for DOS that would do this, but I don't have DOS on my machines. This tells me that the 1.2M drives will read them w/o a problem. Writing I know is a problem due to different head technologies used between them. : If you can find someone with a PDP-11 or a MicroVAX unix system somewhere : you might be able to just dd them. I do have the options of connection the hardware up to the floppy controller in my desktop too :-). I have both the RX-50 drives, as well as a pair of TEAC FD55 drives (that do the same data rate as the RX-50's, with the same heads, but with only one drive per spindle and two read heads instead of one). Trouble is, it looks like our floppy driver doesn't grok single sided 400k disks :-(. That's what I'm looking to hack and advise on how to hack. : I still have my Rainbow and I have to use an air blower to get rid of dust : in order to get the floppies to even read at all anymore. My apple ][ : floppies still read solid with no air blower. I had to use the air blower as well, but most of the disks read after that :-). Warner To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
In message <[EMAIL PROTECTED]> James Housley writes: : Mark Hittinger wrote: : > : > MSDOS world only and not CPM. I'd bet there are utilities on simtel20 that : > would read a CPM format floppy in 40 track format. I formatted them on the : : A quick search returned 10 matches with this one looking like what you : want. : : http://www.simtel.net/pub/pd/44392.shtml Right, but none of them run under FreeBSD. I have at least two or three of these programs already. My problem is getting the bits off the disk on a FreeBSD box. Warner To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
In message <[EMAIL PROTECTED]>, Warner Losh writ es: >I do have the options of connection the hardware up to the floppy >controller in my desktop too :-). I have both the RX-50 drives, as >well as a pair of TEAC FD55 drives (that do the same data rate as the >RX-50's, with the same heads, but with only one drive per spindle and >two read heads instead of one). Trouble is, it looks like our floppy >driver doesn't grok single sided 400k disks :-(. That's what I'm >looking to hack and advise on how to hack. The fdcontrol program allows most of the paramaters to be set to match the disks, but unfortunately it cannot set the sector offset. MSDOS disks sectors are numbered starting at 1 (the sector offset is 1), but it was common practice with old 8-bit CP/M-type systems to choose sector numbers starting at 0x41, 0x81 or other values. I was attempting something similar last summer, but with disks from an Amstrad CPC computer. I used the following patch to the fd driver and fdcontrol to allow the sector offset to be specified along with the other parameters. It also allows a head offset to be specified, which is useful for reading the second side of double-sided disks that were written as single-sided disks with a hardware switch on the side-select line (i.e the head number written to disk does not match the hardware head number). The patch below is against RELENG_4 around Jan 2000, so it will need updating. I'm also not sure what sector offset the DEC Rainbow used - I think I have a Rainbow boot disk here, but I'd have to dig out a 5.25 floppy drive to check :-) Once you get the settings right, you can just dd the disk to an image file. Ian Index: sys/i386/include/ioctl_fd.h === RCS file: /dump/FreeBSD-CVS/src/sys/i386/include/Attic/ioctl_fd.h,v retrieving revision 1.13 diff -u -r1.13 ioctl_fd.h --- sys/i386/include/ioctl_fd.h 1999/12/29 04:33:02 1.13 +++ sys/i386/include/ioctl_fd.h 2001/06/10 15:36:24 @@ -86,6 +86,7 @@ struct fd_type { int sectrac;/* sectors per track */ int secsize;/* size code for sectors */ + int secoff; /* starting sector number*/ int datalen;/* data len when secsize = 0 */ int gap;/* gap len between sectors */ int tracks; /* total num of tracks */ @@ -95,6 +96,7 @@ int heads; /* number of heads */ int f_gap; /* format gap len*/ int f_inter;/* format interleave factor */ + int headoff; }; #define FD_FORM _IOW('F', 61, struct fd_formb) /* format a track */ Index: sys/isa/fd.c === RCS file: /dump/FreeBSD-CVS/src/sys/isa/fd.c,v retrieving revision 1.176 diff -u -r1.176 fd.c --- sys/isa/fd.c2000/01/08 09:33:06 1.176 +++ sys/isa/fd.c2001/06/10 15:52:19 @@ -125,24 +125,24 @@ static struct fd_type fd_types[NUMTYPES] = { -{ 21,2,0xFF,0x04,82,3444,1,FDC_500KBPS,2,0x0C,2 }, /* 1.72M in HD 3.5in */ -{ 18,2,0xFF,0x1B,82,2952,1,FDC_500KBPS,2,0x6C,1 }, /* 1.48M in HD 3.5in */ -{ 18,2,0xFF,0x1B,80,2880,1,FDC_500KBPS,2,0x6C,1 }, /* 1.44M in HD 3.5in */ -{ 15,2,0xFF,0x1B,80,2400,1,FDC_500KBPS,2,0x54,1 }, /* 1.2M in HD 5.25/3.5 */ -{ 10,2,0xFF,0x10,82,1640,1,FDC_250KBPS,2,0x2E,1 }, /* 820K in HD 3.5in */ -{ 10,2,0xFF,0x10,80,1600,1,FDC_250KBPS,2,0x2E,1 }, /* 800K in HD 3.5in */ -{ 9,2,0xFF,0x20,80,1440,1,FDC_250KBPS,2,0x50,1 }, /* 720K in HD 3.5in */ -{ 9,2,0xFF,0x2A,40, 720,1,FDC_250KBPS,2,0x50,1 }, /* 360K in DD 5.25in */ -{ 8,2,0xFF,0x2A,80,1280,1,FDC_250KBPS,2,0x50,1 }, /* 640K in DD 5.25in */ -{ 8,3,0xFF,0x35,77,1232,1,FDC_500KBPS,2,0x74,1 }, /* 1.23M in HD 5.25in */ - -{ 18,2,0xFF,0x02,82,2952,1,FDC_500KBPS,2,0x02,2 }, /* 1.48M in HD 5.25in */ -{ 18,2,0xFF,0x02,80,2880,1,FDC_500KBPS,2,0x02,2 }, /* 1.44M in HD 5.25in */ -{ 10,2,0xFF,0x10,82,1640,1,FDC_300KBPS,2,0x2E,1 }, /* 820K in HD 5.25in */ -{ 10,2,0xFF,0x10,80,1600,1,FDC_300KBPS,2,0x2E,1 }, /* 800K in HD 5.25in */ -{ 9,2,0xFF,0x20,80,1440,1,FDC_300KBPS,2,0x50,1 }, /* 720K in HD 5.25in */ -{ 9,2,0xFF,0x23,40, 720,2,FDC_300KBPS,2,0x50,1 }, /* 360K in HD 5.25in */ -{ 8,2,0xFF,0x2A,80,1280,1,FDC_300KBPS,2,0x50,1 }, /* 640K in HD 5.25in */ +{ 21,2,1,0xFF,0x04,82,3444,1,FDC_500KBPS,2,0x0C,2 }, /* 1.72M in HD 3.5in */ +{ 18,2,1,0xFF,0x1B,82,2952,1,FDC_500KBPS,2,0x6C,1 }, /* 1.48M in HD 3.5in */ +{ 18,2,1,0xFF,0x1B,80,2880,1,FDC_500KBPS,2,0x6C,1 }, /* 1.44M in HD 3.5in */ +{ 15,2,1,0xFF,0x1B,80,2400,1,FDC_500KBPS,2,0x54,1 }, /* 1.2M in HD 5.25/3.5 */ +{ 10,2,1,0xFF,0x10,82,1640,1,FDC_250KBPS,2,0x2E,1 }, /* 820K in HD 3.5in */ +{ 10,2,1,0xFF,0x10,80,1600,1,FDC_250KBPS,2,0x2E,1 }, /* 800K in HD 3.5in */ +{ 9,2,1,0xFF,0x20,80,1440,1,FDC_250KBPS,2,0x50,1 }, /*
Re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
[[ Lots of details on how to do this deed, or at least the format of the Rainbow disk, follow. Hit 'n' or 'd' if you don't care ]] In message <[EMAIL PROTECTED]> Ian Dowse writes: : The fdcontrol program allows most of the paramaters to be set to : match the disks, but unfortunately it cannot set the sector offset. : MSDOS disks sectors are numbered starting at 1 (the sector offset : is 1), but it was common practice with old 8-bit CP/M-type systems : to choose sector numbers starting at 0x41, 0x81 or other values. That's OK. The Rainbow disks have sectors numbered 1 through 10, for both CP/M disks and MS-DOS disks. This makes things easier to cope with. : The patch below is against RELENG_4 around Jan 2000, so it will : need updating. I'm also not sure what sector offset the DEC Rainbow : used - I think I have a Rainbow boot disk here, but I'd have to : dig out a 5.25 floppy drive to check :-) Once you get the settings : right, you can just dd the disk to an image file. Well, here's the technical data I could find on the rainbow's disks (boy, I'm glad I got the technical docs set with the unit, it was over my head for the most part when I was 16, but it is perfectly readable to me now). I'm not sure what to put for the "gap" "trans" or "f_gap" parameters, so I'll include a little more info than most people would generally want. However, it may prove useful to other people trying to read different formats in the future. so here goes: -- 1 head (although I have drives with 2 heads) 10 sectors per track 80 tracks 250kB/s transfer rate 300rpm Track Format: Description No BytesContents Pre ID Gap 47 0x4e ID Fields Sync 8 0 Mark 3 0xa1 Header IDAM 1 FE Track Address 1 Track number (0-0x4f) Side Number 1 0 Sector Address 1 Sector (1-10) Bytes/sector code 1 0x2 CRC 1 Calc CRC [See note 1] Pose ID Gap 22 0x4e Data Fields Sync 12 0 Mark 3 0xa1 Data DAM 1 0xfb Data512 CRC 2 CRC over data Post Amble1 0 Pre_index gap 70 [2] 0x4e Note 1: I think the length here should be 2 rather than 1 based on other text Note 2: "This field is written once per track until an index field is encoutered" Whatever that means. -- Finally, I have the actual disk drives (both the RX-50 and the TEAC FD-55 which is a two sided version of the RX-50) that I could connect for this project. Any thumbnail about how to add a new type of drive to fd.c? What parameters do I need for it? Finally, I have a few minor cleanups of my own for the floppy driver. Mostly removing the last gasping vestiges of the ft driver that lived in fd.c. I'd also like to move isa/fd.c into dev/fd/fd{,_isa,_pccard}.c so we can eliminate one of the last remaining NCARD variable useages. Anybody special I should talk to before doing this? My guess is Joerg. Warner To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
In message <[EMAIL PROTECTED]>, Warner Losh writ es: > >That's OK. The Rainbow disks have sectors numbered 1 through 10, for >both CP/M disks and MS-DOS disks. This makes things easier to cope >with. Great, then no driver changes are required. I've just tried it; I found a normal PC 5.25" drive, and I was able to read the DEC Rainbow boot disk I have here by doing # fdcontrol /dev/fd1 sectrac? []: 10 secsize? [2]: datalen? [0xff]: gap? [0x1b]: tracks? [80]: size? []: 800 steptrac? [1]: trans? []: 1 heads? []: 1 f_gap? [0x54]: f_inter? [1]: # hd /dev/fd1 |less Note: The `trans' values come from the 'FDC_???KBPS' #defines in fdreg.h. A value of 1 is 'FDC_300KBPS' which is different to the specs you quoted, but I think the PC standard 5.25" drive runs at 360rpm rather than 300. For a 300rpm drive you probably want a trans value of 2 (250kbps). I just left the `gap' and `f_gap' values at their defaults; I don't know the exact details of these fields, but I seem to remember that they are only used during writing and formatting, so you can ignore them for reading. >for this project. Any thumbnail about how to add a new type of drive >to fd.c? What parameters do I need for it? You could add an entry to the fd_types array in fd.c, but that requires linking the entry into a device node, so it's probably easier to just use fdcontrol. Ian To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message
Re: Strange request: Reading RX-50 (aka DEC Rainbow 100) disks
Warner Losh wrote: > > I have the need to read a whole pile of DEC Rainbow 100 floppies. I > can do it on the DEC Rainbow, but that's a huge pita since it isn't > networked. I'd like to either connect a RX-50 drive to my machine, or > use a 1.2M 5.25" floppy drive that I can scrounge easily enough to do > the deed. > > 80 tracks, 10 spt, 1 side. 400k in size. I think it uses either > 250kb/s or 300kb/s for the data transfer rate (same as the 3.5" low > density drives, if my memory isn't going south). > > Has anybody done this before? Any pointers? I did this all the time on Xenix, using "dd" and the single sided device node. See fdcontrol. -- Terry To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message