U3ZIPCO

Table Of Contents
  • [00004] DIRECT TABLE ACCESS CONVERSION
u3zipco.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:09 2020
 
Source File: \u3zipco.asm 
DIRECT TABLE ACCESS CONVERSION
 
                             2 | *************************************************** U3I00020
                             3 | *                                                 * U3I00030
                             4 | *  STATUS-VERSION 2, MODIFICATION 10              * U3I00040
                             5 | *                                                 * U3I00050
                             6 | *  FUNCTION -                                     * U3I00060
                             7 | *  ZIPCO IS A SPEEDY DIRECT TABLE ACCESS CONV     * U3I00070
                             8 | *  ROUTINE.  CODES ARE ACCEPTED THROUGH THE       * U3I00080
                             9 | *  INPUT BFR IN EITHER PACKED OR UNPACKED FORMAT. * U3I00090
                            10 | *  12-BIT HOL MAY BE ENTERED AND WILL BE PACKED   * U3I00100
                            11 | *  TO 8-BITS BEFORE CONV. ALL HOL OUTPUT WILL BE  * U3I00110
                            12 | *  UNPACKED TO 12-BITS. CONV CODES ARE TRANS      * U3I00120
                            13 | *  TO THE OUTPUT BFR IN EITHER PACKED OR UNPCKED  * U3I00130
                            14 | *  FORMAT                                         * U3I00140
                            15 | *                                                 * U3I00150
                            16 | *  ENTRY POINTS - ZIPCO                           * U3I00160
                            17 | *    CALLING SEQUENCE -  LIBF    ZIPCO            * U3I00170
                            18 | *                        DC      CONTROL          * U3I00180
                            19 | *                        DC      INPUT            * U3I00190
                            20 | *                        DC      OUTPUT           * U3I00200
                            21 | *                        DC      CHAR CNT         * U3I00210
                            22 | *                        CALL    TABLE            * U3I00220
                            23 | *                                                 * U3I00230
                            24 | *  INPUT - A CONTROL WRD, THE ADDR OF THE INPUT   * U3I00240
                            25 | *      BFR, OUTPUT BFR, AND CONV TABLE, AND THE   * U3I00250
                            26 | *      CHAR COUNT                                 * U3I00260
                            27 | *                                                 * U3I00270
                            28 | *  OUTPUT - THE CONV CHAR                         * U3I00280
                            29 | *                                                 * U3I00290
                            30 | *  EXTERNAL REFERENCES - THE CONV TABLE (SUBR)    * U3I00300
                            31 | *                                                 * U3I00310
                            32 | *  EXIT - NORMAL AT ZIP70                         * U3I00320
                            33 | *          ERROR - NONE                           * U3I00330
                            34 | *                                                   U3I00340
                            35 | *  ATTRIBUTES - REUSABLE                          * U3I00350
                            36 | *                                                 * U3I00360
                            37 | *  NOTES - NO ERRORS ARE DETECTED BY THIS ROUTINE * U3I00370
                            38 | *                                                 * U3I00380
                            39 | *************************************************** U3I00390
DIRECT TABLE ACCESS CONVERSION
 
                            41 |       LIBR                                          U3I00410
                            42 |       ENT     ZIPCO                                 U3I00420
0000 6961                   43 | ZIPCO STX   1 SAV1+1     SAVE XR1                   U3I00430
0001 6580 0000              44 |       LDX  I1 *-*        RECORD ENTRY               U3I00440
0003 6A5C                   45 |       STX   2 SAV2+1     SAVE XR2                   U3I00450
0004 10A0                   46 |       SLT     32         CLEAR ACC & EXT            U3I00460
0005 D032                   47 |       STO     HALF       INITIALIZE TO LEFT HALF    U3I00470
                            48 | *                                                 * U3I00480
0006 C100                   49 |       LD    1 0          FETCH CONTROL WORD         U3I00490
0007 18D0                   50 |       RTE     16         TO EXTENSION               U3I00500
                            51 | *                                                 * U3I00510
0008 1084                   52 |       SLT     4          IS INPUT HOLLERITH         U3I00520
0009 D02A                   53 |       STO     HOLIN      YES, SET HOLLERITH SWITCH  U3I00530
                            54 | *                                                 * U3I00540
