      JMP *+4 
      STB ASCNO 
      LDB ADTIM 
      JSB NOOUT 
SKRDT LDA SAVEA 
      CPA ERC02 
      JMP CNT04 
CNT01 LDA BWCNT          PRINT BWCNT IF #0
      SZA,RSS 
      JMP CNT02 
      STA ASCNO 
      JSB CTHED 
      LDB ACT01 
      JSB NOOUT 
CNT02 LDA BSCNT          PRINT BSCNT IF#0 
      SZA,RSS 
      JMP CNT03 
      STA ASCNO 
      JSB CTHED 
      LDB ACT02 
      JSB NOOUT 
CNT03 LDA HSCNT          PRINT HSCNT IF#0 
      SZA,RSS 
      JMP CNT04 
      STA ASCNO 
      JSB CTHED 
      LDB ACT03 
      JSB NOOUT 
CNT04 LDA BCCNT          PRINT BCCNT IF#0 
      SZA,RSS 
      JMP CNT05 
      STA ASCNO 
      JSB CTHED 
      LDB ACT04 
      JSB NOOUT 
CNT05 LDA CRCNT          PRINT CRCNT IF > 1 
      SZA,RSS 
      JMP ENDCT 
      CPA P0001          A=1? 
      JMP ENDCT          YES, DO NOT PRINT. 
      STA ASCNO 
      JSB CTHED 
      LDB ACT05 
      JSB NOOUT 
ENDCT LDA SAVEA 
      SZA,RSS 
      JMP CARDR 
      CPA BTM01          A=2? 
      JMP MON01          YES,BAD WORD 
      CPA BTM00          A=1? 
      JMP MON01          YES, BAD WORD ON LAST CARD 
      SSA                ERROR CODE?
      JMP MON02          YES
      CPA ERC02 
      JMP ALLOK          JUMP IF NORM EOD 
      ISZ ERCNT          INC. ERR. COUNTER
      NOP                IN CASE ERCNT=0
      ADA BTM15          GIVE ERROR FLAG
      JMP MON03          JUMP TO COUNT TEST 
ALLOK CLA 
      JMP MON03          JUMP TO COUNT TEST 
MON01 ADA BTM15          BAD WORD (ON LAST CARD)
      CCB 
      STB BCFLG          BCFLG=-1 
      ISZ ERCNT          INCREMENT ERROR COUNTER
      NOP                IN CASE ERCNT=0
MON03 LDB FLCNT          COUNT TEST 
      CPB RFCNT          COUNTS EQUAL?
      JMP TSTCD,I        YES,RETURN 
      SZA                TEST OTHERWISE OKAY? 
      JMP *+3            NO 
      LDA ERC92 
      ISZ ERCNT          INC ERR COUNTER
      STA SAVEA          SAVE CODE
      CLA,CLE            SET UP FOR OUTPUT
      LDB FLCMS 
      JSB 127B,I         OUTPUT MESSAGE 
      CLA,INA 
      LDB FLCNT 
      JSB 127B,I         OUTPUT NUMBER
      LDA SAVEA 
      JMP TSTCD,I 
* 
MON02 JSB UTILR 
      JMP FIXRD          RETURN TO READ CARD. 
* 
* SUBROUTINE TWONO OUTPUTS MESSAGE AND TWO NUMBERS
* TO ENTER: 
*     B=ADDRESS OF MESSAGE
* ASCNO=FIRST NUMBER
* ASCNU=SECOND NUMBER 
* 
* 
* SUBROUTINE NOOUT OUTPUTS MESSAGE AND NUMBER.
* TO ENTER: 
*     B=ADDRESS OF MESSAGE
* ASCNO=THE NUMBER
* 
TWONO NOP 
      LDA RET02 
      STA RETRN 
      JMP *+4 
NOOUT NOP 
      LDA RET01 
      STA RETRN 
      CLA,CLE 
      JSB 127B,I
      CLA,INA 
      LDB ASCNO 
      JSB 127B,I
RETRN OCT 0 
      LDB ASCNU 
      JSB 127B,I
      JMP TWONO,I 
