.
.         REENTRANT EDIT$ INTERFACE
.
.
.         (C)  Copyright 1972-1978  John Walker
.
.         This software is in the public domain
.
          AXR$
          DEFUNCT$
          FANG
          PURE      CODE
.
.         ENTER EDIT MODE
.
.         LMJ       A1,RDIT$
.         <RETURN>
.
RDIT$*    BGET      22+EPKTL            ALLOCATE A PACKET AND LINE
          LA        A2,(1,CANNED)       GET POINTER TO CANNED PACKET
          LR,U      R1,EPKTL            LOAD LENGTH OF CANNED PACKET
          LA,U      A3,,A0              GET BUFFER ADDRESS
          LXI,U     A3,1                SET UP INCREMENT
          BT        A3,,*A2             MOVE CANNED PACKET TO BUFFER
          LA,U      A2,EPKTL,A0         LOAD LINE START ADDRESS
          SA,H2     A2,,A0              PUT INTO PACKET
          LX,U      X11,,A1             GET RETURN POINT
          J         EDIT$               ESTABLISH EDIT$ MODE
.
.         PRINT AND TERMINATE
.
.         LA,U      A0,<SPACING>
.         LMJ       A1,RPRTX$
.
RPRTX$*   .
          if        overtype
          TZ        TYPOUTST            IS A TYPE AND READ OUTSTANDING ?
          AA,U      A0,2                YES.  DON'T OVERTYPE IT
          SZ        TYPOUTST            CLEAR TYPE AND READ OUTSTANDING
          endf
          LSSL      A0,18+6             SHIFT SPACING TO T1
          LXM,U     A0,EPKTL,X1         POINT TO IMAGE
          AA        A0,(22,0)           PUT LENGTH IN PRINT$ WORD
          TNZ       SHADUP              OUTPUT TURNED OFF ?
          PRINT$    .                   PRINT THE LINE
RDITX$*   E$DITX    .                   TERMINATE EDITING MODE
          BRELP     A0                  RELEASE THE PACKET AND LINE
          J         0,A1                RETURN
.
.         PRINT AND STAY IN EDITING MODE
.
.         LA,U      A0,<SPACING>
.         LMJ       X11,RPRT$
.         <RETURN>
.
RPRT$*    LXI,U     X11,,X11            SAVE RETURN POINT
          if        overtype
          TZ        TYPOUTST            IS A TYPE AND READ OUTSTANDING ?
          AA,U      A0,2                YES.  DON'T OVERTYPE IT
          SZ        TYPOUTST            CLEAR TYPE AND READ OUTSTANDING
          endf
          LSSL      A0,18+6             SHIFT OVER SPACING
          LXM,U     A0,EPKTL,X1         GET LINE POINTER
          AA        A0,(22,0)           ADD IN LENGTH
          TNZ       SHADUP              OUTPUT TURNED OFF ?
          PRINT$    .                   PRINT THE LINE
          E$DITX    .                   TERMINATE EDIT MODE
          LA        A1,X11              GET RETURN POINT
          SSL       A1,18               SHIFT IT DOWN
          LX,U      X11,,A1             LOAD IT INTO X11
          J         EDIT$               SET UP EDIT MODE, RETURN TO CALL
.
          PURE      DATA
CANNED    E$PKT     22,$-$ 'MSG','!'
EPKTL     EQU       $-CANNED
          END