What's Up DOCumentation Robelle Consulting Ltd. 8648 Armstrong Rd., R.R.#6 Langley, B.C. Canada V3A 4P9 Telephone: (604) 888-3666 Telex: 04-352848 Fax: (604) 888-7731 Date: April 14, 1989 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, 1989 #3 What You Will Find in This News Memo: News Tidbits Technical Tips About Robelle QEDIT's VISUAL Mode Mental Migration From MPE-V to Spectrum, Part 3 Robelle Products: Problems, Solutions, and Suggestions The Real Precision Architecture News Tidbits April Fools. As many of you noticed, on March 30 all copies of QEDIT in the world printed Happy Easter on the CRT screen. Even in non-Christian lands. And it wasn't Easter, at least not on our calendar. Call it a bug. Robelle Tutorial in Vancouver. Our recent day-long tutorial on QEDIT and SUPRTOOL in Los Angeles was a resounding success. Seventy people attended, asked a lot of questions, and went away with several pounds of training material. Thanks to VESOFT for arranging everything. We are planning a repeat in Vancouver this June. Call if you are interested. Hollywood Gossip. Reliable sources report that James Orr, who wrote the screen play for the fabulously successful film, Three Men and a Baby, has bought an HP LaserJet. Apparently he is using it for his next project, Mister Destiny, starring Sean Connery and Tom Hanks. Powerhouse Cross-Reference Reads QEDIT Files. QX is a cross-reference system for Powerhouse users from Brand X Software. They claim it costs thousands less than any other similar product, and it reads QEDIT files! For more information, call (503) 343-6562. Where There's Smoke, There's HP. One of our users, Jerry Kopecky at the Illinois Criminal Justice Information Authority, reports that a number of his 700/92 terminals started smoking. This set off the smoke detectors, automatically alerting the fire department. The fire department arrived at the police station, only to discover that there was no fire. This, it seems, is an embarrassing thing. The cause was some too-small capacitors which eventually burned out. HP repaired the units. Nifty MPEX Command. How do I find out who has one of my files open? I use MPEX from within QEDIT. [Kerry Lathwell] /set extprog mpex.pub.vesoft /%listf custbks.kerry,ACCESS Transform/3000?? For several years HP has had a product to convert applications from the IBM 36 to the HP 3000. A user with a lot of ancient 36s would appreciate knowing if this conversion process really works. Has anyone tried Transform? Technical Tips Fix for the QUERY Bug. HP has released a new version of QUERY to replace the buggy version that comes with V-Delta-2 thru V-Delta-4. The patch is known as BV37, and you can get it by calling your Response Center. [Gilles Schipper] Serious SPOOK Bug. It has always bothered us that SPOOK does not close the currently "TEXTed" spool file when you EXIT. Now a user has reported a case where this "feature" can cause the spooler to hang. :run spook5.pub.sys >run spook5.pub.sys {nested RUN command} >(1)text #o123 >(1)alter #o123;p=8 {make a spoofle READY} >(1)exit {son suspends, father holds} >kill spook5.pub.sys {this messes up the o123} >exit The spool file seems okay (i.e., READY at priority 8), but the spooler hangs when it tries to print it (use RESUMESPOOL to restart). And SPOOK cannot Text it later. Workaround: use QUIT instead of EXIT inside SPOOK, or type T before EXIT to close the current spoofle. Turn Your PC Into a Line Monitor. You can use Reflection on your PC as a cheap line monitor. Here's how: press f10, f1 (device control), f3 ("to" devices), then f2 (TO DISK). Reflection will prompt you for the name of a DOS file to write into, so type in a filename. Now press ALT-Y and type set trace yes. From now on, all datacomm traffic will be written to the trace file. Data from the host has a "<" preceding it and data from the PC has a ">". Perform the application task you want to monitor, then do ALT-Y and type set trace no and press f10, f1, f3 and f2 to disable TO DISK. To examine your trace file, press ALT-RSH to get into DOS and use DOS DEBUG: C:>debug trace -d {dumps next chunk of file in hex/char} -d 100 {dumps starting at location 100} -q {gets back to DOS, then press ALT-RSH} About Robelle US Postage Reminder. Postage from the US to Canada is 30 cents! Why Does the Robelle Account Have Privileged Mode? The ROBELLE account has PM capability so that the programs suprtool.pub, howmessy.pub, sue.qlib, and tuner.qlib will run. If you do not plan to run any of those programs, you may remove CAP=PM from the account. And it has OP capability so that our installation jobs can log on using hipri, and use the deallocate command. OP is not required to run our products. You can remove OP capability if you tailor the jobstreams not to use these commands. QEDIT's VISUAL Mode How I learned to stop worrying and love the screen by Barbara Janicki When I joined Robelle, I needed to write and edit documents on the HP 3000. I knew how to use PC editors. Editing on the 3000 with control-characters in line-mode was not as friendly as the PC editors I remembered. So I tried VISUAL Mode, which is QEDIT's full-screen editor. This environment made me a lot more comfortable. I use Reflection on a PC, and some PC keyboards have special editing keys to make life easier, like End (of line). How I'd missed those keys in line editing. With VISUAL Mode, I had them back! VISUAL Mode makes a good introduction to the HP 3000 for users who don't work on the 3000 all day. Every system has its novice users, users who run QEDIT only to update a report skeleton once a week, or users whose only need is to edit mail messages. VISUAL mode can help everybody. The occasional user no longer has to try to memorize editing commands ("All right, who stole my Quick Reference Guide, the one with pink hi-liter?"). The novices have a familiar environment where they can make changes to the entire screen, just like on the PC editors they sneak off to when you're not looking. You can even configure some mail packages (XPRESS, HPDESK) to pop your users directly into VISUAL mode when they edit a message. QEDIT's full-screen editor works in "block mode". You edit by moving the cursor around the screen, inserting and deleting lines and characters. Since your CRT is off-line from the computer, you can use the CRT's cursor and editing keys. You press Enter to save your changes. To move through the file, you have eight user function keys, such as f6 Forward One Page. You copy, move, hold, and delete blocks of text via "cut and paste" indicators at the start of the line. Columns 3 and 4 on the screen are reserved for the cut and paste indicators. Cut and paste is quite simple to learn. It works like this. To delete a block of lines, you type DD in columns 3 and 4 on the first line you wish to delete and on the last line you wish to delete. Then you press Enter, and the block of lines surrounded by the DD indicators will be deleted. Copying lines works similarly, using CC for indicators; you move lines with MM, and you hold lines with HH. To indicate the point to insert the copied or moved block, place A for After, or B for Before, in column 3 or 4 (AH or BH for a "held" block). If you wish to operate on just one line rather than a block, use a single-letter indicator, D, C, M, H, in one of the reserved columns. You can indicate a block of lines that spreads beyond the visible screen, too. Type your first indicator, then page through the file in any fashion until you reach the other end of your block of lines. You will see a prompt as QEDIT waits for your second indicator. You can still use any line-mode editing command while you're in VISUAL mode. Type line-mode commands at the ===> line, or homeline, at the top of the screen. Execute the commands by pressing Enter or the f7 key. Note: on a PC, Reflection maps the Enter key onto the "+" key on the numeric keypad (or numeric Enter), or onto Shift-f10. After executing your line-mode command, for example, changing all occurrences of " A " to " B ", QEDIT prompts you for more commands until you hit Return, which returns you to VISUAL mode. What else should you know before you start? I mentioned the status line earlier, in an indirect way, when I said that QEDIT would "prompt" you to complete your multi-screen cut and paste job. Look for this and other prompts on the second line on the screen (under the homeline). The status line displays your current line number. Since VISUAL mode uses relative line numbers, you can use the status line to determine your location in the file as a whole. The status line also shows the current string. This is the string for which QEDIT will search when you use the "one-touch" Find keys, f3 and f4. You can get a list of the features available in VISUAL mode by typing a "?" on the homeline and pressing f7. Finally, to exit VISUAL mode, and return to line-mode, press f8. Some trouble spots for beginners: if you make changes to the screen, then decide not to keep them, how do you get your original text back? You refresh the screen by typing a * on the homeline, then pressing the function key f7. Something everyone runs into, and usually in the first five minutes, is inserting so many new lines that you push the column template line right off the bottom of your screen. Without the template line to indicate the end of screen, QEDIT won't update your screen. Don't worry, the template line is not really gone; press Next Page (Pg Dn) to pull up the next screen of display memory. You have a problem only if you inserted so many lines that you pushed the template line right out of display memory, and even then you can still recover your changes. Refer to the User Manual for a thorough discussion of errors in VISUAL mode. You have a great deal of control over how VISUAL mode operates. The Configuring Visual section of the User Manual will show you how to change the number of lines per screen, where the current line will appear, and other options. I recommend that, for new users, you Set Visual Update On. This option does an automatic screen update whenever you press any function key (except f7). This saves your changes even if you forget to press Enter while shuffling screens. To get hands-on experience with VISUAL mode, try the QDEMO. The demo will take you on a guided tour of VISUAL mode. :run qedit.pub.robelle /set udc udc.demo.robelle /QDEMO {use QDEMOPC for Reflection on a PC} Mental Migration From MPE-V to Spectrum Part 3 by Jeff Kell, UTC Computing Services Reprinted From SIGED Newsletter Finally, everything else is in place, and the CPU arrives by padded truck. Installation is scheduled, and a CE from Memphis is flown in to install it (the first for the Knoxville area, the second for the Memphis crew). The 950 is just another gray box like the 930, but has a small display at the top right. After figuring out how to get inside (not obvious) I inspect the right bay. A transformer, fans, and power supplies; nothing interesting. Opening the left front reveals nothing other than a solid metal RF shield over the card cage where the CPU should be. Opening the left rear reveals a few cables, the console MUX panel, a few I/O cards, and a lot of air. Back to the front, and consulting the CE manual, I finally get the RF shield removed. Aha! At one end, the power supply and processor monitor board; at the other end, the processor dependent hardware board (with the ROM identifying it as a 3000). In the center, the infamous CPU board, plugged into the "PC0" slot (worthy of note, there are four such slots). The cooling fins of the big VLSI chips are clearly visible. Nearby is the memory controller (there are slots for two controllers) and its four 16 Mb memory cards. The rest is air. I returned after lunch to find the CPU powered up and the peripherals cabled and ready. The CE ran a disc "exerciser" from the diagnostic tape (yes, it started by logging in as "root" to a Unix kernel), and after several other tests declared the system available. I searched the carton that came with the CPU to find the boot tape and, much to my surprise, found them: two reels of boot tape, three reels of FOS, and yet another SUBSYS reel. So much for 2-reel V/E releases. The first step is an INSTALL, which gives you one disc, one tape, the console, and a minimal account configuration. Next, you AUTOINST the FOS tapes and SUBSYS tape, concluding with the creation of a new SLT tape (cold load) which you then update from. Then back online again for configuration, basically taking a cookbook configuration as a base and deleting out what you don't have, followed by another shutdown and start to activate the new configuration. Now you can add your other discs (it will label and format them online) and start the terminal configuration through NMMGR. After one last shutdown and restart, you're back up, and with terminals. The whole process can be done with fewer steps, but separating the different steps allows you to drop back and punt if anything goes wrong. With the system up, we then used the directory migration (DIRMIG) utility to recreate our accounting structure on the 950. Following this, we were able to :RESTORE the :SYSDUMP from the previous night as well as the "STUB" group we created at the migration center. The system was then up, with live data (well, almost live); CM tests verified everything was OK (after remembering the two SLPATCHes from the migration center). On the following day, our "real" SUBSYS tape arrives which includes NS software. Another round with NMMGR to define the LAN connection, and we are back up and running. NS started perfectly and we could now access the 950 from existing systems. After NS was activated, we encouraged our programmers to remote over and explore. They were, for the most part, timid at first, but seemed to adapt rather quickly to general use of the system. I spent the next few days creating command files for compilation and testing which included the necessary hooks into our stubs, as well as maintaining necessary CM programs should they be needed on the existing 52 or 58. We soon realized we needed not only a code migration procedure, but also some facility for testing. Previously the 52 was used for all development and testing, and the account structure duplicated the production account on the 58, with "test" databases in the proper groups. Now that we are moving to a single CPU, this no longer is possible. We adopted a fairly straightforward approach: A "DEV" account was created with groups duplicating the production groups. The testing databases were moved to the DEV groups, and the SOURCE group moved to a CMSOURCE group in DEV. All "PUB" files were merged from the two systems and restored onto the production account on the 950. In addition, a "CMPUB" group was created. As programs are converted, they are moved from CMSOURCE to SOURCE, leaving us clear indication of our progress. A compilation command file was created which takes a given filename and does the following: * Does a native compile of filename.SOURCE, * Does a LINK into filename.PUB with stub hooks, * Does a CM compile of filename.SOURCE, * Does a PREP into filename.CMPUB Another command file was created to install production code after testing which, with proper NS sessions, moves the PUB and CMPUB versions to the DB account and then moves the CMPUB version over to the 58. In summary, after the creation of a few supportive command files, a working development environment was created and the programmers were transferred permanently to the 950. Migration started slowly, but fueled by exceptional performance improvements, quickly gained momentum. Native Mode conversion for a typical program was reduced to an editor "USE" file, and this was suitable for about 90% of our COBOL programs. It was taking longer to test the results than to do the migration. However, the results were astonishing. Some specific timings are given below. The production 58 is a 6 Mb machine with the 7933XP hardware cached discs; the 950 is a 64 Mb machine with 7937 discs. Timings show CPU seconds/wall minutes. Subject program description Series 58 Series 950 Spring semester grade posting 1027s/126m 141s/ 6m Financial Aid "Holds" 414s/ 22m 50s/ 2m Accounts Receivable "Holds" 198s/ 10m 33s/ 1m Parking "Holds" 3094s/157m 413s/11m Financial Aid Cancels 373s/ 20m 46s/ 1m Financial Aid Checks 2473s/140m 294s/ 7m FinAid Course Progress Report 2671s/116m 339s/11m Enrollment by semester (110,000 recs) 1060s/ 32m 103s/ 3m Class Tallies (Summer semesters) 543s/ 22m 51s/ 1m * Series 58 jobs are done standalone overnight ** Series 950 timings are for Native Mode With the programming staff now successfully launched into the migration project, I returned to system issues. The main thing wrong was an almost complete lack of utilities, other than those supplied with the system. There was no SOO, or SURVEYOR, or TUNER, or anything similar to let you know what is going on inside. We also use RSPOOL, a package that allows multiple systems to share a printer transparently, moving "ready" spool files over with NS. We use it a great deal in production to access the HP2680 which is physically connected to the academic system. There are "some" utilities now available, if you ask the right people and/or look in the right places. I am confident that more will appear over time, but presently the cupboard is nearly bare. After a two-week telephone and HPDesk chase by my SE, we located an RSPOOL for MPE XL from "somewhere up north" that floated down to Memphis and later to Chattanooga. By another stroke of luck we found SURVEYOR/XL (Jim Knoop, the author, was at the Atlanta migration center when we were there, and he sent my SE a copy). The SE's are also supposed to have access to SMT (the equivalent of OPT for XL), XLDCP and XLDRP (the HPSnapShot for XL), and some other cryptic utility OBJPIG that maps memory usage. But getting your hands on these is like getting blood from a turnip thus far. There are still no reports of other handy utilities such as the ones in TELESUP that we grew accustomed to, like LOGUTIL, GETFILE, or Predictive Support. Some utilities still work, like TAPETEST, STORCOPY, and the more harmless ones. The :STORE-related utilities will *not* work on the native XL store tapes, but will work on old V/E tapes or an XL :STORE;TRANSPORT tape. Surveyor is quite nice and similar in function to the MPE/V one, at least in principle, but the displayed data is very different. Stats are given for CPU busy, wait times, percentage of CPU in CM, number of NM/CM mode switches, and other factors. Disc I/O is profiled with transfers per second per device and the transfer sizes. Memory usage can be profiled into CM stacks/code, NM code, data, and stacks, file buffers, IMAGE and KSAM, and other uses plus the number and percentage of page faults for each category. Active processes can be shown much like SOO or Surveyor/V. MPE XL has a considerable number of system processes, most of which I have yet to decipher. The more you look, the stranger it gets. MPE XL adds several LDEVs to the configuration for some purpose. Virtual terminals for NS/3000, which you must configure on V/E but you cannot configure on XL, simply appear and disappear as necessary. There is the usual complement of logging processes and memory logging, plus a DIAGMON procedure which monitors the system diagnostics and logging. It can, in theory, spawn off diagnostics when device errors are reported; there is a reserved logfile record type for "Auto-diagnostic summaries". There are various IP-related processes (as with NS on V/E) but many MPE processes use these IP sockets themselves. There are still many mysteries, but mainly to those of us who need or want to know more about their system than how to sign on and run programs. For the casual user, migration to the 950 is a piece of cake. For the programmer, migration is a piece of cake, minus the frosting. For the system manager, it is a bit of a challenge. But for the technical specialist, it's quite an adventure. At this stage of the game, I feel like a proud father of a somewhat eccentric son; but I have no idea what the little bugger will grow up to be! Robelle Products: Problems, Solutions, and Suggestions SUPRTOOL Version 3.1.1 Documentation Error. On the bottom of page 51 in the SUPRTOOL 3.1 User Manual, Volume I, the example should read [5] and [9] instead of [4] and [8]. And on page 9 of Volume II, the ,10 and ,16 in the def statements should read ,11 and ,17. Error in Last News Memo. Eugene Volokh points out that the command if myyear >= "88" and mymonth >= "11" in the last news memo does not do what we want. It will select only November and December, for all years >= 88. It should be: >if (myyear = "88" and mymonth >= "11") or (myyear > "88") QEDIT Version 3.7 and 3.7.1 WHILE looping. Something you've wanted to do for years: find all occurrences of a string, and for each one, list that line and the next three lines. Piece of cake. Build a file with the following commands, and /keep it. /listq first {slash is for qedit commands} setjcw cierror = 0 {no slash is for mpe commands} while cierror=0 do continue /findq "my'string" if cierror=0 then /list */*+3 else showjcw cierror display NOT FOUND endif endwhile Call it LOOPER, and invoke it as a command file: /open myfile /looper /shut VoilÈ. No need for EDITOR. WHILE looping not required. Question: How to find all occurrences of "!job" in the first four columns and change "oldpass" to "newpass" in each of those lines? Answer: /change "oldpass","newpass" "!job"(1/4) The Real Precision Architecture Additional RISC Instructions for Greater Functionality MnemonicInstruction MnemonicInstruction AAC Alter All Commands EO Execute Operator AAR Alter At Random EPI Execute Programmer Immediately ASM Alphabetize, Starting in MiddleEROM Erase Read-Only Memory BBW Branch Both Ways EXPP Execute Political Prisoner BCIL Branch Creating Infinite LoopFLI Flash Lights Impressively BDC Break Down and Cry GFD Go Forth and Divide BEW Branch Either Way GFM Go Forth and Multiply BH Branch and Hang GRE Generate Random Error BO Byte Operator HCF Hang and Catch Fire BOB Branch On Bug IAI Ignore All Instructions BOM Branch On Mood IBP Insert Bug and Proceed BOPO Branch On Power Off JSOW Jump to Subroutine On Whim BTNI Branch To Nowhere ImmediateLPA Lead Programmer Astray CG Convert to Garbage LAP Laugh at Programmer CLR Clobber Register MMI Munch Memory Immediate CLRI Clobber Register ImmediatelyNMJM Not My Job, Mon! CMD Compare Meaningless DataPFEM Print False Error Message CNC Close, No Cigar RDS Read Sideways CRN Convert to Roman NumeralsRLI Rotate Left Indefinitely CSF Circular Shift Forever ROC Randomize Op Codes CSL Curse and Swear Loudly RPM Read Programmer's Mind DBZ Divide By Zero RR Randomize Result DMPE Decide to Major in Phys. Ed.RWST Rewind and Stretch Tape DNL Do Nothing Left SAS Sit And Spin DNR Do Nothing Right SDDO Swap Disc Driver Out DO Divide and Overflow SLP Sharpen Light Pen DP Destroy Program SMR Skip on Meaningless Result DSTM Don't Shoot The MessengerSOT Sit On a Tack DTRT Do The Right Thing SRZ Subtract and Reset to Zero DTVFL Destroy Third Variable From LeftSSD Seek and Scratch Disc DWIM Do What I Meant SSJ Select Stacker and Jam DWMNS Do What I Mean, Not what I SaySSRA Scream and Shout and Run About EAO Execute in Any Order STA Store Anywhere EDF Execute "DEAD" Forever STM Shoot The Messenger EEOI Execute Every Other InstructionSTROM Store in Read-Only Memory EFYTD Execute "F--- You", Then DieTDB Transfer and Drop Bits EIOC Execute Invalid Op-Code UER Update and Erase Record ELE Execute Loop Eternally WTFIT What The F--- Is It? ENF Emit Noxious Fumes ZAR Zero Any Register BBSL Break for Bob Shields Lunch (long break!) CDOOZ Calm Down, it's Only Ones and Zeroes PFM Perform F'ing Magic (for Data Center Managers) PMI Perform Magic Immediate (for Systems Programmers) SLVDBDL Shift Left Variable, Drop Bits, Dim Lights [Thanks to Mark Klein]