Previous File   Multiple Pages   Next File

* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 1

0001 * 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 0002 * 0003 * 0004 * 0005 * COMPUTER: H316, DDP-516 0006 * 0007 * 0008 * PROGRAM CATEGORY: INPUT/OUTPUT 0009 * 0010 * 0011 * PROGRAM TITLE: O$XP 0012 * CONTROL THE MOTION OF THE DIGITAL PLOTTER EOM 2113 0013 * 0014 * 0015 * 0016 * 0017 * 0018 * 0019 * 0020 * 0021 * 0022 * 0023 * 0024 * APPROVAL DATE 0025 * 0026 * 0027 * 0028 * PROG---------------------- ------------ 0029 * 0030 * 0031 * SUPR---------------------- ------------ 0032 * 0033 * 0034 * QUAL---------------------- ------------ 0035 * 0036 * 0037 * NO. OF PAGES ------------ 0038 * 0039 * 0040 * AUTHOR 0041 * 0042 * HONEYWELL - COMPUTER CONTROL DIVISION (EUROPE) 0043 * 0044 * 0045 * PURPOSE 0046 * 0047 * TO CONTROL THE MOTION OF THE DIGITAL PLOTTER EOM 2113 0048 * 0049 * 0050 * RESTRICTIONS
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 2

0051 * 0052 * THE PROGRAM WILL OPERATE ON AN H316 OR DDP-516 COMPUTER WITH A 0053 * DIGITAL PLOTTER EOM 2113 0054 * 0055 * 0056 * STORAGE 0057 * 0058 * 542 (OCTAL) 0059 * 354 (DECIMAL) 0060 * 0061 * 0062 * USE 0063 * 0064 * PLOT A LINE 0065 * 0066 * CALL O$XP (X,Y,IC) 0067 * 0068 * OR 0069 * 0070 * CALL O$XP PLOT A LINE 0071 * DAC X PEN POSITION, X CO-ORDINATE 0072 * DAC Y PEN POSITION, Y CO-ORDINATE 0073 * DAC IC PEN POSITION INDICATOR 0074 * OCT 0 END OF PARAMETER LIST 0075 * NORMAL RETURN 0076 * 0077 * PLOT IS AN IDENTICAL ENTRY TO O$XP 0078 * 0079 * PROVIDE OFFSET DISTANCES AND SCALE FACTORS 0080 * 0081 * CALL O$XO (XMIN,XFAC,YMIN,YFAC) 0082 * 0083 * OR 0084 * 0085 * CALL O$XO PROVIDE OFFSET DISTANCES AND SCALE FACTORS 0086 * DAC XMIN DISTANCE TO TRANSLATE ORIGIN ALONG X AXIS 0087 * DAC XFAC SCALE VALUE FOR X AXIS 0088 * DAC YMIN DISTANCE TO TRANSLATE ORIGIN ALONG Y AXIS 0089 * DAC YFAC SCALE VALUE FOR Y AXIS 0090 * OCT 0 END OF PARAMETER LIST 0091 * NORMAL RETURN 0092 * 0093 * OFFSET IS AN IDENTICAL ENTRY TO O$XO 0094 * 0095 * PROVIDE THE SCALE VALUE FOR BOTH AXES 0096 * 0097 * CALL O$XF (FACT) 0098 * 0099 * OR 0100 *
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 3

0101 * CALL O$XF PROVIDE THE SCALE VALUE FOR BOTH AXES 0102 * DAC FACT SCALE VALUE 0103 * NORMAL RETURN 0104 * 0105 * FACTOR IS AN IDENTICAL ENTRY TO O$XF 0106 * 0107 * REQUEST PRESENT PEN POSITION AND SCALE VALUE 0108 * 0109 * CALL O$XW (X,Y,FACT) 0110 * 0111 * OR 0112 * 0113 * CALL O$XW PRESENT PEN POSITION AND SCALE VALUE 0114 * DAC X PRESENT PEN POSITION, X CO-ORDINATE 0115 * DAC Y PRESENT PEN POSITION, Y CO-ORDINATE 0116 * DAC FACT CURRENT SCALE VALUE 0117 * OCT 0 END OF PARAMETER LIST 0118 * NORMAL RETURN 0119 * 0120 * WHERE IS AN IDENTICAL ENTRY TO O$XW 0121 * 0122 * SET PEN AT ORIGIN 0123 * 0124 * CALL O$XG 0125 * ' 0126 * OR 0127 * 0128 * CALL O$XG SET PEN AT ORIGIN 0129 * NORMAL RETURN 0130 * 0131 * ORIGIN IS AN IDENTICAL ENTRY TO O$XG 0132 * 0133 * 0134 * METHOD 0135 * 0136 * A CALL ON THE O$XP ROUTINE WILL MOVE THE PEN FROM ITS PRESENT 0137 * POSITION (GIVEN BY THE O$XW ROUTINE) TO THE POINT SPECIFIED IN THE 0138 * CALL. THE MOVE WILL BE MADE WITH THE PEN DOWN IF IC=2 OR UP IF 0139 * IC=3. IF IC IS NEGATIVE THE PLOT WILL BE ENDED AFTER THE MOVE IS 0140 * MADE AND CONTROL RETURNED TO THE CALLING PROGRAM. IF IC=12 OR 13 0141 * THE INPUTS FROM THE O$XO ENTRANCE WILL BE USED. 0142 * 0143 * A CALL ON THE O$XO ROUTINE WILL CAUSE THE ORIGIN AND ITS AXES TO BE 0144 * OFFSET TO THE POINT CALLED. WITH SCALES AS SPECIFIED. SUBSEOUENT 0145 * PLOTS WILL REFER TO THIS NEW ORIGIN. 0146 * 0147 * THE O$XF ROUTINE PROVIDES THE SCALE FOR BOTH AXES. WHETHER OFFSET 0148 * OR BASED ON THE ORIGIN. 0149 * 0150 * THE O$XG ROUTINE MOVES THE PEN WEST 360 MILLIMETRES AND BACK EAST
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 4

