IDENT ABC,PRS PERIPH BASE MIXED NOLABEL I SST *COMMENT AUTOLOAD BUFFER CONTROLLER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE ABC - AUTOLOAD BUFFER CONTROLLER. SPACE 4,10 ***** ABC - AUTOLOAD BUFFER CONTROLLER. * P. D. HAAS. 73/08/21. SPACE 4,10 *** *ABC* PROVIDES FOR A DEADSTART AUTOLOAD OF DISK * OR TAPE CONTROLWARE, FROM A CARD READER. WHEN THE LOAD * SEQUENCE IS COMPLETE, A *CTI* DEADSTART IS INITIATED * ON THE CHANNEL TO WHICH CONTROLWARE WAS LOADED. SPACE 4,10 *** CARD DECK STRUCTURE. * * * ABC (PUNCHB BINARY) * 7/8/9 (EOR) * MTSS FIRMWARE * 7/8/9 (EOR) OR * 6/7/8/9 (EOI) BUT NOT BOTH SPACE 4,10 *** DEAD START PANEL SETTING. * * CC = CARD READER CHANNEL. * E = CARD READER EQUIPMENT. * TT = TAPE/DISK CHANNEL. * U = UNIT NUMBER. * * SEE OPERATORS GUIDE FOR DESCRIPTION OF WORD 13. * * * WORD VALUE * * 0001 75CC * 0002 77CC * 0003 E000 * 0004 0000 * 0005 77CC * 0006 1400 * 0007 74CC * 0010 71CC * 0011 7664 * 0012 00TT * 0013 IFNN * 0014 026U (TAPE) OR 03UU (DISK) DEADSTART FUNCTION SPACE 4,10 *** COLDSTART PROCEDURE. * * 1. SET UP DEADSTART PANEL. * 2. INSERT DECK IN CARD READER. * 3. STOP AND MASTER CLEAR TAPE CONTROLLER. * 4. HIT DEADSTART SWITCH. * 5. START CARD READER. * 6. PUSH MEMORY RELOAD. * 7. READY CARD READER. SPACE 4,10 ** ASSEMBLY CONSTANTS. CSLA EQU 7673 *ABC* LOAD ADDRESS SPACE 4,10 **** DIRECT LOCATION ASSIGNMENTS. ST EQU 21 - 22 CARD STATUS T8 EQU 23 SCRATCH T9 EQU 24 SCRATCH JA EQU 75 - 77 JUMP ADDRESSES **** TITLE MACRO DEFINITIONS. SPACE 4,10 ** MACRO DEFINITIONS (BORROWED FROM COMPCHI). * * MODIFIED TO ALLOW LABELED REMOTE SEQUENCES. ** CHIM - REDEFINE M-TYPE CHANNEL INSTRUCTIONS. * * * CHIM OPC,CODE * ENTRY *OPC* = INSTRUCTION MNEMONIC. * *CODE* = OPERATION CODE. CHIM MACRO OPC,CODE PURGMAC OPC OPC. PPOP 7,CODE OPC MACRO M,D LOCAL A A OPC. M,0 CT_D RMT CON A RMT OPC ENDM CHIM ENDM CHIM AJM,6400 CHIM IJM,6500 CHIM FJM,6600 CHIM EJM,6700 CHIM IAM,7100 CHIM OAM,7300 CHIM FNC,7700 CHIN SPACE 4,10 ** CHIN - REDEFINE N-TYPE CHANNEL INSTRUCTIONS. * * * CHIN OPC,CODE * ENTRY *OPC* = INSTRUCTION MNEMONIC. * *CODE* = OPERATION CODE. * * NOTE BIT 2**5 SET ON ALL *DCN* INSTRUCTIONS. CHIN MACRO OPC,CODE PURGMAC OPC OPC. PPOP 4,CODE OPC MACRO D LOCAL A A OPC. 0 CT_D RMT CON A RMT OPC ENDM CHIN ENDM CHIN IAN,7000 CHIN OAN,7200 CHIN ACN,7400 CHIN DCN,7540 CHIN FAN,7600 CHTB SPACE 4,10 ** CHTB - DEFINE CHANNEL TABLE. * CHANNEL TABLE IS TERMINATED BY A ZERO WORD. * * * CHTB D * ENTRY *D* = NAME OF CHANNEL TABLE. CHTB MACRO D CT_D BSS 0 CT_D HERE CON 0 TERMINATE TABLE CHTB ENDM SPACE 4,10 ** COMMON DECKS. *CALL COMPMAC *CALL COMSDSL *CALL COMSPIM TITLE PRESET. PRS SPACE 4,10 ORG CSLA PRS LDC CTCH SET CHANNEL TABLE ADDRESS STD T8 LDD 10 MODIFY CHANNEL INSTRUCTIONS RJM MCI IJM PRS1,CH DCN CH PRS1 FNC 1300,CH CHECK CARD READER STATUS ACN CH IAN CH DCN CH LPN 3 LMN 1 NJN PRS1 IF BUSY OR NOT READY FNC 1500,CH ACN CH LDN 2 IAM ST,CH READ CARD STATUS LDC 120-2 IAM JA,CH LOAD NEXT BLOCK PRSA EQU *-1 DCN CH LDC 120-5 RAM PRSA ADVANCE LOAD ADDRESS LDD ST LPN 37 CHECK STATUS LMN 7 NJN PRS1 IF NOT EOR LJM ABC ENTER MAIN ROUTINE MCI SPACE 4,10 ** MCI - MODIFY CHANNEL INSTRUCTIONS. * * ENTRY (A) CHANNEL NUMBER. * (T8) = CHANNEL TABLE ADDRESS. * * USES T1, T9. MCI1 STD T9 SET INSTRUCTION ADDRESS AOD T8 LDD T1 MODIFY CHANNEL INSTRUCTION RAI T9 MCI2 LDI T8 NJN MCI1 IF NOT END OF CHANNEL TABLE MCI SUBR ENTRY/EXIT LPN 37 STD T1 UJN MCI2 ENTER LOOP SPACE 4,10 ** CHANNEL TABLE. CHTB CH ERRNG 7777-* BSS 10000-* CON PRS-1 TITLE MAIN ROUTINE. ABC SPACE 4,10 LOC 100-3 JA CON CPT,OFC,OCD SUBROUTINE ADDRESSES REFERENCED AT *ABCG* ABC LDC CTCC SET CARD READER CHANNEL TABLE STD T8 LDD 10 MODIFY CARD READER CHANNELS RJM MCI LDC CTDC SET CONTROLLER CHANNEL TABLE STD T8 LDD 12 MODIFY CONTROLWARE LOAD CHANNELS RJM MCI LDD T1 ZJN ABC3 IF AUTOLOAD TO CHANNEL 0 SBN 12 MJN ABC1 IF LOADING TO CHANNEL WITH PP SBN 20-12 MJN ABC3 IF LOADING TO CHANNEL 12 OR 13 SBN 32-20 PJN ABC3 IF LOADING TO CHANNEL 32 OR 33 ABC1 AOM ABCA FLAG PP MOVED AJM. ABC2,13 IF CARD READER NOT ON CHANNEL 13 SOM ABCB MOVE PP TO CHANNEL 12 SOM ABCC SOM ABCD SOM ABCE+2 ABC2 LDN 3 MOVE PP OAM ABCE,DC ABC3 DCN DC FNC 414,DC INITIATE AUTOLOAD ACN DC ABC4 FNC 1300,CC GET CARD READER STATUS ACN CC IAN CC DCN CC LPN 3 LMN 1 NJN ABC4 IF NOT READY OR BUSY FNC 1500,CC ACN CC LDC 120 IAM BUF,CC READ CARD DCN CC LDM BUF CHECK WORD COUNT SHN -6 ZJN ABC5 IF END OF DATA STD T8 CONVERT WORDS TO BYTES SHN 2 RAD T8 ABCG LJM 0,JA CHECK FOR 7700 TABLE * LJM 0,JA+1 (IF 5200 TABLE IS EXPECTED) * LJM 0,JA+2 (IF READING FULL CARDS) ABC5 LDM BUF CHECK STATUS LPN 37 LMN 7 ZJN ABC6 IF EOR LMN 17&7 NJN * IF NOT EOI ABC6 DCN DC LDN 77 SBN 1 WAIT INITIALIZATION COMPLETE NJN *-1 FNC 12,DC REQUEST GENERAL STATUS ACN DC IAN DC DCN DC SHN 6 MJN * IF ALERT FLAG SET FNC 0,CC RELEASE CARD READER LDN 1 STD T8 FNC 1700,CC CLEAR CONVERTER LDD 13 MOVE PARAMETER WORD TO PANEL IMAGE STM DSPA+13 LDD 14 MOVE DEADSTART FUNCTION STM DSPA+6 SHN -6 LMN 3 ZJN ABC7 IF DISK DEADSTART LCN 10-3 CLEAR OPPOSITE RESERVES ABC7 ADN 10 ISSUE OPERATION COMPLETE FAN DC ABCA LDN 0 * LDN 1 (PP ON DEADSTART CHANNEL) ZJN ABC8 IF NO PP ON DEADSTART CHANNEL LDN 3 MOVE PP BACK TO DEADSTART CHANNEL ABCB OAM. ABCF,13 * OAM. ABCF,12 (CARD READER ON CHANNEL 13) ACN DC ABCC DCN. 13 * DCN. 12 (CARD READER ON CHANNEL 13) ABCD ACN. 13 * ACN. 12 (CARD READER ON CHANNEL 12) LDC LDNI+2 MODIFY PANEL IMAGE TO MOVE PP STM DSPA+1 LDC OAMI LMD T1 STM DSPA+2 * MOVE DEADSTART PANEL IMAGE TO DIRECT CELLS. ABC8 LDM DSPA,T8 STI T8 AOD T8 LMN 21 NJN ABC8 IF NOT END OF PANEL IMAGE STD 21 ACN CC * LDN 0 LJM 1 EXECUTE DEADSTART PANEL ABCE CON 0 LCN 0 IAM. 0,13 ABCF CON 0 LCN 0 IAM 0,DC CPT SPACE 4,10 ** CPT - CHECK FOR PREFIX TABLE. * * ENTRY (T8) = NUMBER OF DATA BYTES ON THE CURRENT CARD. * * EXIT (*ABCG*) IS UPDATED. * TO *OCD* IF THIS IS NEITHER A PREFIX NOR PPU TABLE. * TO *OCD2* IF IT IS A PREFIX TABLE. * TO *OFC1* IF IT IS NOT A PREFIX TABLE. CPT BSS 0 ENTRY AOM ABCG INCREMENT JUMP ADDRESS LDD T8 SBK 17*5 NJN CPT1 IF NOT A PREFIX OR PPU TABLE LDM BUF+2 LMC 7700 NJN OFC1 IF NOT A PREFIX TABLE LDM BUF+3 SBN 16 ZJN OCD2 IF IT IS A PREFIX TABLE CPT1 AOM ABCG INCREMENT THE JUMP ADDRESS * UJN OCD OUTPUT THE CARD OCD SPACE 4,10 ** OCD - OUTPUT THE CARD. * * ENTRY (T8) = THE NUMBER OF DATA BYTES ON THE CURRENT CARD. * * EXIT DATA SENT TO CONTROLLER. * TO *ABC4* OCD BSS 0 ENTRY LDD T8 OAM BUF+2,DC LOAD BUFFER CONTROLLER OCD1 NJN * IF NOT ALL DATA TRANSMITTED, HANG OCD2 LJM ABC4 READ NEXT CARD OFC SPACE 4,10 ** OFC - OUTPUT THE FIRST CARD. * * ENTRY (T8) = THE NUMBER OF DATA BYTES ON THE CURRENT CARD. * * EXIT (*ABCG*) UPDATED. * DATA SENT TO CONTROLLER. * TO *OCD1*. OFC1 LMC 5200&7700 NJN CPT1 IF NOT A PPU TABLE OFC BSS 0 ENTRY AOM ABCG INCREMENT THE JUMP ADDRESS LCN 5 SKIP 5200 TABLE ADD T8 OAM BUF+7,DC LOAD BUFFER CONTROLLER UJN OCD1 CHECK TRANSMISSION SPACE 4,10 * DEADSTART PANEL IMAGE. DSPA EQU *-1 CON 0 CON 0 CON 17 DCN DC FNC 260,DC ACN DC IAM 7301,DC CON 0 CON 310 CON 0 CON 0 CON 0 CON 0 IAM. 0,12 BUF BSS 0 SPACE 4,10 ** CHANNEL TABLES. CHTB CC CHTB DC END