Re: R: R: Floppy disk: one drive per face

2020-11-06 Thread Fred Cisin via cctalk

On Fri, 6 Nov 2020, Enrico email.it via cctalk wrote:

First of all I would like to thank you all for every suggestion that comes
from so much experience. I only know my Ferguson bigboard 1 pretty well
The z80 based machine was called GENERAL PROCESSOR Model T year 1981.
You can see it here: https://www.vintagesbc.it/?page_id=877 and the cards it
was equipped with here: https://www.vintagesbc.it/?page_id=879 even if it is
old information because I, together with a competent hardware technician and
another enthusiast who has already written an emulator HERE:
https://nippur72.github.io/gpmodelt-emu/ (you have to press CR to start then
BD and enter ...)
and the emulator video here:
https://www.youtube.com/watch?v=cRmmUYkaDxs&feature=youtu.be we are
proceeding to derive electrical schematics, save firmware, software, and try
to reconstruct and document everything.
You have to think that they used a WD1791 which has an inverted data bus and
in the firmware they use CPL instruction to invert it again so on the disk
the CP / M  (CCP + BDOS + bios) is written all INVERTed.
Based on the firmware on eprom configuration it could manage:
- 2 drives 8 "(128x26x77) or 5" (128x18 (maybe 16) x40) all in FM and seen
as A, b, c, d
- 1 8 "DSDD single B unit and 1 HD 10MB Winchester drive (divided into 2
halves A and C)
At the beginning the engineers made ibm 3740 in side A. Only after they
passed to make a drive double face so we think they didn't change things
also because it seems to be possible to boot from both side A and side B and
we expect the side B of drive A it would in IBM 3740 format.
We noticed that the sectors always start from ZERO and not from 1 so it is
interesting what you say: ?you really should try unplugging the heads of the
drive and swapping them. That will put "side A / 0" on the second / B side
of the disk.! "


You did an excellent job of answering the questions!

The NAME probably doesn't matter, but it's always good to include, in case 
anybody here might possibly have previously dealt with it.


With a WD179x, it is a little surprising that they didn't use MFM ("double 
density").


On the other hand, 8" SSSD is "THE STANDARD", so must be supported, and/or 
if earlier models had used the WD1771 FDC, this could be a legacy format. 
The extreme standardization of CP/M 8" SSSD is another reason to justify 
the replication onto second side, instead of changing the format.  I once 
pleaded with Gary Kildall to officially declare a 5.25" secondary disk 
format standard.  His reply was, "THE STANDARD is 8 inch Single Sided 
Sigle Density."; it was understandable that he would not tolerate creation 
of a "secondary standard".   Although, we ended up with about 2500 
different microcomputer disk formats, due to the lack of standards for 8" 
DSSD, 8" SSDD, 8" DSDD, 5.25" SSSD, 5.25" DSSD, 5.25" SSDD, 5.25" DSDD.
(MOST of which could have been prevented with an official proclamation 
from DRI.)



Swapping the head cables might be a simple way around it, IFF the second 
side is formatted exactly the same as the first.  One obvious possible 
difference is the head number field in the sector headers.  If EXACTLY the 
same, then both would have 0 in that field.  BUT, it could have 1 on the 
second side (which will make it easier to read with an NEC chip).  And, 
the WD179x controllers didn't really care much about that field, so it 
could be ANYTHING, including wildly wrong numbers.  In most cases, the WD 
chip wouldn't even notice if that field had the wrong value, but the NEC 
chip needs to know what value to expect and look for.


If the imaging that included the second side was done successfully with 
IMD, then that implies a 1 in the head number field on the second side.
Not insurmountable, but it means that just swapping the heads will still 
require some special software.
If the imaging that included the second side was done successfully with 
IMD, then consider the possibility of either doing the file transfers from 
those images, or writing some minor software to split those images into 
two separate single sided images.


The inverted data isn't a serious problem, although it is inconvenient 
when looking at the data to see whether it is successful.  But, it is easy 
to work around.


Another possible complication, if you are trying to do the transfer on a 
PC is that the WD179x controllers could start the beginning of a track 
sooner after the index pulse than the PC NEC765 controllers can handle. 
That is usually not too hard to work around, but is something to watch 
for, particularly if you get failures to read the first sector of each 
track.


Not all NEC floppy controllers can do FM and/or 128 byte sectors.  Dave 
Dunfield has created some test routines for checking that.



--
Grumpy Ol' Fred ci...@xenosoft.com


R: R: Floppy disk: one drive per face

2020-11-06 Thread Enrico email.it via cctalk
First of all I would like to thank you all for every suggestion that comes
from so much experience. I only know my Ferguson bigboard 1 pretty well

