*COMDECK DSLMACRO 
**        SYMBOL DEFINITIONS FOR DISPLAY MACRO
* 
 BOTLIN   EQU    3           LOWERMOST LINE WRITTEN ON K/L DISPLAY
 MAXCOL   EQU    64D         MAXIMUM USEABLE COLUMN 
 MAXLIN   EQU    43D         MAXIMUM USEABLE LINE 
 TOPLIN   EQU    46D         TOP LINE WRITTEN ON K/L DISPLAY
  
  
**        DSL   - GENERATE -K/L- DISPLAY LINE FORMAT
* 
*         DSL    LIN,COL,(TEXT) 
* 
*         PARAMETERS: 
*           LIN = LINE NUMBER OF THIS LINE (1-43). TOP LINE IS 1. 
*           COL = COLUMN NUMBER OF LINE START (1-64). 
*           (TEXT) = TEXT OF THE LINE. MUST BE ENCLOSED IN PARENTHESES. 
  
          PURGMAC DSL 
  
 DSL      MACRO  LIN,COL,TEXT 
          LOCAL  LG,TL1,TL2 
          IFGE   LIN,0,1     IF LINE **NOT** TOO SMALL
          IFGT   LIN,MAXLIN,1   IF LINE TOO LARGE 
          ERR    LINE NUMBER OUT OF RANGE 
          BSS    0           FORCE UPPER
  
 IFNOSBE  IFC    EQ,*"OS.NAME"*SCOPE *
          VFD    6/LG-*      LENGTH OF THIS ENTRY 
          VFD    3/0         SIZE OF CHARACTERS (SMALL) 
          VFD    3/0         REPEAT COUNT (ONCE)
 IFNOSBE  ENDIF 
  
          VFD    12/6000B-8+COL*8      X COORDINATE 
          VFD    12/7000B+TOPLIN*10D-LIN*10D    Y COORDINATE
 FWCHM    DECMIC *P/6 
 NWCHM    DECMIC *P/6+1 
 T1       MICRO  1,"FWCHM",#_TEXT_# 
 TL1      MICCNT T1 
          IFEQ   TL1,0,1     IF NULL STRING 
          ERR    NULL STRING SPECIFIED AS TEXT
 T2       MICRO  "NWCHM",,#_TEXT_#
 TL2      MICCNT T2 
          IFGE   COL,1,1     IF COLUMN **NOT** TOO SMALL
          IFGT   TL1+TL2+COL-1,MAXCOL,1 IF LINE EXTENDS BEYOND LIMIT
          ERR    COL OUT OF RANGE OR LINE TOO LONG
 TL1M     DECMIC TL1
          VFD    *P/"TL1M"_L"T1"
          IFC    NE,#"T2"##,1 
          DIS    ,#"T2"#
 LG       BSS    0
          ENDM
          SPACE  5,12 