0151 * TO WITHIN 10 MILLIMETRES OF THE EDGE OF THE PAPER. THIS IS TAKEN 0152 * AS THE ORIGIN (0,0). 0153 * 0154 * THESE ROUTINES ALSO CALL THE FOLLOWING MATH LIBRARY ROUTINES: S$22, 0155 * D$22, M$22, C$21 AND H$22. 0156 * 0157 * 0158 ************************************************************************ 0159 * 0160 * 0161 SUBR O$XP PLOT A LINE 0162 SUBR PLOT,O$XP PLOT A LINE 0163 SUBR O$XO PROVIDE OFFSET DISTANCES AND SCALE FACTORS 0164 SUBR OFFSET,O$XO PROVIDE OFFSET DISTANCES AND SCALE FACTORS 0165 SUBR O$XF PROVIDE SCALE VALUE FOR BOTH AXES 0166 SUBR FACTOR,O$XF PROVIDE SCALE VALUE FOR BOTH AXES 0167 SUBR O$XW REQUEST PRESENT PEN POSITION 0168 SUBR WHERE,O$XW REQUEST PRESENT PEN POSITION 0169 SUBR O$XG SET PEN AT ORIGIN 0170 SUBR ORIGIN,O$XG SET PEN AT ORIGIN 0171 * 0172 * 0173 CF5 H316 OR DDP-516 0174 REL RELOCATABLE 0175 * 0176 * 0177 * PLOTTER DEVICE CODES 0178 * 0179 * OCP 0180 000027 DADP EQU '0027 DEVICE ADDRESS OF DIGITAL PLOTTER 0181 001427 PNDN EQU DADP+'1400 PUT PEN DOWN 0182 001627 PNUP EQU DADP+'1600 PUT PEN UP 0183 * 0184 * SKS 0185 000127 SKNB EQU DADP+'100 SKIP IF NOT BUSY 0186 000227 SKLM EQU DADP+'200 SKIP IF LIMIT OF TRAVEL NOT REACHED 0187 * 0188 * 0189 * PLOT A LINE 0190 * 0191 00000 0 000000 O$XP DAC ** PLOT A LINE 0192 00001 0 15 00437 STX SAVE SAVE INDEX 0193 00002 -0 02 00000 LDA* O$XP ADDRESS OF X 0194 00003 0 12 00000 IRS O$XP ADDRESS OF NEXT PARAMETER 0195 00004 0 10 00421 JST PCUP PICK UP X 0196 00005 0 04 00444 STA XFLT FLOATING POINT X VALUE - WORD A 0197 00006 0 04 00452 STA XFX FLOATING POINT X POSITION - WORD A 0198 00007 000201 IAB 0199 00010 0 04 00445 STA XFLT+1 FLOATING POINT X VALUE - WORD B 0200 00011 0 04 00453 STA XFX+1 FLOATING POINT X POSITION - WORD B
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 5

