HORDe O LORD, 0 OVER2, 0 EXP1, O QUOL, 0 FPAC1, 0 0 0 *61 FLAG, 0 /ARITHMFTIC ERROR FLAG PAUS, 0 /FLAG FOR PAUSING AT END OF CUT BLKTYP, 0 NBTYP, 0 BTYP2. O XOPC, 0 /FOLLOWED BY BOPC,ZOPC,AOPC,YOPC *73 X2OPC, 0 *101 PSWTCH, 0 PSWT2, 0 *130 DH, 200 /INDIRECT ADDRESS OF EA AXIS AREA 130 DL. 200+1 CH, 200+2 /ETC CL. O BH, 0 /+4 BL, 0 DIN, 0 /+6 DIL, 0 DUP, 0 /+10 BLANK, 0 /USED IN FLOATING PT WORK WDH, 0 /+12 = +10 BASE 10 OR MOTOR COUNT WDL, 0 WCH, 0 /+14 WCL. O WBH, 0 /+16 WBL, 0 DMRH. O /+20 DMRL, 0 DMIN, 0 /+22 SUMVH. O SUMH, 0 /+24 = +20 BASE 10 SUML, 0 WFAC, 0 /THIS AREA IS CLEARED IN START UP *200 XAX, 0 /XAXIS AREA *232 BAX. O /B/(PIECE ROTATION) AREA *264 ZAX, O IZAXIS AREA *316 AAX, 0 /A(TILT) AREA *350 YAX, *402 0 /YAXIS AREA /SIXTH AXIS AREA /NOT USED *600 BEGIN.CLA DCA CW DCA CW2 6144 /TURN ON FIRST SET UP ANGLE AND FIRST TOO / L CLA CLL JMS I ICLI / CLEAR INPUT + START INPUT/1251 TAD I2Z10 / SET TO TURM AIR ON EVERY TIME 6144 /TURN ON AIR DCA CWB / 6001 / ENABLE INTERRUPIS TAD M257 DCA CNT CLA CMA TAD LCFR DCA AI10 DCA I AI10 / ISZ CNT /CLEARING LOOF JMP .-2 / R1, TAD 1 ISWT/DETERMINE IF END OF RTL /TAPE HAS BEFN REACHED SNL CLA OPMTRS /TURN OFF ALT SET UP ANGLE AND ALT TOOL TAD I IBUFF SNA CLA /TEST FOR FULL INPUT BUFFER JMP .-2 NOP /INPUT BUFFER IS FULL JMS I KDMSG /CALL DATA MASS.(TRANS + REARNG.) NOP JMS I ICLI /CLEAR INPUT + START REFILLING NOP R2, JMS STEP NOP JMS I KCDWD /GEN A MOTOR CONTROL WORD AND MOTOR CO / UNTS TAD CW2 f SZA CLA /LOOP UNTIL STAND BY WORD REMOVED JMp .-2 NOP CLA CMA TAD STPS DCA STPS NOP TAD STPS SZA CLA /TEST FOR MOTION FINISHED (RUN U STEPS = / 0) JMP R2 /MOTION NOT FINISHED NOP JMP R1 /MOTION FINISHED (U = 0) ISWT, SWTCH M257, -257 ICLI CLI KDMSG, DMSGI IBUFF, BFF KCDWD, CDWD I2Z10, 2000 STEP, 0 CLA IAC DCA AXIS IADDRESS SETTER FOR EA AXIS TAD FRST /SET FOR FIRST AXIS 200/8-DELTA DCA I KDH /DELTA = 26/10 = TAD JM5 /-5 DCA NAX /SET FOR 5 AXES JMP .+6 NXAX, CLA TAD I KDH TAD P32 X+26X10 +32/8 DCA I KDH ISZ AXIS TAD LCFR DCA AI13 TAD P32 JMS I JLNAS JMP KDH+1 LOOP, ISZ NAX JMP NXAX JMP I STEP FRST, 200 JM5, 7773 /MINUS 5 NAX, 0 P32, 32 /PLUS 26/10=32/8/=CHG IN AD AND NO.LOCS LCFR, 130 CNT, O JLNAS, LNAS /ADDRESS SETTER RUN TIME KDH, DH CLL CLA TAD I DL /ADD THIRD DIF TO SECONU DIF TAD I CL DCA I CL RAL TAD I OH TAD I CH DCA I CH CLL TAD I CL /ADD SECOND TO FIRST TAD I BL DCA I BL RAL TAD I CH TAD I BH DCA I BH CLL TAD I BL /ADD FIRST TO PRIOR REMAINDER TAD I DIL DCA 1 DIL RAL TAD I BH TAD I DIH DCA I DIH CLL /COMPUTE NEW IDEAL POSITION TAD I BL TAD I SUML DCA I SUML RAL TAD I SUMH TAD I RH DCA I SUMH RAL TAD I SUMVH DCA I SUMVH TAD I BH SMA CLA JMP I KCNTU CMA TAD I SUMVH DCA I SUMVH JMP I KCNTU KCNTU, CNTNU *1000 NOP CNTNU, TAD I DIH /COMPUTE MOTOR PULSES ROUNDED DOWN TO INT X EGER AND M1MP /111 111 110 000 MINUS ONE MOTOR PULSE UCA WS TAD I DIH AND Z8I4 /000 000 001 111 DCA I DIH CLL TAD wS TAD I DMRH /ADD TO TOTAL MOTOR PULSES REMAINOER DCA I DMRH RAL SZA JMS I IERR/ OVERFLOW FRROR JMP I KLOOP /NEXT AXIS Z8I4. 0017 M1MP. 7760 IERR, ERR KLOOP, LOOP CDWD, 0 TAD NBTYP DCA BTYP2 TAD XDMXH /SET UP - MOTOR PULSES DCA KDMRH /SET ADDRESSES TAD XDMIN UCA KWS TAD LM5 /SET NO AXES DCA NAXES TAD B11 DCA BIT TAD CWB /BASE CODE WORD XX1111111111 TAD SS1 DCA WWS JMP R5 XDMXH, XAX+20 /LOCATION OF FIRST AXIS (X) KDMRH, 0 / LOCATION OF CURRENT AXIS XDMIN, XAX+22 /LOCATION OF CURRENT AXIS' INTEGER PULSES KWS, 0 /NUMBER PULSES FOR THIS AXIS LM5, -5 NAXES, 0 B11, 0001 / BIT 11 BIT, 0 SS1, 1252 RS, TAD I KDMRH /EXTRACT INTEGER PULSES AND M1MP2 /S8140 DCA i KWS TAD I KDMRH /STORE RFMAINDER AND ZZ4I8 DCA I KDMRH TAD I KWS CLL RTR / RIGHT JUSTIFY RTY JMS I K2F4/FILL SIGN DCA I KWS TAD I KWS SPA JMP .+7 CMA / EQUALS -DELTA -1 DCA 1 KWS TAD WWS / ADJ SIGN OF MOTION TAD BIT /BIT IN 3 OR 5 OR 7 OR 9 OR 11 DCA WWS JMP .+4 NOP TAD Mi /ADD ONE NEG PULSE DCA I KWS TAD KDMRH /SET UP FOR NEXT AXIS TAD PP32 DCA KDMRH TAD KWS TAD PP32 DCA KWS TAD BIT CLL RTL -DCA BIT ISZ NAXES JMP R5 /RETURN FOR NEXT AXIS NOP/TAD C NOP/JMS I KOUTC TAD WWS /EVERYTHING READY SO NOP /JMS I KOUTOL DCA CW2 /POST STANDBY CODE WORD JMP I CDWD /EXIT M1MP2, 7760 M1, -1 K2F4, F4 PP32, 32 ZZ4I8, 0017 WWS, 0 DMSGI, O TAD I KBF X SEQ NO AND/OR PLOCK TYPE JMS I IF4 / FILL SIGN POSITION/S/ DCA NBTYP DCA PSWT2 /ASSUME P2 (+) TAD NBTYP SMA CLA JMP .+3 CMA DCA PSWT2 /SET P1 (-) TAD NBTYP -SPA SNA CLA JMP LOOP2 STSQNO, TAD NBTUP /STORE SEQ NO AS SEQ NO OLD DCA SQNOLD JMS I LDMSG JMP I DMSGI KBF, BF SQNOLD. O LDMSG, DMSG LOOP2. TAD PAUS / WAIT IF PAUS 15 SET SNA CLA JMP KBF-2 JMP .-3 IF4, F4 *1200 DMSG, 0 CLA CLL IAC DCA K / ONE TO AXIS COUNTER TAD I IBF1 / NO OF U STEPS RTL / SCALE U*8 RAL DCA STPS TAD A1 /SET ADDRESS FOR Y AXIS DATA DCA BHIH TAD A2 DCA DHW TAD A3 JMP R111 R11, TAD BHIH /SET FOR A,Z,PR,X, IN THAT ORDER TAD M2 DCA BHIH ISZ K TAD K TAD NM6 5NA CLA JMP I DMSG / EXIT TAD DHW TAD NM6 DCA DHW TAD DHT TAD M26 R111, DCA DHT TAD BHIH /COMPLETE ADDRESS SETTING IAC DCA bHIL TAD PDHW DCA AI13 TAD SIX JMS I KLNAS TAD PDHT DCA A113 TAD SIX JMS I KLNAS JMP C2 K. O M26, -32 A1, BF+12 A2, BF+32 /+26 BASE 10 A3, YAX M2, 7776 1-2 NM6, 7772 1-6 BHIH, 0 BHIL, 0 PDHW, DHW /PTR TO PTR TO (FULL) INPUT @UFFER SUB AR / EA PDHT, DHT /PTR TO PTR TO CUBIC CODF OF CURRENT AXIS DHW, 0 DLW, 0 CHW, 0 CLW, 0 BHW, 0 BLW, 0 DHT, 0 DLT, 0 CHT, O CLT, 0 BHT, 0 BLT, 0 SIX. 0006 KLNAS, LNAS IBF1, BF+1 *1300 /DATA MASSAGF PROCESSING SUBROUTINE C2, TAD NBTYP / TEST KEY FOR ALTERNATE(STR LINE) INPUT SMA SZA CLA CLL JMP NDAT /JMP TO TREAT NORMALLY TAD I BHIH /REARRANGE + CLIAR DCA I BHW DCA I BHIH TAD I BHIL DCA I BLW DCA I BHIL NDAT, TAD I BHW /TREAT NORMALLY WITHIN BUFFER AREA JM5 I KF4 DCA I BHT TAD I BLW CLL RTL RTL DCA I BLT TAD I CHW JMS I KF4 /FILL SIGN POS(4 BITS) DCA I CHT TAD I CLW CLL RTL RTL DCA I CLT TAD I DHW / CLL AND PP17 RTR RTR RAR TAD I DLW DCA I DLT TAD I DHW RTR RTR AND PP17 / JMS I KF8 /FILL SIGN POS(8 BITS) DCA I DHT JMP R11 / PP17, 0017 KF4, F4 KF8, F8 *1400 /LIST ADDRESS SETTER USES AI12 + AI13 /ENTER WITH COUNT IN AC, IST LOC IN /AI13, 1ST ADD IN I,AI13 /TO SET 100-105 TO POINT TO 200-205 LNAS, 0 /AC=6 100=200 AI13=100 AND AI12 NOT IN US / E CMA IAC IAC SMA /INSURE A SMALL NO OF SETTINGS HLT DCA CNT2 CLA CMA TAD AI13 /ADDRESS NO1 & 1 TO ADDRESS NO 2 DCA AI12 TAD I AI12 /START OF LOOP CLL IAC DCA I AI13 ISZ CNT2 JMP .-4 JMP I LNAS/RETURN /FILL FIRST 4 BITS WITH SIGN (=5TH BIT) F4, 0 /NOTE FERST 4 BITS MUST BE ZEROS /NOTE NEG NO LOOKS MORE POSITIVE TAD S5170 /111110-0/7600 SPA TAD K4180 TAD 55170 JMP I F4 S5170, 7600 K4180, 0400 S40115, 0020 CNT2, 0 F8, 0 /FILL FIRST 8 BITS WITH SIGN (=9TH BIT) TAD S9130 /1-1000/7770 SPA TAD 540115 TAD S9130 /1-1000-7770 JMP I F8 S9130, 7770 KwSI, WSI RwIST, TAD I KWSI TAD ZTEST SZA CLA JMP KSTSEQ-3 ISZ wSI3 JMP I KNXC 6356 /STOP HSR, 6 SUC.SENTINELS FOUND JMS LISTEN 6352 / CLEAR DONE JYP I KSTSEQ TAD wSI2 DCA wSI3 JMP I KNXC /EXIT KSTSEQ, STSEQ SRE, 6356 /STOP HSR JMS I IERRR WSI2, 7772 WSI3, 0 ZTEST. 7600 KNXC. RETRN IERRR, 4720 LISTEN, O -./ WAIT FOR CONTINUE TO BE PUSHEO IOF CLA CLL 6146 /READ CLOCK AND PUSH BUTTONS /*/ RTR SNL CLA JMP .-3 6142 / CLEAR FLAGS 6152 / CLEAR FLAG5 JMP I LISTEN SBLK, TAD BLKTYP / TEST FOR AUX FUNCTIONS BLOCK TAD PP3 SMA CLA JMP C5 / IS NOT AN AUX FUNCTION BLOCK TAD I BLKT JMS AUX TAD STOP / TEST FOR PAUS /DONT OFER ALL MOTORS FOR / WARD SNA CLA ISZ PAUS Z SET TO PAUSE TAD I BLKT+1 JMS AUX CLA CLL TAD I BLKT+2 JMS AUX CLA CLL TAD I BLKT+3 JMS AUX AND STOP+1 DCA CWB CLA CLL TAD CNT3 DCA WS2 DCA WS6 ISZ WS6 JMP .-1 ISZ WS2 JMP .-3 TAD ONE DCA STPS JMP I CHK3 STOP, 7253 6000 ONE, 0001 CNT3, 7540 WS6. 0 WS2, 0 CHK3, CHK1+3 BLKT, 204 236 270 322 354 C5, TAD BLKTYP TAD PP3 SZA CLA JMP I LCNTDN TAD ONE DCA STPS JMP I LCNTDN LCNTDN, CNTDWN AUX, O RTL RTL AND ZTEST OPMTRS JMP I AUX MM2, 7776 PP3, 0003 *1600 STSEQ, 6142 /CLEAR FLAGS INTERFACE 14 6152 6342 /CLEAR HSR FLAG AND O TO AC 6343 /STEP TAPE ONCE TO RIGHT 6341 /SKP ON FLAG JMP .-1 6346 /CLEAR FLAG AND LOAD ACC FROM HSR JMP .+6 NOP NOP NOP / SPACE FOR READER ERROR CHECKING NOP NOP 6354 / SKIP ON DONE FLAG JMP .-1 6352 /CLEAR DONE FLAG (HSR) TAD 4200 SNA CLA JMP STSEQ+3 IAC 6143 /ENABLE CLOCK DCA I IBUSYS / / = NOT BUSY TAD PIOD DCA 1 P1OD TAD PIOD DCA I PIOD+1 TAD PIOD DCA I PIOD+2 DCA I PIOD+3 DCA I PIOD+4 TAD PIOD+5 DCA I KSWTCH DCA I IBUSYS+1 JMS RSTTUP / RESET AS IF TOOL UP NOP NOP JMP I ISTRT PIOD, BFO OPP2 OPP3 8FO+1 IFO+2 7430 KSWTCHt SOTCH ISTRT, BEGIN M200, 7600 IBUSYS, BUSYSG PAUS CLA SLL /COPY LOWER HALF TO UPPER HALF TAD INIT2 DCA Z A116 TAD INITI JMP SPY+4 CPY, CLA CLL /COPY UPPER HALF TO LOWER HALF TAD INITI DCA Z A116 /SET PICK UP TAD INIT2 DCA Z A117 /StT LAY DOWN TAD TST3+1 DCA TST3 /SET TEST TAD I Z A116 DCA I Z All7 ISL TST3 JMP .-3 *1700 CLA CLL OPMIRS / RESET AUX FUNCTIONS TO ZERO JMS I KISTEN 6355 / TAPE RESET PROGRAM 6347 CLL CLA TAD JM4 DCA INDIC RPT, 6341 /SKP IF FLAG JMP .-1 6346 /READ BUFFER TAD TSTV SVA CLA /TEST FOR SENTINEL JMP TST4 TAD JM4 DCA INDIC JMP @PT TSTV, 7600 INDIC, O TST4, ISZ INOIC JMP @PT 6356 / STDP REWIND JMS I KISTEN 6352 / CLEAR DONE JMP I ISTSEQ JM4, 7774 ISTSEQ, STSEQ CR3, 215 INITI, 4020 INIT2, 20 TST3, O 4121 /-3657 KISTEN, LISTEN JM2, 7776 RSTTUP, 0 / SUBROUTINE TO RESET AS IF TOOL UP TAD .+5 DCA BLKTYP TAD .+3 DCA @SWTCH JMP I RSTTUP 7776 *2000 CLA lAC 6143 / ENABLE CLOCK CLA /TO COMPARE O ThRU 2777 DCA B2 TAD B2 /TO COMPARE B2 THRU LIM TAD FOURM DCA B3 ION Li, TAD I B2 CIA TAD I B3 SZA CLA /IF SAME(ZERO) IGNORE JMP L2 /JUMP TO PRINT L3, ISZ B2 ISZ B3 TAD LIM CIA TAD B2 /TEST FOR END OF RANGE SPA CLA JMP L1 /NOT DONE 10F HLT /DONE FOURMe 4000 B2, 0 LIM, 3600 B3, 0 L2, TAD I KOPP2 /WAIT FOR COMPL.OF TYPING CIA TAD I KOPP3 SZA CLA JMP L2 /WAIT IAD I KBUSYS SNA CLA JMP L2 /WAIT TAD B2 /LOAD BUFFER AREA JMS I KOUTO CLA TAD I B2 JMS I KOUTO CLA TAD I B3 JMS I KOUTOL CLA JMP L3 KOPP2, OPP2 KOPP3, OPP3 KBO, BO KBUSYS, BUSYSG *2400 BFO, 2400 /SIART OF 126 CHARACTER OUTPUT BUFFER *2576 /FOR SENTINEL BLL, 0 /END OF OUTPUT BUFFER *2600 OUTC, 0 /OUTPUT A CH@R. WHEN ROOM EXISTS DCA 1 OPP3 ISZ OPP3 TAD OPP3 / TEST FOR RnOM IN OUTPUT BUFFER TAD M2576 SPA CLA JMP I OUTC TAD bO DCA OPP3 JMP I OUTC OPP2, 2400 OPP3 2400 BO, 2400 M2576, 5202 IOUT, 0 TSF /SKP ON FLAG(TTP) JMP .+4 6042 ICLEAR FLAG CLA IAC DCA BUSYSG / SET NOT BUSY CLA CLL TAD OPP2 CIA TAD OPP3 SNA CLA JMP I IOUT TAD BUSYSG SNA CLA JMP I IOUT /TELETYPE(OUTPUI) IS BUSY TAD 1 OPP2 / FILL ACCUMULATOR TLS / TYPE ACCUMULATOR ISZ OPP2 CLA CLL DCA BUSYSG /SET BUSY TAD OPP2 TAD M2576 SPA CLA JMP I IOUT TAO BO DCA OPP2 JMP I IOUT/END PART OF INTRPT ROUTINE OUTOCT, 0 JMS TOCT CLA CLL TAD SPACE JMS OUTC TAD NUM JMP I OUTOCT SPACE, 0240 OUTOLF, 0 JMS TOCYT JMS CRLF TAD NUM JMP I OUTOLF OUTCLF, 0 JMS OUTC JMS CRLF JMP i OUTOLF CRLF, 0 CLA TAD CR JMS OUTC TAD LF JMS OUTC JMP I CRLF CRe 0215 LF, 212 /ASSEMBLY PROGRAM TO TUPE AN OCTAL NUMBER NUM, 0 TOCT, 0 DCA NUM /SAVE CONTENT OF ACCUMULATOR TAD NUM CLL RAL DCA TEM TAD M4 DCA INDX LOOPO, TAD TEM RTL RAL DCA TEM TAO TEM AND C7 TAD C260 JMS OUTC ISZ INDX JMP LOOPO TAD NUM /PESTORE CONTENT CF ACCUMULATOR JMP I TOCT ERR. O JMS TOCT CLA TAD E JMS OUTC TAD ERR JMS CUTCLF P11, NOP /IDLE NOP 6001 / ION JMP P11 E, 305 / LETTE@ E TEM, 0 INDX, 0 M4, -4 C7, 7 C260, 260 BUSYSG, 0000 /BUSY = 0, NDT BUSY = 1 *3000 BFF, 0 BF, 0 /SE@. NO./- OR C INDIC.SHORT FORM 0 /NO STEPS/LONG FORM/SHORI FORM 0 /BF+2 DHX BHX 0 / DLX BLX O / +4 CHX 0 / CLX BLB 0 / +6 BHX BHZ 0 / BLX BLZ 0 / +10 DHB BHA 0 / DLB BLA 0 / +12 CHB BHY 0 / CLB SLY 0 / +14 BHB POSSIBLE SENTINEL 0 / BLB 0 / +16 DHZ o / DLZ 0 J +7C CHZ 0 / CLZ 0 / +22 BHZ 0 / BLZ 0 f 24 DHA 0 / DLA 0 / 26 CHA 0 / CLA G f 3C BHA o f BLA 0 / 32 DHY 0 / CLY 0 / 34 CHY O Z CLY 0 / 36 BHY 0 / BLY 0 / POSSIBLE SENTINEL /CLEAR INPUT @UFFER AND @TARI TN@UI CLI. 0 /SEOUENCE TAD AI@F /CALLEO AT IN IT AND AFTCER DATA MASSAS@ DCA AI17 /SET AI17 TAD MC DCA US /SET - COUNT DCA I AI17 ISZ WS JMP .-2 TAD A17C /SET AJTO POINTER FOR HSR INPUT DCA AI17 6346 /READ HSR BUFFER AND CLEAR FLAG 6343 /STEP ONE CHARACTER TO THE RIGHT CLA CLL DCA BFF JMP I CLI AIBF, BFF-1 MC, 7736 /-COUNT=-33/10/-42/8/ A17C, BF-1 NXC, 0 /READ NEXT CHARACTER FROH BUFFER IF READY 6341 /SKIP IF CHAR. KEADY JMP 1 NXC /RETURN CLL LA 6346 /NEXT CHAR.TO AC AND CLEAR FLAG DCA WSI SWTCH, 6354 / SKIP ON DONE @LAG/SET 3163/RESET 1633 JMP ,-l 6352 /CLEAR DONE FLAG (@SR) TAD WSI JMP .+7 NOP NOP NOP NOP / SPACE FOR READER ERROR CHECKING NOP NOP TAD TEST SZA SLA /TEST FOR A SENT INEL JMP FINI TAD AI17 /PATTERN IS THAT DF A SENTINEL TAD SI /TEST FOR PROPER SEOUENTIAL POSITION SNA /FUR A SENTINEL JMP RSTR /A GOOO LONG BLOCK SMA JMS I ERRR / TOU MANY CHARACTERS TAD S1+1 SNA JMP RSTR / A GOOD SHORT BLOCK TAD S1+2 SNA CLA JMP REWINU FINI, TAD WSI DCA I AI17 /STURE NEW CHAR.