net.digest – March 2002

This month talk about the merger moved to the forefront as both sides tried to out do each other in sinking to new lows. It is certainly an unscientific sampling, but, for what it is worth, posters to HP3000-L are against the merger by about 10 to one. Of course, by the time you read this, the outcome will probably be known. I think I know which way it is going to go, but, the only sure thing is that regardless of the outcome, everyone involved will come out of this diminished.

The list is not immune to hoaxes as several people claimed that the symmetrical time and date representation 20:02 20/02 2002 was only the second time this has ever happened and would never happen again. It took all of 8 minutes for someone to point out that 21:12 21/12 2112 shared the same symmetrical property. This thread then morphed into a thread about palindromes in general with Wirt Atmar trumping everyone by presenting in whole a palindrome that is more than 5000 words long. And in French. Mon Dieu.

As always, I would like to hear from readers of net.digest and Hidden Value. Even negative comments are welcome. If you think I’m full of it or goofed, or a horse's behind, let me know. If something from these columns helped you, let me know. If you’ve got an idea for something you think I missed, let me know. If you spot something on HP3000-L and would like someone to elaborate on what was discussed, let me know. Are you seeing a pattern here? You can reach me at john@burke-consulting.com.

More than you could ever possibly want to know about sectors and bytes

It continues to amaze me how often some variant of this question comes up on HP3000-L. The following is compiled from separate postings from Chris Gauthier, Craig Lalley, Guy Avenell, Jeff Vance and Eric Sand:

Four bits = one nibble
Two nibbles = one byte
Eight bits = one byte

The HP 3000/MPE uses 8-bit ASCII encoding

Two bytes = logical word on "Classic" HP 3000s
Two bytes = 2^1 = "halfword" on PA-RISC HP 3000's
Four bytes = 2^2 bytes = one logical word on PA-RISC HP 3000's
256 bytes = 2^8 bytes = one MPE Sector
4096 bytes = 2^12 bytes = one logical "page" on PA-RISC HP 3000's
One Kilobyte = 2^10 bytes = 1024 bytes on all computers
One Megabyte = 2^20 bytes = 1,048,576 bytes = 4096 MPE Sectors
One Gigabyte = 2^30 bytes = 1,073,741,824 bytes = 4,194,304 MPE Sectors
One Terabyte = 2^40 bytes = 1,099,511,627,776 bytes = 4,294,967,296 MPE Sectors
One Petabyte = 2^50 bytes
One Exabyte = 2^60 bytes
One Zettabyte = 2^70 bytes
One Yottabyte = 2^80 bytes

"mega" is Greek for great or large
"giga" is Greek for giant
"tera" is the Greek word for four (4), "tetra", with the third letter dropped
"peta" is the Greek word for five (5), "penta", with the third letter dropped
"exa" is the Greek word for six (6)

At this point, the governing body decided that future powers of two would be based upon the latin alphabet going backwards; hence, zettabyte and yottabyte.

Compare this with base 10:

One Thousand = 10^3
One Million = 10^6
One Billion = 10^9
One Trillion = 10^12
One Quadrillion = 10^15
One Quintillion = 10^18
One Sextillion = 10^21
One Septillion = 10^24
One Octillion = 10^27

OK, so you are finally getting rid of your HP-IB printer. What to do about LP?

MPE requires the existence of a device defined as "LP" in order to enable job streaming. Typically, if you had an HP-IB printer, this was defined as "LP". Suppose you've finally gotten rid of your HP-IB printer so you can move to MPE/iX 6.5 or later. What do you do about defining an "LP"?

There are two schools of thought on this, one is to create a SCSI pseudo printer and the other is to create a network printer which can either be pseudo or real.

First, Gilles Schipper on creating a SCSI pseudo printer:

"First, identify a path that represents, say, a scsi or fwscsi adapter. Let's assume it is path 56/52 (for a 9x8 machine). Now, identify an unused device number within that path - say device no. 2. In sysgen, add a PSEUDO device at that address, as in

AP 56/52.2 ID=PSEUDO

Now either add or modify ldev 6 as follows:

MD 6 PATH=56/52.2.0

At this point you need to do one more thing and that is to modify the device so that it's PMGR setting reflects the fact that it is attached to a SCSI adapter instead of an HPIB adapter. So, you need to do as follows:

MD 6 PMGR=SCSI_DISC_DM

At this point you can HOld and KEep your configuration, reboot with a START NORECOVERY, and life should be good."

[Editor's note: I like to use the ID HP2567B, which is a SCSI printer, because it will automatically set most values for you.]

Lars Appel is a fan of using a network printer as LP:

"I have also had good success with configuring one LP device in SYSGEN as HPTCPJD to satisfy the requirement that at least one device in SYSGEN must be of class LP. If it does not a really exist, I used OPENQ LP and DOWN 6 in my SYSSTART file."

Denis St-Amand suggested another way to deal with a non-existing network printer:

"Personally, I prefer having that pseudo printer not spooled (using AD n MODE=NONE in sysgen) and then do just an OPENQ LP in SYSSTART."

A little IMAGE lesson

"We have two identical IMAGE databases, one with data and one empty. Data is extracted from a detail, unsorted dataset with only one path to a master dataset to a flat data file The data in this file is then put serially back into the new empty database. When the new database is then accessed the records are not actually in the same order as on the original database. What's going on here?"

I've noticed that IMAGE internals are often not well understood by people relatively new to the platform. Of course, maybe it is just the existence of the Internet and HP3000-L. Anyway, Doug Werth provided a little tutorial:

"The problem is occurring on the extract side of this procedure. The records are being read serially from a dataset that utilized the free space chain. Recently added records will be somewhere on the delete space chain, taking the place of records that have been deleted, rather than at the high-water mark. Hence, the records are out of chronological order as they are unloaded.

"A way to get the two datasets in the same order would be to run a detail dataset re-org using the database utility of your choosing against the dataset in the source database prior to serially unloading it. This would repack the entries, preserve the chronological order of the chains, and remove the delete space chain. Then, when you populate the second database the records should be in the same order for both serial and chained access.

"Unloading the dataset by a chained read would keep each individual chain in chronological order but would be painfully slow compared to a serial read. The detail repack method would have the added benefit of ongoing performance improvements for chained access."

One more time with feeling

It all started (again) with the following plea: "Does anyone out have dot matrix printers hooked up to their 3000s as network printers? If so, I really need some help."

Since the poster meant the MPE network spooler, then a necessary requirement is the printer MUST understand basic PCL. Or, be so brain dead that it takes the PCL generated by the network spooler (there is NO way to suppress this - it is hard-coded into the spooler) and discards it completely.

The npconfig directive "snmp_enabled=false" will allow you to use non-HPJetDirect NICs; but if you want to use the garden variety dot matrix printer as a network printer, you will need one of several third party tools. Probably not want he wanted to read.

From the original poster: "Wasn't there a post in the archives about how to patch OUTSPTJ.PUB.SYS to not send out the PJL code and information; then to specify the alternate OUTSPTJ program in the NPCONFIG entry for the printer?"

Duane Percox wrote something to HP3000-L and I did a two part series in the 3000 NewsWire about this. The "documented" alternate OUTSPTJ directive for npconfig DOES NOT WORK. Duane wrote about how you could sort of fake out the system to use two different OUTSPTJ spoolers, but as a practical matter you could not use this trick on a production system with a mix of PCL and non-PCL printers.