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

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

/ 5	OS/8 4006-1 DISPLAY SOFTWARE
/ 
/      SYMBOL.SB
/ 
/      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
\XPAGE,	BLOCK	2
\YPAGE,	BLOCK	2
\HEIGH,	BLOCK	2
\IBCD,	BLOCK	2
\ANGLE,	BLOCK	2
\NC,	BLOCK	2
\X1,	BLOCK	3
\Y1,	BLOCK	3
\H,	BLOCK	3
\X,	BLOCK	3
\Y,	BLOCK	3
\S,	BLOCK	3
\C,	BLOCK	3
\IP,	BLOCK	1
\I,	BLOCK	1
\J,	BLOCK	1
\K,	BLOCK	1
\L,	BLOCK	1
\IX,	BLOCK	1
\IY,	BLOCK	1
\X2,	BLOCK	3
\Y2,	BLOCK	3
]A,	BLOCK	3
]11,	1765;2525;2525		/ 0.1666667
]6,	2036;0;0		/ 6.0
]3,	2127;6340;0	/ 999.
	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
PNTR,	0
CNTR,	0
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#
	CALL	1,IFAD
	ARG	\XPAGE
	CALL	1,STO
	ARG	\X1
	CALL	1,IFAD
	ARG	\YPAGE
	CALL	1,STO
	ARG	\Y1
	CALL	1,IFAD
	ARG	\HEIGH
	CALL	1,STO
	ARG	\H
	CALL	1,IFAD
	ARG	\ANGLE
	CALL	1,STO
	ARG	\X2
	TAD I	\NC
	DCA	\NC
/------------------------------------------------------
\80,	CALL	1,FAD	/ XPAGE = 999. ?
	ARG	\X1
	JMS	IF999
	SNC
	JMP	\100	/ YES :
\90,	CALL	2,FMOV	/ X = XPAGE
	ARG	\X1
	ARG	\X
\100,	CALL	1,FAD	/ YPAGE = 999. ?
	ARG	\Y1
	JMS	IF999
	SNC
	JMP	\200	/ YES :
\150,	CALL	2,FMOV	/ Y = YPAGE
	ARG	\Y1
	ARG	\Y
/
\200,
\250,	CALL	1,FAD	/ H = HEIGH * 0.166666
	ARG	\H
	CALL	1,FMP
	ARG	]11
	CALL	1,STO
	ARG	\H
	CALL	1,TSIN	/ S = TSIN(X2)*H
	ARG	\X2
	CALL	1,FMP
	ARG	\H
	CALL	1,STO
	ARG	\S
	CALL	1,TCOS	/ C = TCOS(X2)*H
	ARG	\X2
	CALL	1,FMP
	ARG	\H
	CALL	1,STO
	ARG	\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
	TAD	\NC	/ IF NC = 0
	SNA 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	(17
	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	\IVER
	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
	CALL	1,STO
	ARG	\X2
	TAD	\IY	/ Y2 = IY
	CALL	0,FLOT
	CALL	1,STO
	ARG	\Y2
	CALL	1,FAD
	ARG	\Y2
	CALL	1,FMP
	ARG	\S
	CALL	1,STO
	ARG	]A	/ IY*S
	CALL	1,FAD
	ARG	\X2
	CALL	1,FMP
	ARG	\C
	CALL	1,FSB
	ARG	]A
	CALL	1,FAD
	ARG	\X
	CALL	1,STO
	ARG	\X1	/ = X+IX*C-IY*S
	CALL	1,FAD
	ARG	\Y2
	CALL	1,FMP
	ARG	\C
	CALL	1,STO
	ARG	]A
	CALL	1,FAD
	ARG	\X2
	CALL	1,FMP
	ARG	\S
	CALL	1,FAD
	ARG	]A
	CALL	1,FAD
	ARG	\Y
	CALL	1,STO
	ARG	\Y1	/ = Y+IX*S+IY*C
	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 SNA CLA
	JMP	\1100	/ YES :
\910,	INC	\I	/ I = I + 1
	CALL	1,FAD
	ARG	\C
	CALL	1,FMP
	ARG	]6
	CALL	1,FAD
	ARG	\X
	CALL	1,STO
	ARG	\X
	CALL	1,FAD
	ARG	\S
	CALL	1,FMP
	ARG	]6
	CALL	1,FAD
	ARG	\Y
	CALL	1,STO
	ARG	\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 PAGE 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 CALL 1,IFAD ARG FMOV1 CALL 1,ISTO ARG FMOV2 RETRN FMOV
/ / 2 SYMBOL UND VERWEISTABELLE FUER OS/8 SYMBOLROUTINE / LAP PAGE / CPAGE 117 \IVER, \IVER



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