The z80 based machine was called GENERAL PROCESSOR Model T year 1981.
You can see it here: https://www.vintagesbc.it/?page_id=877 and the cards it
was equipped with here: https://www.vintagesbc.it/?page_id=879 even if it is
old information because I, together with a competent hardware technician and
another enthusiast who has already written an emulator HERE:
https://nippur72.github.io/gpmodelt-emu/ (you have to press CR to start then
BD and enter ...)
and the emulator video here:
https://www.youtube.com/watch?v=cRmmUYkaDxs&feature=youtu.be we are
proceeding to derive electrical schematics, save firmware, software, and try
to reconstruct and document everything.
You have to think that they used a WD1791 which has an inverted data bus and
in the firmware they use CPL instruction to invert it again so on the disk
the CP / M  (CCP + BDOS + bios) is written all INVERTed.

Based on the firmware on eprom configuration it could manage:
- 2 drives 8 "(128x26x77) or 5" (128x18 (maybe 16) x40) all in FM and seen
as A, b, c, d
- 1 8 "DSDD single B unit and 1 HD 10MB Winchester drive (divided into 2
halves A and C)

At the beginning the engineers made ibm 3740 in side A. Only after they
passed to make a drive double face so we think they didn't change things
also because it seems to be possible to boot from both side A and side B and
we expect the side B of drive A it would in IBM 3740 format.

We noticed that the sectors always start from ZERO and not from 1 so it is
interesting what you say: “you really should try unplugging the heads of the
drive and swapping them. That will put "side A / 0" on the second / B side
of the disk.! "

Enrico


-Messaggio originale-
Da: cctalk [mailto:cctalk-boun...@classiccmp.org] Per conto di Fred Cisin
via cctalk
Inviato: venerdì 6 novembre 2020 20:41
A: General Discussion: On-Topic and Off-Topic Posts
Oggetto: Re: R: Floppy disk: one drive per face

On Fri, 6 Nov 2020, Enrico email.it via cctalk wrote:
> We are trying to read some floppy disk used on a 1981 Italian Z80 
> machine with CP / M.
> We saved an image with IMD and we know that the geometry of face A is
> IBM   3740 26x128x77 tracks.
> By inserting this data into the 22DISK definition file we can
> successfully extract the CP / M files from A side.

> So this for to read 1st face A:
> BEGIN MUP1  Mupid Seite 1 - SSSD 96 tpi 5.25"
> DENSITY FM ,LOW
> CYLINDERS 80
> SIDES 1
> SECTORS 10,256
> SIDE1 0 0,2,4,6,8,1,3,5,7,9
> BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
> END
> And this for to read the other side B:
> BEGIN MUP2  Mupid Seite 2 - SSSD 96 tpi 5.25"
> DENSITY FM ,LOW
> CYLINDERS 80
> SIDES 2
> SECTORS 10,256
> SIDE2 0 0,2,4,6,8,1,3,5,7,9
> SIDE1 0 0,2,4,6,8,1,3,5,7,9
> ORDER CYLINDERS
> BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
> END
> Right?

WRITE PROTECT ALL OF THOSE DISKS, BEFORE YOU START!

Can you tell us the NAME of the machine?
(Unless the NAME is "1981 Italian Z80")


WHAT SIZE disk is it?

Is it 26 128 byte sectors, or
is it 10 256 byte sectors?
35, 40, 70, 77, or 80 cylinders/tracks?

What kind of drive?
3"? 3.25"? 3.5"?

((8" 26 * 128 * 77) is not the same as (5.25" 10 * 256 * 80))


Yes, a 5.25" SSSD disk CAN hold 18 128 byte sector per track, but you 
might have to squeeze the [inter-sector] gaps a little, so 16 may be a 
more conservative choice.


In the sector headers, . . .
On the second side, is the "HEAD NUMBER" field, in the C/H/R/N sector 
headers,  0? or 1?
If 0, then you really should try unplugging the heads of the drive and 
swapping them.  That will put "side A/0" on the second/B side of the 
disk.

If the "HEAD NUMBER" field, in the C/H/R/N sector headers, is 1
Then you are best off doing as Chuck suggested, and LYING to the transfer 
program to tell it that it is a format that goes UP the first side, then 
retracts to track 0 and then goes UP the second side, (there were 
numerous formats that did that) but that you want the transfer program to 
IGNORE the first half of each disk ("side A").  Ignoring the first half in 
that case can be done on a CP/M disk by saying that the number of 
"RESERVED TRACKS" (system tracks to be ignored for data transfer) includes 
the entire first side, and the first few of the second side.