RET01 JMP NOOUT,I 
RET02 NOP 
* 
* ROUTINE TO PRINT PART OF A MESSAGE
* 
CTHED NOP 
      LDB AHEAD 
      CLA,CLE 
      JSB 127B,I
      JMP CTHED,I 
* 
* UTILITY ERROR MESSAGE OUTPUT
* A=ERROR CODE FROM READR 
UTILR NOP 
      ADA BTM15 
      ADA STERM 
      LDB 0B,I
      CLA,CLE 
      JSB 127B,I
      JMP UTILR,I 
* 
      ORG 2000B 
* 
* 
TST09 NOP 
      LDA INTSW 
      AND BTM09          ISOLATE BIT 9
      SZA                TYPE OF DIAGNOSTIC 
      JMP TROTS          TROUBLESHOOT 
      LDB ANESS          REPLACE "S" FROM TIME BEFORE 
      STB ADESS,I 
      LDA ERCNT          A=ERCNT
      SZA,RSS 
      JMP RBELL          A=0 IF ERCNT=0 
      CPA P0001          PLURAL OR SING IN MESS?
      JMP *+2            SINGULAR 
      JMP *+3            PLURAL 
      LDB NOESS 
      STB ADESS,I 
      ADA NBASE          MAKE INTO ASCII
      STA AROPR,I        STORE FOR OUTPUT 
      LDA BTM00          A=1 IF ERCNT#0 
      JMP *+2 
TROTS LDA BTM01          A=2 IF TROUBLESHOOT
RBELL STA ATEMP 
      LDB MBLNO          B=NO. TIMES TO RING BELL 
      CMB,INB            MAKE NEGATIVE
      STB BLCNT          STORE IN BLCNT 
DOBEL LDA TIMEC     SET ON BELL BIT 
      LDB BELLS     COMMAND 
OTB01 OTB *-*       FOR ONE MS
      JSB 121B,I    WAITING LOOP
      CLB           SET OFF BELL BIT
OTB02 OTB *-*       COMMAND, THEN 
      LDA BLTIM     WAIT FOR
      JSB 121B,I    20 MS BETWEEN RINGS.
      ISZ BLCNT 
      JMP DOBEL 
      LDA ATEMP 
      JMP TST09,I 
* 
      HED SUBROUTINE IOTST
* 
* 
***** SUBROUTINE IOTST
* 
* 
* 
* NO ARGUMENTS ARE REQUIRED 
* 
* 
* ON RETURN 
* 
* A = ERROR CODE (A=0 IF NO ERRORS) 
* 
* 
* ERROR CODES 
* 
* 000001(IEC01) = SFS AND SFC GIVE SAME RESULT
* 000002(IEC02) = FLAG NOT SET BY STF 
* 000003(IEC03) = FLAG NOT CLEARED BY CLF 
* 000004(IEC04) = CLC DOES NOT CLEAR CONTROL
* 000005(IEC05) = STC DOES NOT SET CONTROL
* 000006(IEC06) = PRESET DOES NOT SET FLAG
* 000007(IEC07) = PRESET DOES NOT CLEAR CONTROL 
* 000010(IEC08) = PRESET DOES NOT SET FLAG OR CLEAR CONTROL 
* 000011(IEC09) = CONTENTS OF CENTRAL INTERRUPT REGISTER BAD
* 000012(IEC10) = DEVICE COMMAND DOES NOT SET FLAG
* 000013(IEC11) = BITS STUCK ON 
* 000014(IEC12) = BITS STUCK OFF
* 000015(IEC13) = STATUS BITS LATCH 
* 000016(IEC14) = DATA BITS FLOAT 
* 
* 
*************** 
* 
* 
IOTST NOP 
* 
      CLF 0B
      CLC 0B
      LDA IRQIN 
      LDB SCVAL 
      STA 1B,I
* 
* 
***** TEST CLF, STF, SFS, SFC 
* 
* 
STF01 STF *-* 
SFS06 SFS *-* 
      JMP *+4       FLAG NOT SENT 
