ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:11 2020 Source File: \v1frule.asm LIBF FRULE- PROLOGUE 2 | *************************************************** V1J00020 3 | * * V1J00030 4 | * SUBROUTINE NAME- * V1J00040 5 | * FULL NAME- STANDARD PRECISION RULE * V1J00050 6 | * CODE NAME- FRULE * V1J00060 7 | * PURPOSE- THIS SUBROUTINE SERVES AS INTERFACE * V1J00070 8 | * FOR THE SCALE SUBROUTINES. THE INITIAL PEN * V1J00080 9 | * COORDINATE IS COMPUTED AND STORED. COMPUTE * V1J00090 10 | * DELTA(X AND Y) AND INCREMENT THE INITIAL * V1J00100 11 | * COORDINATE BY DELTA (X AND Y) TO GET THE * V1J00110 12 | * NEW COORDINATE. * V1J00120 13 | * METHOD- N/A * V1J00130 14 | * CAPABILITIES AND LIMITATIONS- N/A * V1J00140 15 | * SPECIAL FEATURES- N/A * V1J00150 16 | * ADDITIONAL INFORMATION- * V1J00160 17 | * CALLING SEQUENCE- * V1J00170 18 | * LIBF FRULE * V1J00180 19 | * ACCUMULATOR=Y * V1J00190 20 | * . * V1J00200 21 | * . * V1J00210 22 | * Y DC X-SCALE (REAL) * V1J00220 23 | * DC Y-SCALE (REAL) * V1J00230 24 | * DC X (REAL) * V1J00240 25 | * Y (REAL) * V1J00250 26 | * * V1J00260 27 | * 6IBF FMOVE * V1J00270 28 | * DC X (REAL) * V1J00280 29 | * DC Y (REAL) * V1J00290 30 | * * V1J00300 31 | * LIBF FINC * V1J00310 32 | * DC DELTA X (INTEGER) * V1J00320 33 | * DC DELTA Y (INTEGER) * V1J00330 34 | *************************************************** V1J00340 LIBF FRULE 36 | LIBR V1J00360 37 | SPR V1J00370 38 | ENT FRULE V1J00380 39 | ENT FMOVE V1J00390 40 | ENT FINC V1J00400 41 | * V1J00410 42 | * CONSTANTS V1J00420 43 | * V1J00430 0000 4000 0081 44 | XS DEC 1. X-SCALE V1J00440 0002 4000 0081 45 | YS DEC 1. Y-SCALE V1J00450 0004 0000 0000 46 | X0 DEC .0 X V1J00460 0006 0000 0000 47 | Y0 DEC .0 Y V1J00470 0008 0000 48 | XNMX DC *-* V1J00480 0009 0008R 49 | ADR DC XS+8 V1J00490 000A 0000 50 | XNMY DC *-* V1J00500 000B 0014R 51 | ADF DC XN+4 V1J00510 000C 0000 52 | DX DC *-* DELTA X V1J00520 000D 0000 53 | IXZ DC *-* INCREMENT X V1J00530 000E 0000 54 | DY DC *-* DELTA Y V1J00540 000F 0000 55 | IYZ DC *-* INCREMENT Y V1J00550 0010 0000 0000 56 | XN DEC .0 NEW X V1J00560 0012 0000 0000 57 | YN DEC .0 NEW Y V1J00570 0014 6400 0087 58 | C100 DEC 100. V1J00580 0016 4000 0080 59 | CP5 DEC .5 ROUNDING FACTOR V1J00590 0018 000AR 60 | ADS DC XNMY V1J00600 61 | * V1J00610 0019 D005 62 | FRULE STO XR2+1 SAVE PARAMETER ADDRESS V1J00620 001A 7001 63 | MDX *+1 V1J00630 001B 0000 64 | DC *-* V1J00640 001C 690D 65 | STX 1 EXIT+1 SAVE XR1 AND XR2 V1J00650 001D 6A0E 66 | STX 2 EXIT+3 V1J00660 001E 6600 0000 67 | XR2 LDX L2 *-* SET FOR GET SUBROUTINE V1J00670 0020 61F8 68 | LDX 1 -8 V1J00680 0021 C0E7 69 | LD ADR ADDRESS OF XNMX V1J00690 0022 400C 70 | BSI GET FETCH PARAMETERS V1J00700 71 | * * V1J00710 0023 69E9 72 | STX 1 IXZ SET UP INITIAL POINT V1J00720 0024 69EA 73 | STX 1 IYZ V1J00730 0025 C8DE 74 | LDD X0 SET PEN POSITION V1J00740 0026 D8E9 75 | STD XN V1J00750 0027 C8DE 76 | LDD Y0 V1J00760 0028 D8E9 77 | STD YN V1J00770 0029 6500 0000 78 | EXIT LDX L1 *-* RESTORE XR1 AND XR2 V1J00780 002B 6600 0000 79 | LDX L2 *-* V1J00790 002D 4C00 0000 80 | BSC L *-* RETURN V1J00800 81 | * SUBROUTINE TO PICKUP PARAMETERS * V1J00810 82 | * * V1J00820 002F 0000 83 | GET DC *-* ENTRY V1J00830 0030 D007 84 | STO GET2 V1J00840 0031 C200 85 | GET0 LD 2 0 V1J00850 0032 D003 86 | STO GET1 V1J00860 0033 D500 000CR 87 | STO L1 XNMX+4 STORE PARAMETER V1J00870 0035 064C*4000 88 | LIBF FLD V1J00880 0036 0000 89 | GET1 DC *-* V1J00890 0037 068A*35A7 90 | LIBF FSTOX V1J00900 0038 0000 91 | GET2 DC *-* V1J00910 0039 7201 92 | MDX 2 1 SET FOR NEXT PARAMETER V1J00920 003A 7102 93 | MDX 1 2 V1J00930 003B 70F5 94 | MDX GET0 GET NEXT PARAMETER V1J00940 003C 6AF1 95 | STX 2 EXIT+5 SET EXIT ADDRESS V1J00950 003D 4C80 002FR 96 | BSC I GET RETURN V1J00960 LIBF FRULE- FMOVE 98 | * COMPUTE AND ROUND DELTA (X AND Y) * V1J00980 99 | * * V1J00990 003F 6AEC 100 | FMOVE STX 2 EXIT+3 SAVE XR2 V1J01000 0040 6680 0000 101 | LDX I2 *-* V1J01010 0042 69E7 102 | STX 1 EXIT+1 SAVE XR1 V1J01020 0043 61FC 103 | LDX 1 -4 GET PARAMETERS V1J01030 0044 C0C6 104 | LD ADF V1J01040 0045 40E9 105 | BSI GET V1J01050 0046 6104 106 | LDX 1 4 COMPUTE DELTA (X AND Y) V1J01060 0047 C0D0 107 | LD ADS V1J01070 0048 D016 108 | STO FM2+1 V1J01080 0049 064C*49C0 109 | FM1 LIBF FLDX V1J01090 004A 000ER 110 | DC XN-2 V1J01100 004B 068A*40A7 111 | LIBF FSUBX V1J01110 004C 0002R 112 | DC X0-2 V1J01120 004D 0651*7A27 113 | LIBF FMPYX V1J01130 004E FFFER 114 | DC XS-2 V1J01140 004F 0651*7A00 115 | LIBF FMPY V1J01150 0050 0014R 116 | DC C100 V1J01160 0051 C37E 117 | LD 3 126 V1J01170 0052 4C28 0057R 118 | BSC L ROUND,+Z V1J01180 0054 0604*4100 119 | LIBF FADD V1J01190 0055 0016R 120 | DC CP5 V1J01200 0056 7002 121 | MDX *+2 V1J01210 0057 068A*4080 122 | ROUND LIBF FSUB V1J01220 0058 0016R 123 | DC CP5 V1J01230 0059 0918*99C0 124 | LIBF IFIX REAL TO INTEGER CONVERSION V1J01240 005A 9500 000BR 125 | S L1 IXZ-2 V1J01250 005C D500 000AR 126 | STO L1 DX-2 V1J01260 005E D480 0000 127 | FM2 STO I *-* V1J01270 0060 74FE 005FR 128 | MDX L FM2+1,-2 V1J01280 0062 1000 129 | NOP V1J01290 0063 71FE 130 | MDX 1 -2 V1J01300 0064 70E4 131 | MDX FM1 V1J01310 0065 700C 132 | MDX ADV V1J01320 LIBF FRULE- FINC 0066 69C3 134 | FINC STX 1 EXIT+1 SAVE XR1 V1J01340 0067 6580 0000 135 | LDX I1 *-* V1J01350 0069 6AC2 136 | STX 2 EXIT+3 SAVE XR2 V1J01360 006A C580 0000 137 | LD I1 0 GET PARAMETERS V1J01370 006C D09F 138 | STO DX V1J01380 006D C580 0001 139 | LD I1 1 V1J01390 006F D09E 140 | STO DY V1J01400 0070 7102 141 | MDX 1 2 INCREMENT FOR RETURN ADDR V1J01410 0071 69BC 142 | STX 1 EXIT+5 SAVE EXIT V1J01420 0072 C09A 143 | ADV LD IXZ INCREMENT IXZ AND IYZ V1J01430 0073 8098 144 | A DX V1J01440 0074 D098 145 | STO IXZ V1J01450 0075 C099 146 | LD IYZ V1J01460 0076 8097 147 | A DY V1J01470 0077 D097 148 | STO IYZ V1J01480 0078 70B0 149 | MDX EXIT TO RETURN V1J01490 0079 150 | END V1J01500 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced ADF 000BR 51 104 ADR 0009R 49 69 ADS 0018R 60 107 ADV 0072R 143 132 C100 0014R 58 116 CP5 0016R 59 120 123 DX 000CR 52 126 138 144 DY 000ER 54 140 147 EXIT 0029R 78 65 66 95 100 102 134 136 142 149 FINC 0066R 134 FM1 0049R 109 131 FM2 005ER 127 108 128 FMOVE 003FR 100 FRULE 0019R 62 GET 002FR 83 70 96 105 GET0 0031R 85 94 GET1 0036R 89 86 GET2 0038R 91 84 IXZ 000DR 53 72 125 143 145 IYZ 000FR 55 73 146 148 ROUND 0057R 122 118 X0 0004R 46 74 112 XN 0010R 56 51 75 110 XNMX 0008R 48 87 XNMY 000AR 50 60 XR2 001ER 67 62 XS 0000R 44 49 114 Y0 0006R 47 76 YN 0012R 57 77 YS 0002R 45