0201 * 0202 00012 -0 02 00000 LDA* O$XP ADDRESS OF Y 0203 00013 0 12 00000 IRS O$XP ADDRESS OF NEXT PARAMETER 0204 00014 0 10 00421 JST PCUP PICK UP Y 0205 00015 0 04 00446 STA YFLT FLOATING POINT Y VALUE - WORD A 0206 00016 0 04 00454 STA YFY FLOATING POINT Y POSITION - WORD A 0207 00017 000201 IAB 0208 00020 0 04 00447 STA YFLT+1 FLOATING POINT Y VALUE - WORD B 0209 00021 0 04 00455 STA YFY+1 FLOATING POINT Y POSITION - WORD B 0210 * 0211 00022 -0 02 00000 LDA* O$XP ADDRESS OF PEN POSITION INDICATOR 0212 00023 0 10 00421 JST PCUP PICK UP INDICATOR 0213 00024 0 04 00456 PLTA STA IC PEN POSITION INDICATOR PARAMETER 0214 00025 100400 SPL IS IT POSITIVE? 0215 00026 140407 TCA NO, NEGATE IT 0216 00027 0 07 00540 SUB =10 YES, SUBTRACT 10 0217 00030 100400 SPL IS IC>10? 0218 00031 0 06 00540 ADD =10 RESTORE PEN POSITION INDICATOR 0219 00032 0 04 00457 STA IP NO. RESTORE TO PREVIOUS VALUE 0220 00033 0 11 00537 CAS =3 IS IC=3? 0221 00034 0 01 00041 JMP ERPN IC>3, PEN CONTROL ERROR 0222 00035 0 01 00053 JMP PEN3 IC=3, GO AND PUT PEN UP 0223 00036 0 11 00536 CAS =2 IS IC=2? 0224 00037 0 01 00041 JMP ERPN NO, PEN CONTROL ERROR 0225 00040 0 01 00043 JMP PEN2 IC=2, GO AND PUT PEN DOWN 0226 * 0227 00041 0 02 00507 ERPN LDA PNER PEN CONTROL ERROR 0228 00042 0 01 00024 JMP PLTA PEN NOW DOWN 0229 * 0230 * PUT PEN DOWN ROUTINE 0231 00043 0 02 00460 PEN2 LDA PENP PEN POSITION INDICATOR 0232 00044 100040 SZE IS IT ZERO? 0233 00045 0 01 00063 JMP CFOF NO, GO GET INDICATOR PARAMETER 0234 00046 34 0127 SKS SKNB SKIP IF NOT BUSY 0235 00047 0 01 00046 JMP *-1 WAIT UNTIL NOT BUSY 0236 00050 14 1427 OCP PNDN PUT PEN DOWN 0237 00051 0 02 00535 LDA =-1 INDICATE PEN DOWN 0238 00052 0 01 00062 JMP PENC SET PEN POSITION INDICATOR 0239 * 0240 * PUT PEN UP ROUTINE 0241 00053 0 02 00460 PEN3 LDA PENP PEN POSITION INDICATOR 0242 00054 101040 SNZ IS IT ZERO? 0243 00055 0 01 00063 JMP CFOF YES, GO GET INDICATOR PARAMETER 0244 00056 34 0127 SKS SKNB BUSY 0245 00057 0 01 00056 JMP *-1 WAIT UNTIL NOT BUSY 0246 00060 14 1627 OCP PNUP PUT PEN UP 0247 00061 140040 CRA INDICATE PEN UP 0248 00062 0 04 00460 PENC STA PENP SET PEN POSITION INDICATOR 0249 * 0250 00063 0 02 00456 CFOF LDA IC PEN POSITION INDICATOR PARAMETER
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 6

0251 00064 100400 SPL IS IT NEGATIVE? 0252 00065 140407 TCA YES, MAKE IT POSITIVE 0253 00066 0 07 00540 SUB =10 0254 00067 100400 SPL IS IC>10? 0255 00070 0 01 00115 JMP NOFF NO, NO OFFSET 0256 * 0257 * OFFSET ROUTINE 0258 * OFFSET X X=(X-XMIN)/XFAC 0259 00071 0 02 00445 OFST LDA XFLT+1 FLOATING POINT X VALUE - WORD B 0260 00072 000201 IAB 0261 00073 0 02 00444 LDA XFLT FLOATING POINT X VALUE - WORD A 0262 00074 0 10 00000 CALL S$22 FLOATING POINT SUBTRACT 0263 00075 0 000461 DAC XMIN X FROM OFFSET ENTRY 0264 00076 0 10 00000 CALL D$22 FLOATING POINT DIVIDE 0265 00077 0 000465 DAC XFAC X SCALE FACTOR 0266 00100 0 04 00444 STA XFLT VALUE OF OFFSET X - WORD A 0267 00101 000201 IAB 0268 00102 0 04 00445 STA XFLT+1 VALUE OF OFFSET X - WORD B 0269 * 0270 * OFFSET Y Y=(Y-YMIN)/YFAC 0271 00103 0 02 00447 LDA YFLT+1 FLOATING POINT Y VALUE - WORD B 0272 00104 000201 IAB 0273 00105 0 02 00446 LDA YFLT FLOATING POINT Y VALUE - WORD A 0274 00106 0 10 00000 CALL S$22 FLOATING POINT SUBTRACT 0275 00107 0 000463 DAC YMIN Y FROM OFFSET ENTRY 0276 00110 0 10 00000 CALL D$22 FLOATING POINT DIVIDE 0277 00111 0 000467 DAC YFAC Y SCALE FACTOR 0278 00112 0 04 00446 STA YFLT VALUE OF OFFSET Y - WORD A 0279 00113 000201 IAB 0280 00114 0 04 00447 STA YFLT+1 VALUE OF OFFSET Y - WORD B 0281 * 0282 * NO OFFSET ACTION 0283 * CONVERT X TO FIXED POINT VALUE IX=X*SFCT 0284 00115 0 02 00445 NOFF LDA XFLT+1 FLOATING POINT X VALUE - WORD B 0285 00116 000201 IAB 0286 00117 0 02 00444 LDA XFLT FLOATING POINT X VALUF - WORD A 0287 00120 0 10 00000 CALL M$22 FLOATING POINT MULTIPLY 0288 00121 0 000512 DAC SFCT SCALE FACTOR 0289 00122 0 10 00000 CALL C$21 FLOATING POINT TO FIXED POINT 0290 00123 0 04 00471 STA IX FIXED POINT VALUE OF X 0291 * 0292 * CONVERT Y TO FIXED POINT VALUE IY=Y*SFCT 0293 00124 0 02 00447 LDA YFLT+1 FLOATING POINT Y VALUE - WORD B 0294 00125 000201 IAB 0295 00126 0 02 00446 LDA YFLT FLOATING POINT Y VALUE - WORD A 0296 00127 0 10 00000 CALL M$22 FLOATING POINT MULTIPLY 0297 00130 0 000512 DAC SFCT SCALE FACTOR 0298 00131 0 10 00000 CALL C$21 FLOATING POINT TO FIXED POINT 0299 00132 0 04 00472 STA IY FIXED POINT VALUE OF Y 0300 *
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 7