If you can image the disk with a DOCUMENTED image structure, then 
consider writing some trivial code to split the image, to give you 
separate images of the two sides, and then try to read the files from 
each of those, as if they were two single sided drives.
Or, write a disk copy program to read the second side, and copy it to the 
first side of a scratch disk.


BTW, the "each side is a separate drive" patches for PC-DOS 1.00 were 8 
512 byte sectors on each side, with 40 tracks, so those would not help.


Yes, we're all bozos on this bus.  ("Firesign Theater" fourth album)
But, when it co

Re: R: Floppy disk: one drive per face

2020-11-06 Thread Chuck Guzis via cctalk
On 11/6/20 11:41 AM, Fred Cisin via cctalk wrote:

> Yes, we're all bozos on this bus.  ("Firesign Theater" fourth album)
> But, when it comes to disk formats,
> none of the rest of us bozos can compare to Chuck.

I can claim size 13 feet, so I'm pretty much on the way to being a real
Bozo.  Perhaps my mistake with 22Disk was not putting a line in that
said "Me fecit Carolus Guzis  Anno MCMLXXXVII" or some such.

> BTW, in cultures that frown on stealing sheep, that is sometimes
> expressed as "teaching grandma to suck eggs".

That's the way I've always heard the expression, but I never asked
either of my grandmothers if they could suck eggs.  Never occurred to me
to do so.

--Chuck



Re: R: Floppy disk: one drive per face

2020-11-06 Thread Fred Cisin via cctalk

On Fri, 6 Nov 2020, Enrico email.it via cctalk wrote:
We are trying to read some floppy disk used on a 1981 Italian Z80 
machine with CP / M.

We saved an image with IMD and we know that the geometry of face A is
IBM   3740 26x128x77 tracks.
By inserting this data into the 22DISK definition file we can
successfully extract the CP / M files from A side.



So this for to read 1st face A:
BEGIN MUP1  Mupid Seite 1 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 1
SECTORS 10,256
SIDE1 0 0,2,4,6,8,1,3,5,7,9
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END
And this for to read the other side B:
BEGIN MUP2  Mupid Seite 2 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 2
SECTORS 10,256
SIDE2 0 0,2,4,6,8,1,3,5,7,9
SIDE1 0 0,2,4,6,8,1,3,5,7,9
ORDER CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END
Right?


WRITE PROTECT ALL OF THOSE DISKS, BEFORE YOU START!

Can you tell us the NAME of the machine?
(Unless the NAME is "1981 Italian Z80")


WHAT SIZE disk is it?

Is it 26 128 byte sectors, or
is it 10 256 byte sectors?
35, 40, 70, 77, or 80 cylinders/tracks?

What kind of drive?
3"? 3.25"? 3.5"?

((8" 26 * 128 * 77) is not the same as (5.25" 10 * 256 * 80))


Yes, a 5.25" SSSD disk CAN hold 18 128 byte sector per track, but you 
might have to squeeze the [inter-sector] gaps a little, so 16 may be a 
more conservative choice.



In the sector headers, . . .
On the second side, is the "HEAD NUMBER" field, in the C/H/R/N sector 
headers,  0? or 1?
If 0, then you really should try unplugging the heads of the drive and 
swapping them.  That will put "side A/0" on the second/B side of the 
disk.


If the "HEAD NUMBER" field, in the C/H/R/N sector headers, is 1
Then you are best off doing as Chuck suggested, and LYING to the transfer 
program to tell it that it is a format that goes UP the first side, then 
retracts to track 0 and then goes UP the second side, (there were 
numerous formats that did that) but that you want the transfer program to 
IGNORE the first half of each disk ("side A").  Ignoring the first half in 
that case can be done on a CP/M disk by saying that the number of 
"RESERVED TRACKS" (system tracks to be ignored for data transfer) includes 
the entire first side, and the first few of the second side.



If you can image the disk with a DOCUMENTED image structure, then 
consider writing some trivial code to split the image, to give you 
separate images of the two sides, and then try to read the files from 
each of those, as if they were two single sided drives.
Or, write a disk copy program to read the second side, and copy it to the 
first side of a scratch disk.



BTW, the "each side is a separate drive" patches for PC-DOS 1.00 were 8 
512 byte sectors on each side, with 40 tracks, so those would not help.



Yes, we're all bozos on this bus.  ("Firesign Theater" fourth album)
But, when it comes to disk formats,
none of the rest of us bozos can compare to Chuck.



This is the greatest "don't try to teach your grandmother how to steal
sheep" moment I've seen all year.  \o/
BTW, in cultures that frown on stealing sheep, that is sometimes 
expressed as "teaching grandma to suck eggs".



