Table of Contents

DMSSCR Abstract

Statistics

Type ASSEMBLE
Source Lines : 708
Fixes Applied : 4
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [HRC073DS]

Synopsis

Module

      DMSSCR

Function

       LOAD DISPLAY BUFFERS AND CREATE A PARAMETER LIST FOR
       MODULE DMSGIO.

Attributes

       EXECUTES IN USER AREA AS PART OF EDIT LOAD MODULE.

Operation

    UPON ENTRY TO THIS ROUTINE THE TWO BYTES LABELLED
    SCRFLGS, AND SCRFLG2 WILL BE SET TO INDICATE THE
    FOLLOWING:

    SCRFLGS= X'80'  REWRITE THE STATUS AREA

    SCRFLGS= X'40'  WRITE THE CURRENT LINE TO LINE 9 OF ALL DISPLAYS
                    EXCEPT 3278 MOD 2A WHICH IS LINE 7

    SCRFLGS= X'20'  WRITE FROM THE CURRENT LINE DOWN TO THE
                    BOTTOM OF THE OUTPUT AREA.

    SCRFLGS= X'02'  WRITE FROM CURRENT LINE UP TO TOP


    SCRFLG2= X'80'  CAUSE CP MORE STATUS. ISSUED WITH A
                    COMPLETE WRITE REQUEST.

    SCRFLG2= X'40'  CAUSE AN EFFECTIVE OPERATOR CANCEL.

    SCAFLG2= X'04'  WRITE LAST COMMAND TO INPUT AREA


      DMSSCR USES THE FLAG BITS TO LOAD A DISPLAY BUFFER
      AREA WHICH IS LOCATED IN USER FREE STORAGE. THIS AREA
      WAS OBTAINED BY DMSEDX DURING INITIALIZATION.

      FILEID INFORMATION IS OBTAINED FROM CONTROL BLOCKS
      IN DMSEDI. EDITOR STATUS IS DETERMINED BY FLAG BITS
      IN DMSEDI INDICATING 'NEW FILE','EDIT MODE',OR
      'INPUT MODE'.

      THE LENGTH AND ADDRESS OF A MESSAGE TO BE WRITTEN
      ARE LOCATED IN REGISTERS 0 AND 1 RESPECTIVELY AT
      ENTRY TO THIS MODULE.

      THE TRUNCATION COLUMN IS USED TO DETERMINE THE
      LENGTH OF THE CURRENT LINE TO BE PLACED IN THE INPUT
      AREA BUFFER. IN THE CASE OF A DISPLAY CHANGE COMMAND
      WITH LINEMODE IN EFFECT, THE LINE NUMBER IS NOT
      WRITTEN IN THE INPUT AREA WITH THE REST OF THE DATA.
      IT IS THEREBY PROTECTED FROM ALTERATION BY THE USER.

      LOADING OUTPUT AREA BUFFERS

       THE OUTPUT BUFFERS ARE ALWAYS LOADED SO THAT LINE 9
      OF THE DISPLAY ALWAYS CONTAINS THE CURRENT LINE UNLESS
      IT IS A 3278 MOD 2A  THEN IT IS LINE 7. IF
      THE VERIFICATION COLUMN IS GREATER THAN 80, TWO LINES
      MAY BE USED TO DISPLAY THE RECORD.
      TRAILING BLANKS IN A RECORD ARE IGNORED IN DETERMIN-
      ING WHETHER OR NOT A RECORD WILL REQUIRE TWO DISPLAY
      LINES.
       THE CURRENT LINE IS THE FIRST TO BE LOADED INTO THE
      BUFFER AREA.
       ENOUGH RECORDS FOLLOWING THE CURRENT LINE TO FILL
      THE REMAINING LOWER OUTPUT BUFFER AREA ARE THEN
      LOADED.
       THEN THE LINES PRECEDING THE CURRENT LINE ARE
      LOADED IN REVERSE ORDER, THAT IS, LINE 8, LINE 7, ETC,
      THROUGH LINE 2.
       IN THE CASE OF TOP OF FILE OR END OF FILE BEING
      ENCOUNTEREDIN LOADING THE BUFFER AREA, THE REMAINING
      BUFFER LINES IN THE OUTPUT AREA ARE PADDED WITH
      BLANKS.

      WHEN THE REQUESTED BUFFERS HAVE BEEN LOADED A
      PARAMETER LIST IS GENERATED USING THE UPPER AND LOWER
      LIMITS OF THE WRITE REQUEST TO CALCULATE THE NUMBER
      OF BYTES TO BE WRITTEN. A CALL IS MADE TO DMSGIO FOR
      ISSUANCE OF THE CP DIAGNOSE TO WRITE TO THE DISPLAY.

      UPON RETURN FROM DMSGIO, DMSSCR RETURNS TO THE CALLER
      WITH CP'S DIAGNOSE RETURN CODE IN REGISTER 15.

Calls to Other Routines

       DMSGIO