HP operates an AlphaServer information center at:
Alpha Technical information and documentation is available at:
Software Product Description (SPD) information, including platform support documentation:
Information on Multia hardware is available at:
Information on DEC 3000 series hardware is available at:
The NetBSD folks maintain useful Alpha hardware information at:
The Alpha architecture is upward- and downward-compatible, and newer instructions are emulated on older platforms, for those cases where the compiler is explicitly requested to generate the newer Alpha instructions.
In particular, OpenVMS Alpha V7.1 and later include the instruction emulation capabilities necessary for the execution of newer Alpha instructions on older Alpha microprocessors. (Instruction emulation capabilities are available for user-mode application code, and are not available to device drivers or other similar kernel-mode code.)
Alpha instructions are available in groups (or subsets). Obviously, there is the base instruction set that is available on all Alpha microprocessors. Then, the following are the current instruction extension groups (or subsets) that are available on some of various recent Alpha microprocessors:
The typical instruction subset that provides the biggest win---and of course, your mileage may vary---is typically the instruction set that is provided by the EV56 and later; specifically, the byte-word instruction subset. To select this subset, use the following:
The /ARCHITECTURE controls the maximum instruction subset that the compiler will generally use, while the /OPTIMIZE=TUNE controls both the instruction-level scheduling and also the instructions generated inside loops---any code resulting from /OPTIMIZE=TUNE that is specific to an instruction subset will be generated only inside loops and will also be "protected" by an AMASK-based test that permits the execution of the proper code for the particular current Alpha microprocessor.
Typically /OPTIMIZE=TUNE=GENERIC is the appropriate choice for tuning, and the /ARCHITECTURE selects the minimum target architecture for general use throughout the generated code.
generated for later architectures and instruction subsets will run on older Alpha systems due to the emulation, but if /ARCHITECTURE is a significant benefit, then the emulation might be a performance penalty.
Please see the OpenVMS Ask The Wizard area for the source code of a (non-privileged) tool that looks at the instruction subsets available on the particular Alpha microprocessor that the tool is run on. This tool demonstrates the use of the Alpha AMASK and IMPLVER instructions.
Please see Section 10.22 and Section 14.9 for additional details and
14.8 So how do I open up the DEC 3000 chassis?
After removing those two little screws, tilt the back end of the top
shell upwards---then you can remove the lid.
14.9 What is byte swizzling?
"Swizzling" is the term used to describe the operation needed to do partial longword (i.e. byte or word) accesses to I/O space on those systems that don't support it directly. It involved shifting the offset into an address space by 5 (or 7 for one older system), and ORing this into the base address. It then required the size of the operation to be ORed into the low order bits.
That is, because the EV4 and EV5 CPUs did not bring bits 0 and 1 off the chip, to do programmed I/O for bytes/words, the information on the size/offset of the transfer was encoded into the address data. The data itself then had to be shifted into the correct "byte lane" ; into the required offset position within a longword transfer;
The EV56 microprocessor supports byte/word instruction references in memory space, however only specific EV56 systems can support byte/word accesses into I/O space; device drivers may or may not be able to utilize to byte/word instructions to access device registers. Further, even on an EV56 system with hardware support for byte/word accesses into I/O space, the relevant OpenVMS routines typically do not support byte/word access into I/O space.
Systems based on the EV6 microprocessor (with the salient exception of the AlphaServer GS60 and AlphaServer GS140 series, for reasons of platform compatability) support a flat, byte addressable I/O space.
If a device driver uses CRAM or IOC$WRITE_IO/IOC$READ_IO, then OpenVMS will correctly process the swizzling requirements without requiring changes the driver; OpenVMS will transparently swizzle and unswizzle the I/O space references, if needed for the particular target platform. (Access and use of these routines may or may not be feasible within the requirements for a particular device driver, with the decision typically based on the target performance requirements and the expected frequency of device references and thus the expected frequency of calls to these or other similar routines.)
To use byte/word operations on MEMORY, you need to tell the compiler to use the EV56 or EV6 architecture (/ARCHITECTURE=EV56). Memory operations did not swizzle, but the compiler would do long/quad access, and extract/insert bytes as needed. Using /ARCHITECTURE=EV56 allows smaller, more efficient byte/word access logic to memory.
If the application is directly referencing I/O space access across a range of Alpha systems such as is done with the X Windows device drivers, then the driver will need to know how to do swizzling for old platforms, and byte access for new platforms. Device drivers for new graphics controllers can specifically target and specifically require platforms based on EV6 and later Alpha microprocessors because of this requirement, for instance.
Please see Section 10.22 and Section 14.7 for additional details and
14.10 What is the layout of the VAX floating point format?
The VAX floating point format is derived from one of the PDP-11 FP formats, which helps explain its strange layout. There are four formats defined: F 32-bit single-precision, D and G 64-bit double-precision and H 128-bit quadruple precision. For all formats, the lowest addressed 16-bit "word" contains the sign and exponent (and for other than H, some of the most significant fraction bits). Each successive higher-addressed word contains the next 16 lesser-significant fraction bits. Bit 15 of the first word is the sign, 1 for negative, 0 for positive. Zero is represented by a biased exponent value of zero and a sign of zero; the fraction bits are ignored (but on Alpha, non-zero fraction bits in a zero value cause an error.) A value with biased exponent zero and sign bit 1 is a "reserved operand" - touching it causes an error - fraction bits are ignored. There are no minus zero, infinity, denormalized or NaN values.
For all formats, the fraction is normalized and the radix point assumed to be to the left of the MSB, hence the following range: 0.5 less than or equal to f and less than 1.0. The MSB, always being 1, is not stored. The binary exponent is stored with a bias varying with type in bits 14:n of the lowest-addressed word.
FP Exponent Exponent Mantissa (Fraction) bits, Type Bits Bias including hidden bit ========================================================== F 8 128 24 D 8 128 56 G 11 1024 53 H 15 16384 113
The layout for D is identical to that for F except for 32 additional fraction bits.
Example: +1.5 in F float is hex 000040C0 (fraction of .11[base 2],
biased exponent of 129)
14.11 Where can I find more info about VAX systems?
Gunnar Helliesen maintains a NetBSD VAX FAQ at
System disks larger than 1.073 gigabytes (GB)---1fffff hexidecimal blocks -- are not supported on any member of the VAXstation 3100 series and on certain older members of the MicroVAX 3100 series, and are not reliable on these affected systems. (See below to identify the affected systems---the more recent members of the MicroVAX 3100 series systems are NOT affected.)
Various of the SCSI commands used by the boot drivers imbedded in the console PROM on all members of the VAXstation 3100 series use "Group 0" commands, which allow a 21 bit block number field, which allows access to the first 1fffff hexidecimal blocks of a disk. Any disk references past 1fffff will wrap---this wrapping behaviour can be of particular interest when writing a system crashdump file, as this can potentially lead to system disk corruptions should any part of the crashdump file be located beyond 1.073 GB.
More recent systems and console PROMs use "Group 1" SCSI commands, which allow a 32 bit block number field.
There was a similar limitation among the oldest of the MicroVAX 3100 series, but a console boot PROM was phased into production and was made available for field retrofits---this PROM upgrade allows the use of the "Group 1" SCSI commands, and thus larger system disks. There was no similar PROM upgrade for the VAXstation 3100 series.
Systems that are affected by this limit:
Also see Section 9.5.
14.14 What are the VAX processor (CPU) codes?
CPU: Platform: ----- --------- KA41-A : MicroVAX 3100 Model 10 and 20 KA41-B : VAXserver 3100 Model 10 and 20 KA41-C : InfoServer KA41-D : MicroVAX 3100 Model 10e and 20e KA41-E : VAXserver 3100 Model 10e and 20e KA42-A : VAXstation 3100 Model 30 and 40 KA42-B : VAXstation 3100 Model 38 and 48 KA43-A : VAXstation 3100 Model 76 KA45 : MicroVAX 3100 Model 30 and 40 KA46 : VAXstation 4000 Model 60 KA47 : MicroVAX 3100 Model 80 KA48 : VAXstation 4000 VLC KA49-A : VAXstation 4000 Model 90/90A KA49-B : VAXstation 4000 Model 95 KA49-C : VAXstation 4000 Model 96 KA50 : MicroVAX 3100 Model 90 KA51 : MicroVAX 3100 Model 95 KA52 : VAX 4000 Model 100 KA53 : VAX 4000 Model 105 KA54 : VAX 4000 Model 106 KA55 : MicroVAX 3100 Model 85 KA56 : MicroVAX 3100 Model 96 KA57 : VAX 4000 Model 108 KA58 : MicroVAX 3100 Model 88 KA59 : MicroVAX 3100 Model 98 KA85 : VAX 8500 KA86 : VAX 8600 KA88 : VAX 8800 KA600 : VAX 4000-50 (aka VAXbrick) KA610 : MicroVAX I, VAXstation I (aka KD32) KA620 : rtVAX (VAXeln) KA62A : VAX 6000-200 KA62B : VAX 6000-300 KA630 : MicroVAX II, VAXstation II KA640 : MicroVAX 3300, MicroVAX 3400 KA650 : VAXstation 3200, MicroVAX 3500, MicroVAX 3600, MicroVAX III KA64A : VAX 6000-400 KA655 : MicroVAX 3800, MicroVAX 3900, MicroVAX III+ KA65A : VAX 6000-500 KA660 : VAX 4000-200, VAX 4 upgrade KA66A : VAX 6000-600 KA670 : VAX 4000-300 KA675 : VAX 4000-400 KA680 : VAX 4000-500 KA681 : VAX 4000-500A KA690 : VAX 4000-600 KA691 : VAX 4000-605A KA692 : VAX 4000-700A KA693 : VAX 4000-605A KA694 : VAX 4000-705A KA730 : VAX-11/730 KA750 : VAX-11/750 KA780 : VAX-11/780, VAX-11/782 KA785 : VAX-11/785 KA7AA : VAX 7000-600 KA7AB : VAX 7000-700 KA7AC : VAX 7000-800 KA800 : VAXrta KA820 : VAX 8200, VAX 8300 KA825 : VAX 8250, VAX 8350 KA865 : VAX 8650
For console commands associated with certain MicroVAX 3100 series and
VAX 4000 model 10x series motherboard personality settings, see
14.15 Where can I get software and hardware support information?
Please contact the HP Customer Support Center. Services and information, manuals, guides, downloads, and various other information is available via the support link at:
Various hardware and system documentation is available at:
TSM (Terminal Server Manager), DEChub, DECserver, etc. information:
The owner and maintainer of current DECserver and related hardware is DIGITAL Network Products Group (DNPG):
The HP Parts Directory and the HP Parts Reference Guide (arguably the most direct descendents of the HP Assisted Services program, of the Compaq Assisted Services program, and of the now-ancient DECmailer program) are available to customers that wish to maintain their own system(s) (self-maintenance), but that wish some level of assistance in acquiring specific parts, hardware diagnostics and hardware manuals for the system(s), and that wish to have access to spares and module-level repairs for customer-performed hardware module swaps:
The HP Parts Reference Guide replaces the CAS-Catalog and DAS-Catalog parts catalogs and related resources.
Details of the available self-maintenance programs and services can
vary by geography and by the particular services channel(s), and
current program specifics are available via the above URLs.
14.17 Why does my system halt when I power-cycle the console terminal?
Various VAX and Alpha consoles are designed to process the BREAK signal, treating it as a HALT request.
A BREAK is a deliberately-generated serial line framing error.
When a serial line device such as a terminal powers up (or sometimes when powering down) it can generate framing errors. These framing errors are indistingushable from a BREAK signal.
When a BREAK is received on a serial line console for various VAX systems---including most VAXstation, MicroVAX, and VAX 4000 series---it is typically interpreted as a HALT. Alpha systems will also often process a BREAK in a similar fashion, halting the system.
There is no uniform or generally-available way to disable this behaviour on every VAX or Alpha system. On some systems, BREAK processing can be disabled in favor of [CTRL/P], or [CTRL/P] is the only way to halt the processor.
The most common way to avoid these halts is to disable the serial line console or to simply not power-cycle the console terminal. There is certain important system state information that is displayed only on the console, OpenVMS expects to always have access to the system console.
Also see Section 5.6.
14.18 Can I reuse old keyboards, mice and monitors with a PC?
Older HP keyboards (those with the DIGITAL logo and the RJ modular jacks), older HP mice (those with the DIGITAL logo and with the RJ modular jacks, or with a DIN connector with pins in a configuration other than the PC-standard DIN connector pin orientation), and older video monitors (with RGB synch-on-green video signaling) all use signaling formats and/or communications protocols that differ from the PC standards, and are not (easily) interchangable nor (easily) compatible with typical PC peripheral device controllers. The LK201 and LK401 keyboards, the VSXXX series mice, the VR260 and VR290 monitors, etc., are incompatible with most PC systems and with most KVM switches.
Newer HP (and Compaq) keyboards (those with with PC-style DIN plugs, and the HP, Compaq or DIGITAL logo), newer HP mice (with PC-pin DIN plugs, and the HP, Compaq or DIGITAL logo), and newer video monitors (multi-synch, usually with a VGA or SVGA connection, or later) are often interchangeable with "industry standard" PC systems, and can often be used with most PC peripheral device controllers. LK461, LK463, LK46W, LK471, PC7XS-CA, VRC16, VRC21, TFT-series LCD flat-panel displays, etc., are typically reasonably compatible with most PC systems, and will usually perform as expected within the limits of the hardware. (For details of CRT and LCD display compatibility, please see Section 14.19.)
Rule of thumb: if the peripheral device component was sold for use with the DEC 2000 (DECpc 150 AXP), an AlphaServer series, an AlphaStation series, or a more recent Alpha system, it will probably work with a PC peripheral controller or with a PC-compatible KVM switch. If the peripheral device component was sold for use with an VT420 or older terminal, most VAX, most VAXstation, and most Alpha systems with names in the format DEC [four-digit-number], it probably won't work on a PC system or with a PC-compatible KVM.
Note that the above is a general guideline, and should not be read to indicate that any particular peripheral device will or will not work in any particular configuration, save for those specific configurations the device is explicitly supported in.
Software Integrators sells a video adapter card called Gemini P1 which will drive many of the older HP (DIGITAL-logo) fixed-frequency monitors on a PC system:
The DIGITAL (classic 2-5-2-style) part number 29-32549-01 converts the output from the RGB cable (3 BNC, synch-on-green) that comes with the VAXstation 3100 and VAXstation 4000 series to a female SVGA D connector. You may be able to find third-party converters or adapters (3 BNCs with synch-on-green signaling to 5 BNCs with VGA/SVGA, or to 15-pin VGA/SVGA.
This adapter will allow PC multisync monitors with the needed frequency specifications to be used with the VAXstation series synch-on-green video connection. It may well also work with a VAXstation 2000 series systems, but specifics and performance of that combination are not immediately known at this writing.
The protocol definition for the old DIGITAL keyboard and mouse interfaces is buried at the back of the QDSS section in the old VAXstation II manual, specifically, in the back of the VCB02 Video Subsystem Technical Manual (EK-104AA-TM). The keyboard wiring and protocol is in appendix B, and occupies circa 44 pages. The mouse is in appendix C, circa 12 pages.
Also see Section 14.19.