--
Grumpy Ol' Fred Cisin   ci...@xenosoft.com
XenoSofthttp://www.xenosoft.com



Re: Systems Engineering Laboratories - SEL History

2020-11-06 Thread Bob Smith via cctalk
My memories of SEL beginnings are dusty. and rusty. I recall a bunch
of their systems being used in science related efforts, beecause of
the high IO capability. At the time, for NASA and others, it was the
ideal platform for data collection.  Not a bad compute capability -
many other systems in that space could do compute efforts more
quickly, but the none could match data IO for years. iirc, this was in
both the 16 and 32 bit lines.
I alwo recall when some folks from DEC VAX et al efforts left and
joined SEL - yep there is some back story there.
bob

On Thu, Nov 5, 2020 at 2:35 PM Eric Moore via cctalk
 wrote:
>
> Hello, I have pulled together a website with links to resources and
> information on SEL, or Systems Engineering Laboratories.
>
> http://mnembler.com
>
> SEL was a computer manufacturer in the 60s and 70s which later was acquired
> by Gould and then Encore. They made many major innovations and were
> instrumental in the success of the Apollo program.
>
> The website is still a work in progress, but I did want to share it with
> yall.
>
> -Eric


Re: Vintage Computer Federation Swap Meet 11/7/2020

2020-11-06 Thread Jason T via cctalk
On Thu, Nov 5, 2020, 06:39 Bill Degnan via cctalk 
wrote:

> > (And, the guy getting the sandwich had the better deal, IMHO
> >
>
> It's hard with mobile gmail to trim, but regardless I agree!
>
> Bill "meatball sandwitch" Degnan
>
> P.S. As a funny I asked for a meatball sandwitch in exchange for
> essentially giving away a vintage computer. It became a kind of an inside
> joke in the early MARCH club  days.  A form of currency.
>

When I used to give away spare ccmp on Craigslist, I'd say "bring me a
burrito and it's yours".  In one case, it worked!


Re: Floppy disk: one drive per face

2020-11-06 Thread geneb via cctalk

On Fri, 6 Nov 2020, Chuck Guzis via cctalk wrote:


On 11/6/20 12:19 AM, Christian Corti via cctalk wrote:


BEGIN MUP1  Mupid Seite 1 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 1
SECTORS 10,256
SIDE1 0 0,2,4,6,8,1,3,5,7,9
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END

BEGIN MUP2  Mupid Seite 2 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 2
SECTORS 10,256
SIDE2 0 0,2,4,6,8,1,3,5,7,9
SIDE1 0 0,2,4,6,8,1,3,5,7,9
ORDER CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END


I prefer my solution.  If you opt to format the second side, you'll end
up clobbering the first side in the process.   But then, what does this
bozo know?



FYI Christian, in case you weren't aware the "bozo" above /wrote/ 22disk. 
:D



This is the greatest "don't try to teach your grandmother how to steal 
sheep" moment I've seen all year.  \o/


g.

--
Proud owner of F-15C 80-0007
http://www.f15sim.com - The only one of its kind.
http://www.diy-cockpits.org/coll - Go Collimated or Go Home.
Some people collect things for a hobby.  Geeks collect hobbies.

ScarletDME - The red hot Data Management Environment
A Multi-Value database for the masses, not the classes.
http://scarlet.deltasoft.com - Get it _today_!


Re: Floppy disk: one drive per face

2020-11-06 Thread Chuck Guzis via cctalk
On 11/6/20 12:19 AM, Christian Corti via cctalk wrote:
>
> BEGIN MUP1  Mupid Seite 1 - SSSD 96 tpi 5.25"
> DENSITY FM ,LOW
> CYLINDERS 80
> SIDES 1
> SECTORS 10,256
> SIDE1 0 0,2,4,6,8,1,3,5,7,9
> BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
> END
> 
> BEGIN MUP2  Mupid Seite 2 - SSSD 96 tpi 5.25"
> DENSITY FM ,LOW
> CYLINDERS 80
> SIDES 2
> SECTORS 10,256
> SIDE2 0 0,2,4,6,8,1,3,5,7,9
> SIDE1 0 0,2,4,6,8,1,3,5,7,9
> ORDER CYLINDERS
> BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
> END

I prefer my solution.  If you opt to format the second side, you'll end
up clobbering the first side in the process.   But then, what does this
bozo know?

--Chuck


R: Floppy disk: one drive per face

2020-11-06 Thread Enrico email.it via cctalk
So this for to read 1st face A:

BEGIN MUP1  Mupid Seite 1 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 1
SECTORS 10,256
SIDE1 0 0,2,4,6,8,1,3,5,7,9
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END

And this for to read the other side B:

BEGIN MUP2  Mupid Seite 2 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 2
SECTORS 10,256
SIDE2 0 0,2,4,6,8,1,3,5,7,9
SIDE1 0 0,2,4,6,8,1,3,5,7,9
ORDER CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END

Right?

Enrico

-Messaggio originale-
Da: cctalk [mailto:cctalk-boun...@classiccmp.org] Per conto di Christian
Corti via cctalk
Inviato: venerdì 6 novembre 2020 09:20
A: General Discussion: On-Topic and Off-Topic Posts
Oggetto: Re: Floppy disk: one drive per face

On Thu, 5 Nov 2020, "Enrico email.it" wrote:
> How should we configure 22disk to be able to do the same thing on the B
side
> of the same floppy disk?
>
> Inserting Side 2 in the definition table is not enough 

Actually, it is almost that ;-)
I have a similar system, the fl100 floppy drive system, part of the 
Grundig ptc100 (i.e. Mupid 2)
A: is side 0, and B: is side 1. Here's my 22disk definition for this. 
Please note, the trick is to define a two-sided format for the second side 
and first describe side 2 ! The definition of side 1 will be ignored 
because the CP/M directory won't specify any block beyond the first side.
And of course, the track order is by cylinder, not by side.