000A 1084                   55 |       SLT     4          IS INPUT PACKED            U3I00550
000B D029                   56 |       STO     PCKIN      YES, SET PACKED INPUT SW   U3I00560
000C 1010                   57 |       SLA     16         CLEAR ACC                  U3I00570
000D 1084                   58 |       SLT     4          IS OUTPUT HOLLERTH         U3I00580
000E D027                   59 |       STO     HOLLO      YES, SET HOLL SWITCH       U3I00590
                            60 | *                                                 * U3I00600
000F 1084                   61 |       SLT     4          IS OUTPUT PACKED           U3I00610
0010 D026                   62 |       STO     PKOUT      YES, SET PACKED OUTPUT SW  U3I00620
                            63 | *                                                 * U3I00630
0011 C101                   64 |       LD    1 1                                     U3I00640
0012 D00E                   65 |       STO     ZIP10+1    SET UP INPUT ADDR          U3I00650
                            66 | *                                                 * U3I00660
0013 C102                   67 |       LD    1 2                                     U3I00670
0014 D043                   68 |       STO     ZIP50+1    SET UP OUTPUT ADDR         U3I00680
                            69 | *                                                 * U3I00690
0015 C103                   70 |       LD    1 3                                     U3I00700
0016 D022                   71 |       STO     WDCNT      SET UP CHAR CNT            U3I00710
                            72 | *                                                 * U3I00720
0017 C580 0005              73 |       LD   I1 5          FETCH ADDR FROM LIBF       U3I00730
0019 D014                   74 |       STO     ZIP25+1    SET UP TABLE ADDR          U3I00740
                            75 | *                                                 * U3I00750
001A 7106                   76 |       MDX   1 6                                     U3I00760
001B 6948                   77 |       STX   1 ZIP70+1    SET FOR RETURN             U3I00770
001C C01C                   78 |       LD      WDCNT     CHECK IF WD CNT IS     2-10 U3I00772
001D 4C08 005FR             79 |       BSC  L  SAV2,+    *POSITIVE              2-10 U3I00774
                            80 | *                                                 * U3I00780
                            81 | *                                                 * U3I00790
001F 10A0                   82 |       SLT     32         CLEAR ACC & EXT            U3I00800
0020 C400 0000              83 | ZIP10 LD   L  *-*        FETCH CHAR                 U3I00810
0022 18D0                   84 |       RTE     16         PUT CHAR IN EXTENSION      U3I00820
0023 1081                   85 | ZIP15 SLT     1          CHK THE 0 BIT AND          U3I00830
0024 D076                   86 |       STO     CASE       SET UP CASE SHIFT          U3I00840
                            87 | *                                                 * U3I00850
0025 1010                   88 |       SLA     16         CLEAR ACC                  U3I00860
                            89 | *                                                 * U3I00870
0026 7400 0034R             90 |       MDX  L  HOLIN,0    IS INPUT HOLLERITH         U3I00880
0028 7046                   91 |       MDX     ZIP90      YES, GO TO PACK IT         U3I00890
0029 1087                   92 | ZIP20 SLT     7          NO, FETCH REST OF WORD     U3I00900
002A D06E                   93 |       STO     TEMP1      SET CHAR IN TEMP           U3I00910
                            94 | *                                                 * U3I00920
002B 6580 0099R             95 |       LDX  I1 TEMP1     INPUT CODE TO XR1           U3I00930
002D C500 0000              96 | ZIP25 LD   L1 *-*       FETCH CONVERTED CHAR        U3I00940
                            97 | *                                                 * U3I00950
002F 7400 009BR             98 |       MDX  L  CASE,0    CHECK CASE SW               U3I00960
0031 7008                   99 |       MDX     ZIP30-1   SKIP TO GET LEFT HALF       U3I00970
0032 1008                  100 |       SLA     8         LEFT JUSTIFY RT HALF        U3I00980
0033 7007                  101 |       MDX     ZIP30     SKIP TO SAVE RESULT         U3I00990
                           102 | *                                                   U3I01000
