U2READ1

Table Of Contents
  • [00004] READ1,2501 CARD READ ROUTINE
u2read1.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:09 2020
 
Source File: \u2read1.asm 
READ1,2501 CARD READ ROUTINE
 
                             2 | *************************************************** U2M00020
                             3 | *TITLE- READ1                                     * U2M00030
                             4 | *STATUS- CHANGE LEVEL 000                         * U2M00040
                             5 | *FUNCTION/OPERATION-                              * U2M00050
                             6 | *     THIS 1130 SUBROUTINE OPERATES THE PRIMARY   * U2M00060
                             7 | *     2501 CARD READER.       IT INITIATES REQSTD * U2M00070
                             8 | *     OPERATIONS, PROCESSES OPERATION COMPLETE    * U2M00080
                             9 | *     INTERRUPTS,INITIATES EXITS TO USERS ERR.RTN.* U2M00090
                            10 | *     WHEN AN ERROR OR LAST CARD IS ENCOUNTERED   * U2M00100
                            11 | *                                                 * U2M00110
                            12 | *     IDENTIFYING FEATURES                        * U2M00120
                            13 | *       1)    ERROR PARAMETER                     * U2M00130
                            14 | *       2) PRIMARY 2501 ONLY                      * U2M00140
                            15 | *ENTRY POINTS-                                    * U2M00150
                            16 | *     1. READ1  CALL ENTRANCE FOR TEST OR READ    * U2M00160
                            17 | *               OPERATIONS.  E.G.  LIBF    READ1  * U2M00170
                            18 | *                                  DC      /1000  * U2M00180
                            19 | *                                  DC      IOBUF  * U2M00190
                            20 | *                                  DC      ERROR    U2M00200
                            21 | *     2. RE048  OPERATION COMPLETE INTERRUPT ENTRY* U2M00210
                            22 | *               POINT.                            * U2M00220
                            23 | *INPUT- NONE OTHER THAN FROM THE PARAMETERS IN    * U2M00230
                            24 | *     LIBF CALLING SEQUENCE.                      * U2M00240
                            25 | *OUTPUT- ROUTINE WILL TRANSFER 0 TO 80 COLS FROM  * U2M00250
                            26 | *     CARD TO I/O BUFFER AS SPECIFIED BY CALLING  * U2M00260
                            27 | *     SEQUENCE.  FORMAT IS 12 BITS PER BUFFER WORD* U2M00270
                            28 | *     LEFT JUSTIFIED.                             * U2M00280
                            29 | *EXTERNAL SUBROUTINES- NONE.                      * U2M00290
                            30 | *EXITS-                                           * U2M00300
                            31 | *  NORMAL-                                        * U2M00310
                            32 | *     1. RE180  IF NO PRE-OP ERROR HAS BEEN DE-   * U2M00320
                            33 | *               TECTED, THE EXIT FROM RE180 IS    * U2M00330
                            34 | *               TO THE CALLER AFTER THE REQUESTED * U2M00340
                            35 | *               2501 OPERATION HAS BEEN INITIATED * U2M00350
                            36 | *     2. RE348  THE EXIT FROM RE348 IS BACK TO THE* U2M00360
                            37 | *               CALLER VIA ILS04 AFTER OP COMPLETE* U2M00370
                            38 | *               PROCESSING HAS BEEN FINISHED.     * U2M00380
                            39 | *  ERROR-                                         * U2M00390
                            40 | *     1. RE180  IF A PRE-OP ERROR OR NOT READY    * U2M00400
                            41 | *               CONDITION IS DETECTED, SUBROUTINE * U2M00410
                            42 | *               WILL BRANCH TO HEX 0029 VIA RE180 * U2M00420
                            43 | *               AND DISPLAY ONE OF TWO CODES IN   * U2M00430
                            44 | *               ACCUMULATOR.                      * U2M00440
                            45 | *               4000 IS DISPLAYED IF 2501 IS NOT  * U2M00450
                            46 | *               READY.  4001 IS DISPLAYED IF AN   * U2M00460
                            47 | *               ERROR IS DISCOVERED IN CALLING    * U2M00470
                            48 | *               PARAMETERS OR AREAS REFERENCED BY * U2M00480
                            49 | *               THEM.                             * U2M00490
                            50 | *               IF A POST-OPERATIVE ERROR OR LAST * U2M00500
                            51 | *               CARD INDR IS DETECTED, THIS SUBR  * U2M00510
                            52 | *               EXITS TO THE USERS ERROR SUBR.    * U2M00520
                            53 | *               VIA RE360+1 AND RE370+1 RESPEC-   * U2M00530
                            54 | *               TIVELY                            * U2M00540
                            55 | *TABLES/WORK AREAS- NONE.                         * U2M00550
                            56 | *ATTRIBUTES- REUSABLE, CAN READ UP TO 80 COLUMNS  * U2M00560
                            57 | *               OF BINARY DATA.  IF A WORD COUNT  * U2M00570
                            58 | *               OF ZERO IS SPECIFIED, THE READ    * U2M00580
                            59 | *               OPERATION ACTS AS A FEED.         * U2M00590
                            60 | *NOTES- THIS SUBR CONTAINS NO WAIT INSTRUCTIONS.  * U2M00600
                            61 | *       THE 'SPEED' SUBR SHOULD NOT BE USED WITH  * U2M00610
                            62 | *       READ1, AS I/O BUFFER IS NOT FILLED WITH   * U2M00620
                            63 | *       INDICATOR BITS AS READING BEGINS.         * U2M00630
                            64 | *************************************************** U2M00640
                            65 |       LIBR                                          U2M00650
