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: October 14, 1991 From: Robert M. Green, CEO David J. Greer, President Michael Shumko, Customer Support To: Users of Robelle Software Re: News of the HP 3000, 1991 #6 What You Will Find in This News Memo: News Tidbits Technical Tips About Robelle Beware: This Is a Qedit Ad! Robelle Products: Problems, Solutions, and Suggestions Fortune Cookie of the Month News Tidbits New Robelle Dealers. Robelle Consulting Ltd. now has local representation in Asia. We are happy to announce our two new dealers: Hewlong Information Corporation in Taiwan, and Unionrich Consultants Ltd. in Hong Kong. Hewlong Information Corporation is the premier HP VAD dealer in Taiwan, and is partially owned by Hewlett Packard. The company name comes from combining HP with the name of one of the company's founders. Bob Green, CEO of Robelle, cemented our relationship with Hewlong in traditional Robelle fashion; he and the president of Hewlong, Mr. Ho, went to the opening of the first waterslide park in Taiwan. You can reach Hewlong Information Corporation at +886 2 322 2166. Ask for our contact there, Ms. Asta Chen. Unionrich Consultants Ltd. of Hong Kong is a small and flexible company of about 11 people, rather like Robelle itself. The marketing director, Stewart Cheung, has lived in Canada and maintains numerous Canadian contacts. Our contact there is Tim Leung, a former employee of Northern Telecom in Ontario. Tim is also an experienced salesman of PowerHouse tools and can be reached at +852 892 0993. Both companies represent Robelle's software products, Qedit, Suprtool, and Xpress. Qedit is a full-screen text editor, Suprtool is a database tool, and Xpress is an electronic mail package. Robelle's other dealers include Co-Cam in Australia, Samco in the Netherlands, Clive Oldfield in the UK, Ole Nord in Scandinavia, SWS SoftWare Systems in Germany, Austria, and Switzerland, Synergy in South Africa, and Ares in France. Robelle's galactic headquarters is located near Vancouver, Canada, and markets Robelle products to all locations not listed above. Review of Xpress Electronic Mail. The September 1991 issue of HP Professional has a review of our Xpress electronic mail product. If you're in the market for electronic mail, the article provides a good overview of Xpress. New Object Oriented Database. HP is announcing "real soon now", possibly by the time you read this, a new object oriented database called Open-ODB, which will be available on HPUX and MPE XL. Initially it will run on the Allbase core, which is what HP SQL is built on, but it is designed to run on top of other relational databases, e.g., Informix. One of the features will be the ability to attach code to an object or a field, and store the code in the database. For instance, storing a picture as an object, along will the code that manipulates the picture. Open-ODB has been in development since 1983 (under the code name Iris, we think). Technical Tips MPE XL Can Leave Files Open. The MPE XL Copy command can leave a file open if it has trouble closing it. The only workaround is to logoff and logon again. For example, copy foo.pub.sys,xyz If Xyz exists, Copy will ask if it can purge it to replace it with the new file. But if the group security is messed up, Copy may be able to open the file but not close it. In that case, the file will remain open by the Command Interpreter. You must logoff to get the CI to release files it has open. An example of messed-up group security would be altgroup pub;access=(r,x,l:any) which, by not specifying the Write, Append and Save access modes, sets them to . This means that nobody but the account manager can purge or create files in this group. [Glenn Cole] Not All DATs Are Created Equal. One of our demo users inherited an interesting hardware configuration at his site. He has a Micro XE with a Bering DAT drive (8mm, like HP, but more tape per cartridge). He can't connect his reel-to-reel drive to the system any more. The Bering drive was purchased because it holds 2.5 gigabytes and allows unattended backup. He can't access any of his archived data on tape reels and he couldn't load his Suprtool demo, even though it came on DAT (it was an HP Dat!). He is exploring daisy chaining his old tape drive to the Bering drive. In the meantime we sent him a Suprtool demo on diskette. PCTOOLS Warning. Users of the new PCTools version 7 beware. Don't use the Compress function - it can wipe out all your files! The files cannot be retrieved using the PCTools undelete or MS-DOS 5 undelete functions, but they can be retrieved using DR-DOS. Central Point is shipping updates now to all registered users of PCTools 7. [Ray Kelley] DR-DOS. One of DR-DOS's features is that it configures DOS for you. Most people don't have any clue what all that stuff in Autoexec.Bat and Config.Sys does. DR-DOS can configure it for you, and tell you all about it while it does it. [Ray Kelley] About Robelle UK Conference. Clive Oldfield, our dealer in the UK, will be exhibiting the fine family of Robelle products at Forum/HP, being held at the NOVOTEL Exhibition Centre, Hammersmith, London on the 30th and 31st of October. Mr. LaserJet Speaks. Our own Ken Robertson, aka Mr. LaserJet, will be giving a talk called LaserJet Lustre - Making Your HP 3000 Reports Shine at the Mississauga, Ontario HP office on November 12th. Beware: This Is a Qedit Ad! The following letter was sent by Vesoft to their customers. We like it so much we're reprinting it here for the benefit of our customers who may not yet have Qedit, or who may have forgotten about some of Qedit's powerful features. Dear MPEX, SECURITY, and/or VEAUDIT users: We know that as a VESOFT customer, you appreciate the value of flexible, well-designed tools. We'd like to take this opportunity to tell you about one of the most useful tools available on MPE systems (one that we use heavily here at VESOFT): QEDIT, by Robelle Consulting Ltd. QEDIT provides so many advantages to EDITOR/3000 that it would take hundreds of pages to describe them all; however, it still manages to be incredibly easy to use. For example, to list all of the lines in your file that contain the string "procedure", you simply say: /LIST "PROCEDURE" or /L "PROCEDURE" (Most commands will be abbreviated throughout the rest of this letter.) Think some of them might be in lowercase? Try: /L "PROCEDURE" (U) (The "U" means "Upshift"). Want to delete all the lines that contain the string "SYS"? Just say: /D "SYS" And to modify all of the lines that contain the string "RUN", you just say (you guessed it): /M "RUN" Don't be fooled by the fact that the Modify command has the same name as the EDITOR/3000 Modify command -- it is much more powerful. In fact (not even counting the full-screen visual mode), there are three different ways to use the Modify command: 1) you can use the normal EDITOR/3000-like D-I-R-U edits (but there is no good reason to do so); 2) you can use Control codes (e.g., type control-D under the first character to delete, then space over until you are under the last character to delete); 3) (the best way) you can use the visual-line-mode editing (called QZMODIFY), which is quite similar to VESOFT's VEMODIFY (but with a number of very useful enhancements)! Want a full-screen editor? QEDIT's visual mode takes full advantage of the capabilities of HP terminals (and, of course, emulators like Reflection and AdvanceLink) to give you the best in full-screen editing on the HP3000. It will even use 132-column mode if your terminal supports it. In full-screen mode, you can cut and paste marked blocks of text. Since we do a lot of document editing here (have you seen our 600+ page reference manual lately?), this has been a great time-saving feature. You simply type "MM" (to move) or "CC" (to copy), or even "DD" (to delete) next to the first and last line of the block you want to move, copy, or delete, and press ENTER. Then you type "B" for "Before" or "A" for "After" next to the destination of the move or copy, and press ENTER. Voila! You can also enter any commands that you can enter in line mode (this includes QEDIT and MPE commands, UDCs, and MPEX commands!). The "List" command lets you list a file (kind of obvious). But, not just the file you are currently working on: you can type: /LJ MYPROGB to take a quick look at the file MYPROGB while you are working on MYPROGA! What does the "J" mean in "LJ"? It stands for List Jump, which simply means pause at the end of each screenfull until you press RETURN. No more trying to hit CTRL-S/CTRL-Q over and over. Do you have a LaserJet? Want to print your source listings in two 80-character columns per page? You know the LaserJet will do it, but (unless you buy some expensive third-party formatting software), you can't do it from MPE. Well, QEDIT can! Just say: /SET LIST PCL10 /L $LP MYPROG.SOURCE ("$LP" means list to the line printer.) Even better, try this: /SET LIST PCL10 /L $LP $INCLUDE MYPROG.SOURCE This lists not only the file MYPROG.SOURCE, but any $INCLUDE files (embedded in the listing where the $INCLUDE line is). Very handy. COBOL programmers who use COPYLIBs instead of $INCLUDEs will be glad to know there is a way to list and modify COPYLIB members without having to run COBEDIT: /L (custrec) COPYLIB.TEST.DEVELOP There are a lot of other great features for COBOL programmers, but since we don't program in COBOL here, we don't know all of them. QEDIT can work with "flat" files through its "Text" and "Keep" commands (which, like EDITOR/3000, make a copy of the file you want to work on -- but QEDIT uses MR NOBUF and so is much faster), or you can convert your source files to QEDIT format (using MPEX, of course!)@ QEDIT format files take up less disc space, and within QEDIT you can "Open" and "Shut" them (much faster than "Text" and "Keep" because QEDIT doesn't make a copy of the file). QEDIT provides a facility that enables your compilers to read QEDIT-format source files. System managers note: if you "HOOK" QEDIT (via the MPEXHOOK facility), you can actually "/KEEP" files into other accounts. Re-logging on as MANAGER.SECURITY to make changes to the SECURCON, TERMCON, LOGOFF, or STREAMX configuration files is a thing of the past! VESOFT tech support and development consists of several fairly opinionated, independent people. One of the blessings of QEDIT is that it is highly customizable. Each of us has it configured to work in a different way within our own sessions (and each of us is absolutely positive that OUR way is the best, most efficient, most reliable, etc.!). I won't go into details about what particular things can be changed, but the "/SET" command (which you use to make most configuration changes) has more than 75 options... Sound too complicated? Don't worry about it, all of the defaults provide a good working environment, too! Since you can do virtually anything within QEDIT that you can do from the MPE ":" prompt, including UDCs, MPE/XL command files, and all MPEX commands (by preceding them with a "%") most of us actually "live" in QEDIT all day. Finally, one of the greatest benefits of buying any Robelle product is that you get a "free subscription" to the Robelle newsletter "What's Up DOCumentation?", one of the best sources of information, tips, ideas, and opinions about the HP3000 world in general (it's not just about Robelle products). Instead of the long articles you never get around to reading in "Interact", "SuperGroup", "HP Professional", and "HP Chronicle", you get short (usually 1 paragraph) nuggets of golden information (sorry about that pun). We at VESOFT would hate to have to work on an HP3000 without QEDIT. We frequently have to dial-in to sites that don't have it, and are forced to try and do things with EDITOR/3000, MPE's equivalent to MS DOS's "wonderful" EDLIN. If you're still suffering this agony, why not give Robelle a call (604-582-1700) or fax (604-582-1799) and ask for a free demo? You'll wonder how you've lived without it! Michael D. Hensley, VESOFT Technical Support P.S. Sneak preview: I'm not allowed to tell you what new features are in the next release, but we've been beta-testing it and it has some really fantastic stuff in it! Robelle Products: Problems, Solutions, and Suggestions Qedit Version 3.9.1. A Command File. One of our users called to tell us about a UDC he had put together to load a message into a file along with a timestamp. This is used to log job status messages. The UDC does a showjob, which includes the date and time, into a temporary file. Then it runs Qedit to massage the temporary file into one line with the text he wants to log. Finally it runs Fcopy to append the resulting file to a permanent message log. appmsg p1 purge x,temp file x;rec=-80,16,f,ascii;nocctl;temp showjob exec;*x reset x run qedit.pub.robelle;parm=128;& info="t x;dq 2/last;cq 30/80,'!p1',first;k,y" file msg=msglog;acc=append fcopy from=x;to=*msg reset msg *** It would be invoked in a job like this: !appmsg "MM020 job successful" which would append to the Msglog file the message: THU, OCT 10, 1991, 7:23 PM MM020 job successful On MPE XL the whole UDC could be replaced by a much simpler command file: parm p1 file msg=msglog,old echo !hpdatef, !hptimef !p1 >>*msg reset msg Help! I Typed CI! If you make a typo and accidentally type CI instead of VI when you want to get into Visual mode, a new copy of the MPE XL Command Interpreter (CI) is started inside Qedit, and you end up at the MPE prompt. This can be very confusing, especially since it looks just like you pressed Break. What happens is that "CI" is interpreted by Qedit as an implied :run command because there is program called CI.PUB.SYS, which is the MPE XL command interpreter. To get back to Qedit, do not run Qedit again. The correct thing to do at that point is to type EXIT or a colon, which will get you out of the CI and back to Qedit. (To check to see if you are in this second command interpreter, you can SHOWVAR HPCIDEPTH. If you ran Qedit from the MPE prompt, this value will now be 2.) This weird situation can be avoided by doing what we did here: create a command file called CI which doesn't do anything. Then when you type CI, instead of starting a new command interpreter, Qedit will simply execute the command file. We coded the CI command file to do the following: parm p1=" ",p2=" ",p3=" " echo You typed CI. Possibly you typed this accidentally, echo and really meant to type VI. If you really want to echo execute the Command Interpreter, type CI.PUB.SYS. MPEX Listf,Qedit. VESOFT has written an MPEX %LISTF format for Qedit files. It displays the record length, language, number of lines, number of blocks, percentage full, and disc space utilization statistics: /%listf q ,qedit MPEX %LISTF q PAGE 1 JIM,MGR.TECHSUP,JIM MON, JUL 8, 1991, 7:54 AM ACCOUNT= TECHSUP GROUP= JIM FILENAME ---LOGICAL RECORD--- -------BLOCKS------- ----SPACE---- SIZE TYPE LINES USED MAX %FULL SECTORS X MX QACC 72B SPL 97 7 401 1.7% 32 2 27 QBENCH1 256B TEXT 20 4 34 11.8% 32 1 3 QBENCH2 80B JOB 33 5 41 12.2% 16 1 3 QBENCH3 80B JOB 83 12 41 29.3% 32 2 3 QCOMPXL 72B PASC 1640 106 641 16.5% 224 8 31 QCOPYD36 80B JOB 1541 132 271 48.7% 272 3 19 QEDITMGR 72B SPL 14 1 401 0.2% 16 1 27 QWORK 74B COBX 443 32 283 11.3% 80 3 20 GROUP TOTAL: 8 FILES 704 SECTORS Because most of this information is stored in userlabels in the Qedit file, the %LISTF program must Fopen each file, which unfortunately changes the access date and time. Vesoft expects to fix this in the next MPEX release. %LISTF,QEDIT is available on VESOFT's VECSL tape, along with lots of other goodies, for a nominal charge. Suprtool Version 3.3 Calling Suprtool2 from Transact. In the Calling Suprtool manual we include an example of how to call Suprtool2 from a Transact program. The example uses a version 2 workspace definition. Here is a new example by Mike Parker at Arcadian Corporation that shows how to call Suprtool2 from Transact using the latest workspace definition. It also shows how to use Suprtool's Total function to return totals to the Transact program: SYSTEM SUPREX; SET(OPTION) NOHEAD; DEFINE(ITEM) SUPR-CONTROL X (582): SUPR-VERSION I (4,0,2) = SUPRCONTROL(1): SUPR-STATUS I (4,0,2) = SUPRCONTROL(3): SUPR-CMD X (256) = SUPRCONTROL(5): SUPR-PRI X (2) = SUPRCONTROL(261): SUPR-MAXDATA I (9,0,4) = SUPRCONTROL(263): SUPR-PRINT X (2) = SUPRCONTROL(267): SUPR-TOT-TYPE X (2) = SUPRCONTROL(269): SUPR-OTHER X (18) = SUPRCONTROL(271): SUPR-TOTALS 15X (18) = SUPRCONTROL(289): SUPR-OUT-COUNT I (9,0,4) = SUPRCONTROL(559): SUPR-WORKSPACE X (20) = SUPRCONTROL(563): TOTAL-REDO X (18): TOTAL-NUM 9 (17) = TOTAL-REDO(1): TOTAL-SIGN X (1) = TOTAL-REDO(18): INT-TOTAL1 I (9,0,4), EDIT = "^^^^^^^^^": INT-TOTAL2 I (9,0,4), EDIT = "^^^^^^^^^": INT-GR-TOTAL I (9,0,4), EDIT = "^^^^^^^^^"; LIST SUPR-CONTROL: TOTAL-REDO, INIT: INT-TOTAL1, INIT: INT-TOTAL2, INIT: INT-GR-TOTAL, INIT; << Initialize Suprtool values >> LET (SUPR-VERSION) = 4; LET (SUPR-STATUS) = 0; MOVE (SUPR-CMD) = " "; MOVE (SUPR-PRI) = " "; LET (SUPR-MAXDATA) = 0; MOVE (SUPR-PRINT) = "ER"; MOVE (SUPR-TOT-TYPE) = "CO"; << Use COBOL format to right justify >> << number and sign. >> << Transact data type 'X' MUST be >> << used for SUPR-TOTALS array. Type >> << '9' will allow positive values >> << only and type 'Z' requires am >> << overpunched sign. >> MOVE (SUPR-OTHER) = " "; MOVE (SUPR-TOTALS) = " "; LET (SUPR-OUT-COUNT) = 0; MOVE (SUPR-WORKSPACE) = " "; MOVE (SUPR-CMD) = "BASE INVDB.DATABASE,5,READ"; PERFORM CALL-SUPRTOOL2; MOVE (SUPR-CMD) = "GET STOCK-DETAIL"; PERFORM CALL-SUPRTOOL2; MOVE (SUPR-CMD) = "EXTRACT STK-LOCATION(1), STK-NO, STK-QTY-ON-HAND"; MOVE (SUPR-CMD) = (SUPR-CMD) + ",PHYSICAL-COUNT"; PERFORM CALL-SUPRTOOL2; MOVE (SUPR-CMD) = "TOTAL STK-QTY-ON-HAND"; PERFORM CALL-SUPRTOOL2; MOVE (SUPR-CMD) = "TOTAL PHYSICAL-COUNT"; PERFORM CALL-SUPRTOOL2; MOVE (SUPR-CMD) = "OUTPUT CYCLFILE,TEMP"; PERFORM CALL-SUPRTOOL2; MOVE (SUPR-CMD) = "EXIT"; PERFORM CALL-SUPRTOOL2; DISPLAY "SUPR-OUT-COUNT = ", LINE = 3: SUPR-OUT-COUNT, JOIN = 1, EDIT = "^^^^^^^^^"; MOVE (TOTAL-REDO) = (SUPR-TOTALS(1)); << Strip the sign >> IF (TOTAL-SIGN) = "-" THEN LET (INT-TOTAL1) = (TOTAL-NUM) * -1 ELSE LET (INT-TOTAL1) = (TOTAL-NUM); MOVE (TOTAL-REDO) = (SUPR-TOTALS(2)); IF (TOTAL-SIGN) = "-" THEN LET (INT-TOTAL2) = (TOTAL-NUM) * -1 ELSE LET (INT-TOTAL2) = (TOTAL-NUM); LET (INT-GR-TOTAL) = (INT-TOTAL1) + (INT-TOTAL2); DISPLAY "TOTAL STK-QTY-ON-HAND =", LINE = 2: INT-TOTAL1, JOIN = 1: "TOTAL PHYSICAL-COUNT =", LINE = 1: INT-TOTAL2, JOIN = 1: "GRAND TOTAL =", LINE = 1: INT-GR-TOTAL, JOIN = 1; EXIT; CALL-SUPRTOOL2: PROC SUPRTOOL2((SUPR-CONTROL)); IF (SUPR-STATUS) <> 0 THEN DISPLAY "SUPRTOOL2 INTERFACE ERROR ", LINE = 2: SUPR-STATUS, JOIN = 1: SUPR-CMD, LINE = 1; RETURN; END SUPREX; Cookie Looking For Fortune Cookies. The Cookie Monster wants you! At the Boston Interex conference last year, someone gave us a tape with some `animated' fortune cookies. At the time we didn't have a 6250 bpi tape drive, so we just put the tape on a shelf. We finally got a 6250 tape drive, but when we tried to load the cookie tape we discovered that the tape was blank. Either it got zapped going through airport security, or somebody here did a tapetest on it. We ask that whoever submitted that tape to us send us another, please. Thanks. Fortune Cookie of the Month THREE PROPOSITIONS 1. Software engineering is like looking for a black cat in a dark room. 2. Systems engineering is like looking for a black cat in a dark room in which there is no cat. 3. Knowledge engineering is like looking for a black cat in a dark room where there is no cat and someone yells, "I got it!".