0034 0000                  103 | HOLIN DC      0         HOLLERITH INPUT SW          U3I01010
0035 0000                  104 | PCKIN DC      0         PACKED INPUT SW             U3I01020
0036 0000                  105 | HOLLO DC      0         HOLLERITH OUTPUT SW         U3I01030
0037 0000                  106 | PKOUT DC      0         PACKED OUTPUT SW            U3I01040
0038 0000                  107 | HALF  DC      0         LEFT/RIGHT INDR             U3I01050
0039 0000                  108 | WDCNT DC      *-*       CHAR CNT               2-10 U3I01055
                           109 | *                                                 * U3I01060
003A E061                  110 |       AND     HFF00     FETCH LEFT HALF             U3I01070
003B D05D                  111 | ZIP30 STO     TEMP1     SAVE RESULT                 U3I01080
                           112 | *                                                 * U3I01090
003C C060                  113 |       LD      ONE                                   U3I01100
003D 7400 0038R            114 |       MDX  L  HALF,0    CHK THE LEFT/RT HALF SW     U3I01110
003F 1010                  115 |       SLA     16                  AND               U3I01120
0040 D0F7                  116 |       STO     HALF      REVERSE ITS SETTING         U3I01130
                           117 | *                                                 * U3I01140
0041 C057                  118 |       LD      TEMP1     YES,CHK HALF SW             U3I01150
0042 7400 0037R            119 |       MDX  L  PKOUT,0   IS OUTPUT TO BE PACKED      U3I01160
0044 700F                  120 |       MDX     ZIP40+2   NO, GO TO OUTPUT CONVERTED  U3I01170
                           121 | *                                                 * U3I01180
0045 7400 0038R            122 |       MDX  L  HALF,0    CHECK SETTING               U3I01190
0047 7001                  123 |       MDX     *+1       SKIP IF LEFT                U3I01200
0048 7009                  124 |       MDX     ZIP40     BR ON RT                    U3I01210
0049 D050                  125 |       STO     TEMP2     SET UP IN TEMP BUFFER       U3I01220
004A 74FF 0039R            126 |       MDX  L  WDCNT,-1  DECR CHAR COUNT         2-1 U3I01221
004C 7018                  127 |       MDX     ZIP80     GO TO CONVERT MORE      2-1 U3I01222
004D C480 0058R            128 |       LD   I  ZIP50+1   LOAD WORD IN OUTPUT AREA2-1 U3I01223
004F E051                  129 |       AND     H00FF     SAVE RIGHT HALF         2-1 U3I01224
0050 E849                  130 |       OR      TEMP2     COMBINE TO ONE WORD     2-1 U3I01225
0051 7005                  131 |       MDX     ZIP50     GO TO OUTPUT ONE WORD   2-1 U3I01226
                           132 | *                                                 * U3I01240
0052 1808                  133 | ZIP40 SRA     8         RIGHT JUSTIFY CHARACTER     U3I01250
0053 E846                  134 |       OR      TEMP2     OR WITH PREVIOUS CHAR       U3I01260
                           135 | *                                                 * U3I01270
0054 7400 0036R            136 |       MDX  L  HOLLO,0   IS OUTPUT HOLLERITH         U3I01280
0056 7029                  137 |       MDX     ZIP95     YES, GO TO UNPACK IT        U3I01290
                           138 | *                                                   U3I01300
0057 D400 0000             139 | ZIP50 STO  L  *-*       OUTPUT THE CONVERTED CHAR   U3I01310
0059 C0FE                  140 |       LD      ZIP50+1   INCREMENT              2-10 U3I01320
005A 8042                  141 |       A       ONE       *OUTPUT ADDRESS        2-10 U3I01325
005B D0FC                  142 |       STO     ZIP50+1   *BY ONE                2-10 U3I01330
005C 74FF 0039R            143 |       MDX  L  WDCNT,-1  DECR THE CHAR CNT           U3I01340
005E 7006                  144 |       MDX     ZIP80     GO TO CONVERT MORE          U3I01350
                           145 | *                                                 * U3I01360
                           146 | *                                                 * U3I01390
005F 6600 0000             147 | SAV2  LDX  L2 *-*       RESTORE XR2                 U3I01400
0061 6500 0000             148 | SAV1  LDX  L1 *-*       RESTORE XR1                 U3I01410
0063 4C00 0000             149 | ZIP70 BSC  L  *-*       EXIT                        U3I01420
                           150 | *                                                 * U3I01430