SFC02 SFC *-* 
      JMP *+5       FLAG IS SET 
      JMP IOT51     SFS AND SFC GIVE SAME RESULT
SFC05 SFC *-* 
      JMP IOT51          SFS AND SFC GIVE SAME RESULT 
      JMP IOT52     FLAG NOT SET BY STF 
* 
* 
CLF03 CLF *-* 
SFC03 SFC *-* 
      JMP *+4       FLAG NOT CLEAR
SFS07 SFS *-* 
      JMP *+5       FLAG IS CLEARED BY CLF
      JMP IOT51     SFS AND SFC GIVE SAME RESULT
SFS08 SFS *-* 
      JMP IOT51     SFS AND SFC GIVE SAME RESULT
      JMP IOT53     FLAG NOT CLEARED BY CLF 
* 
* 
STF02 STF *-* 
SFS09 SFS *-* 
      JMP IOT52     FLAG NOT SET BY STF 
* 
* 
***** TEST CLC, STC, IRQ CIRCUTS
* 
* 
CLF04 CLF *-* 
      STF 0B        TURN ON INTERRUPT SYSTEM
* 
CLC01 CLC *-* 
      JSB SIRQS 
      JMP *+2 
      JMP IOT54     CONTROL DOES NOT CLEAR
* 
STC01 STC *-* 
      JSB SIRQS 
      JMP IOT55     CONTROL DOES NOT SET
CLC02 CLC *-* 
      JSB SIRQS 
      JMP *+2 
      JMP IOT54     CONTROL DOES NOT CLEAR
* 
* 
***** PRESET TEST 
* 
* 
STC02 STC *-* 
      JSB SIRQS 
      JMP IOT55     CONTROL DOES NOT SET
CLF05 CLF *-* 
SFC04 SFC *-* 
      JMP IOT53     FLAG DOES NOT CLEAR 
      CLA,CLE 
      LDB IOTM1 
      CLF 0B
      JSB 127B,I
      HLT 44B 
      STF 0B
SFS10 SFS *-* 
      JMP *+5 
CLF06 CLF *-* 
      JSB SIRQS 
      JMP *+6 
      JMP IOT57     PRESET DOES NOT CLERA CONTROL 
CLF07 CLF *-* 
      JSB SIRQS 
      JMP IOT56     PRESET DOES NOT SET FLAG
      JMP IOT58     FLAG AND CONTROL BAD
* 
* 
***** TEST DEVICE COMMAND AND FLAG CIRCUITRY
* 
* 
      CLF 0B        DISABLE INTERRUPT 
      CLA,CLE 
      LDB IOTM2 
      JSB 127B,I
      HLT 66B 
SCC03 STC *-*,C 
      CLA,INA 
      JSB 121B,I
SFS11 SFS *-* 
      JMP IOT60     COMMAND DOES NOT SET FLAG 
* 
* 
***** TEST DATA BITS
* 
* 
      CLA 
      JSB IOBTS 
      SZA 
      JMP IOT61     DATA BITS STUCK ON
      CCA 
OTA01 OTA *-* 
      CLA,INA 
      JSB 121B,I
LIA11 LIA *-* 
      CPA MSK01 
      JMP *+6 
      XOR MSK01 
      AND MSK01 
      SZA 
      JMP IOT63     STATUS BITS LATCH 
      JMP IOT64     DATA BITS FLOAT 
      CCA 
      JSB IOBTS 
      CMA,SZA 
      JMP IOT62     BITS STUCK OFF
      CLA 
OTA02 OTA *-* 
      CLA,INA 
      JSB 121B,I
LIA12 LIA *-* 
      CPA MSK03 
      JMP IOT00     SUCESSFUL COMPLETION
      XOR MSK03 
      AND MSK01 
      SZA 
      JMP IOT63     STATUS BITS LATCH 
      JMP IOT64     DATA BITS FLOAT 
* 
* 
***** REPORT SUCESSFUL COMPLETION 
* 
* 
IOT00 CLA 
      JMP IOTEX 