0301 * CALCULATE CHANGE IN PEN POSITION FROM PREVIOUS POSITION 0302 * CHANGE IN X POSITION IDLX=ABS(IX-IPNX) 0303 00133 0 02 00471 LDA IX FIXED POINT VALUE OF X 0304 00134 0 07 00450 SUB IPNX PREVIOUS PEN POSITION 0305 00135 0 04 00474 STA DLTX DELTA X 0306 00136 100400 SPL IS IT NEGATIVE? 0307 00137 140407 TCA YES, MAKE IT POSITIVE 0308 00140 0 04 00476 STA IDLX ABSOLUTE DELTA X 0309 * 0310 * CHANGE IN Y POSITION IDLY=ABS(IY-IPNY) 0311 00141 0 02 00472 LDA IY FIXED POINT VALUE OF Y 0312 00142 0 07 00451 SUB IPNY PREVIOUS PEN POSITION 0313 00143 0 04 00475 STA DLTY DELTA Y 0314 00144 100400 SPL IS IT NEGATIVE? 0315 00145 140407 TCA YES, MAKE IT POSITIVE 0316 00146 0 04 00477 STA IDLY ABSOLUTE DELTA Y 0317 * 0318 * TEST FOR DIRECTION AND METHOD OF PEN MOTION 0319 * IS THERE MOTION IN THE X DIRECTION? 0320 00147 0 02 00474 LDA DLTX DELTA X 0321 00150 101040 SNZ IS IT ZERO? 0322 00151 0 01 00156 JMP XPL3 YES, GO STORE X DIRECTION 0323 00152 101400 SMI NO, IS IT NEGATIVE? 0324 00153 0 01 00160 JMP XPL2 NO, MUST BE POSITIVE 0325 00154 0 02 00534 LDA ='200 YES, NEGATIVE X MOTION 0326 00155 0 01 00161 JMP XPLX GO STORE X DIRECTION 0327 00156 140040 XPL3 CRA NO X MOTION 0328 00157 0 01 00161 JMP XPLX GO STORE X DIRECTION 0329 00160 0 02 00533 XPL2 LDA ='100 POSITIVE X MOTION 0330 00161 0 04 00500 XPLX STA XPLT STORE X DIRECTION 0331 * 0332 * IS THERE MOTION IN THE Y DIRECTION? 0333 00162 0 02 00475 XPLA LDA DLTY DELTA Y 0334 00163 101040 SNZ IS IT ZERO? 0335 00164 0 01 00171 JMP YPL3 YES, GO STORE Y DIRECTION 0336 00165 101400 SMI NO, IS IT NEGATIVE 0337 00166 0 01 00173 JMP YPL1 NO, MUST BE POSITIVE 0338 00167 0 02 00532 LDA ='1000 YES. NEGATIVE Y MOTION 0339 00170 0 01 00174 JMP YPLY GO STORE Y DIRECTION 0340 00171 140040 YPL3 CRA NO Y MOTION 0341 00172 0 01 00174 JMP YPLY GO STORE Y DIRECTION 0342 00173 0 02 00531 YPL1 LDA ='400 POSITIVE Y MOTION 0343 00174 0 04 00501 YPLY STA YPLT STORE Y DIRECTION 0344 * 0345 * TEST FOR A COMBINATION MOVE YPLT+XPLT=XYPL 0346 00175 0 06 00500 YPLA ADD XPLT X DIRECTION 0347 00176 0 04 00502 STA XYPL COMBINATION MOVE 0348 00177 101040 SNZ IS IT ZERO 0349 00200 0 01 00261 JMP EXIT YES, NO MOTION 0350 00201 0 02 00476 LDA IDLX ABSOLUTE DELTA X
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 8

