Type ASSEMBLE
Source Lines : 1,067
Fixes Applied : 1
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [R09080DS]
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.