* 
* 
***** ERROR CODE REPORTING
* 
***** SFS AND SFC GIVE SAME RESULT
* 
IOT51 LDA IEC01 
      JMP IOTEX 
* 
***** FLAG NOT SET BY STF 
* 
IOT52 LDA IEC02 
      JMP IOTEX 
* 
***** FLAG NOT CLEARED BY CLF 
* 
IOT53 LDA IEC03 
      JMP IOTEX 
* 
***** CLC DOES NOT CLEAR CONTROL
* 
IOT54 LDA IEC04 
      JMP IOTEX 
* 
***** STC DOES NOT SET CONTROL
* 
IOT55 LDA IEC05 
      JMP IOTEX 
* 
***** PRESET DOES NOT SET FLAG
* 
IOT56 LDA IEC06 
      JMP IOTEX 
* 
***** PRESET DOES NOT CLEAR CONTROL 
* 
IOT57 LDA IEC07 
      JMP IOTEX 
* 
***** PRESET DOES NOT SET FLAG AND DOES NOT CLEAR CONTROL 
* 
IOT58 LDA IEC08 
      JMP IOTEX 
* 
***** CONTENTS OF CENTRAL INTERRUPT REGISTER ARE BAD
* 
IOT59 LDA IEC09 
      JMP IOTEX 
* 
***** DEVICE COMMAND DOES NOT SET FLAG
* 
IOT60 LDA IEC10 
      JMP IOTEX 
* 
***** BITS STUCK ON 
* 
IOT61 LDA IEC11 
      JMP IOTEX 
* 
***** BITS STUCK OFF
* 
IOT62 LDA IEC12 
      JMP IOTEX 
* 
***** STATUS BITS LATCH 
* 
IOT63 LDA IEC13 
      JMP IOTEX 
* 
***** DATA BITS FLOAT 
* 
IOT64 LDA IEC14 
IOTEX CLF 0B
      JMP IOTST,I 
* 
* 
***** INTERNAL SUBROUTINES
* 
***** SUBROUTINE SIRQS (SKIP-IRQ-SET) 
* 
SIRQS NOP 
      CLA 
      STA IRQFL 
STF03 STF *-* 
      CLA,INA 
      JSB 121B,I
      LDA IRQFL 
      SZA,RSS 
      JMP SIRQS,I   NOT SKIP
* 
      ISZ SIRQS     SET SKIP
      LIA 4B        GET CIR VALUE 
      CPA SCVAL 
      JMP SIRQS,I   SKIP
      JMP IOT59     CENTRAL INTERRUPT REG PROBLEM 
* 
* 
* 
* 
***** SUBROUTINE IOBTS
* 
* 
IOBTS NOP 
OTA03 OTA *-* 
SCC04 STC *-*,C 
      CLA,INA 
      JSB 121B,I
SFS12 SFS *-* 
      JMP IOT60 
LIA13 LIA *-* 
      JMP IOBTS,I 
* 
* 
IOTM1 DEF AIOT1 
IOTM2 DEF AIOT2 
      HED SUBROUTINE READR
      HED SUBROUTINR BCRPT
* 
***** BAD COLUMN REPORT SUBROUTINE
* 
BCRPT NOP 
      LDA RWADD 
      STA PNTR1 
      LDA IWADD 
      STA PNTR2 
      LDA RFCNT 
      CMA,INA 
      STA CNTR1 
      CLA 
      STA CCNT1 
      STA CCNT2 
BCRP1 LDA CCNT1 
      CLE,INA 
      CPA P0010 
      CLA,CCE 
      STA CCNT1 
      SEZ 
      ISZ CCNT2 
      LDA CCNT2 
      ALF,ALF 
      ADA CCMSK 
      ADA CCNT1 
      STA BCM01 
      LDA PNTR1,I 
      XOR PNTR2,I 
      SZA,RSS 
      JMP BCRP9 
      ALF 
      STA ERRWD 
      LDA PNTR1,I 
      ALF 
      STA REFWD 
      CLA 
      STA CNTR9 
      LDA N0003 
      STA CNTR8 
      LDA BCOAD 
      STA PNTR9 
