1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-03-03 09:56:03 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

381 lines
9.7 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
! NET:<PECKHAM.DEVELOPMENT>NMRSP.REQ.2 24-May-82 17:55:52, Edit by PECKHAM
!
! Set proper default for ERROR DETAIL to -1.
! Optimize string access for MCB.
!
! NET:<VOBA.NML.DEVELOPMENT>NMRSP.REQ.7 18-Feb-82 15:49:32, Edit by VOBA
!
! Clean up code and update copyright date.
!
! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMRSP.REQ.5 16-Oct-81 16:04:12, Edit by PECKHAM
!
! Optimize various macros for MCB.
!
! NET:<DECNET20-V3P1.NML>NMRSP.REQ.2 8-Aug-81 11:56:02, Edit by GUNN
!
! Change $RESPONSE macro to provide for error numbers in MCB.
!
! NET:<DECNET20-V3P1.NMU>NMRSP.REQ.3 24-Jun-81 08:53:13, Edit by JENNESS
!
! Readability improvements. Copyright page insertion.
!
! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMRSP.REQ.2 12-Jun-81 15:26:07, Edit by GUNN
!
! Made calls to NMU$TEXT be under $MCB conditional.
!
%title 'NMRSP -- NICE Response Generation Macros'
! COPYRIGHT (C) 1981, 1982 BY
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A SINGLE
! COMPUTER SYSTEM AND MAY BE COPIED ONLY 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
! EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE
! TERMS. TITLE TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES
! REMAIN IN DEC.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
! CORPORATION.
!
! DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
!
!++
! Facility: LSG DECnet Network Management
!
! Abstract:
!
! This set of macros is used to manipulate error strings used
! in NICE processing. The error string format is the same as
! that used in a NICE response message.
!
! Environment: Bliss-36, Bliss-32 and Bliss-16.
!
! Author: Steven M. Jenness, Creation date: 18-Mar-81
!
!--
! macro: $CLEAR_RESPONSE
!
! This macro clears the response string.
!
! e.x. $CLEAR_RESPONSE (RESPONSE_POINTER);
macro
$CLEAR_RESPONSE (PTR) =
begin
local STRPTR;
STRPTR = PTR;
PUTB (0, STRPTR); ! Clear response code
%if $MCB
%then
ch$wchar (-1, .STRPTR); ! Clear error detail
ch$wchar_a (ch$rchar_a (STRPTR), STRPTR);
%else
PUTB (-1, STRPTR); ! Clear error detail
PUTB (-1, STRPTR);
%fi
PUTB (0, STRPTR); ! Clear text length
PUTB (0, STRPTR);
end %;
! macro: $RESPONSE
!
! This macro puts the appropriate values
! into the fields in a error response string.
!
! $RESPONSE (PTR, CODE, DET [,TXT] {,PRM ...});
!
! PTR Byte pointer to error string buffer
! CODE Nice return code
! DET Nice error detail
! TXT Error text string
! PRM Parameters to fill in text string
!
! e.x. $RESPONSE (.BUFPTR, NICE$_FOE, 1, "No such device");
macro
$RESPONSE (PTR, CODE, DET, TXT) =
begin
local STRPTR;
STRPTR = PTR;
PUTB (CODE, STRPTR);
%if not %NULL (DET)
%then %if %ctce (DET)
%then
PUTB ((DET and %o'377'), STRPTR);
PUTB ((DET^-8 and %o'377'), STRPTR);
%else
begin
local DETAIL;
DETAIL = DET;
PUTW (DETAIL, STRPTR);
end;
%fi
%else
%if $MCB
%then
ch$wchar (-1, .STRPTR);
ch$wchar_a (ch$rchar_a (STRPTR), STRPTR);
%else
PUTB (-1, STRPTR);
PUTB (-1, STRPTR);
%fi
%fi
%if not %null (TXT)
%then %if not $MCB
%then
begin
local TXTPTR, CNT;
external routine NMU$TEXT;
TXTPTR = .STRPTR;
PUTB (0, STRPTR);
CNT = $NMU$TEXT (STRPTR, 72, %string (TXT, '%N')
%if %length gtr 4
%then , %remaining %fi);
PUTB (.CNT, TXTPTR);
end;
%fi
%else PUTB (0, STRPTR);
%fi
ch$diff (.STRPTR, PTR)
end %;
! macro: $RESPONSE_X
!
! This macro puts the appropriate values
! into the fields in a error response string.
!
! $RESPONSE_X (PTR, CODE, DET [,TXT,ERR] {,PRM ...});
!
! PTR Byte pointer to error string buffer
! CODE NICE return code
! DET NICE error detail
! TXT Error text string
! ERR Error text number for MCB environment
! PRM Parameters to fill in text string
!
! e.x. $RESPONSE_X (.BUFPTR, NICE$_FOE, 1, "No such device", 101);
macro
$RESPONSE_X (PTR, CODE, DET, TXT, ERR) =
begin
local STRPTR;
STRPTR = PTR;
PUTB (CODE, STRPTR);
%if not %NULL (DET)
%then %if %ctce (DET)
%then
PUTB ((DET and %o'377'), STRPTR);
PUTB ((DET^-8 and %o'377'), STRPTR);
%else
begin
local DETAIL;
DETAIL = DET;
PUTW (DETAIL, STRPTR);
end;
%fi
%else
%if $MCB
%then
ch$wchar (-1, .STRPTR);
ch$wchar_a (ch$rchar_a (STRPTR), STRPTR);
%else
PUTB (-1, STRPTR);
PUTB (-1, STRPTR);
%fi
%fi
%if not %null (TXT)
%then %if not $MCB
%then
begin
local TXTPTR, CNT;
external routine NMU$TEXT;
TXTPTR = .STRPTR;
PUTB (0, STRPTR);
CNT = $NMU$TEXT (STRPTR, 72, %string (TXT, '%N')
%if %length gtr 4
%then , %remaining %fi);
PUTB (.CNT, TXTPTR);
end;
%else
begin
linkage CBDSG = JSR (register=0,register=1,register=2;
register=0) : nopreserve (1,2);
external routine $CBDSG : CBDSG novalue;
PUTB (5, STRPTR); ! 5 digit ASCII signed decimal number
$CBDSG (.STRPTR,
%if not %null (ERR)
%then ERR %else 99999 %fi,
1;
STRPTR);
end;
%fi
%else PUTB (0, STRPTR);
%fi
ch$diff (.STRPTR, PTR)
end %;
! macro: $RESPONSE_CODE
!
! This macro puts the reponse code into the
! specified response string.
!
! e.x. $RESPONSE_CODE (RESPONSE_POINTER, NICE$_UFO);
macro
$RESPONSE_CODE (PTR, CODE) =
begin
ch$wchar (CODE, PTR);
end %;
! macro: $RESPONSE_DETAIL
!
! This macro puts the error detail into the
! specified response string.
!
! e.x. $RESPONSE_DETAIL (RESPONSE_POINTER, 11);
macro
$RESPONSE_DETAIL (PTR, DET) =
begin
local STRPTR;
STRPTR = ch$plus (PTR, 1);
%if %ctce (DET)
%then
PUTB ((DET and %o'377'), STRPTR);
PUTB ((DET^-8 and %o'377'), STRPTR);
%else
begin
local DETAIL;
DETAIL = DET;
PUTW (DETAIL, STRPTR);
end;
%fi
end %;
! macro: $RESPONSE_TEXT
!
! This macro puts the error text into
! the specified response string. The
! format of the arguments is the same as
! as that taken by $NMU$TEXT.
!
! e.x. $RESPONSE_TEXT (RESPONSE_POINTER, 'Bad error:', .WHY);
macro
$RESPONSE_TEXT (PTR, TXT) =
%if $MCB
%then
begin
local STRPTR, TXTPTR;
TXTPTR = ch$plus (PTR, 3);
STRPTR = ch$plus (.TXTPTR, 1);
PUTB ($NMU$TEXT (STRPTR, 72, %string (TXT, '%N')
%if %length gtr 2
%then , %remaining %fi),
TXTPTR);
end
%fi %;
! macro: $RESPONSE_LENGTH
!
! This macro returns the length (in bytes) of
! the response string. It assumes that an response
! code, error detail and counted text string
! exist.
!
! e.x. LENGTH = $RESPONSE_LENGTH (RESPONSE_POINTER);
macro
$RESPONSE_LENGTH (PTR) =
begin
local STRPTR;
STRPTR = ch$plus (PTR, 3);
4 + GETB (STRPTR)
end %;
! macro: $GET_CODE
!
! This macro fetches the response code field in the
! specified error string.
!
! e.x. CODE = $GET_CODE (RESPONSE_POINTER);
macro
$GET_CODE (PTR) =
begin
ch$rchar (PTR)
end %;
! macro: $GET_DETAIL
!
! This macro gets the error detail from the
! specified response string.
!
! e.x. DETAIL = $GET_DETAIL (RESPONSE_POINTER);
macro
$GET_DETAIL (PTR) =
GETW_NA (ch$plus (PTR, 1)) %;
! macro: $GET_TEXT
!
! This macro gets a pointer to the text field
! in specified the response string.
!
! e.x. TEXT_PTR = $GET_TEXT (RESPONSE_POINTER);
! TEXT_LENGTH = GETB (TEXT_PTR);
macro
$GET_TEXT (PTR) =
ch$plus (PTR, 3)) %;
%title ''
%sbttl ''
!
! [End of NMRSP.REQ]