/ 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