BCRP6 LDA ERRWD 
      CLE,ELA 
      STA ERRWD 
      LDA REFWD 
      RAL 
      STA REFWD 
      SEZ 
      JMP *+5 
      LDB BCC55 
      SLA 
      LDB BCC53 
      JMP *+4 
      LDB BCC61 
      SLA 
      LDB BCC60 
      STB PNTR9,I 
      ISZ PNTR9 
      ISZ CNTR8 
      JMP BCRP6 
      ISZ PNTR9 
      ISZ CNTR9 
      LDA CNTR9 
      CPA P0005 
      JMP BCRP7 
      LDB N0004 
      CPA P0004 
      RSS 
      INB,RSS 
      ISZ PNTR9 
      STB CNTR8 
      JMP BCRP6 
BCRP7 CLA,CCE 
      LDB BCMAD 
      JSB 127B,I
BCRP9 ISZ PNTR1 
      ISZ PNTR2 
      ISZ CNTR1 
      JMP BCRP1 
      JMP BCRPT,I 
* 
      HED  SUBROUTINE READR 
***** SUBROUTINE READR
* 
* ARGUMENTS 
* 
* RWADD IS ADDRESS OF 1ST REFFERENCE WORD 
* IWADD IS ADDRESS OF 1ST TEST DATA WORD
* READT IS TIME ALLOWED FOR COMPLETION OF READ
*          AS A NEGATIVE NUMBER OF UNITS OF 10T 
* 
* DATA RETURNED 
* 
* A     IS ERROR CODE (=0 IF NO ERRORS) 
* B     IS READ TIME IN UNITS OF 10T
* FLCNT IS COUNT OF FLAGS DETECTED
* BWCNT IS COUNT OF DATA WORDS WITH ANY TYPE OF ERRORS
* BSCNT IS COUNT OF DATA WORDS WITH ANY BAD STATUS
* HSCNT IS COUNT OF DATA WORDS WITH BAD HOPPERS STATUS
* BCCNT IS COUNT OF DATA WORDS WITH BAD CHARACTERS
* 
* 
* ERROR CODES 
* 
* 100006(ERC99) = READ EXCEEDED TIME ALLOWED
* 
* BEFORE READ 
* 
* 100001(ERC90) = CK POWER HOPPER STACKER 
* 100002(ERC91) = REJECT HOPPER FULL
* 100003(ERC92) = PRESS READY 
* 100005(ERC93) = ILLEGAL READY STATUS
* 
* AT TIME OF 1ST FLAG 
* 
* 100004(ERC80) = PICK FAIL 
* 
* AFTER READ
* 
* 000003(ERC02) = END OF DECK NORMAL
* 000001(ERC03) = END OF DECK - BAD WORDS 
* 
* 000002(ERC01) = END OF CARD - BAD WORDS 
* 000000        = END OF CARD - NORMAL
* 
* 
* 
* 
* 
READR NOP 
      LDA RWADD 
      STA RWPTR 
      LDA IWADD 
      STA IWPTR 
      CLA 
      STA FLCNT 
      STA BWCNT 
      STA BSCNT 
      STA BCCNT 
      STA HSCNT 
      STA CRCNT 
      STA ECODE 
      STA 1B
OTB03 OTB *-* 
* 
***** MAKE CR READY 
* 
LIA01 LIA *-* 
      AND MSK01 
      CLB 
      CPA STS00 
      JMP *+2 
      JMP *+3 
      LDB ERC90 
      NOP 
      CPA STS01 
      LDB ERC91 
      CPA STS02 
      LDB ERC92 
      CPA STS03 
      JMP *+7 
      CPA STS06 
      JMP *+5 
      LDA 1B
      SZB,RSS 
      LDA ERC93 
      JMP READR,I 
