         TITLE    'HAZELTINE 2000 CURSOR ROUTINES FOR *MOM*'
***********************************************************
*        THREE CURSOR FUNCTION ROUTINES PROVIDED FOR
*        THE UTS 'MASTER OPERATIONS MONITOR' (MOM)
*        ENTRY POINTS:
*
*        BAL,15   ERASE             *ERASE DISPLAY SCREEN
*        BAL,15   HOMECURS          *HOME CURSOR (0,0)
*        BAL,15   MCURS             *MOVE CURSOR FROM
*                                   *PRESENT POSITION TO
*                                   *ABSOLUTE COORDINATES
*                                   *CONTAINED IN:
*                                   * R2 = HORIZ (0-70)
*                                   * R3 = VERT  (0-24)
*

*        NOTE: HOME POSITION IS UPPER LEFT AND COORD (0,0)
*              LOWER RIGHT IS COORD (70,24)
*
***********************************************************
         SYSTEM   SIG7
         SYSTEM   BPM
         DEF      ERASE,HOMECURS,MCURS
F:CURSOR DSECT    1
F:CURSOR M:DCB    (DEVICE,'LO'),(OUT),(TRIES,10),(DRC),(BIN)
         CSECT    0
*        OUTPUT BUFFER VALUES
*        HAZELTINE 2000 CURSOR CONTROL BUFFERS
ZCHOME   DATA     X'7E11FFFF'       LEAD-IN, ADDR, 0 0
ZCERAS   DATA     X'7E1CFFFF'       LEAD-IN, FS
ZCADDR   DATA     X'7E110000'       LEAD-IN, DC1, DYNAMIC COORD
         DATA     -1
         PAGE
         CSECT    1
*        ERASE SCREEN(HAZELTINE 2000)
*
ERASE    M:WRITE  F:CURSOR,(BUF,ZCERAS),(SIZE,4),(WAIT)
         B        *15
*        HOME CURSOR
*
HOMECURS  EQU     $
         M:WRITE  F:CURSOR,(BUF,ZCHOME),(SIZE,4),(WAIT)
         B        *15               RETURN
*
*        MOVE CURSOR (HAZELTINE 2000)
*        VERT POS - R3
*
MCURS    EQU      $
         LI,4     2                 X POS BYTE INDEX
         LI,5     3                 Y POS BYTE INDEX
         CI,2     31                RELOCATE X COORD < 31
         BG       $+2               NO, OK
         AI,2     96                YES APPLY BIAS
         STB,2    ZCADDR,4          X COORD TO BUFFER
         STB,3    ZCADDR,5          Y COORD TO BUFFER
         M:WRITE  F:CURSOR,(BUF,ZCADDR),(SIZE,6),(WAIT)
         B        *15               RETURN
         END
