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

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

/ 9	OS/8 FORTRAN II PLOTTER/DISPLAY SOFTWARE
/ 
/      SYMB.SB	[ STANDARD SYMBOLS ]
/ 
/      AUFBAU DER KOORDINATENTABELLE
/ 
/      I-----------------------------------------------I
/      I   I   I   I   I   I   I   I   I   I   I 1 I 1 I
/      I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 0 I 1 I
/      I-----------------------------------------------I
/      I           I           I           I           I
/      I     Y1    I     X1    I     Y2    I     X2    I
/      I           I           I           I           I
/      I-----------------------------------------------I
/ 
/      Y1,X1,Y2,X2 :
/ 
/      0 ... 6         KOORDINATEN
/ 
/      07              PEN-CHANGE
/ 
/      77 [ Y1,X1 ]    CHAR-ENDE
/ 
/      SUBROUTINE SYMBOL(XPAGE,YPAGE,HEIGH,IBCD,ANGLE,NC)
	LAP
\IP,
\XPAGE,	BLOCK	1
\I,	BLOCK	1
\J,
\YPAGE,	BLOCK	1
\K,	BLOCK	1
\L,
\HEIGH,	BLOCK	1
\IX,	BLOCK	1
\IY,
\IBCD,	BLOCK	1
\X2,	BLOCK	1
\ANGLE,	BLOCK	2
\NC,	BLOCK	2
PNTR,
\X1,	BLOCK	3
CNTR,
\Y1,	BLOCK	3
\H,	BLOCK	3
\X,	BLOCK	3
\Y,	BLOCK	3
\S,	BLOCK	3
\C,	BLOCK	3
\Y2,	BLOCK	3
]A,	BLOCK	3
]11,	1765;2525;2525		/ 0.1666667
]6,	2036;0000;0000		/ 6.0
]3,	2127;6300;0000		/ 999.0
	EAP
	ENTRY	SYMBO
	DUMMY	\XPAGE
	DUMMY	\YPAGE
	DUMMY	\HEIGH
	DUMMY	\IBCD
	DUMMY	\ANGLE
	DUMMY	\NC
	OPDEF	BSW	7002
	OPDEF	SNC	7650
	OPDEF	TADI	1400
	OPDEF	JMPI	5400
XPNT,	\XPAGE
SYMBO,	BLOCK	2
	CLA CLL
	TAD	XPNT
	DCA	PNTR
	TAD	(-14
	DCA	CNTR
A1,	TAD I	SYMBO
	INC	SYMBO#
	DCA I	PNTR
	INC	PNTR
	ISZ	CNTR
	JMP	A1
/-------------------------------------------------------
	TAD	\IBCD
	DCA	STR
	TAD	\IBCD#
	DCA	STR#
	JMS	XIFAD;	\XPAGE
	JMS	XSTO;	\X1
	JMS	XIFAD;	\YPAGE
	JMS	XSTO;	\Y1
	JMS	XIFAD;	\HEIGH
	JMS	XSTO;	\H
	JMS	XIFAD;	\ANGLE
	JMS	XSTO;	\X2
	TAD I	\NC
	DCA	\NC
/------------------------------------------------------
\80,	JMS	XFAD;	\X1	/ XPAGE = 999. ?
	JMS	IF999
	SMA CLA
	JMP	\100	/ YES :
\90,	CALL	2,FMOV;	ARG	\X1;	ARG	\X	/ X = XPAGE
\100,	JMS	XFAD;	\Y1	/ YPAGE = 999. ?
	JMS	IF999
	SMA CLA
	JMP	\200	/ YES :
\150,	CALL	2,FMOV;	ARG	\Y1;	ARG	\Y	/ Y = YPAGE
/
\200,	JMS	XFAD;	\H	/ H=H*.166666
	JMS	XFMP;	]11
	JMS	XSTO;	\H
	CALL	1,TSIN;	ARG	\X2	/ S = TSIN(OLDA)*H
	JMS	XFMP;	\H
	JMS	XSTO;	\S
	CALL	1,TCOS;	ARG	\X2	/ C = TCOS(OLDA)*H
	JMS	XFMP;	\H
	JMS	XSTO;	\C
\500,	CLA CLL CML IAC RAL / IP = 3
	DCA	\IP
/
/	BEI ZENTRIERTEN ZEICHEN SICHTBAR VERBINDEN ?
/
	CLA CLL CML IAC RAL/ NC <=  -2 ?
	TAD	\NC
	SMA CLA
	JMP	\540	/ NO :
\520,	CLA CLL IAC RAL	/ IP = 2
	DCA	\IP
\540,	CALL	3,PLOT;	ARG	\X;	ARG	\Y;	ARG	\IP
\550,	TAD	\NC	/ IF NC =< 0
	SNA SPA CLA
	IAC		/ THEN I = 2
	IAC		/ ELSE I = 1
	DCA	\I