* 
* 
***** PICK CARD 
* 
RDR10 CLB           ZERO TIME COUNTER 
SCC01 NOP 
* 
***** WAIT FOR DATA WORD
* 
SFC01 EQU * 
RDR11 SFC *-*       2T     1T+1C
      JMP RDR12 
      CLE           2T     1T+1C
      LDA 1B        2T     2T 
      ADA READT     2T     2T 
      SEZ           2T     1T+1C
      JMP RDR51 
      LDA OLT04,I   4T     8T-4C
      LDA 0B        2T     2T 
      ADB P0002     2T     2T 
      JMP RDR11     2T     1T+1C
*                                  20T    20T 
* 
***** PROCESS IST FLAG
* 
RDR12 LDA NZERO     2T     2T 
      CPA FLCNT     2T     2T 
      JMP *+2       2T     1T 
      JMP RDR13 
LCA01 LIA *-*,C     2T     1T+1C
      STA IWPTR,I   3T     3T 
      CPA RWPTR,I   3T     3T 
      JMP RDR31     2T     1T 
*                  16T    13T+3C
      AND MSK01     2T     2T 
      CPA STS03     2T     2T 
      JMP RDR71 
      LDA IWPTR,I   3T     3T 
      XOR RWPTR,I   3T     3T 
      AND MSK01     2T     2T 
      CPA NZERO     2T     2T 
      JMP *+3 
      LDA P0001     2T     2T 
      JMP *+2       2T     1T+1C
      LDA NZERO 
      ADA BSCNT     2T     2T 
      STA BSCNT     2T     2T 
      LDA IWPTR,I   3T     3T 
      XOR RWPTR,I   3T     3T 
      AND MSK03     2T     2T 
      CPA NZERO     2T     2T 
      JMP *+3 
      LDA P0001     2T     2T 
      JMP *+2       2T     1T+1C
      ADA BCCNT     2T     2T 
      STA BCCNT     2T     2T 
      LDA P0001     2T     2T 
      ADA BWCNT     2T     2T 
      STA BWCNT     2T     2T 
      LDA OLT02,I   4T     6T-2C
      LDA TTM08,I   8T     8T 
      ADB P0006     2T     2T 
*                                  60T    60T 
* 
      JMP RDR31     2T     1T+1C
* 
* 
***** PROCESS REMAINING FLAGS 
* 
LCA02 EQU * 
RDR13 LIA *-*,C     2T     1T,1C
      STA IWPTR,I   3T     3T 
      CPA RWPTR,I   3T     3T 
      JMP RDR31     2T     1T 
      XOR RWPTR,I   3T     3T 
      AND MSK01     2T     2T 
      CPA STS02     2T     2T 
      JMP *+3 
      LDA NZERO     2T     2T 
      JMP *+2       2T     1T+1C
      LDA P0001 
      ADA HSCNT     2T     2T 
      STA HSCNT     2T     2T 
      LDA IWPTR,I 
      XOR RWPTR,I 
      AND MSK01 
      CPA NZERO     2T     2T 
      JMP *+3 
      LDA P0001     2T     2T 
      JMP *+2       2T     1T+1C
      LDA NZERO 
      ADA BSCNT     2T     2T 
      STA BSCNT     2T     2T 
      LDA IWPTR,I   3T     3T 
      XOR RWPTR,I   3T     3T 
      AND MSK03     2T     2T 
      CPA NZERO     2T     2T 
      JMP *+3 
      LDA P0001     2T     2T 
      JMP *+2       2T     1T+1C
      LDA NZERO 
      ADA BCCNT     2T     2T 
      STA BCCNT     2T     2T 
      LDA P0001     2T     2T 
      ADA BWCNT     2T     2T 
      STA BWCNT     2T     2T 
      LDA OLT03,I   4T     7T-3C
      LDA TTM05,I   5T     5T 
      ADB P0006     2T     2T 
*                                  60T    60T 
* 
      JMP RDR31 
* 
RDR31 LDA IWPTR,I   3T     3T 
      AND MSK04     2T     2T 
      CPA STS04     2T     2T 
      JMP RDR61 
      CPA STS06     2T     2T 
      JMP RDR63 