BEGIN MUP1  Mupid Seite 1 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 1
SECTORS 10,256
SIDE1 0 0,2,4,6,8,1,3,5,7,9
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END

BEGIN MUP2  Mupid Seite 2 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 2
SECTORS 10,256
SIDE2 0 0,2,4,6,8,1,3,5,7,9
SIDE1 0 0,2,4,6,8,1,3,5,7,9
ORDER CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END



Christian



Re: Floppy disk: one drive per face

2020-11-06 Thread Christian Corti via cctalk

On Thu, 5 Nov 2020, "Enrico email.it" wrote:

How should we configure 22disk to be able to do the same thing on the B side
of the same floppy disk?

Inserting Side 2 in the definition table is not enough 


Actually, it is almost that ;-)
I have a similar system, the fl100 floppy drive system, part of the 
Grundig ptc100 (i.e. Mupid 2)
A: is side 0, and B: is side 1. Here's my 22disk definition for this. 
Please note, the trick is to define a two-sided format for the second side 
and first describe side 2 ! The definition of side 1 will be ignored 
because the CP/M directory won't specify any block beyond the first side.

And of course, the track order is by cylinder, not by side.

BEGIN MUP1  Mupid Seite 1 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 1
SECTORS 10,256
SIDE1 0 0,2,4,6,8,1,3,5,7,9
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END

BEGIN MUP2  Mupid Seite 2 - SSSD 96 tpi 5.25"
DENSITY FM ,LOW
CYLINDERS 80
SIDES 2
SECTORS 10,256
SIDE2 0 0,2,4,6,8,1,3,5,7,9
SIDE1 0 0,2,4,6,8,1,3,5,7,9
ORDER CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 96 DRM 127 AL0 0C0H AL1 0 OFS 3
END



Christian


Re: R: Floppy disk: one drive per face

2020-11-06 Thread Chuck Guzis via cctalk
To elaborate on what I said earlier, consider the following set of
definitions for the CPC-6128 as marketed by Schneider:

BEGIN SCH1  Schneider CPC 6128 Side 1 - DSDD 5.25"
DENSITY MFM, LOW CYLINDERS 40 SIDES 1 SECTORS 9,512
SIDE1 0 193,194,195,196,197,198,199,200,201
BSH 3 BLM 7 EXM 0 DSM 180 DRM 63 AL0 0C0H AL1 0 OFS 0
END

BEGIN SCH2  Schneider CPC 6128 Side 2 - DSDD 5.25"
DENSITY MFM, LOW CYLINDERS 40 SIDES 2 SECTORS 9,512
SIDE1 0 193,194,195,196,197,198,199,200,201
SIDE2 0 193,194,195,196,197,198,199,200,201
BSH 3 BLM 7 EXM 0 DSM 180 DRM 63 AL0 0C0H AL1 0 OFS 40
ORDER EAGLE SKIP
END

Why the "SKIP" in the second definition?  Well, if you wanted to format
the second side, you don't want CFMT to write all over the first side.
"SKIP" avoids this.  Strictly speaking, SIDE1 in definition has no
significance, but 22Disk syntax requires it.  You need the eggs with
your ham and eggs, even if you don't like them.

You have to figure that in a product that dates from 1987 that we've
pretty much seen it all.

--Chuck