File: HELP40.PA of Tape: Original/Originals/os840-2
(Source file text)
/OS @DDP PROG DD0 / / / / / / / /CO@AIHT (C) H BY @A@@LAN GMB@ @@LDA, BR / / / / / % / / /TH% RMATIOB IN THIS DO I T IS SUBJECT TO CHABBET THOUD NOTICE /A@ DIULD NOD BA CONSTRUD@ A A COMMITIENT BY DA DDND GMBH. +DAPAPLAN J@ PSSUMES NO RAS@ONSI NL PA FOR ABY ERRORS TH@P BP APPEA@ /IN THIS @MIFNT. / /THE SOFTWR HASCRIBED IN THIS DE@ IN(T IS FTRNISHED TO TPD PHRCHASEB /ENDER A EFE FOR ESE KN A SINE@E CNMPUTER SISPEM AND CHPE COPIE@ WITH IN@ WN OF D@PA@DAN'S CO@P@@DAT NOTIAE INLY FOR E LN SUCH /QYSTEM, @PTPAS MAY OT@ERWISE H T@OVIDED I@ WRITING Y URAPLAN. # DATAPLJ H@ASSULEA NL RESPODQA LHITY FO@ THE USE OR PDHE BYLITY CF ITS SOPCB _N EQAIPMENT THAT IP DNT SUPP@IED BY DAT@ D / / / / / / / / / // GERMA# / VEA OJ #1 B. A /1/77 VDRSION # @H. 4/22/77 / VER20/2240A WDM JUL-79 LJANGE T@G VERS WHEN C BDBING VERSIKN NUMB\S /- / T@IS PROGRAM @AB PP CALLE@ DIRACTLY O@ @HBANUD TO BY CCL TO "P ABT INFO@LATIFN ON R@L@PIS%BJECPS THE USER PS P AB_UT. . / START Ng SZ200 BSW:3401 / BCS24I=ITS:000%7377 / pIS PROCRAM REQUIRECAL RNPUT F@LE TO RUN. @HD TG/8 THE FILE / SHO F@ @ NAMED "HDLP8.HL" "H LP/78 THE NA E SHOULD FA AHELP78HL" / / @D RMAT OB THE FILE IB <SP><C<LB> / CHI@ND NAME / ADDITIEM OMMAND HAIEA(IF AN ( TEXT O HEL@ INFO L@XD COM ALD DAME / Q@@ @OF NEX HEL@ INFO AL@.M / FET@: TOO PFDT U PROCESSIFG A HACACBAAGORIDHM IS USED SICH REQUIBES THAT Q@AB QULTIPLE ABEMANDS RE ABEMCE A SALGLE SU BA THE SA@DA@E MUST A@@A@D IN THA HALP FILE @ALPHABETIAALLY ACCORD L P THE 1ST COMMAND SPP BG LETTERT BJOSES TB(J. / THAT IS, SUBFH@D AU#T BE ARRALGED AL @@BADICALLY ACCORDING T RHE HIG@EST LETTERE@ CHARACTER OF THE CDE@ ND. / VERSHI= "4 VARSHO= "0 PATCH= "A APB 00 /ADDRESS OF A@ JS78= 7371 /ADDRESS # @ WITH KS/78 FLAG BKR*28 (MH) DETCH= 1 /FE@ (HANDLE LOOKUP= 2 HKOUP A F@DE JAME EN@@@ /ENTEB A ILE CL A /CLOSA A FILE DEA A 5 /CAL@ T@E COMMAN @ECDER HACH% 3 /HAH CHE SUBTBACDIKN FACTQ@H *1 A F 0 JMP1 R SYMB OFD *10 O@@ R 0 /@EANTER TO C@E @TAOER IHPD BAMES HP ORANDKM ANDEX REGIQ AB XR2, 'ANOTHER R I OL INDEX REGISTER SCOUNT, 'BANDOM W BIUNT FOB AF THING B A@0 /TEM ERAPY PLACE DR PYT A CH@RABTER WIL IF NONRERO, NAME HR( OR '?! IN IT WAS @ /NONZERO IF HELP C FoUND MN THIS WORD HA,)ZBLOCJ 6 /NAME HJ 0 !S REQUESTED ON TXEB@A ZBLOCK 10 /CURRENT Q +@TFILE NAME BEING NAE AT NAMCNT, 0 /NU@ (F NAMEQ IN THE COMA@HD TECODER AREA BLKCN /NUMBER OF AVAILABLE BLOCKS ON OUTPUT OUTADR, 0 /ADDRESS OF OUTPUT HANDLER LINCNT, 0 /COUNT OF NUMBER OF NAMES ON '*' OR 'HELP' LINE LINMAX, -10 /MAXIMUN NUMBER OF NAMES/LINE ON '*' OR 'HELP' LINE FILNAM, ZBLOCK 4 /OUTPUT FILE NAME WDCTR, 0 /WORD COUNTER IN INPUT BLOCK CHTEM, 0 /TEMPORARY SPOT FOR CHARACTER IN 2/3 UNPACK DEVHND, 0 /OUTPUT DEVICE HANDLER ADDRESS CHPTR, 0 /BUFFER POINTER FOR READING CHARACTERS TEMP, 0 /TEMP STORE / MAIN LOOP OF PROGRAM STADR=200 *STADR START, SKP CLA /NORMAL ENTRY POINT JMP START1 /CHAINED ENTRY (CMD DECODE DONE BY CCL) CIF 10 /SEE WHAT TO DO JMS I (USR DECODE 5200 0 START1, JMS I (INIT /DO ALL INITIALIZATION AND SETUP MAINLP, JMS I (NXTNAM /GET NEXT NAME FROM COMMAND DECODER AREA JMP I (EXIT /NO NAMES LEFT JMS I (RESET /RESET THE INPUT FILE POINTERS TO THE BEGINNING TAD NAME /CHECK FOR '*' OR 'HELP" NAME INDICATING LIST OF HELPS TAD (-"* SNA!CLA JMP HELPLS /NAME BEGAN WITH '*' TAD NAME /NOT '*' LOOK FOR HELP (MH) TAD (-"H SZA!CLA JMP MAIN1 /NO 'HELP' TAD NAME+1 TAD (-"E SZA TAD ("E-"I /HI SZA!CLA JMP MAIN1 TAD NAME+2 TAD (-"L SZA!CLA JMP MAIN1 TAD NAME+3 TAD (-"P SZA TAD ("P-"F /HILF E SNA!CLA JMP HELPLS /WAS 'HELP" GO PRINT LIST (MH) TAD NAME /IS 1ST CHAR A "?"?(MH) TAD (-"? /(MH) SNA!CLA /(MH) JMP MAIN1 /YES -- DON'T TRY TO HASH FILE (MH) TAD NAME /NO -- HASH START BLK OF FILE BY (MH) AND (77 /MAKING 1ST CHAR OF NAME SIXBIT (MH) DCA TEMP /MULTIPLY BY 1.5 (MH) TAD NAME /THEN SUBTRACT "HASH"(3) (MH) AND (77 /(MH) CLL!RAR /(MH) TAD TEMP /(MH) TAD (-HASH /(MH) SPA /(MH) CLA /IF RESULT IF MINUS, SET TO ZERO (MH) TAD I (BLK /ADD REAL START BLK OF FILE (MH) DCA I (BLK /REPLACE NEW BLOCK(MH) MAIN1, JMS I (FINDNM /GET A NAME FROM THE SCRIPT FILE JMP NOHELP /HIT THE END OF THE FILE INSTEAD OF NAME JMS I (COMPAR /COMPARE THIS NAME WITH THE ONE HE HAD JMP MAIN1 /NOT A MATCH, TRY NEXT ONE JMS I (PRINT /PRINT THE HELP INFORMATION FOR THAT NAME TAD WILD /IF A WILD CARD TYPE NAME (I.E. '?') THEN SZA CLA / THEN KEEP SEARCHING PAST 1ST MATCH SINCE THERE JMP MAIN1 / MAY BE MORE. JMP MAINLP /NOT A WILD CARD, GET NEXT CMD DECODER NAME / HIT THE END OF THE SCRIPT FILE / IF DOING A WILD CARD NAME, SOME HJELP MAY HAVE ALREADY BEEN PRINTED. IF / NOT, PRINT AN ERROR MESSAGE ON THE TELETYPE (OR WHATEVER) NOHELP, TAD WASHLP /SEE IF HELP WAS ADMINISTERED SZA CLA JMP MAINLP /YES IT WAS, TRY NEXT NAME ON LIST JMS I (TYPE /TYPE THE ERROR MESSAGE ON THE TTY SORRY-1 DCA TXTNAM /PUT ON ZERO TERMINATER JMS I (TYPE NAME-1 /TYPE WHAT HELP MISSED JMS I (TYPE CRLF-1 /TYPE CARR RETURN, LINE FEED JMP MAINLP /NOW CONTINUE ON WITH IT / IF A '*' OR 'HELP' WAS TYPED AS HELP NAME, THEN PRINT A LISTING / OF ALL THE INFO IN THE HELP FILE FOR THE USER TO PICK FROM. HELPLS, TAD I (PRINT+2 /IS CLEAR ALLOWED? SNA CLA JMP .+4 JMS I (TYPE CLEAR-1 DCA I (PRINT+2 JMS I [OUTSTR /PRINT THE HEADING MESSAGE AVAIL-1 TAD LINMAX /MAX NO. NAMES PER LINE DCA LINCNT /INITIAL COUNT OF NAMES PER LINE HELP1, JMS I (FINDNM /GET NEXT NAME JMP HELP2 /AT END OF FILE JMS I (NAMLST /PRINT THE NAME JMP HELP1 HELP2, TAD LINCNT /CHECK IF LAST CHAR WAS CRLF SNA!CLA JMP MAINLP /IT WAS, DON'T DO ANOTHER JMS I [OUTSTR CRLF-1 JMP MAINLP PAGE / CLOSE ALL FILES AND RETURN TO MONITOR / EXIT, TAD (32 /WRITE AN AND OF FILE TO THE OUTPUT JMS I [PCH TAD (-600 /CLOSE FILE BY WRITING 600(8) NULLS DCA COUNT JMS I [PCH /WRITE IT ISZ COUNT JMP .-2 TAD I [BLKSRT /COMPUTE ACTUAL FILE LENGTH FOR CLOSE CIA TAD I [OUTBLK /CURRENT BLOCK NUMBER IAC DCA OLEN CIF CDF 10 TAD I [7600 CDF 0 JMS I (USR /CLOSE THE FILE CLOSE FILNAM OLEN, 0 /THE LENGTH NOP /ERROR ON CLOSE... CAN'T HAPPEN(MH) JMP I (7605 /RETURN TO OS/8 / SEARCH FOR A <LF>& IN THE FILE / THIS IS THE START OF SOME HELP INFO FOR A SUBJECT WHICH IS NAMED AFTER / THE &. COPY THE NAME INTO 'TXTNAM' SO COMPARES CAN BE DONE LATER. / SKIP IF THE END OF FILE ISN'T FOUND ON THE WAY. FINDNM, 0 DCA TXTNAM /CLEAR THE NAME OUT DCA TXTNAM+1 DCA TXTNAM+2 DCA TXTNAM+3 DCA TXTNAM+4 DCA TXTNAM+5 DCA TXTNAM+6 FIND1, JMS I [GCH /LOOK FOR A <LF>& IN THE FILE TAD (-232 /CHECK FOR END OF FILE SNA JMP I FINDNM /RETURN IF FOUND TAD (232-212 /CHECK FOR LINE FEED SZA CLA JMP FIND1 /NOT IT FIND5, JMS I [GCH /TRY FOR THE & NOW TAD (-"& SNA CLA JMP FIND2 /FOUND A LF,& TAD ("&-232 /MAKE SURE THIS ISNT THE END OF FILE SNA CLA JMP I FINDNM /END OF FILE FOUND, RETURN JMP FIND1 /KEEP LOOKING FOR NAME FIND2, TAD (TXTNAM-1 /MOVE THE NAME INTO 'TXTNAM' DCA XR1 TAD (-7 /MAX OF 7 CHARACTERS DCA COUNT FIND3, JMS I [GCH /GET A NAME CHARACTER TAD (-215 /CHECK IF THE END OF LINE <CR> SNA CLA JMP FIND4 /END OF LINE, THATS IT TAD CHAR DCA I XR1 /SAVE CHARACTER IN TXTNAM ISZ COUNT JMP FIND3 /IF MORE CHARACTERS LEFT FIND4, ISZ FINDNM /BUMP RETURN ADDRESS FOR FOUND RETURN JMP I FINDNM / COMPARE TWO STRINGS, ONE IN NAME AND ONE IN TXTNAM. CHECK FOR WILD / CARD STUFF LATER WHEN THIS PART IS WORKING. / SKIP IF NAMES ARE EQUAL COMPAR, 0 TAD [NAME-1 /SET UP REGISTERS FOR COMPARE DCA XR1 TAD (TXTNAM-1 DCA XR2 TAD (-6 DCA COUNT COMP1, TAD I XR1 /GET A CHARACTER AND COMPARE WITH ONE FROM DCA CHAR TAD CHAR TAD (-"? /WILDCARD SZA CLA JMP COMP3 /NO WILDCARD ISZ XR2 ISZ WILD JMP COMP2 COMP3, TAD CHAR CIA / THE OTHER STRING TAD I XR2 SZA CLA JMP I COMPAR /NO MATCH, NORMAL RETURN COMP2, ISZ COUNT JMP COMP1 ISZ COMPAR /EQUAL RETURN IS RETRN ADDR+1 JMP I COMPAR PAGE / GET THE NEXT NAME FROM THE COMMAND DECODER AREA / STOP ON EITHER A ZERO OR THE NAME GOING TO ZERO NXTNAM, 0 ISZ NAMCNT /COUNT NAMES, ONLY 5 IN THE AREA SKP JMP I NXTNAM /RETURN, NO MORE NAMES CLA CLL CMA RTL /NUMBEA RT WORDS OF JAME(-3) F JA COUNT AD [NAND DCA XR1 BDF 10 IINAMPPR +GAT 1ST PBCAT%R OF NAIE CDF AA JMP JXTN3 /MAYPAXTN F NALES(M@) NXT5(L@A CHAR /SAVA THE W RATAD CH@R RTR R R RTR /ASOLATE HIGH @ATS JMC SIHTO8 DCATR1 /PUT IJ NAME BUT IB TAD CHAB #NOW DO H@B#NHALF JMS SIXTO8 DCI XR1 '2ND AHARACT%2ND @WORD ASR BOUNT ASP JMP N@PN'NO MOR@ N 'ACTERS IN NAME @ @ 0M TAD INAMPTR /D@I ASPSTRALGE (AHOULD DSE (AVICE WKPD FCR CHECK CD 0 JEP NXTN1 XD@ YSZ N@M@TR/BUMP @M@DPR@TO NAXD N@ME IN APD ISZ N@MPTR ISZ @]PTP BUMP YEDURN ADD A UOR FOU@@ N@ME JM@ @MTNAM BXTN3, TAD N@HUN/CHECK FOR "HELP<C "TTY:<C