* 
      LDA IWPTR     2T     2T 
      ADA P0001     2T     2T 
      STA IWPTR     2T     2T 
      LDA RWPTR     2T     2T 
      ADA P0001     2T     2T 
      STA RWPTR     2T     2T 
      LDA FLCNT     2T     2T 
      ADA P0001     2T     2T 
      STA FLCNT     2T     2T 
      LDA TTM05,I   5T     5T 
      LDA OLT06,I   4T    10T-6C
      ADB P0006     2T     2T 
      JMP RDR11     2T     1T+1C
* 
***** READ TIMED OUT
* 
RDR51 LDA ERC99 
      JMP READR,I 
* 
***** END OF DECK - END OF CARD 
* 
RDR61 ISZ FLCNT 
      LDA BSCNT 
      CPA HSCNT 
      JMP *+3 
      LDA BWCNT 
      JMP *+2 
      LDA BCCNT 
      SZA           BAD CHARACTERS ?
      JMP *+3 
      LDA ERC02 
      JMP READR,I 
      LDA ERC03 
      JMP READR,I 
* 
***** END OF CARD ONLY
* 
RDR63 ISZ FLCNT 
      LDA BWCNT 
      SZA 
      LDA ERC01 
      JMP READR,I 
* 
***** 
* 
RDR71 LDA ERC80 
      JMP READR,I 
* 
* 
      HED  SUBROUTINE DMARD 
* 
***** SUBROUTINE DMARD
* 
* 
* 
* ARGUMENTS 
* 
* RWADD IS ADDRESS OF 1ST REFFERENCE WORD 
* IWADD IS ADDRESS OF 1ST TEST DATA WORD
* ECCNT IS NO. OF DATA WORDS EXPECTED INCLUDING EOC WORD
* READT IS TIME ALLOWED FOR READ AS A NEGATIVE NUMBER OF UNITS OF 10T 
* 
* DATA RETURNED 
* 
* A     IS ERROR CODE (=0 IF NO ERRORS) 
* B     IS READ TIME IN UNITS OF 10T
* FLCNT IS COUNT OF FLAGS DETECTED
* BWCNT IS COUNT OF DATA WORDS WITH ANY TYPE OF ERRORS
* BSCNT IS COUNT OF DATA WORDS WITH BAD STATUS
* HSCNT IS COUNT OF DATA WORDS WITH BAD HOPPERS STATUS
* BCCNT IS COUNT OF DATA WORDS WITH BAD CHARACTERS
* 
* CRCNT IS COUNT OF DATA WORDS TRANSFERED WITH OUT DMA
* 
* 
* ERROR CODES 
* 
* 100006(ERC99) = READ TIMED OUT
* 
* 000004(ERC98) = DMA LOG NOT UP TO DATE
* 000005(ERC97) = DMA HARDWARE PROBLEM
* 000006(ERC96) = MORE THAN 128 WORDS IN READ 
* 000007(ERC70) = DMA CANNOT OPERATE IN I/O SLOT
* 000010(ERC95) = SRQ DETECTED WHEN BIT 15 = 0
* 
* BEFORE READ 
* 
* 100001(ERC90) = CK POWER HOPPER STACKER 
* 100002(ERC91) = EMPTY REJECT HOPPER 
* 100003(ERC92) = PRESS READY 
* 100005(ERC93) = ILLEGAL READY STATUS
* 
* AT TIME OF 1ST FLAG 
* 
* 100004(ERC80) = PICK FAIL 
* 
* AFTER READ
* 
* 000003(ERC02) = END OF DECK NORMAL
* 000001(ERC03) = END OF DECK - BAD WORDS 
* 000002(ERC01) = END OF CARD - BAD WORDS 
* 000000        = END OF CARD - NORMAL
* 
* 
* 
* 
* 
DMARD NOP 
      LDA RWADD 
      STA RWPTR 
      LDA IWADD 
      STA IWPTR 
      LDA ECCNT 
      STA DMACT 
      CMA 
      ADA IWPTR 
      STA LWPTR 
      LDA BUFLN 
      ADA ECCNT 
      CMA,INA 
      STA EXCNT 
      CLA 
      STA FLCNT 
      STA BWCNT 
      STA BSCNT 
                                                                                                                                                                                                                                                                                      