ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:10 2020 Source File: \v1erule.asm LIBF ERULE-PROLOGUE 2 | *************************************************** V1E00020 3 | * * V1E00030 4 | * SUBROUTINE NAME- * V1E00040 5 | * FULL NAME- EXTENDED RULE. * V1E00050 6 | * CODE NAME- ERULE * V1E00060 7 | * PURPOSE- THIS SUBROUTINE SERVES AS A INTERFACE* V1E00070 8 | * FOR THE SCALE SUBROUTINES. THE INITIAL * V1E00080 9 | * COORDINATE IS COMPUTED AND STORED. COMPUTE * V1E00090 10 | * DELTA (X AND Y) AND INCREMENT THE INITIAL * V1E00100 11 | * COORDINATE BY DELTA (X AND Y) FOR THE NEW * V1E00110 12 | * COORDINATE OF PEN * V1E00120 13 | * METHOD-N/A * V1E00130 14 | * CAPABILITIES AND LIMITATIONS- N/A * V1E00140 15 | * SPECIAL FEATURES- N/A * V1E00150 16 | * ADDITIONAL INFORMATION- * V1E00160 17 | * CALLING SEQUENCE- * V1E00170 18 | * LIBF ERULE * V1E00180 19 | * ACCUMULATOR= Y * V1E00190 20 | * . * V1E00200 21 | * . * V1E00210 22 | * Y DC X-SCALE (REAL) * V1E00220 23 | * DC Y-SCALE(REAL) * V1E00230 24 | * DC X(0) (REAL) * V1E00240 25 | * DC Y(0) (REAL) * V1E00250 26 | * * V1E00260 27 | * LIBF EMOVE * V1E00270 28 | * DC X (REAL) * V1E00280 29 | * DC Y (REAL) * V1E00290 30 | * * V1E00300 31 | * LIBF * V1E00310 32 | * DC DELTA X (INTEGER) * V1E00320 33 | * DC DELTA Y (INTEGER) * V1E00330 34 | *************************************************** V1E00340 35 | * DC Y-SCALE (REAL) V1E00350 LIBF ERULE 37 | LIBR V1E00370 38 | EPR V1E00380 39 | ENT ERULE V1E00390 40 | ENT EMOVE V1E00400 41 | ENT EINC V1E00410 42 | * V1E00420 43 | * CONSTANTS V1E00430 44 | * V1E00440 0000 0081 4000 0000 45 | XS XFLC 1. X-SCALE V1E00450 0003 0081 4000 0000 46 | YS XFLC 1. Y-SCALE V1E00460 0006 0000 0000 0000 47 | X0 XFLC .0 X V1E00470 0009 0000 0000 0000 48 | Y0 XFLC .0 Y V1E00480 000C 0000 49 | XNMX DC *-* V1E00490 000D 000CR 50 | ADR DC XS+12 V1E00500 000E 0000 51 | DC *-* V1E00510 000F 0000 52 | XNMY DC *-* V1E00520 0010 001DR 53 | ADF DC XN+6 V1E00530 0011 000FR 54 | ADS DC XNMY V1E00540 0012 0000 55 | DX DC *-* DELTA-X V1E00550 0013 0000 56 | IXZ DC *-* INCREMENT X V1E00560 0014 0000 57 | DC *-* V1E00570 0015 0000 58 | DY DC *-* DELTA-Y V1E00580 0016 0000 59 | IYZ DC *-* INCREMENT Y V1E00590 0017 0000 0000 0000 60 | XN XFLC .0 NEW X V1E00600 001A 0000 0000 0000 61 | YN XFLC .0 NEW Y V1E00610 001D 0087 6400 0000 62 | C100 XFLC 100. V1E00620 0020 0080 4000 0000 63 | CP5 XFLC .5 ROUNDING FACTOR V1E00630 64 | * V1E00640 0023 D005 65 | ERULE STO XR2+1 SAVE PARAMETER ADDRESS V1E00650 0024 7001 66 | MDX *+1 V1E00660 0025 0000 67 | DC *-* V1E00670 0026 6911 68 | STX 1 EXIT+1 SAVE XR1 AND XR2 V1E00680 0027 6A12 69 | STX 2 EXIT+3 V1E00690 0028 6600 0000 70 | XR2 LDX L2 *-* SET FOR GET ROUTINE V1E00700 002A 61F4 71 | LDX 1 -12 V1E00710 002B C0E1 72 | LD ADR ADDR OF XNMX V1E00720 002C 4010 73 | BSI GET V1E00730 002D 69E5 74 | STX 1 IXZ SET UP INITIAL POINT V1E00740 002E 69E7 75 | STX 1 IYZ V1E00750 002F 054C*4000 76 | LIBF ELD SET PEN POSITION V1E00760 0030 0006R 77 | DC X0 V1E00770 0031 058A*3580 78 | LIBF ESTO V1E00780 0032 0017R 79 | DC XN V1E00790 0033 054C*4000 80 | LIBF ELD V1E00800 0034 0009R 81 | DC Y0 V1E00810 0035 058A*3580 82 | LIBF ESTO V1E00820 0036 001AR 83 | DC YN V1E00830 0037 6500 0000 84 | EXIT LDX L1 *-* RESTORE XR1 AND XR2 V1E00840 0039 6600 0000 85 | LDX L2 *-* V1E00850 003B 4C00 0000 86 | BSC L *-* RETURN V1E00860 003D 0000 87 | GET DC *-* SUBROUTINE TO PICK UP PARAM V1E00870 003E D007 88 | STO GET2 V1E00880 003F C200 89 | GET0 LD 2 0 V1E00890 0040 D003 90 | STO GET1 V1E00900 0041 D500 0012R 91 | STO L1 XNMX+6 V1E00910 0043 054C*4000 92 | LIBF ELD V1E00920 0044 0000 93 | GET1 DC *-* V1E00930 0045 058A*35A7 94 | LIBF ESTOX V1E00940 0046 0000 95 | GET2 DC *-* V1E00950 0047 7201 96 | MDX 2 1 NEXT PARAMETER V1E00960 0048 7103 97 | MDX 1 3 V1E00970 0049 70F5 98 | MDX GET0 V1E00980 004A 6AF1 99 | STX 2 EXIT+5 SET EXIT ADDRESS V1E00990 004B 4C80 003DR 100 | BSC I GET RETURN V1E01000 LIBF ERULE- EMOVE 102 | * COMPUTE AND ROUND DELTA X AND Y V1E01020 004D 6AEC 103 | EMOVE STX 2 EXIT+3 SAVE XR2 V1E01030 004E 6680 0000 104 | LDX I2 *-* V1E01040 0050 69E7 105 | STX 1 EXIT+1 SAVE XR1 V1E01050 0051 61FA 106 | LDX 1 -6 GET PARAMETERS V1E01060 0052 C0BD 107 | LD ADF V1E01070 0053 40E9 108 | BSI GET V1E01080 0054 6106 109 | LDX 1 6 COMPUTE DELTA (X AND Y) V1E01090 0055 C0BB 110 | LD ADS V1E01100 0056 D016 111 | STO FM2+1 V1E01110 0057 054C*49C0 112 | FM1 LIBF ELDX V1E01120 0058 0014R 113 | DC XN-3 V1E01130 0059 058A*40A7 114 | LIBF ESUBX V1E01140 005A 0003R 115 | DC X0-3 V1E01150 005B 0551*7A27 116 | LIBF EMPYX V1E01160 005C FFFDR 117 | DC XS-3 V1E01170 005D 0551*7A00 118 | LIBF EMPY V1E01180 005E 001DR 119 | DC C100 V1E01190 005F C37E 120 | LD 3 126 V1E01200 0060 4C28 0065R 121 | BSC L ROUND,+Z V1E01210 0062 0504*4100 122 | LIBF EADD V1E01220 0063 0020R 123 | DC CP5 V1E01230 0064 7002 124 | MDX *+2 V1E01240 0065 058A*4080 125 | ROUND LIBF ESUB V1E01250 0066 0020R 126 | DC CP5 V1E01260 0067 0918*99C0 127 | LIBF IFIX REAL TO INTEGER CONVERSION V1E01270 0068 9500 0010R 128 | S L1 IXZ-3 V1E01280 006A D500 000FR 129 | STO L1 DX-3 V1E01290 006C D480 0000 130 | FM2 STO I *-* V1E01300 006E 74FD 006DR 131 | MDX L FM2+1,-3 V1E01310 0070 1000 132 | NOP V1E01320 0071 71FD 133 | MDX 1 -3 V1E01330 0072 70E4 134 | MDX FM1 V1E01340 0073 700C 135 | MDX ADV V1E01350 LIBF ERULE- EINC 0074 69C3 137 | EINC STX 1 EXIT+1 SAVE XR1 V1E01370 0075 6580 0000 138 | LDX I1 *-* V1E01380 0077 6AC2 139 | STX 2 EXIT+3 SAVE XR2 V1E01390 0078 C580 0000 140 | LD I1 0 GET PARAMETERS V1E01400 007A D097 141 | STO DX V1E01410 007B C580 0001 142 | LD I1 1 V1E01420 007D D097 143 | STO DY V1E01430 007E 7102 144 | MDX 1 2 INCREMENT FOR RETURN ADDR V1E01440 007F 69BC 145 | STX 1 EXIT+5 SAVE EXIT V1E01450 0080 C092 146 | ADV LD IXZ INCREMENT IXZ AND IYZ V1E01460 0081 8090 147 | A DX V1E01470 0082 D090 148 | STO IXZ V1E01480 0083 C092 149 | LD IYZ V1E01490 0084 8090 150 | A DY V1E01500 0085 D090 151 | STO IYZ V1E01510 0086 70B0 152 | MDX EXIT TO RETURN V1E01520 0087 153 | END V1E01530 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced ADF 0010R 53 107 ADR 000DR 50 72 ADS 0011R 54 110 ADV 0080R 146 135 C100 001DR 62 119 CP5 0020R 63 123 126 DX 0012R 55 129 141 147 DY 0015R 58 143 150 EINC 0074R 137 EMOVE 004DR 103 ERULE 0023R 65 EXIT 0037R 84 68 69 99 103 105 137 139 145 152 FM1 0057R 112 134 FM2 006CR 130 111 131 GET 003DR 87 73 100 108 GET0 003FR 89 98 GET1 0044R 93 90 GET2 0046R 95 88 IXZ 0013R 56 74 128 146 148 IYZ 0016R 59 75 149 151 ROUND 0065R 125 121 X0 0006R 47 77 115 XN 0017R 60 53 79 113 XNMX 000CR 49 91 XNMY 000FR 52 54 XR2 0028R 70 65 XS 0000R 45 50 117 Y0 0009R 48 81 YN 001AR 61 83 YS 0003R 46