What's Up DOCumentation Robelle Consulting Ltd. Unit 201, 15399-102A Ave. Surrey, B.C. Canada V3R 7K1 Phone: (604) 582-1700 Fax: (604) 582-1799 Date: March 15, 1991 From: Robert M. Green, President David J. Greer, Research & Development Michael Shumko, Customer Support Jim Bird, Customer Support To: Users of Robelle Software Re: News of the HP 3000, 1991 #2 What You Will Find in This News Memo: News Tidbits Qedit Version 3.9.1 Released Technical Tips Introducing Software Research Northwest, a Robelle VAR Updating Records with Suprtool and Query About Robelle Robelle Products: Problems, Solutions, and Suggestions News Tidbits Single Bit Memory Errors Not Corrected. The 950/955/960/980 spus, and their HPUX counterparts, have a serious hardware bug which can lead to data corruption. Error Detection and Correction (EDC), the feature that protects you from hardware errors in main memory, can become disabled on one or both memory controllers! This can happen when you experience a power failure and your system recovers by itself, or if you experience a system abort, and you restart the system with TC (Transfer Control) instead of RS (Reset System). "This leaves the memory controller unable to detect and then correct any single bit errors. If a memory location with a single bit error is read when EDC is disabled, the data will be passed through the memory controller as is. This can lead to data corruption, and/or system panics, and/or strange system behaviour. This situation will remain until the system has been completely powered-off and reset." [From PA-News, an HP internal publication, December 21, 1990.] A software patch, MPEDXE8, which fixes this problem is available for all spus except the 980/100 (and 870/100). If you upgrade to MPE XL 2.2, this is included in the PowerPatch. From CSY News #291: Fortunately there is an easy and very painless way to tell if EDC is enabled. Using DEBUG you can read the register on the memory controller that contains the EDC bit. This is a lot easier than it sounds. First you will need to go into Priv Mode DEBUG [sign-on as a user with PM and enter the DEBUG command]. Then do the following: $1 ($8d) nmdebug > dz fff80038 {Memory controller 1} REAL $fff80038 $ 00000100 |____ 1=EDC enabled, 0=EDC disabled $2 ($8d) nmdebug > dz fff81038 {Memory controller 2} REAL $fff81038 $ 00000000 |____ 1=EDC enabled, 0=EDC disabled! Note: You may find other bits set in this word but they are not of interest. If memory controller 2 is not present then the dz command will return an error. [Thanks to the SIGSYSMAN News Bulletin and Scott Hirsh for this warning.] Fantasia Enhanced to Read Qedit Files. Fantasia, a software package for doing fancy things on LaserJets, has been enhanced by the author, Martin Gorfinkel (remember him, one of the creators of TDP?) to read Qedit files. The next release of Fantasia by Proactive will have this feature, probably some time this summer. Soliciting Command Files. If you have put together an ingenious Qedit command file that you would like to share with other people, or if you have made Suprtool do backflips, send us your ideas for inclusion in the newsletter. Windows 3.0. We have been using our products with Windows 3.0 and Reflection 1 for Windows and find that most things work fine, including Visual mode. However, printing to the attached printer can be frustrating. When using Record Mode (i.e., List $Record in Qedit or .out(r+) in Prose), Reflection must pass the characters to be printed to Windows. If you configure the printer as a LaserJet, Windows insists on sending Escape Sequences of its own to configure the printer, which foul up the Escape Sequences sent from the HP 3000. If you configure as a generic printer, Escape Sequences go through okay, but each line is truncated to about 80 characters, making it impossible to do proportional formatting with Prose. If anyone knows how to get around these problems in Windows 3.0, they should let us know. Qedit Edits Copylibs and Much More Those of you who are Qedit users should have received an update tape recently with a new version of our full-screen editor. This year we have added an incredible array of new features, many of them popular user requests from the Enhancement Survey that we did last summer. Those of you who have never used Qedit may find the enhancement list a bit obscure, since you don't know what Qedit did before. Qedit is a fast, consistent, full-screen editor for MPE systems, a home where programmers and operators can spend their days editing source code, launching job streams, compiling and testing programs, and switching between the many programs they need (i.e., Quiz, Suprtool, MPEX, e-mail, application packages, etc.). Some of the new features in Qedit version 3.9.1: * COBOL Copylib members can now be listed, edited and purged! * Coberr utility allows trapping syntax errors on COBOL compiles. * New, fast interface between Qedit files and the NM Compilers on MPE XL. * :If logic now works at the line-mode prompt and fully in USE files as well. * :Elseif, :Return and :Pause Command of MPE XL added to Qedit's capabilities. * Lockwords on MPE XL. The Open and Shut Commands remember lockwords. The * Command parameter will automatically include /lockword. You are only prompted for the lockword once on a Text/Keep. * Text and List NM spoofles as #1234 (no group or account), even open ones. * Redo commands handle multi-word searches and @-searching. The Redo stack has been expanded to hold your last 1000 commands. There are more Redo and Listredo features, such as OUT=, REDO -5 (relative order). * Sort a range of lines with a new command, Lsort, (one to four sort keys). * The HP-style Modify Command lets you to use >, >D, >R, and D>. * Tag your COBOL source changes with today's date and your initials. * Last year's three Qedit manuals have been combined into one and updated. * Justify Command formats paragraphs into a hold file and can check with you before updating more than 5 lines (so you don't turn your Fortran program into mush!). If you are a Qedit user still on service with us, you will receive an update tape automatically. Others interested in Qedit (former users!) who would like to try out the new features, simply call Robelle at (604) 582-1700. Trial tapes are free of charge. You can use Qedit on your own system and see how it suits you. Note: Qedit is fully supported on MPE XL, and there is no upgrade charge. Along with this newsletter you'll find a data sheet that introduces some of the features of Qedit. If you are already a Qedit customer, why not pass it on to a friend. Technical Tips Setting COBOLX Tag to !hpuser. On MPE XL it is possible to configure Qedit so that any changes made to COBOLX source will be tagged with your logon user name or session name automatically. Create a command file with the statement: /set x "!hpuser" and invoke the command file in your Qeditmgr file. Qedit will substitute the variable !hpuser with your logon user name. To tag modified lines with your session name, use !hpjobname. :Spoolf Command. :Spoolf is a new command introduced with the native-mode spooler on MPE XL 2.1 that lets you work with groups of spoolfiles. HP packed a lot of power into this command - maybe too much. Someone on the console wanted to see all of the spoolfiles for the shipping printer. So they tried: :spoolf O@;dev=shipping;show Shazam! This command altered every spoolfile on the system to the shipping printer: the "show" option just displayed each spoolfile as it was being altered. The user meant to enter one of these commands: :spoolf O@;seleq=[dev=shipping];show :listspf O@;seleq=[dev=shipping] You may want to create command files for standard spoolfile maintenance functions to shield users from :Spoolf. Invalid Entry Point on MPE XL. Running a native-mode program with an invalid entry point on some versions of MPE XL produces a misleading error message. For example, if you run CI.PUB.SYS with an invalid entry point, you will get the following error message: :run ci.pub.sys,test FAILED TO LOAD PROGRAM CI.PUB.SYS. (LDRERR 469) FILE IS NOT A VALID PROGRAM FILE. (CIERR 630) The CI program is a valid NMPROG file. It is just being run with an invalid entry point. Purging Groups of Files with Qedit. Here is a simple jobstream to purge a group of files, using Qedit as a production work horse. Courtesy of Christopher Hart at BTS: !job cleanup,user/pass.acct,group;outclass=,1 !build flist;rec=-80,16,f,ascii;nocctl;disc=10000,32,1;temp !file flist,oldtemp !comment List files to be purged into a temporary file !listf @.group,6;*flist {Listf,6 available on MPE XL} !comment Use Qedit to do all of the work !run qedit.pub.robelle;parm=128;& ! info="t flist;c 1 'purge ',@;use *" !eoj Question of the Month. One of our customers reported that their terminal hung when they tried to Keep a file in a Qedit. It turned out they had previously issued a :File equation for that filename to the tape drive, and Qedit was waiting for the operator to mount a tape and reply: /file xyzzy;dev=tape /k xyzzy {process hangs} Of course, this same problem can occur for the Text command. Does anyone know if there is a way to check if the Fopen intrinsic will request a tape before actually calling it? Introducing Software Research Northwest, a Robelle VAR Robelle has a Value Added Reseller program which allows suppliers of application software, such as accounting and manufacturing packages, to bundle our tools into their products. Most of the VARs are for Suprtool, but we also have VARs for Qedit and even Xpress. One of our most successful VARs is Software Research Northwest (SRN), located on Vashon Island in Washington State. Wayne Holt, president of SRN, was kind enough to answer questions for What's Up Doc about the company, its product IRIS, and how they have integrated Robelle's Suprtool into their package to help make it perform as fast and efficiently as possible. SRN is a multi-faceted company in the HP community. It is known for its SPLash!, Wings, and Nuggets products, although much of its business is generated through vertical applications development for higher education. SRN has been in business since 1982, and was one of the first HP Premier Solutions Providers in higher education. IRIS is the name of the package that SRN provides to colleges, and stands for Integrated Records Information Systems. This package includes several administrative modules handling student-related records from admissions through alumni and fund-raising. IRIS handles a wide variety of information which is stored in multiple related databases. The databases are heavily indexed using Omnidex for fast retrieval of many combinations of information. Then, depending on the amount and type of information being requested, either Omnidex or Suprtool is called to get the information for a report. Suprtool has been integrated into the application so that it is almost invisible to the end-user. Suprtool also comes in handy for ad hoc tasks such as writing data to tapes which are sent to a mailing house for processing. SRN has been a Robelle VAR since 1987, and was one of the first companies to take advantage of our VAR program. They currently employ about thirty people, and IRIS is installed at seventy-five colleges and universities around the United States and Canada, including Stanford and Notre Dame. Updating Records with Suprtool and Query There are times when you need to serially read a big dataset and update a few selected records. Suprtool is very fast at selecting the records, but unfortunately you can't use Suprtool to update them. You could use Query to find and update the records, but it will be very slow. If the entries that you have selected are identified by a unique IMAGE key (for example, if you are serially reading and updating entries in a big master dataset), you can use Suprtool to generate a list of key-values for Query, and use Query to update the records. 1. Select the records to be updated with Suprtool, and extract the key-values. For each key-value, build a Query Find statement. :run suprtool.pub.robelle >base sales,5,readpass >get cust-mast >if cust-status="I" >extract 'find cust-number="' {build Query Find Command} >extract cust-number {cust-number is the key} >extract '"' >output keylist,temp >exit The keylist file contains Find Commands for the key-values: find cust-number="187654" find cust-number="876677" 2. Using an editor, reformat the list of key-values into a Query XEQ file. After each Query Find statement, we need to add a line with the Query Update statement. :run qedit.pub.robelle /add {create Qedit command file} :beginfile replace update replace,amount="0";end {Query Update command} :endfile replace setjcw cierror = 0 while cierror = 0 do /a *=replace continue /l *+1 endwhile // /keep makexeq,yes /t keylist /makexeq /purge makexeq /set keep ascii on {Query XEQ files must be ASCII} /k xeqfile,temp /exit The Query xeqfile contains Find and Update Commands: find cust-number="187654" update replace,amount="0";end find cust-number="876677" update replace,amount="0";end 3. Retrieve and update the selected records with Query. :run query.pub.sys >base=sales >set=cust-mast >xeq xeqfile >exit About Robelle Southern College. Who is Southern College and why are they sending you tapes? Southern College of Seventh-Day Adventists in Tennessee is our tape distributor for the United States. Each year when we release a new version of Suprtool and Qedit we send master tapes to Southern College, where they are duplicated and distributed to our U.S. customers. Capilano College in Vancouver performs a similar service for our Canadian customers. Do You Need More Than One Tape? Every year we distribute a new version of our products to all customers on service. Our standard service policy is to send one product tape to each site. This tape can be in one of three formats: DAT (also known as DDS) 1600 BPI magnetic tape Data Cartridge (used on Series-37 and Micro-3000s) If you have several different CPU models you may need software updates on more than one storage format. In the past we required you to purchase a separate maintenance agreement (at $800 US/$960 CDN) for each tape. To better accommodate you we now have an option to purchase additional storage media for every software update. The cost is $250 US ($300 CDN) per year for each additional tape. If you would like to take advantage of this new option for your next Robelle software update, please contact our office. Rosemary. A new face at Robelle is Rosemary Van Poelgeest who is working with Marie Froese in the Sales Department. Sales is a relatively new area for Rosemary and she is finding it very challenging. Rosemary enjoys working in the customer service industry. After spending six years with the Canadian Automobile Association in Alberta and British Columbia and the last year working with her husband in their restaurant in White Rock, B.C., she was no stranger to the telephone. Rosemary's hobbies include golfing, skiing, camping, reading, most sports, and fishing (if someone else will bait the hook, and clean the fish). Robelle Products: Problems, Solutions, and Suggestions Qedit Version 3.9.1. Set Vis Direct. This option to switch the terminal into 132-column mode in visual is only for users of special HP clone terminals that were manufactured by Direct, now Zentec. Do not use this option for 700/9x series terminals. Qedit will automatically switch 700/9x terminals into 132-column mode as required. Set Limit MPE Off. When installing Qedit on MPE XL, the Qcompxl.Qeditjob will not work if you have Set Limit MPE Off in your global Qeditmgr file. COBOLX Tags May Be Lost. In our January newsletter we reported a problem with Qedit 3.9.1 where Qedit will lose the modified-line tags in a COBOLX file if you set the X string to null with List off and then Keep the file. We have found another problem where Qedit will strip the tags from a COBOLX file if you Set X "" List Off and then text a COBOLX file: /set x "" list off /t coberr.source Qeditscr Warning: Overflow {Qedit strips the COBOLX tags} 700 lines in file Here is a patch to Qedit 3.9.1 to fix this problem (don't forget to re-Octcomp Qedit on MPE XL after patching it): :run patch.pub.sys FILE=? Qedit.Pub.Robelle ?M,1,2676 141306,0 ? {return} Problems with Reflection File Transfer. Two problems that we have recently encountered with Reflection file transfers have been fixed in the latest release of the Reflection host file transfer programs: PCLINK 6.10 and PCLINK2 1.05. You can get a copy of these programs from WRQ's bulletin board (206) 322-8047. 1. The new PCLINK2 program distributed with Reflection version 4.0 loses data when transferring Qedit workfiles to ASCII text files on the PC. 2. As of MPE XL 2.1, PCLINK and PCLINK2 may abort with Quit PARM=1 when trying to upload and download files in a batch job with the REFLECT SEND and REFLECT RECEIVE commands. The problem has to do with a change in MPE XL 2.1 where batch jobs are assigned very large virtual ldev numbers. Problem with C/XL Compiler Interface. There is a problem with the new C/XL NM compiler interface on some releases of MPE XL. When you text a file, make some changes and compile the current workfile (CCXL *) your changes will not be noticed by the compiler. The original text file will be compiled instead. You must keep the file before compiling. We are working on a solution. :Stream Resets Dirty Flag. When you text a file, Qedit copies the contents of the file into a workfile, and marks the workfile as 'clean'. Once you make changes to the workfile, it is considered 'dirty'. Qedit uses this internal flag to see if it is safe to clear the workfile (for example, by Texting another file, or purging the current workfile with the Destroy * command). To see if your workfile is clean or dirty, do Verify Open. The dirty flag is reset to clean if you Keep the file, or stream the current workfile with Stream *. This is so that you can stream jobs from templates, inserting passwords, etc., without having to answer YES to clear the workfile on the next Text command. If you don't want Qedit to reset the dirty flag when streaming the current workfile (so that Qedit won't let you Text over your workfile or exit without reminding you to save your changes), you should shut the workfile and then stream it. This is handy when you want to make changes to a job, test it, and keep the file once you are satisfied with the changes: /t fulldump.job /c "xyz"abc" @ {make some changes to the job} /sh;stream * User-Defined Function Keys in Visual. To help reduce typing in Visual Mode it might be useful to redefine some of Qedit's function keys as local function keys that contain strings. You may want to redefine the f1 key for instance, so that instead of executing the Update/GetNext function, it will display the string filler pic x(. The problem is that Qedit will steal your function key definitions when you enter Visual Mode. You can work around this by creating a command file that contains the escape sequences to define your function keys, and execute this command file at the homeline once you are in Visual Mode. Qedit only initializes the function keys on the first time that you enter Visual Mode; after that it assumes that they are okay. Here is a MPE XL command file to re-define the f1 key to filler pic x(. echo ![CHR(27)]&f0a1k6d13Lfillerfiller pic x( echo ![CHR(27)]&jB {chr(27) is escape} We recommend that you don't redefine more than a couple of Qedit's function keys at one time (at least leave the f7 and f8 keys). You could have several files with different local function key definitions. Enter Set Vis Stop at the homeline to re-assign Qedit's function keys. File Transfer While In Visual. If you are at Qedit's "Next command [Visual]" prompt, and start a Reflection file transfer from the Alt-Y command line or Reflection's file transfer menu, your terminal will get locked up. This is because the first thing that Reflection sends out to the PC is a Return to see if you're at the slash or colon prompt. But Return at this point tells Qedit to re-enter Visual Mode. So Reflection waits forever for the correct prompt from the HP 3000. There are two remedies at this point: 1. ABORTJOB the session. Pretty drastic. 2. Abort the file transfer, get back to the MODES keys, turn on BLOCK MODE and AUTO LF, then press f9 to get the USER KEYS, and press f8 to try to exit from visual mode. In a little while Qedit will timeout trying to read the screen (be patient), at which point you can try pressing f8 again to exit Visual Mode. Once you are back at the /-prompt, restart the Reflection file transfer. If all this doesn't work, go back and try remedy #1. No // At End Problem. Occasionally you may encounter problems in Visual Mode where Qedit cannot read your terminal screen. You will get the error message No // at end, so no UPDATE (see QSCREEN) even though the template line containing the "//" is clearly visible on your screen. If this happens, try powering your terminal off, wait about 30 seconds and power it back on. This may fix your problem (we're not sure why). We have seen this with 700/92 and 700/94 terminals, 2394 terminals, even a PC running Advancelink. Editing Long Lines in Reflection. Qedit widens the display memory on PCs with Reflection when editing files with long records in Visual Mode. Although only 76 columns are displayed on the screen, you can scroll left and right using the Control Left-Arrow and Control Right-Arrow cursor keys. To move to the end of the line, press the END key. To return to the beginning of the line, press HOME. You need Reflection version 1.40 (R1) or version 1.55 (R3/R7) or later. Suprtool Version 3.2 Combining Chain with If. Suprtool's Chain Command selects an IMAGE dataset and defines the IMAGE search path used to access the dataset and the set of key-values to search for. Keep in mind that if you need to specify additional selection criteria, you can combine the Chain Command with the If Command: >chain d-sales,cust-account="1234" >if sales-qty > 100 {Records for customer "1234"} >out outfile {where the sales-qty is > 100} >xeq Fortune Cookie of the Month Wow, there it is again... The feeling that I've used this mustard before. Man having Dijon Vu. [Heath cartoon] set tablesize limit is 15 also document if $read Colon is Parsed in MPE XL 2.2. Jim Fierthaler discovered that MPE XL 2.2 now parses out the colon in the form= parameter of a :File Command. For example, forms=9700:1. used to have a form name of 9700:1 on previous versions of MPE XL. There is a patch to fix this, but you lose Native Mode KSAM. Isolating the Qcompxl Command Files. After Mel Mashman installed Qedit 3.9.1 on his new computer, Series 980/200 on MPE XL 3.0. He is accustomed to qedifying the classic compilers in the isolated method. He'd like to know if this can be done for the MPE XL compilers also. I told him the following changes to the qcompxl.qeditjob.robelle jobstream: BEFORE CHANGES: 1 !job qcompxl,manager.sys/xxxxxxxx,pub 101 if finfo("!cmdfile",0) then 102 /text !cmdfile 114 /keep,yes,ifdirty AFTER CHANGES: 1 !job qcompxl,mgr.techsup,cmd 101 if finfo("!cmdfile.pub.sys",0) then 102 /text !cmdfile.pub.sys 114 /keep !cmdfile,yes,ifdirty That is, change the job to logon in the group where you want the new command files to go. Change the QFIX command file to text the command file from pub.sys, and keep it in the local group. And don't forget to change your HPPATH to point to the new group. From Craig Engel at Euclid: recommends patch MPE DXF3 for KSAM/XL on MPE XL 2.2. Failure to load Qcompxl Library. Joe Campbell found a problem with the Native-Mode compiler interface. He had deleted the PUBNEW group, since he wanted to save some disc space (he had some files in the group left over from 3.8.6). When his programmers tried to compile with the NM interface, the compilers aborted with FAILED TO LOAD LIBRARY QCOMPXL.PUBNEW.ROBELLE (LDRERR 467) It appears that the PUBNEW group has to exist because we include it in the XL library list. Qoff Command. Qoff command used when switching from one terminal emulator to another, or something without logging off: option list setjcw INSIDEQEDIT = 0 setjcw RLABELDEFAULT = 0 setjcw RCRTMODEL = 0 setjcw RPCVERSION = 0 setjcw RCRTWIDTH = 0 More On Looping Command Files. Tony Parentoni at Mearl Corp figured out how to create a looping Qedit command file that will loop until a file is created to stop the loop. Does this sound familiar? It should, it's what we do in our MAILJOB command file. Let's add this to the newsmemo in case other users might want to do the same thing. Previous file ("$") incompatibility. $ is a shortcut that refers to the last external file name referenced in a Qedit Command. For example, after List XXX, Add 1=XXX, Use XXX, Destroy XXX, Stream XXX, Keep XXX, or Shut XXX, the $ filename is XXX. $ is NOT updated by the Text or Open commands, but is updated by a Shut without filename. You can use $ as a shortcut in commands that refer to an external file name (Open $, List $, Destroy $, Use $, etc.). Verify $ will show you the name of the last external file. The * shortcut, on the other hand, refers to the currently Open qedit workfile unless none is open, then it refers to the one most recently Shut. There is a bug in Qedit 3.9.1, where the Text command changes $. For example, suppose you enter these commands: /text fileA /c "x"y" /k /t fileB /list $ In previous versions of Qedit, $ would refer to fileA. In Qedit 3.9.1, $ refers to fileB. This problem has been fixed in the latest pre-release of Qedit. If it affects you, contact our technical support line for a pre-release tape. Documentation Survey. Documentation: call for user feedback Fortune Cookie of the Month Wow, there it is again... The feeling that I've used this mustard before. Man having Dijon Vu. [Heath cartoon]