/ 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