.
. REENTRANT ADIT$ INTERFACE
.
.
. (C) Copyright 1972-1978 John Walker
.
. This software is in the public domain
.
AXR$
DEFUNCT$
A$DEF
FANG
PURE CODE
.
. ENTER EDIT MODE
.
. LMJ A1,RDITA$
. <RETURN>
.
RDITA$* BGET 33+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 ADIT$ ENTER EDITING MODE
.
. PRINT AND TERMINATE
.
. LA,U A0,<SPACING>
. LMJ A1,RPRTXA$
.
RPRTXA$* .
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,(33,0) PUT LENGTH IN PRINT$ WORD
TNZ SHADUP OUTPUT TURNED OFF ?
if fdonly
lmj x11,aprtf translate to Fieldata and print
else
aprint$ . print if all ASCII
endf
RDITXA$* A$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,RPRTA$
. <RETURN>
.
RPRTA$* 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,(33,0) ADD IN LENGTH
TNZ SHADUP OUTPUT TURNED OFF ?
if fdonly
lmj x11,aprtf translate to Fieldata and print
else
aprint$ . print if ASCII is working today
endf
A$DITX . TERMINATE EDIT MODE TO CLEAR LINE
LA A1,X11 GET RETURN POINT
SSL A1,18 SHIFT IT DOWN
LX,U X11,,A1 LOAD IT INTO X11
J ADIT$ SET UP EDIT MODE, RETURN TO CALL
.
. TRANSLATE IMAGE TO FIELDATA AND PRINT IF SYSTEM DOES NOT
. SUPPORT ASCII PRINT FILES.
.
if fdonly
APRTF SSL A0,24 SHIFT OFF LENGTH AND BUFFER
SA,H1 A0,SVL,X1 SAVE SPACING IN BUFFER
SX X11,SVL+1,X1 SAVE RETURN POINT IN SAVE BUFFER
DS A1,SVL+2,X1 SAVE A1, A2
DS A3,SVL+4,X1 SAVE A3, A4
SA A5,SVL+6,X1 SAVE A5
LA,U A2,SVL+7,X1 LOAD START ADDRESS OF FIELDATA BUFFER
LA,U A0,33 LOAD ASCII BUFFER LENGTH
LA,U A1,EPKTL,X1 LOAD IMAGE BUFFER ADDRESS
ascfd . CONVERT ASCII TO FIELDATA
LSSL A0,18 MOVE LENGTH TO H1
LXM,U A0,SVL+7,X1 LOAD FIELDATA BUFFER ADDRESS
LA,H1 A1,SVL,X1 LOAD SPACING
LSSL A1,24 MOVE TO T1 OF WORD
AA A0,A1 ADD TO CONTROL WORD
PRINT$ . PRINT FIELDATA IMAGE
DL A1,SVL+2,X1 RELOAD A1, A2
DL A3,SVL+4,X1 RELOAD A3, A4
LA A5,SVL+6,X1 RELOAD A5
LX X11,SVL+1,X1 RELOAD RETURN POINT FROM BUFFER
J 0,X11 RETURN TO CALLER
endf
.
PURE DATA
CANNED A$PKT 33,$-$
if fdonly
SVL EQU $-CANNED START OF SAVE AREA
endf
EPKTL EQU $-CANNED+(22+7)*(FDONLY>0)
END