0000                        66 | 1130  ISS  04 READ1     4                           U2M00660
                            67 | *************************************************** U2M00670
                            68 | *             LOADER DEFINED LOCATIONS            * U2M00680
                            69 | *************************************************** U2M00690
0000 6932                   70 | READ1 STX   1 RE144+1    LIBF ENTRANCE              U2M00700
0001 6580 0000              71 | RE036 LDX  I1 0          LOADER STORES TV ADDR (+2) U2M00710
0003 7003                   72 |       MDX     RE060      BR TO PROCESS CALL         U2M00720
0004 0000                   73 | RE048 DC      0          OP CMPLTE INTERRUPT   (+4) U2M00730
0005 4C00 004FR             74 |       BSC  L  RE336      BR TO PROCESS INT          U2M00740
                            75 | *************************************************** U2M00750
                            76 | *             LIBF PROCESSING                     * U2M00760
                            77 | *************************************************** U2M00770
                            78 | *     THIS PORTION STORES CALLING SEQUENCE INFO   * U2M00780
                            79 | *     AND CHECKS THE DEVICE STATUS BEFORE ANY I/O * U2M00790
                            80 | *     OPERATION IS INITIATED. A CALLING ERROR OR  * U2M00800
                            81 | *     NOT READY 2501 CAUSES AN ERROR EXIT TO      * U2M00810
                            82 | *     LOCATION 41. IF THE OPERATION WILL CAUSE    * U2M00820
                            83 | *     INTERRUPT , THE ROUTINE IS SET BUSY AND THE * U2M00830
                            84 | *     IOCS COUNTER IS INCREMENTED TO INDICATE     * U2M00840
                            85 | *     INTERRUPT    PENDING.                       * U2M00850
                            86 | *************************************************** U2M00860