0065 1010                  151 | ZIP80 SLA     16        CLEAR ACC                   U3I01440
0066 7400 0035R            152 |       MDX  L  PCKIN,0   IS INPUT PACKED             U3I01450
0068 7003                  153 |       MDX     ZIP85     NO,GO TO INCR IN ADDR       U3I01460
0069 7400 0038R            154 |       MDX  L  HALF,0    IS RT HALF ON - SKIP IF YES U3I01470
006B 70B7                  155 |       MDX     ZIP15     BR TO FETCH 2ND HALF        U3I01480
                           156 | *                                                   U3I01490
006C 7401 0021R            157 | ZIP85 MDX  L  ZIP10+1,+1 INCR INPUT ADDR            U3I01500
006E 70B0                  158 |       MDX     ZIP10-1   GO TO FETCH NEXT CHAR       U3I01510
                           159 | *                                                 * U3I01520
                           160 | *************************************************** U3I01530
                           161 | *                                                 * U3I01540
                           162 | *  THIS MODULE OF ZIPCO PACKS 12 BIT HOLLERITH TO * U3I01550
                           163 | *  8 BITS BY COMBINING THE 1 THRU 7 ROW PUNCHES   * U3I01560
                           164 | *  INTO 3 BITS.                                   * U3I01570
                           165 | *                                                 * U3I01580
                           166 | *************************************************** U3I01590
006F 1082                  167 | ZIP90 SLT     2         PICK UP THE 11 AND 0 PUNCHS U3I01600
0070 1005                  168 |       SLA     5         LEFT JUSTIFY                U3I01610
0071 D02C                  169 |       STO     TEMP3     TEMP SAVE                   U3I01620
0072 1010                  170 |       SLA     16                                    U3I01630
                           171 | *                                                 * U3I01640
0073 1087                  172 |       SLT     7         FETCH 1-7 PUNCH             U3I01650
0074 4C18 007DR            173 |       BSC  L  ZIP92,+-  BR ON ZERO PUNCH            U3I01660
0076 620F                  174 |       LDX   2 15                                    U3I01670
0077 1240                  175 |       SLCA  2 0         DETERMINE WHICH ROW PUNCH   U3I01680
                           176 | *                                                 * U3I01690
0078 72F9                  177 |       MDX   2 -7        TAKE 2'S COMPLEMENT         U3I01700
0079 1000                  178 |       NOP                                           U3I01710
007A 6A1E                  179 |       STX   2 TEMP1     DECR COUNT                  U3I01720
007B 1010                  180 |       SLA     16                                    U3I01730
007C 901C                  181 |       S       TEMP1     ACTUAL VALUE IN 13-15       U3I01740
007D 1082                  182 | ZIP92 SLT     2         SHIFT IN 8 AND 9 PUNCH      U3I01750
007E E81F                  183 |       OR      TEMP3     INCLUDE 11 AND 0 PUNCH      U3I01760
                           184 | *                                                 * U3I01770
007F 70AA                  185 |       MDX     ZIP20+1   RET TO CONVERT HOLLERITH    U3I01780
                           186 | *                                                 * U3I01790
                           187 | *                                                 * U3I01800
                           188 | *************************************************** U3I01810
                           189 | *                                                 * U3I01820
                           190 | *  THIS MODULE OF ZIPCO UNPACKS 8 BIT HOLLERITH TO* U3I01830
                           191 | *  12 BITS BY EXPANDING 3 BITS TO 1-7 ROW PUNCH.  * U3I01840
                           192 | *                                                 * U3I01850
                           193 | *************************************************** U3I01860
0080 18D0                  194 | ZIP95 RTE     16        SHIFT TO EXTENSION          U3I01870
0081 D01E                  195 |       STO     SAVQ      SAVE EXT                    U3I01880
0082 1010                  196 |       SLA     16        CLEAR ACC                   U3I01890
0083 1083                  197 |       SLT     3                                     U3I01900
0084 100D                  198 |       SLA     13        LEFT JUSTIFY                U3I01910
0085 D018                  199 |       STO     TEMP3     SAVE 12, 11, AND 0 PUNCHES  U3I01920
                           200 | *                                                 * U3I01930
