[Info-vax] VMS porting/rewrite, was: Re: [OT] Wirth style languages, was: Re: Obscure Ada compiler vendors?
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Wed Apr 10 14:52:19 EDT 2013
On 2013-04-10 16:49:35 +0000, Simon Clubley said:
> The only thing I've ever seen a ACP used for on VMS is for tape drives
> and I've never even come across any public documentation which would
> allow me to write one of those.
F11BXQP ("the XQP") arrived at V4, and that replaced the F11BACP
Files-11 ACP from earlier versions.
LD has an ACP, and there's an old ZEACP. VMS has several other ACPs around.
I've written several ACPs. There's an ACP overview here:
<http://labs.hoffmanlabs.com/node/213>
There's no DEC/Compaq/HP documentation for ACPs, though Jamie
Hanrahan's VMS Advanced Device Driver Techniques (1988) book did
include a reasonable description of what was then involved. I acquired
a copy of that about a month after I'd written my first ACP, and having
figured this out from MTAACP. Jamie got it right, though I do recall
noticing a very few and minor mistakes. (Caveat: do not look at the
DECnet ACP as your first ACP template. Your head may explode. But I
digress.)
There's no generic way to get your own ACP loaded and going within
OpenVMS, if you're doing something slightly different from how the file
system expects an ACP to work. MOUNT has various assumptions — and
those didn't hold for the ACPs I was writing — which led to a custom
"mount" command.
That "mount" command work is also where I first figured out how to do
this stuff: <http://labs.hoffmanlabs.com/node/803>, as using a DECterm
brought a debug version of the ACP online easily. Which was leagues
past debugging in XDELTA. But I digress.
There's no documentation and no support for tying into the VMS file
system stack, either. What the NFS client does is undocumented.
Back-tracking to the "porting" or "rewriting" of OpenVMS discussion,
the current file system and parts of the I/O system are limited to
32-bit values for block addresses, which means either bigger block
sizes (to IDEMA "long sector" 4096-byte blocks, for instance) or
promoting those longwords to quadwords all over the place in the file
system and kernel and drivers, or disk partitioning, or (more likely)
all of these Doing either a port or an rewrite while keeping 32-bit
addresses and 512 byte sectors and no partitioning support would be
problematic as disks increase in capacity. Related:
<http://labs.hoffmanlabs.com/node/284>
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list