home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.robelle3000.ai 2014
/
2014.06.ftp.robelle3000.ai.tar
/
ftp.robelle3000.ai
/
newsletter
/
1988
/
w1988-07.txt
< prev
Wrap
Text File
|
1999-04-28
|
25KB
|
468 lines
What's Up DOCumentation
Robelle Consulting Ltd.
8648 Armstrong Rd., R.R.#6
Langley, B.C. Canada V3A 4P9
Telephone: (604) 888-3666 Telex: 04-352848
Fax: (604) 888-7731
Date: November 30, 1988
From: Robert M. Green, President
David J. Greer, Research & Development
Michael C. Shumko, Customer Support
To: Users of Robelle Software
Re: News of the HP 3000, 1988 #7
What You Will Find in This News Memo:
News Tidbits
About Robelle
'Twas the Night Before Implementation
Technical Tips
Robelle Products: Upgrading to Series 9xx
SUPRTOOL & QSCHEMA Revisited
Block-Mode Type-Ahead on MPE XL
Robelle Products: Problems, Solutions, and Suggestions
News Tidbits
DATAMATION Reviews MPE XL 1.1. "Conjuring up memories of the great cola
wars, Hewlett-Packard customers are calling their non-RISC line of
minicomputers `Classic 3000s'." So starts a two-page review of MPE XL 1.1 in
the October 1st issue of DATAMATION. Besides reporting what we all know,
that MPE XL 1.1 is a big improvement over 1.0, the article reported a few
interesting tidbits: "In going from MPE XL 1.0 to 1.1, HP had to fix several
hundred bugs ... HP reports that programs under compatibility mode run at
85% the rate of native mode [after OCTCOMP? Ed.] ... the hidden but
expensive issue of disk and memory requirements under Spectrum ... The MPE
XL operating system itself reportedly takes up 300MB of memory, many times
more than is the case with MPE V ... Development dollars at HP are equally
split between Unix and MPE."
McKittrick and Associates. Kathy McKittrick, formerly with D.I.S.C., has
formed her own company to do sales and marketing consulting for companies in
the HP 3000 marketplace.
Telephone: (301) 690-1550.
What Does `CIA' Stand for? CPU I/O Analyser. There is a new performance
monitor for MPE from Australia called CIA. Users who have tried it like the
simple operation, the low system overhead, and the ability to drop a `cpu
hog' process into the ES subqueue!
Telephone: (512) 346-0904.
Rumor of New MPE Security. HP is working on new security to satisfy
government rules. Security must be attached to the object, not to the group
or account as in MPE. Therefore, MPE will allow you to add security to a
file that overrides the group/account security, and that can go with the file
when you copy it.
More on QUERY Bugs. Following up on last issue's report, Gilles Schipper has
verified that QUERY C.02.00 (V-Delta-2) does have the problem we reported
(deleting all migrating secondaries!). The same bug is also in QUERY D.00.04
on MPE XL 1.1. Also, LG capability is again needed to open a database for
write access that has been enabled for logging. This is an old bug that has
reappeared in V-Delta-2. No word on whether the LG bug is on MPE XL.
RSPOOL. In the August '88 issue we reported that RSPOOL was from the
contributed library. It isn't. It was given to the user by the author, an
SE. But John Sullivan, Interex CSL Manager, is working on obtaining RSPOOL
for the contributed library. We'll let you know once he gets the author's
approval. Stay tuned; film at eleven.
Fiber-Optic Disc Interface. Disc drives are no faster on MPE XL and MPE V,
but HP has a new fiber-optic disc interface on MPE XL that is reported to
improve disc-access speed by 25% to 30%.
BackPack/XL in Beta Test. BackPack is now being beta-tested by MPE XL users.
Initial reports are that it still achieves a reduction in tapes consumed and
completes about 15% faster than NM STORE. The new 7980XC tape drive has
on-board data compression, increasing the amount of data written to a tape by
at least a factor of two. Combining this with BackPack's own data
compression, you increase packing by a factor of four. Then buy several
7980XC drives and use the TAPES= option of BackPack, plus the DEFER option,
and you might be able to achieve unattended backup on your 950.
PC to Mainframe File Transfer. Walker Richer & Quinn has announced 3270 File
Exchange for asynchronous file transfers between PCs and IBM mainframes using
IND$FILE.
Telephone: (206) 324-0350.
New LaserJet Prints on Both Sides. HP has released the LaserJet IID, which
is capable of printing on both sides of a piece of paper (called duplex
printing). It also has two paper input trays and comes with 24 fonts
standard.
About Robelle
Bob Green to Speak in Oklahoma City and Atlanta. Bob Green of Robelle will
talk on The Spectrum Instruction Set to users in Oklahoma City on February
7th and in Atlanta on February 9th and 10th. In Atlanta, Bob will also be
running training sessions on the use of QEDIT and SUPRTOOL (5 pm Thursday,
the 9th).
Details of VAR Program. Robelle is now offering a VAR program that allows
application software vendors to bundle our software into their products. The
program is available for QEDIT, SUPRTOOL, DBAUDIT, and XPRESS. The Speed
Demon portion of SUPRTOOL is available with a list price of $1500 (one-half
the price of SUPRTOOL). VARs receive a 35% discount on all software that
they sell with their products. Streamlined procedures: twice yearly
reporting and payments, no extra maintenance fees, and no extra license
agreements for VAR's customers. Restrictions: VAR's product must have a
price at least five times the price of the Robelle product, and the VAR must
purchase a copy of the Robelle product.
San Francisco '89. We'll be treating our customers to a three-hour evening
yacht cruise at the San Francisco conference next year. Enjoy food, drink,
and music while cruising beneath the Golden Gate. So plan to come to San
Francisco next September and pick up your tickets at the Robelle booth.
Swap Tape Contest. Just a reminder to get your new or improved contributed
programs to Interex for consideration for the $2500 Robelle Prize.
'Twas the Night Before Implementation...
and all through the house,
not a program was working, not even a browse.
The programmers hung by their tubes in despair,
with hopes that a miracle soon would be there.
The users were nestled all snug in their beds,
while visions of inquiries danced in their heads.
When out from the machine room there arose such a clatter,
I sprang from my desk to see what was the matter.
And, what to my wondering eyes should appear,
but a super-programmer (with a six-pack of beer).
His resume glowed with experience so rare,
he turned out great code with a bit-pusher flair.
More rapid than eagles, his programs they came,
and he cursed and muttered and called them by name:
On Update! On Add! On Inquiry! On Delete!
On Batch Jobs! On Closing! On Functions Complete!
His eyes were glazed over, fingers nimble and lean,
from weekends and nights in front of a screen.
A wink of his eye, and a twitch of his head,
soon gave me to know I had nothing to dread.
He spoke not a word, but went straight to his work
turning specs into code, then turned with a jerk.
And laying his finger upon the <ENTER> key,
he brought it all up and it worked perfectly:
The updates updated; the deletes, they deleted;
the inquiries inquired, and the closings completed.
He tested each whistle, he tested each bell,
with nary abend, all had gone well.
The system was finished, the tests were concluded.
The users' last changes were even included!
Yet the users exclaimed with a snarl and a taunt,
"It's just what we asked for, but NOT what we want!"
[reprinted from BCRUG newsletter, December 87 issue, author unknown]
Technical Tips
MPE XL Intrinsic Incompatibilities I. A common piece of error-handling code
might look like:
fread
if <> then
fgetinfo
fcheck
On MPE V, this works because FGETINFO doesn't change the error code. The
error code reported by FCHECK would be the result of the FREAD call. But on
MPE XL, this does not work as the FGETINFO resets the error code to zero.
[Eugene Volokh]
MPE XL Intrinsic Incompatibilities II. The FLABELINFO intrinsic returns
"Number of user labels written" as item 10 and "Number of user labels
available" as item 11. On MPE V, item 11 returns the total number of user
labels allocated to the file when it was built. But on MPE XL, item 11
returns the number of labels not yet written. Workaround: use FGETINFO to
get the total number of labels allocated to the file.
NS Warning. Do not break/abort a process that has an NS line open and a
remote process running. This will hang the NS line, forcing a restart of the
remote system. However, doing an abortjob command on the remote session
before the local break/abort works fine. In fact, after the remote session
terminates, your local process may be aborted for you by MPE. Reported on
MPE version G.B3.02 on two Series 68s. [Bob Liotta]
How to Mark Entire Database for Backup. On Turbo IMAGE, if you want to
"dirty" all of the files in a database so that they will all appear on the
partial backup, use the RELEASE (or SECURE) function of DBUTIL.
An Oddity? Why does the ROBELLE account exist on every MPE XL machine
shipped from Cupertino? With nothing in it and without a password?
MPE XL Performance. At an HP talk to the New York Users Group recently, we
learned that MPE XL 1.1 is due to have Native-Mode VPLUS instead of CM.
Also, that the path length (number of instructions executed) to go from CRT
to memory is longer on XL and V/E, but the path length to disc is shorter on
XL. If you use Extra Data Segments a great deal and don't have time to
rewrite your programs to use Mapped Files, HP has unsupported NM routines
that simulate the XDS intrinsics without switch stubs (these were written by
an SE for a customer, but are available if you really need them).
Computing in the Sky. Most airlines are now allowing people to use their
laptops in flight, except during landings and takeoffs. This is a boon to
power users who can actually fit one of those machines between them and the
next seat. (What if the person in front of you decides to lever his seat
back?) One major drawback is that on some models of airplanes, the trays
fold up from the seat arm. These trays contain powerful magnets to prevent
them from rattling in flight. Keep your data, especially those on floppies,
away from these! [Ken Robertson]
Robelle Products: Upgrading to Series 9xx
Heading the list of "Top Ten Customer Questions" for the past few months has
been: "I'm planning to upgrade to a Spectrum. Do you have a native mode
version, and how much will it cost me?" The answers are "no" and "nothing".
All our products are in compatibility mode. They have been tested on MPE XL,
and they all work. You do not need any special versions for MPE XL. Simply
take the software you are running now and restore it on your new machine.
Everything should continue to work with no changes. You may OCTCOMP the
programs if you wish. As for the cost, we are concerned only with the number
of cpus you are running our software on, not the size of those cpus. So if
you are trading up from a smaller cpu to a Series 9xx, there is no additional
cost. However, if the new machine is an add-on to your current stable, you
will be required to pay the one-time extra-cpu surcharge (Qedit, Suprtool,
Xpress: US $600; Dbaudit: US $400). In the case of an upgrade, we will
permit you six months of "overlap" while you are migrating your applications.
The annual support fee remains the same. Example #1: currently running
Qedit and Suprtool on three machines. Swapping one of them for a Series 950.
Cost: $0. Example #2: currently running Qedit and Suprtool on three
machines. Adding a new machine, a Series 950, so that the total will be
four. Cost: $1200 ($600 per product). Example #3: currently running Qedit
and Suprtool on three machines. Trading the two smallest ones for a single
Series 950. Cost: $0. (No, you don't get any money back. But if you ever
get a third machine again, you won't have to pay for it.)
SUPRTOOL & QSCHEMA Revisited
by Alan Millar
Ungermann-Bass, Inc.
[The March '88 What's Up Doc had an article by P. Wood showing how to create
Suprtool field definitions from the record layout information provided by
Powerhouse. These were then used by Suprtool to fill up a Quiz subfile.
Alan Millar has taken that idea a step further. Ed.]
I think Mr. Wood has made an excellent start in automating Suprtool
definitions, and nothing I am saying is intended to criticize the fine
suggestions he has made. However, the job is only half done. There are
quite a few things which must be done manually using his method.
But what if we could create the whole file of Suprtool definitions
automatically? Now, wouldn't that be nice?
The heart of what we want to do is only hinted at by one of his last
statements: "Of course, a COBOL program could be written to parse the whole
wretched mess..." If you view the QSHOW output as a list of records that
only needs to be translated into another form, the whole job can be done by
just a few lines of Quiz code.
The idea is this: send the QSHOW report to a disk file, and process that
file with Quiz. That is, take the list of field definitions supplied by
QSHOW, and let Quiz turn it into a list of field definitions for Suprtool.
Notes on QSHOW Output
To capture the output of QSHOW, you can run QSHOW and redirect the STDLIST.
Or, you can set a file equation for QSHOLIST to a disk file:
:build templist;rec=-80,,f,ascii
:file qsholist=templist,old;dev=disc
:run qshow.current.cognos
Once inside QSHOW, you must SET REPORT DEVICE PRINTER so that QSHOW will use
the QSHOLIST file. The advantage of using QSHOLIST is that only the actual
file report is put in the file, and none of the other information printed by
QSHOW (such as the program banner).
Powerhouse subfiles actually can be processed identically to files defined in
the Powerhouse dictionary (QSCHEMA). There is a QSHOW command called SHOW
SUBFILE, which works identically to SHOW FILE and produces a report with the
same information. (Some of the columns are slightly off horizontally, but
our program will fix that automatically.)
A QSHOW command which can help the whole process is SET COMPRESSED. It
suppresses the page numbers and other page heading information in the QSHOW
report. A sample output from QSHOW would look like the following:
Subfile: F184A.PC (Permanent)
Format: 3
Record Size: 138 Bytes
Item Type Offset Size Occurs
PRONUM CHARACTER 0 18
INSHP FLOAT 18 4
REFNUM CHARACTER 22 10
SONUM CHARACTER 32 10
ARFSC CHARACTER 42 4
TYPNUM INTEGER 46 2
SOES1 CHARACTER 48 30
SOES5 CHARACTER 78 30
BILNAM CHARACTER 108 30
The first thing to do is define what the QSHOW reports look like in a
dictionary, which would include the following:
File Qshow-Subfile
Organization Direct &
Open QSHOLIST
File QShow-File
Organization Direct &
Open QSHOLIST
Record Qshow-Subfile
Item Filler1 character size 1
Item Name character size 23
Item Type character size 18
Item Offset freeform size 10
Item ItemSize freeform size 10
Item Occurs freeform size 18
Record Qshow-File
Item Key character size 6
Item Name character size 35
Item Type character size 18
Item Offset freeform size 4
Item ItemSize freeform size 5
Item Occurs freeform size 12
Note that we have two definitions, one for the SHOW SUBFILE output and one
for the SHOW FILE output. We make the names of the columns the same, and
adust the size to accommodate the differences in horizontal positioning.
Note that freeform is a number stored in a character field; Quiz will
automatically convert it to a number.
The QUIZ Report
The first thing I want to point out is that Quiz is not intrinsically
required to do the definition translation. I am using it in this situation
because Quiz makes it is easy to process files. A COBOL program could have
been used also. In fact, we probably could use Suprtool itself!
The object of our Quiz report is to produce a Suprtool Define statement for
each field. The define statement has the following components to it:
- The word "define".
- The field name.
- The position (starting with column 1). The QSHOW report gives an offset
starting at zero, so the position will be the offset plus 1.
- The field size in bytes.
- The field type, using the Suprtool names.
We will therefore have one Suprtool define statement for each line of the
QSHOW report.
One problem we face is only doing a definition for lines that represent field
information. Using the above example of QSHOW output, we do not want to
process the first six lines, because they are heading information. For these
lines, however, the column containing the field size will not contain a valid
number. We can simply tell Quiz to only select those records where ItemSize
is greater than zero.
To get the field name, we will use the name already provided in the data
dictionary. To get the position, we will add one to the offset provided by
QSHOW.
To get the field type, we can create a Quiz Define statement which maps the
Powerhouse types into the Suprtool types. For numeric fields, the Powerhouse
type can sometimes have a sign qualifier, so that instead of a field being
called type ZONED, it may be called ZONE SIGNED or ZONE UNSIGNED. For our
purposes we don't care about this qualifier, so we will only check the first
few characters of the type.
This summarizes all we need for a Suprtool Define statement. The entire code
is as follows:
;QUIZ - Suprtool Definitions
;by Alan Millar - Nov 07, 1988
Access QSHOW-SUBFILE ;or QSHOW-FILE
Select if ItemSize > 0 ;Ignore heading lines
Define Position = Offset + 1
Define SuprType char*8 = &
"integer" if Type[1:8]="INTEGER" else &
"packed" if Type[1:7]="PACKED" else &
"real" if Type[1:6]="FLOAT" else &
"display" if Type[1:6]="ZONED" else &
"byte"
Report &
tab 1 "DEFINE" Name pic"^^^^^^^^^^^^^^^^" &
"," Position pic "^^^" &
"," ItemSize pic "^^^" &
"," SuprType
set nohead
set page length 1 report spacing 1
set report device disc name SUPRDEFS ;send to disk file
go
The output from the above example would look like the following:
DEFINE PRONUM , 1 , 18 , byte
DEFINE INSHP , 19 , 4 , real
DEFINE REFNUM , 23 , 10 , byte
DEFINE SONUM , 33 , 10 , byte
DEFINE ARFSC , 43 , 4 , byte
DEFINE TYPNUM , 47 , 2 , integer
DEFINE SOES1 , 49 , 30 , byte
DEFINE SOES5 , 79 , 30 , byte
DEFINE BILNAM , 109 , 30 , byte
Just the Beginning
This represents a very simple use of definition processing from the data
dictionary. There are many other uses for this technique. At Ungermann-Bass
we use this technique for many applications. It is used to create record
definitions for FORTRAN programs (define variables for each field, and
EQUIVALENCE them to the proper element of a buffer array). It is used to
create definitions for downloading data for import to a spreadsheet or dBASE
(putting commas between each field, quotes around character fields, etc.),
and also for creating dBASE database structure definitions for receiving
downloaded data. It is used for tape file transfers to other machines
(create a new file with all numeric fields converted to type Zoned). The
possibilities are endless.
For examples of similar concepts in 3GL code, the Interex library contains
the programs MGR3000, MGRENTRY, and COBGEN, all of which make use of existing
data definitions to save work for the programmer. For a good magazine
article, see Derivational Programming by Norman Hills in the June 1987 issue
of Interact.
Block-Mode Type-Ahead on MPE XL
Type-ahead is the ability to keep typing after you press RETURN and not have
your keystrokes lost. Type-ahead is not provided by MPE, but is available to
MPE users with Type-Ahead Engines (Telamon), Reflection (Walker Richer &
Quinn), Cumulus terminals, and even Advancelink from HP. These products can
implement type-ahead because MPE V always sends a DC1 (XON) to the terminal
port when it is ready to read data. The terminal or PC holds your keystrokes
in a buffer until it sees a DC1 come down the datacomm line, then sends your
keystrokes to the HP 3000. Type-ahead works on MPE XL as well, but only in
line mode, not block mode!
In VPLUS or QEDIT VISUAL, the HP 3000 terminal uses a slightly more complex
handshake, which still allows type-ahead of block-mode data, ENTER keys, and
function keys. After receiving an initial DC1 prompt from the computer, the
terminal waits for you to press ENTER. Then it sends a DC2 to the computer
and waits for another DC1 prompt before sending the screen; this allows the
3000 time to get buffers ready for the screen of data.
Unfortunately, this block-mode scheme does not work on MPE XL. When you are
in block mode, MPE XL sets both the G and H straps to YES on your terminal,
inhibiting all handshaking. The DTC (data terminal controller) is ready to
accept a screenful of data any time you press ENTER, with no handshake. The
DTC then breaks the screen into packets and sends it to the Spectrum CPU over
a dedicated LAN. But, if you have type-ahead enabled when you press ENTER,
your terminal will wait forever for a DC1 before sending your screen - you
lock up. Many VPLUS users have gotten used to being able to pre-ENTER their
screens, regardless of the response time of the 3000. They are
understandably upset by the loss of type-ahead.
Temporary Workaround: disable type-ahead when working on MPE XL.
Solution. In Reflection version 3.30, Walker Richer & Quinn has introduced a
new algorithm that allows type-ahead to work in block mode on MPE XL. In
QEDIT version 3.7, due for release in December, Robelle has solved this
problem for all versions of Reflection between 2.00 and 3.20 by disabling
type-ahead while in VISUAL and re-enabling it in line mode.
Robelle Products: Problems, Solutions, and Suggestions
QEDIT Version 3.6
Fortran 77 A.00.11. Several recent versions of the Fortran 77 compiler will
not compile temporary files, including QEDITSCR. We have previously
published patches for A.00.10 and A.01.01; here is a patch for A.00.11:
:run patch.pub.sys
Filename: FTN.PUB.SYS {or FTN.Q.ROBELLE}
?m,32,7261
041403,021003
Prose Version 2.6
Do you sometimes want to send an escape sequence to your LaserJet in the
middle of a Prose sentence? Using the .literal command causes a paragraph
break. If the escape sequence is embedded in the middle of a sentence, Prose
treats the escape sequence as part of the text (which doesn't actually print)
and misaligns the margins. One user solved this problem by modifying one of
our standard font include files (see F92286@.Qlibdata.Robelle). He added a
new font that had a width of zero and a null escape sequence. This new font
is used around escape sequences. The following example would work with the
"F" font file:
.font(k7 w0 u- '')