ASMB,L,C,R
      HED ***   RTE-II 26XX LINE PRINTER DRIVER - DVA12   *** 
      NAM DVA12  92001-16020  780511  REV 1826
      ENT IA12,CA12 
**************************************************************
*     (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  ALL RIGHTS * 
*     RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,  * 
*     REPRODUCED, OR TRANSLATED INTO ANOTHER PROGRAM LANGUAGE * 
*     WITHOUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD.   * 
**************************************************************
      SPC 2 
*     INITIATION SECTION
      SPC 2 
IA12  NOP           INITIATION ENTRY
      JSB SETIO     CONFIGURE DVR FOR CURRENT CHAN
      LDA EQT6,I    LOAD REQUEST CONTROL CODE 
      AND M1777     MASK IN FUNC CODE & REQ CODE
      CPA D3        SKIP IF NOT CLEAR REQUEST 
      JMP CLEAR 
      CPA B603      SKIP IF NOT DYNAMIC STATUS REQ. 
      JMP DYNAM 
      JSB STAT      CHECK AND UPDATE PRINTER STATUS 
      JMP NREDI     PRINTER NOT READY 
      LDA EQT5,I    RESET TOF AND EOT STATUS BITS 
      AND M7637 
      STA EQT5,I
      LDA EQT11,I    CLEAR TIMER AND SLEW BITS
      AND M7772 
      STA EQT11,I 
* 
      LDA EQT6,I    ISOLATE REQUEST CODE
      AND M0077 
      CPA D2        SKIP IF NOT A WRITE REQUEST 
      JMP WRITE     GO PROCESS WRITE REQUEST
      CPA D3        SKIP IF NOT A CONTROL REQUEST 
      JMP CNTRL     GO PROCESS CONTROL REQUEST
      CLA,INA       REQ CODE ERR, SET A=1 AND RETURN
      JMP IA12,I    REQUEST CODE ERROR EXIT 
* 
CLEAR CLC 0         CLEAR DEVICE
DYNAM JSB VSTAT     UPDATE PRINTER STATUS 
      JMP EXIT4 
* 
NREDI JSB VSTAT     UPDATE PRINTER STATUS 
      LDA D3        SET PRINTER NOT READY CODE IN A 
      JMP IA12,I    RETURN
      SKP 
*     PROCESS CONTROL REQUEST 
      SPC 2 
CNTRL LDA EQT6,I    FETCH CONTROL WORD
      AND M1770     ISOLATE FUNCTION CODE 
      CPA FUN11     SKIP IF NOT VALID CONTROL FUNC
      RSS 
      JMP EXIT2     BAD FUNCTION CODE; EXIT 
      LDA EQT7,I   LOAD CONTROL PARAMETER 
      SZA,RSS       SKIP IF PRAM.NE.0 
      JMP SETSP     PRAM=0; GO SET SUPPRESS BIT 
      CLB           SET BUF. LEN. AND CHAR. COUNT 
      STB EQT8,I    TO 0 FOR CORRECT COMPLETION 
      STB EQT9,I    SECTION EXIT
      SSA           TEST FOR PAGE EJECT (PRAM<0)
      JMP PEJCT     EXECUTE PAGE EJECT
      ADA ND70      ADD -70 TO PRAM 
      SSA,RSS       SKIP IF PRAM VALID (<70)
      JMP EXIT2     BAD PARAMETER; RETURN 
      ADA D4        ADD 4 TO PRAM; NET DIF IS -66 
      SSA,RSS       SKIP IF NOT VFU CHANNEL 9 - 12
      JMP V9.12 
      ADA D2        ADD 2 TO PRAM; NET DIF IS -64 
      SSA,RSS       SKIP IF NOT PAGE EJ MODE CONTROL
      JMP PEJMC 
      ADA D2        ADD 2 TO PRAM; NET  DIFF IS -62 
      SSA,RSS       SKIP  IF NOT VFU CHANNEL 1-2
      JMP V1.2
      ADA D6        ADD 6 TO  PRAM; NET DIFF IS -56 
      SSA,RSS       SKIP  IF NOT VFU CHANNEL 3-8
      JMP V3.8
      JSB SLEW      MUST BE LINE SLEW CONTROL REQ.
      JMP EXIT0 
* 
SETSP LDA EQT11,I    LOAD DRIVER STATUS 
      IOR BIT7      SET SPACE SUPPRESS BIT
      STA EQT11,I 
      JMP EXIT4     IMMEDIATE COMPLETION RETURN 
* 
V1.2  XOR M0001     MAP VFU CHANS. 1-2 TO PROPER VAL
      SZA,RSS       IF VFU CHAN 1 THEN
      JMP PEJCT     GO SET PAGE EJECT 
      JMP VOUT
* 
V3.8  ADA D2        MAP VFU CHANS 3-8 TO PROPER VALUE 
      JMP VOUT
* 
V9.12 ADA  D8        MAP VFU CHANS 9-12 TO PROPER VALUE 
VOUT  IOR CVFU       SET VFU AND PAPER COMMAND BITS 
      JMP EXP0      GO OUTPUT VFU COMMAND 
* 
PEJMC ALS           SHIFT PAGE EJ MODE BIT TO BIT1
      STA B         SAVE PAGE EJECT MODE BIT IN B 
      LDA EQT11,I    CLEAR PAGE EJECT MODE STATUS BIT 
      AND M7775 
      IOR B         SET NEW VALUE OF PAGE EJ. MODE
      STA EQT11,I 
EXIT4 LDA D4        SET IMMEDIATE COMPLETION CODE 
      JMP IA12,I    RETURN
* 
EXIT2 LDA D2        CONTROL REQUEST ERROR 
      JMP IA12,I    RETURN
      SKP 
*     PROCESS A PRINT REQUEST 
      SPC 2 
WRITE LDA EQT11,I    ISOLATE SPACE SUPPRESS BIT 
      AND BIT7
      SZA,RSS       SKIP IF SUPPRESS SPACE BIT SET
      JMP APEJM     NO SUPPRESS;  GO TEST AUTO PAGE 
      XOR EQT11,I    CLEAR SPACE SUPPRESS BIT 
      STA EQT11,I 
      LDA SUPLT     SET LINE TERMINATOR TO SPACE SUPPRESS 
      STA EQT10,I 
      JMP TLLEN     GO TEST LINE LENGTH 
APEJM LDA EQT11,I    CHECK IF AUTO PAGE EJECT MODE
      AND BIT1
      LDB SSLT      READY SINGLE SPACE CODE 
      SZA,RSS       SKIP IF SINGLE SPACE DESIRED
      LDB SSAPE     CHANGE TO SS WITH AUTO PAGE EJ. 
      STB EQT10,I 
TLLEN LDA EQT8,I   LOAD BUFFER LENGTH 
      SSA           SKIP IF BUF LEN POS (WORD COUNT)
      JMP CCSTR     GO STORE CHARACTER COUNT
      ALS           CONVERT POS WORD COUNT TO NEG.
      CMA,INA        CHARACTER COUNT
CCSTR STA EQT9,I   STORE CHARACTER COUNT
      SZA,RSS       SKIP IF NOT ZERO LINE LENGTH
      JMP LTERM     GO PROCESS END OF LINE
      LDA EQT7,I    CONVERT BUFFER ADDR 
      RAL            TO CHAR ADDR 
      STA EQT7,I
      LDA EQT6,I    LOADR CONTROL WORD
      AND BIT10     HONESTY MODE ?
      SZA 
      JMP HNSTI     YES - GO PROCESS REQUEST
      LDA EQT6,I    ISOLATE CONTROL BIT 7 (SS=1)
      AND BIT7
      SZA           SKIP IF NOT SINGLE SPACE
      JMP EXL0      SINGLE SPACE NEXT LINE, NO CC 
      ISZ EQT9,I   INCREMENT CHARACTER COUNTER
      ISZ EQT7,I   INCREMENT BUFFER CHAR. ADDRESS 
      LDB EQT7,I   LOAD BUFFER CHAR ADDRESS 
      CLE,ERB       CONVERT TO WORD ADDRESS 
      LDA B,I       GET 1ST CHAR IN BUFFER
      AND HIBYT     MASK OUT LOWER BYTE 
      CPA EJECT     COMPARE TO PAGE EJECT (CC="1")
      JMP PEJCT 
      CPA DOUBL     COMPARE TO DOUBLE SPACE (CC="0")
      JMP LTERM     GO OUTPUT EXTRA LINE TERMINATOR 
      LDB SUPLT     READY SPACE SUPPRESS LINE TERM. 
      CPA STAR      COMPARE CC TO SPACE SUPPRESS "*"
      STB EQT10,I   STORE SPACE SUPPRESS LINE TERM. 
EXL0  JSB LOUT      OUTPUT LINE 
      JMP EXIT0     TAKE "OPERATION COMPLETE" RETURN
* 
PEJCT LDA EQT5,I    LOAD PRINTER STATUS 
      IOR BIT6      SET TOF STATUS BIT
      STA EQT5,I
      LDA PEJEC     EXECUTE PAGE EJECT
      JMP EXP0
* 
LTERM LDA EQT10,I   READY LINE TERM. FOR OUTPUT 
EXP0  JSB POUT      OUTPUT CONTENTS OF A REGISTER 
EXIT0 CLA           SET OPERATION INITIATED CODE
      JMP IA12,I    RETURN
      SKP 
*     COMPLETION / CONTINUATION  SECTION
      SPC 2 
CA12  NOP           COMPLETION/CONTINUATION ENTRY 
      JSB SETIO     CONFIGURE I/O INSTRUCTIONS
      LDA EQT1,I    SPURIOUS INTERRUPT? 
      SZA,RSS 
      JMP EXITC     YES, EXIT 
      JSB STAT      CHECK STATUS AND UPDATE 
      JMP NREDC     DEVICE NOT READY
      LDA EQT11,I 
      SLA           SKIP IF TIMER FLAG NOT SET
      JMP TFLAG     GO PROCESS TIME-OUT CONTINUATION
      AND BIT2      ISOLATE SLEW BIT
      SZA,RSS       SKIP IF SLEW BIT SET
      JMP DOUT      GO CHECK LINE OUTPUT
      XOR EQT11,I    CLEAR SLEW BIT 
      STA EQT11,I 
      JSB SLEW      SLEW MORE LINES 
      JMP EXITC     TAKE CONTINUATION EXIT
DOUT  LDA EQT6,I    LOAD CONTROL WORD 
      AND BIT10     HONESTY MODE ?
      SZA 
      JMP HNSTC     HONESTY CONTINUATION SECTION
      LDA EQT9,I   LOAD CHARACTER COUNT 
      SZA           SKIP IF NO MORE DATA
      JMP EXLC      GO FINISH LINE OUTPUT 
DONE  JSB VSTAT     UPDATE PRINTER STATUS 
      LDB EQT8,I   SET B TO POSITIVE WORD OR
      SSB            CHARACTER COUNT. 
      CMB,INB 
CLC2  CLC 0         CLEAR DEVICE CONTROL
      CLA           SET SUCCESSFUL COMPLETION CODE
      JMP CA12,I    COMPLETION RETURN 
* 
NREDC JSB VSTAT     UPDATE LINE PRINTER STATUS
      CLA,INA       SET DEVICE NOT READY CODE 
      JMP CA12,I    RETURN
* 
TFLAG AND M7776     CLEAR TIMER FLAG
      STA EQT11,I 
EXLC  JSB LOUT      FINISH LINE OUTPUT
EXITC ISZ CA12      TAKE CONTINUATION EXIT
      JMP CA12,I    RETURN
      SKP 
*     CONFIGURATOR SUBROUTINE 
      SPC 2 
SETIO NOP 
      CPA LP        SKIP IF DVR NOT PROPERLY CONFIG.
      JMP SETIO,I   RECONFIGURATION NOT NECESSARY 
      STA LP        SAVE NEW CHANNEL NUMBER 
      IOR STF       FORM STF INSTRUCTION
      STA LF1 
      STA HF1 
      ADA B100      FORM SFC INSTRUCTION
      STA TIM1
      STA LOU1
      STA HF2 
      ADA B100      FORM SFS INSTRUCTION
      ADA B200      FORM LIA INSTRUCTION
      STA VS1 
      STA S1
      ADA B100      FORM OTA INSTRUCTION
      STA POUT+1
      STA OUTCH 
      STA OUTHC 
      STA OTHC1 
      ADA B1100     FORM STC,C INSTRUCTION
      STA POUT+2
      STA L2
      STA HC1 
      STA HC2 
      ADA B3000     FORM CLC INSTRUCTION
      STA CLC2
      STA CLEAR 
      JMP SETIO,I 
      SPC 2 
STF   STF 0 
LP    OCT 0         CHANNEL OF INTERRUPT
      SKP 
*     SUBROUTINE TO OUTPUT A LINE 
      SPC 2 
LOUT  NOP           ROUTINE TO OUTPUT A LINE
      LDA EQT9,I   PICK UP NUMBER OF CHARS
      SZA,RSS       SKIP IF ANY LEFT
      JMP EOL       NO, GO OUTPUT END-OF-LINE CHAR. 
      LDB EQT7,I   PICK UP ADDRESS OF CHAR
      CLE,ERB       CONVERT TO WORD ADDRESS 
LF1   STF 0         SET FLAG FOR 1ST PASS THRU LOOP 
      JMP LOAD
NXTCH SEZ,CME       INCREMENT WORD ADDRESS
      INB 
LOAD  LDA B,I       PICK UP WORD CONTAINING CHAR
      SEZ,RSS       SKIP IF RIGHT CHAR
      ALF,ALF       ROTATE
      AND M0177     MASK OFF ANY EXTRANEOUS BITS
LOU1  SFC 0         SKIP IF PREV. CHAR WAS ACCEPTED 
      JMP OUTCH 
      JSB TIME      NO, GO WAIT 
      JMP TMOUT     TIMED OUT GO PROCESS
OUTCH OTA 0         OUTPUT CHARACTER IN A REG 
L2    STC 0,C 
      ISZ EQT9,I   SKIP IF NO MORE CHARS TO PRINT 
      JMP NXTCH     REPEAT FOR NEXT CHAR. 
      JSB TIME      GO WAIT FOR LAST CHAR ACCEPT
      JMP TMOUT     TIMED OUT GO PROCESS
EOL   LDA EQT10,I   GET LINE TERMINATOR 
      JSB POUT      OUTPUT LINE TERMINATOR
      JMP LOUT,I    RETURN
* 
TMOUT ELB           SAVE CHARACTER POSITION ON TIME OUT 
      STB EQT7,I    NEXT TIME IN WE'LL NEED IT
      IOR EQT11,I   SET TIME OUT BIT
      STA EQT11,I   AND SAVE FOR CONTINUATION 
      JMP LOUT,I    GO AWAY 
      SPC 3 
*     TIME-OUT COROUTINE
      SPC 2 
TIME  NOP 
      ELB           SAVE THE CHARACTER POSITION 
      STA TCHAR     SAVE CHARACTER TEMPORARILY
      LDA ND100     PICK UP LOOP COUNTER
TIM1  SFC 0         SKIP IF CHAR NOT ACCEPTED 
      JMP TIM2
      SSA,INA       SKIP IF DELAY TIME EXCEEDED 
      JMP TIM1
      JMP TIM3      TIME-OUT RETURN 
TIM2  LDA TCHAR     RESTORE CHARACTER TO A REG. 
      ISZ TIME      BUMP FOR NO TIMEOUT 
TIM3  CLE,ERB       RESTORE THE CHARACTER POSITION
      JMP TIME,I    RETURN TO CALLING CODE
TCHAR BSS 1 
      SKP 
*     PRINTER STATUS CHECKING AND UPDATE SUBROUTINES
      SPC 2 
STAT  NOP           CHECK FOR PRINTER READY 
S1    LIA 0         FETCH HARDWARE STATUS 
      AND M1401     CLEAR ALL BITS EXCEPT 15,14,0 
      CPA M1001     SKIP IF STATUS NOT GOOD 
      ISZ STAT      SET GOOD STATUS RETURN
      JMP STAT,I    STATUS RETURN 
      SPC 2 
VSTAT NOP           ROUTINE TO UPDATE PRINTER STATUS
      LDA EQT5,I    CLEAR LOWEST 5 BITS OF LP STATUS
      AND M7740     , SAVE IN B TEMPORARILY 
      STA B 
VS1   LIA 0         FETCH HARDWARE STATUS 
      ALF           MOVE STATUS BITS TO A REG 4-0 
      AND M0037     CLEAR ALL OTHER BITS
      IOR B         PUT NEW BITS INTO STATUS WORD 
      STA EQT5,I
      JMP VSTAT,I 
      SKP 
*     HONESTY SECTION 
HNSTI EQU *         HONESTY SECTION 
      CLA 
      STA EQA12,I   ZERO OUTPUT COUNTER 
      STA EQT13,I   AND COMPL/CONT PNTR 
HNST  LDB EQT7,I    PICKUP BUF ADDR 
      CLE,ERB       CONVT TO CHAR ADDR
HF1   STF 0         SET FLAG FOR 1ST PASS 
      JMP HLDC      GO LOAD CHAR
HNXTC SEZ,CME       INCR WORD ADDR
      INB 
HLDC  LDA B,I       LOAD WORD CONTAINING CHAR 
      SEZ,RSS       SKIP IF CHAR IN RIGHT HALF
      ALF,ALF       ROTATE
      AND M0177     MASK OFF LEFT HALF
      CPA CR        CARRIAGE RETURN ? 
      JMP PRCR      YES - GO PROCESS
      CPA LF        LINE-FEED ? 
      JMP PRLF      YES - GO PROCESS
      CPA PE        PAGE EJECT ?
      JMP PRPE      YES - GO PROCESS
HF2   SFC 0         LAST CHARACTER ACCEPTED ? 
      JMP OUTHC 
      JSB TIME      NO - GO WAIT
      JMP CHTOT     TIMED OUT GO SET BIT AND EXIT 
OUTHC OTA 0         OUTPUT THE CHARACTER
HC1   STC 0,C 
      ISZ EQA12,I   BUMP OUTPUT COUNTER 
      ISZ EQT9,I    ANY LEFT ?
      JMP HNXTC     YES 
      CLA 
      STA EQA12,I   CLEAR OUTPUT COUNTER
HDONE LDA EQT13,I   LOAD FLAG TO CHOOSE EXIT
      SSA           SET ? 
      JMP CA12,I    YES - RET THRU CONTINUATOR
      JMP EXIT0     NO - TAKE OPER INIT EXIT
* 
PRCR  CLA           CAR. RETURN PROCESSING
      STA EQA12,I   CLEAR OUTPUT COUNTER
      LDA CRCOD     LOAD CR CODE
      JMP SETEO     OUTPUT THE CR CODE, SAVE E
* 
PRLF  LDA SSLT      LOAD LINE-FEED CODE 
      JMP SETEO     OUTPUT LF CODE, SAVE E
* 
PRPE  CLA           PAGE EJECT PROCESSING 
      STA EQA12,I   CLEAR OUTPUT PROCESSING 
      LDA EQT5,I    LOAD PRINTER STATUS 
      IOR BIT6      SET TOF 
      STA EQT5,I
      LDA PEJEC     LOAD PAGE EJECT CODE
      SKP 
SETEO JSB TIME      WAIT FOR CHARACTER TO GO OUT
      JMP CHTOT     TIME OUT GO EXIT
      ISZ EQT9,I    BUMP COUNT
      NOP 
      SEZ,CME       CONVERT BUFF ADDR TO CHAR ADDR
      INB           AND PRESERVE RH/LH KEY
      ELB 
      STB EQT7,I    AND SAVE FOR NEXT PASS
      JSB POUT      OUTPUT DESIRED OUTPUT CODE
      JMP HDONE     TAKE APPROPIATE EXIT
* 
* 
HNSTC EQU *         CONTINUATION SECTION
      LDA EQT13,I   SET CONTINUATION FLAG 
      IOR BIT15     SIGN IMPLIES CONTINUATION 
      STA EQT13,I   USED TO CHOOSE EXIT RETURN
      LDA EQT11,I   DID UNIT TIME OUT 
      AND D8        DURING CHARACTER TIME OUT ? 
      SZA 
      JMP GOON      YES, GO BACK AND OUTPUT THE REST
      LDA EQA12,I   LAST LINE ENDED BY CR ? 
      SZA           CHECK CHARACTER COUNT 
      JSB BLOUT     NO - OUTPUT BLANKS TO SET PNTR
GOON  LDA EQT11,I   ZERO OUT THE TIME OUT FLAG
      AND M7767     AND SAVE
      STA EQT11,I   FOR NEXT TIME 
      LDA EQT9,I
      SZA,RSS       MORE DATA TO OUTPUT?
      JMP DONE      NO, EXIT - COMPLETE 
      ISZ CA12      BUMP RETURN FOR CONTINUATION
      JMP HNST      YES - GO START OVER 
* 
BLOUT NOP 
      JSB CHK13     CHECK TO SEE IF BLANK COUNT IS KEPT 
      LDB EQA12,I   OUTPUT BLANKS TO PUT CHAR 
      CMB,INB       IN RIGHT PLACE FOR PRINTER
      STB BCNT      SET UP OUTPUT COUNT 
LDBL  LDA BLANK     LOAD ASCII BLANK
OTHC1 OTA 0         OUTPUT IT 
HC2   STC 0,C 
      JSB TIME      GO WAIT FOR CHAR
      JMP BLTOT     TIMED OUT GO PROCESS
      ISZ BCNT      BUMP COUNTER
      JMP LDBL      DO ANOTHER
      LDA EQT13,I   RESTORE BLANK COUNT 
      AND M7777 
      STA EQA12,I 
      LDA EQT13,I   RESET EQT13 
      AND BIT15 
      STA EQT13,I 
      JMP BLOUT,I   RETURN
CHK13 NOP           CHECK FOR BLANK COUNT SAVED 
      LDA EQT13,I 
      AND M7777 
      SZA           IS BLANK COUNT SAVED
      JMP CHK13,I   YES, RETURN 
      LDA EQA12,I   NO, SAVE IT 
      IOR EQT13,I 
      STA EQT13,I 
      JMP CHK13,I 
* 
BLTOT LDB BCNT      SAVE BLANK COUNT
      CMB 
      STB EQA12,I   FOR CONTINUATION
      ISZ CA12      TAKE NORMAL EXIT
      JMP CA12,I
BCNT  NOP 
* 
CHTOT EQU * 
      ELB           SAVE CHARACTER POSITION 
      STB EQT7,I    FOR NEXT PASS 
      LDA EQT11,I 
      IOR D8        SET HNSTI CHAR TIMEOUT BIT
      STA EQT11,I   AND SAVE
      JMP HDONE     TAKE PROPER EXIT
      SKP 
*     LINE SLEWING ROUTINE
      SPC 2 
SLEW  NOP 
      LDB EQT7,I    LOAD A & B WITH # OF
      LDA B         LINES TO SLEW 
      ADB ND16      SUB 16 TO SEE IF LINE COUNT 
      SSB,INB       IS GREATER THAN 15
      JMP SLW1      LE 15 LINES, GO OUTPUT
      STB EQT7,I    STORE # OF LINES LEFT TO SLEW 
      LDA EQT11,I   SET SLEW STATUS 
      IOR BIT2
      STA EQT11,I 
      LDA D15       SLEW 15 LINES 
SLW1  IOR BIT15     SET PAPER COMMAND BIT 
      JSB POUT      OUTPUT SLEW CODE
      JMP SLEW,I
      SPC 10
*     SUBROUTINE TO OUTPUT CONTENTS OF A REGISTER 
      SPC 2 
POUT  NOP 
      OTA 0         OUTPUT WORD IN A REG
      STC 0,C 
      JMP POUT,I
      SKP 
*     CONSTANTS 
      SPC 2 
M0001 OCT 1 
M0037 OCT 37
M0077 OCT 77
M0177 OCT 177 
M1001 OCT 100001
M1401 OCT 140001
M1770 OCT 17700 
M1777 OCT 17777 
M7637 OCT 177637
M7767 OCT 177767
M7740 OCT 177740
M7772 OCT 177772
M7775 OCT 177775
M7776 OCT 177776
M7777 OCT 77777 
HIBYT OCT 177400
CR    OCT 15
LF    OCT 12
PE    OCT 14
      SPC 2 
D2    DEC 2 
D3    DEC 3 
D4    DEC 4 
D6    DEC 6 
D8    DEC 8 
D12   DEC 12
D15   DEC 15
ND16  DEC -16 
ND70  DEC -70 
ND100 DEC -100
B100  OCT 100 
B200  OCT 200 
B603  OCT 603 
B1100 OCT 1100
B3000 OCT 3000
      SPC 2 
BIT1  OCT 2 
BIT2  OCT 4 
BIT6  EQU B100
BIT7  EQU B200
BIT10 OCT 2000
BIT15 OCT 100000
      SPC 2 
FUN11 EQU B1100 
SSAPE OCT 100102
SSLT  EQU M1001 
CVFU  OCT 100100
PEJEC EQU CVFU
SUPLT EQU BIT15 
CRCOD EQU BIT15 
BLANK OCT 40
STAR  OCT 25000 
DOUBL OCT 30000 
EJECT OCT 30400 
      SKP 
A     EQU 0 
B     EQU 1 
EQT1  EQU 1660B 
EQT5  EQU EQT1+4
EQT6  EQU EQT5+1
EQT7  EQU EQT6+1
EQT8  EQU EQT7+1
EQT9  EQU EQT8+1
EQT10 EQU EQT9+1
EQT11 EQU EQT10+1 
EQA12 EQU 1771B 
EQT13 EQU EQA12+1 
      END 
                                                                                                                                                              