.TITLE GETHLP - GET USER HELP FOR RSXNET .IDENT /01.3/ .ENABL LC ;+ ; ; Free software BY ; Project Software & Development, Inc. ; ; This software is furnished for free and may be used and copied as ; desired. This software or any other copies thereof may be provided or ; otherwise made available to any other person. No title to and ; ownership of the software is hereby transferred or allowed. ; ; The information in this software is subject to change without notice ; and should not be construed as a commitment by PROJECT SOFTWARE ; AND DEVELOPMENT, INC. ; ; PROJECT SOFTWARE assumes no responsibility for the use or reliability ; of this software on any equipment whatsoever. ; ; Project Software & Development, Inc. ; 14 Story St. ; Cambridge, Ma. 02138 ; 617-661-1444 ; ; ; Title: GETHLP.MAC ; Author: Gary N. Larsen ; Date: April 1, 1982 ; ; Description: ; ; This program sets up the help buffer to be passed to SPAWN ; for processing. The topic is passed from message in register 2. ; ; ; Modification History: ; ;- .ENABL AMA .NLIST BEX .MCALL DIR$, QIOW$S, SPWN$S, STSE$S ; Local Equates SPNEFN = 7 ; SPAWN EVENT FLAG ESC = 27. ; ESCAPE MCRNAM: .RAD50 %MCR...% ; SPAWN COMMAND TO MCR... HLPADR::.WORD 0 ; ADDRESS OF HELP STRING SPNBUF: .ASCII %HELP RSXNET % ; MCR COMMAND TOPIC: ; KEEP THIS WITH SPNBUF .BLKB 75. ; STORE HELP TOPIC HERE .EVEN .SBTTL GETHLP - GET HELP FROM HELP LIBRARY ;+ ; ; GETHLP - GET HELP FROM HELP LIBRARY ; ; This routine is called to set up the buffer to be sent to the SPAWN ; routine to spawn to MCR to get help. ; ; Inputs: ; HLPADR = the address of the help string (terminated by NULL). ; ; Outputs: ; None ; ; All registers are preserved. ; ;- GETHLP:: CALL $SAVAL ; SAVE THE REGISTERS MOV #TOPIC,R0 ; BUFFER TO STORE HELP SUBJECT MOV HLPADR,R2 ; COPY THE HELP STRING ADDRESS BEQ 20$ ; IF EQ, NO HELP AVAILABLE 10$: MOVB (R2)+,(R0)+ ; MOVE IN THE TOPIC BNE 10$ ; IF NE, MORE TO GO DEC R0 ; POINT TO THE NULL MOV R0,R1 ; COPY THE LAST ADDRESS SUB #SPNBUF,R1 ; CALCULATE THE BYTE COUNT MOV #SPNBUF,R0 ; ADDRESS OF BUFFER TO SPAWN CALL SPAWN ; GO DO IT 20$: RETURN .SBTTL SPAWN - SPAWN A MCR COMMAND LINE ;+ ; ; SPAWN - Spawn a MCR command line and wait until it's done. ; ; This subroutine spawns a command to the MCR dispatcher. ; ; Inputs: ; R0 = Command line to spawn ( appended automatically). ; R1 = The command line byte count. ; ; Outputs: ; C bit clear/set = Success/failure. ; ; All registers are preserved. ; ;- SPNEST:: .BLKW 8. ; SPAWN EXIT STATUS BLOCK SPAWN:: DIR$ #DETLOC ; DETACH LOCAL TERMINAL MOV R2,-(SP) ; SAVE R2 ON THE STACK MOV R0,R2 ; COPY THE BUFFER ADDRESS ADD R1,R2 ; POINT TO THE LAST BYTE MOVB #ESC,(R2)+ ; APPEND AN ESCAPE AS TERMINATOR ; TO PREVENT AN MCR PROMPT INC R1 ; ADJUST THE BYTE COUNT SPWN$S #MCRNAM,,,,,#SPNEFN,,#SPNEST,R0,R1 ; SPAWN COMMAND TO MCR BCS 10$ ; IF CS, DIRECTIVE FAILED STSE$S #SPNEFN ; STOP FOR SPAWNED COMMAND 10$: MOV (SP)+,R2 ; RESTORE R2 FROM THE STACK DIR$ #ASTLOC ; REATTACH LOCAL TTY W/UNSOL AST RETURN ; AND RETURN STATUS .END