Trailing-Edge
-
PDP-10 Archives
-
bb-x130a-sb
-
swihlp.mac
There are 4 other files named swihlp.mac in the archive. Click here to see a list.
TITLE .HELPR SWIL "HELP" processing module %5(41)
SUBTTL A.W.LYONS/AWL/PFC 17-OCT-73
SEARCH SWIDEF, SWIL ;SWIL PACKAGE DEFINTIONS
SEARCH JOBDAT, MACTEN, UUOSYM ;STANDARD DEFINITIONS
SALL ;PRETTY LISTINGS
.DIREC FLBLST ;PRETTIER LISTINGS
TWOSEG 400000 ;NICE PURE CODE
Copyright (C) Digital Equipment Corporation 1984.
COMMENT \
Copyright (C) 1984
Digital Equipment Corporation, Maynard, Massachusetts, U.S.A.
This software is furnished under a license and may be used and copied only
in accordance with the terms of such license and with the inclusion of the
above copyright notice. This software or any other copies thereof may not
be provided or otherwise made available to any other person. No title to
and ownership of the software is hereby transferred.
The information in this software is subject to change without notice and
should not be construed as a commitment by Digital Equipment Corporation.
Digital assumes no responsibility for the use or reliability of its
software on equipment which is not supplied by Digital.
\
CUSTVR==0 ;CUSTOMER VERSION
DECVER==5 ;DEC VERSION
DECMVR==0 ;DEC MINOR VERSION
DECEVR==41 ;DEC EDIT NUMBER
XP %HELPR,CUSTVR*1B2+DECVER*1B11+DECMVR*1B17+DECEVR
PURGE CUSTVR,DECVER,DECMVR,DECEVR
;REVISION HISTORY
;%4(35) JAN 1972
;36 (10-9713) HANDLE SEQUENCED FILES AND I/O ERRORS
;37 (10-11567) HANDLE HLP:
;40 ADD ALTERNATE ENTRY 'HELPER' FOR FORTRAN/COBOL
;41 EXPAND SORRY MESSAGE
;HELPER IS A SUBROUTINE USED TO OUTPUT HELP TEXTS(HLP:/SYS:??????.HLP)
; ONTO DEVICE TTY. IT WAS DESIGNED AS A TOOL FOR THE VARIOUS
; MODULES OF THE MULTI-PROGRAMMING-BATCH PROJECT.
;
;ENTERED WITH THE SIXBIT MODULE NAME IN AC1 VIA:
; PUSHJ P,.HELPR
; RETURN TO HERE AT END OF HELPER
;
;OR MOVEI 16,[,,['MODULE']]
; PUSHJ 17,HELPER
;
;HELPER REQUIRES EIGHT(8) LOCATIONS ON THE PUSH-DOWN LIST
; ON WHICH TO STORE AND FROM WHICH TO RESTORE USER AC'S.
;ACCUMULATORS
T1=1
T2=2
T3=3
T4=4
AP=16 ;ARG LIST POINTER
P=17
;DEVICE CHANNELS
DSK=0
ENTRY .HELPR,HELPER
HELPER: MOVE T1,@(AP) ;FETCH FIRST ARG
.HELPR: PUSH P,T2 ;SAVE ACS THAT ARE USED
PUSH P,T3
PUSH P,T4
PUSH P,.JBFF ;SAVE .JBFF
MOVE T2,.JBREL ;GET ACTUAL CORE SIZE
HRLM T2,(P) ;SAVE FOR RESTORATION
SETZ T2, ;TO LOAD BUFFER HEADER INTO PDL
PUSH P,T2 ; LOAD UP 4 ZEROED LOCATIONS
PUSH P,T2
PUSH P,T2
PUSH P,T2
GETHLP: SKIPA T3,['HLP '] ;GET HLP:
GETSYS: MOVSI T3,'SYS'
HRRZI T4,-2(P)
OPEN DSK,T2
JRST SORRY
MOVSI T2,'HLP'
SETZB T3,T4
LOOKUP DSK,T1
TLZA T2,-1 ;CLEAR JUNK
JRST MORE ;GOOD--GO READ FILE
CAIE T2,ERSNF%
CAIN T2,ERSLE%
JRST AGAIN
CAILE T2,ERIPP%
JRST SORRY ;HORRIBLE DISK ERROR
AGAIN: SETZM T2 ;CLEAR PHYSICAL BIT
AOS T3,-3(P) ;TRY NEXT CASE
TRNE T3,1 ;SEE IF ODD
TXO T2,UU.PHS ;YES--TRY PHYSICAL ONLY
JRST @[GETHLP ;TRY HLP: AGAIN
GETSYS ;THEN LOGICAL SYS:
GETSYS ;THEN PHYSICAL SYS:
SORRY]-1(T3) ;THEN GIVE UP
MORE: IN DSK,
JRST GETCHR
STATZ DSK,IO.ERR ;SEE IF ERRORS
JRST IOERR ;YES--ISSUE MESSAGE
STATZ DSK,IO.EOF ; YET?
JRST DONE ;YES, ALL DONE!
GETCHR: SOSGE T2,(P)
JRST MORE
IBP -1(P) ;INCR CHAR POINTER
MOVE T1,@-1(P) ;GET THIS WORD
TRNE T1,1 ;SEE IF SEQUENCE NUMBER
JRST [AOS -1(P) ;YES--SKIP 5 MORE CHARS
MOVNI T1,5 ; ..
ADDM T1,(P) ; ..
JRST GETCHR]
LDB T1,-1(P)
OUTCHR T1
JRST GETCHR
IOERR: OUTSTR [ASCIZ \%HLRIOE I/O error reading help file\]
JRST SORRYX ;FINISH WITH SORRY MESSAGE [41]
SORRY: OUTSTR [ASCIZ /%HLRNHF No .HLP file on SYS:/]
SORRYX: OUTSTR [ASCIZ/; I'm sorry, I can't help you/]
DONE: OUTSTR [ASCIZ/
/]
RELEAS DSK,
SUB P,[4,,4] ;RESTORE PDL
POP P,T1 ;RETRIEVE .JBFF IN "T1"
HRRZM T1,.JBFF ;RESTORE .JBFF
HLRZ T1,T1 ;RETRIEVE .JBCOR
CORE T1,
JFCL ;IGNORE ERROR
POP P,T4
POP P,T3
POP P,T2
POPJ P, ;RETURN TO CALLER
XLIST ;LITERALS
LIT
LIST
RELOC
END