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 Date: March 31, 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 #2 What You Will Find in This News Memo: News Tidbits The Joys of 9600 Baud Over Voice Lines, Part II SUPRTOOL Definitions From the QSCHEMA Technical Tips About Robelle Robelle Products: Problems, Solutions, and Suggestions News Tidbits Spectrum Is Released but Not Released. In our last news memo, we reported that MPE XL users were now removed from non-disclosure restrictions and allowed to put their Spectrum machines into production. In the last month, that news has been confirmed by many sources. We also concluded, and reported, that MPE XL had obtained MR (Manufacturing Release). That is untrue. MPE XL has apparently obtained SR (System Release), but not MR. SR seems to be a new category of release created just for MPE XL. We have heard from some new 950 customers who did not need to sign a non-disclosure agreement. However, one customer reported that before HP would allow him to order he had to sign a document stating that he had no specific performance expectations (!?). On the other hand, we heard from a school that recently went live with 35 student sessions and had great response times ("the machine is coasting along at 10% cpu utilization"). Non-disclosure restrictions are not lifted for everyone. Sites that are beta-testing subsystems which were not released with the initial MPE XL system are still restricted. We presume that means HPDESK and the like. Also, third-party FastStart companies such as ourselves are still restricted from passing on any performance or reliability information that we obtain from HP. We face no restrictions regarding performance information received from our customers, so please call with your experiences. Rumors of New Machines. The HP user community is buzzing with rumors of new computers from Hewlett-Packard, all expected to be announced on April 7th. The Sakura is a desktop Classic 3000 including disc drive and tape backup in a case the size of a Vectra, supporting four or eight users and starting at $12,000. Sounds like a great home computer. The 955 or 960 is an upgrade to the 950 Spectrum machine. The 925 is the MPE XL version of the previously announced 825 UNIX machine. Some people even talk about a 935 upgrade for the 930, although others dispute that. Ramdisc/3000. The RAM disc is a common feature of PCs and has finally come to the HP 3000. Ramdisc/3000 is a new product from Kelly Computers that consists of extra memory boards for your HP 3000, plus software drivers to allow you to create "ram discs". You put frequently-accessed, but disposable or read-only files on the ram disc to boost performance. Likely candidates are SORTSCR, USL files, the intrinsic file, forms files, small read-only databases, and the temporary files used by all compilers and 4GLs. The ram disc size is typically from 4 to 24 megabytes, although up to 100 megabytes is possible. Where physical discs are limited to about 30 accesses per second, the ram disc is capable of 600 accesses per second. This first implementation of the ram disc on the 3000 has some limitations: the ram disc holds only private volume groups, and the ram disc is lost on system failure. But, if enough people buy the product, we are likely to see more general ram disc software in the future. WRQ Newspaper Article. Recently, the Seattle PI newspaper wrote an interesting article about Walker, Richer and Quinn, producers of the Reflection terminal emulator. The headline read "Software Skyrocket". My favorite line was a quote from Doug Walker, explaining how Craig McKibben, another WRQ principal, talked him into taking up programming: "He convinced me programming was an easy life and you didn't have to know anything." The Joys of 9600 Baud Over Voice Lines, Part II by David Greer Last year, I reported our experiences using a Microcom 9624 modem to achieve 9600 baud over voice lines. Since then, we have also tried the US Robotics Courier HST modem. Both of these modems require one configuration at the computer end and a different configuration at the terminal end. Readers should be aware that we make extensive use of character mode, and we are sensitive to minor differences in displaying lines and the processing of Control-Y and Control-S. Many of our concerns won't matter to block-mode users. Microcom 9624. After reviewing my last article, I realized that there was no concise summary of the modem settings. The modem at the computer end should be configured with the following switch settings: Front Rear 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 U U U D U U U U D U U D U D D D After setting the switches on the modem, you must connect the modem to a terminal set for 9600 baud with no parity. Then you type "45" and hit Return followed by "HP1" and Return. There will be no verification from the modem because our selection of switch settings disables all status messages. Now you can connect the modem to the ATP (or ADCC). At the terminal end, we use these switch settings: Front Rear 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 U U U D U U U U U U U U U U U U We use an HP Vectra with Reflection 1 version 2.2 configured for 9600 baud with no parity. The commands used to configure the modem are (each sequence ends with Return): "45", "INIT", "SBRK1", "SX1", "SMAUT", and "HP2". US Robotics Courier HST. As with the Microcom modems, we had to make several configuration changes to get the modems working. When you connect a Courier modem directly to an HP 3000 port, use these switch settings: Rear Quad 1 2 3 4 5 6 7 8 9 0 Up U U U D U U U U U U After setting the switches, the modem must be connected to a terminal set for 9600 baud with no parity. The commands used to configure the modem are (each sequence ends with Return): "AT", "AT&F", "AT&I3", "ATS7=120", and "ATS21=40". Our original modem would hang if a Control-S was typed at the MPE colon prompt, and it would disconnect whenever block mode was used at 9600 baud. US Robotics gave us a ROM upgrade (version 964.4) that fixes both these problems (it takes five minutes to install). You can check your ROM version by typing "ATI7", which should print "Supervisor date 11/25/87, Supervisor rev 4". At the terminal end, we used these switch settings: Rear Quad 1 2 3 4 5 6 7 8 9 0 Up U U D U D U U D D U Most of the the default factory settings are correct for the terminal end; we need only enter one command: "AT&I4". Comparison of the Modems. The US Robotics modem was easier to install and configure, and its command set includes four help screens (try "AT&$"). We prefer the Microcom verification, which is accessed by "HELP", to the US Robotics verification (use "ATI4"). It took longer to figure out the configuration settings for the Microcom, but it works better in character mode. Listing a file to the terminal is fast and scrolling is smooth. The US Robotics modem pauses slightly at random intervals for a tenth of a second, and I found this particularly irritating. QEDIT's modify command also seemed harder to use with the US Robotics modem, because echoing a character seems to take slightly longer than with the Microcom. File Transfer With Reflection. You must reconfigure Reflection to run pclink with ;parm=1 in order to do file transfer with either of these modems. This option forces Reflection to transfer all characters with a value less than space (32) or greater than del (127) as a two-character sequence. This is not the same as Advancelink's seven-bit option. Because the parm=1 option slows file transfers significantly, Walker Richer and Quinn have experimented with turning off the ENQ/ACK options of the Microcom modem. Running pclink with ;parm=0 (the default) will work and file transfers are faster, but character-mode displays are so slow that unless the modem is used exclusively for file transfer, we would not disable the ENQ/ACK features. File transfers were 15% faster with the Microcom. The Network Engine. We wanted to connect the US Robotics modem at the computer end to a Network Engine from Telamon. This meant reconfiguring the modem to allow dailing in or out. We used the following switch settings: Rear Quad 1 2 3 4 5 6 7 8 9 0 Up U U D U U U U D D U We also connected the modem to a terminal set for 9600 baud with no parity and entered the same AT configuration commands as above. Turning the Microcom Into a Hayes-Compatible Modem. By default, the Microcom uses its own "SX" command set. Recently, we've been developing Reflection command files and it's a pain to have two sets: one for Hayes-compatible modems, and one for the Microcom modem. The Microcom can be changed into a Hayes-compatible modem. We changed our terminal modem to the following switch settings: Front Rear 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 U D D U D U U D U U U U U U U U The AT commands used to configure the modem are: "AT", "AT&F", "AT\K1", "AT\X1", "AT\N3", "AT\Q1", "AT\G0", "AT\J0", "ATS2=0", "ATS8=2", "AT&D2", "ATX4", "AT\H2", and "AT&W". We didn't change the computer modem, since we don't use it for dialing out. Conclusions. It's wonderful having 9600-baud communication over standard dial-up lines. We like both the US Robotics Courier and the Microcom modems. Because of the better scrolling and the faster file transfer, we would choose the Microcom modem over the US Robotics. Local pricing and service may be the final item that makes the decision for you. SUPRTOOL Definitions From the QSCHEMA by P. Wood Wesson, Taylor, Wells & Assoc., Inc. The use of Robelle's SUPRTOOL is increasing at our clients. Our clients use SUPRTOOL to increase the speed of the select and sort process. The techniques described in the SUPRTOOL User Manual show how to fill a QUIZ subfile with SUPRTOOL. What is not discussed is how to use the definitions available via the QSCHEMA to select in SUPRTOOL. The IMAGE database definitions are available in the root file, and SUPRTOOL can use them. But when the file is not an IMAGE dataset, DEFINE statements must be entered into SUPRTOOL. This paper presents a technique to get these definitions out of the QSCHEMA and save them in a file. We keep this file in the SUPRSRC group, and USE it in SUPRTOOL. Thus, almost all of the fields in a file will be defined and can be used in SUPRTOOL IF, EXTRACT, and SORT commands. Overview of Technique. The idea is simple. First, you get the definitions from QSHOW into a text file that can be manipulated with an editor. Then you massage the text file until it contains the SUPRTOOL syntax to describe the data file. Finally, you save the definitions as DFxxxxxx.SUPRSRC and USE it in subsequent SUPRTOOL select and sort jobs. Acquiring the Edit File. An editable file is built using the :RUN ...;STDLIST=option of MPE. Setup is straightforward: :purge mylist :build mylist;rec=-80,16,f,ascii;disc=320,32 :file qschemac=osbnamec.pub.boss Before you can proceed, you need to check the current UDC for QSHOW using the HELP command of MPE: :help qshow HELP prints the UDC definition on the terminal. Finding the RUN command shows how to run the program, and gives the fully qualified name of the program. The final MPE command will look something like this: :run qshow.current.cognos;info=" ";stdlist=mylist When you run QSHOW with STDLIST redirected into MYLIST, you do not see any of the normal prompts. However, the user input is echoed, so just press the `s' (i.e., first character of "showfile" command) until it shows on the screen. Then you complete the QSHOW commands: showfile filename exit QSHOW writes the listing to the file MYLIST. Fixing the Definitions. Now bring the definitions from QSHOW into your favorite text editor. I use: :run qedit.pub.robelle /text mylist; list lp all This will also make a hard copy of the QSHOW definitions of the file for future use. Specific techniques of editing are dependent on the editor. I like to start by deleting the superfluous lines, the ones that head each page of the listing, etc. Then I put in the DEFINE keyword: /change 1 "DEFINE" all /change "DEFINE "DEFINE" all will do that and shrink the line length. This leaves room in the lines for subsequent editing. Next I delete the field types. /change " CHARACTER" " all /change " INTEGER" " all /change " ZONED UNSIGNED" " all /change " INTEGER UNSIGNED" " all These changes also shrink line size. Then I delete the period (.) that precedes the field-names if a field is redefined in the QSCHEMA: /change "." " all Now the real work begins. I use QEDIT's visual mode to insert the commas (,) needed by SUPRTOOL between the field-name, the start position and the length, and to align the columns for appearance. Just type: /vi first and dive in! Adding the field types is done with the aid of the listing that was printed before changes started. Conversion is on a case-by-case basis: *CHARACTER fields need no work. SUPRTOOL defaults to BYTE type. *INTEGER fields go to DOUBLE (4 bytes long) or INTEGER (2 bytes long). *INTEGER fields that are 8 bytes long may not be handled by SUPRTOOL. More research is needed here. *ZONED UNSIGNED convert to DISPLAY. If the fields are dates, then more stuff can be done. Finally, ITEM statements are inserted for all the date fields. This allows SUPRTOOL to do date-based record selection, such as IF DATE-ENTERED = $TODAY (see the SUPRTOOL User Manual). The file is saved into the SUPRSRC group. Give it the same name as the file being defined, with a 'DF' prefix to indicate that it is a definition file. Put a comment block at the first line of the definition file to document it for future users. Especially important are dates of creation and changes, so the user knows that the file matches the current data. Checkout and Use. You can use SUPRTOOL to check the syntax of the definition file. Simply: :run suprtool.pub.robelle >input filename >use DFname.SUPRSRC and watch for any syntax errors. The ABORT command ends SUPRTOOL without any action taking place. Fix the syntax errors with another trip through an editor, and repeat the above until the file is syntactically correct. Most QUIZ jobs that use SUPRTOOL have three phases: *Set up a subfile to be loaded by SUPRTOOL with QUIZ or QTP *Use SUPRTOOL to load the subfile *Create the report (or another subfile) Consult the SUPRTOOL User Manual for details. :run suprtool.pub.robelle >input filename >use DFname.SUPRSRC >if {job-specific select criteria} >sort field-name {optional sort of the extracted data} >output outfile, erase {QUIZ/QTP defined subfile} >exit Final Note. A variation on the foregoing is available for subfiles that are not defined in the QSCHEMA: use QUIZ instead of QSHOW. The set-up is the same as in the section Acquiring the Edit File, except you use HELP QUIZ instead of HELP QSHOW. Then a run command is entered, such as: :run quiz.current.cognos; info=" ";stdlist=mylist Again there are no prompts, so enter these commands: access * {subfile - must be on system} show elements exit and edit the file MYLIST. Specific edits will differ from the ones above. The QUIZ show format is not like the QSHOW one. I recommend that you get a hard copy of MYLIST to plan an editing strategy. Automating the Editing. After Mr. Wood sent us his first report, we suggested a few improvements to automate the process. Mr. Wood added these comments. A USE file can be created for some of the common QEDIT commands. The following can be used for files created using QSHOW: /dq 1/16 {Remove heading lines} /cd 64 "," all {Insert comma after type} /cq 69 "," all {Insert comma after offset} /cq 1 "DEFINE" all {SUPRTOOL's define command} /cq "." " all {Remove the quiz-defined indicator} /cq "DEFINE "DEFINE" all /cq "CHARACTER" " all /vi first Editing is still needed to flip the type behind the byte length. Editor's note: there is no built-in way to copy columns with QEDIT, but there is an obscure QLIB /p routine that will do the job. The COPYCOL routine could help automate the switching of the type and length columns. Robelle advised that INTEGER will work for both single and double so DOUBLE should not be needed. The starting position of a field is zero-indexed in COGNOS, and one-indexed for SUPRTOOL. Each number in that position will have to be increased by one to make it come out right. If the text was derived from SHOW ELEMENTS against a subfile, the following will take out some of the work: /dq 1/9 {Remove heading lines} /cq ")"," all {Comma after type} /cq 49 "," all {Insert comma before type} /cq 29 "," all {Insert comma between name and offset} /cq 1 "DEFINE" all {SUPRTOOL's define command} /cq "CHAR " " all {SUPRTOOL's default type is byte} /vi The definitions derived from subfiles have many differences from the ones from QSHOW. For one thing, the lines all seem to appear twice! And the starting positions aren't listed - just the type, scale, decimal, and picture. The starting positions must be figured out from that. It can be seen from listings of the derived files that this is about as much as can be automated. Of course, a COBOL program could be written to parse the whole wretched mess . . . Conclusions. I am using the above technique to create definition files for such production QUIZ reports as I am assigned. It does take a bit longer to get the first report off a non-IMAGE file, but I feel it will increase programmer productivity as subsequent reports are required from the defined file. Technical Tips Copying Programs From MPE XL to MPE V. Under MPE V, a program file has only one extent. Under MPE XL, it may have several; in fact, it usually has at least two. If you PREP a CM program on MPE XL, then STORE it to tape and RESTORE it under MPE V, the system software is supposed to take care of converting the program file to one extent. However, if you copy the program file over NS from MPE XL to MPE V, you will not be able to run the program on the MPE V system: "Invalid program file." One workaround is to use :FILE Out=progname; dev=,1,1 and copy to *out. Abortjob Tip. On MPE XL, if you want to abort a job or session, do BREAKJOB first, then ABORTJOB. For some reason, this is much faster than just an ABORTJOB. Detecting MPE XL in Jobs. To detect whether you are running on MPE XL or MPE V in a job stream, do a CACHECONTROL XXXX command. On MPE XL this will fail with CIERROR = 9103. If you are on any other version of MPE, you will get some other error message. Copying Running Programs Under MPE XL. When an MPE XL program is running, the program file is open with lock access. If you try to make a copy of the program file with FCOPY or list it with QEDIT, you will get a file system error 48. Workaround: use :FILE x=progname,old;lock and list or copy *X. Or, use SUPRTOOL to copy the program file; it automatically switches to lock access if needed (as does version 3.6.3 and later of QEDIT). Configuring CSTBK. The performance of MPE Auto-Allocate is governed by the sizes of four MPE tables: code segment table (CST), code segment table extension (CSTX), CSTX block table (CSTBK), and loader segment table (LST). Most people who use the MPE Auto-Allocate feature have seen that the first table to reach its limit is CSTBK, and that SYSDUMP doesn't seem to have a prompt for increasing its size. In fact it does, but it's not called CSTBK. The prompt is MAXIMUM NUMBER OF CONCURRENTLY RUNNING PROGRAMS. John Beckett at Southern College reports that on his system CSTBK gets set to eight higher than whatever value he specifies for the "concurrent" prompt. This appears to be normal. John Luxton at Canadian National Railways warns that CSTBK must still be the first of the four tables to fill up. If another table is allowed to fill up before CSTBK does, say CST entries, then auto-deallocation will not work properly and you will get "Out of CST entries" messages when you run programs. The short-term workaround is to turn off Auto-Allocation, while the long-term solution is to configure CSTBK so that it is large enough to be useful but small enough to be the first to fill up. VPLUS and COBOL II. COBOL II allows you to call intrinsics using the call intrinsic "FOO" construct. This allows the compiler to ensure that the parameters passed to the intrinsic are correct (byte vs word address, value vs reference, etc.). But if you do this with VPLUS intrinsics, VPLUS doesn't work any more. You must set the v-language field of the comarea to 5 (Pascal) to make it work. This works well on MPE V, and may be a useful trick on MPE XL if you plan to migrate your COBOL/VPLUS applications. About Robelle Swedish Fishing Trip and Amusement Park. Robelle Consulting is joining with Ole Nord AB (our dealer in Scandinavia) to sponsor both a fishing trip party and amusement park tickets in GÖteborg. The fishing boat can hold only 150 people, so if you want to go, request it on your registration form (first come, first served). Everyone else will receive tickets to go and have fun at the amusement park in GÖteborg. Robelle Products: Problems, Solutions, and Suggestions SUPRTOOL Version 2.9 and 2.9.1 MPE XL. When using SUPRTOOL to copy a file from MPE XL to MPE V, don't ever press Control-Y. This can cause a system hang of MPE XL. In fact, any use of Control-Y over NS is dangerous with MPE XL, so avoid it. QUIZ. Last year, we recommended using QTP to create the empty QUIZ-subfile that SUPRTOOL fills with data. The reason is that QTP allows you to `set process limit 0', while QUIZ insists that the limit be at least one. If you have a master dataset with only a few entries, or a detail dataset with many deleted entries at the beginning, QUIZ will create a delay in producing the empty subfile. [Gary Arehart] ASK MANMAN. Are you using SUPRTOOL with ASK MANMAN? We would like to hear about your experiences integrating SUPRTOOL into the ASK software. QEDIT Version 3.6 MPE XL, NS, and VISUAL. When you use NS with MPE V and MPE XL, it is possible to be running QEDIT on one machine while your terminal is connected to the other. In this case, QEDIT 3.6 will assume that your terminal is connected to the machine that QEDIT is running on and VISUAL mode will not work. Temporary workaround: use set vis ignorecpu on when the terminal is connected to MPE V and QEDIT is running on MPE XL. For the reverse case, you will need the latest QEDIT pre-release. 700/92. If you don't like the way QEDIT 3.6 uses the 132-column mode of the 700/92 terminal, change the terminal ID to 2392A. Fixed per user feedback in QEDIT 3.6.2. NM Compilers. QEDIT 3.6 will not work with NM compilers. Workaround: KEEP your file first, then XEQ command file. Solution: you need QEDIT 3.6.2, including the new UDCXL.CATALOG.ROBELLE. VISUAL on MPE XL Console. The MPE XL console is not connected to the DTC; it goes through a different interface. To use VISUAL mode on the console, you must have ENQ/ACK handshaking enabled, as well as XON/XOFF.