0351 00202 0 11 00477 CAS IDLY COMPARE WITH ABSOLUTE DELTA Y 0352 00203 101000 NOP IDLX>IDLY, NO ACTION 0353 00204 0 01 00214 JMP NORM IDLX=IDLY 0354 00205 000201 IAB IDLX<IDLY, PUT X VALUE IN B-REGISTER 0355 * 0356 * MAKE DECISION ON TYPE OF MOVE 0357 * SWAP X AND Y VALUES WITH EACH OTHER 0358 00206 0 02 00477 LDA IDLY DELTA Y 0359 00207 0 04 00476 STA IDLX PUT Y VALUE IN PLACE OF X VALUE 0360 00210 000201 IAB BRING BACK X VALUE 0361 00211 0 04 00477 STA IDLY PUT IT IN PLACE OF Y VALUE 0362 00212 0 02 00501 LDA YPLT Y DIRECTION 0363 00213 0 04 00500 STA XPLT PUT IT IN PLACE OF X DIRECTION 0364 * 0365 * EQUAL X AND Y MOVE 0366 00214 0 02 00476 NORM LDA IDLX ABSOLUTE DELTA X 0367 00215 0415 77 ALS 1 MULTIPLY BY TWO 0368 00216 0 04 00503 STA TDX TDX=IDLX*2 0369 00217 0 02 00477 LDA IDLY ABSOLUTE DELTA Y 0370 00220 0415 77 ALS 1 MULTIPLY BY TWO 0371 00221 0 04 00504 STA TDY TDY=IDLY*2 0372 00222 140040 CRA CLEAR A-REGISTER 0373 00223 0 04 00473 STA TEMP TEMPORARY 0374 00224 0 04 00505 STA N NUMBER OF STEPS 0375 * 0376 00225 0 35 00530 TENT LDX =-10 INDEX REGISTER:-10 0377 00226 0 02 00473 OUTP LDA TEMP TEMPORARY 0378 00227 0 06 00504 ADD TDY ADD (2*DELTA Y) 0379 00230 0 11 00476 CAS IDLX COMPARE WITH DELTA X 0380 00231 0 01 00234 JMP L1 DELTA X<TDY 0381 00232 0 01 00240 JMP BASE DELTA X=TDY, USE X DIRECTION 0382 00233 0 01 00240 JMP BASE DELTA X>TDY, USE X DIRECTION 0383 00234 0 07 00503 L1 SUB TDX SUBTRACT TDX FROM TDY 0384 00235 0 04 00473 STA TEMP TEMPORARY 0385 00236 0 02 00502 LDA XYPL USE COMBINATION MOVE 0386 00237 0 01 00242 JMP EXEC GO EXECUTE COMBINATION MOVE 0387 * 0388 00240 0 04 00473 BASE STA TEMP PUT TDY IN TEMPORARY 0389 00241 0 02 00500 LDA XPLT AND PLOT X VALUE 0390 * 0391 * PLOT THE MOVE 0392 00242 0 06 00506 EXEC ADD OCP BASIC OCP INSTRUCTION 0393 00243 0 04 00246 STA EXCM COMPUTED OCP 0394 00244 34 0127 SKS SKNB SKIP IF NOT BUSY 0395 00245 0 01 00244 JMP *-1 WAIT UNTIL NOT BUSY 0396 00246 0 00 00000 EXCM *** ** COMPUTED OCP 0397 00247 0 12 00505 IRS N TALLY NUMBER OF STEPS 0398 00250 0 02 00505 LDA N NUMBER OF STEPS 0399 00251 0 11 00476 CAS IDLX DELTA X 0400 00252 101000 NOP N>IDLX. NO ACTION
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 9