/
/	STRINGANFANG
/
\600,	CALL	2,LGET	/ J = LGET(IBCD,I)
STR,	ARG	0	/ STRINGADRESSE
	ARG	\I
	DCA	\J
	TAD	\NC	/ NC < 0 ?
	SPC
	JMP	\630	/ YES :
	TAD	(20
	TAD	\J
	DCA	\J
/
/	ZEICHENANFANG
/
\630,	TAD	\J	/ J = IVER(J)
	TAD	\IVER
	DCA	7
	TADI	7
	DCA	\J1#	/ 1. KOORDINATENPAAR
	IAC		/ L = 1
	DCA	\L
	CLA CLL IAC RAL	/ IP = 2
	DCA	\IP
\700,	CALL	2,LGET	/ K = LGET(IZEI(J),L)
\J1,	ARG	\IZEI
	ARG	\L
	DCA	\K
	TAD	\K	/ K = 7 ? PEN CHANGE ?
	TAD	(-7
	SZA CLA
	JMP	\730	/ NO :
	TAD	\IP	/ IP = 5 - IP
	CIA
	TAD	(5
	DCA	\IP
	JMP	\810	/ GOTO 810
\730,	TAD	\K	/ K = 63 ? CHAR ENDE ?
	TAD	(-77
	SNC
	JMP	\900	/ YES :
\740,	TAD	\K
	AND	(7
	DCA	\IX
	TAD	\K
	RAR
	RTR
	AND	(7
	DCA	\IY
	TAD	\NC	/ NC >= 0 ?
	SMA CLA
	JMP	\800	/ YES :
/
/	ZENTRIERTE ZEICHEN SIND MIT OFFSET VERSEHEN !
/
\710,	CLA CMA CLL RTL	/ IX = IX - 3
	TAD	\IX
	DCA	\IX
	CLA CMA CLL RTL	/ IY = IY - 3
	TAD	\IY
	DCA	\IY
\800,	TAD	\IX	/ X2 = IX
	CALL	0,FLOT
	JMS	XSTO;	\X2
	TAD	\IY	/ Y2 = IY
	CALL	0,FLOT
	JMS	XSTO;	\Y2
/
/	X1=X+IX*C-IY*S
/	Y1=Y+IX*S+IY*C
/
	JMS	XFAD;	\Y2
	JMS	XFMP;	\S
	JMS	XSTO;	]A
	JMS	XFAD;	\X2
	JMS	XFMP;	\C
	CALL	1,FSB;	ARG	]A
	JMS	XFAD;	\X
	JMS	XSTO;	\X1
	JMS	XFAD;	\Y2
	JMS	XFMP;	\C
	JMS	XSTO;	]A
	JMS	XFAD;	\X2
	JMS	XFMP;	\S
	JMS	XFAD;	]A
	JMS	XFAD;	\Y
	JMS	XSTO;	\Y1
	CALL	3,PLOT
	ARG	\X1
	ARG	\Y1
	ARG	\IP
\810,	INC	\L	/ L = L + 1
	JMP	\700	/ GOTO 700
\900,	TAD	\NC	/ IF NC <= 0 ?
	SPA CLA		/SPA SNA CLA
	JMP	\1100	/ YES :
\910,	INC	\I	/ I = I + 1
	JMS	XFAD;	\C
	JMS	XFMP;	]6
	JMS	XFAD;	\X
	JMS	XSTO;	\X
	JMS	XFAD;	\S
	JMS	XFMP;	]6
	JMS	XFAD;	\Y
	JMS	XSTO;	\Y
	CALL	3,PLOT;	ARG	\X;	ARG	\Y;	ARG	(3
	TAD	\NC	/ IF I > NC ?
	CIA
	TAD	\I
	SPA SNA CLA
	JMP	\600	/ NO :
\1100,	RETRN	SYMBO	/ RETURN

IF999, 0 / FAC = FAC - 999. CALL 1,FSB ARG ]3 TAD ACH CALL 0,CLEAR JMP I IF999 ENTRY FMOV DUMMY FMOV1 DUMMY FMOV2 FMOV1, BLOCK 2 FMOV2, BLOCK 2 FMOV3, FMOV1 FMOV4, 0 FMOV5, 0 FMOV, BLOCK 2 TAD FMOV3 DCA FMOV4 TAD (-4 DCA FMOV5 FMOV6, TAD I FMOV INC FMOV# DCA I FMOV4 INC FMOV4 ISZ FMOV5 JMP FMOV6 JMS XIFAD; FMOV1 CALL 1,ISTO ARG FMOV2 RETRN FMOV / / INTERNAL LIBRARY CALL'S / CPAGE 11 XIFAD, 0 TADI XIFAD INC XIFAD DCA XIFA# CALL 1,IFAD XIFA, ARG XIFA JMPI XIFAD CPAGE 11 XSTO, 0 TADI XSTO INC XSTO DCA XST# CALL 1,STO XST, ARG XST JMPI XSTO CPAGE 11 XFAD, 0 TADI XFAD INC XFAD DCA XFA# CALL 1,FAD XFA, ARG XFA JMPI XFAD CPAGE 11 XFMP, 0 TADI XFMP INC XFMP DCA XFM# CALL 1,FMP XFM, ARG XFM JMPI XFMP



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