ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020 Source File: \t5typez.asm TYPEZ 2 | LIBR T5K00020 3 | ISS 02 TYPEZ 4 T5K00030 4 | *************************************************** T5K00040 5 | * * T5K00050 6 | *STATUS- VERSION 2, MODIFICATION 10 * T5K00060 7 | * * T5K00070 8 | *FUNCTION/OPERATION- * T5K00080 9 | * TYPEZ IS A SUBROUTINE TO READ KEYBOARD INPUT * T5K00090 10 | * AND TYPE IT BACK OUT TO THE OPERATOR ALONE OR * T5K00100 11 | * TO TYPE DATA FROM CORE ON THE TYPEWRITER. * T5K00110 12 | * TYPEZ IS CALLED FROM FORTRAN VIA THE SFIO * T5K00120 13 | * SUBROUTINE AND IS A SELF CONTAINED PROGRAM TO * T5K00130 14 | * READ OR TYPE UP TO 80 CHARACTERS OF * T5K00140 15 | * INFORMATION. * T5K00150 16 | * * T5K00160 17 | *ENTRY POINTS- * T5K00170 18 | * * TYPEZ-ENTERED FROM SFIO BY A LIBF TYPEZ * T5K00180 19 | * * KZ100-INTERRUPT PROCESSING FROM THE ILS. * T5K00190 20 | * * T5K00200 21 | *INPUT- * T5K00210 22 | * * XR1 CONTAINS THE I/O BUFFER ADDRESS * T5K00220 23 | * * XR2 CONTAINS THE CHARACTER COUNT * T5K00230 24 | * * ACC CONTAINS 0 FOR READ, 2 FOR WRITE * T5K00240 25 | * * T5K00250 26 | *OUTPUT- * T5K00260 27 | * * TYPEWRITER PRINT LINE * T5K00270 28 | * * BUFFER FULL OF DATA IN EBC IF READING * T5K00280 29 | * * T5K00290 30 | *EXTERNAL REFERENCES- * T5K00300 31 | * * $PRET * T5K00310 32 | * * GETAD * T5K00320 33 | * * HOLEZ * T5K00330 34 | * * T5K00340 35 | *EXITS- * T5K00350 36 | * NORMAL- * T5K00360 37 | * * CALL PORTION-TYPEZ+1, BACK TO SFIO * T5K00370 38 | * * INTERRUPT PORTION-KZ100, BACK TO ILS * T5K00380 39 | * * T5K00390 40 | * ERROR- * T5K00400 41 | * * $PRET-MONITOR PRE OPERATIVE ERROR TRAP * T5K00410 42 | * * T5K00420 43 | *TABLES/WORK AREAS-EBCTB * T5K00430 44 | * * T5K00440 45 | *ATTRIBUTES-RELOCATABLE * T5K00450 46 | * * T5K00460 47 | *NOTES-REGISTERS NOT SAVED * T5K00470 48 | * * T5K00480 49 | *************************************************** T5K00490 TYPEZ 51 | * T5K00510 52 | * SYSTEM COMMUNICATION WORD T5K00520 53 | * T5K00530 0028 54 | $PRET EQU /28 SYSTEM PRE-OP ERROR TRAP T5K00540 0032 55 | $IOCT EQU /32 2-3 T5K00541 56 | * T5K00550 57 | * PROGRAM ENTRY POINT T5K00560 58 | * T5K00570 0000 700B 59 | TYPEZ MDX KZ200 BRANCH TO ENTRY POINT T5K00580 0001 4C80 0000 60 | BSC I *-* RETURN TO CALLING PROGRAM T5K00590 0003 0000 61 | KZ010 DC 0 INTERRUPT INDR SWITCH T5K00600 62 | * T5K00610 63 | * INTERRUPT ENTRY AND PROCESSING PROG T5K00620 64 | * ENTERED FROM ILS T5K00630 65 | * T5K00640 0004 0000 66 | KZ100 DC *-* RETURN ADDR T5K00650 0005 0858 67 | XIO KZ904 SENSE WITH RESET T5K00670 0006 D060 68 | STO KZ913 SAVE DSW T5K00680 0007 1002 69 | SLA 2 TEST FOR INT REQ 2-10 T5K00682 0008 4810 70 | BSC - SKIP IF INT REQ 2-10 T5K00684 0009 68F9 71 | STX KZ010 SET SW FOR INTERRUPT 2-10 T5K00686 000A 4C80 0004R 72 | BSC I KZ100 RETURN TO ILS T5K00690 73 | * T5K00700 74 | * MAINLINE PORTION OF PROGRAM T5K00710 75 | * INITIALIZATION PHASE T5K00720 76 | * T5K00730 000C 4818 77 | KZ200 BSC +- SKIP IF TYPING (ACC = 2) T5K00740 000D 6250 78 | LDX 2 80 SET I/P BUFR SIZE =80-READ T5K00750 000E 7201 79 | MDX 2 1 INCR SIZE FOR CARR RETURN T5K00760 000F 6A55 80 | STX 2 KZ911 SAVE BUFR CNT FOR RESTART T5K00770 0010 6904 81 | STX 1 KZ210+1 SAVE BUFR ADDR FOR RESTART T5K00780 0011 D052 82 | STO KZ910 SAVE RD-WRITE INDICATOR T5K00790 0012 1010 83 | SLA 16 CLEAR 2-10 T5K00795 0013 D0EF 84 | STO KZ010 *INTERRUPT INDR SW 2-10 T5K00797 85 | * T5K00810 86 | * RESTART ENTRY POINT IF READ ERROR T5K00820 87 | * T5K00830 88 | * T5K00840 0014 6500 0000 89 | KZ210 LDX L1 *-* SET BUFFER ADDRESS T5K00850 0016 C04E 90 | LD KZ911 LOAD WD CNT FR TEMP STO T5K00860 0017 D04E 91 | STO KZ912 SAVE IN COUNT T5K00870 0018 C043 92 | LD KZ902 LOAD CARR RETURN CHAR T5K00880 0019 7013 93 | MDX KZ260 BR TO O/P CARR RETURN T5K00890 94 | * T5K00900 95 | * RESTART PROCEDURE COMPLETE, START T5K00910 96 | * PROCESSING DATA T5K00920 97 | * T5K00930 001A C049 98 | KZ220 LD KZ910 LOAD RD/WRITE OPTION T5K00940 001B 4C18 004DR 99 | BSC L KZ400,+- BRANCH IF READ T5K00950 100 | * T5K00960 101 | * CONVERT DATA FROM EBC TO TYPEWRITER T5K00970 102 | * CODE FOR TYPING T5K00980 103 | * T5K00990 001D 7101 104 | MDX 1 1 INCR BUFFER ADDRESS T5K01000 001E C043 105 | KZ230 LD KZ908 LOAD A LIBF EBC T5K01010 001F 0716*3044 106 | LIBF GETAD GET ADDRESS OF EBC TABLE T5K01020 0020 D003 107 | STO KZ240+1 SAVE TABLE ADDRESS T5K01030 0021 62C5 108 | LDX 2 -59 LD TABLE SIZE FOR SCAN T5K01040 0022 1090 109 | SLT 16 CLEAR EXTENSION T5K01050 0023 C600 0000 110 | KZ240 LD L2 *-* GET EBC CHAR FROM TABLE T5K01060 0025 18C8 111 | RTE 8 SAVE TW CHAR IN EXTENSION T5K01070 0026 F1FF 112 | EOR 1 -1 COMPARE EBC CHAR W/ BUFR T5K01080 0027 4C18 002CR 113 | BSC L KZ250,+- BR IF EQUAL T5K01090 0029 7201 114 | MDX 2 1 INCR TABLE COUNT T5K01100 002A 70F7 115 | MDX KZ240-1 CHK NXT CHAR IN TBL IF ANY T5K01110 002B C837 116 | LDD KZ909 NO MATCH, LD BLANKS T5K01120 002C 18D0 117 | KZ250 RTE 16 SHIFT TW CHAR FR EXTENSION T5K01130 002D D03A 118 | KZ260 STO KZ914 SAVE IN O/P BUFR WORD T5K01140 002E 082F 119 | KZ261 XIO KZ904 GET SENSE DSW 2-3 T5K01142 002F 1005 120 | SLA 5 SHIFT READY IND TO SIGN2-3 T5K01143 0030 4C10 0036R 121 | BSC L KZ262,- RETURN IF READY 2-3 T5K01144 0032 C02B 122 | LD KZ915 LOAD ERROR INDICATOR 2-3 T5K01145 0033 4400 0028 123 | BSI L $PRET BR TO SYSTEM PRE-OP 2-3 T5K01146 0035 70F8 124 | MDX KZ261 BR TO TRY AGAIN 2-3 T5K01147 0036 0829 125 | KZ262 XIO KZ906 TYPE CHARACTER T5K01150 126 | * T5K01160 127 | * INTERRUPT WAIT ROUTINE. WAIT HERE T5K01170 128 | * UNTIL INTERRUPT OCCURS AND PROCESS IT T5K01180 129 | * T5K01190 0037 C0CB 130 | KZ300 LD KZ010 LOAD INTERRUPT INDR SW T5K01200 0038 4C18 0037R 131 | BSC L KZ300,+- BR IF NO INTERRUPT OCCURES T5K01210 003A 1010 132 | KZ302 SLA 16 CLEAR ACC T5K01220 003B D0C7 133 | STO KZ010 SET SW TO WAIT FOR NXT ONE T5K01230 003C C02A 134 | LD KZ913 LOAD DSW SAVED T5K01240 003D 4C28 0055R 135 | BSC L KZ500,+Z BRANCH IF TYPE T5K01250 003F 081A 136 | XIO KZ900 READ CHARACTER T5K01260 0040 C100 137 | LD 1 0 CHK IF DATA OR CONTROL T5K01270 0041 100C 138 | SLA 12 T5K01280 0042 6201 139 | LDX 2 1 SET CHAR CNT TO 1 FOR T5K01290 140 | * *HOLEZ CONVERSION T5K01300 141 | * *SUBROUTINE T5K01310 142 | * T5K01320 0043 4C30 0014R 143 | BSC L KZ210,Z- ERROR RESTART T5K01330 0045 4C10 004BR 144 | BSC L KZ320,- BRANCH IF DATA T5K01340 145 | * T5K01350 0047 C002 146 | LD KZ890 T5K01360 0048 D100 147 | STO 1 0 STORE BLANK INTO BUFFER T5K01370 0049 70B7 148 | MDX TYPEZ+1 RETURN TO USER T5K01380 149 | * T5K01390 004A 0040 150 | KZ890 DC /0040 BLANK T5K01400 151 | * T5K01410 152 | * CONVERT KEYBOARD CODE TO EBC T5K01420 153 | * T5K01430 004B 0859*3169 154 | KZ320 LIBF HOLEZ CONVERT CODE T5K01440 004C 70D1 155 | MDX KZ230 THEN, BR TO TYPE CHAR T5K01450 156 | * T5K01460 157 | * READ CHAR FROM KEYBOARD T5K01470 158 | * T5K01480 004D 080E 159 | KZ400 XIO KZ902 SELECT KEYBOARD T5K01490 004E C01A 160 | KZ401 LD KZ916 LOAD ERROR INDICATOR 2-3 T5K01492 004F 4400 0028 161 | BSI L $PRET BR TO PRE-OP ERROR TRAP2-3 T5K01493 0051 C0B1 162 | LD KZ010 LOAD INT IND SWITCH 2-3 T5K01494 0052 4C18 004ER 163 | BSC L KZ401,+- BR IF NO INT 2-3 T5K01495 0054 70E5 164 | MDX KZ302 BR TO WAIT FOR INT 2-3 T5K01500 165 | * T5K01510 166 | * TYPE CHARACTERS T5K01520 167 | * T5K01530 0055 6904 168 | KZ500 STX 1 KZ900 SAVE I/O BUFR ADDR FOR NXT T5K01540 169 | * *READ T5K01550 0056 74FF 0066R 170 | MDX L KZ912,-1 DECR CHAR CNT T5K01570 0058 70C1 171 | MDX KZ220 CHECK RD/WR IF MORE CHARS T5K01580 0059 70A7 172 | MDX TYPEZ+1 RETURN FROM SUBROUTINE T5K01590 173 | * T5K01600 174 | * CONSTANTS AND WORK AREAS T5K01610 175 | * T5K01620 005A 176 | BSS E 0 T5K01630 005A 0000 177 | KZ900 DC 0 READ IOCC T5K01640 005B 0A00 178 | DC /0A00 T5K01650 005C 8100 179 | KZ902 DC /8100 SELECT KEYBOARD IOCC T5K01660 005D 0C00 180 | DC /0C00 T5K01670 005E 2000 181 | KZ904 DC /2000 SENSE IOCC & EQUATE T5K01680 005F 0F01 182 | DC /0F01 T5K01690 0060 0068R 183 | KZ906 DC KZ914 TYPE IOCC T5K01700 0061 0900 184 | DC /0900 T5K01710 0062 0508*38C2 185 | KZ908 LIBF EBCTB EBC TBL USED TO GET ADDR T5K01720 0063 2100 186 | KZ909 DC /2100 BLANK IN TW CODE (ODD LOC) T5K01730 0064 0000 187 | KZ910 DC 0 READ/WRITE INDICATOR T5K01740 0065 0000 188 | KZ911 DC 0 INITIAL CHAR COUNT T5K01750 0066 0000 189 | KZ912 DC 0 ACTUAL CHAR COUNT T5K01760 0067 0000 190 | KZ913 DC 0 DSW WORD T5K01770 0068 0000 191 | KZ914 DC 0 READ/WRITE CHARACTER T5K01780 005ER 192 | KZ915 EQU KZ904 ERROR INDICATED PRE-OP T5K01790 0069 2002 193 | KZ916 DC /2002 2-3 T5K01791 194 | * READY TEST SUBR MOVED INLINE 2-3 T5K01800 006A 195 | END T5K01810 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $IOCT 0032 55 $PRET 0028 54 123 161 KZ010 0003R 61 71 84 130 133 162 KZ100 0004R 66 72 KZ200 000CR 77 59 KZ210 0014R 89 81 143 KZ220 001AR 98 171 KZ230 001ER 105 155 KZ240 0023R 110 107 115 KZ250 002CR 117 113 KZ260 002DR 118 93 KZ261 002ER 119 124 KZ262 0036R 125 121 KZ300 0037R 130 131 KZ302 003AR 132 164 KZ320 004BR 154 144 KZ400 004DR 159 99 KZ401 004ER 160 163 KZ500 0055R 168 135 KZ890 004AR 150 146 KZ900 005AR 177 136 168 KZ902 005CR 179 92 159 KZ904 005ER 181 67 119 192 KZ906 0060R 183 125 KZ908 0062R 185 105 KZ909 0063R 186 116 KZ910 0064R 187 82 98 KZ911 0065R 188 80 90 KZ912 0066R 189 91 170 KZ913 0067R 190 68 134 KZ914 0068R 191 118 183 KZ915 005ER 192 122 KZ916 0069R 193 160 TYPEZ 0000R 59 148 172