0401 00253 0 01 00261 JMP EXIT EOUAL. MOVE COMPLETED 0402 00254 0 12 00000 IRS 0 TALLY INDEX 0403 00255 0 01 00226 JMP OUTP GO FOR NEXT MOVE 0404 00256 34 0227 SKS SKLM SKIP IF LIMIT NOT REACHED 0405 00257 0 01 00261 JMP EXIT LIMIT REACHED. MOVE COMPLETE 0406 00260 0 01 00225 JMP TENT GO FOR NEXT MOVE 0407 * 0408 00261 0 02 00456 EXIT LDA IC PEN POSITION INDICATOR 0409 00262 101400 SMI SKIP IF END OF PLOT REACHED 0410 00263 0 01 00272 JMP PLUS CONTINUE WITH PLOT 0411 * 0412 * END OF PLOT. SET ALL PARAMETERS TO ZERO 0413 00264 140040 TERM CRA END OF PLOT 0414 00265 0 35 00530 LDX =-10 INDEX REGISTER=-10 0415 00266 1 04 00456 L2 STA XFLT+10,1 ZERO IN PARAMETERS 0416 00267 0 12 00000 IRS 0 TALLY INDEX REGISTER 0417 00270 0 01 00266 JMP L2 RETURN FOR NEXT PARAMETER 0418 00271 0 01 00276 JMP PLSA FINISH PLOT ROUTINE 0419 * 0420 * OBTAIN NEW PEN POSITION COORDINATES 0421 00272 0 02 00471 PLUS LDA IX FIXED POINT VALUE OF X 0422 00273 0 04 00450 STA IPNX NEW X POSITION 0423 00274 0 02 00472 LDA IY FIXED POINT VALUE OF Y 0424 00275 0 04 00451 STA IPNY NEW Y POSITION 0425 * 0426 * FINISH PLOT ROUTINE 0427 00276 0 12 00000 PLSA IRS O$XP INCREMENT RETURN ADDRESS 0428 00277 0 12 00000 IRS O$XP INCREMENT RETURN ADDRESS 0429 00300 0 35 00437 LDX SAVE RESTORE INDEX 0430 00301 -0 01 00000 JMP* O$XP EXIT 0431 * 0432 * 0433 * PROVIDE OFFSET DISTANCES AND SCALE FACTORS 0434 * 0435 00302 0 000000 O$XO DAC ** PROVIDE OFFSET DISTANCES AND SCALE FACTORS 0436 00303 0 15 00440 STX SAV1 SAVE INDEX 0437 00304 -0 02 00302 LDA* O$XO ADDRESS OF XMIN 0438 00305 0 12 00302 IRS O$XO ADDRESS OF NEXT PARAMETER 0439 00306 0 10 00421 JST PCUP PICK UP XMIN 0440 00307 0 04 00461 STA XMIN X FROM OFFSET ENTRY - WORD A 0441 00310 000201 IAB 0442 00311 0 04 00462 STA XMIN+1 X FROM OFFSET ENTRY - WORD B 0443 00312 -0 02 00302 LDA* O$XO ADDRESS OF XFAC 0444 00313 0 12 00302 IRS O$XO ADDRESS OF NEXT PARAMETER 0445 00314 0 10 00421 JST PCUP PICK UP XFAC 0446 00315 0 04 00465 STA XFAC SCALE FACTOR FOR X - WORD A 0447 00316 000201 IAB 0448 00317 0 04 00466 STA XFAC+1 SCALE FACTOR FOR X - WORD B 0449 * 0450 00320 -0 02 00302 LDA* O$XO ADDRESS OF YMIN
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 10

0451 00321 0 12 00302 IRS O$XO ADDRESS OF NEXT PARAMETER 0452 00322 0 10 00421 JST PCUP PICK UP YMIN 0453 00323 0 04 00463 STA YMIN Y FROM OFFSET ENTRY - WORD A 0454 00324 000201 IAB 0455 00325 0 04 00464 STA YMIN+1 Y FROM OFFSET ENTRY - WORD B 0456 00326 -0 02 00302 LDA* O$XO ADDRESS OF YFAC 0457 00327 0 12 00302 IRS O$XO ADDRESS OF END OF PARAMETER LIST 0458 00330 0 12 00302 IRS O$XO RETURN ADDRESS 0459 00331 0 10 00421 JST PCUP PICK UP YFAC 0460 00332 0 04 00467 STA YFAC SCALE FACTOR FOR Y - WORD A 0461 00333 000201 IAB 0462 00334 0 04 00470 STA YFAC+1 SCALE FACTOR FOR Y - WORD B 0463 * 0464 00335 0 35 00440 LDX SAV1 RESTORE INDEX 0465 00336 -0 01 00302 JMP* O$XO EXIT 0466 * 0467 * 0468 * PROVIDE THE SCALE VALUE FOR BOTH AXES 0469 * 0470 00337 0 000000 O$XF DAC ** PROVIDE SCALE VALUE FOR BOTH AXES 0471 00340 0 15 00441 STX SAV2 SAVE INDEX 0472 00341 -0 02 00337 LDA* O$XF SCALE FACTOR ADDRESS 0473 00342 0 12 00337 IRS O$XF RETURN ADDRESS 0474 00343 0 10 00421 JST PCUP PICK UP SCALE FACTOR 0475 00344 0 04 00510 STA FACT FLOATING POINT SCALE FACTOR - WORD A 0476 00345 000201 IAB 0477 00346 0 04 00511 STA FACT+1 FLOATING POINT SCALE FACTOR - WORD B 0478 00347 000201 IAB 0479 00350 0 10 00000 CALL M$22 FLOATING POINT MULTIPLY 0480 00351 0 000514 DAC FFCT UNITS CONVERSION FACTOR 0481 00352 0 04 00512 STA SFCT CONVERTED SCALE FACTOR - WORD A 0482 00353 000201 IAB 0483 00354 0 04 00513 STA SFCT+1 CONVERTED SCALE FACTOR - WORD B 0484 00355 0 35 00441 LDX SAV2 RESTORE INDEX 0485 00356 -0 01 00337 JMP* O$XF EXIT 0486 * 0487 * 0488 * REOUEST PRESENT PEN POSITION 0489 * 0490 00357 0 000000 O$XW DAC ** REOUEST PRESENT PEN POSITION 0491 00360 0 15 00442 STX SAV3 SAVE INDEX 0492 00361 0 02 00453 LDA XFX+1 X POSITION - WORD B 0493 00362 000201 IAB 0494 00363 0 02 00452 LDA XFX X POSITION - WORD A 0495 00364 0 10 00426 JST STOR STORE X POSITION 0496 * 0497 00365 0 02 00455 LDA YFY+1 Y POSITION - WORD B 0498 00366 000201 IAB 0499 00367 0 02 00454 LDA YFY Y POSITION - WORD A 0500 00370 0 10 00426 JST STOR STORE Y POSITION
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 11

