.
. 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