UP       V02L00 73  8  1130 DPS (1130-CX-14X) V02M00 2-28-69            UP     *
// JOB                                                                  UP000010
// EJECT  PUSH START FOR .005 STEP PLOTTER - INT REQ FOR .01 STEP       UP000011
// PAUS                                                                 UP000012
// ASM                                                                  UP000020
*LIST                                                                   UP000030
                          HDNG    UP - DOWN - DRAW 1627 PLOTTER CONTROL UP000040
                          ENT     UP                                    UP000050
                          ENT     DOWN                                  UP000060
                          ENT     DRAW                                  UP000070
                    *************************************************** UP000080
                    *          UP/DOWN ROUTINES                       * UP000090
                    *************************************************** UP000100
                    UP    DC      0     ENTRY FOR PEN RAISE ROUTINE     UP000110
                          LD      CUP   PEN UP COMMAND                  UP000120
                          STO     COMM  STORE FOR EXECUTION             UP000130
                          LD      NINE  PEN UP INDICATOR                UP000140
                    U01   STO     HOLD                                  UP000150
                          LD   I  UP    ARG LIST                        UP000160
                          STO     *&1                                   UP000170
                    U03   LD   L  *-*   CURRENT STATUS CONTROL          UP000180
                          EOR     HOLD  CHECK FOR AT DESIRED STATUS     UP000190
                          BSC  L  U02,&- BRANCH IF AT DESIRED STATUS    UP000200
                          LD      HOLD  RESET STATUS CONTROL            UP000210
                          STO  I  U03&1 SAVE                            UP000220
                          BSI     IOEX  I/O EXECUTION                   UP000230
                    U02   MDX  L  UP,1   SET RETURN ADDRESS             UP000240
                          BSC  I  UP    RETURN                          UP000250
                    NINE  DC      9     PEN UP CONSTANT                 UP000260
                    DOWN  DC      0                                     UP000270
                          LD      DOWN  ARGUMENT LIST                   UP000280
                          STO     UP                                    UP000290
                          LD      CDOWN PEN DOWN CONTROL WORD           UP000300
                          STO     COMM  EXECUTE COMMAND FOR I/O         UP000310
                          SLA     16    CREATE ZERO                     UP000320
                          MDX     U01                                   UP000330
                    HOLD  EQU     DOWN                                  UP000340
                          SPAC    5                                     UP000350
                    *************************************************** UP000360
                    *          COMMON I/O ROUTINE                     * UP000370
                    *************************************************** UP000380
                    IO2   MDX  L  /32,&1 SET PLOTTER BUSY               UP000390
                          NOP           PROTECT ON SKIP                 UP000400
                          LD   L  COR11     SAVE PRESENT                UP000410
                          STO     OTHER     INTERRUPT ADDRESS           UP000420
                          LD      ADD INTERRUPT ADDRESS                 UP000430
                          STO  L  COR11                                 UP000440
                          XIO     CONTB   EXECUTE COMMAND               UP000450
                          BSC  L  *-* EXIT                              UP000460
                    IOEX  EQU     *-1                                   UP000470
                    IO1   XIO     CONTC SENSE PLOTTER                   UP000480
                          BSC  L  IO2,&- BRANCH IF PLOTTER READY/NOT BUSUP000490
                          BSC     E SKIP IF PLOTTER READY               UP000500
                          LD      NOTON  CODE WORD FOR PLOTTER OFF WAIT UP000510
                          BSC     E SKIP PLOTTER READY                  UP000520
                          DC      /3011     WAIT-PLOTTER NOT READY      UP000530
                          MDX     IO1                                   UP000540
                          EJCT                                          UP000550
                    *************************************************** UP000560
                    *          DATA AREA                              * UP000570
                    *************************************************** UP000580
                          BSS  E  0                                     UP000590
                    COMM  DC      0                                     UP000600
                    CONTA EQU     COMM                                  UP000610
                          DC      /2F01 SENSE                           UP000620
                    CONTB DC      COMM                                  UP000630
                          DC      /2900 EXECUTE-WRITE                   UP000640
                    NOTON DC      /BBBB WAIT CODE-NOT READY             UP000650
                    CONTC EQU     NOTON                                 UP000660
                          DC      /2F00  SENSE FOR BUSY READY           UP000670
                          BSS  E  0                                     UP000680
                    DELA  DC      0                                     UP000690
                    DELB  DC      0     POSITIVE SHORT LEG COMPONENT    UP000700
                    SAV   BSS     1 FOR ACC                             UP000710
                    OTHER DC      *-*       INTERRUPT ADDR SAVE BUCKET  UP000720
                    K1    DC      1                                     UP000730
                    COR11 EQU     11                                    UP000740
                    CUP   DC      /0400  PEN UP CONTROL                 UP000750
                          SPAC    5                                     UP000760
                    *************************************************** UP000770
                    *          DRAW ROUTINE                           * UP000780
                    *************************************************** UP000790
                    DRAW  DC      0                                     UP000800
                          STX   1 SAVE&1 SAVE IXR                       UP000810
                          LD      DRAW  ADDRESS OF ARG LIST             UP000820
                          STO     UP    SET FOR RETURN                  UP000830
                          STO     *&1                                   UP000840
                          LDX  I1 *-*   ADDRESS OF XTARGET              UP000850
                    ALPHA EQU     *-1                                   UP000860
                          LD    1 0     XTARGET                         UP000870
                          S     1 -2     - X PRESENT                    UP000880
                          STO     DELA   X LEG OF VECTOR                UP000890
                          BSC     -     DELTA X NOT POSITIVE            UP000900
                          LD      POSX                                  UP000910
                          BSC     &Z    DELTA X POSITIVE                UP000920
                          LD      NEGX                                  UP000930
                          STO     D00                                   UP000940
                          LD    1 -2      X PRESENT                     UP000950
                          S     1 0       X TARGET                      UP000960
                          BSC     -    SKIP IF DELA POSITIVE            UP000970
                          STO     DELA                                  UP000980
                          LD    1 -4    YTARGET                         UP000990
                          S     1 -6     - Y PRESENT                    UP001000
                          STO     DELB                                  UP001010
                          BSC     -     DELTA Y NOT POSITIVE            UP001020
                          LD      POSY                                  UP001030
                          BSC     &Z                                    UP001040
                          LD      NEGY                                  UP001050
                          STO     DYY                                   UP001060
                          OR      D00                                   UP001070
                          STO     D45     45 DEGREE MOVE                UP001080
                          LD    1 -6                                    UP001090
                          S     1 -4     Y PRESENT - YTARGET            UP001100
                          BSC     -     SKIP IF REVERSAL NOT REQUIRED   UP001110
                          STO     DELB                                  UP001120
                          LD      DELB                                  UP001130
                          S       DELA  IS DY GT DX                     UP001140
                          BSC  L  D03,&                                 UP001150
                          LDD     DELA    REVERSE LONG AND SHORT LEGS   UP001160
                          RTE     16                                    UP001170
                          STD     DELA                                  UP001180
                          LD      DYY   Y COMPONENT                     UP001190
                          STO     D00   90 DEGREE MOVE                  UP001200
                    D03   SLA     16   CREATE ZERO                      UP001210
                          STO     ALPHA MOVE COUNTER                    UP001220
                          S       DELA                                  UP001230
                          STO     DEL   DEL # - LONG LEG                UP001240
                          LDD     DELA  DOUBLE SHORT AND LONG LEGS      UP001250
                          SLT     1                                     UP001260
                          STD     DELA                                  UP001270
                    D05   LD      ALPHA CHECK TOTAL MOVED               UP001280
                          S       DELA  VERSUS LONG LEG                 UP001290
                          BSC  L  D06,&-   COMPLETE                     UP001300
                          MDX  L  ALPHA,1 MODIFY MOVED COUNTER          UP001310
                          LD      DEL                                   UP001320
                    CDOWN A       DELB                                  UP001330
                          STO     DEL                                   UP001340
                          BSC     -                                     UP001350
                          LD      D45                                   UP001360
                          BSC     &Z                                    UP001370
                          LD      D00                                   UP001380
                          STO     COMM                                  UP001390
                    POSX  BSI     IOEX                                  UP001400
                          LD      DEL                                   UP001410
                          BSC  L  D05,&Z BRANCH IF D00 MOVE             UP001420
                          S       DELA                                  UP001430
                          STO     DEL                                   UP001440
                          MDX     D05                                   UP001450
                    DEL   EQU     U03&1   MOVE CONTROL                  UP001460
                    DYY   EQU     ALPHA  Y MOVE COMMAND                 UP001470
                    D00   EQU     DOWN  90 DEGREE MOVE                  UP001480
                    D45   EQU     DRAW 45 DEGREE MOVE                   UP001490
                    NEGX  DC      /2000                                 UP001500
                    D06   LD    1 0    SET                              UP001510
                          STO   1 -2     NEW                            UP001520
                          LD    1 -4       PRESENT                      UP001530
                          STO   1 -6         POSITIONS                  UP001540
                    SAVE  LDX  L1 0     RESTORE INDEX REGISTER          UP001550
                          MDX     U02                                   UP001560
                          EJCT                                          UP001570
                    *************************************************** UP001580
                    *          INTERRUPT ROUTINE                      * UP001590
                    *************************************************** UP001600
                    INT   DC      0                                     UP001610
                          STO     SAV  SAVE ACC                         UP001620
                          XIO     CONTC     SENSE PLOTTER DSW           UP001625
                          BN      MINE      BRANCH IF PLOT RESPONSE     UP001630
                          LD      INT       PASS INTERRUPT RETURN       UP001640
                          STO  I  OTHER     TO OTHER ILS ROUTINE        UP001650
                          LD      OTHER     ENTER OTHER                 UP001660
                          A       K1        ILS ROUTINE                 UP001670
                          STO     IOEX      AT ENTRY POINT              UP001680
                          B       IOEX-1    PLUS ONE                    UP001690
                    MINE  EQU     *                                     UP001700
                          LD      OTHER     RESTORE OTHER ILS           UP001710
                          STO  L  COR11     ADDRESS                     UP001720
                    POSY  XIO     CONTA RESET INTERRUPT                 UP001730
                          LD      SAV  RESTORE ACC                      UP001740
                          MDX  L  /32,-1 SET PLOTTER NOT BUSY           UP001750
                    NEGY  NOP           SKIP PROTECT AND PEN CONTROL    UP001760
                    ADC   BOSC I  INT   RESET LEVEL                     UP001770
                    ADD   EQU     ADC&1                                 UP001780
                          END                                           UP001790
// DUP                                                                  UP001800
*DELETE             UP                                                  UP001810
*DUMP       WS  CD  UP                                                  UP001820
*STORE      WS  UA  UP                                                  UP001830
