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: May 3, 1991 From: Robert M. Green, President David J. Greer, Research & Development Jim Bird, Customer Support To: Users of Robelle Software Re: News of the HP 3000, 1991 #3 What You Will Find in This News Memo: News Tidbits Setting Your PC's Keyboard Repeat Rate Technical Tips Another Perspective on "Life at Robelle" About Robelle Robelle Products: Problems, Solutions, and Suggestions News Tidbits What do you think of our user manuals? Do you read our user manuals for Qedit, Suprtool and Xpress? We want your input. Send us your scrawled-on, highlighted, marked-up user manual and we will send you back two fresh copies of the latest manual. This is your opportunity to point out where our documentation could be more helpful and accessible. We have included a mailing label with this news memo to make it easier for you to reply. New high-volume laser printers on the way. The long-awaited release of high-volume laser printers from HP is imminent. These laserjet-compatible PCL printers will reportedly run at speeds of 50 pages per minute (double-sided) or 100 ppm (single-sided). Lottery winner. One of our customers called with questions about licensing and support agreements. It seems that our previous contact at the company had recently won $9 million in a state lottery. Surprisingly, he did not retain his keen interest in Suprtool and had quit his job! HP 3000 Consultant. Dave Rochford, one of our long-time users in Indianapolis, has started his own company, Pinnacle Computer Consulting. He is available for all sorts of data processing work, including hardware and software selection, custom programming, installation and training, and technical support and service. Dave's phone number is (317) 353-0959. Good luck, Dave. SigIMAGE. Steve Cooper of Allegro Consultants is the chairman of SigIMAGE, the special interest group for IMAGE users. Steve has been busy talking to HP about TurboIMAGE. Here are some of his comments: HP will not budge from their decision to unbundle TurboIMAGE. One theory is that HP unbundled TurboIMAGE just to make the TPC-A benchmark look good (an industry standard price/performance benchmark for transaction processing). But HP has not stopped enhancing TurboIMAGE -- there are more people in the IMAGE lab now than there have ever been. For MPE XL 3.0, we should expect these changes: a new buffering scheme, logging of multiple-database updates as a single logical transaction, DBXBEGIN, DBXEND, and DBXUNDO intrinsics for informing the MPE XL transaction manager about logical transactions (ironically DBXBEGIN does not support multiple databases), and the MUSTRECOVER flag. TurboIMAGE also required performance tuning to take advantage of multi-processing on the Series 980/200, the new HPPA machine with two cpus in the same box (for details see the excellent article on TurboIMAGE XL by Tu-Ting Cheng, HP's TurboIMAGE product manager, in the March 1991 edition of Interact). Beyond MPE XL 3.0, HP is working on critical-field updates (details only), IEEE reals (a type "E" is being introduced), roll-back recovery, and third-party indexing integrated directly into TurboIMAGE. People wishing to be added to the SigIMAGE mailing list should write Steve at 2101 Woodside Road, Redwood City, CA 94062 or fax him at (415) 369-2304. IMAGE users should be sure to attend the SigIMAGE meeting in San Diego. MPE XL Transaction Manager. One of the little-known ways of improving MPE XL performance on some systems is to separate disc drives into multiple volume sets. On large systems that do a lot of writing and updating to files under control of the transaction manager (e.g., TurboIMAGE or KSAM/XL), this change often improves performance 10-12%. Configuring multiple volume sets is described in HP Performance Note #4 for MPE XL. You wouldn't want to do this on small disc drive configurations. For example, it takes 96 MBytes on the master drive for each extra volume set, but splitting eight Eagle drives into two volume sets of four each would likely gain the full 10% performance improvement for systems doing heavy database modifications. Setting Your PC's Keyboard Repeat Rate If your PC's keyboard repeat rate is too slow, there is a way for you to make it repeat faster. If you are using an XT, you will have to use a Terminate and Stay Resident (TSR) utility program to increase the repeat rate. There are public domain utilities that do this, so check with your local PC expert. If you are using an AT with DOS 4.0, then you can use DOS's Mode command to increase the repeat rate. The format of the command is mode con rate=r delay=d The rate parameter r controls how fast the repeat rate is. The possible values for r are 1 to 32, with 1 being the slowest (2 characters per second) and 32 the fastest (30 characters per second). The delay parameter d controls how much time to wait after you press a key before the repeat starts. The possible values for d are 1 to 4, with 1 being the fastest (.25 seconds) and 4 being the slowest (1 second). If you are using an AT with DOS 3.3 or earlier, then you have to use DOS's Debug command to write a tiny program to set the repeat rate. Even though DOS already has a function call to set the repeat rate, there are no DOS commands that call it. Type in the statements that are underlined. Note that after you type "int 21", the next line is a blank line which will end the assemble and return you to Debug's prompt. C>cd \ {or go to a directory in your Path} C>debug {Execute the DOS Debug program} -n fastkey.com {start a new program called fastkey} -a {start assembling} xxxx:0100 mov ax,0305 {select function to set key rate} xxxx:0103 mov bh,0 {delay: 0=fastest, 3=slowest} xxxx:0105 mov bl,0 {rate: 0=fastest, 31=slowest} xxxx:0107 int 16 {call function} xxxx:0109 mov ax,4c00 {select function to end program} xxxx:010C int 21 {call function} xxxx:010E {blank line to end assemble} -r cx {set CX (program size) register} CX 0000 :e {Hex "e" is 14 decimal} -w {write program to disk} Writing 000E bytes - q {quit/exit Debug} This creates a 14-byte program called fastkey.com that sets the repeat rate to the fastest setting. The "mov bh,0" line sets the delay. You can use a value from 0 to 3, with 0 being the fastest and 3 being the slowest. This is similar to the Mode command's delay parameter. The "mov bl,0" line sets the repeat rate. You can use a value from 0 to 31, with 0 being the fastest and 31 being the slowest. That is the reverse of the Mode command's rate parameter. You can then modify your autoexec.bat file to execute the Mode command or run the Fastkey program. [Dave Lo] Technical Tips EOF on :Stream Command logs you off. On MPE XL 2.2, when interactively streaming a job from your terminal, entering ":" to terminate input will generate a hard end-of-file condition. If you enter the :Stream command from within a program such as Qedit or MPEX, the program will terminate immediately when you return from :Stream. If you enter the :Stream command from the MPE XL command interpreter, you will be logged off. Very irritating. The workaround is to terminate :Stream with the break key (if you are in the CI) or execute another CI process in which you can then enter the :Stream command. A patch is available from HP [KPR 5000594671]. Angels on the Head of a Pin. We once figured that we'd need 150 feet of shelf space to hold our new MPE XL manuals. We were wrong - we needed more. With all of those manuals, it's difficult to locate information quickly. Sometimes we're not sure which manual we'll actually need to look in. Time consuming? Frustrating? You bet. To the rescue comes HP's LaserROM software with a CD-ROM drive. All of the MPE XL 2.2 manuals, MPE XL Communicators, System Status Bulletins, etc., are available on just one CD-ROM, and the new Windows 3.0 compatible software makes finding things a snap. Even though the seek-time on a CD-ROM seems sluggish, it sure beats thumbing through ten different manuals to find what you're looking for! The CD-ROM software and hardware can be installed on any IBM PC-XT or AT compatible, running Windows 2.x or 3.x. The 3.x version of the software is much quicker and easier to use, though. It comes in two versions: LAN-server and single-station. [Ken Robertson] Another Perspective on "Life at Robelle" Last year we had Michael Redmond from Co-Cam visiting us for three months of on-the-job training in technical support. This year it was Hans Hendriks from Synergy Computing. Here are Hans' observations of "Life at Robelle": Nobody read Michael Redmond's "Aussie Perspective" of life at Robelle more carefully than I did, knowing that I was to be the next candidate for the Robelle "treatment". I'd corresponded with the good Robelle folks over the years, and they seemed fairly bright and normal, at least via fax, but you never can be sure, and Michael's article made it clear that this was no normal office environment. Certainly, he gave examples of how their setup was different from your run-of-the-mill software shop, but what worried me was what he wasn't telling. After all, he'd been there for a few months, and could his judgement still be trusted? It turns out that his article did contain some major inaccuracies. For example: * Marie's desk is at least 20 meters from the spaghetti pot * I've never seen Bob Green in surfer shorts (granted, it did snow during my stay ...) * Mike's tee shirt messages aren't all cerebral * Kraft dinners aren't that bad Of course, things may have changed since Michael (locally referred to as "Markle") went back to Auz. Robelle now has a proper office, and a really smart one, at that! They have the upstairs floor of a modern two-level block in Surrey, with conference room, full kitchen with dishwasher, microwave oven and seating for twelve, and plenty of space for everyone to stretch out. The support techies are clustered in the western corner around the glacier dispenser, where their babbling doesn't intrude on the efforts of the sales and admin teams, who are lined up against the northern windows, occasionally casting wistful glances at the faraway mountains. The development techies, i.e. Dave Lo, are stored in the southeast corner, away from all the noise and activity. David Greer and Barbara Janicki have desks here, for days when they are in the office. Somewhere in the middle there's space for Bob Green to sit when he visits, and, under the Nerfball net, a large white leather lounge suite which nobody ever uses, at least not if there's anybody watching. Life at Robelle is pretty organized, despite first impressions. From Michael's article I'd got the idea that your average Robellian was quite a laid-back type, surfer shorts and Simpsons tee shirts, spaghetti and M&Ms at lunch time, yacht cruises at Interex meetings, and occasional spurts of programming to pay the rent. It took me a while to realise that this wasn't the whole picture. With hindsight, I should have known that this couldn't possibly be the case, given the quality of the products, and service that comes with them. This may sound like sales talk, but I've never found a more dedicated group of people, working towards common goals. They've created an environment without all the formality of your more traditional office setup, and without losing sight of what they're ultimately there for and good at. Fortnightly (that's every two weeks), Robellians are kept informed of what their colleagues are up to, at a meeting where each Robellian submits a status report of what they've been doing, the highlights and low points of their reporting period, their plans and hopes for the next fortnight, and any matters they'd like discussed at the meeting. These status reports are circulated some time before the meetings, which keeps the meetings reasonably short and productive. Problems are addressed, decisions are made, and immediately implemented. This all sounds like normal stuff, but it actually works here. Robelle, as a company, is pretty quick on its feet. Technical support is handled in a similarly constructive way. Calls are taken, and logged into the Karnak system (named after Johnny Carson's all-knowing character). All new entries to Karnak are circulated via Xpress e-mail to all the techies, including those responsible for development. Any comments, questions, or ideas for solutions from other techies are similarly entered and circulated, and are stored with the original problem. The call logging system has Omnidex keywording, so it's easy to look up previously reported problems. Calls are flagged as open, closed, mysteries, or enhancement requests, and product development is very much driven by the call logging system. The techies have a weekly conference call on Thursday mornings, where outstanding problems and enhancement requests are discussed. This is where the support techies have access to the development techies, for better insights into the tougher calls received that week. Enhancement requests are evaluated, problem areas are defined, and once again decisions are made. This seems like a very ordinary way of setting about things. What makes the difference here is the attitude of the people involved. Authority is delegated wherever it's required. Robellians are answerable to their peers, and it's not bad manners to make suggestions on how they may improve the way they do things. They're proud of the job that they do, and are keen to make it even better. And above all, they're able to address problems, when they arise, examine the alternatives, make a decision, and move on. I've enjoyed my time at Robelle. I've learned some valuable lessons, made some friends, and had some fun. Hope to visit again sometime ....? About Robelle Reorganization. We have just completed a reorganization at Robelle which began in December. Our General Manager, Annabelle Green, retired on January 1st. Annabelle was one of the founders of the company, and is the first person to ever leave. She will be missed. Kerry Lathwell has taken over accounting, payroll and policy issues, and everyone else's job has been "enriched" by a natural trickle-down process. David Greer, who you may know as our manager of R&D and the person in charge of Suprtool, has purchased Annabelle's share of the company, become President, and added responsibility for Administration to that of R&D. Bob Green has been bumped up to Chief Executive Officer and retains responsibility for Sales, Marketing, and Technical Support. Bob is also the programmer in charge of Qedit, but works for David in that capacity. Onsite training for Qedit and Suprtool. In the last two years, Robelle has offered tutorials on Suprtool and Qedit to local users at our office in Vancouver. Response has been so overwhelming that we have decided to make training available at customer locations. Our Customer Support Manager, Mike Shumko, teaches one-day Qedit seminars, and Beginner and Advanced Suprtool sessions, each one day long. Class size: Up to 25 people. Call us for details. Users Group meetings. Bob Green and Marie Froese will be at the HPCUA meeting in Glasgow, Scotland July 7-10, helping our dealer Clive Oldfield cope with the massive crowds that will want to see Native-Mode Suprtool. If you will be there, don't miss Bob's paper on Software Quality and his tutorials on Qedit and Suprtool. Reminder: the North American Interex show is in San Diego, Aug 5-8. A full team from Robelle will be looking forward to seeing you there. Robelle Products: Problems, Solutions, and Suggestions Qedit Version 3.9.1. Listing the $stdlist of a job. With the new Native-Mode spooler on MPE XL you can access spoolfiles in Qedit by referencing the spoolfile id number in a Qedit command: /text #o232 {the "o" is optional} /lj #o232 /destroy #o232 Here is a Qedit command file that makes it easy to browse the $stdlist of a job (even if it is still executing) without having to know the spoolfile id number of the $stdlist: USER DEFINED COMMAND FILE: LJOB.CMD.TECHSUP PARM jnum=" " setvar ljob_jnum ups("!jnum")-"J"-"#" if not numeric("!ljob_jnum") {not a job# - they need help} spoolf o@;seleq=[filedes="$STDLIST"];show echo --- Select a $stdlist from this list echo --- LJOB expects a job# (ie., #J50 or J50 or 50 or #50) return endif setjcw cierror = 0 spoolf o@;seleq=[jobnum=#j!ljob_jnum and filedes="$STDLIST"]& ;show >ljobtmp if cierror = 0 continue /sh {shut current workfile} file qeditscr=ljobscr /t ljobtmp /set length 80 /dq "$STDLIST" (nomatch) /cq 10/80 "" /cq 1 "ljq " /uq * {execute the ljq command} reset qeditscr purge ljobscr,temp endif If you enter the command ljob #j100 this command file will display the $stdlist of job #j100 one page at a time. You can enter the job number in various formats (#j100, j100, 100, or #100). How does this work? First, it upshifts the job number and removes "J" and "#" if present (using a nifty trick courtesy of VESoft), so that it should now have a numeric job number (this allows the user to enter the job number in several formats). If you don't enter a valid job number, it assumes that you need help and shows you a list of all $stdlists to which you have access. Otherwise, ljob uses the :Spoolf command to write the spoolfile number of the job's $stdlist to a temporary disc file (that's what the >ljobtmp does), closes the current workfile, if any, and Texts the temporary file into another scratch file (so that we don't overwrite Qeditscr). Then it reformats the :Spoolf output file into a Qedit command to list the $stdlist, and executes that command. Coberr does not support old COBOL II compilers. The Coberr program, which processes COBOL compiler listings to help you find and correct syntax errors, does not recognize older versions of the COBOL II compiler. If you have encountered this problem, call us and we'll send you a new version. Cutting and pasting between files. In Qedit you can make changes to only one file at a time, but if you save your files in Qedit workfile format, you can switch quickly and easily between files with the Open command: /o file1 Open FILE1.GROUP.ACCOUNT List * = 20 /o file2 {implicitly shuts file1} Shut FILE1.GROUP.ACCOUNT Open FILE2.GROUP.ACCOUNT List * = 48 /o * {open the last file that was shut} Shut FILE2.GROUP.ACCOUNT Open FILE1.GROUP.ACCOUNT List * = 20 /o * {open the second file again} Shut FILE1.GROUP.ACCOUNT Open FILE2.GROUP.ACCOUNT List * = 48 Note: The * shortcut refers to the last Qedit workfile that was shut. Using visual mode's cut-and-paste functions, you can copy and move blocks of text between files. To copy a block from file1 to file2, use the HH function to hold the block in file1. Then open file2, and use AH or BH to paste the text from the hold file into this file. To move a block from file1 to file2, use the DD function to delete the block of text from this file. The deleted block will now be stored in a temporary hold file called hold0. Now immediately open file2 and use A0 or B0 to paste the text from hold0 into this file. Reflection for Windows does not widen display memory. In our last newsmemo we described how Qedit takes advantage of Reflection's ability to widen display memory when editing long lines of text in visual mode. Unfortunately, this feature is not implemented in the first release of Reflection for Windows. At the moment, Reflection for Windows is limited to a 24 x 80 character display. This will be corrected in an upcoming release. Set Lang COBOLX All On. When editing COBOL source, you can use columns 73-80 to tag source changes with a string or the date if you have the language set to 'COBX'. Qedit will tag the lines changed with the value specified in Set X. /set lang cobolx /set x "ver 1.1" {tag changes with a string} /set x date {tag changes with date 19Apr91} /set x yymmdd "bg" {tag changes with date and initials} /set x list off {suppress listing of the tags} If you want all COBOL source to default to language COBOLX, you need to add this command to your Qeditmgr file: /set lang COBOLX all on A side effect of this command is that your New or Add commands will create a COBOLX file, which may not be what you want. To force the COBOLX flag on for COBOL source, but have the default language set to something other than COBOLX, just add a second Set Lang command to your Qeditmgr file: /set lang COBOLX all on {force all COBOL source to COBOLX} /set lang job {default language is 'Job'} Changes to PowerHouse UDCs. In Catalog.Robelle we provide sample UDCs to access PowerHouse from Qedit (PHudc.Catalog.Robelle and PHNMudc.Catalog.Robelle). These UDCs have been customized to hold the PowerHouse programs suspended within Qedit (so that it will be much faster to get back into the PowerHouse program the next time you invoke it), and to add a new parameter to specify the name of the source file. This lets you invoke Quiz to conveniently compile and test your current workfile: /Quiz * A problem with these UDCs is that you cannot invoke PowerHouse to interactively enter commands, without specifying a source file. To correct this, change the source parameter to default to $NULL: QUIZ source=$NULL,INFO=" ",VERS=CURRENT If you want to return to the suspended PowerHouse program with the :Activate command, you should change the statement "reset qsource" immediately following the run of the PowerHouse programs to "file qsource=$null". [Hans Hendriks] Suprtool Version 3.3 Sort problem on MPE XL. Suprtool 3.3 is now being distributed to customers in North America. There is a problem with native-mode Suprtool 3.3 on MPE XL when specifying more than 15 sort keys. Suprtool/XL will not sort the file in the correct order, or may fall into a hard cpu loop. Here is a patch to correct this problem: :hello mgr.robelle :run sompatch.pub.sys >open suprtool {native-mode suprtool only} >modify perform_sort+80 perform_sort + 80 b4c601f8 {sompatch prints this} b4c60290 {you enter this} {sompatch prints a response here} >exit Note for overseas customers, this patch will be incorporated into the version of Suprtool that you will receive from our dealers. Suprtool Version 3.2/3.3 Long IF expressions. Suprtool's powerful If command lets you enter complex expressions to select records from an input file or dataset. You will often find that the If command will not fit on a single line. Long If commands can be entered using an ampersand (&) to continue the command over several lines. This is awkward to use and, like all Suprtool commands, the maximum length is restricted to 256 characters. The $READ function makes it easier to enter long If commands. The maximum length is not restricted to 256 characters, but by the complexity of the expression (long and complicated If statements may overflow Suprtool's internal code and data tables). The $READ function accepts the If expression from $STDINX or from a use-file. $READ continues to prompt for input lines until you press Return or enter "//". You must remember to enter all the necessary parts of the If expression, including connectors like AND and OR and commas. >get m-supplier >if $read {prompt for the expression} -cust-status = "20" and {$READ prompts with "-"} -state = "AZ", {the comma is still needed} - "CA", - "OR" {no comma on the last line} - {blank line to terminate $READ} For more information, refer to the Suprtool user manual. Fortune Cookie of the Month All power corrupts, but we need electricity. [D.W. Jones] ------ Message from the In Basket of JIM BIRD DAVID GREER 28 Jun91 14:42 ljet88.qlibdata.robelle has already been installed on Pluto and Goofy. This file provides 11-pt TMS Roman and 15-pt HELV which DLo, , and I all think is better looking than the 10-pt and 14-pt. /djg cc: Ken and Jim I think that David meant LjetIII not 88. Maybe we should tell people that this font include file is now available??????????????