ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:11 2020
Source File: \w1hol48.asm
HOLL-4OF8 AND 4OF8-HOLL CONVERSION
2 | *************************************************** W1B00020
3 | * TITLE - HOL48 * W1B00030
4 | * STATUS - CHANGE LEVEL 0 * W1B00040
5 | * FUNCTION/OPERATION - .HOL48. CONVERTS 4-OF-8 * W1B00050
6 | * CHARACTERS TO IBM CARD CODE OR IBM CARD CODE * W1B00060
7 | * TO 4-OF-8 CHARACTERS, DEPENDING ON THE VALUE * W1B00070
8 | * OF THE CONTROL PARAMETER * W1B00080
9 | * ENTRY POINTS - .HOL48. CALL ENTRANCE LIBF HOL48 * W1B00090
10 | * INPUT - UNPACKED, LEFT-JUSTIFIED 4-OF-8 CODE * W1B00100
11 | * CHARACTERS OR IBM CARD CODE CHARACTERS * W1B00110
12 | * OUTPUT - IBM CARD CODE CHARACTERS OR UNPACKED, * W1B00120
13 | * LEFT-JUSTIFIED 4-OF-8 CODE CHARACTERS. * W1B00130
14 | * EXTERNAL ROUTINES - .HOLCA. TABLE OF IBM CARD * W1B00140
15 | * CODE CHARACTERS, .STRTB. TABLE OF 4-OF-8 CODE * W1B00150
16 | * AND EBCDIC CHARACTERS, .HXCV. ROUTINE TO * W1B00160
17 | * CONVERT 4-OF-8 CODE CHARACTER TO VALUE BETWEEN * W1B00170
18 | * ZERO AND 63. * W1B00180
19 | * EXITS-NORMAL - RETURN TO MAINLINE AT LIBF+5 * W1B00190
20 | * -ERROR - INVALID IBM CARD CODE CHARACTER * W1B00200
21 | * ON INPUT, EXIT TO LIBF+5 AFTER CONVERSION IS * W1B00210
22 | * COMPLETE WITH CARRY OFF AND OVERFLOW ON. * W1B00220
23 | * TABLES/WORK AREAS - NONE * W1B00230
24 | * ATTRIBUTES - REUSABLE * W1B00240
25 | * NOTES - THE CALLING SEQUENCE IS * W1B00250
26 | * LIBF HOL48 * W1B00260
27 | * DC /000X CONTROL PARAMETER * W1B00270
28 | * DC INPUT INPUT AREA ADDRS * W1B00280
29 | * DC OTPUT OUTPUT AREA ADDRS * W1B00290
30 | * DC NNNN CHARACTER COUNT * W1B00300
31 | *************************************************** W1B00310
HOLL-4OF8 AND 4OF8-HOLL CONVERSION
33 | LIBR W1B00330
34 | ENT HOL48 W1B00340
0000 6963 35 | HOL48 STX 1 SAV1+1 SAVE USER'S XR1 W1B00350
0001 6580 0000 36 | LDX I1 *-* GET ADDR OF PARAM LIST W1B00360
0003 691B 37 | STX 1 MDX1+1 DIRECTION OF CONVERSION W1B00370
0004 D871 38 | STD AQ SAVE ALL AND EXTENSION W1B00380
0005 285F 39 | STS LDS SAVE CARRY AND OVFLO STATUS W1B00390
0006 C101 40 | LD 1 1 STORE INPUT BUFFER ADDRESS W1B00400
0007 D015 41 | STO INPUT+1 W1B00410
0008 C102 42 | LD 1 2 STORE OUTPUT BUFFER ADDRESS W1B00420
0009 D054 43 | STO OUTPT+1 W1B00430
000A C103 44 | LD 1 3 SAVE CHARS TO CONVERT COUNT W1B00440
000B D061 45 | STO CT W1B00450
000C 7104 46 | MDX 1 4 SET RETURN ADDR TO USER'S W1B00460
000D 695C 47 | STX 1 XIT+1 PROGRAM. W1B00470
000E 6A58 48 | STX 2 SAV2+1 SAVE USERS XR2 W1B00480
000F 61FE 49 | LDX 1 -2 CONVERT BOTH CODE TABLE W1B00490
0010 C500 006DR 50 | LOOP LD L1 LIBF+2 LIBFS INTO ACTUAL ADDRS W1B00500
0012 1088 51 | SLT 8 FOR USE BY THIS W1B00510
0013 1888 52 | SRT 8 SUBROUTINE. W1B00520
0014 8059 53 | A K2 W1B00530
0015 D001 54 | STO LD+1 W1B00540
0016 C700 0000 55 | LD LD L3 *-* GET ADDR OF 1ST WD OF TBL W1B00550
0018 D500 0073R 56 | STO L1 ADDRS+2 W1B00560
001A 7101 57 | MDX 1 1 W1B00570
001B 70F4 58 | MDX LOOP GO GET OTHER TABLE ADDRESS W1B00580
001C C500 0000 59 | INPUT LD L1 *-* GET INPUT CHARACTER W1B00590
001E 7400 0000 60 | MDX1 MDX L *-*,0 CHK DIRECTION OF CONVERSION W1B00600
0020 7037 61 | MDX CNVRT 4 OF 8 INTO HOLLERITH CODE W1B00610
0021 6203 62 | LDX 2 3 CONVERT HOLL CODE TO RLTV W1B00620
0022 188D 63 | SRT 13 0-63. ISOLATE ROWS 12-0 W1B00630
0023 100D 64 | SLA 13 AND SAVE 1-9 IN EXTENSION. W1B00640
0024 1240 65 | SLCA 2 W1B00650
0025 6A4F 66 | STX 2 SV1 SAVE MULTIPLE OF 16 W1B00660
0026 1001 67 | SLA 1 W1B00670
0027 4C20 0044R 68 | BSC L ERR,Z MULTIPLE ZONES-ERROR W1B00680
0029 1087 69 | SLT 7 ROWS 1-7 INTO ACCUMULATOR W1B00690
002A 6210 70 | LDX 2 16 W1B00700
002B 1240 71 | SLCA 2 W1B00710
002C 6AEA 72 | STX 2 LD+1 SAVE ROW 1-7 PUNCH W1B00720
002D 1001 73 | SLA 1 W1B00730
002E 4C20 0044R 74 | BSC L ERR,Z CHK MULTIPLE ROWS IN 1-7 W1B00740
0030 1082 75 | SLT 2 W1B00750
0031 4C04 0052R 76 | BSC L CK17,E BR IF 9 ROW W1B00760
0033 4C20 0049R 77 | BSC L CK1,Z BR IF 8 ROW -60 CHK 1 ROW W1B00770
0035 6203 78 | LDX 2 3 M/ 8-9 ROWS-INVERT 1-7 ROWS W1B00780
0036 C03D 79 | ENTR1 LD K8 AND GATHER TOGETHER THE W1B00790
0037 90DF 80 | S LD+1 RELATIVE ADDRESS W1B00800
0038 1883 81 | SRT 3 W1B00810
0039 8035 82 | A K3 W1B00820
003A 903A 83 | S SV1 W1B00830
003B E034 84 | AND MFFFB W1B00840
003C 1001 85 | SLA 1 W1B00850
003D 1083 86 | SLT 3 W1B00860
003E 8033 87 | ENTR A ADDRS+1 ADD START ADDR OF STRTB TBL W1B00870
003F D001 88 | STO GET+1 W1B00880
0040 C600 0000 89 | GET LD L2 *-* GET 4 OF 8 CHAR (BITS 0-7) W1B00890
0042 E030 90 | AND MASK2 ELIMINATE EBC PART W1B00900
0043 7019 91 | MDX OUTPT GO STORE CONVERTED CHAR W1B00910
0044 1010 92 | ERR SLA 16 SET TO STORE BLANK W1B00920
0045 2001 93 | LDS 1 SET INVALID CHAR SWITCH W1B00930
0046 281E 94 | STS LDS W1B00940
0047 6203 95 | LDX 2 3 W1B00950
0048 70F5 96 | MDX ENTR W1B00960
0049 72FA 97 | CK1 MDX 2 -6 CHK INVALID COMBINATION OF W1B00970
004A 70F9 98 | MDX ERR 1 ROW & 8 ROW-INVALID-SKIP W1B00980
004B 620B 99 | LDX 2 11 OK W1B00990
004C C0CA 100 | LD LD+1 W1B01000
004D 4C20 0036R 101 | BSC L ENTR1,Z W1B01010
004F C024 102 | LD K8 W1B01020
0050 D0C6 103 | STO LD+1 W1B01030
0051 70E4 104 | MDX ENTR1 W1B01040
0052 1801 105 | CK17 SRA 1 NINE ROW -CHK FOR INVALID W1B01050
0053 80C3 106 | A LD+1 1-8 ROW PRESENT. W1B01060
0054 4C20 0044R 107 | BSC L ERR,Z BR IF ROWS 1-8 ...INVALID W1B01070
0056 620C 108 | LDX 2 12 W1B01080
0057 70E0 109 | MDX ENTR1+2 W1B01090
0058 089C*3940 110 | CNVRT LIBF HXCV W1B01100
0059 8017 111 | A ADDRS BASE ADDR OF HOLL TABLE W1B01110
005A D001 112 | STO *+1 W1B01120
005B C400 0000 113 | LD L *-* GET HOLLERITH CHAR W1B01130
005D D500 0000 114 | OUTPT STO L1 *-* STORE TO USER OUTPUT BUFFER W1B01140
005F 7101 115 | MDX 1 1 INCREMENT BUFFER POINTER W1B01150
0060 74FF 006DR 116 | MDX L CT,-1 DECR CHAR COUNT BY 1 W1B01160
0062 70B9 117 | MDX INPUT GO CONVERT NEXT CHARACTER W1B01170
0063 6500 0000 118 | SAV1 LDX L1 *-* RESTORE USERS XR1 W1B01180
0065 2000 119 | LDS LDS 0 W1B01190
0066 6600 0000 120 | SAV2 LDX L2 *-* RESTORE USERS XR2 W1B01200
0068 C80D 121 | LDD AQ W1B01210
0069 4C00 0000 122 | XIT BSC L *-* RETURN TO USER W1B01220
006B 0859*30C1 123 | LIBF LIBF HOLCA CALL HOLCA (1 WORD CALL) W1B01230
006C 228D*98C2 124 | LIBF STRTB CALL STRTB (1 WORD CALL) W1B01240
006D 0000 125 | CT DC NO. OF CHARS TO CONVERT W1B01250
006E 0002 126 | K2 DC 2 W1B01260
006F 0003 127 | K3 DC /0003 ADDR MODIFICATION CONSTANT W1B01270
0070 FFFB 128 | MFFFB DC /FFFB ADDR MODIFICATION CONSTANT W1B01280
0071 0000 129 | ADDRS DC ADDR OF HOLLERITH TABLE W1B01290
0072 0000 130 | DC ADDR OF 4-OF-8 TABLE W1B01300
0073 FF00 131 | MASK2 DC /FF00 LEFT DIGIT EXTRACT MASK W1B01310
0074 0008 132 | K8 DC 8 VALIDITY CHECK CONSTANT W1B01320
0075 0000 133 | SV1 DC MULTIPLE OF 16 TEMPORARY W1B01330
0076 134 | AQ BSS E 2 ACC AND EXT TEMPORARY W1B01340
0078 135 | END W1B01350
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
ADDRS 0071R 129 56 87 111
AQ 0076R 134 38 121
CK1 0049R 97 77
CK17 0052R 105 76
CNVRT 0058R 110 61
CT 006DR 125 45 116
ENTR 003ER 87 96
ENTR1 0036R 79 101 104 109
ERR 0044R 92 68 74 98 107
GET 0040R 89 88
HOL48 0000R 35
INPUT 001CR 59 41 117
K2 006ER 126 53
K3 006FR 127 82
K8 0074R 132 79 102
LD 0016R 55 54 72 80 100 103 106
LDS 0065R 119 39 94
LIBF 006BR 123 50
LOOP 0010R 50 58
MASK2 0073R 131 90
MDX1 001ER 60 37
MFFFB 0070R 128 84
OUTPT 005DR 114 43 91
SAV1 0063R 118 35
SAV2 0066R 120 48
SV1 0075R 133 66 83
XIT 0069R 122 47