0007 D046                   87 | RE060 STO     RE324      SAVE ACC                   U2M00870
0008 282D                   88 |       STS     RE168      SAVE STATUS                U2M00880
0009 6A2B                   89 |       STX   2 RE156+1    SAVE XR2                   U2M00890
000A C100                   90 |       LD    1 0          XR1 HAS ADDR OF CALL+1     U2M00900
000B 180C                   91 |       SRA     12         IS FUNCTION TEST           U2M00910
000C 4C20 0012R             92 |       BSC  L  RE072,Z    BR IF NOT                  U2M00920
000E C035                   93 |       LD      RE228      TEST SUBR BUSY             U2M00930
000F 4818                   94 |       BSC     +-         SKIP IF BUSY               U2M00940
0010 7101                   95 |       MDX   1 +1         *ELSE EXIT TO CALL+3       U2M00950
0011 701D                   96 |       MDX     RE120      EXIT TO CALL+2             U2M00960
0012 9033                   97 | RE072 S       RE240      IS FUNCTION LEGAL          U2M00970
0013 4C20 0039R             98 |       BSC  L  RE192,Z    BR IF NOT                  U2M00980
0015 C02E                   99 | RE084 LD      RE228      IS SUBR BUSY               U2M00990
0016 4C20 0015R            100 |       BSC  L  RE084,Z    YES, LOOP                  U2M01000
0018 0831                  101 | RE096 XIO     RE288-1    IS DEVICE READY            U2M01010
0019 4C04 003BR            102 |       BSC  L  RE204,E    BR IF NOT                  U2M01020
001B C580 0001             103 |       LD   I1 1          OBTAIN WORD COUNT          U2M01030
001D 4818                  104 |       BSC     +-                                    U2M01040
001E 7005                  105 |       MDX     RE108      BR ON Z WD CNT             U2M01050
001F 4C28 0039R            106 |       BSC  L  RE192,Z+   BR IF WD CNT NEG           U2M01060
0021 9028                  107 |       S       RE276      0 THRU 80 IS LEGAL         U2M01070
0022 4C30 0039R            108 |       BSC  L  RE192,Z-   BR IF OVER 80              U2M01080
0024 7102                  109 | RE108 MDX   1 +2         SET XR1 TO SKIP PARAMS     U2M01090
0025 C1FF                  110 |       LD    1 -1         SAVE DATA ADDRESS          U2M01100
0026 D021                  111 |       STO     RE264                                 U2M01110
0027 C100                  112 |       LD    1 0          LOAD ERROR PARAMETER       U2M01120
0028 D035                  113 |       STO     RE360+2    STORE IN INTERRUPT ROUTINE U2M01130
0029 D03E                  114 |       STO     RE370+2    ERROR AND LAST CARD EXITS  U2M01140
002A 7401 0032             115 |       MDX  L  50,+1      INCREMENT IOCS COUNTER     U2M01150
002C 1000                  116 |       NOP                                           U2M01160
002D 6816                  117 |       STX   0 RE228      SET BUSY INDR ON           U2M01170
002E 0819                  118 |       XIO     RE264      READ                       U2M01180
002F 7101                  119 | RE120 MDX   1 +1                                    U2M01190
0030 C01D                  120 |       LD      RE324      RESTORE ACC                U2M01200
0031 6906                  121 | RE132 STX   1 RE180+1    SET TO SKIP 1ST PARAMETER  U2M01210
0032 6500 0000             122 | RE144 LDX  L1 *-*        RESTORE STATUS             U2M01220
0034 6600 0000             123 | RE156 LDX  L2 *-*        AND INDEX REGISTERS        U2M01230
0036 2000                  124 | RE168 LDS     *-*                                   U2M01240
0037 4C00 0000             125 | RE180 BSC  L  *-*        EXIT                       U2M01250
0039 C013                  126 | RE192 LD      RE312      ERROR CODE - ILLEGAL CALL  U2M01260
003A 7004                  127 |       MDX     RE216      BR TO SET RETURN ADDR      U2M01270
003B 1801                  128 | RE204 SRA     1          IS DEVICE BUSY             U2M01280
003C 4C04 0018R            129 |       BSC  L  RE096,E    BR IF YES                  U2M01290
003E C00D                  130 |       LD      RE300      ERROR CODE - DVCE NOT RDY  U2M01300
003F 71FF                  131 | RE216 MDX   1 -1                                    U2M01310
0040 6D00 0028             132 |       STX  L1 40         STORE CALL ADDR IN 40      U2M01320
0042 6129                  133 |       LDX   1 41         SET EXIT                   U2M01330
0043 70ED                  134 |       MDX     RE132      BR TO EXIT                 U2M01340
                           135 | *************************************************** U2M01350
                           136 | *             CONSTANTS                             U2M01360
                           137 | *************************************************** U2M01370
0044 0000                  138 | RE228 DC      0          ROUTINE BUSY INDICATOR     U2M01380
0046                       139 |       BSS  E  0                                     U2M01390
0046 0001                  140 | RE240 DC      +1         CONSTANT                   U2M01400
0047 4F01                  141 | RE252 DC      /4F01      SENSE WITH RESET           U2M01410
0048 0000                  142 | RE264 DC      *-*        I/O BUFFER ADDRESS       E U2M01420
0049 4E00                  143 |       DC      /4E00      IOCC TO INITIATE READ    O U2M01430
004A 0050                  144 | RE276 DC      +80        CONSTANT                   U2M01440
004B 4F00                  145 | RE288 DC      /4F00      SENSE DSW WITHOUT RESET  O U2M01450
004C 4000                  146 | RE300 DC      /4000      CONSTANT FOR DVC NOT RDY   U2M01460
004D 4001                  147 | RE312 DC      /4001      CST FOR BAD CALL           U2M01470
004E 0000                  148 | RE324 DC      *-*        SAVED ACC                  U2M01480
008D                       149 | $PST4 EQU     /8D        POST-OP ERROR TRAP         U2M01490
                           150 | *************************************************** U2M01500
                           151 | *             OP COMPLETE INTERRUPT PROCESSING    * U2M01510
                           152 | *************************************************** U2M01520
                           153 | *     THIS PORTION IS ENTERED FROM AN INTERRUPT   * U2M01530
                           154 | *     LVL.SUBRT.IF NO ERROR OR LAST CARD IS FOUND,* U2M01540
                           155 | *     THE ROUTINE IS SET NOT BUSY AND THE IOCS    * U2M01550
                           156 | *     COUNTER IS DECREMENTED TO INDICATE          * U2M01560
                           157 | *     INTERRUPT PROCESSING COMPLETED. OTHERWISE   * U2M01570
                           158 | *     THE ROUTINE EXITS TO THE USER VIA RE360+1   * U2M01580
                           159 | *     WITH THE READ ERROR CODE--0001,ON RETURN IF * U2M01590
                           160 | *     ACC.=0,THE FUNCTION IS TERMINATED,IF NON-ZERO U2M01600
                           161 | *     WAIT AT THE POST-OPERATIVE  ERROR TRAP TILL * U2M01610
                           162 | *     THE READER IS READY AND THEN RE-INITIATE    * U2M01620
                           163 | *     THE FUNCTION.IF THE DSW INDICATED LAST CARD * U2M01630
                           164 | *     EXIT TO USER WITH ZERO CODE IN ACC.,UPON    * U2M01640
                           165 | *     RETURN,TERMINATE FUNCTION.                  * U2M01650
                           166 | *************************************************** U2M01660
