File PLOTX.SB (8k SABR macro assembler source file)

Directory of image this file is from
This file as a plain text file

/ 6 PLOTTER SUBROUTINES FUER XY8EC - INTERFACE
/
/	V 001.A
/
/ FEB-MAR 1976		W. HOUBEN
/
/	AUFRUFE :
/
/			CALL PLOTX  ( ARG1 , ARG2 , ARG3 )
/
/			CALL WHERE  ( ARG1 , ARG2 , ARG3 )
/
/			CALL XYPLT  ( ARG1 , ARG2 )
/
/			CALL PENUP
/
/			CALL PENDN
/
/	ARG1 :	X - KOORDINATE	[ 0 - 1023 ]
/
/	ARG2 :	Y - KOORDINATE	[ 0 - 1023 ]
/
/	ARG3 :	PEN STATUS	( 0=PEN DOWN , 1=PEN UP )
/
	SKPDF XYSF 6053
	OPDEF XYCF 6056
	OPDEF XYPU 6052
	OPDEF XYPD 6051
	OPDEF XYLX 6054
	OPDEF XYLY 6055
	ENTRY PLOTX
	ENTRY WHERE
	ENTRY XYPLT
	ENTRY PENUP
	ENTRY PENDN
	DUMMY ARG1
	DUMMY ARG2
	DUMMY ARG3
	OPDEF JMPI 5400
	OPDEF CDI 6203
ARG1,	BLOCK 2
ARG2,	BLOCK 2
ARG3,	BLOCK 2
XPNT,   ARG1
PNTR,   0
CNTR,   0