0086 1083                  201 |       SLT     3         GET 1-7 PUNCHES             U3I01940
0087 4C18 0092R            202 |       BSC  L  ZIP98+1,+-  BR IF ZERO                U3I01950
0089 9015                  203 |       S       K13                                   U3I01960
008A D00E                  204 |       STO     TEMP1     DETERMINE VALUE             U3I01970
008B 1010                  205 |       SLA     16                                    U3I01980
008C 900C                  206 |       S       TEMP1                                 U3I01990
008D D00B                  207 |       STO     TEMP1     PUT SHIFT COUNT             U3I02000
008E 6680 0099R            208 |       LDX  I2 TEMP1     INTO XR2                    U3I02010
                           209 | *                                                 * U3I02020
0090 C00C                  210 |       LD      ONE                                   U3I02030
0091 1200                  211 | ZIP98 SLA   2 0         SHIFT ONE BIT               U3I02040
0092 E80B                  212 |       OR      TEMP3     OR WITH 12, 11, AND 0 BITS  U3I02050
0093 1806                  213 |       SRA     6                                     U3I02060
0094 1086                  214 |       SLT     6         PICK UP 8 AND 9             U3I02070
                           215 | *                                                 * U3I02080
0095 18D0                  216 |       RTE     16                                    U3I02090
0096 C009                  217 |       LD      SAVQ      RESTORE THE EXTENSION       U3I02100
0097 18D0                  218 |       RTE     16                                    U3I02110
                           219 | *                                                   U3I02120
0098 70BE                  220 |       MDX     ZIP50     RETURN TO OUTPUT HOLLERITH  U3I02130
                           221 | *                                                 * U3I02140
                           222 | *                                                 * U3I02150
                           223 | *  FOLLOWING IS A PARTIAL TABLE OF CONSTANTS      * U3I02160
                           224 | *  SWITCHES, AND STORAGE USED BY ZIPCO            * U3I02170
0099 0000                  225 | TEMP1 DC      0         TEMP STG                    U3I02190
009A 0000                  226 | TEMP2 DC      0         TEMP STG                    U3I02200
009B 0000                  227 | CASE  DC      0         CASE SHIFT SW               U3I02210
009C FF00                  228 | HFF00 DC      /FF00     CON FOR FETCH OF LEFT CHAR  U3I02220
009D 0001                  229 | ONE   DC      1         CONSTANT ONE                U3I02230
009E 0000                  230 | TEMP3 DC      0         TEMP STG                    U3I02240
009F 000D                  231 | K13   DC      13        CONSTANT 13                 U3I02250
00A0 0000                  232 | SAVQ  DC      0         TEMP STG FOR EXTENSION      U3I02260
00A1 00FF                  233 | H00FF DC      /00FF     CON TO FETCH RIGHT HALF 2-1 U3I02265
00A2                       234 |       END                                           U3I02275
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
CASE  009BR  227   86   98
H00FF 00A1R  233  129
HALF  0038R  107   47  114  116  122  154
HFF00 009CR  228  110
HOLIN 0034R  103   53   90
HOLLO 0036R  105   59  136
K13   009FR  231  203
ONE   009DR  229  113  141  210
PCKIN 0035R  104   56  152
PKOUT 0037R  106   62  119
SAV1  0061R  148   43
SAV2  005FR  147   45   79
SAVQ  00A0R  232  195  217
TEMP1 0099R  225   93   95  111  118  179  181  204  206  207  208
TEMP2 009AR  226  125  130  134
TEMP3 009ER  230  169  183  199  212
WDCNT 0039R  108   71   78  126  143
ZIP10 0020R   83   65  157  158
ZIP15 0023R   85  155
ZIP20 0029R   92  185
ZIP25 002DR   96   74
ZIP30 003BR  111   99  101
ZIP40 0052R  133  120  124
ZIP50 0057R  139   68  128  131  140  142  220
ZIP70 0063R  149   77
ZIP80 0065R  151  127  144
ZIP85 006CR  157  153
ZIP90 006FR  167   91
ZIP92 007DR  182  173
ZIP95 0080R  194  137
ZIP98 0091R  211  202
ZIPCO 0000R   43