004F 08F6                  167 | RE336 XIO     RE252-1    SENSE WITH RESET           U2M01670
0050 1003                  168 |       SLA     3          CHECK FOR READ ERROR       U2M01680
0051 4C02 005CR            169 |       BSC  L  RE360,C    YES,GOTO ERROR EXIT        U2M01690
0053 4828                  170 |       BSC     +Z         CHECK FOR LAST CARD INDIC  U2M01700
0054 7011                  171 |       MDX     RE370      YES,GO TELL USER           U2M01710
                           172 | *TERMINATE OPERATION AND EXIT TO ILS                U2M01720
0055 74FF 0032             173 | RE340 MDX  L  50,-1      DECREMENT IOCS COUNTER     U2M01730
0057 1000                  174 |       NOP                                           U2M01740
0058 1810                  175 |       SRA     16         CLEAR ROUTINE              U2M01750
0059 D0EA                  176 |       STO     RE228      BUSY INDICATOR             U2M01760
005A 4C80 0004R            177 | RE348 BSC  I  RE048      RETURN TO ILS              U2M01770
                           178 | *                                                   U2M01780
                           179 | *EXIT TO USERS ERROR ROUTINE WITH READ ERROR CODE   U2M01790
                           180 | *                                                   U2M01800
005C C0E9                  181 | RE360 LD      RE240      LOAD READ ERROR CODE--0001 U2M01810
005D 4400 0000             182 |       BSI  L  *-*        EXIT TO USERS ERROR RTN.   U2M01820
005F 4818                  183 |       BSC     +-         UPON RETURN,TEST ACCUM.    U2M01830
0060 70F4                  184 |       MDX     RE340      ZERO,TERMINATE OPERATION   U2M01840
                           185 | * IF ACCUM.NON-ZERO,CHECK READER FOR READY AND      U2M01850
                           186 | * RE-INITIATE OPERATION                             U2M01860
0061 08E8                  187 | RE362 XIO     RE288-1    SENSE WITHOUT RESET,       U2M01870
0062 4C04 006AR            188 |       BSC  L  RE375,E    TO ERROR EXIT IF NOT READY U2M01880
0064 08E3                  189 |       XIO     RE264      RE-INITIATE OPERATION      U2M01890
0065 70F4                  190 |       MDX     RE348      EXIT,BUT DONT CLEAR BUSY   U2M01900
                           191 | *                                                   U2M01910
                           192 | *EXIT TO USER WITH LAST CARD INDICATION             U2M01920
                           193 | *                                                   U2M01930
0066 1810                  194 | RE370 SRA     16         LAST CARD ERROR CODE,A=0   U2M01940
0067 4400 0000             195 |       BSI  L  *-*        EXIT TO USERS ERROR RTN    U2M01950
0069 70EB                  196 |       MDX     RE340      UPON RETURN,GO TERMINATE   U2M01960
006A C0E1                  197 | RE375 LD      RE300      NOT READY ERROR CODE       U2M01970
006B 4400 008D             198 |       BSI  L  $PST4      POST-OP ERROR TRAP         U2M01980
006D 70F3                  199 |       MDX     RE362      TRY AGAIN                  U2M01990
006E                       200 |       END                                           U2M02000
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
$PST4 008D   149  198
RE036 0001R   71
RE048 0004R   73  177
RE060 0007R   87   72
RE072 0012R   97   92
RE084 0015R   99  100
RE096 0018R  101  129
RE108 0024R  109  105
RE120 002FR  119   96
RE132 0031R  121  134
RE144 0032R  122   70
RE156 0034R  123   89
RE168 0036R  124   88
RE180 0037R  125  121
RE192 0039R  126   98  106  108
RE204 003BR  128  102
RE216 003FR  131  127
RE228 0044R  138   93   99  117  176
RE240 0046R  140   97  181
RE252 0047R  141  167
RE264 0048R  142  111  118  189
RE276 004AR  144  107
RE288 004BR  145  101  187
RE300 004CR  146  130  197
RE312 004DR  147  126
RE324 004ER  148   87  120
RE336 004FR  167   74
RE340 0055R  173  184  196
RE348 005AR  177  190
RE360 005CR  181  113  169
RE362 0061R  187  199
RE370 0066R  194  114  171
RE375 006AR  197  188
READ1 0000R   70