PLOTX,  BLOCK 2
        TAD XPNT
        DCA PNTR
        TAD (-6
	DCA CNTR
A1,     TAD I PLOTX
        INC PLOTX#
        DCA I PNTR
        INC PNTR
        ISZ CNTR
        JMP A1
	TAD I ARG3	/ NEW PEN STATUS
	SPA		/ MOVE THE PEN ?
	JMP PLOTA	/ NO: CONTINUE
	SNA CLA		/ = 0 ? (PEN UP)
	JMP PL1		/ <> 0 ! (PEN DOWN)
	TAD PLOTPN
	SNA CLA
	JMP PLOT1
	CALL 0,PENUP
	JMP PLOT1
PL1,	TAD PLOTPN
	SZA CLA
	JMP PLOT1
	CALL 0,PENDN
	JMP PLOT1
PLOTA,	CLA
	XYPU		/ RAISE THE PEN
	JMS PLOTWT
	DCA PLOTPN
	DCA PLOTNX	/ 0 TO X - CO-ORDINATE
	DCA PLOTNY	/ 0 TO Y - CO-ORDINATE
	DCA OLDX
	DCA OLDY
	XYLX
	XYLY
	XYPU		/ INITIALIZE
	JMS PLOTWT
PLTRTN,	RETRN PLOTX
PLOT1,	TAD PLOTNX	/ FETCH PREVIOUSE X CO-ORDINATE
	CIA CLL
	TAD I ARG1	/ FORM NX-NPX
	SNL		/ L=0: NX<NPX
	CIA		/ ABSOLUTE VALUE OF DIFFERENCE
	DCA PLOTDX
	RAL
	DCA PLOTMV	/ SAVE SIGN BIT
	TAD I ARG1	/ SET NEW
	DCA PLOTNX	/ PREVIOUS X
	TAD PLOTNY	/ FETCH PREVIOUS Y CO-ORDINATE
	CIA CLL
	TAD I ARG2	/ FORM NY-NPY
	SNL		/ L=0: NY<NPY
	CIA		/ ABSOLUTE VALUE OF DIFFERENCE
	DCA PLOTDY
	TAD PLOTMV	/ SAVE SIGN BIT
	RAL		/ BIT 10 (1) DRUM DOWN (POSITIVE)
	DCA PLOTMV	/ BIT 11 (1) PEN LEFT (POSITIVE)
	TAD I ARG2
	DCA PLOTNY	/ PREVIOUS Y
	TAD PLOTDX
	CIA CLL
	TAD PLOTDY
	SNL CLA		/ L=0: DELTA Y < DELTA X
	JMP PLOT2
	TAD PLOTDX	/ REVERSE NUMBERS
	DCA PLOTNA
	TAD PLOTDY
	DCA PLOTDX
	TAD PLOTNA
	DCA PLOTDY
	IAC		/ SET MAJOR MOTION
	AND PLOTMV	/ INSTRUCTION
	TAD PLOTT1
	JMP PL3
PLOT2,	TAD PLOTMV
	CLL RAR
	TAD PLOTT2
PL3,	DCA PLOTNA
	TAD I PLOTNA
	DCA PLOT4
	TAD PLOTMV	/ SET COMBINED MOTION
	TAD PLOTT3
	DCA PLOTMV
	TAD I PLOTMV
	DCA PLOTDB
	TAD PLOTDX
	CLL RAR
	DCA PLOTNA
	TAD PLOTDX
	CMA
	DCA PLOTMV
PLOT3,	ISZ PLOTMV
	SKP		/ ALL DONE ?
	JMP PLTRTN
	TAD PLOTNA
	TAD PLOTDY
	DCA PLOTNA
	TAD PLOTNA
	CMA CLL
	TAD PLOTDX
	SZL CLA		/ SINGLE MOTION
	JMP PLOT4	/ COMBINED MOTION
PLOTDB,	HLT
	TAD PLOTDX
	CIA
	TAD PLOTNA
	DCA PLOTNA
PL4,	JMS PLOTWT
	JMP PLOT3
PLOT4,	HLT
	JMP PL4

PLOTT1,	PLOTT1#
	JMS PL
	JMS PR
PLOTT2,	PLOTT2#
	JMS DD
	JMS DU
PLOTT3,	PLOTT3#
	JMS DDPL
	JMS DDPR
	JMS DUPL
	JMS DUPR
PLOTPN,	0
PLOTNX,	0
PLOTNY,	0
PLOTDX,	0
PLOTDY,	0
PLOTNA,	0
PLOTMV,	0
PLOTWT,	0
PL5,	XYSF		/ WAIT FOR DONE FLAG
	JMP PL5		/ NOT YET
	XYCF		/ CLEAR FLAG
	KSF
	JMPI PLOTWT	/ EXIT
	6036
	AND (177
	TAD (-3
	SZA CLA
	JMPI PLOTWT	/ EXIT
	CDI
	JMPI X7600
X7600,	7600
OLDX,	0
OLDY,	0
/
/
/
PR,	0
	ISZ OLDX
	JMS MOVE
	JMPI PR
PL,	0
	CMA
	TAD OLDX
	DCA OLDX
	JMS MOVE
	JMPI PL
DU,	0
	ISZ OLDY
	JMS MOVE
	JMPI DU
DD,	0
	CMA
	TAD OLDY
	DCA OLDY
	JMS MOVE
	JMPI DD
DUPR,	0
	ISZ OLDX
	JMS DU
	JMPI DUPR
DUPL,	0
	ISZ OLDY
	JMS PL
	JMPI DUPL
DDPR,	0
	CMA
	TAD OLDY
	DCA OLDY
	JMS PR
	JMPI DDPR
DDPL,	0
	CMA
	TAD OLDY
	DCA OLDY
	JMS PL
	JMPI DDPL
MOVE,	0
	TAD OLDX
	XYLX
	TAD OLDY
	XYLY
	JMPI MOVE
/
/	GET CURRENT POSITION 
/
WHERE,  BLOCK 2
        TAD XPNT
        DCA PNTR
        TAD (-6
	DCA CNTR
A2,     TAD I WHERE
        INC WHERE#
        DCA I PNTR
        INC PNTR
        ISZ CNTR
        JMP A2
        TAD OLDX
        DCA I ARG1
        TAD OLDY
        DCA I ARG2
        TAD PLOTPN
        DCA I ARG3
        RETRN WHERE
/
/	POINT PLOT ROUTINE
/
XYPLT,	BLOCK 2
	TAD XPNT
	DCA PNTR
	TAD (-4
	DCA CNTR
A3,	TAD I XYPLT
	INC XYPLT#
	DCA I PNTR
	INC PNTR
	ISZ CNTR
	JMP A3
	TAD I ARG1
	DCA OLDX
	TAD OLDX
	XYLX
	JMS PLOTWT
	TAD I ARG2
	DCA OLDY
	TAD OLDY
	XYLY
	JMS PLOTWT
	RETRN XYPLT
/
/	PEN CONTROL ROUTINES
/
PENUP,	BLOCK 2
	XYPU
	JMS PLOTWT
	DCA PLOTPN
	RETRN PENUP
PENDN,	BLOCK 2
	XYPD
	JMS PLOTWT
	IAC
	DCA PLOTPN
	RETRN PENDN
	END

*F



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search