0501 * 0502 00371 0 02 00511 LDA FACT+1 SCALE VALUE - WORD B 0503 00372 000201 IAB 0504 00373 0 02 00510 LDA FACT SCALE VALUE - WORD A 0505 00374 0 10 00426 JST STOR STORE SCALE VALUE 0506 00375 0 35 00442 LDX SAV3 RESTORE INDEX 0507 00376 0 12 00357 IRS O$XW RETURN ADDRESS 0508 00377 -0 01 00357 JMP* O$XW EXIT 0509 * 0510 * 0511 * SET PEN AT ORIGIN 0512 * 0513 00400 0 000000 O$XG DAC ** SET PEN AT ORIGIN 0514 00401 140040 CRA CLEAR A-REGISTER 0515 00402 0 35 00530 LDX =-10 INDEX REGISTER=-10 0516 00403 1 04 00456 LABL STA XFLT+10,1 PUT ZERO IN PARAMETER LOCATIONS 0517 00404 0 12 00000 IRS 0 TALLY INDEX REGISTER 0518 00405 0 01 00403 JMP LABL RETURN FOR NEXT PARAMETER 0519 * 0520 * MOVE PEN AS FAR WEST AS POSSIBLE 0521 00406 0 10 00000 JST O$XP PLOT A LINE 0522 00407 0 000516 DAC XPNW X CO-ORDINATE FOR MOVE WEST 0523 00410 0 000520 DAC YPNW Y CO-ORDINATE FOR MOVE WEST 0524 00411 0 000526 DAC THRE PEN UP 0525 00412 000000 OCT 0 END OF PARAMETER LIST 0526 * 0527 * MOVE PEN EAST TO WITHIN 10 MILLIMETRES OF PAPER EDGE 0528 00413 0 10 00000 JST O$XP PLOT A LINES 0529 00414 0 000522 DAC XPNE X CO-ORDINATE FOR MOVE EAST 0530 00415 0 000524 DAC YPNE Y CO-ORDINATE FOR MOVE EAST 0531 00416 0 000527 DAC MTHR PEN UP AND TERMINATE PLOT 0532 00417 000000 OCT 0 END OF PARAMETER LIST 0533 00420 -0 01 00400 JMP* O$XG EXIT 0534 * 0535 * 0536 * SUBROUTINES 0537 * 0538 * PICK UP A VARIABLE 0539 00421 0 000000 PCUP DAC ** PICK UP A VARIABLE 0540 00422 0 04 00424 STA L3 ADDRESS OF VARIABLE 0541 00423 0 10 00000 CALL L$22 SINGLE PRECISION LOAD 0542 00424 0 00 00000 L3 *** ** ADDRESS OF VARIABLE 0543 00425 -0 01 00421 JMP* PCUP EXIT 0544 * 0545 * STORE A VARIABLE 0546 00426 0 000000 STOR DAC ** STORE A VARIABLE 0547 00427 0 04 00443 STA SAV4 SAVE INDEX 0548 00430 -0 02 00357 LDA* O$XW ADDRESS OF PEN POSITIONING ENTRY 0549 00431 0 12 00357 IRS O$XW NEXT PEN POSITIONING ENTRY ADDRESS 0550 00432 0 04 00435 STA L4 STORE ADDRESS
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 12

