Table of Contents

DMSERR Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,067
Fixes Applied : 1
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [R09080DS]

Synopsis

Module

       DMSERR

Function

       HANDLE CALLS PRODUCED BY 'DMSERR' AND 'LINEDIT'
       MACROS.

Attributes

       NUCLEUS RESIDENT, RE-ENTRANT

Operation

       AT ENTRY, THE PLIST IS DECODED AND EXPANDED INSIDE THE WORK
       AREA, SO THAT IT WILL BE POSSIBLE TO EASILY ACCESS ALL ITS
       FIELDS.

       NEXT, THE MESSAGE HEADER IS CONSTRUCTED, IF 'DMSERR' (RATHER
       THAN 'LINEDIT') WAS SPECIFIED.

       THEN, THE MESSAGE TEXT IS SCANNED, BYTE BY BYTE. WHENEVER TWO
       OR MORE CONSECUTIVE DOTS ARE FOUND IN THE MESSAGE TEXT, AN
       ARGUMENT IS TAKEN FROM THE 'SUBS' PARAMETER LIST, THE
       APPROPRIATE CONVERSION IS PERFORMED, AND THE RESULT IS
       SUBSTITUTED FOR THE DOTS INTO THE MESSAGE TEXT.

       NEXT, IF A 'BUFFA' BUFFER ADDRESS WAS SPECIFIED, THEN THE
       RESULTING MESSAGE TEXT IS COPIED INTO THE SPECIFIED BUFFER.

       NEXT, THE 'DISP' FIELD IS EXAMINED, AND APPROPRIATE ACTION
       IS TAKEN.  FOR DISP=TYPE, DMSCWR IS CALLED. FOR 'DISP=PRINT',
       PRINTR IS CALLED.  FOR 'DISP=SIO', THE ROUTINE DOES ITS
       OWN SIO TO THE CONSOLE.  FOR 'DISP=CPCOMM', DMSCPF IS
       CALLED.  FOR 'DISP=NONE', NO ACTION IS PERFORMED.

       FINALLY, THE 'DIE' OPTION IS EXAMINED.  IF 'DIE=YES' WAS
       SPECIFIED, THEN A DISABLED WAIT STATE PSW IS CREATED, CON-
       TAINING THE RETURN ADDRESS TO THE POINT WHERE DMSERR WAS
       CALLED.  ALL REGISTERS ARE RESTORED, AND THE DISABLED WAIT
       STATE PSW IS LOADED.

       IF 'DIE=NO' (THE DEFAULT) WAS SPECIFIED,
       THEN A NORMAL RETURN IS MADE.
                                                               P3071

Calls to Other Routines

       DMSCWR (TYPLIN) -- TO TYPE OUT THE MESSAGE.

       DMSCPF (CPFUNC) -- TO PERFORM PROCESSING ASSOCIATED WITH
             'DISP=CPCOMM' OPTION

       DMSCWT (CONWAIT) -- TO WAIT FOR CONSOLE OUTPUT TO BE
             COMPLETED, IN CASE 'DIE=YES' WAS SPECIFIED.

       PRINTR -- TO PRINT A LINE, IN CASE
             'DISP=PRINT' WAS SPECIFIED.