SDL-Hercules-390 / hyperion

The SDL Hercules 4.x Hyperion version of the System/370, ESA/390, and z/Architecture Emulator
Other
247 stars 92 forks source link

Minor Change to Read Device Characteristic CCW (x'64') #456

Closed arfineman closed 2 years ago

arfineman commented 2 years ago

In all modern storage controllers a x'64' CCW returns a full word number of cylinders of a volume at offset +60 (x'3C'). This is in addition to a half word at offset +12 (x'0C') and regardless of volume being an EAV or not.

Fish-Git commented 2 years ago

Hi Aaron!

Just so I don't have to go looking for it, is this documented in some manual somewhere?

Thanks!

arfineman commented 2 years ago

Hi Fish, Look at HCPRDCBK COPY. This causes a problem for the TRACKREAD stage of pipelines. In the case below, TRACKREAD for 100 works, because it is a minidisk and the RDC is filled in by CP. But TRACKREAD fails for 200 because it is a dedicated volume and RDC is taken from the device itself. Best regards,

/ TRKRD EXEC /
'PIPE TRACKREAD 100 0 0 15' / 100 being any size minidisk /
'PIPE TRACKREAD 200 0 0 15' / 200 being any size attached dasd /

00000C RDCMCYL DS XL2 NUMBER OF PRIMARY CYL
00000E RDCTPCYL DS XL2 NUMBER OF TRACKS PER CYLINDER
000010 RDCSECT DS XL1 NUMBER OF SECTORS
..................................................................................................................................................
00003C RDCMCYL32 DS F NUMBER OF PRIMARY CYLINDERS

Fish-Git commented 2 years ago

Look at HCPRDCBK COPY.

? What the heck is that? That's not a reference manual I've ever heard of. I was looking for something more along the lines of:

Etc...

According to GA32-0274-05 "3990,9390 Storage Control Reference", RDC bytes 12-13 is indeed defined as "Number of Primary cylinders", but bytes 58-63 are defined as "Reserved". I'm looking for a manual that defines those bytes, or something authoritative or even semi-authoritative.

I'm presuming this "HCPRDCBK COPY" thing is some assembler copy book or something? An assembler macro? Where does this "HCPRDCBK COPY" live? In some pds somewhere in z/OS? Or on some minidisk in z/VM somewhere? If so, I would certainly consider that to be authoritative. But with just your word to go on -- no matter how good I personally think it is -- isn't good enough in this case I'm afraid.

(I googled for HCPRDCBK but basically came up dry.)

Fish-Git commented 2 years ago

FOUND IT!

003A   58 Bitstring    2 RDC5859        DASD SPECIFIC RESERVED
003C   60 Signed       4 RDCMCYL32      NUMBER OF PRIMARY CYLINDERS

That's good enough for me!  :)

I'll get that fixed for you right away, Aaron. It'll appear in the next release (4.5).

Fish-Git commented 2 years ago

Closed by commit 219956bb4a9d184669d11b59248820afd78eace0.