0551 00433 0 02 00443 LDA SAV4 RESTORE INDEX 0552 00434 0 10 00000 CALL H$22 SINGLE PRECISION HOLD 0553 00435 0 00 00000 L4 *** ** PEN POSITIONING ENTRY ADDRESS 0554 00436 -0 01 00426 JMP* STOR EXIT 0555 * 0556 * VARIABLES 0557 * 0558 00437 000000 SAVE BSZ 1 PLOT ROUTINE INDEX 0559 00440 000000 SAV1 BSZ 1 OFFSET ROUTINE INDEX 0560 00441 000000 SAV2 BSZ 1 FACTOR ROUTINE INDEX 0561 00442 000000 SAV3 BSZ 1 POSITIONING ROUTINE INDEX 0562 00443 000000 SAV4 BSZ 1 STORE ROUTINE INDEX 0563 * 0564 00444 000000 XFLT BSZ 2 FLOATING POINT X VALUE 0565 00446 000000 YFLT BSZ 2 FLOATING POINT Y VALUE 0566 * 0567 00450 000000 IPNX BSZ 1 PREVIOUS PEN POSITION 0568 00451 000000 IPNY BSZ 1 PREVIOUS PEN POSITION 0569 00452 000000 XFX BSZ 2 FLOATING POINT X POSITION 0570 00454 000000 YFY BSZ 2 FLOATING POINT Y POSITION 0571 * 0572 00456 000000 IC BSZ 1 PEN CONTROL PARAMETER 0573 00457 000000 IP BSZ 1 ABSOLUTE PEN CONTROL PARAMETER 0574 00460 000000 PENP BSZ 1 PEN POSITION INDICATOR 0575 * 0576 00461 000000 XMIN BSZ 2 X FROM OFFSET ENTRY 0577 00463 000000 YMIN BSZ 2 Y FROM OFFSET ENTRY 0578 00465 000000 XFAC BSZ 2 FLOATING POINT X SCALE 0579 00467 000000 YFAC BSZ 2 FLOATING POINT Y SCALE 0580 * 0581 00471 000000 IX BSZ 1 FIXED POINT X VALUE 0582 00472 000000 IY BSZ 1 FIXED POINT Y VALUE 0583 00473 000000 TEMP BSZ 1 TEMPORARY STORE 0584 00474 000000 DLTX BSZ 1 DELTA X 0585 00475 000000 DLTY BSZ 1 DELTA Y 0586 00476 000000 IDLX BSZ 1 ABSOLUTE DELTA X 0587 00477 000000 IDLY BSZ 1 ABSOLUTE DELTA Y 0588 00500 000000 XPLT BSZ 1 X DIRECTION 0589 00501 000000 YPLT BSZ 1 Y DIRECTION 0590 00502 000000 XYPL BSZ 1 COMBINATION MOVE 0591 00503 000000 TDX BSZ 1 2*DELTA X 0592 00504 000000 TDY BSZ 1 2*DELTA Y 0593 00505 000000 N BSZ 1 COUNTER 0594 * 0595 * 0596 * CONSTANTS 0597 * 0598 00506 14 0027 OCP OCP DADP BASIC OCP INSTRUCTION 0599 00507 000002 PNER OCT 2 PEN ERROR 0600 00510 040300 FACT DEC 1.0 FLOATING POINT SCALE VALUE
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 13

00511 000000 0601 00512 041120 SFCT DEC 10.0 STARTING SCALE VALUE 00513 000000 0602 00514 041120 FFCT DEC 10.0 UNITS CONVERSION FACTOR 00515 000000 0603 00516 135450 XPNW DEC -350.0 X CO-ORDINATE FOR MOVE PEN WEST 00517 100000 0604 00520 000000 YPNW DEC 0.0 Y CO-OROINATE FOR MOVE WEST 00521 000000 0605 00522 135453 XPNE DEC -340.0 X CO-ORDINATE FOR MOVE PEN EAST 00523 000000 0606 00524 000000 YPNE DEC 0.0 Y CO-ORDINATE FOR MOVE EAST 00525 000000 0607 00526 000003 THRE OCT 3 PEN UP 0608 00527 177775 MTHR OCT -3 PEN UP AND TERMINATE PLOT 0609 * 0610 * LITERALS 0611 00530 177766 FIN LITERALS 00531 000400 00532 001000 00533 000100 00534 000200 00535 177777 00536 000002 00537 000003 00540 000012 0612 END END OF O$XP 21.JAN.70 P.G.WHONE BASE 000240 CFOF 000063 DADP 000027A DLTX 000474 DLTY 000475 ERPN 000041 EXCM 000246 EXEC 000242 EXIT 000261 FACT 000510 FFCT 000514 IC 000456 IDLX 000476 IDLY 000477 IP 000457 IPNX 000450 IPNY 000451 IX 000471 IY 000472 L1 000234 L2 000266 L3 000424 L4 000435 LABL 000403 MTHR 000527 N 000505 NOFF 000115 NORM 000214 O$XF 000337 O$XG 000400 O$XO 000302 O$XP 000000 O$XW 000357 OCP 000506 OFST 000071 OUTP 000226 PCUP 000421 PEN2 000043 PEN3 000053 PENC 000062 PENP 000460 PLSA 000276 PLTA 000024 PLUS 000272 PNDN 001427A PNER 000507 PNUP 001627A SAV1 000440 SAV2 000441 SAV3 000442 SAV4 000443 SAVE 000437 SFCT 000512 SKLM 000227A SKNB 000127A STOR 000426 TDX 000503 TDY 000504 TEMP 000473 TENT 000225 TERM 000264 THRE 000526 XFAC 000465 XFLT 000444 XFX 000452 XMIN 000461 XPL2 000160 XPL3 000156 XPLA 000162 XPLT 000500 XPLX 000161 XPNE 000522 XPNW 000516 XYPL 000502 YFAC 000467 YFLT 000446 YFY 000454 YMIN 000463 YPL1 000173 YPL3 000171 YPLA 000175 YPLT 000501 YPLY 000174 YPNE 000524
* 0078-001-H908 (O$XP) DRAWING NO. 41285371-301-02 PAGE 14

YPNW 000520 0000 WARNING OR ERROR FLAGS DAP-16 MOD 2 REV. C 01-26-71
Previous File   Multiple Pages   Next File