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