ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:11 2020 Source File: \zdcip.asm 1 | ABS ZDR00005 2 | *************************************************** ZDR00010 3 | * * ZDR00020 4 | *STATUS- VERSION 2, MODIFICATION 12 * ZDR00030 5 | * * ZDR00040 6 | *FUNCTION/OPERATION- DCIP PERFORMS SIX FUNCTIONS * ZDR00050 7 | * * DISK INITIALIZATION * ZDR00060 8 | * * SECTOR ADDRESSES ARE WRITTEN. * ZDR00070 9 | * * THREE TEST PATTERNS ARE WRITTEN TO THE * ZDR00080 10 | * DISK, READ BACK, AND COMPARED WORD BY * ZDR00090 11 | * WORD. * ZDR00100 12 | * * A TABLE OF DEFECTIVE CYLINDERS, IF ANY, * ZDR00110 13 | * IS PRINTED. * ZDR00120 14 | * * DISK COPY * ZDR00130 15 | * * DMV2 CARTRIDGES ARE DUPLICATED EXCEPTING * ZDR00140 16 | * THE CARTRIDGE ID IN SECTORS 'IDAD AND * ZDR00150 17 | * 'DCOM, AND THE DEFECTIVE CYLINDER TABLE * ZDR00160 18 | * IN SECTOR 'IDAD. THE DMV2 RESIDENT IMAGE* ZDR00170 19 | * SECTOR OF THE OBJECT CARTRIDGE IS CHANGED* ZDR00180 20 | * TO REFLECT THE DEFECTIVE CYLINDER TABLE * ZDR00190 21 | * STORED IN SECTOR 'IDAD OF THE OBJECT * ZDR00200 22 | * CARTRIDGE. * ZDR00210 23 | * * DISK DUMP * ZDR00220 24 | * * SELECTED SECTORS MAY BE DUMPED * ZDR00230 25 | * * THE OUTPUT DEVICE WILL BE SELECTED IN * ZDR00240 26 | * THE ORDER- 1403 PRINTER, 1132 PRINTER, * ZDR00250 27 | * CONSOLE PRINTER- WHICHEVER BEING BOTH * ZDR00260 28 | * AVAILABLE AND READY * ZDR00270 29 | * * DISK PATCH * ZDR00280 30 | * * ANY NUMBER OF WORDS (INCLUDING THE SECTOR* ZDR00290 31 | * ADDRESS) OF A SECTOR MAY BE CHANGED. * ZDR00300 32 | * * THE CONTENTS OF THE SECTOR IS DUMPED BOTH* ZDR00310 33 | * BEFORE AND AFTER CHANGES ARE MADE. * ZDR00320 34 | * * DISK ANALYSIS * ZDR00330 35 | * * EACH SECTOR OF THE CARTRIDGE IS READ 16 * ZDR00340 36 | * TIMES. IF A READ ERROR OCCURS A MESSAGE * ZDR00350 37 | * IS PRINTED. THE SECTOR IN ERROR MAY BE * ZDR00360 38 | * DUMPED AT THE USER'S OPTION. * ZDR00370 39 | * * EACH SECTOR ADDRESS IS CHECKED. IF AN * ZDR00380 40 | * ERRONEOUS SECTOR ADDRESS IS FOUND A MSG * ZDR00390 41 | * IS PRINTED AND THE CORRECT ADDRESS IS * ZDR00400 42 | * WRITTEN. * ZDR00410 43 | * * DISK COMPARE * ZDR00420 44 | * * READS CORRESPONDING SECTORS OF TWO CAR- * ZDR00430 45 | * TRIDGES AND COMPARES THE CONTENTS WORD BY* ZDR00440 46 | * WORD. A MESSAGE IS PRINTED IF ALL SECTOR* ZDR00450 47 | * WORDS DO NOT COMPARE. * ZDR00460 48 | *ENTRY POINTS- * ZDR00470 49 | * * START IS THE ENTRY POINT FROM THE CORE-IMAGE* ZDR00480 50 | * LOADER * ZDR00490 51 | * * DX030 IS THE LEVEL 2 INTERRUPT ENTRY * ZDR00500 52 | *INPUT- * ZDR00510 53 | * * N/A. OPERATIONALLY, ALL PARAMETERS ARE ENT- * ZDR00520 54 | * ERED THROUGH THE CONSOLE ENTRY SWITCHES * ZDR00530 55 | * * PATCH DATA ARE ENTERED THROUGH THE KEYBOARD * ZDR00540 56 | *OUTPUT- * ZDR00550 57 | * * N/A. OPERATIONALLY, ALL PARAMETERS ENTERED * ZDR00560 58 | * THROUGH THE CONSLOE ENTRY SWITCHES ARE RE- * ZDR00570 59 | * CORDED ON THE CONSOLE PRINTER * ZDR00580 60 | *EXTERNAL REFERENCES- ZDR00590 61 | * * NONE IN THE USUAL SENSE. ALL REQUIRED SUB- * ZDR00600 62 | * ROUTINES ARE ASSEMBLED INTO THE MAINLINE. * ZDR00610 63 | * REFERENCES TO DMV2 TABLES, ETC. ARE HANDLED * ZDR00620 64 | * BY A LIST OF EQUATE STATEMENTS. * ZDR00630 65 | *EXITS- * ZDR00640 66 | * * NORMAL- * ZDR00650 67 | * * UPON COMPLETION OF AN OPERATION, DCIP * ZDR00660 68 | * RETURNS TO THE BEGINNING OF THE PROGRAM * ZDR00670 69 | * AND ASKS FOR ANOTHER OPERATION * ZDR00680 70 | * * ERROR- * ZDR00690 71 | * * IF AN ERROR IS DETECTED IN AN INPUT PAR- * ZDR00700 72 | * AMETER, THE OPERATOR IS ASKED TO RE- * ZDR00710 73 | * ENTER THE PARAMETER * ZDR00720 74 | * * ZDR00730 75 | *TABLES/WORK AREAS- * ZDR00740 76 | * * MSSG(X) ARE INSTRUCTION AND ERROR * ZDR00750 77 | * MESSAGES PRINTED TO THE CONSOLE PRINTER * ZDR00760 78 | * * TABLE IS A TABLE OF HEX TO PRINTER CODES * ZDR00770 79 | * FOR THE 1403, 1132 AND CONSOLE PRINTERS * ZDR00780 80 | *ATTRIBUTES- * ZDR00790 81 | * * REUSABLE * ZDR00800 82 | *NOTES- * ZDR00810 83 | * * TYPE0 AS INCORPORATED IN DCIP HAS BEEN MODI-* ZDR00820 84 | * FIED SO THAT THE CONTROL PARAMETER'S RIGHT- * ZDR00830 85 | * MOST HEX CHARACTER, WHICH IS NORMALLY NOT * ZDR00840 86 | * USED, HAS THE FOLLOWING MEANING: IF THE * ZDR00850 87 | * RIGHTMOST CHARACTER IS 1 THEN THE BACKSPACE * ZDR00860 88 | * AND ERASE FIELD CHARACTERS ARE NOT RECOG- * ZDR00870 89 | * NIZED. THIS CHANGE WAS REQUIRED FOR THE * ZDR00880 90 | * DISK PATCH SUBROUTINE WHICH ACCEPTS KEYBOARD* ZDR00890 91 | * INPUT ON A CHARACTER BY CHARACTER BASIS. * ZDR00900 92 | * ERRORS ARE CORRECTED BY REENTERING THE DATA.* ZDR00910 93 | * IF THE RIGHTMOST CHARACTER OF THE TYPE0 * ZDR00920 94 | * CONTROL PARAMETER IS 2 THEN CHARACTERS READ * ZDR00930 95 | * FROM THE KEYBOARD ARE CONVERTED TO EBCDIC * ZDR00940 96 | * BEFORE STORING THEM IN THE USER'S BUFFER. * ZDR00950 97 | * THEY ARE STORED IN THE LEFT HALF OF ODD * ZDR00960 98 | * BUFFER WORDS AND THE RIGHT HALF OF EVEN * ZDR00970 99 | * BUFFER WORDS TO FACILITATE PACKING TWO PER * ZDR00980 100 | * WORD. * ZDR00990 101 | * * THE 60 WORD BUFFER (W3840) IN PRNT3 USED FOR* ZDR01000 102 | * OUTPUT HAS BEEN EQUATED TO AN ADDRESS WHICH * ZDR01010 103 | * FALLS WITHIN PRNT1. WHEN THE 1403 PRINTER * ZDR01020 104 | * IS BEING USED PRNT1, WHICH IS NOT IN USE, IS* ZDR01030 105 | * OVERLAYED BY THIS PRNT3 BUFFER AND THE DISK * ZDR01040 106 | * ROUTINE'S 320 WORD SECTOR BUFFER. * ZDR01050 107 | *************************************************** ZDR01060 EQUIVALENCES 109 | * ZDR01080 110 | * ZDR01090 111 | * ZDR01100 0023 112 | #ANDU EQU 35 1+BLK ADDR OF END OF UA (ADJ) ZDR01110 0028 113 | #BNDU EQU 40 1+BLK ADDR OF END OF UA (BASE) ZDR01120 002D 114 | #FPAD EQU 45 FILE PROTECT ADDRESS ZDR01130 0037 115 | #CIDN EQU 55 CARTRIDGE ID ZDR01140 003C 116 | #CIBA EQU 60 SECTOR ADDR OF CIB ZDR01150 0050 117 | #ULET EQU 80 SECTOR ADDR OF LET ZDR01160 118 | * ZDR01170 119 | * LET/FLET PARAMETERS ZDR01180 120 | * ZDR01190 0018 121 | 'FPAD EQU /18 INITIAL WORK STORAGE ADDR ZDR01200 0005 122 | 'LFHD EQU 5 WD CNT OF LET/FLET HEADER ZDR01210 0003 123 | 'LFEN EQU 3 WD CNT OF LET/FLET ENTRY ZDR01220 124 | * ZDR01230 125 | * INITIALIZATION PARAMETERS ZDR01240 126 | * ZDR01250 0003 127 | 'NPTN EQU 3 NO. INITIALIZATION PATTERNS ZDR01260 0032 128 | 'TEST EQU 50 NO. INITIALIZATION RETRIES ZDR01270 AAAA 129 | 'PTN1 EQU /AAAA TEST PATTERN 1 ZDR01280 5555 130 | 'PTN2 EQU /5555 TEST PATTERN 2 ZDR01290 0000 131 | 'PTN3 EQU /0000 TEST PATTERN 3 ZDR01300 132 | * ZDR01310 133 | * DISK PARAMETERS ZDR01320 134 | * ZDR01330 0010 135 | 'DBSC EQU 16 NO. DISK BLOCKS PER SECTOR ZDR01340 0140 136 | 'SCNT EQU 320 NO. WORDS PER SECTOR ZDR01350 0008 137 | 'CCNT EQU 8 NO. SECTORS PER CYLINDER ZDR01360 0003 138 | 'NDCY EQU 3 NO. DEFECTIVE CYLS ALLOWED ZDR01370 0018 139 | 'NDSC EQU 'NDCY*'CCNT NO. OF DEF SCTRS ALLOWED ZDR01380 0010 140 | 'TCNT EQU 16 NO. RETRIES AFTER AN ERROR ZDR01390 000B 141 | 'MXDR EQU 11 NO. DRIVES SUPPORTED I-11 ZDR01400 0658 142 | 'MSCT EQU /658 MAXIMUM SCTR ADDR + 1 ZDR01410 0640 143 | 'LSCT EQU 'MSCT-'NDSC NO. USABLE SCTRS/CART ZDR01420 00CB 144 | 'MCYL EQU 203 MAXIMUM CYLINDER ADDR ZDR01430 145 | * ZDR01440 146 | * IOCCS ZDR01450 147 | * ZDR01460 0F01 148 | 'I206 EQU /0F01 ZDR01470 0900 149 | 'I208 EQU /0900 ZDR01480 5000 150 | 'D501 EQU /5000 DISK NOT-READY ERR DISPLAY ZDR01490 2701 151 | 'I515 EQU /2701 SENSE IOCC, DRIVE 0 ZDR01500 8F01 152 | 'I516 EQU /8F01 SENSE IOCC, D9IVE 1 ZDR01510 9701 153 | 'I517 EQU /9701 SENSE IOCC, DRIVE 2 ZDR01520 9F01 154 | 'I518 EQU /9F01 SENSE IOCC, DRIVE 3 ZDR01530 A701 155 | 'I519 EQU /A701 SENSE IOCC, DRIVE 4 ZDR01540 B701 156 | 'I520 EQU /B701 SENSE IOCC, DRIVE 5 2-11 ZDR01541 BF01 157 | 'I521 EQU /BF01 SENSE IOCC, DRIVE 6 2-11 ZDR01542 BF11 158 | 'I522 EQU /BF11 SENSE IOCC, DRIVE 7 2-11 ZDR01543 BF21 159 | 'I523 EQU /BF21 SENSE IOCC, DRIVE 8 2-11 ZDR01544 BF31 160 | 'I524 EQU /BF31 SENSE IOCC, DRIVE 9 2-11 ZDR01545 BF41 161 | 'I525 EQU /BF41 SENSE IOCC, DRIVE 10 2-11 ZDR01546 3A00 162 | 'I000 EQU /3A00 READ DATA SWITCHES IOCC ZDR01550 0300 163 | 'I006 EQU /0300 SENSE ILSW IOCC ZDR01560 3701 164 | 'I609 EQU /3701 SENSE IOCC, 1132 (W/ RESET) ZDR01570 AF01 165 | 'I906 EQU /AF01 SENSE IOCC, 1403 (W/ RESET) ZDR01580 166 | * ZDR01590 167 | * DISK ADDRESSES ZDR01600 168 | * ZDR01610 0000 169 | 'IDAD EQU 0 ADDR OF SCTR WITH CID,ETC. ZDR01620 0001 170 | 'DCOM EQU 1 ADDR OF SCTR WITH DCOM ZDR01630 0002 171 | 'RIAD EQU 2 ADDR OF SCTR WITH RES IMAGE ZDR01640 0002 172 | 'ULET EQU 2 ADDR LET ON NON-SYS CART ZDR01650 0008 173 | 'CIBA EQU 8 ADDR CIB ON NON-SYS CART E ZDR01660 174 | * ZDR01670 175 | * MISCELLANEOUS ZDR01680 176 | * ZDR01690 FFFE 177 | 'DM2I EQU -2 SETTING FOR DM2 INIT CART ZDR01720 00D0 178 | 'CSTR EQU /D0 ZDR01730 003C 179 | 'PRWC EQU 60 BUFFER LENGTH FOR 1132, 1403ZDR01740 0005 180 | 'COPY EQU 5 RLTV ADDR COPY INDICATOR ZDR01750 0008 181 | 'DTYP EQU 8 RLTV ADDR DISK TYPE INDR ZDR01760 0001 182 | 'DCTB EQU 1 RLTV ADDR DEFECTIVE CYL TBL ZDR01770 0004 183 | 'CIDN EQU 4 RLTV ADDR CARTRIDGE ID ZDR01780 0000 184 | 'WDCT EQU 0 RLTV ADDR WD CNT IN BFR ZDR01790 0001 185 | 'SADR EQU 1 RLTV ADDR SCTR ADDR IN BFR ZDR01800 0003 186 | 'DMCT EQU 3 NO. WDS PRINTOUT/HEX WORD ZDR01810 0010 187 | 'WPLN EQU 16 NO. WDS PER LINE PRINTOUT ZDR01820 0010 188 | 'HEXA EQU 16 NO. MARKS IN HEX SYSTEM ZDR01830 189 | * ZDR01840 190 | * IOCS CALLING SEQUENCE PARAMETERS ZDR01850 191 | * ZDR01860 0000 192 | 'FUNC EQU 0 RLTV ADDR FUNCTION CODE ZDR01870 0001 193 | 'IOAR EQU 1 RLTV ADDR I/O AREA ZDR01880 0002 194 | 'NRTN EQU 2 RLTV ADDR NORMAL RETURN ZDR01890 195 | * ZDR01900 196 | * RESIDENT MONITOR ZDR01910 197 | * ZDR01920 0006 198 | $CH12 EQU /6 ADDR OF CHANNEL 12 INDR ZDR01930 0009 199 | $LEV1 EQU /9 ADDR LEVEL 1 ENTRY IN ITV ZDR01940 000A 200 | $LEV2 EQU /A ADDR DISK ENTRY IN ITV ZDR01950 000C 201 | $LEV4 EQU /C ADDR LEVEL 4 ENTRY IN ITV ZDR01960 000D 202 | $LEV5 EQU /D ADDR LEVEL 5 ENTRY IN ITV ZDR01970 0020 203 | $SCAN EQU /20 ADDR OF 1132 SCAN AREA ZDR01980 0028 204 | $PRET EQU /28 ADDR PREOPERATIVE ERR TRAP ZDR01990 002C 205 | $IREQ EQU /2C ADDR OF INT REQ SUBROUTINE ZDR02000 0032 206 | $IOCT EQU /32 ADDR OF IOCS BUSY INDR ZDR02010 0081 207 | $PST1 EQU /81 LEVEL 1 POSTOP ERROR TRAP ZDR02020 008D 208 | $PST4 EQU /8D LEVEL 4 POSTOP ERROR TRAP ZDR02030 0091 209 | $STOP EQU /91 ADDR OF PROG STOP KEY TRAP ZDR02040 00A4 210 | $DCYL EQU /A4 RLTV ADDR OF DEF CYL TB ZDR02050 00B3 211 | $I200 EQU /B3 ADDR OF ILS FOR LEVEL 2 ZDR02060 00C4 212 | $I400 EQU /C4 ADDR OF ILS FOR LEVEL 4 ZDR02070 00D3 213 | $I405 EQU /D3 ZDR02080 00D4 214 | $IBT4 EQU $I405+1 ADDR OF IBT FOR LEVEL 4 ZDR02090 00DD 215 | $DDSW EQU /DD CURRENT DISK DSW ZDR02100 00D0 216 | $I403 EQU /D0 ZDR02110 01E0 217 | $ZEND EQU /1E0 ADDR OF END OF DISKZ ZDR02120 INITIALIZATION, COMMON SUBROUTINES 0100 219 | ORG /100 ZDR02150 220 | * ZDR02160 221 | *************************************************** ZDR02170 222 | * THIS SUBR CONTROLS ALL DCIP OPERATIONS * ZDR02180 223 | *************************************************** ZDR02190 224 | * ZDR02200 0100 4400 0F1F 225 | START BSI L BEGIN OUT TO INITIALIZE DCIP ZDR02210 0102 4032 226 | CM050 BSI CPOUT BR TO INITIALIZE PRINT 2-11 ZDR02220 0103 1810 227 | SRA 16 ZDR02230 0104 D400 02C0 228 | STO L SW005 CLEAR INITIALIZE OPTION SW ZDR02240 0106 D400 02C1 229 | STO L SW006 CLEAR PATCH OPTION SWITCH ZDR02250 0108 D400 051A 230 | STO L IT950 CLEAR INIT VIRGIN SW 2-12 ZDR02255 010A C029 231 | LD CM905 ZDR02260 010B D300 232 | STO 3 'WDCT INITIALIZE WD CT IN DISK BF ZDR02270 010C 6500 02CF 233 | LDX L1 MSSG1 POINT TO MESSAGE 1 ZDR02280 010E 4035 234 | CM100 BSI INSTR PRINT MESSAGE 1 2-11 ZDR02290 235 | * ZDR02300 236 | ************************************************** ZDR02310 237 | * ACC CONTAINS REPLY. BIT 0 SET TO INITIALIZE ZDR02320 238 | * BIT 1 SET TO COPY ZDR02330 239 | * BIT 2 SET TO DUMP ZDR02340 240 | * BIT 3 SET TO PATCH ZDR02350 241 | * BIT 4 TO ANALYZE ZDR02360 242 | * BIT 5 TO COMPARE ZDR02370 243 | ************************************************** ZDR02380 244 | * ZDR02390 245 | * ZDR02400 246 | * CHECK FOR COMPARE OPTION SWITCH ON ZDR02410 247 | * ZDR02420 010F 7400 02C3 248 | MDX L SW008,0 ZDR02430 0111 701A 249 | MDX CM500 BR TO CHECK FOR COMPARE ZDR02440 0112 4C28 04C8 250 | BSC L INITL,Z+ BR IF INITIALIZE 2-11 ZDR02450 0114 1001 251 | SLA 1 ZDR02460 0115 4C28 0670 252 | BSC L DUPLC,Z+ BR IF COPY 2-11 ZDR02470 0117 1001 253 | SLA 1 ZDR02480 0118 4C28 0129 254 | BSC L CM250,Z+ BR FOR DISK DUMP ZDR02490 011A 1001 255 | SLA 1 ZDR02500 011B 4C28 0850 256 | BSC L PATCH,Z+ BR IF PATCH 2-11 ZDR02510 011D 1001 257 | SLA 1 ZDR02520 011E 4C28 08EC 258 | BSC L ANLYZ,Z+ BR IF ANALYZE 2-11 ZDR02530 0120 1001 259 | SLA 1 ZDR02540 0121 4C28 0993 260 | BSC L COMPR,Z+ BR IF COMPARE 2-11 ZDR02550 0123 1001 261 | SLA 1 2-12 ZDR02552 0124 4C28 04C7 262 | BSC L INITV,Z+ BR TO INIT VIRGIN PACK2-12 ZDR02554 0126 6500 0346 263 | LDX L1 MSSG5 PREPARE TO PRINT ZDR02560 0128 70E5 264 | MDX CM100 *MESSAGE 5 ZDR02570 0129 4400 07A2 265 | CM250 BSI L DUMPZ OUT TO PERFORM DUMP ZDR02620 012B 70D6 266 | MDX CM050 BACK FOR NEXT OPTION ZDR02630 267 | * ZDR02700 268 | * PRINT ERROR MESSAGE IF OPTION IS NOT COMPARE ZDR02710 269 | * ZDR02720 012C 1005 270 | CM500 SLA 5 COMPARE BIT TO SIGN 2-11 ZDR02730 012D 4C28 0993 271 | BSC L COMPR,Z+ BR IF COMPARE 2-11 ZDR02740 012F 6500 035F 272 | LDX L1 MSSG7 PREPARE TO PRINT MESSAGE 7 ZDR02750 0131 4028 273 | BSI MSOUT BR TO PRINT 2-11 ZDR02760 0132 3000 274 | WAIT WAIT FOR OPERATOR ACTION ZDR02770 0133 70CE 275 | MDX CM050 BR BACK FOR NEXT OPTION ZDR02780 276 | * ZDR02790 277 | * CONSTANTS AND WORK AREAS ZDR02800 278 | * ZDR02810 0134 0141 279 | CM905 DC 'SCNT+1 WDS PER SCTR,COUNTING ADDR ZDR02830 INITIALIZATION, COMMON SUBROUTINES 281 | * ZDR02850 282 | *************************************************** ZDR02860 283 | * INITIALIZE TO PRINT ON CONSOLE PRINTER ZDR02870 284 | *************************************************** ZDR02880 285 | * ZDR02890 0135 0000 286 | CPOUT DC *-* ENTRY POINT ZDR02900 0136 1810 287 | SRA 16 INITIALIZE PRINT SWITCH TO ZDR02910 0137 D400 02BE 288 | STO L SW003 *USE CONSOLE PRINTER ZDR02920 0139 6500 0480 289 | LDX L1 ENDTB SET POINTER IN CONVERSION ZDR02930 013B 6D00 02C7 290 | STX L1 SERCH *SUBR TO CONSOLE PTR TABLE ZDR02940 013D C804 291 | LDD CP900 CONSOLE PRINTER SPACES ZDR02950 013E DC00 02B6 292 | STD L BLANK ZDR02960 0140 4C80 0135 293 | BSC I CPOUT BR TO EXIT ZDR02970 294 | * ZDR02980 295 | * CONSTANTS AND WORK AREAS ZDR02990 296 | * ZDR03000 0142 297 | BSS E 0 CREATE EVEN BOUNDARY ZDR03010 0142 2181 2181 298 | CP900 DMES 'S'R'S'R'E ZDR03020 INITIALIZATION, COMMON SUBROUTINES 300 | ************************************************** ZDR03040 301 | * SUBROUTINE TO TYPE-OUT MESSAGE AND ACCEPT ZDR03050 302 | * INPUT THROUGH THE CONSOLE ENTRY SWITCHES ZDR03060 303 | ************************************************** ZDR03070 304 | * ZDR03080 0144 0000 305 | INSTR DC *-* SUBROUTINE ENTRY POINT ZDR03090 0145 6903 306 | STX 1 IB050 ADDR OF MESSAGE TO BE TYPED ZDR03100 0146 4400 0B7D 307 | BSI L WRTY0 TYPE ZDR03110 0148 2000 308 | DC /2000 * OUT ZDR03120 0149 0000 309 | IB050 DC *-* * MESSAGE ZDR03130 014A 4400 0B7D 310 | IB100 BSI L WRTY0 TEST TO SEE IF MESSAGE IS ZDR03140 014C 0000 311 | DC /0000 *COMPLETELY TYPED-OUT ZDR03150 014D 70FC 312 | MDX IB100 BRANCH IF NOT YET FINISHED ZDR03160 014E 3000 313 | WAIT WAIT FOR OPTR TO PUSH START ZDR03170 014F 0808 314 | XIO IB900 READ DATA SWITCHES ZDR03180 0150 6500 02B8 315 | LDX L1 INFOR-1 POINT TO DATA INPUTED ZDR03190 0152 4400 0166 316 | BSI L CNPNT PRINT BIT SWITCH DATA ZDR03200 0154 C400 02B9 317 | LD L INFOR LOAD BIT SWITCH DATA ZDR03210 0156 4C80 0144 318 | BSC I INSTR BRANCH BACK TO MAINLINE ZDR03220 319 | * ZDR03230 320 | * CONSTANTS AND WORK AREAS ZDR03240 321 | * EVEN-NUMBERED LABELS ARE ON EVEN BOUNDARIES ZDR03250 322 | * ZDR03260 0158 323 | BSS E 0 CREATE EVEN BOUNDARY ZDR03270 0158 02B9 324 | IB900 DC INFOR IOCC FOR READING THE ZDR03280 0159 3A00 325 | DC 'I000 *CONSOLE ENTRY SWITCHES ZDR03290 INITIALIZATION, COMMON SUBROUTINES 327 | * ZDR03310 328 | *************************************************** ZDR03320 329 | * SUBROUTINE TO TYPE-OUT A MESSAGE ZDR03330 330 | *************************************************** ZDR03340 331 | * ZDR03350 015A 0000 332 | MSOUT DC *-* SUBROUTINE ENTRY POINT ZDR03360 015B 6903 333 | STX 1 TC040 ADDR OF MESSAGE TO BE TYPED ZDR03370 015C 4400 0B7D 334 | BSI L WRTY0 TYPE ZDR03380 015E 2000 335 | DC /2000 *OUT ZDR03390 015F 0000 336 | TC040 DC *-* * MESSAGE ZDR03400 0160 4400 0B7D 337 | TC080 BSI L WRTY0 TEST TO SEE IF MESSAGE IS ZDR03410 0162 0000 338 | DC 0 *COMPLETELY TYPED-OUT ZDR03420 0163 70FC 339 | MDX TC080 BR IF NOT FINISHED ZDR03430 0164 4C80 015A 340 | BSC I MSOUT EXIT TO MAINLINE ZDR03440 INITIALIZATION, COMMON SUBROUTINES 342 | *************************************************** ZDR03460 343 | * SUBROUTINE TO CONVERT DATA TO DUMP FORMAT ZDR03470 344 | * AND PRINT IT ON THE PRINCIPAL PRINT DEVICE ZDR03480 345 | *************************************************** ZDR03490 346 | * ZDR03500 0166 0000 347 | CNPNT DC *-* ENTRY POINT ZDR03510 0167 CC00 02B6 348 | LDD L BLANK ZDR03520 0169 D83C 349 | STD CN900+'DMCT+1 ZDR03530 016A 7101 350 | MDX 1 1 SAVE ADDR OF 1ST WD ZDR03540 016B 6940 351 | STX 1 CN925 *TO BE CONVERTED ZDR03550 016C 71FF 352 | MDX 1 -1 RESTORE XR1 ZDR03560 016D C100 353 | LD 1 'WDCT FETCH NO. WDS TO CONVERT ZDR03570 354 | * ZDR03580 355 | * CONVERT FOR A LINE OF PRINTOUT ZDR03590 356 | * ZDR03600 016E 903C 357 | CN050 S CN920 DECREMENT NO. WDS TO CON- ZDR03610 016F D038 358 | STO CN905 *VERT BY NO. WDS PER LINE ZDR03620 0170 4830 359 | BSC Z- SKIP IF LAST LINE ZDR03630 0171 1810 360 | SRA 16 CLEAR ACC ZDR03640 0172 8038 361 | A CN920 RESTORE WORD COUNT ZDR03650 0173 D035 362 | STO CN910 ZDR03660 0174 A035 363 | M CN915 COMPUTE NO. CHARACTERS ZDR03670 0175 18D0 364 | RTE 16 *TO PRINT ZDR03680 0176 6500 0286 365 | LDX L1 PRBUF+1 ADDR FIRST DATA WD OF ZDR03690 0178 6918 366 | STX 1 CN400+1 *PRINTER BUFFER TO XR1 ZDR03700 0179 D1FF 367 | STO 1 -1 CHARACTER COUNT TO BUFFER ZDR03710 368 | * ZDR03720 369 | * CONVERT 0-9,A-F FROM BINARY TO PRINCIPAL PTR CODE ZDR03730 370 | * ZDR03740 017A 6104 371 | CN100 LDX 1 4 NO. HEX CHARS PER WD TO XR1 ZDR03750 017B C480 01AC 372 | LD I CN925 FETCH A WD FOR CONVERSION ZDR03760 017D 1890 373 | SRT 16 PUT WD IN EXT ZDR03770 017E 1010 374 | CN150 SLA 16 CLEAR ACC ZDR03780 017F 18C4 375 | RTE 4 RT HALF OF WD TO BITS 0-3 ZDR03790 0180 180C 376 | SRA 12 RIGHT JUSTIFY 0-F CHAR ZDR03800 0181 8400 02C7 377 | A L SERCH CALCULATE TABLE ADDR ZDR03810 0183 9029 378 | S CN930 ADJUST FOR TABLE END ZDR03820 0184 D001 379 | STO CN300+1 ADDR OF CHARACTER ZDR03830 380 | * ZDR03840 381 | * SAVE A CONVERTED CHARACTER ZDR03850 382 | * ZDR03860 0185 C400 0000 383 | CN300 LD L *-* FETCH CONVERSION TBL ENTRY, ZDR03870 0187 D500 01A1 384 | STO L1 CN900-1 *STORE IN TEMPORARY BUFFER ZDR03880 0189 71FF 385 | MDX 1 -1 SKIP AFTER 4 CHARACTERS CON ZDR03890 018A 70F3 386 | MDX CN150 *VERTED, BR OTHERWISE ZDR03900 387 | * ZDR03910 388 | * PUT 4 CHARACTERS JUST CONVERTED PLUS 2 SPACE ZDR03920 389 | * CHARACTERS IN PRINTER BUFFER ZDR03930 390 | * ZDR03940 018B 61FA 391 | LDX 1 -2*'DMCT NO. PRINT CHARS/HEX WORD ZDR03950 018C CD00 01A8 392 | CN350 LDD L1 CN900+2*'DMCT FETCH 2 WDS FROM TEMP- ZDR03960 018E 1808 393 | SRA 8 *ORARY BUFFER AND PACK THE ZDR03970 018F 1088 394 | SLT 8 *8 HIGH-ORDER BITS OF EACH ZDR03980 0190 D400 0000 395 | CN400 STO L *-* *INTO 1 WD OF PRINTER BFR ZDR03990 0192 7401 0191 396 | MDX L CN400+1,1 ZDR04000 397 | * ZDR04010 398 | * ZDR04020 399 | * ZDR04030 0194 7102 400 | MDX 1 2 SKIP AFTER ALL PRINTOUT WDS ZDR04040 0195 70F6 401 | MDX CN350 *MOVED, BR OTHERWISE ZDR04050 402 | * ZDR04060 403 | * ZDR04070 404 | * ZDR04080 0196 7401 01AC 405 | MDX L CN925,1 PT TO NEXT WD TO CONVERT ZDR04090 0198 74FF 01A9 406 | MDX L CN910,-1 SKIP IF ENTIRE LINE ZDR04100 019A 70DF 407 | MDX CN100 *CONVERTED, BR OTHERWISE ZDR04110 408 | * ZDR04120 409 | * PRINT A LINE AND CHECK FOR MORE PRINTING ZDR04130 410 | * ZDR04140 019B 4400 0254 411 | BSI L PRINT PRINT A LINE ZDR04150 019D C00A 412 | LD CN905 ZDR04160 019E 4C30 016E 413 | BSC L CN050,Z- BR IF WORD COUNT EXHAUSTED ZDR04170 01A0 4C80 0166 414 | BSC I CNPNT RETURN ZDR04180 415 | * ZDR04190 416 | * CONSTANTS AND WORK AREAS ZDR04200 417 | * ZDR04210 01A2 418 | CN900 BSS E 2*'DMCT TEMPORARY PRINTER BUFFER ZDR04220 01A8 0000 419 | CN905 DC *-* LINE INDR--Z-=NONE LEFT ZDR04230 01A9 0000 420 | CN910 DC *-* NO. WDS LEFT TO CONVERT ZDR04240 01AA 0003 421 | CN915 DC 'DMCT NO. WDS PRINTOUT/HEX WORD ZDR04250 01AB 0010 422 | CN920 DC 'WPLN NO. WDS PER PRINTOUT LINE ZDR04260 01AC 0000 423 | CN925 DC *-* ADDR WD TO BE CONVERTED ZDR04270 01AD 000F 424 | CN930 DC 'HEXA-1 TABLE ADDR ADJUST CONSTANT ZDR04280 INITIALIZATION, COMMON SUBROUTINES 426 | *************************************************** ZDR04300 427 | * INTERRUPT REQUEST - WAIT OUT ALL ZDR04310 428 | * INTERRUPTS AND GO TO START ZDR04320 429 | *************************************************** ZDR04330 430 | * ZDR04340 01AE 0000 431 | INTRQ DC *-* ENTRY POINT ZDR04350 01AF 0818 432 | XIO IQ905 RESET INT REQ 2-9 ZDR04360 01B0 4878 433 | BOSC +-Z TURN OFF LEVEL ZDR04370 01B1 1000 434 | NOP ZDR04380 435 | * ZDR04390 436 | * TURN OFF KEYBOARD SELECT ZDR04400 437 | * ZDR04410 01B2 0813 438 | XIO IQ902 ZDR04420 439 | * ZDR04430 440 | * 2 SECOND TIMING LOOP TO WAIT OUT I/O ZDR04440 441 | * ZDR04450 01B3 6500 B49C 442 | LDX L1 -9650*2 TWO SECOND LOOP CONSTANT ZDR04460 01B5 C80E 443 | IQ050 LDD IQ900 ZDR04470 01B6 A811 444 | D IQ905 ZDR04480 01B7 7101 445 | MDX 1 1 ZDR04490 01B8 70FC 446 | MDX IQ050 ZDR04500 01B9 1010 447 | SLA 16 ZDR04510 01BA D400 0032 448 | STO L $IOCT CLEAR IOCS COUNTER ZDR04520 01BC D400 0BCA 449 | STO L T0240 TYPE0 BUSY INDICATOR ZDR04530 01BE D400 0EB7 450 | STO L W3935 TURN OFF PRNT3 BUSY INDR ZDR04540 451 | * 1 INSTRUCTION REMOVED 2-10 ZDR04550 01C0 D400 0AC4 452 | IQ150 STO L DX970 CLEAR DISK BUSY INDR 2-10 ZDR04560 01C2 4C00 0102 453 | BSC L CM050 BR TO BEGIN AGAIN ZDR04580 454 | * ZDR04590 455 | * CONSTANTS ZDR04600 456 | * ZDR04610 01C4 457 | BSS E 0 EVEN ADDRESS BOUNDARY ZDR04620 01C4 3AAA 458 | IQ900 DC /3AAA TWO WORD DIVIDEND FOR TWO ZDR04630 01C5 AAAA 459 | DC /AAAA *SECOND TIMING LOOP. ZDR04640 01C6 0EB7 460 | IQ902 DC W3935 IOCC TO TURN OFF KEYBOARD ZDR04650 01C7 0A00 461 | DC /0A00 *SELECT. ZDR04660 01C8 5555 462 | IQ905 DC /5555 DIVISOR FOR TIMING LOOP ZDR04670 01C9 0F01 463 | DC /0F01 SENSE KB DSW W RESET 2-9 ZDR04680 INITIALIZATION, COMMON SUBROUTINES 465 | * ZDR04700 466 | *************************************************** ZDR04710 467 | * ADJUST DISK ADDRESS FOR DEFECTIVE CYLINDERS ZDR04720 468 | *************************************************** ZDR04730 469 | * ZDR04740 01CA 0000 470 | DC000 DC *-* ENTRY POINT ZDR04750 01CB 6203 471 | LDX 2 'NDCY NO. OF DEF CYLS ZDR04760 01CC 9100 472 | DC050 S 1 0 NO SKIP IF CURRENT SECTOR ZDR04770 01CD 4818 473 | BSC +- *MATCHES DEF SCTR ADDRESS. ZDR04780 01CE 8006 474 | A DC900 ALLOW FOR DEFECTIVE CYL ZDR04790 01CF 8100 475 | A 1 0 RESTORE CURRENT SCTR ADDR ZDR04800 01D0 7101 476 | MDX 1 1 POINT TO NEXT DEF CYL ENTRY ZDR04810 01D1 72FF 477 | MDX 2 -1 SKIP AFTER ALL CHECKED ZDR04820 01D2 70F9 478 | MDX DC050 BR TO CHECK NEXT DEF SCTR ZDR04830 01D3 4C80 01CA 479 | BSC I DC000 EXIT ZDR04840 480 | * ZDR04850 481 | * CONSTANT ZDR04860 482 | * ZDR04870 01D5 0008 483 | DC900 DC 'CCNT NO. OF SCTRS PER CYLINDER ZDR04880 INITIALIZATION, COMMON SUBROUTINES 485 | * ZDR04900 486 | *************************************************** ZDR04910 487 | * FETCH SOURCE AND OBJECT DR NOS., CHECK VALIDITY ZDR04920 488 | *************************************************** ZDR04930 489 | * ZDR04940 01D6 0000 490 | GETDR DC 0 ENTRY POINT ZDR04950 01D7 6500 0398 491 | LDX L1 MSG13 ZDR04960 01D9 4400 0144 492 | GD020 BSI L INSTR PRINT MESSAGE, FETCH REPLY ZDR04970 01DB 6500 0346 493 | LDX L1 MSSG5 PREPARE TO PRINT ERROR MSG ZDR04980 01DD 18D0 494 | RTE 16 ZDR04990 01DE 108C 495 | SLT 12 LEFT JUSTIFY OBJ IN EXT ZDR05000 01DF 1004 496 | SLA 4 LEFT JUSTIFY SOURCE IN ACC ZDR05010 01E0 D80F 497 | STD GD901 SAVE ACC AND EXT 2-11 ZDR05020 01E1 18DC 498 | RTE 28 RT JUSTIFY OBJECT IN 2-11 ZDR05030 499 | * *ACC, AND SOURCE IN EXT2-11 ZDR05040 01E2 980B 500 | SD GD900 MAX DRIVE NOS. ZDR05050 01E3 4828 501 | BSC +Z SKIP IF OBJECT TOO LARGE ZDR05060 01E4 18D0 502 | RTE 16 SOURCE TO ACC ZDR05070 01E5 4C10 01D9 503 | BSC L GD020,- BR IF EITHER TOO LARGE ZDR05080 01E7 C008 504 | LD GD901 LOAD SOURCE DR 2-11 ZDR05090 505 | * 2-11 ZDR05100 506 | * 3 INSTRUCTIONS REMOVED 2-11 ZDR05110 507 | * 2-11 ZDR05120 01E8 4027 508 | BSI PRSNT CHECK FOR DEV. PRESENT 2-11 ZDR05130 01E9 C007 509 | LD GD902 2-3 ZDR05140 01EA 4025 510 | BSI PRSNT CHECK FOR DEV. PRESENT 2-11 ZDR05150 01EB C804 511 | LDD GD901 2-3 ZDR05160 01EC 4C80 01D6 512 | BSC I GETDR *ACC, OBJECT DR NO. TO EXT ZDR05170 513 | * ZDR05180 514 | * CONSTANT ZDR05190 515 | * ZDR05200 01EE 516 | BSS E 0 MAKE ADDR EVEN ZDR05210 01EE 000B 517 | GD900 DC 'MXDR NO. DRIVES 2-11 ZDR05220 01EF 000B 518 | DC 'MXDR NO. DRIVES 2-11 ZDR05230 01F0 0000 519 | GD901 DC 0 2-3 ZDR05240 01F1 0000 520 | GD902 DC 0 2-3 ZDR05250 INITIALIZATION, COMMON SUBROUTINES 522 | *************************************************** ZDR05270 523 | * SUBROUTINE TO WRITE ONE SECTOR AND WAIT FOR ZDR05280 524 | * OPERATION COMPLETE ZDR05290 525 | *************************************************** ZDR05300 526 | * ZDR05310 01F2 0000 527 | WRIT1 DC *-* ENTRY POINT ZDR05320 01F3 D301 528 | STO 3 'SADR SET SECTOR ADDR IN I/O AREA ZDR05330 01F4 D400 02BB 529 | STO L SECT1 ZDR05340 01F6 6B03 530 | STX 3 WR050 ZDR05350 01F7 4400 0A2F 531 | BSI L DX000 WRITE TO DISK ZDR05360 01F9 0200 532 | DC /0200 WRITE FUNCTION CODE ZDR05370 01FA 0000 533 | WR050 DC *-* ADDR OF BUFFER ZDR05380 01FB 8005 534 | A WR900 INCRE SCTR ADDR BY ONE ZDR05390 01FC 7400 0AC4 535 | WR060 MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR05400 01FE 70FD 536 | MDX WR060 LOOP ON DISK BUSY 2-11 ZDR05410 537 | * . 2-11 ZDR05420 01FF 4C80 01F2 538 | BSC I WRIT1 EXIT ZDR05430 539 | * ZDR05440 540 | * CONSTANTS AND WORK AREAS ZDR05450 541 | * ZDR05460 0201 0001 542 | WR900 DC 1 GENERAL PURPOSE CONSTANT ZDR05470 INITIALIZATION, COMMON SUBROUTINES 544 | *************************************************** ZDR05490 545 | * SUBROUTINE TO READ ONE SECTOR AND WAIT FOR ZDR05500 546 | * OPERATION COMPLETE ZDR05510 547 | *************************************************** ZDR05520 548 | * ZDR05530 0202 0000 549 | READ1 DC *-* ENTRY ZDR05540 0203 D301 550 | STO 3 'SADR SET SECTOR ADDR IN I/O AREA ZDR05550 0204 D400 02BB 551 | STO L SECT1 ZDR05560 0206 6B03 552 | STX 3 RE050 ZDR05570 0207 4400 0A2F 553 | BSI L DX000 READ ONE SECTOR ZDR05580 0209 0100 554 | DC /0100 READ FUNCTION CODE ZDR05590 020A 0000 555 | RE050 DC *-* ADDR OF BUFFER ZDR05600 556 | * . 2-11 ZDR05610 020B 7400 0AC4 557 | RE060 MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR05620 020D 70FD 558 | MDX RE060 LOOP ON DISK BUSY 2-11 ZDR05630 020E 4C80 0202 559 | BSC I READ1 EXIT ZDR05640 INITIALIZATION,COMMON SUBROUTINES 561 | *************************************************** ZDR05660 562 | *SUBROUTINE TO CHECK FOR DISK DRIVE PRESENT * ZDR05670 563 | * * ZDR05680 564 | *INPUT- * ZDR05690 565 | * *THE NUMBER OF THE PHYSICAL DRIVE TO BE * ZDR05700 566 | * CHECKED--LEFT JUSTIFIED IN ACC * ZDR05710 567 | * * ZDR05720 568 | *OUTPUT-N/A * ZDR05730 569 | * * ZDR05740 570 | *NOTES- * ZDR05750 571 | * *XR1 AND THE ACC ARE USED, BUT ARE NOT SAVED * ZDR05760 572 | * AND RESTORED * ZDR05770 573 | *************************************************** ZDR05780 0210 0000 574 | PRSNT DC *-* ENTRY POINT 2-11 ZDR05785 0211 180B 575 | SRA 11 TWICE DR NO TO ACC 2-11 ZDR05790 0212 D005 576 | STO PRS05+1 SAVE TO LOAD TO XR1 2-11 ZDR05800 0213 4400 0B7D 577 | PRS01 BSI L WRTY0 TEST FOR CONSOLE 2-11 ZDR05810 0215 0000 578 | DC /0000 *PRINTING FINISHED, 2-11 ZDR05820 0216 70FC 579 | MDX PRS01 *AND LOOP IF BUSY 2-11 ZDR05830 0217 6500 0000 580 | PRS05 LDX L1 *-* TWICE DR NO. TO XR1 2-11 ZDR05840 0219 C500 0A93 581 | LD L1 DX913 LD SENSE W/RESET IOCC 2-11 ZDR05850 021B E022 582 | AND PRS80 CHANGE TO A READ IOCC 2-11 ZDR05860 021C D500 0AAF 583 | STO L1 DX960+1 SAVE AS CURRENT IOCC 2-11 ZDR05870 021E D01C 584 | STO PRS40+1 SAVE FOR DEV PRSNT CHK 2-11 ZDR05880 021F C400 051A 585 | LD L IT950 GET VIRGIN PACK INDR 2-12 ZDR05881 0221 4C10 0228 586 | BSC L PRS10,- *AND BR IF NOT VIRGIN 2-12 ZDR05882 0223 0D00 0A92 587 | XIO L1 DX913-1 SENSE DSW 2-12 ZDR05883 0225 4CA0 0210 588 | BSC I PRSNT,Z RETURN IF DRIVE ON SYS 2-12 ZDR05884 0227 7005 589 | MDX PRS20 BR IF NOT ON SYSTEM 2-12 ZDR05885 0228 0811 590 | PRS10 XIO PRS40 INITIATE READ 1 WORD 2-12 ZDR05890 0229 0D00 0A92 591 | XIO L1 DX913-1 SENSE THE DSW 2-11 ZDR05900 022B 4C20 0232 592 | BSC L PRS70,Z BR IF DR ON SYSTEM 2-11 ZDR05920 022D C011 593 | PRS20 LD PRS90 2-12 ZDR05960 022E 4400 0028 594 | BSI L $PRET 2-3 ZDR05970 0230 4C00 0102 595 | BSC L CM050 2-3 ZDR05980 0232 C0E5 596 | PRS70 LD PRS05+1 LD 2 * DR. NO. 2-11 ZDR05984 0233 1003 597 | SLA 3 PUT DR CODE IN DGT 2 2-11 ZDR05986 0234 EC00 0AAC 598 | OR L DX955 OR IN NOT READY CODE 2-11 ZDR05988 0236 3000 599 | WAIT WAIT FOR INTERRUPT 2-11 ZDR05990 0237 4C80 0210 600 | BSC I PRSNT RETURN TO MAINLINE 2-11 ZDR06000 023A 601 | BSS E 0 2-3 ZDR06020 023A 023C 602 | PRS40 DC PRS60 DISK READ IOCC 2-11 ZDR06030 023B 0000 603 | DC *-* *FOR DEV PRESENT CHK 2-11 ZDR06040 023C 0001 604 | PRS60 DC 1 WORD COUNT FOR DISK RD 2-11 ZDR06050 023D 0000 605 | DC *-* I/O AREA FOR DISK READ 2-11 ZDR06060 606 | * 2-11 ZDR06070 023E FEFF 607 | PRS80 DC /FEFF MASK FOR CONVERTING 2-11 ZDR06080 608 | * *SENSE W/RESET IOCC TO 2-11 ZDR06090 609 | * *READ IOCC 2-11 ZDR06100 023F 5001 610 | PRS90 DC /5001 2-3 ZDR06110 INITIALIZATION,COMMON SUBROUTINES 612 | * ZDR06130 613 | *************************************************** ZDR06140 614 | * SUBROUTINE TO READ SECTOR ZERO ZDR06150 615 | ************************************************** ZDR06160 616 | * ZDR06170 0240 0000 617 | HOMEX DC *-* ENTRY ZDR06180 0241 C079 618 | LD SECT1 FETCH DR CD+SECT ADDR 2-11 ZDR06190 0242 E010 619 | AND HM900 AND OUT ALL BUT DRIVE CODE ZDR06200 0243 D301 620 | STO 3 'SADR ZDR06210 0244 6B03 621 | STX 3 HM050 ZDR06220 0245 4400 0A2F 622 | BSI L DX000 SEEK HOME POSITION ZDR06230 0247 0300 623 | DC /0300 SEEK FUNCTION CODE ZDR06240 0248 0000 624 | HM050 DC *-* ADDR OF BUFFER ZDR06250 0249 6B03 625 | STX 3 HM100 ZDR06260 024A 4400 0A2F 626 | BSI L DX000 READ SECTOR 'IDAD ZDR06270 024C 0100 627 | DC /0100 READ FUNCTION CODE ZDR06280 024D 0000 628 | HM100 DC *-* ADDR OF BUFFE9 ZDR06290 629 | * . 2-11 ZDR06300 024E 7400 0AC4 630 | HM120 MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR06310 0250 70FD 631 | MDX HM120 LOOP ON DISK BUSY 2-11 ZDR06320 0251 4C80 0240 632 | BSC I HOMEX EXIT ZDR06330 633 | * ZDR06340 634 | * CONSTANTS AND WORK AREAS ZDR06350 635 | * ZDR06360 0253 F000 636 | HM900 DC /F000 MASK 2-11 ZDR06370 INITIALIZATION, COMMON SUBROUTINES 638 | ************************************************** ZDR06390 639 | * SUBROUTINE TO PRINT A LINE ON THE PRINCIPAL ZDR06400 640 | * PRINT DEVICE ZDR06410 641 | ************************************************** ZDR06420 642 | * ZDR06430 0254 0000 643 | PRINT DC *-* ENTRY POINT ZDR06440 0255 7400 02BE 644 | MDX L SW003,0 SKIP IF CONSOLE PTR DESIRED ZDR06450 0257 700D 645 | MDX PP100 BR IF 1403 OR 1132 DESIRED ZDR06460 0258 4400 0B7D 646 | BSI L WRTY0 PRINT A ZDR06470 025A 2000 647 | DC /2000 * LINE ON THE ZDR06480 025B 0285 648 | DC PRBUF * CONSOLE PRINTER ZDR06490 025C 4400 0B7D 649 | BSI L WRTY0 DO A CARRIAGE ZDR06500 025E 2000 650 | DC /2000 * RETURN ON THE ZDR06510 025F 026F 651 | DC PR900 *CONSOLE PRINTER ZDR06520 0260 4400 0B7D 652 | BSI L WRTY0 DWELL HERE UNTIL 2-11 ZDR06522 0262 0000 653 | DC /0000 *TYPEWRITER I/O 2-11 ZDR06524 0263 70FC 654 | MDX *-4 *IS COMPLETED 2-11 ZDR06526 0264 7008 655 | MDX PP150 BRANCH TO RETURN ZDR06530 0265 4480 02CA 656 | PP100 BSI I CALLP CALL PRNT1 OR PRNT3 ZDR06540 0267 2010 657 | DC /2010 PRINT A LINE ZDR06550 0268 0285 658 | DC PRBUF * ON THE 1132 OR 1403 ZDR06560 0269 027B 659 | DC PRERR * WITH SPACE SUPPRESS ZDR06570 026A 4480 02CA 660 | BSI I CALLP TEST PRNT1 OR PRNT3 ZDR06580 026C 3D00 661 | DC /3D00 SPACE ONE LINE ZDR06590 026D 4C80 0254 662 | PP150 BSC I PRINT RETURN ZDR06600 663 | * ZDR06610 664 | * CONSTANTS AND WORK AREAS ZDR06620 665 | * ZDR06630 026F 0001 666 | PR900 DC 1 BUFFER FOR EXECUTING A CAR- ZDR06640 0270 2181 667 | DMES 'S'R'E *RIAGE RETURN ON CONSOLE ZDR06650 INITIALIZATION, COMMON SUBROUTINES 669 | *************************************************** ZDR06670 670 | * SUBROUTINE TO SPACE A LINE ON THE PRINTER ZDR06680 671 | *************************************************** ZDR06690 672 | * ZDR06700 0271 0000 673 | SPACE DC *-* SUBROUTINE ENTRY POINT ZDR06710 0272 C006 674 | LD SP900 PUT WD CNT OF 1 ZDR06720 0273 D011 675 | STO PRBUF *IN PRINT BUFFER 2-11 ZDR06730 0274 C005 676 | LD SP905 SET UP A BLANK WORD ZDR06740 0275 D010 677 | STO PRBUF+1 2-11 ZDR06750 0276 40DD 678 | BSI PRINT BR TO PRINT SUBROUTINE 2-11 ZDR06760 0277 4C80 0271 679 | BSC I SPACE BRANCH TO MAINLINE ZDR06770 680 | * ZDR06780 681 | * CONSTANTS AND WORK AREAS ZDR06790 682 | * ZDR06800 0279 0001 683 | SP900 DC 1 WD CNT FOR TYPING A BLANK ZDR06810 027A 7F7F 684 | SP905 DMES 1 'S'S'E ZDR06820 INITIALIZATION, COMMON SUBROUTINES 686 | *************************************************** ZDR06840 687 | * PRINTER ERROR SUBROUTINE ZDR06850 688 | *************************************************** ZDR06860 689 | * ZDR06870 027B 0000 690 | PRERR DC *-* SUBROUTINE ENTRY POINT ZDR06880 027C 1802 691 | SRA 2 ZDR06890 027D 4C80 027B 692 | BSC I PRERR BRANCH BACK TO MAINLINE ZDR06900 INITIALIZATION, COMMON SUBROUTINES 694 | * ZDR06920 695 | * CONSTANTS AND WORK AREAS SHARED BY AT LEAST ZDR06930 696 | * TWO SUBROUTINES ZDR06940 697 | * ZDR06950 0280 698 | BSS E 0 CREATE EVEN BOUNDARY ZDR06960 0280 0000 699 | NOPTN DC *-* CURRENT REPETITION COUNT ZDR06970 0281 0003 700 | BUFF3 DC YYYYY-* DUMP HEADER WORD COUNT ZDR06980 0285 701 | YYYYY BES 3 DUMP HEADER BUFFER ZDR06990 0285 0000 702 | PRBUF DC *-* WORD COUNT FOR PRINT CALL ZDR07000 0286 703 | BSS E 'DMCT*'WPLN PRINT BUFFER ZDR07010 02B6 704 | BLANK BSS E 2 SPACE CHARACTERS FOR DUMP ZDR07020 02B8 0001 705 | DC 1 WD CNT FOR CP MESSAGE ZDR07030 02B9 0000 706 | INFOR DC *-* WORD FOR DATA FROM BIT SWS. ZDR07040 02BA 0000 707 | XXXXX DC *-* DISK IDENTIFICATION ZDR07050 02BB 0000 708 | SECT1 DC *-* SCTR NO. CURRENTLY TESTING ZDR07060 02BC 0000 709 | SW001 DC *-* READ-CHECK ERROR SWITCH ZDR07070 02BD 0000 710 | SW002 DC *-* PRINTER SWITCH ZDR07080 02BE 0000 711 | SW003 DC *-* PRINTER SWITCH ZDR07090 02BF 0000 712 | SW004 DC *-* ERROR SWITCH ZDR07100 02C0 0000 713 | SW005 DC *-* INITIALIZE OPTION SWITCH ZDR07110 02C1 0000 714 | SW006 DC *-* DISK PATCH SWITCH ZDR07120 02C2 0000 715 | SW007 DC *-* DISK ANALYSIS OPTION SWITCH ZDR07130 02C3 0000 716 | SW008 DC *-* COMPARE OPTION SWITCH ZDR07140 02C4 0000 717 | BADFL DC *-* DEF CARTRIDGE FLAG ZDR07150 02C5 0000 718 | BADAD DC *-* DEF SCTR ADDR FLAG ZDR07160 02C6 0567 719 | LINKA DC PA300+2 ADDR OF LINK FROM PA300 ZDR07170 02C7 0000 720 | SERCH DC *-* ADDR OF PRINCIPAL CONV TBL ZDR07180 02C8 0000 721 | ADDRX DC *-* ADDR 1132/1403 CONV TABLE ZDR07190 02C9 0000 722 | BFRAD DC *-* ADDR OF DISK BUFFER ZDR07200 02CA 0000 723 | CALLP DC *-* ADDR OF PRINCIPAL PRINT ZDR07210 INITIALIZATION, COMMON SUBROUTINES 725 | * ZDR07230 726 | *************************************************** ZDR07240 727 | * LEVEL 4 INTERRUPT BRANCH TABLE * ZDR07250 728 | *************************************************** ZDR07260 729 | * ZDR07270 02CB 0E2B 730 | DC W3010 ADDR OF ENT TO PRNT3 ZDR07280 02CC 731 | BSS 2 SPACE FILLER ZDR07290 02CE 0B82 732 | IBT04 DC T0020 ADDR INT ENTRY TO TYPE0 ZDR07300 INITIALIZATION, COMMON SUBROUTINES 734 | ************************************************** ZDR07320 735 | * STORAGE FOR MESSAGES ZDR07330 736 | ************************************************** ZDR07340 737 | * ZDR07350 738 | ************************************************** ZDR07360 739 | * MESSAGE 1 TURN ON SW 0 TO INITIALIZE ZDR07370 740 | * SW 1 TO COPY ZDR07380 741 | * SW 2 TO DUMP ZDR07390 742 | * SW 3 TO PATCH ZDR07400 743 | * SW 4 TO ANALYZE ZDR07410 744 | *************************************************** ZDR07420 745 | * ZDR07430 02CF 003B 746 | MSSG1 DC MSSG2-* MESSAGE CHARACTER COUNT ZDR07440 02D0 819C B060 7421 5074 747 | DMES 'RTURN ON:'RSW 0 TO INITLZ'RSW 1 TO ' ZDR07450 8281 9890 21C4 219C | 5021 2074 209C 5CA0 | 8198 9021 FC21 9C50 | 02E0 211C 5054 A481 9890 748 | DMES COPY'RSW 2 TO DUMP'RSW 3 TO PATCH'RS' ZDR07460 21D8 219C 5021 30B0 | 7054 8198 9021 DC21 | 9C50 2154 3C9C 1C24 | 8198 | 02F1 9021 F021 9C50 213C 749 | DMES W 4 TO ANALYZE'RSW 5 TO CMP'RSW 6 T' ZDR07470 743C 5CA4 A034 8198 | 9021 F421 9C50 211C | 7054 8198 9021 D021 | 0301 9C50 2120 7420 9C5C 750 | DMES O INITLZ NEW DISK'R'E 212 ZDR07475 A021 7434 9021 3020 | 9858 8121 | 751 | * ZDR07480 752 | ************************************************** ZDR07490 753 | * MESSAGE 2 ENTER PHYS. DR. NO. (BITS 0-3) ZDR07500 754 | * SECTOR ADDRESS (BITS 4-15) ZDR07510 755 | ************************************************** ZDR07520 756 | * ZDR07530 030B 001B 757 | MSSG2 DC MSSG3-* MESSAGE CHARACTER COUNT ZDR07540 030C 8134 749C 3460 8281 758 | DMES 'RENTER:'RPHYS DR NO. (BITS 0-3)'RSC' ZDR07550 5424 A498 2130 6021 | 7450 0021 FE18 209C | 9821 C484 DCF6 8198 | 031C 1C9C 6021 3C30 3060 759 | DMES TR ADDR (BITS 4-15)'R'E ZDR07560 21FE 1820 9C98 21F0 | 84FC F4F6 8121 | 760 | * ZDR07570 761 | ************************************************** ZDR07580 762 | * MESSAGE 3 ENTER NO. OF SCTRS. TO DUMP ZDR07590 763 | ************************************************** ZDR07600 764 | * ZDR07610 0327 000E 765 | MSSG3 DC MSSG4-* MESSAGE CHARACTER COUNT ZDR07620 0328 3474 9C34 6021 7450 766 | DMES ENTER NO. OF SCTRS TO DUMP'R'E ZDR07630 0021 5010 2198 1C9C | 6098 219C 5021 30B0 | 7054 8121 | 767 | * ZDR07640 768 | ************************************************** ZDR07650 769 | * MESSAGE 4 TURN ON SW 0 FOR ADDITIONAL TESTING ZDR07660 770 | ************************************************** ZDR07670 771 | * ZDR07680 0336 000F 772 | MSSG4 DC MSSG5-* MESSAGE CHARACTER COUNT ZDR07690 0337 9CB0 6074 2150 7421 773 | DMES TURN ON SW 0 FOR MORE TESTING'R'E ZDR07700 9890 21C4 2110 5060 | 2170 5060 3421 9C34 | 989C 2074 1481 | 774 | * ZDR07710 775 | ************************************************** ZDR07720 776 | * MESSAGE 5 ENTRY ERROR...RETRY ZDR07730 777 | ************************************************** ZDR07740 778 | * ZDR07750 0346 0009 779 | MSSG5 DC MSSG6-* MESSAGE CHARACTER COUNT ZDR07760 0347 3474 9C60 A421 3460 780 | DMES ENTRY ERR...RETRY'R'E ZDR07770 6000 0000 6034 9C60 | A481 | 781 | * ZDR07780 782 | ************************************************** ZDR07790 783 | * MESSAGE 6 ENTER DR. NO. IN BITS 12-15 ZDR07800 784 | ************************************************** ZDR07810 785 | * ZDR07820 0350 000E 786 | MSSG6 DC MSSG7-* MESSAGE CHARACTER COUNT ZDR07830 0351 8134 749C 3460 2130 787 | DMES 'RENTER DR NO. (BITS 12-15)'R'E ZDR07840 6021 7450 0021 FE18 | 209C 9821 FCD8 84FC | F4F6 8121 | 788 | * ZDR07850 789 | *************************************************** ZDR07860 790 | * MESSAGE 7 COMPARE OPTION USED...RELOAD DCIP ZDR07870 791 | *************************************************** ZDR07880 792 | * ZDR07890 035F 000F 793 | MSSG7 DC MSSG9-* MESSAGE CHARACTER COUNT ZDR07900 0360 811C 7054 2150 549C 794 | DMES 'RCMP OPTION USED...RELOAD DCIP'E ZDR07910 2050 7421 B098 3430 | 0000 0060 345C 503C | 3021 301C 2054 | 795 | * 2-6 ZDR07920 796 | ************************************************2-6 ZDR07930 797 | * MESSAGE 8 IS REMOVED AS IT WAS A DUPLICATE OF 2-8 ZDR07940 798 | * MESSAGE 6 2-8 ZDR07950 799 | ************************************************** ZDR07960 800 | * MESSAGE 9 NO DEFECTIVE CYLS ZDR07970 801 | ************************************************** ZDR07980 802 | * ZDR07990 036F 0007 803 | MSSG9 DC MSG10-* MESSAGE CHARACTER COUNT ZDR08000 0370 8174 5021 3034 1021 804 | DMES 'RNO DEF CYLS'R'E ZDR08010 1CA4 5C98 8121 | 805 | * ZDR08020 806 | ************************************************** ZDR08030 807 | * MESSAGE 10 DEFECTIVE CYLS FOLLOW ZDR08040 808 | ************************************************** ZDR08050 809 | * ZDR08060 0377 0006 810 | MSG10 DC MSG11-* MESSAGE CHARACTER COUNT ZDR08070 0378 8130 3410 211C A45C 811 | DMES 'RDEF CYLS:'R'E ZDR08080 9882 8121 | 812 | * ZDR08090 813 | ************************************************** ZDR08100 814 | * MESSAGE 11 ENTER CARTRIDGE ID. ZDR08110 815 | ************************************************** ZDR08120 816 | * ZDR08130 037E 0007 817 | MSG11 DC MSG12-* MESSAGE CHARACTER COUNT ZDR08140 037F 3474 9C34 6021 1C3C 818 | DMES ENTER CART ID'R'E ZDR08150 609C 2120 3081 | 819 | * ZDR08160 820 | ************************************************** ZDR08170 821 | * MESSAGE 12 DISK ERROR... TURN ON SW 0 TO RETRY. ZDR08180 822 | ************************************************** ZDR08190 823 | * ZDR08200 0386 0011 824 | MSG12 DC MSG13-* MESSAGE CHARACTER COUNT ZDR08210 0387 3020 9858 2134 6060 825 | DMES DISK ERR...TURN ON SW 0 TO RETRY'R'E ZDR08220 0000 009C B060 7421 | 5074 2198 9021 C421 | 9C50 2160 349C 60A4 | 8121 | 826 | * ZDR08230 827 | ************************************************** ZDR08240 828 | * MESSAGE 13 ENTER SOURCE DR. BITS 0-3 ZDR08250 829 | * OBJECT DR. BITS 12-15 ZDR08260 830 | ************************************************** ZDR08270 831 | * ZDR08280 0398 001A 832 | MSG13 DC MSG14-* MESSAGE CHARACTER COUNT ZDR08290 0399 8134 749C 3460 8281 833 | DMES 'RENTER:'RSOURCE DR (BITS 0-3)'ROBJE' ZDR08300 9850 B060 1C34 2130 | 6021 FE18 209C 9821 | C484 DCF6 8150 187C | 03A9 341C 9C21 3060 21FE 834 | DMES CT DR (BITS 12-15)'R'E ZDR08310 1820 9C98 21FC D884 | FCF4 F681 | 835 | * ZDR08320 836 | *************************************************** ZDR08330 837 | * MESSAGE 14 ENTER REPETITION COUNT IN BITS 11-15 ZDR08340 838 | *************************************************** ZDR08350 839 | * ZDR08360 03B3 000F 840 | MSG14 DC MSG15-* MESSAGE CHARACTER COUNT ZDR08370 03B4 3474 9C34 6021 6034 841 | DMES ENTER REPEAT CNT (BITS 11-15)'R'E ZDR08380 5434 3C9C 211C 749C | 21FE 1820 9C98 21FC | FC84 FCF4 F681 | 842 | * ZDR08390 843 | ************************************************** ZDR08400 844 | * MESSAGE 15 CARTRIDGE IS DEFECTIVE ZDR08410 845 | ************************************************** ZDR08420 846 | * ZDR08430 03C3 0005 847 | MSG15 DC MSG16-* MESSAGE CHARACTER COUNT ZDR08440 03C4 3034 1021 1C3C 609C 848 | DMES DEF CART'R'E ZDR08450 8121 | 849 | * ZDR08460 850 | ************************************************** ZDR08470 851 | * MESSAGE 16 OBJECT ZDR08480 852 | ************************************************** ZDR08490 853 | * ZDR08500 03C9 0003 854 | MSG16 DC MSG17-* MESSAGE CHARACTER COUNT ZDR08510 03CA 5018 7C34 1C9C 855 | DMES OBJECT'E ZDR08520 856 | * ZDR08530 857 | ************************************************** ZDR08540 858 | * MESSAGE 17 SOURCE ZDR08550 859 | ************************************************** ZDR08560 860 | * ZDR08570 03CD 0003 861 | MSG17 DC MSG18-* MESSAGE CHARACTER COUNT ZDR08580 03CE 9850 B060 1C34 862 | DMES SOURCE'E ZDR08590 863 | * ZDR08600 864 | ************************************************** ZDR08610 865 | * MESSAGE 18 CARTRIDGE NOT INITIALIZED ZDR08620 866 | ************************************************** ZDR08630 867 | * ZDR08640 03D1 0000 868 | MSG18 DC MSG19-* MESSAGE CHARACTER COUNT ZDR08650 03D2 869 | DMES CART NOT INITLZED'R'E ZDR08660 870 | * ZDR08670 871 | *************************************************** ZDR08680 872 | * MESSAGE 19 ENTER RELATIVE ADDR OF SCTR WORD ZDR08690 873 | * TO CHANGE ZDR08700 874 | *************************************************** ZDR08710 875 | * ZDR08720 03D2 0013 876 | MSG19 DC MSG20-* MESSAGE CHARACTER COUNT ZDR08730 03D3 8134 749C 3460 2160 877 | DMES 'RENTER RLTV ADDR OF SCTR WD TO CHAN' ZDR08740 5C9C B421 3C30 3060 | 2150 1021 981C 9C60 | 2190 3021 9C50 211C | 243C | 03E4 7414 3421 878 | DMES GE 'E ZDR08750 879 | * ZDR08760 880 | *************************************************** ZDR08770 881 | * MESSAGE 20 ADDRESS ERROR ON SECTOR .... ZDR08780 882 | *************************************************** ZDR08790 883 | * ZDR08800 03E6 0009 884 | MSG20 DC MSG21-* MESSAGE CHARACTER COUNT ZDR08810 03E7 813C 3030 6021 3460 885 | DMES 'RADDR ERR ON SCTR 'E ZDR08820 6021 5074 2198 1C9C | 6021 | 886 | * ZDR08830 887 | *************************************************** ZDR08840 888 | * MESSAGE 21 ERRONEOUS SCTR ADDR WAS .... ZDR08850 889 | *************************************************** ZDR08860 890 | * ZDR08870 03F0 0009 891 | MSG21 DC MSG22-* MESSAGE CHARACTER COUNT ZDR08880 03F1 183C 3021 981C 9C60 892 | DMES BAD SCTR ADDR WAS 'E ZDR08890 213C 3030 6021 903C | 9821 | 893 | * ZDR08900 894 | *************************************************** ZDR08910 895 | * MESSAGE 22 DISK READ ERROR ON SECTOR .... ZDR08920 896 | *************************************************** ZDR08930 897 | * ZDR08940 03FA 000C 898 | MSG22 DC MSG23-* MESSAGE CHARACTER COUNT ZDR08950 03FB 8130 2098 5821 6034 899 | DMES 'RDISK READ ERR ON SCTR 'E ZDR08960 3C30 2134 6060 2150 | 7421 981C 9C60 2121 | 900 | * ZDR08970 901 | *************************************************** ZDR08980 902 | * MESSAGE 23 TURN ON BIT SW 0 TO DUMP ZDR08990 903 | *************************************************** ZDR09000 904 | * ZDR09010 0407 000B 905 | MSG23 DC MSG24-* MESSAGE CHARACTER COUNT ZDR09020 0408 9CB0 6074 2150 7421 906 | DMES TURN ON SW 0 TO DUMP 'E ZDR09030 9890 21C4 219C 5021 | 30B0 7054 2121 | 907 | * ZDR09040 908 | *************************************************** ZDR09050 909 | * MESSAGE 24 COMPARE ERRORS ON SECTORS .... .... ZDR09060 910 | *************************************************** ZDR09070 911 | * ZDR09080 0413 0009 912 | MSG24 DC MSG26-* MSG CHAR COUNT ZDR09090 0414 811C 7054 2134 6060 913 | DMES 'RCMP ERR ON SCTRS 'E ZDR09100 2150 7421 981C 9C60 | 9821 | 914 | * ZDR09110 915 | *************************************************** ZDR09120 916 | * MSG26 OBJ CART IS UCART MSTR ZDR09130 917 | *************************************************** ZDR09140 918 | * ZDR09150 041D 000C 919 | MSG26 DC MSG27-* MSG CHAR COUNT ZDR09160 041E 8150 187C 211C 3C60 920 | DMES 'ROBJ CART IS UCART MSTR'E ZDR09170 9C21 2098 21B0 1C3C | 609C 2170 989C 6021 | 921 | * ZDR09180 922 | *************************************************** ZDR09190 923 | * MSG27 OBJ CART ID INVALID ZDR09200 924 | *************************************************** ZDR09210 925 | * ZDR09220 042A 000A 926 | MSG27 DC MSG28-* MSG CHAR COUNT ZDR09230 042B 8150 187C 211C 3C60 927 | DMES 'ROBJ CART ID INVALID'E ZDR09240 9C21 2030 2120 74B4 | 3C5C 2030 | 928 | * ZDR09250 929 | *************************************************** ZDR09260 930 | * MSG28 OBJ NOT FRESHLY INITLZED ZDR09270 931 | *************************************************** ZDR09280 932 | * ZDR09290 0435 000F 933 | MSG28 DC MSG29-* WORD COUNT OF MESSAGE 212 ZDR09300 0436 8150 187C 211C 3C60 934 | DMES 'ROBJ CART NOT FRESHLY INITLZED'E ZDR09310 9C21 7450 9C21 1060 | 3498 245C A421 2074 | 209C 5CA0 3430 | 0445 0005 935 | MSG29 DC MSG30-* WORD COUNT OF MESSAGE 212 ZDR09312 0446 8198 601C 2120 3021 936 | DMES 'RSRC ID = 'E 212 ZDR09313 C221 | 044B 0005 937 | MSG30 DC TABLE-* WORD COUNT OF MESSAGE 212 ZDR09314 044C 8150 187C 2120 3021 938 | DMES 'ROBJ ID = 'E 212 ZDR09315 C221 | 939 | * 212 ZDR09316 940 | * ZDR09320 941 | *************************************************** ZDR09330 942 | * PRINTER TABLES - * ZDR09340 943 | * LEFT 8 BITS ARE PRINTER CODE. RIGHT 8 BITS * ZDR09350 944 | * OF 1403 PRINTER TABLE IS USED BY THE PATCH * ZDR09360 945 | * SUBROUTINE TO CONVERT FROM KEYBOARD TO HEXA- * ZDR09370 946 | * DECIMAL. THE RIGHT HALF OF THE CONSOLE * ZDR09380 947 | * PRINTER TABLE IS USED BY TYPE0 FOR EBCDIC * ZDR09390 948 | * OUTPUT AS REQUIRED FOR THE DM1 LABEL. * ZDR09400 949 | *************************************************** ZDR09410 950 | * ZDR09420 951 | * 1403 PRINTER TABLE ZDR09430 952 | * ZDR09440 0451 4900 953 | TABLE DC /4900 0 ZDR09450 0452 4001 954 | DC /4001 1 ZDR09460 0453 0102 955 | DC /0102 2 ZDR09470 0454 0203 956 | DC /0203 3 ZDR09480 0455 4304 957 | DC /4304 4 ZDR09490 0456 0405 958 | DC /0405 5 ZDR09500 0457 4506 959 | DC /4506 6 ZDR09510 0458 4607 960 | DC /4607 7 ZDR09520 0459 0708 961 | DC /0708 8 ZDR09530 045A 0809 962 | DC /0809 9 ZDR09540 045B 640A 963 | DC /640A A ZDR09550 045C 250B 964 | DC /250B B ZDR09560 045D 260C 965 | DC /260C C ZDR09570 045E 670D 966 | DC /670D D ZDR09580 045F 680E 967 | DC /680E E ZDR09590 0460 290F 968 | DC /290F F ZDR09600 969 | * ZDR09610 970 | * 1132 PRINTER TABLE ZDR09620 971 | * ZDR09630 0461 F000 972 | DC /F000 0 ZDR09640 0462 F100 973 | DC /F100 1 ZDR09650 0463 F200 974 | DC /F200 2 ZDR09660 0464 F300 975 | DC /F300 3 ZDR09670 0465 F400 976 | DC /F400 4 ZDR09680 0466 F500 977 | DC /F500 5 ZDR09690 0467 F600 978 | DC /F600 6 ZDR09700 0468 F700 979 | DC /F700 7 ZDR09710 0469 F800 980 | DC /F800 8 ZDR09720 046A F900 981 | DC /F900 9 ZDR09730 046B C100 982 | DC /C100 A ZDR09740 046C C200 983 | DC /C200 B ZDR09750 046D C300 984 | DC /C300 C ZDR09760 046E C400 985 | DC /C400 D ZDR09770 046F C500 986 | DC /C500 E ZDR09780 0470 C600 987 | DC /C600 F ZDR09790 988 | * ZDR09800 989 | * CONSOLE PRINTER / EBCDIC TABLE ZDR09810 990 | * ZDR09820 0471 C4F0 991 | CPTBL DC /C4F0 0 ZDR09830 0472 FCF1 992 | DC /FCF1 1 ZDR09840 0473 D8F2 993 | DC /D8F2 2 ZDR09850 0474 DCF3 994 | DC /DCF3 3 ZDR09860 0475 F0F4 995 | DC /F0F4 4 ZDR09870 0476 F4F5 996 | DC /F4F5 5 ZDR09880 0477 D0F6 997 | DC /D0F6 6 ZDR09890 0478 D4F7 998 | DC /D4F7 7 ZDR09900 0479 E4F8 999 | DC /E4F8 8 ZDR09910 047A E0F9 1000 | DC /E0F9 9 ZDR09920 047B 3CC1 1001 | DC /3CC1 A ZDR09930 047C 18C2 1002 | DC /18C2 B ZDR09940 047D 1CC3 1003 | DC /1CC3 C ZDR09950 047E 30C4 1004 | DC /30C4 D ZDR09960 047F 34C5 1005 | DC /34C5 E ZDR09970 0480 10C6 1006 | ENDTB DC /10C6 F ZDR09980 0481 14C7 1007 | DC /14C7 G ZDR09990 0482 24C8 1008 | DC /24C8 H ZDR10000 0483 20C9 1009 | DC /20C9 I ZDR10010 0484 7CD1 1010 | DC /7CD1 J ZDR10020 0485 58D2 1011 | DC /58D2 K ZDR10030 0486 5CD3 1012 | DC /5CD3 L ZDR10040 0487 70D4 1013 | DC /70D4 M ZDR10050 0488 74D5 1014 | DC /74D5 N ZDR10060 0489 50D6 1015 | DC /50D6 O ZDR10070 048A 54D7 1016 | DC /54D7 P ZDR10080 048B 64D8 1017 | DC /64D8 Q ZDR10090 048C 60D9 1018 | DC /60D9 R ZDR10100 048D 98E2 1019 | DC /98E2 S ZDR10110 048E 9CE3 1020 | DC /9CE3 T ZDR10120 048F B0E4 1021 | DC /B0E4 U ZDR10130 0490 B4E5 1022 | DC /B4E5 V ZDR10140 0491 90E6 1023 | DC /90E6 W ZDR10150 0492 94E7 1024 | DC /94E7 X ZDR10160 0493 A4E8 1025 | DC /A4E8 Y ZDR10170 0494 A0E9 1026 | DC /A0E9 Z ZDR10180 0495 405B 1027 | DC /405B DOLLAR SIGN ZDR10190 0496 C07B 1028 | DC /C07B POUND SIGN ZDR10200 0497 047C 1029 | DC /047C AT ZDR10210 0498 4600 1030 | DC /4600 GREATER THAN ZDR10220 0499 DE00 1031 | DC /DE00 LESS THAN ZDR10230 049A D600 1032 | DC /D600 * ZDR10240 049B 0000 1033 | DC /0000 . ZDR10250 1034 | * ZDR10260 1035 | * CONSOLE KEYBOARD TABLE ZDR10270 1036 | * ZDR10280 049C 2000 1037 | KBTBL DC /2000 ZERO ZDR10290 049D 1000 1038 | DC /1000 1 ZDR10300 049E 0800 1039 | DC /0800 2 ZDR10310 049F 0400 1040 | DC /0400 3 ZDR10320 04A0 0200 1041 | DC /0200 4 ZDR10330 04A1 0100 1042 | DC /0100 5 ZDR10340 04A2 0080 1043 | DC /0080 6 ZDR10350 04A3 0040 1044 | DC /0040 7 ZDR10360 04A4 0020 1045 | DC /0020 8 ZDR10370 04A5 0010 1046 | DC /0010 9 ZDR10380 04A6 9000 1047 | DC /9000 A ZDR10390 04A7 8800 1048 | DC /8800 B ZDR10400 04A8 8400 1049 | DC /8400 C ZDR10410 04A9 8200 1050 | DC /8200 D ZDR10420 04AA 8100 1051 | DC /8100 E ZDR10430 04AB 8080 1052 | KBHXE DC /8080 F ZDR10440 04AC 8040 1053 | DC /8040 G ZDR10450 04AD 8020 1054 | DC /8020 H ZDR10460 04AE 8010 1055 | DC /8010 I ZDR10470 04AF 5000 1056 | DC /5000 J ZDR10480 04B0 4800 1057 | DC /4800 K ZDR10490 04B1 4400 1058 | DC /4400 L ZDR10500 04B2 4200 1059 | DC /4200 M ZDR10510 04B3 4100 1060 | DC /4100 N ZDR10520 04B4 4080 1061 | DC /4080 O ZDR10530 04B5 4040 1062 | DC /4040 P ZDR10540 04B6 4020 1063 | DC /4020 Q ZDR10550 04B7 4010 1064 | DC /4010 R ZDR10560 04B8 2800 1065 | DC /2800 S ZDR10570 04B9 2400 1066 | DC /2400 T ZDR10580 04BA 2200 1067 | DC /2200 U ZDR10590 04BB 2100 1068 | DC /2100 V ZDR10600 04BC 2080 1069 | DC /2080 W ZDR10610 04BD 2040 1070 | DC /2040 X ZDR10620 04BE 2020 1071 | DC /2020 Y ZDR10630 04BF 2010 1072 | DC /2010 Z ZDR10640 04C0 4420 1073 | DC /4420 DOLLAR SIGN ZDR10650 04C1 0420 1074 | DC /0420 POUND SIGN ZDR10660 04C2 0220 1075 | DC /0220 AT ZDR10670 04C3 20A0 1076 | DC /20A0 GREATER THAN ZDR10680 04C4 8220 1077 | DC /8220 LESS THAN ZDR10690 04C5 4220 1078 | DC /4220 * ZDR10700 04C6 8420 1079 | KBTBE DC /8420 . ZDR10710 INITIALIZE OPTION 1081 | *************************************************** ZDR10721 1082 | * THE FOLLOWING SECTION PREPARES TO INITIALIZE A ZDR10722 1083 | * VIRGIN PACK ZDR10723 1084 | *************************************************** ZDR10724 1085 | * ZDR10725 04C7 1086 | INITV EQU * 2-12 ZDR10726 04C7 D052 1087 | STO IT950 SET VIRGIN PACK INDR 2-12 ZDR10727 1089 | *************************************************** ZDR10735 1090 | * THE FOLLOWING SECTION HANDLES DISK INITIALIZATION ZDR10740 1091 | *************************************************** ZDR10750 1092 | * ZDR10760 04C8 1093 | INITL EQU * 2-11 ZDR10770 04C8 6500 0350 1094 | LDX L1 MSSG6 ZDR10780 04CA 4400 0144 1095 | IT040 BSI L INSTR FETCH DRIVE CODE ZDR10790 04CC 9049 1096 | S IT920 SUB MAX DR NO. +1 2-11 ZDR10802 04CD 6500 0346 1097 | LDX L1 MSSG5 2-11 ZDR10804 04CF 4C10 04CA 1098 | BSC L IT040,- BR IF ILLEGAL DR NO9 2-11 ZDR10806 04D1 8044 1099 | A IT920 RESTORE DR NO. 2-11 ZDR10808 04D2 100C 1100 | SLA 12 ZDR10810 04D3 D400 02BB 1101 | STO L SECT1 FIRST SCTR TO BE INITLZED ZDR10820 04D5 D043 1102 | STO IT945 ZDR10830 04D6 4400 0210 1103 | BSI L PRSNT BR TO CHECK DEVC ON SYS 2-3 ZDR10900 04D8 C041 1104 | LD IT950 IF VIRGIN PACK, DO NOT 2-12 ZDR10910 04D9 4C28 04DD 1105 | BSC L IT060,Z+ *SEEK HOME 2-12 ZDR10920 04DB 4400 0240 1106 | BSI L HOMEX BR TO SEEK HOME 2-11 ZDR10940 04DD 6500 037E 1107 | IT060 LDX L1 MSG11 2-12 ZDR10980 04DF 4400 0144 1108 | IT080 BSI L INSTR FETCH CARTRIDGE ID ZDR10990 04E1 6500 0346 1109 | LDX L1 MSSG5 ZDR11000 04E3 4C08 04DF 1110 | BSC L IT080,+ BR IF CARTRIDGE ID ILLEGAL ZDR11010 04E5 3000 1111 | WAIT WAIT FOR OPERATOR TO 2-11 ZDR11012 1112 | * *VERIFY DR NO. AND 2-11 ZDR11014 1113 | * *CARTRIDGE ID ENTERED 2-11 ZDR11016 04E6 D400 02BA 1114 | IT090 STO L XXXXX ZDR11020 04E8 C02F 1115 | LD IT930 ZDR11030 04E9 D400 02C0 1116 | STO L SW005 SET TEST PATTERN FLAG ZDR11040 04EB D400 0280 1117 | IT100 STO L NOPTN SET REPEAT CNT FLAG TO MIN ZDR11050 04ED 1810 1118 | SRA 16 ZDR11060 04EE D400 0F68 1119 | STO L BADCS CLEAR BAD CYLINDER COUNT ZDR11070 1120 | * ZDR11080 1121 | * PREPARE THE DEFECTIVE CYLINDER TABLE ZDR11090 1122 | * ZDR11100 04F0 61FD 1123 | LDX 1 -'NDCY ZDR11110 04F1 C025 1124 | LD IT925 PREPARE DEFECTIVE CYLINDER ZDR11120 04F2 D500 0F6C 1125 | IT120 STO L1 BADCS+'DCTB+'NDCY *TBL IN BUFFER ZDR11130 04F4 7101 1126 | MDX 1 1 SKIP WHEN DONE ZDR11140 04F5 70FC 1127 | MDX IT120 BR TO STORE ANOTHER ENTRY ZDR11150 1128 | * ZDR11160 1129 | * WRITE TEST PATTERNS ON DISK TO FIND DEF CYLINDERS ZDR11170 1130 | * ZDR11180 04F6 4039 1131 | BSI PA000 WR PATTERNS ON DISK 2-11 ZDR11190 04F7 7400 0F68 1132 | MDX L BADCS,0 SKIP IF NO DEFECTIVE ZDR11200 04F9 7027 1133 | MDX IT320 *CYLINDERS, BR OTHERWISE ZDR11210 04FA 4400 0B7D 1134 | BSI L WRTY0 PRINT NO DEF CYL MESSAGE ZDR11220 04FC 2000 1135 | DC /2000 PRINT FUNCTION CODE ZDR11230 04FD 036F 1136 | DC MSSG9 ADDR OF MESSAGE ZDR11240 04FE 4400 0596 1137 | IT140 BSI L FI000 WRITE 'IDAD, 'DCOM, LET ZDR11250 0500 6500 0336 1138 | LDX L1 MSSG4 ZDR11260 0502 4400 0144 1139 | BSI L INSTR ASK ABOUT ADDITIONAL TEST ZDR11270 0504 4C10 051F 1140 | BSC L IT300,- EXIT IF NO MORE DESIRED ZDR11280 1141 | * ZDR11290 1142 | * CHECK FOR ADDITIONAL TESTING ZDR11300 1143 | * ZDR11310 0506 C012 1144 | LD IT945 RESET THE INITIAL ZDR11320 0507 D400 02BB 1145 | STO L SECT1 *SECTOR ADDRESS ZDR11330 0509 6500 03B3 1146 | LDX L1 MSG14 ZDR11340 050B 4400 0144 1147 | IT150 BSI L INSTR ASK FOR REPETITION COUNT ZDR11350 050D 6500 0346 1148 | LDX L1 MSSG5 ZDR11360 050F 4C08 050B 1149 | BSC L IT150,+ BR IF DATA SW ENTRY ERROR ZDR11370 0511 100B 1150 | SLA 11 TRUNCATE TO ZDR11380 0512 180B 1151 | SRA 11 *MODULO 32 ZDR11390 0513 4C18 050B 1152 | BSC L IT150,+- BR IF REPEAT IS ZERO ZDR11400 0515 70D5 1153 | MDX IT100 BR TO REPEAT INITIALIZATION ZDR11410 1154 | * ZDR11420 1155 | * CONSTANTS AND WORK AREAS ZDR11430 1156 | * ZDR11440 0516 000B 1157 | IT920 DC 'MXDR NO. OF DRIVES 2-11 ZDR11460 0517 0658 1158 | IT925 DC 'MSCT 1+MAXIMUM SCTR ADDR ZDR11470 0518 0001 1159 | IT930 DC 1 NORMAL REPETITION COUNT ZDR11480 0519 0000 1160 | IT945 DC *-* INITIAL SCTR ADDR ZDR11490 051A 0000 1161 | IT950 DC *-* VIRGIN PACK INDR 2-12 ZDR11495 1162 | * ZDR11500 1163 | * ZDR11530 1164 | * DEFECTIVE CARTRIDGE ZDR11540 1165 | * ZDR11550 051B 4400 0B7D 1166 | IT280 BSI L WRTY0 PRINT DEFECTIVE CART MSSGE ZDR11560 051D 2000 1167 | DC /2000 PRINT FUNCTION CODE ZDR11570 051E 03C3 1168 | DC MSG15 ADDR OF MESSAGE ZDR11580 051F 4C00 0102 1169 | IT300 BSC L CM050 RETURN FOR NEXT OPTION 2-11 ZDR11590 1170 | * ZDR11600 1171 | * REPORT DEFECTIVE CYLINDERS TO USER ZDR11610 1172 | * ZDR11620 0521 4400 0B7D 1173 | IT320 BSI L WRTY0 PRINT DEF CYLINDER MESSAGE ZDR11630 0523 2000 1174 | DC /2000 PRINT FUNCTION CODE ZDR11640 0524 0377 1175 | DC MSG10 ADDR OF MESSAGE ZDR11650 0525 6500 0F68 1176 | LDX L1 BADCS DEF CYL COUNT TO XR1 ZDR11660 0527 4400 0166 1177 | BSI L CNPNT PRINT DEF CYLINDER LIST ZDR11670 0529 74FD 0F68 1178 | MDX L BADCS,-'NDCY SKIP IF NOT TOO MANY ZDR11680 052B 70EF 1179 | MDX IT280 *DEF CYLS, BR OTHERWISE ZDR11690 052C 7400 02C4 1180 | MDX L BADFL,0 SKIP IF CYL ZERO GOOD AND ZDR11700 052E 70EC 1181 | MDX IT280 *ALL ADDRESSES ARE GOOD ZDR11710 052F 70CE 1182 | MDX IT140 BR TO WRITE CYLINDER ZERO ZDR11720 INITIALIZE OPTION 1184 | * ZDR11770 1185 | *************************************************** ZDR11780 1186 | * WRITE TEST PATTERNS ON ALL CYLINDERS ZDR11790 1187 | *************************************************** ZDR11800 1188 | * ZDR11810 0530 0000 1189 | PA000 DC *-* ENTRY POINT ZDR11820 0531 6500 00CB 1190 | LDX L1 'MCYL INITIALIZE NO. CYLINDERS ZDR11830 0533 693A 1191 | STX 1 PA935 *TO TEST ZDR11840 0534 C400 0280 1192 | PA040 LD L NOPTN INITIALIZE NO. TIMES TO ZDR11850 0536 D034 1193 | STO PA910 *WRITE THE TEST PATTERNS ZDR11860 0537 6203 1194 | PA080 LDX 2 'NPTN INITIALIZE NO. PATTERNS ZDR11870 0538 6A33 1195 | STX 2 PA915 *TO WRITE ZDR11880 0539 6500 0570 1196 | LDX L1 PA990 ZDR11890 053B 6904 1197 | STX 1 PA160+1 ZDR11900 053C 6600 0140 1198 | PA120 LDX L2 ENDXX-PRNT3-'SADR BFR LENGTH TO XR1 ZDR11910 053E 6B07 1199 | STX 3 PA200+1 INITIALIZE WITH BUFFER ADDR ZDR11920 053F C400 0000 1200 | PA160 LD L *-* FETCH CURRENT TEST PATTERN ZDR11930 0541 18D0 1201 | RTE 16 ZDR11940 0542 C480 0540 1202 | LD I PA160+1 SAVE CURRENT ZDR11950 0544 D823 1203 | STD PA900 *TEST PATTERN ZDR11960 0545 DE00 0000 1204 | PA200 STD L2 *-* STORE PATTERN IN DISK BFR ZDR11970 0547 72FE 1205 | MDX 2 -2 SKIP WHEN BUFFER FULL ZDR11980 0548 70FC 1206 | MDX PA200 BR TO STORE ANOTHER PAIR ZDR11990 1207 | * ZDR12000 1208 | * WRITE CURRENT PATTERN ON CURRENT CYLINDER ZDR12010 1209 | * ZDR12020 0549 6208 1210 | LDX 2 'CCNT NO. CYLINDERS ON DISK TO X2 ZDR12030 054A C400 02BB 1211 | LD L SECT1 FETCH INITIAL SCTR ADDR ZDR12040 054C 4400 01F2 1212 | PA240 BSI L WRIT1 WRITE TEST PATTERN ON DISK ZDR12050 054E 7401 02BB 1213 | MDX L SECT1,1 POINT TO NEXT SECTOR ZDR12060 0550 72FF 1214 | MDX 2 -1 SKIP AFTER ENTIRE CYLINDER ZDR12070 0551 70FA 1215 | MDX PA240 *WRITTEN, BR OTHERWISE ZDR12080 1216 | * ZDR12090 1217 | * COMPARE DESIRED SCTR ADDR WITH WHAT WAS WRITTEN ZDR12100 1218 | * ZDR12110 0552 6208 1219 | LDX 2 'CCNT NO. SCTRS PER CYL TO XR2 ZDR12120 0553 6101 1220 | PA280 LDX 1 1 ZDR12130 0554 691A 1221 | STX 1 PA940 READ/CMP REPEAT COUNT ZDR12140 0555 1810 1222 | SRA 16 ZDR12150 0556 D400 02BF 1223 | STO L SW004 CLEAR ERROR SWITCH ZDR12160 0558 D400 02C5 1224 | STO L BADAD CLEAR SCTR ADDR ERR SWITCH ZDR12170 055A 74FF 02BB 1225 | MDX L SECT1,-1 PREPARE TO READ SECTORS IN ZDR12180 055C 1000 1226 | NOP *REVERSE ORDER FROM WRITE ZDR12190 055D C400 02BB 1227 | PA290 LD L SECT1 ZDR12200 055F 4400 0202 1228 | BSI L READ1 READ TEST PATTERN FROM DISK ZDR12210 0561 E008 1229 | AND PA905 COMP SCTR ADDR W/O DR CODE ZDR12220 0562 9301 1230 | S 3 'SADR *SCTR ADDR READ FROM DISK ZDR12230 0563 4C18 0576 1231 | BSC L PA360,+- BR IF THEY MATCH ZDR12240 0565 4400 0629 1232 | PA300 BSI L MKERR BR TO RECORD THE ERROR ZDR12250 0567 701A 1233 | MDX PA420 BR TO TEST READ/CMP DONE ZDR12260 1234 | * ZDR12270 1235 | * CONSTANTS AND WORK AREAS ZDR12280 1236 | * ZDR12290 0568 1237 | PA900 BSS E 2 CURRENT TEST PATTERN ZDR12300 056A 0FFF 1238 | PA905 DC /0FFF MASK ZDR12310 056B 0000 1239 | PA910 DC *-* NO. TIMES TO TRY TEST PTRNS ZDR12320 056C 0000 1240 | PA915 DC *-* PATTERN COUNTER/POINTER ZDR12330 056D 0032 1241 | PA920 DC 'TEST NO. RETRIES AFTER TEST ERR ZDR12340 056E 0000 1242 | PA935 DC *-* NO. CYLINDERS TO BE TESTED ZDR12350 056F 0000 1243 | PA940 DC *-* READ/COMPARE REPEAT COUNT ZDR12360 0570 AAAA 1244 | PA990 DC 'PTN1 1ST TEST PATTERN ZDR12370 0571 5555 1245 | DC 'PTN2 2ND TEST PATTERN ZDR12380 0572 0000 1246 | DC 'PTN3 3RD TEST PATTERN ZDR12390 1247 | * ZDR12400 1248 | * RECORD AN ERROR ZDR12410 1249 | * ZDR12420 0573 4400 0629 1250 | PA340 BSI L MKERR BR TO RECORD THE ERROR ZDR12430 0575 700C 1251 | MDX PA420 BR TO TEST READ/CMP DONE ZDR12440 1252 | * ZDR12450 1253 | * COMPARE WHAT HAS BEEN WRITTEN, WORD FOR WORD, ZDR12460 1254 | * WITH THE CURRENT TEST PATTERN ZDR12470 1255 | * ZDR12480 0576 6500 0140 1256 | PA360 LDX L1 ENDXX-PRNT3-'SADR BFR LENGTH TO XR1 ZDR12490 0578 6B02 1257 | STX 3 PA400+1 ZDR12500 0579 C8EE 1258 | PA380 LDD PA900 COMPARE 2 WORDS FROM DISK ZDR12510 057A 9D00 0000 1259 | PA400 SD L1 *-* *WITH 2 PATTERN WORDS ZDR12520 057C 4818 1260 | BSC +- SKIP IF 1ST WORDS UNEQUAL ZDR12530 057D 18D0 1261 | RTE 16 CHECK 2ND WORDS ZDR12540 057E 4C20 0573 1262 | BSC L PA340,Z BR IF UNEQUAL ZDR12550 0580 71FE 1263 | MDX 1 -2 SKIP AFTER ALL WORDS ZDR12560 0581 70F7 1264 | MDX PA380 *COMPARED, BR OTHERWISE ZDR12570 1265 | * ZDR12580 1266 | * CHECK TO SEE IF RETRY READ/COMPARE REQUIRED ZDR12590 1267 | * ZDR12600 0582 74FF 056F 1268 | PA420 MDX L PA940,-1 DECR READ/CMP COUNTER ZDR12610 0584 70D8 1269 | MDX PA290 BR TO READ/CMP SECTOR AGAIN ZDR12620 1270 | * ZDR12630 1271 | * CHECK IF CURRENT PATTERN CHECKED ON EACH SECTOR ZDR12640 1272 | * ZDR12650 0585 72FF 1273 | MDX 2 -1 SKIP AFTER ENTIRE CYLINDER ZDR12660 0586 70CC 1274 | MDX PA280 *CHECKED, BR OTHERWISE ZDR12670 1275 | * ZDR12680 1276 | * CHECK TO SEE THAT ONE PATTERN COMPLETED ZDR12690 1277 | * ZDR12700 0587 7401 0540 1278 | MDX L PA160+1,1 POINT TO NEXT TEST PATTERN ZDR12710 0589 74FF 056C 1279 | MDX L PA915,-1 SKIP AFTER ALL PATTERNS OK ZDR12720 058B 70B0 1280 | MDX PA120 BR TO TEST NEXT PATTERN ZDR12730 1281 | * ZDR12740 1282 | * CHECK TO SEE IF PATTERNS SHOULD BE REPEATED ZDR12750 1283 | * ZDR12760 058C 74FF 056B 1284 | MDX L PA910,-1 SKIP IF CYL TEST DONE ZDR12770 058E 70A8 1285 | MDX PA080 BR TO WRITE PATTERNS AGAIN ZDR12780 1286 | * ZDR12790 1287 | * CHECK TO SEE THAT ALL CYLINDERS DONE ZDR12800 1288 | * ZDR12810 058F 7408 02BB 1289 | MDX L SECT1,'CCNT SPOINT TO NEXT CYLINDER ZDR12820 0591 74FF 056E 1290 | MDX L PA935,-1 SKIP UNLESS ALL CYLS TESTED ZDR12830 0593 70A0 1291 | MDX PA040 BR TO TEST NEXT CYLINDER ZDR12840 0594 4C80 0530 1292 | BSC I PA000 RETURN ZDR12850 INITIALIZE OPTION 1294 | * ZDR12870 1295 | *************************************************** ZDR12880 1296 | * WRITE SECTORS 'IDAD, 'DCOM, AND LET ZDR12890 1297 | *************************************************** ZDR12900 1298 | * ZDR12910 0596 0000 1299 | FI000 DC *-* ENTRY POINT ZDR12920 0597 4400 0665 1300 | BSI L CB000 CLEAR DISK BUFFER ZDR12930 1301 | * ZDR12940 1302 | * CREATE SCTR 'IDAD IN BUFFER ZDR12950 1303 | * ZDR12960 0599 C400 02C9 1304 | LD L BFRAD ZDR12970 059B 8023 1305 | A FI910 COMPUTE AND STORE IN BFR ZDR12980 059C D016 1306 | STO FI120+1 *THE WD CNT OF SCTR 'IDAD ZDR12990 059D C400 02BA 1307 | LD L XXXXX FETCH CARTRIDGE ID AND ZDR13000 059F D305 1308 | STO 3 'SADR+'CIDN *STORE IN DISK BUFFER ZDR13010 1309 | * ZDR13020 1310 | * MOVE DEFECTIVE CYLINDER TABLE TO BUFFER ZDR13030 1311 | * ZDR13040 05A0 6B06 1312 | STX 3 FI070+1 ZDR13050 05A1 7405 05A7 1313 | MDX L FI070+1,'SADR+'NDCY+1 ZDR13060 05A3 62FD 1314 | LDX 2 -'NDCY NO. DEF CYLS TO XR2 ZDR13070 05A4 C600 0F6C 1315 | FI050 LD L2 BADCS+'DCTB+'NDCY ZDR13080 05A6 D600 0000 1316 | FI070 STO L2 *-* STORE A DEF CYL ADDR ZDR13090 05A8 7201 1317 | MDX 2 1 SKIP AFTER TABLE MOVED ZDR13100 05A9 70FA 1318 | MDX FI050 BR TO MOVE ANOTHER ENTRY ZDR13110 05AA 1810 1319 | SRA 16 ZDR13150 05AB D306 1320 | STO 3 'SADR+'COPY ZERO TO COPY CODE ZDR13160 05AC C011 1321 | LD FI905 SET DISK TYPE INDR TO INDI- ZDR13170 05AD D309 1322 | FI090 STO 3 'SADR+'DTYP *CATE DM2 NON-SYS CART ZDR13180 1323 | * ZDR13190 1324 | * MOVE COLD START ERROR MESSAGE TO BUFFER ZDR13200 1325 | * ZDR13210 05AE 6600 0033 1326 | LDX L2 FI994-FI970 ZDR13220 05B0 C600 05CF 1327 | FI100 LD L2 FI970-1 ZDR13230 05B2 D600 0000 1328 | FI120 STO L2 *-* ZDR13240 05B4 72FF 1329 | MDX 2 -1 SKIP AFTER MESSAGE MOVED ZDR13250 05B5 70FA 1330 | MDX FI100 BR TO MOVE ANOTHER WORD ZDR13260 1331 | * ZDR13270 1332 | * WRITE SCTR 'IDAD ON DISK ZDR13280 1333 | * ZDR13290 05B6 C400 02BB 1334 | LD L SECT1 ZDR13300 05B8 E00C 1335 | AND FI945 ZDR13310 05B9 E803 1336 | OR FI900 STORE SCTR ADDR OF SCTR ZDR13320 05BA 4400 01F2 1337 | BSI L WRIT1 WRITE SCTR 'IDAD ON DISK ZDR13330 05BC 7046 1338 | MDX FI200 BR TO WRITE 'DCOM ZDR13340 1339 | * ZDR13380 1340 | * CONSTANTS AND WORK AREAS ZDR13390 1341 | * ZDR13400 05BD 0000 1342 | FI900 DC 'IDAD ADDR OF SCTR W/ CID, ETC. ZDR13410 05BE FFFE 1343 | FI905 DC 'DM2I FLAG FOR DM2 NON-SYS CART ZDR13420 1344 | * HERE ONE CONSTANT IS REMOVED 2-8 ZDR13430 05BF 010F 1345 | FI910 DC $ZEND-'CSTR-1 ADDR LAST WD ERR MSGE ZDR13440 05C0 0001 1346 | FI920 DC 'DCOM SCTR ADDR OF DCOM ZDR13450 05C1 0180 1347 | FI925 DC 'FPAD*'DBSC DB ADDR OF WORK STORAGE ZDR13460 05C2 0018 1348 | FI930 DC 'FPAD INITIAL VALUE FOR WD ADDR ZDR13470 05C3 0008 1349 | FI935 DC 'CIBA CIB SCTR ADDR,NON-SYS CART ZDR13480 05C4 0002 1350 | FI940 DC 'ULET LET SCTR ADDR,NON-SYS CART ZDR13490 05C5 F000 1351 | FI945 DC /F000 MASK ZDR13500 1352 | * INITIALIZATION VALUES FOR LET ZDR13510 05C6 1353 | BSS E 0 CREATE EVEN BOUNDARY ZDR13520 05C6 0009 1354 | FI950 DC FI965-*+1 WD CNT LET HDR AND 1 ENTRY ZDR13530 05C7 0000 1355 | DC *-* SPACE FOR SCTR ADDR ZDR13540 05C8 0000 1356 | DC 0 1ST LET SCTR NO. ZDR13550 05C9 0018 1357 | DC 'FPAD SCTR ADDR OF USER AREA ZDR13560 05CA 0000 1358 | DC 0 RESERVED ZDR13570 05CB 0138 1359 | DC 'SCNT-'LFHD-'LFEN WORDS AVAILABLE ZDR13580 05CC 0000 1360 | DC 0 CHAIN ADDRESS ZDR13590 05CD 7112 1361 | DC /7112 1DUMY IN ZDR13600 05CE 4528 1362 | DC /4528 *NAME CODE ZDR13610 05CF 6280 1363 | FI965 DC 'MSCT*'DBSC-'NDSC*'DBSC-'FPAD*'DBSC ZDR13620 1364 | * ERROR MESSAGE PROGRAM FOR NON-SYSTEM CARTRIDGES.* ZDR13630 1365 | * THIS PROGRAM IS SUBSTITUTED FOR THE COLD START * ZDR13640 1366 | * PROGRAM ON NON-SYSTEM CARTRIDGES. * ZDR13650 05D0 C019 1367 | FI970 LD FI991 ZDR13660 05D1 D400 000C 1368 | STO L $LEV4 INITIALIZE ITV ZDR13670 05D3 61F0 1369 | LDX 1 FI992-FI993 MSG LENGTH TO XR1 ZDR13680 05D4 C500 020C 1370 | FI975 LD L1 $ZEND+FI993-FI970 FETCH CHAR TO PRNT ZDR13690 05D6 D025 1371 | STO FI993 ZDR13700 05D7 0810 1372 | XIO FI990 PRINT THE CHARACTER ZDR13710 05D8 3000 1373 | WAIT WAIT FOR INTERRUPT ZDR13720 05D9 C500 020C 1374 | LD L1 $ZEND+FI993-FI970 FETCH CHAR TO PRNT ZDR13730 05DB 1008 1375 | SLA 8 GET CHAR IN BITS 0-7 ZDR13740 05DC D01F 1376 | STO FI993 ZDR13750 05DD 080A 1377 | XIO FI990 ZDR13760 05DE 3000 1378 | WAIT WAIT FOR INTERRUPT ZDR13770 05DF 7101 1379 | MDX 1 1 INCR WORD COUNT ZDR13780 05E0 70F3 1380 | MDX FI975 BR TO TYPE ANOTHER CHAR ZDR13790 05E1 3000 1381 | FI980 WAIT END OF PROGRAM ZDR13800 05E2 70FE 1382 | MDX FI980 GO BACK TO WAIT ZDR13810 05E3 4C40 0000 1383 | BOSC L *-* RETURN TO INTERRUPT POINT ZDR13820 05E4 1384 | FI985 EQU *-1 INTERRUPT ENTRY POINT ZDR13830 05E5 0804 1385 | XIO FI991 SENSE AND RESET ZDR13840 05E6 70FC 1386 | MDX FI985-1 ZDR13850 1387 | * ZDR13860 1388 | * IOCC WORDS TO PRINT MESSAGE ZDR13870 1389 | * ZDR13880 05E8 1390 | BSS E 0 MAKE ADDRESS EVEN ZDR13890 05E8 020C 1391 | FI990 DC $ZEND+FI993-FI970 ADDR CHAR TO PRINT ZDR13900 05E9 0900 1392 | DC 'I208 WRITE IOCC (2ND WORD) ZDR13910 05EA 01F4 1393 | FI991 DC $ZEND+FI985-FI970 ADDR INTERRUPT ENT ZDR13920 05EB 0F01 1394 | DC 'I206 SENSE IOCC (2ND WORD) ZDR13930 1395 | * ZDR13940 1396 | * MESSAGE CHARACTERS - CONSOLE PRINTER ZDR13950 1397 | * ZDR13960 05EC 819C 2420 9821 2098 1398 | FI992 DMES 'RTHIS IS A NON-SYSTEM CARTRIDGE.'E ZDR13970 213C 2174 5074 8498 | A498 9C34 7021 1C3C | 609C 6020 3014 3400 | 05FC 0000 1399 | FI993 DC *-* CHAR TO BE PRINTED ZDR13980 1400 | * PATCH AREA ZDR13990 0603 1401 | FI994 BES 'SCNT-$ZEND+'CSTR+1-FI993+FI970+1 ZDR14000 1402 | * ZDR14010 1403 | * CREATE DCOM IN BUFFER ZDR14020 1404 | * ZDR14030 0603 4400 0665 1405 | FI200 BSI L CB000 CLEAR DISK BUFFER ZDR14040 0605 C400 02BA 1406 | LD L XXXXX ZDR14050 0607 D339 1407 | STO 3 'SADR+1+#CIDN INITIALIZE #CIDN ZDR14060 0608 C0B8 1408 | LD FI925 ZDR14070 0609 D325 1409 | STO 3 'SADR+1+#ANDU INITIALIZE #ANDU ZDR14080 060A D32A 1410 | STO 3 'SADR+1+#BNDU INITIALIZE #BNDU ZDR14090 060B C0B6 1411 | LD FI930 ZDR14100 060C D32F 1412 | STO 3 'SADR+1+#FPAD INITIALIZE #FPAD ZDR14110 060D C0B5 1413 | LD FI935 ZDR14120 060E D33E 1414 | STO 3 'SADR+1+#CIBA INITIALIZE #CIBA ZDR14130 060F C0B4 1415 | LD FI940 ZDR14140 0610 D352 1416 | STO 3 'SADR+1+#ULET INITIALIZE #ULET ZDR14150 0611 C400 02BB 1417 | LD L SECT1 ZDR14160 0613 E0B1 1418 | AND FI945 ZDR14170 0614 E8AB 1419 | OR FI920 PUT SCTR ADDR OF DCOM ZDR14180 0615 D400 02BB 1420 | STO L SECT1 ZDR14190 1421 | * ZDR14200 1422 | * WRITE DCOM ON DISK ZDR14210 1423 | * ZDR14220 0617 4400 01F2 1424 | BSI L WRIT1 WRITE DCOM ON DISK ZDR14230 1425 | * ZDR14240 1426 | * WRITE LET ON DISK ZDR14250 1427 | * ZDR14260 0619 C400 02BB 1428 | LD L SECT1 ZDR14270 061B E0A9 1429 | AND FI945 ZDR14280 061C E8A7 1430 | OR FI940 PUT SCTR ADDR OF LET ZDR14290 061D D0A9 1431 | STO FI950+'SADR *IN DISK BUFFER 2-11 ZDR14300 061E D400 02BB 1432 | STO L SECT1 ZDR14310 0620 4400 0A2F 1433 | BSI L DX000 WRITE LET ON DISK ZDR14320 0622 0200 1434 | DC /0200 WRITE FUNCTION CODE ZDR14330 0623 05C6 1435 | DC FI950 ADDR OF BUFFER ZDR14340 1436 | * . 2-11 ZDR14350 0624 7400 0AC4 1437 | FI210 MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR14360 0626 70FD 1438 | MDX FI210 LOOP ON DISK BUSY 2-11 ZDR14370 0627 4C80 0596 1439 | BSC I FI000 RETURN ZDR14380 INITIALIZE OPTION 1441 | * ZDR14400 1442 | *************************************************** ZDR14410 1443 | * RECORD AN ERROR ON A CYLINDER ZDR14420 1444 | *************************************************** ZDR14430 1445 | * ZDR14440 0629 0000 1446 | MKERR DC *-* ENTRY POINT ZDR14450 062A 6911 1447 | STX 1 MK100+1 SAVE XR1 ZDR14460 062B C0FD 1448 | LD MKERR ZDR14470 062C 9400 02C6 1449 | S L LINKA BR UNLESS SECTOR ADDR DOES ZDR14480 062E 4C20 0632 1450 | BSC L MK050,Z *NOT CHECK ZDR14490 0630 6C00 02C5 1451 | STX L0 BADAD SET DEF SCTR ADDR FLAG ZDR14500 1452 | * ZDR14510 1453 | * ZDR14520 1454 | * ZDR14530 0632 7400 02BF 1455 | MK050 MDX L SW004,0 SKIP IF THIS IS 1ST ERROR ZDR14540 0634 700A 1456 | MDX MK150 *IN SECTOR,BR OTHERWISE ZDR14550 0635 6C00 02BF 1457 | STX L0 SW004 SET 1ST ERROR SWITCH ZDR14560 0637 C400 056D 1458 | LD L PA920 FETCH RETRY COUNTER ZDR14570 0639 D400 056F 1459 | STO L PA940 READ/CMP REPEAT COUNT ZDR14580 063B 6500 0000 1460 | MK100 LDX L1 *-* RESTORE XR1 ZDR14590 063D 4C80 0629 1461 | BSC I MKERR RETURN ZDR14600 1462 | * ZDR14610 1463 | * RECORD A DEFECTIVE CYLINDER ZDR14620 1464 | * ZDR14630 063F C400 02C5 1465 | MK150 LD L BADAD ZDR14640 0641 4C18 0645 1466 | BSC L MK200,+- BR IF SCTR ADDR OK ZDR14650 0643 6C00 02C4 1467 | STX L0 BADFL SET DEFECTIVE CART INDR ZDR14660 0645 6201 1468 | MK200 LDX 2 1 SET UP TO TERMINATE READ/ ZDR14670 0646 6E00 056F 1469 | STX L2 PA940 *COMPARE ON THIS CYLINDER. ZDR14680 0648 6E00 056B 1470 | STX L2 PA910 ZDR14690 064A 6500 0F68 1471 | LDX L1 BADCS ADDR OF DEF CYL TBL TO XR1 ZDR14700 064C 7580 0F68 1472 | MDX I1 BADCS INCR XR1 BY NO. DEF CYLS ZDR14710 064E C400 02BB 1473 | LD L SECT1 ZDR14720 0650 E013 1474 | AND MK905 CYL BOUNDARY MASK ZDR14730 0651 D400 02BB 1475 | STO L SECT1 RESET TO 1ST SCTR OF CYL ZDR14740 0653 E00F 1476 | AND MK900 BR IF NOT CYL ZERO WHICH ZDR14750 0654 4C20 0658 1477 | BSC L MK250,Z *IS DEFECTIVE. ZDR14760 0656 6C00 02C4 1478 | STX L0 BADFL SET DEFECTIVE CART INDR ZDR14770 0658 F100 1479 | MK250 EOR 1 0 COMPARE WITH ADDR LAST DEF ZDR14780 0659 4C20 065E 1480 | BSC L MK300,Z *CYL, BR IF NOT SAME. ZDR14790 065B 7400 0F68 1481 | MDX L BADCS,0 SKIP IF IT IS CYLINDER ZERO ZDR14800 065D 70DD 1482 | MDX MK100 *BR OTHERWISE ZDR14810 065E F100 1483 | MK300 EOR 1 0 RESTORE CURRENT CYL TO ACC ZDR14820 065F D101 1484 | STO 1 1 STORE IN DEF CYL TABLE ZDR14830 0660 7401 0F68 1485 | MDX L BADCS,1 INCR DEFECTIVE CYLINDER CT ZDR14840 0662 70D8 1486 | MDX MK100 TO EXIT ZDR14850 1487 | * ZDR14860 1488 | * CONSTANTS AND WORK AREAS ZDR14870 1489 | * ZDR14880 0663 0FF8 1490 | MK900 DC /0FF8 MASK ZDR14890 0664 FFF8 1491 | MK905 DC /FFF8 CYL BOUNDARY ADDR MASK ZDR14900 INITIALIZE OPTION 1493 | * ZDR14920 1494 | *************************************************** ZDR14930 1495 | * CLEAR DISK BUFFER * ZDR14940 1496 | *************************************************** ZDR14950 1497 | * ZDR14960 0665 0000 1498 | CB000 DC *-* ENTRY POINT ZDR14970 0666 6600 0140 1499 | LDX L2 'SCNT WD CNT OF BUFFER TO XR2 ZDR14980 0668 6B02 1500 | STX 3 CB030+1 ZDR14990 0669 10A0 1501 | SLT 32 CLEAR REMAINDER OF ZDR15000 066A DE00 0000 1502 | CB030 STD L2 *-* *BUFFER TO ZERO ZDR15010 066C 72FE 1503 | MDX 2 -2 SKIP AFTER BUFFER CLEARED ZDR15020 066D 70FC 1504 | MDX CB030 BR TO CLEAR ANOTHER WORD ZDR15030 066E 4C80 0665 1505 | BSC I CB000 RETURN ZDR15040 COPY OPTION 1507 | *************************************************** ZDR15060 1508 | * THE FOLLOWING SECTION DUPLICATES DISKS ZDR15070 1509 | *************************************************** ZDR15080 1510 | * ZDR15090 0670 1511 | DUPLC EQU * 2-11 ZDR15100 1512 | * ZDR15110 1513 | * FETCH SOURCE AND OBJECT DRIVE NOS.,CHECK VALIDITY ZDR15120 1514 | * ZDR15130 0670 4400 01D6 1515 | BSI L GETDR GET SOURCE AND OBJECT DRS. ZDR15140 0672 6500 071B 1516 | LDX L1 CO900 2-4 ZDR15160 0674 6600 072A 1517 | LDX L2 CO990 ZDR15170 0676 6A1E 1518 | STX 2 CO120+1 ZDR15180 0677 7202 1519 | MDX 2 'NDCY-1 ZDR15190 0678 6A30 1520 | STX 2 CO140+1 ZDR15200 0679 62FF 1521 | LDX 2 -1 SET UP FOR A SOURCE PASS ZDR15240 067A D907 1522 | STD 1 CO940-CO900 SAVE ADDR OF 'IDAD 2-11 ZDR15250 1523 | * ZDR15260 1524 | * SEEK HOME,FETCH SCTR 'IDAD,SAVE SOME OF CONTENTS ZDR15270 1525 | * ZDR15280 067B D400 02BB 1526 | CO100 STO L SECT1 INITIALIZE TO SCTR ZERO ZDR15290 067D D102 1527 | STO 1 CO920-CO900 SAVE DRIVE CODE 2-4 ZDR15300 067E E900 1528 | OR 1 CO900-CO900 DR CODE+MAX SCTR ADR ZDR15310 067F D103 1529 | STO 1 CO922-CO900 *TO CHECK DEF CYLS ZDR15320 0680 4400 0240 1530 | BSI L HOMEX SEEK HOME,READ SCTR 'IDAD ZDR15330 0682 C309 1531 | LD 3 'SADR+'DTYP ZDR15340 0683 D600 0725 1532 | STO L2 CO950+1 SAVE CARTRIDGE TYPE INDR ZDR15350 0685 C306 1533 | LD 3 'SADR+'COPY ZDR15360 0686 D600 0729 1534 | STO L2 CO965+1 SAVE COPY CODE ZDR15370 0688 C305 1535 | LD 3 'SADR+'CIDN ZDR15380 0689 D600 0727 1536 | STO L2 CO960+1 SAVE CARTRIDGE ID ZDR15390 068B C303 1537 | LD 3 'SADR+'DCTB+1 ZDR15400 068C EC00 071D 1538 | OR L CO920 DRIVE CODE ZDR15410 068E 18D0 1539 | RTE 16 ZDR15420 068F C302 1540 | LD 3 'SADR+'DCTB FETCH 1ST DEF CYL ENTRY ZDR15430 0690 4C28 0792 1541 | BSC L CO630,Z+ BR IF NEGATIVE 2-11 ZDR15435 0692 EC00 071D 1542 | OR L CO920 DRIVE CODE ZDR15440 0694 DC00 0000 1543 | CO120 STD L *-* ZDR15450 0696 9400 071E 1544 | S L CO922 BR IF GREATER THAN MAXIMUM ZDR15470 0698 4C30 0792 1545 | BSC L CO630,Z- *ALLOWABLE ADDR ZDR15480 069A C302 1546 | LD 3 'SADR+'DCTB COMPARE ENTRIES 1 AND ZDR15490 069B 9303 1547 | S 3 'SADR+'DCTB+1 *TWO ZDR15500 069C 4C30 0792 1548 | BSC L CO630,Z- BR IF 1ST GT 2ND ZDR15510 069E 4C20 06A4 1549 | BSC L CO130,Z BR IF 1ST LT 2ND ZDR15520 06A0 C303 1550 | LD 3 'SADR+'DCTB+1 ZDR15530 06A1 9079 1551 | S CO900 BR UNLESS BOTH WERE EQUAL ZDR15540 06A2 4C20 0792 1552 | BSC L CO630,Z *TO MAX ALLOWABLE NO. ZDR15550 06A4 C304 1553 | CO130 LD 3 'SADR+'DCTB+2 FETCH LAST DEF CYL2-11 ZDR15560 06A5 4C28 0792 1554 | BSC L CO630,Z+ *AND BR IF NEGATIVE 2-11 ZDR15570 06A7 E875 1555 | OR CO920 OR IN DR NUMBER 2-11 ZDR15580 06A8 D400 0000 1556 | CO140 STO L *-* *AND SAVE 2-11 ZDR15590 06AA 9073 1557 | S CO922 BR IF LARGER THAN MAX AL- ZDR15600 06AB 4C30 0792 1558 | BSC L CO630,Z- *LOWABLE NO. ZDR15610 1559 | * ZDR15620 1560 | * GET WD CNT TO READ ONLY DEF CYL TABLE AND CART- ZDR15630 1561 | * RIDGE ID FROM OBJECT CARTRIDGE INTO BUFFER ZDR15640 1562 | * ZDR15650 06AD 6109 1563 | LDX 1 'SADR+'DTYP ZDR15660 06AE 6D80 02C9 1564 | STX I1 BFRAD WD COUNT FOR READING OBJECT ZDR15670 06B0 7201 1565 | MDX 2 1 SKIP AFTER SOURCE CART DONE ZDR15680 06B1 7009 1566 | MDX CO240 BR TO COPY SCTR 'IDAD ZDR15690 1567 | * ZDR15700 1568 | * PREPARE TO SAVE OBJECT DEF CYL TABLE ZDR15710 1569 | * ZDR15720 06B2 6500 072E 1570 | LDX L1 CO994 ZDR15730 06B4 69E0 1571 | STX 1 CO120+1 ZDR15740 06B5 7102 1572 | MDX 1 'NDCY-1 ZDR15750 06B6 69F2 1573 | STX 1 CO140+1 ZDR15760 06B7 6500 071B 1574 | LDX L1 CO900 RESTORE XR1 2-4 ZDR15770 06B9 C069 1575 | LD CO945 FETCH OBJ SCTR ADDR ZDR15780 06BA 70C0 1576 | MDX CO100 BR TO SAVE OBJ DEF CYL TBL ZDR15790 1577 | * ZDR15800 1578 | * WRITE SCTR 'IDAD ONTO OBJECT CARTRIDGE ZDR15810 1579 | * ZDR15820 06BB 6500 0445 1580 | CO240 LDX L1 MSG29 WRITE SOURCE CARTRIDGE 212 ZDR15821 06BD 4400 015A 1581 | BSI L MSOUT *MESSAGE 212 ZDR15822 06BF C066 1582 | LD CO960 PICK UP SOURCE ID 212 ZDR15823 06C0 D400 02B9 1583 | STO L INFOR *AND 212 ZDR15824 06C2 6500 02B8 1584 | LDX L1 INFOR-1 * PRINT 212 ZDR15825 06C4 4400 0166 1585 | BSI L CNPNT * ON CONSOLE 212 ZDR15826 06C6 6500 044B 1586 | LDX L1 MSG30 WRITE OBJECT CARTRIDGE 212 ZDR15827 06C8 4400 015A 1587 | BSI L MSOUT *MESSAGE 212 ZDR15828 06CA C05C 1588 | LD CO960+1 PICK UP OBJECT ID 212 ZDR15829 06CB D400 02B9 1589 | STO L INFOR *AND 212 ZDR15830 06CD 6500 02B8 1590 | LDX L1 INFOR-1 * PRINT 212 ZDR15831 06CF 4400 0166 1591 | BSI L CNPNT * ON CONSOLE 212 ZDR15832 06D1 3000 1592 | WAIT WAIT FOR OPERATOR ACTION212 ZDR15833 06D2 C049 1593 | LD CO910 SET UP WD CNT TO WRITE A212 ZDR15834 06D3 D300 1594 | STO 3 'WDCT *FULL SECTOR ZDR15840 06D4 C04F 1595 | LD CO950 ZDR15850 06D5 D053 1596 | STO CO965+1 2-4 ZDR15860 06D6 D309 1597 | STO 3 'SADR+'DTYP SOURCE CART TYPE INDR ZDR15870 1598 | * 2-8 ZDR15880 1599 | * TEST IF SOURCE CART TYPE IS VALID 2-8 ZDR15890 1600 | * 2-8 ZDR15900 06D7 4C18 06E9 1601 | BSC L CO250,+- BR IF S IS NON-SYST M0,12-8 ZDR15910 06D9 9047 1602 | S CO927 SUBTR THREE 2-8 ZDR15920 06DA 4C18 06E5 1603 | BSC L CO245,+- BR IF S IS UCART MASTER 2-8 ZDR15930 06DC C047 1604 | LD CO950 S CART TYPE INDR 2-8 ZDR15940 06DD 9042 1605 | S CO926 SUBTR TWO 2-8 ZDR15950 06DE 4C18 06E9 1606 | BSC L CO250,+- BR IF S IS SYST CART 2-8 ZDR15960 06E0 C043 1607 | LD CO950 S CART TYPE INDR 2-8 ZDR15970 06E1 803E 1608 | A CO926 ADD TWO 2-8 ZDR15980 06E2 4C18 06E9 1609 | BSC L CO250,+- BR IF S IS NON-SYST CART2-8 ZDR15990 06E4 7034 1610 | MDX CO336 BR TO PR ER MSG 17,18 2-8 ZDR16000 1611 | * ZDR16010 1612 | * SEE IF OBJECT IS FRESHLY INITIALIZED DM2 CART ZDR16020 1613 | * ZDR16030 06E5 C03F 1614 | CO245 LD CO950+1 OBJECT CART TYPE CODE 2-3 ZDR16040 06E6 8039 1615 | A CO926 TWO ZDR16050 06E7 4C20 0783 1616 | BSC L CO660,Z BR IF NOT FRESHLY INIT DM2 ZDR16060 1617 | * ZDR16070 1618 | * CHECK OBJECT LABEL VALID ZDR16080 1619 | * ZDR16090 06E9 C03D 1620 | CO250 LD CO960+1 OBJECT CART ID ZDR16100 06EA 4C08 0780 1621 | BSC L CO650,+ BR IF OBJ CART LABEL BAD ZDR16110 06EC C03B 1622 | LD CO965 SOURCE COPY CODE ZDR16120 06ED 8031 1623 | A CO925 ZDR16130 06EE D306 1624 | STO 3 'SADR+'COPY INCR COPY CODE BY 1 ZDR16140 1625 | * ZDR16150 1626 | * TEST OBJECT CART FOR SYSTEM CART OR UCART MASTER ZDR16160 1627 | * ZDR16170 06EF C035 1628 | CO270 LD CO950+1 OBJ CART TYPE INDICATOR ZDR16180 06F0 802F 1629 | A CO926 ADD TWO 2-8 ZDR16190 06F1 4C18 06FF 1630 | BSC L CO280,+- BR IF OBJ NONSYST CART 2-8 ZDR16200 06F3 C031 1631 | LD CO950+1 TEST FOR AND BR TO PRINT2-8 ZDR16210 06F4 902C 1632 | S CO927 *ERROR MSG IF OBJ CART 2-8 ZDR16220 06F5 4C18 077B 1633 | BSC L CO640,+- *IS UCART MASTER,EXIT 2-8 ZDR16230 06F7 8027 1634 | A CO925 BR TO PRINT ERROR MSG IF2-8 ZDR16240 06F8 4C20 0799 1635 | BSC L CO629,Z *OBJ TYPE INDR INVALID 2-8 ZDR16250 06FA 6500 0435 1636 | LDX L1 MSG28 ZDR16260 06FC 4400 015A 1637 | BSI L MSOUT MSG- OBJ CART NOT INITLZED ZDR16270 06FE 3000 1638 | CO275 WAIT OPERATOR MUST INTERVENE ZDR16280 06FF C023 1639 | CO280 LD CO945 PUT SCTR ADDR (WITH DRIVE ZDR16290 0700 D301 1640 | STO 3 'SADR *CODE) IN BUFFER ZDR16300 0701 4400 01F2 1641 | BSI L WRIT1 WRITE SCTR 'IDAD ON OBJECT ZDR16310 0703 D01F 1642 | STO CO945 SAVE ADDR NEXT SCTR (OBJ) ZDR16320 1643 | * ZDR16330 1644 | * FETCH NEXT SECTOR (ASSUMED SCTR 'DCOM FOR DM2) ZDR16340 1645 | * ZDR16350 0704 C01D 1646 | LD CO940 ZDR16360 0705 8019 1647 | A CO925 COMPUTE ADDR OF DCOM ZDR16370 0706 4400 0202 1648 | BSI L READ1 FETCH NEXT SCTR ZDR16380 1649 | * ZDR16390 1650 | * FOR DM2 CARTRIDGES, PUT OBJ CARTRIDGE ID IN 'DCOM ZDR16400 1651 | * ZDR16410 0708 6580 02C9 1652 | LDX I1 BFRAD ZDR16440 070A 713E 1653 | MDX 1 #CIDN+'SADR+1+5 2-11 ZDR16450 070B 6904 1654 | STX 1 CO330+1 ZDR16460 070C 6926 1655 | STX 1 CO380+1 ZDR16470 070D 6908 1656 | STX 1 CO335+1 2-4 ZDR16480 070E 61FB 1657 | LDX 1 -5 MINUS DR TBL LENGTH 2-11 ZDR16490 070F C500 0000 1658 | CO330 LD L1 *-* FETCH A CARTRIDGE ID AND ZDR16500 0711 9014 1659 | S CO960 *COMPARE WITH SOURCE ID ZDR16510 0712 4C18 0731 1660 | BSC L CO360,+- BR IF THEY MATCH ZDR16520 0714 1010 1661 | SLA 16 2-4 ZDR16530 0715 D500 0000 1662 | CO335 STO L1 *-* 2-4 ZDR16540 0717 7101 1663 | MDX 1 1 SKIP IF NONE MATCH (DEF PK) ZDR16550 0718 70F6 1664 | MDX CO330 BR TO CHECK NEXT ID ZDR16560 0719 62FF 1665 | CO336 LDX 2 -1 SOURCE INDR TO XR2 ZDR16570 071A 7077 1666 | MDX CO630 BR TO PRNT ERROR MSG 2-11 ZDR16580 1667 | * ZDR16590 1668 | * CONSTANTS AND WORK AREAS ZDR16600 1669 | * ZDR16610 071B 0658 1670 | CO900 DC 'MSCT 1+MAXIMUM SCTR ADDR ZDR16620 071C 0141 1671 | CO910 DC 'SCNT+1 NO. WDS/SCTR,INCLUDING ADDR ZDR16630 071D 0000 1672 | CO920 DC *-* DR CODE / SCTRS LEFT TO CPY ZDR16650 071E 0000 1673 | CO922 DC *-* MAX SCTR ADDR / DEF CYL PTR ZDR16660 071F 0001 1674 | CO925 DC 1 GENERAL PURPOSE CONSTANT ZDR16670 0720 0002 1675 | CO926 DC 2 GENERAL PURPOSE CONSTANT ZDR16680 0721 0003 1676 | CO927 DC 3 2-8 ZDR16690 0722 1677 | BSS E 0 2-4 ZDR16700 0722 0000 1678 | CO940 DC *-* ADDR OF SCTR 'IDAD (SOURCE) ZDR16710 0723 0000 1679 | CO945 DC *-* ADDR OF SCTR 'IDAD (OBJECT) ZDR16720 0724 0000 1680 | CO950 DC *-* CART TYPE INDR (SOURCE) ZDR16730 0725 0000 1681 | DC *-* CART TYPE INDR (OBJECT) ZDR16740 0726 0000 1682 | CO960 DC *-* CARTRIDGE ID (SOURCE) ZDR16750 0727 0000 1683 | DC *-* CARTRIDGE ID (OBJECT) ZDR16760 0728 0000 1684 | CO965 DC *-* SOURCE CART COPY CODE ZDR16770 0729 0000 1685 | DC *-* OBJECT CART COPY CODE ZDR16780 072A 1686 | CO990 BSS E 'NDCY DEFECTIVE CYL TABLE (SOURCE ZDR16790 072D 0FFF 1687 | CO980 DC /0FFF DRIVE CODE EXTRACT MASK ZDR16800 072E 1688 | CO994 BSS E 'NDCY DEFECTIVE CYL TABLE (OBJ) ZDR16810 1689 | * ZDR16840 1690 | * STORE OBJECT CART ID IN 'DCOM ZDR16850 1691 | * ZDR16860 0731 C0F5 1692 | CO360 LD CO960+1 STORE OBJECT CART ID IN ZDR16870 0732 D500 0000 1693 | CO380 STO L1 *-* *DCOM FROM SOURCE CART ZDR16880 0734 C0EE 1694 | CO400 LD CO945 ZDR16890 0735 4400 01F2 1695 | BSI L WRIT1 WRITE SCTR 'DCOM ON OBJECT ZDR16900 0737 D0EB 1696 | STO CO945 SAVE ADDR NEXT SCTR (SOURCE ZDR16910 1697 | * ZDR16920 1698 | * FETCH NEXT SECTOR (ASSUMED SCTR 'RIAD FOR DM2) ZDR16930 1699 | * ZDR16940 0738 C0E9 1700 | LD CO940 ZDR16950 0739 80E6 1701 | A CO926 COMPUTE ADDR OF RES IMAGE ZDR16960 073A 4400 0202 1702 | BSI L READ1 FETCH NEXT SCTR ZDR16970 073C 80E2 1703 | A CO925 ZDR16980 073D D0E4 1704 | STO CO940 SAVE ADDR NEXT SCTR (SOURCE ZDR16990 073E C0EA 1705 | LD CO965+1 2-4 ZDR17050 073F 80E0 1706 | A CO926 2-3 ZDR17060 0740 4C18 0747 1707 | BSC L CO430,+- BR IF SOURCE NON-SYST 2-3 ZDR17070 1708 | * ZDR17080 1709 | * PUT DEFECTIVE CYLINDER TABLE (OBJ) IN SCTR 'RIAD ZDR17090 1710 | * ZDR17100 0742 6680 02C9 1711 | LDX I2 BFRAD ZDR17110 0744 7600 00A3 1712 | MDX L2 2+$DCYL+'NDCY-$CH12 2-10 ZDR17120 0746 403F 1713 | BSI CO700 BR TO SUBSTITUTE DEF TABLE ZDR17130 1714 | * ZDR17140 1715 | * WRITE NEXT SECTOR ('RIAD FOR DM2) ON OBJECT CART ZDR17150 1716 | * ZDR17160 0747 C0DB 1717 | CO430 LD CO945 ZDR17170 0748 4400 01F2 1718 | BSI L WRIT1 WRITE 'RIAD ON OBJECT CART ZDR17180 074A D0D8 1719 | STO CO945 SAVE NEXT SCTR ADDR (OBJ) ZDR17190 1720 | * ZDR17200 1721 | * COPY REST OF SECTORS ZDR17210 1722 | * ZDR17220 074B 6600 063D 1723 | LDX L2 'MSCT-1-'NDCY*'CCNT-'RIAD SAVE NO. ZDR17230 074D 6E00 071D 1724 | STX L2 CO920 *SCTRS LEFT TO COPY ZDR17240 074F C0D2 1725 | CO460 LD CO940 ZDR17250 0750 6500 072A 1726 | LDX L1 CO990 ZDR17260 0752 4400 01CA 1727 | BSI L DC000 CHECK FOR DEF CYLINDER (S) ZDR17270 0754 D0CD 1728 | STO CO940 ZDR17280 0755 4400 0202 1729 | BSI L READ1 READ A SECTOR ZDR17290 0757 7401 0722 1730 | MDX L CO940,1 COMPUTE ADDR OF NEXT SCTR ZDR17300 0759 C0C9 1731 | CO500 LD CO945 ZDR17340 075A 6500 072E 1732 | LDX L1 CO994 ZDR17350 075C 4400 01CA 1733 | BSI L DC000 CHECK FOR DEF CYLINDER (O) ZDR17360 075E D0C4 1734 | STO CO945 ZDR17370 075F C0C3 1735 | CO510 LD CO945 ZDR17380 0760 4400 01F2 1736 | BSI L WRIT1 WRITE A SECTOR ON OBJECT ZDR17390 0762 6B09 1737 | STX 3 CO530 ZDR17400 0763 1810 1738 | SRA 16 ZDR17410 0764 D400 02BC 1739 | STO L SW001 CLEAR READ-CHECK ERROR SW ZDR17420 0766 C400 02BB 1740 | LD L SECT1 ZDR17430 0768 D301 1741 | STO 3 'SADR ZDR17440 0769 4400 0A2F 1742 | BSI L DX000 PERFORM A READ CHECK ZDR17450 076B 0180 1743 | DC /0180 READ-CHECK FUNCTION CODE ZDR17460 076C 0000 1744 | CO530 DC *-* ADDR OF DISK BUFFER ZDR17470 1745 | * . 2-11 ZDR17480 076D 7400 0AC4 1746 | CO540 MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR17490 076F 70FD 1747 | MDX CO540 LOOP ON DISK BUSY 2-11 ZDR17500 0770 7400 02BC 1748 | MDX L SW001,0 SKIP IF NO READ-CHECK ZDR17510 0772 70EC 1749 | MDX CO510 *ERROR,BR OTHERWISE ZDR17520 0773 C0AF 1750 | LD CO945 ZDR17530 0774 80AA 1751 | A CO925 INCR OBJ SCTR ZDR17540 0775 D0AD 1752 | STO CO945 *ADDR BY 1 ZDR17550 0776 74FF 071D 1753 | MDX L CO920,-1 SKIP WHEN ALL SCTRS COPIED ZDR17560 0778 70D6 1754 | MDX CO460 BR TO COPY MORE ZDR17570 0779 4C00 0102 1755 | CO550 BSC L CM050 RETURN FOR NEXT OPTION 2-11 ZDR17580 1756 | * ZDR17680 1757 | * OBJECT CART IS UCART MASTER ZDR17690 1758 | * ZDR17700 077B 6500 041D 1759 | CO640 LDX L1 MSG26 ERROR MESSAGE ADDR ZDR17710 077D 4400 015A 1760 | CO645 BSI L MSOUT BR TO PRINT ZDR17720 077F 70F9 1761 | MDX CO550 EXIT ZDR17730 1762 | * ZDR17740 1763 | * ERROR MSG - OBJ CART ID INVALID ZDR17750 1764 | * ZDR17760 0780 6500 042A 1765 | CO650 LDX L1 MSG27 ERROR MSG ADDR ZDR17770 0782 70FA 1766 | MDX CO645 BR TO PRINT AND EXIT ZDR17780 1767 | * ZDR17790 1768 | * ERROR MSG - OBJ CART NOT FRESHLY INITIALIZED ZDR17800 1769 | * ZDR17810 0783 6500 0435 1770 | CO660 LDX L1 MSG28 ERROR MSG ADDR ZDR17820 0785 70F7 1771 | MDX CO645 BR TO PRINT AND EXIT ZDR17830 COPY OPTION 1773 | * ZDR17850 1774 | *************************************************** ZDR17860 1775 | * SUBSTITUTE OBJECT DEFECTIVE CYLINDER TABLE ZDR17870 1776 | *************************************************** ZDR17880 1777 | * ZDR17890 0786 0000 1778 | CO700 DC *-* ENTRY POINT ZDR17900 0787 6A05 1779 | STX 2 CO720+1 DEF CYL TBL ADDR IN BUFFER ZDR17910 0788 62FD 1780 | LDX 2 -'NDCY MINUS NO. DEF CYLS ZDR17920 0789 C600 0731 1781 | CO710 LD L2 CO994+'NDCY FETCH A DEF CYL TABLE ZDR17930 078B E0A1 1782 | AND CO980 REMOVE DRIVE CODE 2-11 ZDR17940 078C D600 0000 1783 | CO720 STO L2 *-* *ENTRY MOVE TO BUFFER 2-4 ZDR17950 078E 7201 1784 | MDX 2 1 INCR POINTER/COUNTER ZDR17960 078F 70F9 1785 | MDX CO710 MOVE NEXT TABLE ENTRY ZDR17970 0790 4C80 0786 1786 | BSC I CO700 EXIT ZDR17980 COPY OPTION 1788 | *************************************************** ZDR18000 1789 | * SOURCE OR OBJECT CARTRIDGE HAS NOT BEEN ZDR18010 1790 | * INITIALIZED ZDR18020 1791 | ************************************************** ZDR18030 1792 | * ZDR18040 0792 1793 | CO630 EQU * 2-11 ZDR18050 0792 7201 1794 | MDX 2 1 SKIP IF SOURCE DRIVE ZDR18060 0793 7005 1795 | MDX NT050 *BRANCH OTHERWISE ZDR18070 0794 4400 0B7D 1796 | BSI L WRTY0 PRINT -SOURCE- ZDR18080 0796 2000 1797 | DC /2000 PRINT FUNCTION CODE ZDR18090 0797 03CD 1798 | DC MSG17 ADDR OF MESSAGE ZDR18100 0798 7004 1799 | MDX NT100 BR TO FINISH MESSAGE ZDR18110 0799 1800 | CO629 EQU * 2-11 ZDR18115 0799 4400 0B7D 1801 | NT050 BSI L WRTY0 PRINT -OBJECT- ZDR18120 079B 2000 1802 | DC /2000 PRINT FUNCTION CODE ZDR18130 079C 03C9 1803 | DC MSG16 ADDR OF MESSAGE ZDR18140 079D 4400 0B7D 1804 | NT100 BSI L WRTY0 PRINT -CARTRIDGE NOT ZDR18150 079F 2000 1805 | DC /2000 *INITIALIZED- ZDR18160 07A0 03D1 1806 | DC MSG18 ADDR OF MESSAGE ZDR18170 07A1 70D7 1807 | MDX CO550 BR TO EXIT FROM COPY 2-11 ZDR18180 DUMP OPTION 1809 | * ZDR18200 1810 | ************************************************** ZDR18210 1811 | * THE FOLLOWING SECTION HANDLES DISK DUMPING ZDR18220 1812 | ************************************************** ZDR18230 1813 | * ZDR18240 07A2 0000 1814 | DUMPZ DC *-* ENTRY POINT ZDR18250 1815 | * ZDR18260 1816 | * SKIP TO PRINT CONTENTS OF DISK BUFFER IF SW006 ZDR18270 1817 | * IS ODD INDICATING ENTRY FROM PATCH SUBROUTINE. ZDR18280 1818 | * ZDR18290 07A3 C400 02C1 1819 | LD L SW006 PATCH SUBROUTINE SWITCH ZDR18300 07A5 4C04 07D6 1820 | BSC L DP090,E BR TO READ SECTOR ZDR18310 1821 | * ZDR18320 1822 | * FETCH DESIRED SCTR ADDR, INCLUDING DRIVE CODE ZDR18330 1823 | * ZDR18340 07A7 6500 030B 1824 | DP040 LDX L1 MSSG2 PREPARE TO PRINT MESSAGE 2 ZDR18350 07A9 4400 0144 1825 | DP042 BSI L INSTR FETCH SCTR ADDR ZDR18360 07AB D400 02BB 1826 | STO L SECT1 SAVE SCTR ADDR ZDR18370 07AD 180C 1827 | SRA 12 RT JUSTIFY DR NO. 2-11 ZDR18390 07AE 905C 1828 | S DP920 BR IF DRIVE CODE ZDR18400 07AF 6500 0346 1829 | DP043 LDX L1 MSSG5 PREPARE TO PRNT MSG 5 2-11 ZDR18405 07B1 4C10 07A9 1830 | BSC L DP042,- *IS ILLEGAL ZDR18410 07B3 8057 1831 | A DP920 RESTORE DR NO. 2-11 ZDR18412 07B4 100C 1832 | SLA 12 LEFT JUSTIFY DR NO. 2-11 ZDR18413 07B5 4400 0210 1833 | BSI L PRSNT BR TO CHK FOR DR PRESNT2-11 ZDR18414 07B7 C400 02BB 1834 | LD L SECT1 FETCH SECTOR ADDR 2-11 ZDR18415 07B9 E052 1835 | AND DP925 ZDR18420 07BA 904D 1836 | S DP905 BR IF SECTOR ADDR ZDR18430 07BB 4C10 07AF 1837 | BSC L DP043,- *IS ILLEGAL 2-11 ZDR18440 07BD D04B 1838 | STO DP910 ZDR18450 1839 | * ZDR18500 1840 | * SET NO. SECTORS TO BE DUMPED TO ONE IF DUMPZ WAS ZDR18510 1841 | * ENTERED FROM DISK PATCH SUBROUTINE. ZDR18520 1842 | * ZDR18530 07BE C400 02C1 1843 | LD L SW006 DISK PATCH SUBR SWITCH ZDR18540 07C0 4C18 07C5 1844 | BSC L DP070,+- BR IF NOT ENTERED FR PATCH ZDR18550 07C2 6101 1845 | LDX 1 1 ZDR18560 07C3 6946 1846 | STX 1 DP915 SET TO DUMP ONE SECTOR ONLY ZDR18570 07C4 701A 1847 | MDX DP100 BR TO SEEK HOME ZDR18580 1848 | * ZDR18590 1849 | * FETCH NO. SECTORS TO BE DUMPED ZDR18600 1850 | * ZDR18610 07C5 6500 0327 1851 | DP070 LDX L1 MSSG3 ZDR18620 07C7 4400 0144 1852 | DP080 BSI L INSTR FETCH NO. SCTRS DISIRED ZDR18630 07C9 D040 1853 | STO DP915 ZDR18640 07CA 6500 0346 1854 | LDX L1 MSSG5 ZDR18650 07CC 4C08 07C7 1855 | BSC L DP080,+ BR IF NO.NOT GT ZERO 2-4 ZDR18660 07CE 803A 1856 | A DP910 BR IF TERMINAL SECTOR ZDR18670 07CF 4C30 07C7 1857 | BSC L DP080,Z- *ADDR GTE 'MSCT ZDR18680 07D1 4400 0B7D 1858 | TEST BSI L WRTY0 TEST TO SEE IF 2-9 ZDR18690 07D3 0000 1859 | DC /0000 *CARRIAGE RETURN OPERAT 2-9 ZDR18700 07D4 70FC 1860 | MDX TEST *COMPLETE 2-9 ZDR18710 07D5 7009 1861 | MDX DP100 BR TO SEEK HOME ZDR18720 1862 | * ZDR18730 1863 | * SET PAGE SWITCH ODD TO AVOID SKIP TO NEW PAGE ZDR18740 1864 | * ZDR18750 07D6 4C10 07DD 1865 | DP090 BSC L DP095,- BR IF SKIP REQUIRED ZDR18760 07D8 6101 1866 | LDX 1 1 ZDR18770 07D9 6930 1867 | STX 1 DP915 SET TO DUMP ONE SECTOR ZDR18780 07DA C400 02BB 1868 | LD L SECT1 ENTRY WAS FROM ANLYZ ZDR18790 07DC 7013 1869 | MDX DP130 BR TO DUMP BUFFER ONLY ZDR18800 07DD 7401 080D 1870 | DP095 MDX L DP930,1 SET PAGE SWITCH ODD ZDR18810 1871 | * ZDR18820 1872 | * SEEK HOME ZDR18830 1873 | * ZDR18840 07DF 4400 0240 1874 | DP100 BSI L HOMEX SEEK HOME ZDR18850 1875 | * ZDR18860 1876 | * SAVE DEFECTIVE CYLINDER TABLE ZDR18870 1877 | * ZDR18880 07E1 6680 02C9 1878 | LDX I2 BFRAD ADDR IN DISK BFR OF DEF CYL ZDR18890 07E3 7205 1879 | MDX 2 'DCTB+'NDCY+'SADR *TABLE TO XR2 ZDR18900 07E4 6A02 1880 | STX 2 DP110+1 ZDR18910 07E5 62FD 1881 | LDX 2 -'NDCY MINUS NO. DEF CYLS TO XR2 ZDR18920 07E6 C600 0000 1882 | DP110 LD L2 *-* ZDR18930 07E8 D600 0F6C 1883 | STO L2 BADCS+'DCTB+'NDCY DEF CYL TBL ZDR18940 07EA 7201 1884 | MDX 2 1 INCR TABLE POINTER ZDR18950 07EB 70FA 1885 | MDX DP110 BR TO CONTINUE MOVE ZDR18960 1886 | * ZDR18970 1887 | * READ A SECTOR AND SET UP SECTOR HEADER ZDR18980 1888 | * ZDR18990 07EC C400 02BB 1889 | DP120 LD L SECT1 ZDR19000 07EE 4400 0202 1890 | BSI L READ1 READ A SECTOR ZDR19010 07F0 D400 0282 1891 | DP130 STO L BUFF3+1 ZDR19020 07F2 E019 1892 | AND DP925 ZDR19030 07F3 D400 0284 1893 | STO L BUFF3+3 ZDR19040 1894 | * ZDR19050 1895 | * CHECK TO SEE IF ON A DEFECTIVE CYLINDER ZDR19060 1896 | * ZDR19070 07F5 E01A 1897 | AND DP945 ZDR19080 07F6 62FD 1898 | LDX 2 -'NDCY MINUS NO. DEF CYLS TO XR2 ZDR19090 07F7 9600 0F6C 1899 | DP160 S L2 BADCS+'DCTB+'NDCY COMPARE W/ DEF CYL ZDR19100 07F9 4C18 084C 1900 | BSC L DP400,+- BR IF NOW ON DEFECTIVE CYL ZDR19110 07FB 8600 0F6C 1901 | A L2 BADCS+'DCTB+'NDCY RESTORE SCTR ADDR ZDR19120 07FD 4C02 0811 1902 | BSC L DP240,C BR IF BELOW DEF CYL ADDR ZDR19130 07FF 74F8 0284 1903 | MDX L BUFF3+3,-'CCNT DECR LOGICAL SCTR ADDR ZDR19140 0801 7201 1904 | MDX 2 1 SKIP AFTER DEF CYLS CHECKED ZDR19150 0802 70F4 1905 | MDX DP160 BR TO CHECK NEXT DEF CYL ZDR19160 0803 700D 1906 | MDX DP240 BR AROUND CONSTANTS ZDR19170 1907 | * ZDR19180 1908 | * CONSTANTS AND WORK AREAS ZDR19190 1909 | * EVEN-NUMBERED LABELS ARE ON EVEN BOUNDARIES ZDR19200 1910 | * ZDR19210 0804 1911 | BSS E 0 CREATE EVEN BOUNDARY ZDR19220 0804 7F7F 7F7F 1912 | DP900 DMES 1 'X'X'X'X'E ZDR19230 0806 2121 2121 1913 | DP902 DMES '4S'E CONSOLE PRINTER SPACES ZDR19240 0808 0658 1914 | DP905 DC 'MSCT 1+MAXIMUM SCTR HDDR ZDR19250 0809 0000 1915 | DP910 DC *-* INITIAL SCTR ADDR W/O DR NO ZDR19260 080A 0000 1916 | DP915 DC *-* NO. SECTORS REQUESTED ZDR19270 080B 000B 1917 | DP920 DC 'MXDR MAX NO. OF DRIVES 2-11 ZDR19280 080C 0FFF 1918 | DP925 DC /0FFF MASK ZDR19290 080D 0000 1919 | DP930 DC *-* PAGE SWITCH ZDR19300 080E 0140 1920 | DP935 DC 'SCNT NO. WORDS PER SECTOR ZDR19310 080F DEFC 1921 | DP940 DC /DEFC DEFECTIVE CYLINDER FLAG ZDR19320 0810 FFF8 1922 | DP945 DC /FFF8 MASK ZDR19330 1923 | * ZDR19340 1924 | * INITIALIZE TO PRINT ON FASTEST PRINTER ZDR19350 1925 | * ZDR19360 0811 C8F4 1926 | DP240 LDD DP902 CONSOLE PRINTER SPACES ZDR19370 0812 7400 02BD 1927 | MDX L SW002,0 SKIP IF CONSOLE PRINTER ZDR19380 0814 C8EF 1928 | LDD DP900 ZDR19390 0815 DC00 02B6 1929 | STD L BLANK ZDR19400 0817 C400 02BD 1930 | LD L SW002 SET SWITCH TO USE ZDR19410 0819 D400 02BE 1931 | STO L SW003 *PRINCIPAL PRINTER ZDR19420 081B C400 02C8 1932 | LD L ADDRX POINT TO CONVERSION TABLE ZDR19430 081D D400 02C7 1933 | STO L SERCH *FOR PRINCIPAL PRINTER ZDR19440 1934 | * ZDR19450 1935 | * PRINT HEADER AND CONTENTS OF SECTOR ZDR19460 1936 | * ZDR19470 081F C301 1937 | LD 3 'SADR FETCH PHYSICAL SCTR ADDR ZDR19480 0820 D400 0283 1938 | STO L BUFF3+2 ZDR19490 0822 C0EA 1939 | LD DP930 ZDR19500 0823 4C04 082C 1940 | BSC L DP320,E BR IF PAGE SWITCH IS ODD ZDR19510 0825 C400 02BE 1941 | LD L SW003 BR IF CONSOLE ZDR19520 0827 4C18 082C 1942 | BSC L DP320,+- *PRINTER BEING USED ZDR19530 0829 4480 02CA 1943 | BSI I CALLP CALL TO PRINCIPAL PRINTER ZDR19540 082B 3100 1944 | DC /3100 SKIP-TO-CHANNEL-1 FUNC CODE ZDR19550 082C 7401 080D 1945 | DP320 MDX L DP930,1 MAKE PAGE SWITCH ODD ZDR19560 082E 6500 0281 1946 | LDX L1 BUFF3 ZDR19570 0830 4400 0166 1947 | BSI L CNPNT PRINT THE HEADER ZDR19580 0832 4400 0271 1948 | BSI L SPACE SKIP A LINE ZDR19590 0834 6580 02C9 1949 | LDX I1 BFRAD ADDR OF SCTR ZDR19600 0836 7101 1950 | MDX 1 'SADR *ADDR TO XR1 ZDR19610 0837 C0D6 1951 | LD DP935 ZDR19620 0838 D301 1952 | STO 3 'SADR ZDR19630 0839 4400 0166 1953 | BSI L CNPNT PRINT CONTENTS OF SECTOR ZDR19640 083B C400 0283 1954 | LD L BUFF3+2 ZDR19650 083D D301 1955 | STO 3 'SADR RESTORE SECTOR ADDRESS ZDR19660 083E 6203 1956 | LDX 2 3 ZDR19670 083F 4400 0271 1957 | DP360 BSI L SPACE SKIP A LINE ZDR19680 0841 72FF 1958 | MDX 2 -1 SKIP AFTER SKIPPING 3 LINES ZDR19690 0842 70FC 1959 | MDX DP360 BR TO SKIP ANOTHER LINE ZDR19700 1960 | * ZDR19710 1961 | * CHECK TO SEE IF DONE ZDR19720 1962 | * ZDR19730 0843 7401 02BB 1963 | MDX L SECT1,1 POINT TO NEXT SECTOR ZDR19740 0845 74FF 080A 1964 | MDX L DP915,-1 SKIP IF ALL SCTRS DUMPED ZDR19750 0847 70A4 1965 | MDX DP120 BR TO DUMP NEXT SECTOR ZDR19760 1966 | * ZDR19770 1967 | * RETURN ZDR19780 1968 | * ZDR19790 0848 1810 1969 | SRA 16 MAKE PAGE ZDR19800 0849 D0C3 1970 | STO DP930 *SWITCH EVEN ZDR19810 084A 4C80 07A2 1971 | BSC I DUMPZ RETURN ZDR19820 1972 | * ZDR19830 1973 | * ALLOW FOR A DEFECTIVE CYLINDER ZDR19840 1974 | * ZDR19850 084C C0C2 1975 | DP400 LD DP940 ZDR19860 084D D400 0284 1976 | STO L BUFF3+3 PUT A FLAG IN THE HEADER ZDR19870 084F 70C1 1977 | MDX DP240 BR TO CHECK NEXT DEF CYL ZDR19880 DISK PATCH OPTION 1979 | * ZDR19900 1980 | *************************************************** ZDR19910 1981 | * THE FOLLOWING SECTION HANDLES DISK PATCHING ZDR19920 1982 | *************************************************** ZDR19930 1983 | * ZDR19940 0850 1984 | PATCH EQU * 2-11 ZDR19950 1985 | * ZDR19960 1986 | * BR TO DUMPZ WITH SW006 SET TO DUMP ONE SECTOR TO ZDR19970 1987 | * BE PATCHED. ZDR19980 1988 | * ZDR19990 0850 6102 1989 | LDX 1 2 ZDR20000 0851 6D00 02C1 1990 | STX L1 SW006 SET TO DUMP ONE SECTOR ZDR20010 0853 4400 07A2 1991 | BSI L DUMPZ BR TO DUMP ZDR20020 1992 | * ZDR20030 1993 | * INITIALIZATION ZDR20040 1994 | * ZDR20050 0855 4400 0135 1995 | BSI L CPOUT PRINT ON CONSOLE PRINTER ZDR20060 0857 1010 1996 | SLA 16 ZDR20070 0858 D03F 1997 | STO PD920 CLEAR STORE-WORD BUFFER ZDR20080 0859 D041 1998 | STO PD935 CLEAR FILL TO END FLAG ZDR20090 1999 | * ZDR20100 2000 | * READ RELATIVE ADDR OF WORD TO PATCH FROM BIT-SW. ZDR20110 2001 | * FFFF (SECTOR ADDR) TO 013F (+319) ALLOWABLE. ZDR20120 2002 | * ZDR20130 085A 6500 03D2 2003 | LDX L1 MSG19 PREPARE TO PRINT MESSAGE 19 ZDR20140 085C 4400 0144 2004 | PD040 BSI L INSTR FETCH RELATIVE SCTR WORD ZDR20150 085E 6500 0346 2005 | LDX L1 MSSG5 PREPARE TO PRINT MESSAGE 5 ZDR20160 0860 D033 2006 | STO PD900 REL SCTR WORD TO PATCH ZDR20170 0861 9033 2007 | S PD905 WDS/SCTR (140) ZDR20180 0862 4C10 085C 2008 | BSC L PD040,- BR IF /140 OR GREATER-ERROR ZDR20190 0864 8031 2009 | A PD910 WDS/SCTR+1 (141) ZDR20200 0865 4C10 0868 2010 | BSC L PD080,- BR NOT LESS THAN /FFFF - OK ZDR20210 0867 70F4 2011 | MDX PD040 BR TO PRINT ERROR...RETRY ZDR20220 2012 | * ZDR20230 2013 | * GO TO WRTY0 TO INPUT ONE CHARACTER FROM KEYBOARD ZDR20240 2014 | * ZDR20250 0868 7400 089B 2015 | PD080 MDX L PD935,0 SKIP NEXT IF NOT FILL SCTR ZDR20260 086A 7042 2016 | MDX PD240 BR TO FILL SECTOR ZDR20270 086B 4400 0B7D 2017 | BSI L WRTY0 BR TO GET ONE CHARACTER ZDR20280 086D 1001 2018 | DC /1001 READ/PRINT CONTROL PARAM ZDR20290 086E 08A2 2019 | DC PD990 I/O AREA ZDR20300 086F C024 2020 | LD PD900 DISPLAY RELATIVE SCTR WORD ZDR20310 0870 18D0 2021 | RTE 16 *IN THE EXTENSION. ZDR20320 0871 3000 2022 | WAIT ZDR20330 0872 4400 0B7D 2023 | PD120 BSI L WRTY0 WAIT FOR CHARACTER INPUT ZDR20340 0874 0000 2024 | DC 0 TEST CONTROL PARAMETER ZDR20350 0875 70FC 2025 | MDX PD120 BR TO WAIT FOR OP COMPLETE ZDR20360 2026 | * ZDR20370 2027 | * TEST FOR SPECIAL CHARACTERS ZDR20380 2028 | * ZDR20390 0876 C02C 2029 | LD PD990+1 CHARACTER INPUT ZDR20400 0877 901F 2030 | S PD915 HOLLERITH NEW LINE ZDR20410 0878 4C18 08AD 2031 | BSC L PD240,+- BR IF EOF ZDR20420 087A 9021 2032 | S PD980 INCR POINTER CHAR CONSTANT ZDR20430 087B 4C18 08BC 2033 | BSC L PD280,+- BR TO INCR REL ADDR POINTER ZDR20440 087D 901F 2034 | S PD982 DECR POINTER CHAR CONSTANT ZDR20450 087E 4C18 08C3 2035 | BSC L PD320,+- BR TO DECR REL ADDR POINTER ZDR20460 0880 901D 2036 | S PD984 TERMINATE CHAR CONSTANT ZDR20470 0881 4C18 08CB 2037 | BSC L PD400,+- BR TO DUMP SCTR AND STORE ZDR20480 0883 901B 2038 | S PD986 FILL AND TERMINATE CONSTANT ZDR20490 0884 4C18 08C8 2039 | BSC L PD360,+- BR TO FILL OUT SCTR AND END ZDR20500 0886 9019 2040 | S PD988 REENTER POINTER CONSTANT ZDR20510 0887 4C18 085A 2041 | BSC L PD040-2,+- BR TO REENTER SCTR PTR ZDR20520 2042 | * ZDR20530 2043 | * LOOK FOR CHARACTER IN HEXIDECIMAL (0-F) TABLE ZDR20540 2044 | * ZDR20550 0889 62F0 2045 | LDX 2 -'HEXA INITIALIZE TABLE POINTER ZDR20560 088A C018 2046 | PD160 LD PD990+1 CURRENT INPUT CHARACTER ZDR20570 088B 9600 04AC 2047 | S L2 KBHXE+1 HEX CHAR FROM KEYBOARD TBL ZDR20580 088D 4C18 08A6 2048 | BSC L PD200,+- BR IF FOUND ZDR20590 088F 7201 2049 | MDX 2 1 INCR TABLE POINTER ZDR20600 0890 70F9 2050 | MDX PD160 BR TO COMPARE WITH NEXT ZDR20610 2051 | * ZDR20620 2052 | * KEYBOARD INPUT IS INVALID ZDR20630 2053 | * ZDR20640 0891 4400 015A 2054 | BSI L MSOUT BR TO PRINT ERROR...RETRY ZDR20650 0893 70D4 2055 | MDX PD080 BR TO INPUT NEXT CHARACTER ZDR20660 2056 | * ZDR20670 2057 | * CONSTANTS AND WORK AREA ZDR20680 2058 | * ZDR20690 0894 0000 2059 | PD900 DC *-* REL ADDR OF WORD TO PATCH ZDR20700 0895 0140 2060 | PD905 DC 'SCNT WDS/SCTR ZDR20710 0896 0141 2061 | PD910 DC 'SCNT+1 WDS/SCTR+1 ZDR20720 0897 4110 2062 | PD915 DC /4110 HOLLERITH NEW LINE CHAR ZDR20730 0898 0000 2063 | PD920 DC *-* STORE-WORD BUFFER ZDR20740 0899 013F 2064 | PD925 DC 'SCNT-1 WDS/SCTR-1 ZDR20750 089A 0001 2065 | PD930 DC 1 ADDRESS MODIFICATION CON ZDR20760 089B 0000 2066 | PD935 DC *-* FILL SECTOR SWITCH ZDR20770 2067 | * ZDR20780 2068 | * HOLLERITH CONSTANT TABLE ZDR20790 2069 | * ZDR20800 089C DF90 2070 | PD980 DC /20A0-/4110 GREATER THAN - NEW LINE ZDR20810 089D 6180 2071 | PD982 DC /8220-/20A0 LESS THAN - GREATER THAN ZDR20820 089E C000 2072 | PD984 DC /4220-/8220 ASTERISK - LESS THAN ZDR20830 089F 4200 2073 | PD986 DC /8420-/4220 PERIOD - ASTERISK ZDR20840 08A0 BBF0 2074 | PD988 DC /4010-/8420 REENTER (R) - PERIOD ZDR20850 2075 | * ZDR20860 2076 | * KEYBOARD INPUT BUFFER ZDR20870 2077 | * ZDR20880 08A2 2078 | BSS E 0 ZDR20890 08A2 0001 2079 | PD990 DC 1 WORD COUNT ZDR20900 08A3 0000 2080 | DC *-* CHARACTER BUFFER ZDR20910 2081 | * ZDR20920 2082 | * CONSOLE PRINTER PRINT BUFFER ZDR20930 2083 | * ZDR20940 08A4 0001 2084 | PD992 DC 1 WORD COUNT ZDR20950 08A5 8021 2085 | DC /8021 COMMA-SPACE FOR CONSOLE PR ZDR20960 2086 | * ZDR20970 2087 | * ROTATE VALID CHARACTER INTO STORE-WORD BUFFER ZDR20980 2088 | * ZDR20990 08A6 C600 0461 2089 | PD200 LD L2 TABLE+'HEXA BITS 12-15 = HEX CHAR ZDR21000 08A8 1884 2090 | SRT 4 SAVE IN EXTENSION ZDR21010 08A9 C0EE 2091 | LD PD920 STORE-WORD BUFFER ZDR21020 08AA 1084 2092 | SLT 4 SHIFT IN NEW CHARACTER ZDR21030 08AB D0EC 2093 | STO PD920 ZDR21040 08AC 70BB 2094 | MDX PD080 BR TO INPUT NEXT CHARACTER ZDR21050 2095 | * ZDR21060 2096 | * STORE-WORD BUFFER TO SCTR BUFFER ZDR21070 2097 | * ZDR21080 08AD C0E6 2098 | PD240 LD PD900 RELATIVE SCTR POINTER ZDR21090 08AE D005 2099 | STO PD250+1 ZDR21100 08AF 7402 08B4 2100 | MDX L PD250+1,2 ADJUST FOR WD CNT SCTR ADDR ZDR21110 08B1 1000 2101 | NOP MAY SKIP ZDR21120 08B2 C0E5 2102 | LD PD920 PATCH WORD ZDR21130 08B3 D700 0000 2103 | PD250 STO L3 *-* STORE INTO SCTR BUFFER ZDR21140 08B5 7400 089B 2104 | MDX L PD935,0 BR TO AVOID PRINTING COMMA- ZDR21150 08B7 7004 2105 | MDX PD280 *SPACE IF FILL FLAG IS ON. ZDR21160 08B8 4400 0B7D 2106 | BSI L WRTY0 BR TO PRINT COMMA AND SPACE ZDR21170 08BA 2000 2107 | DC /2000 PRINT CONTROL PARAMETER ZDR21180 08BB 08A4 2108 | DC PD992 ADDR OF PRINT BUFFER ZDR21190 2109 | * ZDR21200 2110 | * INCREMENT RELATIVE SCTR POINTER ZDR21210 2111 | * ZDR21220 08BC C0D7 2112 | PD280 LD PD900 ZDR21230 08BD 90DB 2113 | S PD925 CHECK FOR MAX VALUE (/13F) ZDR21240 08BE 4C10 08CB 2114 | BSC L PD400,- BR IF /13F TO TERMINATE ZDR21250 08C0 80D4 2115 | A PD905 /140 - RESTORE AND ADD 1 ZDR21260 08C1 D0D2 2116 | STO PD900 ZDR21270 08C2 70A5 2117 | MDX PD080 BR TO READ NEXT CHARACTER ZDR21280 2118 | * ZDR21290 2119 | * DECREMENT RELATIVE SCTR POINTER ZDR21300 2120 | * ZDR21310 08C3 C0D0 2121 | PD320 LD PD900 ZDR21320 08C4 4830 2122 | BSC -Z SKIP IF AT MINIMUM VALUE ZDR21330 08C5 90D4 2123 | S PD930 DECR BY 1 ZDR21340 08C6 D0CD 2124 | STO PD900 ZDR21350 08C7 70A0 2125 | MDX PD080 BR TO READ NEXT CHARACTER ZDR21360 2126 | * ZDR21370 2127 | * FILL OUT SECTOR WITH CONTENTS OF STORE-WORD AND ZDR21380 2128 | * TERMINATE. ZDR21390 2129 | * ZDR21400 08C8 7401 089B 2130 | PD360 MDX L PD935,1 SET SWITCH TO FILL OUT SCTR ZDR21410 08CA 70E2 2131 | MDX PD240 BR TO FILL SCTR BUFFER ZDR21420 2132 | * ZDR21430 2133 | * PRINT SECTOR BUFFER AND RESTORE TO DISK ZDR21440 2134 | * ZDR21450 08CB 6101 2135 | PD400 LDX 1 1 ZDR21460 08CC 6D00 02C1 2136 | STX L1 SW006 SET TO PRINT TERMINAL DUMP ZDR21470 08CE 74FF 02BB 2137 | MDX L SECT1,-1 ADJUST FOR DUMPZ INCR ZDR21480 08D0 1000 2138 | NOP MAY SKIP ZDR21490 08D1 C400 02BB 2139 | PD420 LD L SECT1 ADDR OF SCTR TO WRITE ON ZDR21500 08D3 6B03 2140 | STX 3 PD440 DISK BUFFER ADDRESS ZDR21510 08D4 4400 0A2F 2141 | BSI L DX000 BR TO WRITE SECTOR ZDR21520 08D6 0200 2142 | DC /0200 WRITE CONTROL PARAMETER ZDR21530 08D7 0000 2143 | PD440 DC *-* BUFFER ADDRESS ZDR21540 08D8 6B03 2144 | STX 3 PD480 DISK BUFFER ADDRESS ZDR21550 08D9 4400 0A2F 2145 | BSI L DX000 BR TO DISK ROUTINE ZDR21560 08DB 0180 2146 | DC /180 READ-BACK CHECK PARAMETER ZDR21570 08DC 0000 2147 | PD480 DC *-* BUFFER ADDRESS ZDR21580 2148 | * . 2-11 ZDR21590 08DD 7400 0AC4 2149 | MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR21600 08DF 70FD 2150 | MDX PD480+1 LOOP ON DISK BUSY 2-11 ZDR21610 08E0 C400 02BC 2151 | LD L SW001 READ-CHK SWITCH ZDR21620 08E2 4C18 08E8 2152 | BSC L PD490,+- BR IF NO ERROR ZDR21630 08E4 1010 2153 | SLA 16 ZDR21640 08E5 D400 02BC 2154 | STO L SW001 CLEAR READ-CHK SWITCH ZDR21650 08E7 70E9 2155 | MDX PD420 BR TO WRITE AGAIN ZDR21660 08E8 4400 07A2 2156 | PD490 BSI L DUMPZ BR TO DUMP SUBROUTINE ZDR21670 08EA 4C00 0102 2157 | BSC L CM050 RETURN FOR NEXT OPTION 2-11 ZDR21680 DISK ANALYSIS OPTION 2159 | * ZDR21700 2160 | *************************************************** ZDR21710 2161 | * THE FOLLOWING SECTION HANDLES DISK ANALYSIS ZDR21720 2162 | *************************************************** ZDR21730 2163 | * ZDR21740 08EC 2164 | ANLYZ EQU * 2-11 ZDR21750 2165 | * ZDR21760 2166 | * INITIALIZATION ZDR21770 2167 | * ZDR21780 08EC 6500 0640 2168 | LDX L1 'LSCT SECTORS/CYLINDER CONSTANT ZDR21790 08EE 6948 2169 | STX 1 DA900 SET UP SECTOR COUNTER ZDR21800 2170 | * ZDR21810 2171 | * GET DRIVE CODE FROM BIT SWITCHES ZDR21820 2172 | * ZDR21830 08EF 6500 0350 2173 | LDX L1 MSSG6 SET TO PRINT MESSAGE 8 2-6 ZDR21840 08F1 4400 0144 2174 | DA040 BSI L INSTR BR TO PRINT AND READ BIT SW ZDR21850 08F3 9048 2175 | S DA935 SUB MAX NO. OF DRIVES 2-11 ZDR21852 08F4 6500 0346 2176 | LDX L1 MSSG5 POINT XR1 TO ERROR MSG 2-11 ZDR21854 08F6 4C10 08F1 2177 | BSC L DA040,- BR IF DR NO. ILLEGAL 2-11 ZDR21856 08F8 8043 2178 | A DA935 RESTORE DR NO. 2-11 ZDR21858 08F9 100C 2179 | SLA 12 LEFT JUSTIFY ZDR21860 08FA D400 02BB 2180 | STO L SECT1 DRIVE CODE, SECTOR ZERO ZDR21870 08FC D03E 2181 | STO DA930 SAVE DRIVE CODE ZDR21880 08FD 4400 0210 2182 | BSI L PRSNT BR TO CHECK DEVC ON SYS 2-3 ZDR21930 08FF C03B 2183 | LD DA930 2-3 ZDR21940 2184 | * ZDR21950 2185 | * SEEK HOME AND READ SECTOR 0 ZDR21960 2186 | * ZDR21970 0900 4400 0240 2187 | BSI L HOMEX ZDR21980 2188 | * ZDR21990 2189 | * SAVE DEFECTIVE CYLINDER TABLE ZDR22000 2190 | * ZDR22010 0902 6680 02C9 2191 | LDX I2 BFRAD ADDR IN DISK BFR OF DEF CYL ZDR22020 0904 7205 2192 | MDX 2 'DCTB+'NDCY+'SADR *TABLE TO XR2 ZDR22030 0905 6A02 2193 | STX 2 DA120+1 ZDR22040 0906 62FD 2194 | LDX 2 -'NDCY MINUS NO. DEF CYLS ZDR22050 0907 C600 0000 2195 | DA120 LD L2 *-* ZDR22060 0909 EC00 02BB 2196 | OR L SECT1 DRIVE CODE ZDR22070 090B D600 0F6C 2197 | STO L2 BADCS+'DCTB+'NDCY DEF CYL TABLE ZDR22080 090D 7201 2198 | MDX 2 1 INCR TABLE POINTER ZDR22090 090E 70F8 2199 | MDX DA120 BR TO CONTINUE MOVE ZDR22100 2200 | * ZDR22110 2201 | * READ EACH CYLINDER SECTOR BY SECTOR 16 TIMES ZDR22120 2202 | * ZDR22130 090F 62F0 2203 | DA150 LDX 2 -16 ZDR22140 0910 6A2C 2204 | STX 2 DA940 CYLINDER READ COUNTER ZDR22150 2205 | * ZDR22160 2206 | * CHECK FOR DEFECTIVE CYLINDER ZDR22170 2207 | * ZDR22180 0911 C400 02BB 2208 | LD L SECT1 SECTOR ADDRESS ZDR22190 0913 6500 0F69 2209 | LDX L1 BADCS+1 ADDR DEF CYL TABLE ZDR22200 0915 4400 01CA 2210 | BSI L DC000 CHK FOR DEF CYLS ZDR22210 0917 D400 02BB 2211 | STO L SECT1 SAVE SECTOR ADDRESS ZDR22220 2212 | * ZDR22230 2213 | * SET UP TO READ 8 SECTORS ZDR22240 2214 | * ZDR22250 0919 62F8 2215 | DA155 LDX 2 -'CCNT SECTORS/CYLINDER ZDR22260 091A 6A23 2216 | STX 2 DA945 SECTOR READ COUNTER ZDR22270 091B 7407 02BB 2217 | MDX L SECT1,7 READ SECTORS BACKWARD ZDR22280 091D 4063 2218 | DA160 BSI DA800 BR TO READ A SECTOR ZDR22290 2219 | * ZDR22300 2220 | * CHECK FOR DISK DATA ERROR ZDR22310 2221 | * ZDR22320 091E C400 02C2 2222 | LD L SW007 NON-ZERO IF DISK ERROR ZDR22330 2223 | TRAP 0920 4420 095E 2224 | BSI L DA700,Z BR IF DATA ERROR ZDR22340 2225 | * ZDR22350 2226 | * CHECK FOR SECTOR ADDR ERROR ZDR22360 2227 | * ZDR22370 0922 C017 2228 | LD DA920 SECTOR ADDRESS W/O DR CODE ZDR22380 0923 F301 2229 | EOR 3 'SADR SECTOR ADDR FROM BUFFER ZDR22390 0924 4420 093F 2230 | BSI L DA600,Z BR IF SECTOR ADDR ERROR ZDR22400 2231 | * ZDR22410 2232 | * CHECK IF ALL SECTORS READ ZDR22420 2233 | * ZDR22430 0926 7401 093E 2234 | MDX L DA945,1 INCR SECTOR READ COUNTER ZDR22440 0928 700A 2235 | MDX DA190 BR TO DECR SECTOR POINTER ZDR22450 2236 | * ZDR22460 2237 | * CHECK TO SEE IF CYLINDER READ 16 TIMES ZDR22470 2238 | * ZDR22480 0929 7401 093D 2239 | MDX L DA940,1 INCR CYLINDER READ COUNTER ZDR22490 092B 70ED 2240 | MDX DA155 BR TO READ CYLINDER AGAIN ZDR22500 2241 | * ZDR22510 2242 | * CHECK TO SEE IF DONE ZDR22520 2243 | * ZDR22530 092C 7408 02BB 2244 | MDX L SECT1,8 SCTR POINTER TO NEXT CYL ZDR22540 092E 74F8 0937 2245 | MDX L DA900,-8 DECR SECTORS TO READ COUNT ZDR22550 0930 70DE 2246 | MDX DA150 BR TO READ NEXT CYLINDER ZDR22560 2247 | * ZDR22570 2248 | * RETURN ZDR22580 2249 | * ZDR22590 0931 4C00 0102 2250 | BSC L CM050 RETURN FOR NEXT OPTION 2-11 ZDR22600 2251 | * ZDR22610 2252 | * DECREMENT SECTOR POINTER ZDR22620 2253 | * ZDR22630 0933 74FF 02BB 2254 | DA190 MDX L SECT1,-1 DECR TO READ SCTRS BACKWARD ZDR22640 0935 1000 2255 | NOP MAY SKIP ZDR22650 0936 70E6 2256 | MDX DA160 BR TO READ NEXT SECTOR ZDR22660 2257 | * ZDR22670 2258 | * CONSTANTS AND WORK AREAS ZDR22680 2259 | * ZDR22690 0937 0000 2260 | DA900 DC *-* SECTOR READ COUNTER ZDR22700 0938 0FFF 2261 | DA905 DC /0FFF SECTOR ADDR MASK ZDR22710 0939 8001 2262 | DA910 DC /8001 DUMP SWITCH ZDR22720 093A 0000 2263 | DA920 DC *-* PHYSICAL SCTR ADDRESS ZDR22730 093B 0000 2264 | DA930 DC *-* DRIVE CODE ZDR22740 093C 000B 2265 | DA935 DC 'MXDR MAX NO. OF DRIVES 2-11 ZDR22750 093D 0000 2266 | DA940 DC *-* CYLINDER READ COUNTER ZDR22760 093E 0000 2267 | DA945 DC *-* SECTOR READ COUNTER ZDR22770 DISK ANALYSIS OPTION 2269 | * ZDR22790 2270 | *************************************************** ZDR22800 2271 | * SECTOR ADDRESS ERROR HANDLING SUBROUTINE ZDR22810 2272 | *************************************************** ZDR22820 2273 | * ZDR22830 093F 0000 2274 | DA600 DC *-* ENTRY POINT ZDR22840 2275 | * ZDR22850 2276 | * PRINT MESSAGE- ADDRESS ERROR ON SECTOR .... ZDR22860 2277 | * ZDR22870 0940 4400 0135 2278 | BSI L CPOUT BR TO INITIALIZE PRINT ZDR22880 0942 6500 03E6 2279 | LDX L1 MSG20 ADDRESS ERROR ON SECTOR MSG ZDR22890 0944 4400 015A 2280 | BSI L MSOUT BR TO PRINT MESSAGE ZDR22900 0946 C0F3 2281 | LD DA920 PHYSICAL SCTR ADDR ZDR22910 0947 D400 02B9 2282 | STO L INFOR *TO PRINT. ZDR22920 0949 6500 02B8 2283 | LDX L1 INFOR-1 ZDR22930 094B 4400 0166 2284 | BSI L CNPNT PRINT SECTOR ADDRESS ZDR22940 2285 | * ZDR22950 2286 | * PRINT MESSAGE- ERRONEOUS SCTR ADDR WAS .... ZDR22960 2287 | * ZDR22970 094D 6500 03F0 2288 | LDX L1 MSG21 ERRONEOUS SCTR ADDR WAS MSG ZDR22980 094F 4400 015A 2289 | BSI L MSOUT BR TO PRINT ZDR22990 0951 C301 2290 | LD 3 'SADR ERRONEOUS SECTOR ADDR ZDR23000 0952 D400 02B9 2291 | STO L INFOR STORE TO PRINT ZDR23010 0954 6500 02B8 2292 | LDX L1 INFOR-1 ZDR23020 0956 4400 0166 2293 | BSI L CNPNT PRINT BAD ADDRESS ZDR23030 2294 | * ZDR23040 2295 | * WRITE CORRECT ADDR ON SECTOR ZDR23050 2296 | * ZDR23060 0958 C400 02BB 2297 | LD L SECT1 PHYSICAL SECTOR ADDRESS ZDR23070 095A 4400 01F2 2298 | BSI L WRIT1 WRITE CORRECT ADDRESS ZDR23080 095C 4C80 093F 2299 | BSC I DA600 EXIT ZDR23090 DISK ANALYSIS OPTION 2301 | * ZDR23110 2302 | *************************************************** ZDR23120 2303 | * DISK DATA ERROR HANDLING SUBROUTINE ZDR23130 2304 | *************************************************** ZDR23140 2305 | * ZDR23150 095E 0000 2306 | DA700 DC *-* ENTRY POINT ZDR23160 2307 | * ZDR23170 2308 | * PRINT MESSAGE- DISK READ ERROR ON SECTOR .... ZDR23180 2309 | * ZDR23190 095F 4400 0135 2310 | BSI L CPOUT BR TO INITIALIZE PRINT ZDR23200 0961 6500 03FA 2311 | LDX L1 MSG22 DISK DATA ERROR MESSAGE ZDR23210 0963 4400 015A 2312 | BSI L MSOUT BR TO PRINT MESSAGE ZDR23220 0965 C0D4 2313 | LD DA920 PHYSICAL SECTOR ADDRESS ZDR23230 0966 D400 02B9 2314 | STO L INFOR *TO PRINT. ZDR23240 0968 6500 02B8 2315 | LDX L1 INFOR-1 ZDR23250 096A 4400 0166 2316 | BSI L CNPNT PRINT SECTOR ADDRESS ZDR23260 2317 | * ZDR23270 2318 | * PRINT MESSAGE- TURN ON BIT SW 0 TO DUMP ZDR23280 2319 | * ZDR23290 096C 6500 0407 2320 | LDX L1 MSG23 TURN ON BIT SW 0 TO DUMP ZDR23300 096E 4400 0144 2321 | BSI L INSTR BR TO PRINT AND READ BIT SW ZDR23310 0970 C400 02B9 2322 | LD L INFOR ZDR23320 0972 4C90 095E 2323 | BSC I DA700,- BR IF NO DUMP ZDR23330 2324 | * ZDR23340 2325 | * DUMP SECTOR IN ERROR TO PRINTER ZDR23350 2326 | * ZDR23360 0974 C0C4 2327 | LD DA910 DUMP SWITCH ZDR23370 0975 D400 02C1 2328 | STO L SW006 ZDR23380 0977 4400 07A2 2329 | BSI L DUMPZ DUMP SECTOR ZDR23390 0979 74FF 02BB 2330 | MDX L SECT1,-1 ADJUST FOR DUMPZ INCREMENT ZDR23400 097B 1000 2331 | NOP MAY SKIP ZDR23410 097C 1010 2332 | SLA 16 CLEAR ACCUMULATOR 2-10 ZDR23420 097D D400 02C1 2333 | STO L SW006 ZERO SWITCH 2-10 ZDR23430 097F 4C80 095E 2334 | BSC I DA700 EXIT ZDR23440 DISK ANALYSIS OPTION 2336 | * ZDR23460 2337 | *************************************************** ZDR23470 2338 | * READ A SECTOR SUBROUTINE ZDR23480 2339 | *************************************************** ZDR23490 2340 | * ZDR23500 0981 0000 2341 | DA800 DC *-* ENTRY POINT ZDR23510 0982 6102 2342 | LDX 1 2 SET SW005 TO ALLOW DISK RTN ZDR23520 0983 6D00 02C0 2343 | STX L1 SW005 *TO SET SW007 IF DISK ERROR ZDR23530 0985 1010 2344 | SLA 16 ZDR23540 0986 D400 02C2 2345 | STO L SW007 CLEAR DATA ERROR SWITCH ZDR23550 2346 | * ZDR23560 2347 | * READ NEXT SECTOR ZDR23570 2348 | * ZDR23580 0988 C400 02BB 2349 | LD L SECT1 SECTOR ADDRESS ZDR23590 098A 4400 0202 2350 | BSI L READ1 READ A SECTOR ZDR23600 098C E0AB 2351 | AND DA905 MASK OUT DRIVE CODE ZDR23610 098D D0AC 2352 | STO DA920 SAVE PHYSICAL SCTR ADDRESS ZDR23620 098E 1010 2353 | SLA 16 RESET SW005 TO REVERT TO ZDR23630 098F D400 02C0 2354 | STO L SW005 *NORMAL DISK ERROR HANDLING ZDR23640 0991 4C80 0981 2355 | BSC I DA800 RETURN ZDR23650 COMPARE OPTION 2357 | * ZDR23670 2358 | *************************************************** ZDR23680 2359 | * THE FOLLOWING SECTION HANDLES DISK COMPARE ZDR23690 2360 | *************************************************** ZDR23700 2361 | * ZDR23710 0993 2362 | COMPR EQU * 2-11 ZDR23720 2363 | * ZDR23730 2364 | * INITIALIZATION ZDR23740 2365 | * ZDR23750 0993 6C00 02C3 2366 | STX L0 SW008 COMPARE OPTION SWITCH ON ZDR23760 0995 C056 2367 | LD CR930 1 SECTOR WORD COUNT ZDR23770 0996 D400 0CA6 2368 | STO L CR990 WD COUNT TO SOURCE BUFFER ZDR23780 0998 D400 0E26 2369 | STO L CR992 WD COUNT TO OBJECT BUFFER ZDR23790 2370 | * ZDR23800 2371 | * FETCH SOURCE AND OBJECT DRIVE NOS., CHK VALIDITY ZDR23810 2372 | * ZDR23820 099A 4400 01D6 2373 | BSI L GETDR FETCH SOURCE AND OBJECT DRS ZDR23830 099C D84D 2374 | STD CR910 ADDR OF SCTR 'IDAD ZDR23840 2375 | * ZDR23850 2376 | * SEEK HOME AND READ SECTOR 'IDAD ZDR23860 2377 | * ZDR23870 099D 6700 0CA6 2378 | LDX L3 CR990 SOURCE BUFFER ADDRESS ZDR23880 099F C04A 2379 | LD CR910 SCTR 'IDAD ADDRESS ZDR23890 09A0 D400 02BB 2380 | STO L SECT1 ZDR23900 09A2 4400 0240 2381 | BSI L HOMEX SEEK HOME AND READ ZDR23910 09A4 6700 0E26 2382 | LDX L3 CR992 OBJECT BUFFER ADDRESS ZDR23920 09A6 C044 2383 | LD CR915 SCTR 'IDAD ADDRESS ZDR23930 09A7 D400 02BB 2384 | STO L SECT1 ZDR23940 09A9 4400 0240 2385 | BSI L HOMEX SEEK HOME AND READ ZDR23950 2386 | * ZDR23960 2387 | * SAVE DEFECTIVE CYLINDER TABLES ZDR23970 2388 | * ZDR23980 09AB 61FD 2389 | LDX 1 -'NDCY INITIALIZE POINTER ZDR23990 09AC C500 0CAB 2390 | CR060 LD L1 CR990+2+'NDCY MOVE SOURCE DEFECTIVE ZDR24000 09AE E83B 2391 | OR CR910 *CYLINDER TABLE. ZDR24010 09AF D500 09F0 2392 | STO L1 CR980+'NDCY ZDR24020 09B1 C500 0E2B 2393 | LD L1 CR992+2+'NDCY MOVE OBJECT DEFECTIVE ZDR24030 09B3 E837 2394 | OR CR915 *CYLINDER TABLE. ZDR24040 09B4 D500 09F3 2395 | STO L1 CR985+'NDCY ZDR24050 09B6 7101 2396 | MDX 1 1 INCR POINTER TO NEXT ENTRY ZDR24060 09B7 70F4 2397 | MDX CR060 BR TO CONTINUE MOVE ZDR24070 2398 | * ZDR24080 2399 | * FIRST 7 WDS WILL NOT COMPARE - MAKE THEM EQUAL ZDR24090 2400 | * ZDR24100 09B8 61F9 2401 | LDX 1 -7 INITIALIZE POINTER ZDR24110 09B9 C500 0CAF 2402 | CR100 LD L1 CR990+2+7 MAKE FIRST 7 WORDS OF BOTH ZDR24120 09BB D500 0E2F 2403 | STO L1 CR992+2+7 *BUFFERS EQUAL FOR COMPARE ZDR24130 09BD 7101 2404 | MDX 1 1 INCR POINTER ZDR24140 09BE 70FA 2405 | MDX CR100 ZDR24150 2406 | * ZDR24160 2407 | * COMPARE SECTOR 'IDAD ZDR24170 2408 | * ZDR24180 09BF 404D 2409 | BSI CR800 BR TO COMPARE ZDR24190 2410 | * ZDR24200 2411 | * READ AND COMPARE SECTOR 'DCOM ZDR24210 2412 | * ZDR24220 09C0 7401 09EA 2413 | MDX L CR910,1 INCR SOURCE SCTR ADDR ZDR24230 09C2 7401 09EB 2414 | MDX L CR915,1 INCR OBJECT SCTR ADDR ZDR24240 09C4 4031 2415 | BSI CR700 READ BOTH 'DCOM SECTORS ZDR24250 2416 | * ZDR24260 2417 | * #CIDN TABLES WILL NOT COMPARE - MAKE EQUAL ZDR24270 2418 | * ZDR24280 09C5 61FB 2419 | LDX 1 -5 DR TBL LENGTH IN DCOM 2-11 ZDR24290 09C6 C500 0CE4 2420 | CR140 LD L1 CR990+2+#CIDN+5 MOVE SOURCE 2-11 ZDR24300 09C8 D500 0E64 2421 | STO L1 CR992+2+#CIDN+5 *TO OBJ #CIDN 2-11 ZDR24310 09CA 7101 2422 | MDX 1 1 INCR POINTER ZDR24320 09CB 70FA 2423 | MDX CR140 BR TO MOVE NEXT TABLE ENTRY ZDR24330 2424 | * ZDR24340 2425 | * COMPARE SECTOR 'DCOM ZDR24350 2426 | * ZDR24360 09CC 4040 2427 | BSI CR800 BR TO COMPARE ZDR24370 2428 | * ZDR24380 2429 | * READ AND COMPARE SECTOR 'RIAD ZDR24390 2430 | * ZDR24400 09CD 7401 09EA 2431 | MDX L CR910,1 INCR SOURCE SCTR ADDR ZDR24410 09CF 7401 09EB 2432 | MDX L CR915,1 INCR OBJECT SCTR ADDR ZDR24420 09D1 4024 2433 | BSI CR700 READ BOTH SECTORS ZDR24430 2434 | * ZDR24440 2435 | * DEFECTIVE CYL TABLES WILL NOT COMPARE -MAKE EQUAL ZDR24450 2436 | * ZDR24460 09D2 61F1 2437 | LDX 1 -'NDCY*5 MOVE POINTER 2-11 ZDR24470 09D3 C500 0D55 2438 | CR180 LD L1 CR990+2+$DCYL+'NDCY*5-$CH12 2-11 ZDR24480 09D5 D500 0ED5 2439 | STO L1 CR992+2+$DCYL+'NDCY*5-$CH12 2-11 ZDR24490 09D7 7101 2440 | MDX 1 1 INCR POINTER ZDR24500 09D8 70FA 2441 | MDX CR180 ZDR24510 2442 | * ZDR24520 2443 | * COMPARE SECTOR 'RIAD ZDR24530 2444 | * ZDR24540 09D9 4033 2445 | BSI CR800 ZDR24550 2446 | * ZDR24560 2447 | * COMPARE REST OF SECTORS ZDR24570 2448 | * ZDR24580 09DA 6600 063D 2449 | LDX L2 'MSCT-1-'NDCY*'CCNT-'RIAD SAVE NO. ZDR24590 09DC 6A0C 2450 | STX 2 CR905 *SECTORS LEFT TO COPY. ZDR24600 09DD 7401 09EA 2451 | CR220 MDX L CR910,1 INCR SOURCE SCTR ADDR ZDR24610 09DF 7401 09EB 2452 | MDX L CR915,1 INCR OBJECT SCTR ADDR ZDR24620 09E1 4014 2453 | BSI CR700 READ NEXT SECTORS ZDR24630 09E2 402A 2454 | BSI CR800 COMPARE ZDR24640 09E3 74FF 09E9 2455 | MDX L CR905,-1 DECR SCTRS TO COMPARE COUNT ZDR24650 09E5 70F7 2456 | MDX CR220 BR TO CONTINUE COMPARE ZDR24660 09E6 4C00 0102 2457 | BSC L CM050 RETURN FOR NEXT OPTION 2-11 ZDR24670 2458 | * ZDR24680 2459 | * CONSTANTS AND WORK AREAS ZDR24690 2460 | * ZDR24700 09E8 0000 2461 | CR900 DC *-* COMPARE ERROR FLAG ZDR24710 09E9 0000 2462 | CR905 DC *-* NO. SCTRS LEFT TO COPY ZDR24720 09EA 2463 | BSS E 0 MAKE ADDRESS EVEN ZDR24730 09EA 0000 2464 | CR910 DC *-* ADDR OF NEXT SCTR (SOURCE) ZDR24740 09EB 0000 2465 | CR915 DC *-* ADDR OF NEXT SCTR (OBJECT) ZDR24750 09EC 0141 2466 | CR930 DC 'SCNT+1 NO. OF WORDS PER SECTOR+1 ZDR24760 09ED 2467 | CR980 BSS 3 SOURCE DEF CYL TABLE ZDR24770 09F0 2468 | CR985 BSS 3 OBJECT DEF CYL TABLE ZDR24780 2469 | *CR990 EQU PRNT1 SOURCE SECTOR BUFFER ZDR24790 2470 | *CR992 EQU PRNT3 OBJECT SECTOR BUFFER ZDR24800 2471 | * ZDR24810 2472 | * PRINT SECTOR ADDRESSES BUFFER ZDR24820 2473 | * ZDR24830 09F3 0002 2474 | CR994 DC 2 WORD COUNT ZDR24840 09F4 2475 | BSS 2 RESERVE TWO WORDS ZDR24850 COMPARE OPTION 2477 | * ZDR24870 2478 | *************************************************** ZDR24880 2479 | * READ NEXT TWO SECTORS FOR COMPARE ZDR24890 2480 | *************************************************** ZDR24900 2481 | * ZDR24910 09F6 0000 2482 | CR700 DC *-* ENTRY POINT ZDR24920 2483 | * ZDR24930 2484 | * READ SOURCE DRIVE ZDR24940 2485 | * ZDR24950 09F7 6700 0CA6 2486 | LDX L3 CR990 SOURCE BUFFER ADDRESS ZDR24960 09F9 C0F0 2487 | LD CR910 SECTOR ADDRESS ZDR24970 09FA 6500 09ED 2488 | LDX L1 CR980 DEF CYL TABLE ADDR (SOURCE) ZDR24980 09FC 4400 01CA 2489 | BSI L DC000 CHECK FOR DEFECTIVE CYL ZDR24990 09FE D0EB 2490 | STO CR910 ZDR25000 09FF 4400 0202 2491 | BSI L READ1 BR TO READ ZDR25010 2492 | * ZDR25020 2493 | * READ OBJECT DRIVE ZDR25030 2494 | * ZDR25040 0A01 6700 0E26 2495 | LDX L3 CR992 OBJECT BUFFER ADDRESS ZDR25050 0A03 C0E7 2496 | LD CR915 SECTOR ADDRESS ZDR25060 0A04 6500 09F0 2497 | LDX L1 CR985 DEF CYL TABLE ADDR (OBJECT) ZDR25070 0A06 4400 01CA 2498 | BSI L DC000 CHECK FOR DEFECTIVE CYL ZDR25080 0A08 D0E2 2499 | STO CR915 ZDR25090 0A09 4400 0202 2500 | BSI L READ1 BR TO READ ZDR25100 0A0B 4C80 09F6 2501 | BSC I CR700 RETURN ZDR25110 COMPARE OPTION 2503 | * ZDR25130 2504 | *************************************************** ZDR25140 2505 | * COMPARE A SECTOR SUBROUTINE ZDR25150 2506 | *************************************************** ZDR25160 2507 | * ZDR25170 0A0D 0000 2508 | CR800 DC *-* ENTRY POINT ZDR25180 0A0E 1010 2509 | SLA 16 ZDR25190 0A0F D0D8 2510 | STO CR900 CLEAR ERROR FLAG ZDR25200 0A10 6500 FEC0 2511 | LDX L1 -'SCNT NO. OF WDS PER SECTOR ZDR25210 0A12 CD00 0DE8 2512 | CR820 LDD L1 CR990+2+'SCNT SOURCE SECTOR WORDS ZDR25220 0A14 9D00 0F68 2513 | SD L1 CR992+2+'SCNT OBJECT SECTOR WORDS ZDR25230 0A16 4818 2514 | BSC +- SKIP IF NOT SAME ZDR25240 0A17 18D0 2515 | RTE 16 CHECK SECOND WORDS ZDR25250 0A18 4820 2516 | BSC Z SKIP IF COMPARE OK ZDR25260 0A19 D0CE 2517 | STO CR900 SET ERROR FLAG ON ZDR25270 0A1A 7101 2518 | MDX 1 1 INCR BUFFER POINTER ZDR25280 0A1B 70F6 2519 | MDX CR820 BR TO CONTINUE COMPARE ZDR25290 2520 | * ZDR25300 2521 | * PRINT MESSAGE IF ERROR FLAGGED ZDR25310 2522 | * ZDR25320 0A1C C0CB 2523 | LD CR900 ERROR FLAG ZDR25330 0A1D 4C18 0A2D 2524 | BSC L CR840,+- EXIT IF NO ERROR ZDR25340 0A1F 4400 0135 2525 | BSI L CPOUT INITIALIZE TO PRINT ZDR25350 0A21 6500 0413 2526 | LDX L1 MSG24 DISK DATA ERROR MESSAGE ZDR25360 0A23 4400 015A 2527 | BSI L MSOUT BR TO PRINT MESSAGE ZDR25370 0A25 C0C4 2528 | LD CR910 SOURCE SECTOR ADDRESS ZDR25380 0A26 D0CD 2529 | STO CR994+1 PRINT BUFFER ZDR25390 0A27 C0C3 2530 | LD CR915 OBJECT SECTOR ADDRESS ZDR25400 0A28 D0CC 2531 | STO CR994+2 PRINT BUFFER ZDR25410 0A29 6500 09F3 2532 | LDX L1 CR994 ZDR25420 0A2B 4400 0166 2533 | BSI L CNPNT PRINT SECTOR ADDRESSES ZDR25430 2534 | * ZDR25440 2535 | * RETURN ZDR25450 2536 | * ZDR25460 0A2D 4C80 0A0D 2537 | CR840 BSC I CR800 EXIT ZDR25470 DISK I/O SUBROUTINE 2539 | *************************************************** ZDR25490 2540 | *STATUS-VERSION 2, MODIFICATION 2 * ZDR25500 2541 | * * ZDR25510 2542 | *FUNCTION/OPERATION- * ZDR25520 2543 | * THIS SUBROUTINE PERFORMS ALL DISK OPERATIONS * ZDR25530 2544 | * FOR ALL PORTIONS OF DCIP. IT PERFORMS THE * ZDR25540 2545 | * FOLLOWING FUNCTIONS * ZDR25550 2546 | * * TEST * ZDR25560 2547 | * * READ CHECK * ZDR25570 2548 | * * READ (WITH AUTOMATIC SEEK) * ZDR25580 2549 | * * WRITE (WITH AUTOMATIC SEEK) * ZDR25590 2550 | * * SEEK * ZDR25600 2551 | * * SEEK HOME * ZDR25610 2552 | * * ZDR25620 2553 | *ENTRY POINTS- * ZDR25630 2554 | * * DX000 (CALL) * ZDR25640 2555 | * * DX030 (INTERRUPT) * ZDR25650 2556 | * * ZDR25660 2557 | *INPUT- * ZDR25670 2558 | * * WORD COUNT IN 1ST WD OF I/O AREA * ZDR25680 2559 | * * SCTR ADDR/DRIVE CODE IN 2ND WD OF I/O AREA * ZDR25690 2560 | * * ZDR25700 2561 | *OUTPUT-FROM I/O BFR OR TO I/O BFR * ZDR25710 2562 | * * ZDR25720 2563 | *EXTERNAL SUBROUTINES-N/A * ZDR25730 2564 | * * ZDR25740 2565 | *EXITS- * ZDR25750 2566 | * * NORMAL-DX390 * ZDR25760 2567 | * * INTERRUPT-DX130 * ZDR25770 2568 | * * ERROR-DX130 * ZDR25780 2569 | * * ZDR25790 2570 | *TABLES/WORK AREAS-N/A * ZDR25800 2571 | * * ZDR25810 2572 | *ATTRIBUTES-SERIALLY REUSABLE * ZDR25820 2573 | * * ZDR25830 2574 | *NOTES- * ZDR25840 2575 | * * THE DRIVE CODE IN THE I/O AREA IS LOST. * ZDR25850 2576 | * * ERRORS DETECTED DURING INITIALIZING OF A * ZDR25860 2577 | * CARTRIDGE AND DISK ANALYSIS ARE NOT * ZDR25870 2578 | * AUTOMATICALLY RETRIED AS ARE OTHER ERRORS. * ZDR25880 2579 | * * IGNORING AN ERROR AFTER 'TCNT RETRIES IS * ZDR25890 2580 | * AT OPTION OF USER. * ZDR25900 2581 | * * I/O BUFFER MUST START ON AN EVEN BOUNDARY. * ZDR25910 2582 | *************************************************** ZDR25920 DISK I/O SUBROUTINE 2584 | *************************************************** ZDR25940 2585 | * DISK I/O SUBROUTINE * ZDR25950 2586 | *************************************************** ZDR25960 2587 | * ZDR25970 2588 | * CALL ENTRY POINT ZDR25980 2589 | * ZDR25990 0A2F 0000 2590 | DX000 DC *-* ENTRY POINT ZDR26000 0A30 DC00 0ACA 2591 | STD L DX980 SAVE ACC & EXT 2-10 ZDR26010 0A32 4C00 0AE1 2592 | BSC L DX240 BR TO CALL PROCESSING ZDR26020 2593 | * ZDR26030 2594 | * INTERRUPT ENTRY POINT ZDR26040 2595 | * ZDR26050 0A34 0000 2596 | DX030 DC *-* INTERRUPT ENTRY POINT ZDR26060 2597 | * ZDR26070 2598 | * COMPUTE TWICE THE PHYSICAL DRIVE CODE ZDR26080 2599 | * ZDR26090 0A35 1810 2600 | SRA 16 INITIALIZE PHYSICAL DRIVE ZDR26100 0A36 D009 2601 | STO DX050+1 *CODE ACCUMULATOR TO ZERO ZDR26110 0A37 0C00 0AD0 2602 | XIO L DX994 SENSE LVL 4 ILSW 2-10 ZDR26120 0A39 1001 2603 | DX040 SLA 1 ZDR26140 0A3A 4C18 0A3F 2604 | BSC L DX050,+- BR IF DR CODE ACCUMULATED ZDR26150 0A3C 7402 0A40 2605 | MDX L DX050+1,2 ACCUMULATE 2*DRIVE CODE ZDR26160 0A3E 70FA 2606 | MDX DX040 BR TO CHECK FOR ZERO ZDR26170 0A3F 6500 0000 2607 | DX050 LDX L1 *-* TWICE DRIVE CODE TO XR1 ZDR26180 0A41 0D00 0A92 2608 | XIO L1 DX913-1 SENSE DISK DSW/RESET 2-11 ZDR26190 0A43 D400 00DD 2609 | STO L $DDSW SAVE THE DSW ZDR26200 0A45 4C10 0AD2 2610 | BSC L DX150,- BR IF NO DISK ERROR ZDR26210 0A47 C500 0AAF 2611 | LD L1 DX960+1 CHECK FOR READ BEFORE 2-10 ZDR26220 0A49 1006 2612 | SLA 6 *SEEK 2-10 ZDR26230 0A4A 180E 2613 | SRA 14 2-10 ZDR26240 0A4B 4C18 0AD2 2614 | BSC L DX150,+- BR TO CONTINUE IF RD/SK2-10 ZDR26250 2615 | * ZDR26260 2616 | * PROCESS DISK ERRORS (2ND WD IOCC IN EXT) ZDR26270 2617 | * ZDR26280 0A4D C400 02C0 2618 | DX055 LD L SW005 BR IF INITIALIZING 2-10 ZDR26290 0A4F 4C04 0A84 2619 | BSC L DX120,E *A CARTRIDGE 2-10 ZDR26300 0A51 4C20 0A7C 2620 | BSC L DX080,Z BR IF DISK ANALYSIS ZDR26310 2621 | * ZDR26320 2622 | * RETRY OPERATION UP TO 16 TIMES ZDR26330 2623 | * ZDR26340 0A53 4878 2624 | BOSC +-Z TURN OFF INTERRUPT ZDR26350 0A54 1000 2625 | NOP MAY SKIP ZDR26360 0A55 74FF 0AC4 2626 | MDX L DX970,-1 DECREMENT RETRY COUNTER2-11 ZDR26370 2627 | * *AND SKIP IF 16 RETRIES2-11 ZDR26380 2628 | * *HAVE BEEN MADE 2-11 ZDR26390 0A57 7017 2629 | MDX DX065 OTHERWISE, BR TO RETRY 2-11 ZDR26400 0A58 4400 0B7D 2630 | BSI L WRTY0 PRINT DISK ERROR MESSAGE ZDR26460 0A5A 2000 2631 | DC /2000 ZDR26470 0A5B 0386 2632 | DC MSG12 ZDR26480 0A5C 4400 0B7D 2633 | DX060 BSI L WRTY0 WAIT FOR OPERATION COMPLETE ZDR26490 0A5E 0000 2634 | DC /0000 ZDR26500 0A5F 70FC 2635 | MDX DX060 BR TO TEST BUSY AGAIN ZDR26510 0A60 C400 02BB 2636 | LD L SECT1 FETCH CURRENT SCTR ADDR2-11 ZDR26511 0A62 18CB 2637 | RTE 11 LEFT JUSTIFY IN EXR 2-11 ZDR26512 0A63 C0DC 2638 | LD DX050+1 LOAD 2*DR CODE 2-11 ZDR26513 0A64 18C5 2639 | RTE 5 EXT = DR CD & SCTR ADDR2-11 ZDR26514 0A65 C061 2640 | LD DX998 LD /5002, AND CONVRT 2-11 ZDR26515 0A66 8041 2641 | A DX915 *TO /5003 ERROR WAIT 2-11 ZDR26516 0A67 3000 2642 | WAIT WAIT FOR OPERATOR ACTION ZDR26520 0A68 0865 2643 | XIO DX992 READ DATA SWITCHES ZDR26530 0A69 C400 02B9 2644 | LD L INFOR FETCH READING ZDR26540 0A6B 4C10 0A84 2645 | BSC L DX120,- BR TO IGNORE ERROR 2-10 ZDR26550 0A6D C01F 2646 | LD DX907 RESET FOR 16 MORE ATTEMPTS ZDR26560 0A6E D055 2647 | STO DX970 2-10 ZDR26570 0A6F C500 0AAF 2648 | DX065 LD L1 DX960+1 FETCH 2ND WD OF IOCC ZDR26580 0A71 E038 2649 | AND DX935 'AND' WITH READ CHK FUNC CDEZDR26590 0A72 F037 2650 | EOR DX935 COMPARE WITH READ CHK CODE ZDR26600 0A73 4C20 0A7F 2651 | BSC L DX090,Z BR UNLESS READ CHECK ZDR26610 2652 | * ZDR26620 2653 | * RETURN AFTER A READ CHECK ERROR ZDR26630 2654 | * ZDR26640 0A75 D04E 2655 | STO DX970 CLEAR BURY INDR 2-10 ZDR26650 0A76 74FF 02BB 2656 | MDX L SECT1,-1 ZDR26660 0A78 C02F 2657 | LD DX915 ZDR26670 0A79 D400 02BC 2658 | STO L SW001 SET READ CHECK ERROR SW ZDR26680 0A7B 700A 2659 | MDX DX130 RETURN TO CALLER ZDR26690 2660 | * ZDR26700 2661 | * OUT TO TAG A DEFECTIVE CYLINDER ZDR26710 2662 | * ZDR26720 2663 | * ZDR26730 2664 | * SET ERROR FLAG FOR DISK ANALYSIS ZDR26740 2665 | * ZDR26750 0A7C 6C00 02C2 2666 | DX080 STX L0 SW007 ZDR26760 0A7E 7005 2667 | MDX DX120 BR TO EXIT 2-10 ZDR26770 2668 | * ZDR26780 2669 | * PROCESS ALL BUT READ CHECK ERRORS ZDR26790 2670 | * ZDR26800 0A7F 2671 | DX090 EQU * 2-11 ZDR26810 0A7F 4400 0B65 2672 | BSI L DX600 OUT TO RETRY THE OPERATION ZDR26820 0A81 0D00 0AAE 2673 | XIO L1 DX960 RETRY OPERATION 2-10 ZDR26830 0A83 7002 2674 | MDX DX130 BR TO RETURN 2-11 ZDR26850 0A84 1810 2675 | DX120 SRA 16 CLEAR BUSY INDR 2-10 ZDR26860 0A85 D03E 2676 | STO DX970 2-10 ZDR26870 0A86 4C80 0A34 2677 | DX130 BSC I DX030 RETURN TO INTERRUPT POINT ZDR26880 2678 | * ZDR26890 2679 | * CONSTANTS AND WORK AREAS ZDR26900 2680 | * ZDR26910 0A88 001F 2681 | DX901 DC /001F MASK FOR TWICE DR NO. 2-11 ZDR26920 0A8A 2682 | DX900 BSS E 2 SEEK IOCC ZDR26930 0A8C 0000 2683 | DX906 DC *-* WASTEBASKET ZDR26940 0A8D 0010 2684 | DX907 DC 'TCNT RETRY COUNT ZDR26950 0A8E 0000 2685 | DX902 DC *-* READ BEFORE SEEK INDR 2-10 ZDR26960 0A8F 0000 2686 | DC *-* READ BEFORE SEEK IOCC+12-10 ZDR26970 0A90 0A91 2687 | DX911 DC DX912 ADDR OF I/O AREA 2-10 ZDR26980 0A91 0001 2688 | DX912 DC /0001 WD CNT FOR READ CHECK 2-10 ZDR26990 0A92 0000 2689 | DX910 DC *-* ARM POSITION,DR 0 2-11 ZDR27000 0A93 2701 2690 | DX913 DC 'I515 SENSE W/RESET IOCC DR0 2-11 ZDR27001 0A94 0000 2691 | DC *-* ARM POSITION,DR 1 2-11 ZDR27002 0A95 8F01 2692 | DC 'I516 SENSE W/RESET IOCC DR1 2-11 ZDR27003 0A96 0000 2693 | DC *-* ARM POSITION,DR 2 2-11 ZDR27004 0A97 9701 2694 | DC 'I517 SENSE W/RESET IOCC DR2 2-11 ZDR27005 0A98 0000 2695 | DC *-* ARM POSITION,DR 3 2-11 ZDR27006 0A99 9F01 2696 | DC 'I518 SENSE W/RESET IOCC DR3 2-11 ZDR27007 0A9A 0000 2697 | DC *-* ARM POSITION,DR 4 2-11 ZDR27008 0A9B A701 2698 | DC 'I519 SENSE W/RESET IOCC DR4 2-11 ZDR27009 0A9C 0000 2699 | DC *-* ARM POSITION,DR 5 2-11 ZDR27010 0A9D B701 2700 | DC 'I520 SENSE W/RESET IOCC DR5 2-11 ZDR27011 0A9E 0000 2701 | DC *-* ARM POSITION,DR 6 2-11 ZDR27012 0A9F BF01 2702 | DC 'I521 SENSE W/RESET IOCC DR6 2-11 ZDR27013 0AA0 0000 2703 | DC *-* ARM POSITION,DR 7 2-11 ZDR27014 0AA1 BF11 2704 | DC 'I522 SENSE W/RESET IOCC DR7 2-11 ZDR27015 0AA2 0000 2705 | DC *-* ARM POSITION,DR 8 2-11 ZDR27016 0AA3 BF21 2706 | DC 'I523 SENSE W/RESET IOCC DR8 2-11 ZDR27017 0AA4 0000 2707 | DC *-* ARM POSITION,DR 9 2-11 ZDR27018 0AA5 BF31 2708 | DC 'I524 SENSE W/RESET IOCC DR9 2-11 ZDR27019 0AA6 0000 2709 | DC *-* ARM POSITION,DR 10 2-11 ZDR27020 0AA7 BF41 2710 | DC 'I525 SENSE W/RESET IOCC DR102-11 ZDR27021 0AA8 0001 2711 | DX915 DC 1 GENERAL PURPOSE CONST 2-11 ZDR27022 0AA9 0000 2712 | DX925 DC *-* SCTR ADDR FROM USER BUFFER ZDR27030 0AAA 0180 2713 | DX935 DC /0180 READ CHECK FUNCTION CODE ZDR27050 0AAB FFFF 2714 | DX945 DC -1 MASK FOR COMPLEMENTING ZDR27070 0AAC 5000 2715 | DX955 DC 'D501 DISK NOT-READY ERROR CODE ZDR27090 0AAE 2716 | DX960 BSS E 'MXDR*2 WORK AREA FOR IOCCS ZDR27100 0AC4 0000 2717 | DX970 DC *-* BUSY INDICATOR 2-10 ZDR27110 0AC5 0000 2718 | DX996 DC *-* CYLINDER ADDR 2-10 ZDR27140 0AC6 0300 2719 | DX997 DC /0300 SEEK FUNCTION CODE 2-10 ZDR27170 0AC7 5002 2720 | DX998 DC /5002 WR SEL/PWR UNS ER CODE 2-10 ZDR27200 0AC8 0100 2721 | DX999 DC /0100 USED TO SET RD CHK INDR2-10 ZDR27230 0ACA 2722 | DX980 BSS E 2 STORAGE FOR ACC AND EXT ZDR27250 0ACC 2723 | DX990 BSS E 2 ORIGINAL WD CNT, SCTR ADDR ZDR27260 0ACE 02B9 2724 | DX992 DC INFOR IOCC FOR READING THE ZDR27270 0ACF 3A00 2725 | DC 'I000 *CONSOLE ENTRY SWITCHES ZDR27280 0AD0 0300 2726 | DX994 DC 'I006 SENSE ILSW IOCC ZDR27290 0AD1 0301 2727 | DX995 DC /0301 MASK FOR BITS 6,7,15 ZDR27300 2728 | * ZDR27310 2729 | * DETERMINE THE TYPE OF OPERATION PERFORMED, I.E., ZDR27320 2730 | * REQUESTED SEEK, AUTOMATIC SEEK, OR READ/WRITE/CHK ZDR27330 2731 | * ZDR27340 0AD2 C500 0AAF 2732 | DX150 LD L1 DX960+1 FETCH 2ND WD OF CURR IOCC ZDR27350 0AD4 E0F1 2733 | AND DX997 'AND' WITH SEEK FUNC CODE ZDR27360 0AD5 4C20 0A84 2734 | BSC L DX120,Z BR IF REQUESTED SEEK 2-10 ZDR27370 2735 | * ZDR27390 2736 | * CONTINUE SEEKING UNTIL ARM IS IN HOME POSITION ZDR27400 2737 | * ZDR27410 0AD7 C400 00DD 2738 | DX210 LD L $DDSW FETCH THE DSW ZDR27420 0AD9 1004 2739 | SLA 4 ZDR27430 0ADA 4C28 0A84 2740 | BSC L DX120,Z+ BR IF ARM HOME 2-10 ZDR27440 0ADC C0B2 2741 | LD DX902+1 SET READ BEFORE SEEK 2-11 ZDR27450 0ADD F0CA 2742 | EOR DX915 *TO INDICATE IF READ 2-11 ZDR27460 0ADE D0B0 2743 | STO DX902+1 *OR SEEK OP REQUIRED 2-11 ZDR27470 0ADF 4C40 0B46 2744 | BOSC L DX535 BR TO SEEK 2-10 ZDR27490 2745 | * ZDR27500 2746 | * CALL PROCESSING ZDR27510 2747 | * ZDR27520 0AE1 6916 2748 | DX240 STX 1 DX380+1 SAVE XR1 ZDR27530 0AE2 6A17 2749 | STX 2 DX390+1 SAVE XR2 ZDR27540 0AE3 6680 0A2F 2750 | LDX I2 DX000 ADDR CALL+1 TO XR2 ZDR27550 0AE5 18D0 2751 | RTE 16 SCTR ADDR TO EXTENSION ZDR27560 0AE6 C680 0001 2752 | LD I2 'IOAR ORIGINAL WORD COUNT ZDR27570 0AE8 D8E3 2753 | STD DX990 SAVE ORIGINAL WD CNT, SCTR ZDR27580 0AE9 1085 2754 | SLT 5 TWICE DR NO. TO ACC 2-11 ZDR27590 0AEA E09D 2755 | AND DX901 SAVE ONLY TWICE DR NO. 2-11 ZDR27610 0AEB D003 2756 | STO DX270+1 ZDR27620 0AEC 1005 2757 | SLA 5 CLEAR DR CODE FROM SCTR ADR ZDR27630 0AED 1885 2758 | SRT 5 ZDR27640 0AEE 6500 0000 2759 | DX270 LDX L1 *-* ZDR27650 0AF0 C0D3 2760 | DX280 LD DX970 FETCH BUSY INDR 2-10 ZDR27660 0AF1 4C20 0AF0 2761 | BSC L DX280,Z LOOP IF DRIVE IS BUSY ZDR27670 0AF3 C200 2762 | LD 2 'FUNC FETCH FUNCTION CODE ZDR27680 0AF4 4C20 0AFF 2763 | BSC L DX470,Z BR UNLESS TEST FUNCTION ZDR27690 2764 | * ZDR27700 2765 | * RETURN TO CALLER ZDR27710 2766 | * ZDR27720 0AF6 C8D3 2767 | DX330 LDD DX980 ZDR27730 0AF7 6500 0000 2768 | DX380 LDX L1 *-* RESTORE XR1 ZDR27740 0AF9 6600 0000 2769 | DX390 LDX L2 *-* RESTORE XR2 ZDR27750 0AFB 7402 0A2F 2770 | MDX L DX000,'NRTN INCR LINK WORD AND ZDR27760 0AFD 4C80 0A2F 2771 | BSC I DX000 *RETURN TO CALLER ZDR27770 2772 | * ZDR27780 2773 | * CONTINUE CALL PROCESSING (SCTR ADDR, LESS DRIVE ZDR27790 2774 | * CODE, IS IN THE EXTENSION) ZDR27800 2775 | * ZDR27810 0AFF 80C8 2776 | DX470 A DX999 SET READ BEFORE SEEK 2-10 ZDR27820 0B00 180A 2777 | SRA 10 *INDR 2-10 ZDR27830 0B01 D08C 2778 | STO DX902 2-10 ZDR27840 0B02 C201 2779 | LD 2 'IOAR SAVE ADDR OF USER 2-10 ZDR27850 0B03 D500 0AAE 2780 | STO L1 DX960 *I/O AREA ZDR27860 0B05 C400 02C1 2781 | LD L SW006 PATCH OPTION SWITCH ZDR27870 0B07 4C04 0B0D 2782 | BSC L DX480,E BR IF CALL FROM PATCH ZDR27880 0B09 C680 0001 2783 | LD I2 'IOAR WD CNT,SCTR ADDR TO ZDR27890 0B0B DE80 0001 2784 | STD I2 'IOAR *USER I/O AREA ZDR27900 0B0D C0BF 2785 | DX480 LD DX990+1 SECTOR ADDR TO ACC 2-10 ZDR27910 0B0E 100D 2786 | SLA 13 ISOLATE THE SCTR ZDR27920 0B0F 180D 2787 | SRA 13 *NO.,I.E.,RIGHTMOST 3 BITS ZDR27930 0B10 EA00 2788 | OR 2 'FUNC 'OR' IN FUNCTION CODE ZDR27940 0B11 F500 0A93 2789 | EOR L1 DX913 EOR IN AREA CODE, PUT 2-11 ZDR27950 0B13 F094 2790 | EOR DX915 *BACK BIT 15 IF NECESSARY ZDR27960 0B14 D500 0AAF 2791 | STO L1 DX960+1 STORE 2ND WD OF IOCC ZDR27970 0B16 E0AF 2792 | AND DX997 'AND' ALL BUT BITS 6, 7 ZDR27980 0B17 4C20 0B28 2793 | BSC L DX500,Z BR UNLESS SEEK REQUESTED ZDR27990 0B19 C08E 2794 | LD DX915 ZDR28000 0B1A D500 0A92 2795 | STO L1 DX910 SET ARM POSITION TO CYL 1 ZDR28010 0B1C C8AF 2796 | LDD DX990 RESTORE WD CNT AND ZDR28020 0B1D DE80 0001 2797 | STD I2 'IOAR *SCTR ADDR ZDR28030 0B1F C08A 2798 | LD DX935 BUILD READ CHECK IOCC 2-11 ZDR28040 0B20 F500 0A93 2799 | EOR L1 DX913 EOR IN AREA CODE 2-11 ZDR28050 0B22 D400 0A8F 2800 | STO L DX902+1 *AND SAVE IT 2-11 ZDR28060 0B24 C400 0A90 2801 | LD L DX911 SAVE ADDR OF I/O AREA 2-11 ZDR28070 0B26 D400 0A8E 2802 | STO L DX902 *IN READ CHECK IOCC 2-10 ZDR28080 2803 | * ZDR28090 2804 | * CHECK TO SEE IF AUTOMATIC SEEK IS NECESSARY ZDR28100 2805 | * ZDR28110 0B28 C0A4 2806 | DX500 LD DX990+1 FETCH SECTOR ADDR 2-10 ZDR28120 0B29 1004 2807 | SLA 4 CLEAR OUT DRIVE CODE AND ZDR28130 0B2A 1807 2808 | SRA 7 *CONVERT TO A CYLINDER ADDR ZDR28140 0B2B D099 2809 | STO DX996 SAVE ADDR CYLINDER SOUGHT ZDR28150 0B2C 9500 0A92 2810 | S L1 DX910 COMPARE WITH CURR CYL ADDR ZDR28160 0B2E 4C18 0B5D 2811 | BSC L DX550,+- BR IF SEEK NOT NECESSARY ZDR28170 2812 | * ZDR28180 2813 | * AUTOMATIC SEEK PREPARATION ZDR28190 2814 | * ZDR28200 0B30 1890 2815 | SRT 16 PUT NO. CYLINDERS IN EXT ZDR28210 0B31 180F 2816 | SRA 15 + OR - SIGN TO BIT 15 ZDR28220 0B32 1002 2817 | SLA 2 DIRECTION INDR TO BIT 13, ZDR28230 0B33 ED00 0A93 2818 | OR L1 DX913 *'OR' AGAINST SENSEIOCC2-11 ZDR28240 0B35 F09B 2819 | EOR DX995 *MASK BITS 6,7,AND 15 OUT ZDR28250 0B36 18D0 2820 | RTE 16 ZDR28260 0B37 4C10 0B3D 2821 | BSC L DX520,- BR IF SEEK TOWARD CENTER ZDR28270 0B39 F400 0AAB 2822 | EOR L DX945 COMPLEMENT NO. CYLINDERS ZDR28280 0B3B 8400 0AA8 2823 | A L DX915 *SOUGHT TO GET POSITIVE NO. ZDR28290 0B3D DC00 0A8A 2824 | DX520 STD L DX900 SAVE SEEK IOCC ZDR28300 0B3F C085 2825 | DX530 LD DX996 RESET ARM POSITION TO 2-11 ZDR28320 0B40 D500 0A92 2826 | STO L1 DX910 *ADDR OF CYLINDER SOUGHT ZDR28330 0B42 C400 0A8D 2827 | LD L DX907 SET BUSY INDICATOR 2-10 ZDR28340 0B44 D400 0AC4 2828 | STO L DX970 *TO INDICATE SEEK 2-10 ZDR28350 0B46 401E 2829 | DX535 BSI DX600 BR TO CHK FOR DISK REDY2-11 ZDR28370 0B47 C400 0A8E 2830 | LD L DX902 GET READ BEFORE SEEK 2-10 ZDR28380 0B49 4C18 0B4D 2831 | BSC L DX536,+- *INDR & BR IF OFF 2-10 ZDR28390 0B4B C400 0A8F 2832 | LD L DX902+1 GET RD BEFORE SEEK IOCC2-10 ZDR28400 0B4D 4C04 0B52 2833 | DX536 BSC L DX537,E *AND BR IF OP NOT SEEK 2-10 ZDR28410 0B4F 0C00 0A8A 2834 | XIO L DX900 XEQ SEEK 2-10 ZDR28420 0B51 7002 2835 | MDX DX540 SKIP NEXT XIO 2-10 ZDR28430 0B52 0C00 0A8E 2836 | DX537 XIO L DX902 XEQ OP OTHER THAN SEEK 2-10 ZDR28440 0B54 7400 0AC4 2837 | DX540 MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR28450 0B56 70FD 2838 | MDX DX540 *OTHERWISE, LOOP 2-11 ZDR28460 0B57 C500 0AAF 2839 | LD L1 DX960+1 FETCH 2ND WD CURRENT IOCC ZDR28470 0B59 E400 0AD0 2840 | AND L DX994 'AND' ALL BUT BITS 6, 7 ZDR28480 0B5B 4C18 0AF6 2841 | BSC L DX330,+- BR IF SEEK REQUESTED ZDR28490 2842 | * ZDR28500 2843 | * READ/WRITE/READ CHECK PREPARATION ZDR28510 2844 | * ZDR28520 0B5D C400 0A8D 2845 | DX550 LD L DX907 FETCH NO. RETRIES ZDR28530 0B5F D400 0AC4 2846 | STO L DX970 SET BUSY INDR 2-10 ZDR28540 0B61 4003 2847 | BSI DX600 OUT TO READ/WRITE/READ CHK ZDR28560 0B62 0D00 0AAE 2848 | XIO L1 DX960 RETRY OPERATION 2-10 ZDR28570 0B64 7091 2849 | MDX DX330 BR TO EXIT ZDR28580 2850 | * ZDR28590 2851 | * TEST FOR NOT-READY, INITIATE ALL DISK OPERATIONS ZDR28600 2852 | * ZDR28610 0B65 0000 2853 | DX600 DC *-* ENTRY POINT ZDR28620 0B66 0D00 0A92 2854 | DX630 XIO L1 DX913-1 SENSE DISK DSW/RESET 2-11 ZDR28640 0B68 D400 00DD 2855 | STO L $DDSW SAVE THE DSW ZDR28650 0B6A 4C28 0B77 2856 | BSC L DX640,+Z TEST FOR DATA ERROR 2-9 ZDR28660 0B6C 1002 2857 | SLA 2 ZDR28670 0B6D 4C90 0B65 2858 | BSC I DX600,- BR IF DR READY 2-11 ZDR28680 0B6F C400 0AEF 2859 | LD L DX270+1 GET TWICE DR CODE 2-10 ZDR28690 0B71 1003 2860 | SLA 3 PUT DR CODE IN DIGIT 2 2-10 ZDR28700 0B72 EC00 0AAC 2861 | OR L DX955 OR IN ERROR CODE 2-10 ZDR28710 0B74 4400 0028 2862 | DX635 BSI L $PRET BR TO PREOPERATIVE ERR TRAP ZDR28720 0B76 70EF 2863 | MDX DX630 BR TO TEST FOR READY ZDR28730 2864 | * 2-9 ZDR28740 0B77 1002 2865 | DX640 SLA 2 CHECK IF WR SEL/PWR UNS 2-9 ZDR28750 0B78 4C90 0B65 2866 | BSC I DX600,- BR IF DATA ERROR 2-11 ZDR28760 0B7A C400 0AC7 2867 | LD L DX998 LD WR SEL/PWR UNS CODE 2-9 ZDR28770 0B7C 70F7 2868 | MDX DX635 BR TO DISP ERROR 2-9 ZDR28780 TYPE0 2870 | *************************************************** ZDR28860 2871 | * * ZDR28870 2872 | *STATUS- VERSION 2, MODIFICATION LEVEL 0 * ZDR28880 2873 | * * ZDR28890 2874 | *FUNCTION/OPERATION- * ZDR28900 2875 | * THIS 1130/18OO SUBROUTINE OPERATES THE PRIME * ZDR28910 2876 | * KEYBOARD/PRINTER (1816/1053). IT INITIATES * ZDR28920 2877 | * REQUESTED OPERATIONS AND PROCESSES ANY * ZDR28930 2878 | * KEYBOARD, PRINTER, OR OPERATOR REQUEST * ZDR28940 2879 | * INTERRUPTS. IT IGNORES ANY KEYBOARD/PRINTER * ZDR28950 2880 | * ERRORS. * ZDR28960 2881 | * * ZDR28970 2882 | *ENTRY POINTS- * ZDR28980 2883 | * * TYPE0-CALL ENTRANCE FOR READ, WRITE, OR * ZDR28990 2884 | * TEST OPERATIONS. * ZDR29000 2885 | * * ZDR29010 2886 | * * INT1- ENTRY POINT FOR KEYBOARD, CONSOLE * ZDR29020 2887 | * PRINTER, OR INTERRUPT REQUEST * ZDR29030 2888 | * PKEY INTERRUPTS * ZDR29040 2889 | * * ZDR29050 2890 | *INPUT- FROM KEYBOARD OR LIBF PARAMETERS * ZDR29060 2891 | * * ZDR29070 2892 | *OUTPUT- PRINTED * ZDR29080 2893 | * * ZDR29090 2894 | *EXTERNAL SUBROUTINES- * ZDR29100 2895 | * * HOLL * ZDR29110 2896 | * *PRTY * ZDR29120 2897 | * * ZDR29130 2898 | *EXITS- * ZDR29140 2899 | * NORMAL- * ZDR29150 2900 | * * CALL PORTION-EXIT BACK TO USER PROGRAM. * ZDR29160 2901 | * * INTERRUPT PORTION-BACK TO ILS04 * ZDR29170 2902 | * * ERROR- * ZDR29180 2903 | * * CALL PORTION-TO $PRET * ZDR29190 2904 | * * INTERRUPT PORTION-TO $PST4 * ZDR29200 2905 | * * ZDR29210 2906 | *TABLES/WORK AREAS- LIBF TO HOLL TABLE SUBROUTINE * ZDR29220 2907 | * * ZDR29230 2908 | *ATTRIBUTES- REUSABLE * ZDR29240 2909 | * * ZDR29250 2910 | *NOTES--N/A * ZDR29260 2911 | * * ZDR29270 2912 | *************************************************** ZDR29280 TYPE0 0B7D 0000 2914 | WRTY0 DC 0 ENTRY POINT ZDR29300 0B7E 6918 2915 | STX 1 T0100+1 LIBF ENTRANCE (+0 ZDR29310 0B7F 6580 0B7D 2916 | LDX I1 WRTY0 ZDR29320 0B81 7007 2917 | MDX T0070 BR TO PROCESS THE CALL ZDR29330 0B82 0000 2918 | T0020 DC 0 INTERRUPT ENTRANCE (+4) ZDR29340 0B83 4C00 0BE7 2919 | BSC L T0320 BR TO PROCESS INTERRUPT ZDR29350 2920 | *************************************************** ZDR29360 2921 | * LIBF PROCESSING * ZDR29370 2922 | *************************************************** ZDR29380 2923 | * THIS PORTION STORES CALLING SEQUENCE INFO * ZDR29390 2924 | * AND CHECKS THE DEVICE STATUS BEFORE ANY I/O * ZDR29400 2925 | * OPERATION IS INITIATED. A CALLING ERROR * ZDR29410 2926 | * CAUSES AN ERROR EXIT TO LOC 41. NOT READY * ZDR29420 2927 | * 1053 CAUSES ERROR EXIT TO LOC /8D. OTHERWISE* ZDR29430 2928 | * THE ROUTINE IS SET BUSY AND IOCS CTR INCREMEN* ZDR29440 2929 | * TED TO INDICATE INTERRUPT(S) PENDING. * ZDR29450 2930 | *************************************************** ZDR29460 0B85 0002 2931 | T0030 DC +2 DECIMAL TWO ZDR29470 0B86 2000 2932 | T0040 DC /2000 DEVICE NOT READY CODE ZDR29480 0B87 2001 2933 | T0050 DC /2001 ILLEGAL CALL ERROR CODE ZDR29490 0B88 7001 2934 | T0060 MDX *+1 TO SET UP JUMP TABLE ZDR29500 2935 | * ZDR29510 2936 | * ZDR29520 0B89 6A0F 2937 | T0070 STX 2 T0110+1 SAVE XR2 ZDR29530 0B8A 280F 2938 | STS T0120 SAVE STATUS ZDR29540 0B8B D83C 2939 | STD T0230 SAVE ACC AND EXT ZDR29550 0B8C C100 2940 | LD 1 0 GET THE CONTROL PARAMETER ZDR29560 0B8D 180C 2941 | SRA 12 IS FUNCTION TEST ZDR29570 0B8E 4C20 0B9D 2942 | BSC L T0140,Z * NO ZDR29580 0B90 C039 2943 | LD T0240 * YES, IS SUBR BUSY ZDR29590 0B91 4818 2944 | BSC +- IF ZDR29600 0B92 7101 2945 | T0080 MDX 1 +1 * NO, EXIT TO CALL+3 ZDR29610 0B93 C834 2946 | LDD T0230 ZDR29620 0B94 7101 2947 | T0090 MDX 1 +1 IF YES, EXIT TO CALL+2 ZDR29630 0B95 6906 2948 | STX 1 T0130+1 SET UP EXIT ZDR29640 0B96 6500 0000 2949 | T0100 LDX L1 *-* RESTORE XR1 ZDR29650 0B98 6600 0000 2950 | T0110 LDX L2 *-* RESTORE XR2 ZDR29660 0B9A 2000 2951 | T0120 LDS *-* RESTORE STATUS ZDR29670 0B9B 4C00 0000 2952 | T0130 BSC L *-* EXIT ZDR29680 0B9D C02C 2953 | T0140 LD T0240 IS SUBROUTINE BUSY ZDR29690 0B9E 4C20 0B9D 2954 | BSC L T0140,Z * YES, WAIT ZDR29700 0BA0 C100 2955 | LD 1 0 ZDR29710 0BA1 D400 0C14 2956 | STO L T0455 PATCH CALL FLAG ZDR29720 0BA3 180C 2957 | SRA 12 ZDR29730 0BA4 90E0 2958 | S T0030 IS FUNCTION LEGAL ZDR29740 0BA5 4C30 0BBD 2959 | BSC L T0190,Z- * NO, ERROR ZDR29750 0BA7 80E0 2960 | A T0060 *YES, SET UP JUMP TABLE ZDR29760 0BA8 D011 2961 | STO T0180 ZDR29770 0BA9 0820 2962 | T0170 XIO T0250-1 IS THE DEVICE READY ZDR29780 0BAA 1005 2963 | SLA 5 ZDR29790 0BAB 4C28 0BBF 2964 | BSC L T0200,Z+ NO,LOOP UNTIL READY ZDR29800 0BAD 1810 2965 | SRA 16 READY, CLEAR STORAGE AREAS, ZDR29810 0BAE D061 2966 | STO T0440 * RESTART INDR ZDR29820 0BAF D05C 2967 | STO T0400 * BACKSPACE INDR ZDR29830 0BB0 D062 2968 | STO T0450 * SLASH INDR ZDR29840 0BB1 D05D 2969 | STO T0430 * SET INDR FOR RIGHT CHAR ZDR29850 0BB2 C101 2970 | LD 1 1 GET DATA ADDR ZDR29860 0BB3 8018 2971 | A T0260 AVOID STORED WD CNT ZDR29870 0BB4 D055 2972 | STO T0390 SAVE I/O AREA ADDR ZDR29880 0BB5 D05B 2973 | STO T0440+1 ZDR29890 0BB6 C580 0001 2974 | LD I1 1 SAVE WORD COUNT ZDR29900 0BB8 4C08 0BBD 2975 | BSC L T0190,+ ERROR IF ZERO OR NEGATIVE ZDR29910 0BBA 7000 2976 | T0180 MDX T0180+1 INITIATE FUNCTION ZDR29920 0BBB 7012 2977 | MDX T0280 * = GET ZDR29930 0BBC 701F 2978 | MDX T0310 * = PUT ZDR29940 0BBD C0C9 2979 | T0190 LD T0050 ERROR HANDLING ZDR29950 0BBE 7003 2980 | MDX T0220 * = ILLEGAL CALL ZDR29960 0BBF 4C02 0BA9 2981 | T0200 BSC L T0170,C * = NOT READY & BUSY ZDR29970 0BC1 C0C4 2982 | T0210 LD T0040 * = NOT READY & NOT BUSY ZDR29980 0BC2 71FF 2983 | T0220 MDX 1 -1 ZDR29990 0BC3 6D00 0028 2984 | STX L1 $PRET STORE LIBF ADDR ZDR30000 0BC5 6128 2985 | LDX 1 $PRET ZDR30010 0BC6 70CD 2986 | MDX T0090 ZDR30020 0BC8 2987 | T0230 BSS E 2 SAVE ACC AND EXT ZDR30030 0BCA 0000 2988 | T0240 DC 0 SUBR BUSY INDR ZDR30040 0BCB 0F00 2989 | T0250 DC /0F00 IOCC TO SENSE DSW ZDR30050 0BCC 0001 2990 | T0260 DC +1 DECIMAL ONE ZDR30060 0BCD 0F01 2991 | T0270 DC /0F01 SENSE DSW IOCC (RESET) ZDR30070 2992 | *************************************************** ZDR30080 2993 | * TYPE0 FUNCTION INITIATION ZDR30090 2994 | *************************************************** ZDR30100 0BCE D03E 2995 | T0280 STO T0410 READ FUNCTION INITIATION ZDR30110 0BCF D042 2996 | STO T0440+2 SAVE WD CNT FOR RESTART ZDR30120 0BD0 08F9 2997 | XIO T0250-1 ZDR30130 0BD1 1006 2998 | SLA 6 IS KEYBOARD READY ZDR30140 0BD2 4C28 0BC1 2999 | BSC L T0210,Z+ * NO, ERROR ZDR30150 0BD4 4C00 0C9D 3000 | BSC L T0730 SET UP CONVERSION TBL ADDR ZDR30160 0BD6 D0F3 3001 | T0290 STO T0240 SET SUBROUTINE BUSY ZDR30170 0BD7 7401 0032 3002 | MDX L $IOCT,+1 INCR IOCS CTR ZDR30180 0BD9 1000 3003 | NOP AVOID SKIP PROBLEM ZDR30190 0BDA 082B 3004 | XIO T0370-1 RELEASE KEYBOARD ZDR30200 0BDB 70B6 3005 | MDX T0080 GO TO EXIT ZDR30210 0BDC 1001 3006 | T0310 SLA 1 PUT FUNCTION INITIATION ZDR30220 0BDD D02F 3007 | STO T0410 SAVE WORD COUNT *2 ZDR30230 0BDE D0EB 3008 | STO T0240 SET SUBROUTINE BUSY ZDR30240 0BDF 7401 0032 3009 | MDX L $IOCT,+1 INCR IOCS CTR ZDR30250 0BE1 1000 3010 | NOP AVOID SKIP PROBLEM ZDR30260 0BE2 C480 0C0A 3011 | LD I T0390 GET 1ST O/P CHAR ZDR30270 0BE4 D021 3012 | STO T0360 STORE THECHAR IN TEMP AREA ZDR30280 0BE5 0822 3013 | XIO T0380 PRINT ONE CHARACTER ZDR30290 0BE6 70AB 3014 | MDX T0080 GO TO EXIT ZDR30300 3015 | *************************************************** ZDR30310 3016 | * GENERAL INTERRUPT PROCESSING * ZDR30320 3017 | *************************************************** ZDR30330 3018 | * THIS PORTION IS ENTERED FROM AN INTERRUPT * ZDR30340 3019 | * LEVEL SUBROUTINE (04 IN 1130). IT DETERMINES * ZDR30350 3020 | * THE CAUSE OF THE INTERRUPT. IF THE REQUESTED * ZDR30360 3021 | * NUMBER OF CHARACTERS HAS BEEN READ AND/OR * ZDR30370 3022 | * PRINTED, THE ROUTINE IS SET NOT BUSY AND THE * ZDR30380 3023 | * IOCS COUNTER DECREMENTED TO INDICATE INTERR * ZDR30390 3024 | * PROCESSING COMPLETED. IF AN OPERATOR REQUEST * ZDR30400 3025 | * INTERRUPT IS DETECTED, THE SUBROUTINE EXITS, * ZDR30410 3026 | * VIA THE ADDRESS IN LOCN $IREQ , TO THE USER * ZDR30420 3027 | * BEFORE RETURNING CONTROL TO THE INTERRUPT * ZDR30430 3028 | * LEVEL SUBROUTINE. * ZDR30440 3029 | *************************************************** ZDR30450 0BE7 08E4 3030 | T0320 XIO T0270-1 WHAT CAUSED INTERRUPT ZDR30460 0BE8 D025 3031 | STO T0420 ZDR30470 0BE9 1001 3032 | SLA 1 ZDR30480 0BEA 4C28 0C39 3033 | BSC L T0520,Z+ KEYBOARD SERVICE REQUEST ZDR30490 0BEC 4802 3034 | BSC C ZDR30500 0BED 7001 3035 | MDX T0330 PRINTER SERVICE REQUEST ZDR30510 0BEE 7011 3036 | MDX T0350 IF NOT THESE,CONT CHK ZDR30520 0BEF C020 3037 | T0330 LD T0440 WAS RE-ENTRY LAST READ ZDR30530 0BF0 4C20 0C8C 3038 | BSC L T0630,Z * YES ZDR30540 0BF2 C019 3039 | LD T0400 WAS BACKSPACE LAST REA ZDR30550 0BF3 4C20 0C7D 3040 | BSC L T0590,Z * YES ZDR30560 0BF5 C0C4 3041 | LD T0180 IS THEFUNCTION = PUT ZDR30570 0BF6 4804 3042 | BSC E * NO ZDR30580 0BF7 701E 3043 | MDX T0460 * YES ZDR30590 0BF8 7400 0C0D 3044 | MDX L T0410,0 ANY MORE CHARS TO PRINT ZDR30600 0BFA 7005 3045 | MDX T0350 * YES ZDR30610 0BFB 1810 3046 | T0340 SRA 16 CLEAR SUBROUTINE BUSY INDR ZDR30620 0BFC D0CD 3047 | STO T0240 ZDR30630 0BFD 74FF 0032 3048 | MDX L $IOCT,-1 DECREMENT IOCS COUNTER ZDR30640 0BFF 1000 3049 | NOP ZDR30650 0C00 C00D 3050 | T0350 LD T0420 ZDR30660 0C01 1002 3051 | SLA 2 ZDR30670 0C02 44A8 002C 3052 | BSI I $IREQ,Z+ BR IF INTERRUPT REQUEST ZDR30680 0C04 4C80 0B82 3053 | BSC I T0020 EXIT TO ILS 04 ZDR30690 3054 | * ZDR30700 3055 | *CONSTANTS AND BUFFER AREA ZDR30710 3056 | * ZDR30720 0C06 3057 | T0360 BSS E 1 TEMPORARY STORAGE ZDR30730 0C07 0C00 3058 | T0370 DC /0C00 IOCC TO READY KEYBOARD O ZDR30740 0C08 0C06 3059 | T0380 DC T0360 IOCC TO PRINT 1 CHAR E ZDR30750 0C09 0900 3060 | DC /0900 ZDR30760 0C0A 0000 3061 | T0390 DC 0 IOCC TO READ 1 CHAR E ZDR30770 0C0B 0A00 3062 | DC /0A00 O ZDR30780 0C0C 0000 3063 | T0400 DC 0 BACKSPACE INDR ZDR30790 0C0D 0000 3064 | T0410 DC 0 LENGTH OF I/O AREA ZDR30800 0C0E 0000 3065 | T0420 DC 0 DEVICE STATUS WORD ZDR30810 0C0F 0000 3066 | T0430 DC 0 CHAR INDR (0 IF RIGHT) ZDR30820 0C10 0000 3067 | T0440 DC 0 RE-ENTRY INFO - INDICATOR ZDR30830 0C11 0000 3068 | DC 0 IOAR ADDR ZDR30840 0C12 0000 3069 | DC 0 WORD COUNT ZDR30850 0C13 0000 3070 | T0450 DC 0 SLASH CHAR INDR ZDR30860 0C14 0000 3071 | T0455 DC 0 PATCH CALL FLAG ZDR30870 0C15 00FF 3072 | T0456 DC /00FF PRINTER CODE EXTRACT MASK ZDR30880 3073 | *************************************************** ZDR30890 3074 | * T0380 FUNCTION INTERRUPT PROCESSING * ZDR30900 3075 | *************************************************** ZDR30910 3076 | * DATA IS PRINTED FROM A TEMPORARY REGISTER AS * ZDR30920 3077 | * THE DATA AREA IS UNPACKED, ONE CHARACTER * ZDR30930 3078 | * AT A TIME. * ZDR30940 3079 | *************************************************** ZDR30950 0C16 74FF 0C0D 3080 | T0460 MDX L T0410,-1 ANY MORE CHARS TO PRINT ZDR30960 0C18 7001 3081 | MDX T0470 * YES ZDR30970 0C19 70E1 3082 | MDX T0340 * NO, EXIT ZDR30980 0C1A C0F4 3083 | T0470 LD T0430 IS THIS RIGHT CHAR ZDR30990 0C1B 4C18 0C24 3084 | BSC L T0480,+- * YES,GO TO PRINT ZDR31000 0C1D 1810 3085 | SRA 16 * NO, IS LEFT CHAR ZDR31010 0C1E D0F0 3086 | STO T0430 ZERO RIGHT HAND CHAR INDR ZDR31020 0C1F 7401 0C0A 3087 | MDX L T0390,+1 INCR I/O AREA ADDR ZDR31030 0C21 C480 0C0A 3088 | LD I T0390 GET NEXT O/P WD ZDR31040 0C23 7005 3089 | MDX T0490 GO PRINT LEFT CHAR ZDR31050 0C24 C073 3090 | T0480 LD T0640 IF RIGHT CHAR,SET INDR F ZDR31060 0C25 D0E9 3091 | STO T0430 NEXT CHAR TO BE LEFT CHAR. ZDR31070 0C26 C480 0C0A 3092 | LD I T0390 GET RIGHT CHAR,LEFT JUSTIF ZDR31080 0C28 1008 3093 | SLA 8 ZDR31090 0C29 D0DC 3094 | T0490 STO T0360 STO CHAR IN O/P BUFFER ZDR31100 0C2A 089F 3095 | T0500 XIO T0250-1 IS THE DEVICE READY ZDR31110 0C2B 1005 3096 | SLA 5 ZDR31120 0C2C 4C28 0C34 3097 | BSC L T0510,Z+ NO, GO TO ERROR TRAP ZDR31130 0C2E 089B 3098 | XIO T0250-1 DEVICE STILL READY ZDR31140 0C2F 1005 3099 | SLA 5 ZDR31150 0C30 4C28 0C34 3100 | BSC L T0510,Z+ NO, WAS CONTACT BOUNCE ZDR31160 0C32 08D5 3101 | XIO T0380 PRINT 1 CHARACTER***** ZDR31170 0C33 70CC 3102 | MDX T0350 CHK INTERRUPT REQUEST ZDR31180 3103 | * ZDR31190 3104 | *EXIT TO POST-OPERATIVE ERROR TRAP WITH NOT READY ZDR31200 3105 | *ERROR CODE IN THE ACCUMULATOR. ZDR31210 3106 | * ZDR31220 0C34 C400 0B86 3107 | T0510 LD L T0040 ERROR CODE INTO ACC ZDR31230 0C36 4400 008D 3108 | BSI L $PST4 EXIT TO ERROR TRAP ZDR31240 0C38 70F1 3109 | MDX T0500 TRY AGAIN ZDR31250 3110 | *************************************************** ZDR31260 3111 | * KEYBOARD INTERRUPT PROCESSING * ZDR31270 3112 | *************************************************** ZDR31280 3113 | * THE INPUT CHARACTER IS READ, ANALYZED, AND * ZDR31290 3114 | * PROCESSED. IF A GRAPHIC, IT IS PRINTED AND, * ZDR31300 3115 | * IF THE REQUESTED NO. OF CHARACTERS HAS NOT * ZDR31310 3116 | * BEEN READ, THE KEYBOARD IS RELEASED FOR THE * ZDR31320 3117 | * NEXT ENTRY. * ZDR31330 3118 | *************************************************** ZDR31340 0C39 08D0 3119 | T0520 XIO T0390 READ 1 CHAR FROM KEYBOARD ZDR31350 0C3A C480 0C0A 3120 | LD I T0390 ZDR31360 0C3C 100D 3121 | SLA 13 WHAT IS CHAR JUST READ ZDR31370 0C3D 4C02 0C6B 3122 | BSC L T0560,C * CHAR = END MESSAGE ZDR31380 0C3F 18D0 3123 | RTE 16 SAVE ACCUMULATOR ZDR31390 0C40 C0D3 3124 | LD T0455 ZDR31400 0C41 4C04 0C48 3125 | BSC L T0525,E BR IF PATCH CALL ZDR31410 0C43 18D0 3126 | RTE 16 RESTORE ACCUMULATOR ZDR31420 0C44 4C30 0C6F 3127 | BSC L T0570,Z- * CHAR = RE-ENTRY ZDR31430 0C46 4C20 0C76 3128 | BSC L T0580,Z * CHAR = BACKSPACE ZDR31440 0C48 612A 3129 | T0525 LDX 1 +T0770-T0760 LENGTH OF CONVERSION TBL ZDR31450 3130 | * FOR CONVERSION ZDR31460 0C49 C0CA 3131 | LD T0455 CHK FOR BIT 14 ON IN CALL ZDR31470 0C4A 1801 3132 | SRA 1 *FUNCTION WORD. ZDR31480 0C4B 4804 3133 | BSC E SKIP IF NOT DM1 LABEL CALL ZDR31490 0C4C 71FC 3134 | MDX 1 -4 EXCLUDE SPECIAL CHARS ZDR31500 0C4D C480 0C0A 3135 | T0530 LD I T0390 ZDR31510 0C4F F500 0000 3136 | T0540 EOR L1 *-* CHK W/HOLL TBL ENTRY ZDR31520 0C51 4C18 0C55 3137 | BSC L T0550,+- MATCH ,GET PRTY TBL ENTRY ZDR31530 0C53 71FF 3138 | MDX 1 -1 IF NOT,CHK NEXT TBL ENTRY ZDR31540 0C54 70F8 3139 | MDX T0530 ZDR31550 0C55 C500 0000 3140 | T0550 LD L1 *-* GET PRTY CHAR ZDR31560 0C57 D0AE 3141 | STO T0360 PUT IN O/P BUFFER ZDR31570 0C58 E0BC 3142 | AND T0456 /00FF - REMOVE PRINTER HALF ZDR31580 0C59 18D0 3143 | RTE 16 SAVE CHARACTER IN EXTENSION ZDR31590 0C5A C0B9 3144 | LD T0455 CHK FOR BIT 14 ON IN CALL ZDR31600 0C5B 1801 3145 | SRA 1 *FUNCTION WORD. ZDR31610 0C5C 4C04 0C64 3146 | BSC L T0555,E BR IF VERSION 1 LABEL CALL ZDR31620 0C5E 7401 0C0A 3147 | T0551 MDX L T0390,1 GET SET TO READ NEXT CHAR ZDR31630 0C60 74FF 0C0D 3148 | MDX L T0410,-1 ANY MORE CHARACTERS ZDR31640 0C62 08A3 3149 | XIO T0370-1 * YES,ENABLE THE KEYBOARD ZDR31650 0C63 70C6 3150 | MDX T0500 PRINT THE CHAR JUST READ ZDR31660 0C64 C0A8 3151 | T0555 LD T0410 CHARACTER COUNT ZDR31670 0C65 4804 3152 | BSC E SKIP IF NO SHIFT REQUIRED ZDR31680 0C66 1088 3153 | SLT 8 *FOR PACKING ZDR31690 0C67 18D0 3154 | RTE 16 CHAR TO ACC ZDR31700 0C68 D480 0C0A 3155 | STO I T0390 EBC TO BUFFER ZDR31710 0C6A 70F3 3156 | MDX T0551 BR TO READ NEXT CHAR ZDR31720 3157 | *************************************************** ZDR31730 3158 | * SPECIAL CHARACTER SETUP/PROCESSING * ZDR31740 3159 | *************************************************** ZDR31750 3160 | * IF A RE-ENTRY CHARACTER IS READ, TWO SLASHES * ZDR31760 3161 | * ARE PRINTED, THE CARRIER RESTORED, AND THE * ZDR31770 3162 | * KEYBOARD RELEASED FOR THE NEXT (FIRST) * ZDR31780 3163 | * ENTRY. IF A BACKSPACE CHARACTER IS READ, A * ZDR31790 3164 | * BACKSPACE IS EXECUTED, A SLASH PRINTED, AND * ZDR31800 3165 | * THE KEYBOAD RELEASED FOR THE NEXT (PREVIOUS) * ZDR31810 3166 | * ENTRY. * ZDR31820 3167 | *************************************************** ZDR31830 0C6B C02E 3168 | T0560 LD T0680 END OF FIELD CHAR INPUT ZDR31840 0C6C D480 0C0A 3169 | STO I T0390 STORE A NEW LINE CHAR ZDR31850 0C6E 708C 3170 | MDX T0340 GO TO EXIT ZDR31860 0C6F D0A0 3171 | T0570 STO T0440 ZDR31870 0C70 C0A0 3172 | LD T0440+1 CHARACTER = RE-ENTRY ZDR31880 0C71 D098 3173 | STO T0390 ZDR31890 0C72 C09F 3174 | LD T0440+2 RESTORE ADDRESS & COUNT T ZDR31900 0C73 D099 3175 | STO T0410 ZDR31910 0C74 C027 3176 | LD T0700 CHAR = SLASH ZDR31920 0C75 70B3 3177 | MDX T0490 GO TO PRINT SLASH ZDR31930 0C76 D095 3178 | T0580 STO T0400 SET BACKSPACE INDR NON-ZER ZDR31940 0C77 74FF 0C0A 3179 | MDX L T0390,-1 REFERENCE PREVIOUS WORD ZDR31950 0C79 7401 0C0D 3180 | MDX L T0410,+1 INCR THE WD CNT ZDR31960 0C7B C01D 3181 | LD T0670 CHAR = BACKSPACE ZDR31970 0C7C 70AC 3182 | MDX T0490 EXECUTE A BACKSPACE ZDR31980 0C7D C095 3183 | T0590 LD T0450 BKSP INDR SET,IS SLASH INDR ZDR31990 0C7E 4C20 0C84 3184 | BSC L T0610,Z * YES,ENABLE KB AND EXIT ZDR32000 0C80 C017 3185 | T0600 LD T0640 * NO,SET SLASH INDR ZDR32010 0C81 D091 3186 | STO T0450 ZDR32020 0C82 C019 3187 | LD T0700 CHAR = SLASH ZDR32030 0C83 70A5 3188 | MDX T0490 GO TO PRINT SLASH ZDR32040 0C84 1810 3189 | T0610 SRA 16 CLEAR INDICATORS & ZDR32050 0C85 D086 3190 | STO T0400 RELEASE THE KEYBOARD ZDR32060 0C86 D08C 3191 | STO T0450 ZDR32070 0C87 D088 3192 | STO T0440 ZDR32080 0C88 0C00 0C06 3193 | XIO L T0370-1 ZDR32090 0C8A 4C00 0C00 3194 | BSC L T0350 ZDR32100 0C8C C086 3195 | T0630 LD T0450 RESTART INDR SET,IS SLASH ZDR32110 0C8D 4C18 0C80 3196 | BSC L T0600,+- * NO, SET & PRINT SLASH ZDR32120 0C8F C400 0C0C 3197 | LD L T0400 * YES,IS BKSP INDR SET ZDR32130 0C91 4C20 0C84 3198 | BSC L T0610,Z CLEAR ALL INDICATORS ZDR32140 0C93 C004 3199 | LD T0640 * NO,SET BKSP INDR = 0 ZDR32150 0C94 D400 0C0C 3200 | STO L T0400 ZDR32160 0C96 C004 3201 | LD T0690 =CARRIAGE RET (NEW LINE) ZDR32170 0C97 7091 3202 | MDX T0490 GO TO SPACE CARRIAGE ZDR32180 3203 | * ZDR32190 3204 | *CONSTANTS AREA ZDR32200 3205 | * ZDR32210 0C98 0001 3206 | T0640 DC +1 DECIMAL CONSTANT ZDR32220 0C99 1100 3207 | T0670 DC /1100 BACKSPACE (CONSOLE PTR) ZDR32230 0C9A 4110 3208 | T0680 DC /4110 HOLLERITH NEW LINE CHAR ZDR32240 0C9B 8100 3209 | T0690 DC /8100 NEW LINE (CONSOLE PTR) ZDR32250 0C9C BC00 3210 | T0700 DC /BC00 SLASH (CONSOLE PTR) ZDR32260 3211 | *************************************************** ZDR32270 3212 | * T0730- STORE CONVERSION TBL ADDRS * ZDR32280 3213 | *************************************************** ZDR32290 0C9D C005 3214 | T0730 LD T0740 GET LIBF HOLL WD ZDR32300 0C9E D0B1 3215 | STO T0540+1 SETUP ADDR FOR CONVERSIONS ZDR32310 0C9F C004 3216 | LD T0750 GET LIBF PRTY WD ZDR32320 0CA0 D0B5 3217 | STO T0550+1 SETUP ADDR FOR CONVERSIONS ZDR32330 0CA1 4C00 0BD6 3218 | BSC L T0290 RET TO CALL SERVICE PORTIO ZDR32340 0CA3 049C 3219 | T0740 DC T0760 ADDR OF IBM CARD CODE TABLE ZDR32350 0CA4 0471 3220 | T0750 DC CPTBL ADDR OF CONSOLE PTR CODE TB ZDR32360 049C 3221 | T0760 EQU KBTBL ZDR32370 04C6 3222 | T0770 EQU KBTBE ZDR32380 PRNT1 3224 | *************************************************** ZDR32400 3225 | * * ZDR32410 3226 | * STATUS - CHANGE LEVEL 0 * ZDR32420 3227 | * * ZDR32430 3228 | * FUNCTION/OPERATION - PRNT1 CAN PERFORM THE * ZDR32440 3229 | * FOLLOWING FUNCTIONS * ZDR32450 3230 | * 1. TEST * ZDR32460 3231 | * 2. PRINT * ZDR32470 3232 | * 3. CONTROL CARRIAGE * ZDR32480 3233 | * 4. PRINT NUMERICAL * ZDR32490 3234 | * * ZDR32500 3235 | * ENTRY POINTS - * ZDR32510 3236 | * 1. PRNT1 CALL ENTRANCE, LIBF PRNT1 * ZDR32520 3237 | * 2. INT1 INTERRUPT ENTRANCE FROM ILS01 * ZDR32530 3238 | * * ZDR32540 3239 | * INPUT - THE I/O AREA CONTAINS EBCDIC CHARACTERS * ZDR32550 3240 | * PACKED TWO PER WORD * ZDR32560 3241 | * * ZDR32570 3242 | * OUTPUT - PRINTED ON 1132 PRINTER * ZDR32580 3243 | * * ZDR32590 3244 | * EXTERNAL SUBROUTINES - NONE * ZDR32600 3245 | * * ZDR32610 3246 | * EXITS - * ZDR32620 3247 | * NORMAL * ZDR32630 3248 | * 1. CALL PORTION - FC58, BACK TO USER. * ZDR32640 3249 | * 2. INTERRUPT PORTION - OUT, BACK TO ILS01 * ZDR32650 3250 | * ERROR * ZDR32660 3251 | * 1. CALL PORTION - IF PRE-OP ERROR IS DETECT* ZDR32670 3252 | * *ED, SUBROUTINE BRANCHES TO $PRET AND * ZDR32680 3253 | * DISPLAYS 6000 OR 6001 IN ACCUMULATOR. * ZDR32690 3254 | * 2. INTERRUPT PORTION - IF CARRIAGE CHANNEL * ZDR32700 3255 | * 9 OR 12 IS DETECTED, SUBROUTINE PERFORMS* ZDR32710 3256 | * BSI TO USER'S ERROR SUBROUTINE WITH 0003* ZDR32720 3257 | * OR 0004 RESPECTIVELY IN ACCUMULATOR. * ZDR32730 3258 | * * ZDR32740 3259 | * TABLES/WORK AREAS - NONE * ZDR32750 3260 | * * ZDR32760 3261 | * ATTRIBUTES - REUSABLE * ZDR32770 3262 | * * ZDR32780 3263 | * NOTES - EBCDIC CHARACTERS NOT INCLUDED IN 1132 * ZDR32790 3264 | * CHARACTER SET ARE PRINTED AS BLANKS. * ZDR32800 3265 | * * ZDR32810 3266 | *************************************************** ZDR32820 PRNT1 0CA6 3268 | BSS E 0 CREATE EVEN BOUNDARY ZDR32840 0CA6 0000 3269 | PRNT1 DC 0 ENTRY POINT ZDR32850 0CA7 6D00 0D26 3270 | STX L1 P1370+1 CALL ENTRANCE (+0 ZDR32860 0CA9 6580 0CA6 3271 | LDX I1 PRNT1 ADDR OF 1ST PARAM +2 ZDR32870 0CAB 7065 3272 | MDX P1350 TO PROCESS CALL ZDR32880 3273 | * 2-11 ZDR32890 3274 | * 2 INSTRUCTIONS MOVED 2-11 ZDR32900 3275 | * ZDR32910 3276 | *CONSTANTS AND BUFFER AREA ZDR32920 3277 | * ZDR32930 0CAC 0000 3278 | P1020 DC *-* STORAGE FOR WHEEL CHAR ZDR32940 0CAE 3279 | BSS E 0 ZDR32950 0CAE 0000 3280 | P1030 DC *-* SAVE ACC AND EXT ZDR32960 0CAF 0000 3281 | DC *-* * ZDR32970 0CB0 6001 3282 | P1040 DC /6001 ERROR CODE ZDR32980 3283 | * ZDR32990 3284 | *THIS SECTION DOES THE SHIFT TO POSITION SCAN BITS, ZDR33000 3285 | *STORES THEM IN THE SCAN FIELD AND KEEPS TRACK OF ZDR33010 3286 | *THE WORD COUNT. ZDR33020 3287 | * ZDR33030 0CB1 1082 3288 | P1050 SLT 2 POSITION FOR 2 MORE BITS ZDR33040 0CB2 74FC 0CD4 3289 | MDX L P1180,-4 IF A WD IS DONE,BR ZDR33050 0CB4 7033 3290 | MDX P1220 *ELSE RET TO GET 2 BITS ZDR33060 0CB5 108E 3291 | SLT 14 WHEN EXT FULL, MOVE TO ACC ZDR33070 0CB6 7420 0CD4 3292 | MDX L P1180,32 RESET FOR NEXT WD ZDR33080 0CB8 7408 0D0E 3293 | MDX L P1320,8 MODIFY WD CNT ZDR33090 0CBA D400 0020 3294 | P1070 STO L $SCAN STORE 1 WD IN SCAN FIELD ZDR33100 0CBC 7401 0CBB 3295 | MDX L P1070+1,1 INCR SCAN FIELD ADDR ZDR33110 0CBE 7029 3296 | MDX P1220 RET TO SET UP NEXT WD ZDR33120 0CBF 7401 0027 3297 | P1080 MDX L $SCAN+7,1 SCAN COMPLETE INDR SET ZDR33130 3298 | * ACC IS NON-0 AT THIS TIME ZDR33140 0CC1 701B 3299 | MDX P1200 EXIT TO ILS(IF ACC NOT 0) ZDR33150 3300 | * ZDR33160 3301 | *END OF FORMS ERROR EXIT ZDR33170 3302 | * ZDR33180 0CC2 C045 3303 | P1090 LD P1270 GET ERROR CODE ZDR33190 0CC3 7001 3304 | MDX P1100+1 EXIT TO CORE LOC 41 ZDR33200 3305 | * ZDR33210 3306 | *ERROR EXIT TO CORE LOC 41 W/CALL ADDR IN LOC 40 ZDR33220 3307 | * ZDR33230 0CC4 C0EB 3308 | P1100 LD P1040 GET ERROR CODE ZDR33240 0CC5 6500 0000 3309 | LDX L1 *-* GET CALL ADDR AND STORE IN ZDR33250 0CC7 71FE 3310 | MDX 1 -2 CORE LOC 40 ZDR33260 0CC8 6D00 0028 3311 | STX L1 40 ZDR33270 0CCA 6129 3312 | LDX 1 41 SET TO EXIT TO CORE LOC 41 ZDR33280 0CCB 7058 3313 | MDX P1360 ZDR33290 3314 | * ZDR33300 3315 | *CONSTANTS AND BUFFER AREA ZDR33310 3316 | * ZDR33320 0CCC 3317 | BSS E 0 CREATE EVEN BOUNDARY ZDR33330 0CCC 0CAC 3318 | P1110 DC P1020 * ZDR33340 0CCD 3200 3319 | DC /3200 READ EMITTER IOCC WDS ZDR33350 0CCE FF00 3320 | P1120 DC /FF00 SETS CARRY IF NOT CMP ZDR33360 0CCF 0002 3321 | P1130 DC 2 SET 1ST CHAR CMP BIT ZDR33370 0CD0 0016 3322 | P1140 DC 22 CTR IF NUMERIC MODE ZDR33380 0CD1 0001 3323 | P1150 DC 1 SET 2ND CHAR CMP BIT ZDR33390 0CD2 0000 3324 | P1160 DC *-* PTV=NUMERIC,NEG=ALPHA ZDR33400 0CD3 F100 3325 | P1170 DC /F100 1ST NUMERIC CHAR ON WHEEL ZDR33410 0CD4 0020 3326 | P1180 DC 32 16 BITS CTR FOR SCAN ST ZDR33420 3327 | * ZDR33430 3328 | *THIS SECTION SETS UP THE BITS FOR THE SCAN FIELD ZDR33440 3329 | * ZDR33450 3330 | * ZDR33460 0CD5 08F6 3331 | P1190 XIO P1110 WHEEL CHAR TO EMITTER ZDR33470 0CD6 C0FB 3332 | LD P1160 IS NUMERIC INDR ON ZDR33480 0CD7 4C08 0CE0 3333 | BSC L P1210,+ NO,GO START SCAN SETUP ZDR33490 0CD9 C0F6 3334 | LD P1140 YES, SET CTR48 TO 22 ZDR33500 0CDA D034 3335 | STO P1330 ZDR33510 0CDB C0D0 3336 | LD P1020 GET PRESENT WHEEL CHAR ZDR33520 0CDC F0F6 3337 | EOR P1170 CMP W/1ST NUMERIC CHAR ZDR33530 0CDD 4C20 0DD0 3338 | P1200 BSC L P1650,Z DONT CMP,EXIT TO WAIT FOR ZDR33540 3339 | * * INTRPT ON NEXT WHEEL CHAR ZDR33550 0CDF D0F2 3340 | STO P1160 DO CMP,ZERO NUMERIC INDR ZDR33560 0CE0 C0CB 3341 | P1210 LD P1020 FETCH 8-BIT CHAR & ZEROS ZDR33570 0CE1 1808 3342 | SRA 8 MOVE CHAR TO RT SIDE ACC ZDR33580 0CE2 E8C9 3343 | OR P1020 OR CHAR INTO LEFT SIDE ZDR33590 0CE3 D0C8 3344 | STO P1020 2 CHARS NOW AT WHEEL ZDR33600 0CE4 4400 0E1C 3345 | BSI L P1860 CLEAR PRINT MASK (32-39) ZDR33610 0CE6 6680 0D0D 3346 | LDX I2 P1310 NEG WD CNT TO XR2 ZDR33620 0CE8 C600 0000 3347 | P1220 LD L2 *-* GET NEXT WD TO BE O/P ZDR33630 0CEA F0C1 3348 | EOR P1020 CMP W/PRESENT WHEEL CHAR ZDR33640 0CEB 80E2 3349 | A P1120 DID LEFT CHAR CMP ZDR33650 0CEC 4C02 0CEF 3350 | BSC L P1230,C NO,BR ZDR33660 0CEE 88DF 3351 | AD P1130-1 YES,SET 2 BIT IN Q REG ZDR33670 0CEF 1008 3352 | P1230 SLA 8 DID RT CHAR CMP ZDR33680 0CF0 4818 3353 | BSC +- NO,BR ZDR33690 0CF1 88DE 3354 | AD P1150-1 YES,SET 1 BIT IN Q REG ZDR33700 0CF2 7201 3355 | MDX 2 1 DECR WD CNT ZDR33710 0CF3 70BD 3356 | MDX P1050 IF NOT ZERO,GO DO SHIFT ZDR33720 3357 | * ZDR33730 3358 | *WD CNT ZERO, DO FINAL SHIFT AND STORE ZDR33740 3359 | * ZDR33750 0CF4 C012 3360 | LD P1260 RESET CTR THAT TESTS ZDR33760 0CF5 D0DE 3361 | STO P1180 *FOR Q REG FULL ZDR33770 0CF6 8017 3362 | A P1320 ADD MODIFIED WD CNT ZDR33780 0CF7 8016 3363 | A P1320 *TWICE TO SET Q SHIFT ZDR33790 0CF8 D001 3364 | STO P1250+1 *LEFT-JUSTIFIED ZDR33800 0CF9 6600 0000 3365 | P1250 LDX L2 *-* SET UP XR2 FOR SLC ZDR33810 0CFB 1810 3366 | SRA 16 CLEAR ACC BEFORE SHIFT ZDR33820 0CFC 12C0 3367 | SLC 2 0 COUNT XR2 ZDR33830 0CFD D480 0CBB 3368 | STO I P1070+1 STORE FINAL PART OF SCAN ZDR33840 0CFF C00F 3369 | LD P1330 ZDR33850 0D00 90D0 3370 | S P1150 DECR CTR48 ZDR33860 0D01 D00D 3371 | STO P1330 ZDR33870 0D02 C004 3372 | LD P1260 ZDR33880 0D03 D0B7 3373 | STO P1070+1 RESET SCAN FIELD ADDR ZDR33890 0D04 C008 3374 | LD P1310 RESET MODIFIED WD CNT TO ZDR33900 0D05 D008 3375 | STO P1320 *STARTING VALUE ZDR33910 0D06 70B8 3376 | MDX P1080 GO SET SCAN COMPLETE INDR ZDR33920 3377 | * ZDR33930 3378 | *CONSTANTS AND BUFFER AREA ZDR33940 3379 | * ZDR33950 0D07 0020 3380 | P1260 DC 32 Q REG FULL CON ZDR33960 0D08 3381 | BSS E 0 CREATE EVEN BOUNDARY ZDR33970 0D08 6000 3382 | P1270 DC /6000 END OF FORMS ERROR CODE ZDR33980 0D09 3480 3383 | DC /3480 START PRINTER IOCC WD ZDR33990 0D0A 0030 3384 | P1280 DC 48 CON TO SET 48 PR CYCLES ZDR34000 3385 | * OR 16 IDLE CYCLES. ZDR34010 0D0B 000C 3386 | P1290 DC 12 CON TO SET 2 CYCLES ZDR34020 0D0C FFC4 3387 | P1300 DC -'PRWC WD CNT ERROR CHK CON ZDR34030 0D0D 0000 3388 | P1310 DC *-* SOURCE FOR NEG USER WD CNT ZDR34040 0D0E 0000 3389 | P1320 DC *-* WD CNT BUFFER USED BY SCAN ZDR34050 0D0F 0000 3390 | P1330 DC *-* PTR SCAN COUNT BUFFER ZDR34060 3391 | *************************************************** ZDR34070 3392 | * * ZDR34080 3393 | *THIS PORTION SERVICES A CALL ENTRANCE * ZDR34090 3394 | * * ZDR34100 3395 | *************************************************** ZDR34110 0D10 0000 3396 | P1340 DC *-* SAVE CONTROL PARAM ZDR34120 0D11 69B4 3397 | P1350 STX 1 P1100+2 ADDR OF CALL+1 STORED ZDR34130 0D12 6A15 3398 | STX 2 P1370+3 SAVE XR2 ZDR34140 0D13 2815 3399 | STS P1370+4 SAVE STATUS ZDR34150 0D14 D899 3400 | STD P1030 SAVE A AND Q REGS ZDR34160 0D15 0874 3401 | XIO P1520 SENSE PRINTER ZDR34170 0D16 1005 3402 | SLA 5 END OF FORMS TEST ZDR34180 0D17 4C28 0CC2 3403 | BSC L P1090,+Z IF END, TAKE ERROR EXIT ZDR34190 0D19 C480 0CC6 3404 | LD I P1100+2 FETCH 1ST PARAMETER ZDR34200 0D1B 188C 3405 | SRT 12 WHAT IS THE FUNCTION ZDR34210 0D1C 4820 3406 | BSC Z BR IF TEST FUNC ZDR34220 0D1D 700E 3407 | MDX P1390 NOT TEST,GO CHK PR OF CTRL ZDR34230 0D1E 086B 3408 | XIO P1520 CHK FOR PTR OR CARRIAGE ZDR34240 0D1F 1808 3409 | SRA 8 BUSY. ZDR34250 0D20 4818 3410 | BSC +- ZDR34260 0D21 7101 3411 | MDX 1 1 NOT BUSY,EXIT AT CALL+3 ZDR34270 0D22 7101 3412 | MDX 1 1 BUSY, EXIT AT CALL+2 ZDR34280 0D23 C88A 3413 | LDD P1030 RESTORE A AND Q REGS ZDR34290 0D24 6906 3414 | P1360 STX 1 P1380+1 SET UP EXIT ZDR34300 0D25 6500 0000 3415 | P1370 LDX L1 *-* RESTORE XR1 ZDR34310 0D27 6600 0000 3416 | LDX L2 *-* RESTORE XR2 ZDR34320 0D29 2000 3417 | LDS *-* RESTORE STATUS ZDR34330 0D2A 4C00 0000 3418 | P1380 BSC L *-* EXIT TO MAINLINE ZDR34340 3419 | * ZDR34350 3420 | *NOT TEST FUNCTION,CHECK PRINT OR CARRIAGE CONTROL ZDR34360 3421 | * ZDR34370 0D2C 18D4 3422 | P1390 RTE 20 RESTORE CTRL WD TO A REG ZDR34380 0D2D D0E2 3423 | STO P1340 SAVE CTRL WD ZDR34390 0D2E 188C 3424 | SRT 12 GET FUNC DIGIT ZDR34400 0D2F 90A1 3425 | S P1150 IS IT LEGAL ZDR34410 0D30 4C08 0CC4 3426 | BSC L P1100,+ NO,BR ZDR34420 0D32 909C 3427 | S P1130 TEST IF CONTROL ZDR34430 0D33 4818 3428 | BSC +- NOT,SKIP ZDR34440 0D34 702E 3429 | MDX P1460 IS, TO CTRL PROCESSING ZDR34450 0D35 D066 3430 | STO P1580 SAVE TO SET NUMERIC INDR ZDR34460 0D36 10A0 3431 | SLT 32 CLEAR Q REG ZDR34470 3432 | * ZDR34480 3433 | *THIS SECTION SETS UP THE ROUTINE TO PRINT ZDR34490 3434 | * ZDR34500 0D37 0852 3435 | P1400 XIO P1520 ANY RESPONSE,BUSY,OR ERROR ZDR34510 0D38 1808 3436 | SRA 8 BITS ON. ZDR34520 0D39 4C20 0D37 3437 | BSC L P1400,Z YES,SENSE PTR AGAIN ZDR34530 0D3B C060 3438 | LD P1580 IF PREVIOUS LINE NUMERIC ZDR34540 0D3C D095 3439 | STO P1160 THE INDR WAS SET OFF WHEN ZDR34550 3440 | * 1ST NUMERIC CHAR FOUND ZDR34560 0D3D 7101 3441 | MDX 1 1 INCR XR1 TO CALL+2 ADDR ZDR34570 0D3E 690B 3442 | STX 1 P1420+1 ST CALL+2 ADDR ZDR34580 0D3F 7101 3443 | MDX 1 1 ZDR34590 0D40 6D00 0E0E 3444 | STX L1 P1770+2 ST CALL+3 ADDR ZDR34600 0D42 C0CD 3445 | LD P1340 GET CTRL PARAM ZDR34610 0D43 D046 3446 | STO P1520 SAVE ZDR34620 0D44 188C 3447 | SRT 12 GET FUNC DIGIT ZDR34630 0D45 9059 3448 | S P1600 SUB 1 ZDR34640 0D46 1802 3449 | SRA 2 IF ANY BIT REMAINS, PARAM ZDR34650 0D47 4C20 0CC4 3450 | P1410 BSC L P1100,Z WAS OVER 4.TAKE ERROR EXIT ZDR34660 0D49 9480 0000 3451 | P1420 S I *-* SUB WD CNT FROM ZERO ZDR34670 0D4B 4C10 0CC4 3452 | BSC L P1100,- RESULT SHOULD BE NEG ZDR34680 0D4D D0BF 3453 | STO P1310 SAVE MINUS WD CNT ZDR34690 0D4E D0BF 3454 | STO P1320 ZDR34700 0D4F 90BC 3455 | S P1300 CHECK RANGE AND DISPLAY ZDR34710 0D50 4C28 0CC4 3456 | BSC L P1100,+Z *6001 IF ERROR ZDR34720 0D52 C480 0D4A 3457 | LD I P1420+1 LD ADDR OF I/O AREA ZDR34730 0D54 804A 3458 | A P1600 AVOID STORED WD CNT ZDR34740 0D55 90B7 3459 | S P1310 SUB NEG WD CNT (PT TO END) ZDR34750 0D56 D092 3460 | STO P1220+1 SAVE IN SCAN RTN ZDR34760 0D57 C8B2 3461 | LDD P1280 SET CTRS 48, 16, & 2 ZDR34770 0D58 D0B6 3462 | STO P1330 *FOR A TOTAL OF 66 CYCLES ZDR34780 0D59 D82E 3463 | STD P1500 ZDR34790 0D5A 4400 0E1C 3464 | BSI L P1860 CLEAR SCAN FIELD (32-39) ZDR34800 0D5C 7401 0027 3465 | MDX L $SCAN+7,1 SET SCAN COMPLETE INDR ZDR34810 0D5E 08A9 3466 | XIO P1270 START THE PRINTER ZDR34820 0D5F 7401 0032 3467 | P1450 MDX L $IOCT,1 INCR ISS CTR (I/O OP CTR) ZDR34830 0D61 1000 3468 | NOP MAY SKIP ZDR34840 0D62 70BF 3469 | MDX P1360-2 EXIT TO CALLING PROG ZDR34850 3470 | * ZDR34860 3471 | *THIS SECTION DOES THE CARRIAGE CONTROL FUNCTION ZDR34870 3472 | * PROCESSING ZDR34880 3473 | * ZDR34890 0D63 C024 3474 | P1460 LD P1500 WAIT FOR 16 IDLE SCANS ZDR34900 0D64 4830 3475 | BSC Z- ZDR34910 0D65 70FD 3476 | MDX P1460 ZDR34920 0D66 0823 3477 | P1470 XIO P1520 ZDR34930 0D67 180C 3478 | SRA 12 IS THE CARRIAGE BUSY ZDR34940 0D68 4C20 0D66 3479 | BSC L P1470,Z YES,SENSE PTR AGAIN ZDR34950 0D6A C0A0 3480 | LD P1290 NO, SET 6-CTR FOR CHAN CH ZDR34960 0D6B D06C 3481 | STO P1690 ZDR34970 0D6C 1810 3482 | SRA 16 CLEAR ACC ZDR34980 0D6D 1084 3483 | SLT 4 GET 2ND HEX DIGIT FROM Q ZDR34990 0D6E D02C 3484 | STO P1570 NOT ZERO--IMMEDIATE CTRL ZDR35000 3485 | * ZERO--CTRL AFTER PRINT ZDR35010 0D6F 4C20 0D74 3486 | BSC L P1480,Z IS IT ZERO ZDR35020 0D71 1084 3487 | SLT 4 YES,TRY 3RD HEX DIGIT ZDR35030 0D72 4C18 0CC4 3488 | BSC L P1100,+- IS IT ZERO ALSO,ERROR EXIT ZDR35040 0D74 9096 3489 | P1480 S P1290 NO,SUB 12 ZDR35050 0D75 4C30 0D8F 3490 | BSC L P1540,-Z IS THIS A SKIP ZDR35060 0D77 6200 3491 | LDX 2 0 YES ZDR35070 0D78 4C10 0D8C 3492 | BSC L P1530,- IS IT A SKIP TO CHAN 12 ZDR35080 0D7A 801D 3493 | A P1550 NO ZDR35090 0D7B 6201 3494 | LDX 2 1 SET XR2 FOR SHIFT & COUNT ZDR35100 0D7C 4C18 0D8C 3495 | BSC L P1530,+- IS IT CHAN 9 ZDR35110 0D7E 8019 3496 | A P1550 NO, INCR XR2 ZDR35120 0D7F 7201 3497 | MDX 2 1 ZDR35130 0D80 4C18 0D8C 3498 | P1490 BSC L P1530,+- TEST FOR NEXT CHANNEL ZDR35140 0D82 801C 3499 | A P1600 NO, LOOP & TRY FOR 5,4,3 ZDR35150 0D83 7201 3500 | MDX 2 1 *2,1 ZDR35160 0D84 74FF 0DD8 3501 | MDX L P1690,-1 CTR TO LIMIT LOOPS ZDR35170 0D86 70F9 3502 | MDX P1490 RET TO CHK CHAN ZDR35180 0D87 70BF 3503 | MDX P1410 ILLEGAL CALL-TAKE ERROR ZDR35190 3504 | * EXIT.(ACC NEG BY NOW) ZDR35200 3505 | * ZDR35210 3506 | *CONSTANTS AND BUFFER AREA ZDR35220 3507 | * ZDR35230 0D88 3508 | BSS E 0 CREATE EVEN BOUNDARY ZDR35240 0D88 0000 3509 | P1500 DC *-* CTR FOR 16 IDLE SCANS (48) ZDR35250 0D89 0000 3510 | P1510 DC *-* CTR FOR 2 IDLE SCANS (12) ZDR35260 0D8A 0000 3511 | P1520 DC *-* STORAGE FOR CALL+1 PARAM ZDR35270 0D8B 3700 3512 | DC /3700 SENSE THE PRINTER IOCC WD ZDR35280 3513 | * ZDR35290 3514 | *SET UP SKIP MASK,AND EXECUTE SKIP OR EXIT ZDR35300 3515 | * ZDR35310 0D8C C012 3516 | P1530 LD P1600 SET UP BIT FOR SKIP MASK ZDR35320 0D8D 1240 3517 | SLCA 2 0 ZDR35330 0D8E E846 3518 | OR P1670 SET SIGN BIT ON ZDR35340 0D8F D00E 3519 | P1540 STO P1590 PTV=SPACE, NEG= SKIP ZDR35350 0D90 C00A 3520 | LD P1570 SHOULD EXECUTION WAIT ZDR35360 0D91 4C18 0D22 3521 | BSC L P1360-2,+- GO TO EXIT IF YES,ELSE ZDR35370 0D93 C00A 3522 | LD P1590 DETERMINE IF SKIP OR SPACE ZDR35380 0D94 4C10 0D99 3523 | BSC L P1560,- IS IT A SKIP ZDR35390 0D96 0805 3524 | XIO P1580 YES,START CARRIAGE ZDR35400 0D97 70C7 3525 | MDX P1450 GO INCR ISS CTR, RET ZDR35410 0D98 0003 3526 | P1550 DC 3 CON OF 3 ZDR35420 3527 | * ZDR35430 3528 | *SPACE CARRIAGE CONTROL PROCESSING ZDR35440 3529 | * ZDR35450 0D99 083C 3530 | P1560 XIO P1680 START SPACES THAT INTRPT ZDR35460 3531 | * *SERVICE PART WILL FINISH ZDR35470 0D9A 70C4 3532 | MDX P1450 INCR ISS CTR, RET TO USER ZDR35480 3533 | * ZDR35490 3534 | *CONSTANTS AND BUFFER AREA ZDR35500 3535 | * ZDR35510 0D9B 0000 3536 | P1570 DC *-* CTRL BEFORE OR AFTER PR ZDR35520 0D9C 3537 | BSS E 0 CREATE EVEN BOUNDARY ZDR35530 0D9C 0000 3538 | P1580 DC *-* SAVE NUMERIC INDR ZDR35540 0D9D 3404 3539 | DC /3404 START CARRIAGE ZDR35550 0D9E 0000 3540 | P1590 DC *-* SKIP OR SPACE INDR ZDR35560 0D9F 0001 3541 | P1600 DC 1 CON OF 1 ZDR35570 3542 | *************************************************** ZDR35580 3543 | * * ZDR35590 3544 | * THIS SECTION SERVICES THE INTERRUPTS WHICH * ZDR35600 3545 | * OCCUR ON INTERRUPT LEVEL 01, THAT COME FROM * ZDR35610 3546 | * THE 1132 PRINTER. * ZDR35620 3547 | * * ZDR35630 3548 | *************************************************** ZDR35640 0DA0 0000 3549 | P1010 DC *-* INTERRUPT ENTRY POINT 2-11 ZDR35650 0DA1 0876 3550 | XIO P1830-1 SENSE AND RESET ZDR35660 0DA2 D072 3551 | STO P1800 HOLD DSW ZDR35670 0DA3 1001 3552 | SLA 1 IS IT A SKIP REQUEST ZDR35680 0DA4 4C10 0DB3 3553 | BSC L P1630,- NO,BR TO CONT CHK ZDR35690 0DA6 1007 3554 | SLA 7 YES,GET CARRIAGE CHAN NO. ZDR35700 0DA7 1808 3555 | SRA 8 RIGHT JUSTIFY ZDR35710 0DA8 E82C 3556 | OR P1670 SET UP DSW FOR COMPARE ZDR35720 0DA9 F0F4 3557 | EOR P1590 CMP W/COMMAND ZDR35730 0DAA 4820 3558 | BSC Z DO THEY MATCH ZDR35740 0DAB 7013 3559 | MDX P1640 NO,GO CONT CHK ZDR35750 0DAC D06E 3560 | STO P1850 YES,CLEAR PASS ZDR35760 0DAD D0F0 3561 | STO P1590 CLEAR MASK ZDR35770 0DAE 0829 3562 | XIO P1690 STOP CARRIAGE ZDR35780 0DAF 74FF 0032 3563 | P1620 MDX L $IOCT,-1 DECR ISS CTR ZDR35790 0DB1 1000 3564 | NOP MAY SKIP ZDR35800 0DB2 700C 3565 | MDX P1640 CONTINUE ZDR35810 3566 | * ZDR35820 3567 | *THIS SECTION SERVICES CARRIAGE RESPONSE REQUEST ZDR35830 3568 | * ZDR35840 0DB3 1001 3569 | P1630 SLA 1 IS IT A SPACE REQUES ZDR35850 0DB4 4810 3570 | BSC - IS CARR SPACE DONE ZDR35860 0DB5 7009 3571 | MDX P1640 NO ZDR35870 0DB6 C05E 3572 | LD P1800 YES,GET DSW ZDR35880 0DB7 E863 3573 | OR P1850 SAVE INFO IN PASS ZDR35890 0DB8 D062 3574 | STO P1850 ZDR35900 0DB9 C0E4 3575 | LD P1590 ZDR35910 0DBA 90E4 3576 | S P1600 DECR SPACE CNT ZDR35920 0DBB D0E2 3577 | STO P1590 STORE BACK NEW CNT ZDR35930 0DBC 4C08 0DAF 3578 | BSC L P1620,+ DECR ISS CTR+EXIT IF ZERO, ZDR35940 0DBE 0817 3579 | XIO P1680 *ELSE KEEP SPACING ZDR35950 3580 | * ZDR35960 3581 | *CONTINUE CHK IF NOT SKIP OR SPACE REQUEST ZDR35970 3582 | * ZDR35980 0DBF C055 3583 | P1640 LD P1800 PUT DSW IN PASS ZDR35990 0DC0 E85A 3584 | OR P1850 ZDR36000 0DC1 D059 3585 | STO P1850 ZDR36010 0DC2 4C10 0DD0 3586 | BSC L P1650,- IS 11.2 MS PTR INTPRT BIT ZDR36020 0DC4 C055 3587 | LD P1840 YES,CHK IF DOING 47 IDLES ZDR36030 0DC5 4C20 0DD2 3588 | BSC L P1660,Z YES,GO DECR CNT AND EXIT ZDR36040 0DC7 C04D 3589 | LD P1800 NO ZDR36050 0DC8 1004 3590 | SLA 4 DID PRESENT SCAN FINISH ZDR36060 0DC9 4C10 0DDA 3591 | BSC L P1700,- YES,BR ZDR36070 0DCB C04C 3592 | LD P1820 NO, SET UP FOR IDLES ZDR36080 0DCC D04D 3593 | STO P1840 ZDR36090 0DCD 404E 3594 | BSI P1860 ZDR36100 0DCE 7401 0027 3595 | MDX L $SCAN+7,1 SET SCAN COMPLETE INDR ZDR36110 0DD0 3596 | P1650 EQU * 2-11 ZDR36120 0DD0 4C80 0DA0 3597 | BSC I P1010 TO USER VIA ILS SUBR ZDR36130 3598 | * ZDR36140 3599 | *IF INCOMPLETE SCAN OCCURRED, DO 47 IDLES TO GET ZDR36150 3600 | *THE PRINT WHEEL BACK TO TRY SAME CHAR AGAIN. ZDR36160 3601 | * ZDR36170 0DD2 90CC 3602 | P1660 S P1600 DECR CTR46 ZDR36180 0DD3 D046 3603 | STO P1840 ZDR36190 0DD4 70FB 3604 | MDX P1650 EXIT VIA ILS 01. ZDR36200 3605 | * ZDR36210 3606 | *CONSTANTS AND BUFFER AREA ZDR36220 3607 | * ZDR36230 0DD5 8000 3608 | P1670 DC /8000 SIGN BIT ZDR36240 0DD6 3609 | BSS E 0 ZDR36250 0DD6 8080 3610 | P1680 DC /8080 STG FOR CHAN 1 MASK CON ZDR36260 0DD7 3401 3611 | DC /3401 CARRIAGE SPACE IOCC ZDR36270 0DD8 0000 3612 | P1690 DC *-* CTR TO LIMIT LOOPS-CHAN CHK ZDR36280 0DD9 3402 3613 | DC /3402 STOP CARRIAGE IOCC ZDR36290 3614 | * ZDR36300 3615 | *BEGIN PRINT MASK SET UP ZDR36310 3616 | * ZDR36320 0DDA C400 0D0F 3617 | P1700 LD L P1330 IS FORMAL PR FINISHED ZDR36330 0DDC 4C20 0CD5 3618 | BSC L P1190,Z NO,GO READ EMITTER AND SET ZDR36340 3619 | * UP SCAN FIELD FOR NEXT CHAR ZDR36350 0DDE 403D 3620 | BSI P1860 YES,CLEAR SCAN FIELD ZDR36360 0DDF 7401 0027 3621 | MDX L $SCAN+7,1 SET SCAN COMPLETE INDR ZDR36370 0DE1 C0A6 3622 | LD P1500 ARE IDLE CYCLES DONE ZDR36380 0DE2 4C20 0DED 3623 | BSC L P1710,Z NO,GO DECR IDLE CNT ZDR36390 0DE4 D036 3624 | STO P1850 YES,CLEAR PASS ZDR36400 0DE5 74FA 0D89 3625 | MDX L P1510,-6 DECR 2-CTR ZDR36410 0DE7 70E8 3626 | MDX P1650 TO USER IF NOT ZERO YET ZDR36420 0DE8 082D 3627 | XIO P1810 IF ZERO,CUT OFF INTRPTS ZDR36430 0DE9 74FF 0032 3628 | MDX L $IOCT,-1 DECREMENT IOCS COUNTER ZDR36440 0DEB 70E4 3629 | MDX P1650 TO USER ZDR36450 0DEC 70E3 3630 | MDX P1650 TO USER IF SKIP ZDR36460 3631 | * ZDR36470 3632 | *TAKE CARE OF 16 IDLES CNT AFTER PRINT COMPLETE ZDR36480 3633 | * ZDR36490 0DED 74FD 0D88 3634 | P1710 MDX L P1500,-3 DECR IDLE CNT FOR 1 IDLE ZDR36500 0DEF 70E0 3635 | MDX P1650 EXIT IF NOT DONE ZDR36510 0DF0 C0AD 3636 | LD P1590 DONE,GET SPACE/SKIP INDR ZDR36520 0DF1 4C20 0DF9 3637 | BSC L P1730,Z IS POST-PR SPACE/SKIP ASKE ZDR36530 0DF3 C400 0D8A 3638 | LD L P1520 NO,GET THE CONTROL WD ZDR36540 0DF5 100B 3639 | SLA 11 ALL ZERO IF SPACE 1 LINE ZDR36550 0DF6 180F 3640 | SRA 15 ALL ONES IF SUPPRESS SPACE ZDR36560 0DF7 F0A7 3641 | EOR P1600 CHANGE 0 TO 1, -1 TO -2 ZDR36570 0DF8 D0A5 3642 | STO P1590 PTV--SET SPACE.NEG--INHIBI ZDR36580 3643 | * ZDR36590 3644 | *THIS SECTION SETS UP THE SPACE OR SKIP AFTER PRINT ZDR36600 3645 | * ZDR36610 0DF9 D0A1 3646 | P1730 STO P1570 SET INDR OFF (+ OR -) ZDR36620 0DFA C020 3647 | LD P1850 GET CHANNEL INDR ZDR36630 0DFB 4C04 0E0A 3648 | BSC L P1760,E IF ODD,CHAN 12 WAS PASSED ZDR36640 0DFD 1801 3649 | SRA 1 ZDR36650 0DFE 4C04 0E0C 3650 | BSC L P1770,E IF ODD,CHAN 9 WAS PASSED ZDR36660 0E00 C09D 3651 | P1740 LD P1590 IF 9/12 NOT PASSED,START ZDR36670 0E01 4818 3652 | BSC +- AFTER SPACE/SKIP IF PRESENT ZDR36680 0E02 70CD 3653 | MDX P1650 TO USER IF NO SPACE/SKIP ZDR36690 0E03 4C28 0E13 3654 | BSC L P1790,+Z IS A SPACE CALLED FOR ZDR36700 0E05 08D0 3655 | XIO P1680 YES,START THE CARRIAGE ZDR36710 0E06 7401 0032 3656 | P1750 MDX L $IOCT,1 INCR THE ISS CTR ZDR36720 0E08 1000 3657 | NOP MAY SKIP ZDR36730 0E09 70C6 3658 | MDX P1650 EXIT TO USER ZDR36740 3659 | * ZDR36750 0E0A C00B 3660 | P1760 LD P1810 LD ACC W/A CON OF 4 ZDR36760 0E0B 7001 3661 | MDX P1770+1 GO TO USER ERROR RTN ZDR36770 0E0C C08B 3662 | P1770 LD P1550 LD ACC W/A CON OF 3 ZDR36780 0E0D 4480 0000 3663 | BSI I *-* GO TO USER ERROR RTN ZDR36790 0E0F 4C18 0E00 3664 | BSC L P1740,+- TAKE NO ACTION IF CLEARED, ZDR36800 0E11 C0C4 3665 | LD P1680 ELSE SET UP SKIP TO CHAN 1 ZDR36810 0E12 D08B 3666 | STO P1590 ZDR36820 0E13 0888 3667 | P1790 XIO P1580 A SKIP ASKED.START CARRIAGE ZDR36830 0E14 70F1 3668 | MDX P1750 GO INCR ISS CTR,EXIT ZDR36840 3669 | * ZDR36850 3670 | *CONSTANTS AND BUFFER AREA ZDR36860 3671 | * ZDR36870 0E15 0000 3672 | P1800 DC *-* DVC STATUS WD STG ZDR36880 0E16 3673 | BSS E 0 CREATE EVEN BOUNDARY ZDR36890 0E16 0004 3674 | P1810 DC 4 ERROR CODE FOR CHAN 12 PASS ZDR36900 0E17 3440 3675 | DC /3440 STOP PRINTER IOCC ZDR36910 0E18 002E 3676 | P1820 DC 46 CTR CON FOR 47 IDLES ZDR36920 0E19 3701 3677 | P1830 DC /3701 SENSE W/RESET IOCC ZDR36930 0E1A 0000 3678 | P1840 DC *-* CTR FOR IDLES ZDR36940 0E1B 0000 3679 | P1850 DC *-* STG FOR CARRIAGE STATUS ZDR36950 3680 | * ZDR36960 3681 | *THIS SECTION CLEARS THE PRINT SCAN FIELD (32-39) ZDR36970 3682 | * ZDR36980 0E1C 0000 3683 | P1860 DC *-* SAVE RET ADDR ZDR36990 0E1D 10A0 3684 | SLT 32 CLEAR A AND Q REGS ZDR37000 0E1E 62F8 3685 | LDX 2 -8 SET CTR FOR 4 PASSES ZDR37010 0E1F DE00 0028 3686 | P1870 STD L2 $SCAN+8 CLEAR 2 WDS ZDR37020 0E21 7202 3687 | MDX 2 2 DECR XR2 BY 2 ZDR37030 0E22 70FC 3688 | MDX P1870 RET IF NOT ZERO ZDR37040 0E23 4C80 0E1C 3689 | BSC I P1860 RET ZDR37050 PRNT3,LIBRARY SUBR FOR 1403 PRINTER 3691 | *************************************************** ZDR37080 3692 | *STATUS-VERSION 2,MODIFICATION 5 * ZDR37090 3693 | *FUNCTION/OPERATION- THIS IS A LIBRARY SUBROUTINE * ZDR37100 3694 | *FOR THE 1130 DISK MONITOR VERSION 2.THIS SUBR. * ZDR37110 3695 | *SUPPORTS THE 1403 PRINTER. ALL 1403 PRINTER * ZDR37120 3696 | *FUNCTION SUCH AS PRINTING,SPACING AND SKIPPING * ZDR37130 3697 | *INTERRUPT SERVICE SUBROUTINE(ISS) AND IS * ZDR37140 3698 | *ORGANIZED IN TWO SECTIONS-- A CALL PORTION AND AN* ZDR37150 3699 | *INTERRUPT PORTION.IN THE CALL PORTION THE FUNC- * ZDR37160 3700 | *TION IS ANALYZED AND THE REQUIRED OPERATION(S) * ZDR37170 3701 | *INITIATED.THE INTERRUPT PORTION THE THREE 1403 * ZDR37180 3702 | *INTERRUPTS,TRANSFER COMPLETE,PRINT COMPLETE AND * ZDR37190 3703 | *CARRIAGE,ARE SERVICED * ZDR37200 3704 | * * ZDR37210 3705 | *ENTRY POINTS- * ZDR37220 3706 | * *PRNT3,THIS IS THE ENTRY FOR THE CALL * ZDR37230 3707 | * PORTION,THE CALLING SEQUENCE USED BY THE * ZDR37240 3708 | * USER IS THE STANDARD ISS LIBF STATEMENT.FOR* ZDR37250 3709 | * A PRINT FUNCTION THE CALLING SEQUENCE IS- * ZDR37260 3710 | * *LIBF PRNT3 * ZDR37270 3711 | * DC /2000 (CONTROL PARAMETER) * ZDR37280 3712 | * DC /AREA (ADDRESS OF I/O AREA) * ZDR37290 3713 | * DC ERROR (ADDRESS OF ERROR SUBR) * ZDR37300 3714 | * *W3020--THIS IS THE INTERRUPT ENTRANCE FROM * ZDR37310 3715 | * THE SYSTEM ILS SUBROUTINE. * ZDR37320 3716 | * * ZDR37330 3717 | *INPUT-A WORD-COUNT PRECEDING DATA TO BE PRINTED * ZDR37340 3718 | *ARRANGED IN 1403 PRINTER CODE. * ZDR37350 3719 | * * ZDR37360 3720 | *OUTPUT-A PRINTED LINE AND ONE SPACE(PRINT FUNC) * ZDR37370 3721 | * * ZDR37380 3722 | *EXTERNAL REFERENCES-THE FOLLOWING WORDS IN COMMA * ZDR37390 3723 | *ARE REFERENCED-- * ZDR37400 3724 | * $PRET PRE-OPERATIVE ERROR TRAP * ZDR37410 3725 | * $IOCT IOCS COUNTER * ZDR37420 3726 | * $PST4 LEVEL 4 POST-OPERATIVE ERROR TRAP * ZDR37430 3727 | * * ZDR37440 3728 | *EXITS- NORMAL * ZDR37450 3729 | * *CALL PORTION-- W3160 RETURN TO USER PROGRAM* ZDR37460 3730 | * *INTERRUPT PORTION--W3800 RETURN TO ILS * ZDR37470 3731 | * - ERROR * ZDR37480 3732 | * *CALL PORTION--W3420 AND W3440 PRE-OPERATIVE* ZDR37490 3733 | * ERROR EXITS TO $PRET. * ZDR37500 3734 | * *INTERRUPT PORTION--W3780,TO USER ERROR SUBR* ZDR37510 3735 | * * ZDR37520 3736 | *TABLES,WORK AREAS- W3920,A 60-WORD OUTPUT BUFFER * ZDR37530 3737 | *INTO WHICH THE USERS MESSAGE IS TRANSFERRED. * ZDR37540 3738 | *ALL PRINTING IS DONE FROM THIS OUTPUT BUFFER. * ZDR37550 3739 | * * ZDR37560 3740 | *ATTRIBUTES-REUSABLE * ZDR37570 3741 | * * ZDR37580 3742 | *NOTES--SINCE THE 1403 ALWAYS PRINTS A FULL LINE * ZDR37590 3743 | *OF 120 CHARACTERS,THIS SUBROUTINE STORES THE * ZDR37600 3744 | *USERS MESSAGE INTO ITS OWN BUFFER TO THE LIMIT * ZDR37610 3745 | *OF THE USERS WORD-COUNT,THE REMAINDER OF THE * ZDR37620 3746 | *BUFFER IS PADDED WITH 1403 BLANK CHARACTERS. * ZDR37630 3747 | * * ZDR37640 3748 | *************************************************** ZDR37650 0E26 3749 | BSS E 0 CREATE EVEN BOUNDARY ZDR37660 0E26 0000 3750 | PRNT3 DC *-* ENTRY POINT ZDR37670 0E27 6919 3751 | STX 1 W3060+1 SAVE CONTENTS OF XR1 ZDR37680 0E28 6580 0E26 3752 | LDX I1 PRNT3 ZDR37690 0E2A 7003 3753 | MDX W3020 BRANCH TO CALL PROCESSING. ZDR37700 0E2B 0000 3754 | W3010 DC *-* INTERRUPT ENTRANCE. ZDR37710 0E2C 4C00 0ECC 3755 | BSC L W3500 BR. TO INTRPT PROCESSING. ZDR37720 3756 | *************************************************** ZDR37730 3757 | * * ZDR37740 3758 | * PRINT3 CALL PROCESSING. * ZDR37750 3759 | * * ZDR37760 3760 | *************************************************** ZDR37770 0E2E 6A10 3761 | W3020 STX 2 W3050+1 SAVE CONTENTS OF XR2. ZDR37780 0E2F 2812 3762 | STS W3070 SAVE STATUS OF INDICATORS. ZDR37790 0E30 D87D 3763 | STD W3905 SAVE CONTENTS OF ACC/EXT. ZDR37800 3764 | ** 2-4 ZDR37810 3765 | * CHECK PRINTER READY 2-4 ZDR37820 3766 | ** 2-4 ZDR37830 0E31 087E 3767 | XIO W3920 SENSE DSW WITHOUT RESET 2-4 ZDR37840 0E32 4C04 0EA7 3768 | BSC L W3210,E BR IF NOT READY 2-4 ZDR37850 3769 | ** ZDR37860 3770 | * CHECK TO SEE IF FUNCTION IS TEST. ZDR37870 3771 | ** ZDR37880 0E34 C100 3772 | LD 1 0 LOAD CONTROL PARAMETER. ZDR37890 0E35 188C 3773 | SRT 12 EXAMINE FUNCTION CODE. ZDR37900 0E36 4C20 0E4E 3774 | BSC L W3090,Z BR IF FUNCTION IS NOT TEST. ZDR37910 0E38 7400 0EB7 3775 | MDX L W3935,0 SKIP IF ROUTINE IS NOT BUSY ZDR37920 0E3A 71FF 3776 | W3030 MDX 1 -1 ZDR37930 0E3B 7102 3777 | MDX 1 2 ZDR37940 3778 | ** ZDR37950 3779 | * THE FOLLOWING INSTRUCTIONS RESET THE REGISTERS ZDR37960 3780 | * PRIOR TO RETURNING TO THE USERS MAINLINE. ZDR37970 3781 | ** ZDR37980 0E3C C871 3782 | LDD W3905 RESTORE ACCUMULATOR AND EXT ZDR37990 0E3D 6906 3783 | W3040 STX 1 W3080+1 STORE RETURN ADDRESS. ZDR38000 0E3E 6600 0000 3784 | W3050 LDX L2 *-* RESET XR2 TO ORIG CONTENTS. ZDR38010 0E40 6500 0000 3785 | W3060 LDX L1 *-* RESET XR1 TO ORIG CONTENTS. ZDR38020 0E42 2000 3786 | W3070 LDS *-* RESTORE OVERFLOW AND CARRY. ZDR38030 0E43 4C00 0000 3787 | W3080 BSC L *-* RETURN TO USER. ZDR38040 3788 | ** 2-3 ZDR38050 3789 | * CHECK PRINTER READY AND ROUTINE BUSY 2-3 ZDR38060 3790 | ** 2-3 ZDR38070 0E45 0000 3791 | W3085 DC *-* 2-3 ZDR38080 0E46 0869 3792 | W3087 XIO W3920 SENSE THE DSW 2-3 ZDR38090 0E47 4C04 0EA7 3793 | BSC L W3210,E BR IF PRINTER NOT READY 2-3 ZDR38100 0E49 7400 0EB7 3794 | MDX L W3935,0 SKIP IF RTN IS NOT BUSY 2-3 ZDR38110 0E4B 70FA 3795 | MDX W3087 RTN BUSY GO CHECK READY 2-3 ZDR38120 0E4C 4C80 0E45 3796 | BSC I W3085 RETURN 2-3 ZDR38130 3797 | ** ZDR38140 3798 | * CHECK TO SEE IF FUNCTION IS LEGAL. ZDR38150 3799 | ** ZDR38160 0E4E 6210 3800 | W3090 LDX 2 16 ZDR38170 0E4F 1240 3801 | SLCA 2 ZDR38180 0E50 72FF 3802 | MDX 2 -1 SKIP IF FUNCTION CODE IS 1. ZDR38190 0E51 72FF 3803 | MDX 2 -1 SKIP IF FUNCTION CODE LEGAL ZDR38200 0E52 7052 3804 | MDX W3200 BRANCH TO PRE-OP ERROR EXIT ZDR38210 3805 | * CHECK ROUTINE BUSY MOVED2-3 ZDR38220 0E53 1002 3806 | SLA 2 ZDR38230 0E54 40F0 3807 | BSI W3085 CHECK RDY AND RTN BUSY 2-3 ZDR38240 0E55 4802 3808 | BSC C SKIP IF FUNCTION IS PRINT. ZDR38250 0E56 7047 3809 | MDX W3190 BR TO CONTROL PROCESSING. ZDR38260 3810 | ** ZDR38270 3811 | * SET UP AND INITIATE THE PRINT OPERATION. ZDR38280 3812 | ** ZDR38290 0E57 C101 3813 | LD 1 1 LOAD ADDR OF USERS I/O AREA ZDR38300 0E58 D015 3814 | STO W3130+1 ZDR38310 0E59 D00D 3815 | STO W3120+1 ZDR38320 0E5A 18CC 3816 | RTE 12 ISOLATE AND SAVE ZDR38330 0E5B 180C 3817 | W3100 SRA 12 * THIRD DIGIT OF ZDR38340 0E5C D053 3818 | STO W3920 * CONTROL PARAMETER. ZDR38350 0E5D 1801 3819 | SRA 1 SHIFT OUT LOW ORDER BIT. ZDR38360 0E5E 4C20 0EA5 3820 | BSC L W3200,Z BR IF ILLEGAL CHARACTER. ZDR38370 0E60 623C 3821 | LDX 2 60 LOAD XR2 WITH BUFFER WD CNT ZDR38380 0E61 C851 3822 | LDD W3915 FILL ZDR38390 0E62 DE00 0DE6 3823 | W3110 STD L2 W3990-2 * OUTPUT ZDR38400 0E64 72FE 3824 | MDX 2 -2 * BUFFER ZDR38410 0E65 70FC 3825 | MDX W3110 * WITH SPACES. ZDR38420 3826 | ** ZDR38430 3827 | * CHECK USERS WORD COUNT ZDR38440 3828 | ** ZDR38450 0E66 6680 0000 3829 | W3120 LDX I2 *-* LOAD XR2 WITH WORD COUNT. ZDR38460 0E68 7200 3830 | MDX 2 0 SKIP IF WORD COUNT IS ZERO. ZDR38470 0E69 72C4 3831 | MDX 2 -60 SKIP IF WORD COUNT IS LEGAL ZDR38480 0E6A 703A 3832 | MDX W3200 BRANCH TO PRE-OP ERROR EXIT ZDR38490 0E6B 723C 3833 | MDX 2 60 RESTORE XR2 TO WORD COUNT. ZDR38500 0E6C 1000 3834 | NOP IN CASE OF SKIP. ZDR38510 3835 | * * ZDR38520 0E6D C600 0000 3836 | W3130 LD L2 *-* MOVE USERS ZDR38530 0E6F D600 0DE7 3837 | STO L2 W3990-1 * MESSAGE ZDR38540 0E71 72FF 3838 | MDX 2 -1 * TO OUTPUT ZDR38550 0E72 70FA 3839 | MDX W3130 * BUFFER. ZDR38560 3840 | * * ZDR38570 0E73 C102 3841 | LD 1 2 STORE ADDR OF USERS ERR RTN ZDR38580 0E74 D400 0F05 3842 | STO L W3580+1 *IN INTRPT PROCESSING AREA. ZDR38590 0E76 40CE 3843 | BSI W3085 CHK RDY AND RTN BSY 2-4 ZDR38600 0E77 404D 3844 | BSI W3300 BR TO INCR BUSY/IOCT CNT2-3 ZDR38610 0E78 083F 3845 | XIO W3940 INITIATE PRINT OPERATION. ZDR38620 0E79 7102 3846 | MDX 1 2 SET TO EXIT AT LIBF +4 ZDR38630 0E7A C03B 3847 | LD W3930 IS THERE CONTROL AFTER PRNT ZDR38640 0E7B 4C18 0E3A 3848 | W3140 BSC L W3030,+- BR IF NO CONTROL AFTER PRNT ZDR38650 0E7D C038 3849 | LD W3930 THIRD DIGIT TO ACC 2-4 ZDR38660 3850 | ** ZDR38670 3851 | * SET UP THE CARRIAGE CONTROL FUNCTION REQUESTED BY ZDR38680 3852 | * THE USER IN THE CARRIAGE CONTROL IOCC WORD - THEN ZDR38690 3853 | * EXECUTE THE CONTROL FUNCTION. ZDR38700 3854 | ** ZDR38710 0E7E 806D 3855 | W3150 A W3985 SET UP FOR POSSIBLE ZDR38720 0E7F D004 3856 | STO W3160 *CARRIAGE SKIP. ZDR38730 0E80 90DA 3857 | S W3100 ZDR38740 0E81 4C30 0E8B 3858 | BSC L W3170,Z- BR IF CONTROL IS SPACING. ZDR38750 0E83 C065 3859 | LD W3980 SET UP ZDR38760 0E84 1800 3860 | W3160 SRA *-* * IOCC WORD ZDR38770 0E85 D036 3861 | STO W3950 * FOR SKIP. 2-2 ZDR38780 0E86 902D 3862 | S W3925 SET 2-5 ZDR38790 0E87 4818 3863 | BSC +- *SWITCH IF 2-5 ZDR38800 0E88 683B 3864 | STX W3979 *SKIP TO CHANNEL 1 2-5 ZDR38810 0E89 62FE 3865 | LDX 2 -2 SKIP OVER NEXT WORD. ZDR38820 0E8A C033 3866 | LD W3900 SET CARRIAGE CONTROL ZDR38830 0E8B D02A 3867 | W3170 STO W3930 *COUNTER TO ONE. ZDR38840 3868 | * PREPARE RETURN FROM $PRET IF PRINTER NOT READY ZDR38850 0E8C 6907 3869 | W3180 STX 1 W3184+1 SAVE XR1 2-4 ZDR38860 0E8D 6801 3870 | STX W3182+1 SET RETURN ADDR IF 2-4 ZDR38870 0E8E 6500 0000 3871 | W3182 LDX L1 *-* *PRINTER NOT READY 2-4 ZDR38880 0E90 7105 3872 | MDX 1 5 2-5 ZDR38890 0E91 6A04 3873 | STX 2 W3185+1 SAVE XR2 2-5 ZDR38900 0E92 40B2 3874 | BSI W3085 CHECK RDY AND RTN BUSY 2-4 ZDR38910 0E93 6500 0000 3875 | W3184 LDX L1 *-* RESTORE XR1 2-4 ZDR38920 0E95 6600 0000 3876 | W3185 LDX L2 *-* RESTORE XR2 2-5 ZDR38930 3877 | * * ZDR38940 0E97 402D 3878 | BSI W3300 BR TO INCR BUSY/IOCT CNT2-2 ZDR38950 0E98 0E00 0EBC 3879 | XIO L2 W3950 INITIATE THE CONTROL FUNC. ZDR38960 0E9A 74FF 0EB6 3880 | MDX L W3930,-1 SKIP IF NO MORE CONTROL. ZDR38970 0E9C 70EF 3881 | MDX W3180 BRANCH FOR MORE CONTROL. ZDR38980 0E9D 709C 3882 | MDX W3030 BRANCH TO RETURN TO USER ZDR38990 3883 | * * ZDR39000 0E9E 1010 3884 | W3190 SLA 16 CLEAR ACC 2-3 ZDR39010 0E9F 1084 3885 | SLT 4 ZDR39020 0EA0 4C20 0E7E 3886 | BSC L W3150,Z BR IF CONTROL IS IMMEDIATE. ZDR39030 0EA2 1084 3887 | SLT 4 MOVE IN AND SAVE THIRD ZDR39040 0EA3 D012 3888 | STO W3930 *DIGIT OF CONTROL PARAMETER ZDR39050 0EA4 7095 3889 | MDX W3030 BRANCH TO RETURN TO USER. ZDR39060 3890 | ** ZDR39070 3891 | * SET UP FOR PRE-OPERATIVE ERROR EXIT. ZDR39080 3892 | ** ZDR39090 0EA5 C019 3893 | W3200 LD W3955 LOAD BAD CALL ERROR CODE. ZDR39100 0EA6 7001 3894 | MDX *+1 SKIP OVER NEXT INSTRUCTION. ZDR39110 0EA7 C018 3895 | W3210 LD W3960 LOAD NOT READY ERROR CODE. ZDR39120 0EA8 71FE 3896 | MDX 1 -2 PUT ADDRESS OF CALL IN XR1. ZDR39130 0EA9 6D00 0028 3897 | STX L1 $PRET STORE CALL ADDR AT $PRET. ZDR39140 0EAB 6129 3898 | LDX 1 $PRET+1 SET UP EXIT TO $PRET+1. ZDR39150 0EAC 7090 3899 | MDX W3040 BRANCH TO EXIT TO $PRET. ZDR39160 3900 | * * ZDR39170 0EAE 3901 | W3905 BSS E 2 WORDS FOR SAVING ACC/EXT. ZDR39180 0EB0 0000 3902 | W3920 DC *-* SENSE ZDR39190 0EB1 AF00 3903 | DC /AF00 *IOCC. ZDR39200 0EB2 8600 3904 | W3910 DC /8600 POSSIBLE PRINT ERROR BITS. ZDR39210 0EB3 7F7F 3905 | W3915 DC /7F7F SPACE - 1403 CODE. ZDR39220 0EB4 0800 3906 | W3925 DC /0800 SKIP TO CH 1 CONTROL WORD. ZDR39230 0EB5 AF01 3907 | DC /AF01 WRD 2 OF SENSE W/RESET IOCC ZDR39240 0EB6 0000 3908 | W3930 DC *-* AFTER PRINT CONTROL FLAG. ZDR39250 0EB7 0000 3909 | W3935 DC *-* ROUTINE BUSY INDICATOR. ZDR39260 0EB8 0DE8 3910 | W3940 DC W3990 PRINT ZDR39270 0EB9 AD00 3911 | DC /AD00 *IOCC. ZDR39280 0EBA 0EBC 3912 | W3945 DC W3950 CARRIAGE ZDR39290 0EBB A900 3913 | DC /A900 *SKIP IOCC. ZDR39300 0EBC 0000 3914 | W3950 DC *-* CARRIAGE ZDR39310 0EBD AC00 3915 | DC /AC00 *SPACE IOCC. ZDR39320 0EBE 0001 3916 | W3900 DC 1 CONSTANT OF DECIMAL ONE ZDR39330 0EBF 9001 3917 | W3955 DC /9001 BAD CALL ERROR CODE. ZDR39340 0EC0 9000 3918 | W3960 DC /9000 PRINTER NOT RDY ERROR CODE. ZDR39350 0EC1 0000 3919 | W3965 DC *-* CHANNEL 9/12 INDICATOR 2-2 ZDR39360 0EC2 0000 3920 | W3970 DC *-* DSW TO CHECK AN INTRPT 2-3 ZDR39370 0EC3 0000 3921 | W3975 DC *-* DSW SAVED FOR ERR CHECK 2-2 ZDR39380 0EC4 0000 3922 | W3979 DC *-* CHANNEL 1 SWITCH 2-5 ZDR39390 3923 | * 2-2 ZDR39400 3924 | * SUBROUTINE FOR INCREMENTING BUSY AND IOCT CNTR2-2 ZDR39410 3925 | * 2-2 ZDR39420 0EC5 0000 3926 | W3300 DC *-* ENTRY POINT 2-2 ZDR39430 0EC6 7401 0EB7 3927 | MDX L W3935,1 INCREMENT RTN BUSY COUNTER. ZDR39440 0EC8 7401 0032 3928 | MDX L $IOCT,1 INCREMENT SYS I/O COUNTER. ZDR39450 0ECA 4C80 0EC5 3929 | BSC I W3300 RETURN 2-2 ZDR39460 3930 | *************************************************** ZDR39470 3931 | * * ZDR39480 3932 | * PRNT3 INTERRUPT PROCESSING. * ZDR39490 3933 | * * ZDR39500 3934 | *************************************************** ZDR39510 0ECC 08E3 3935 | W3500 XIO W3920 SENSE WITHOUT RESET 2-3 ZDR39520 0ECD E8F5 3936 | OR W3975 COMBINE AND SAVE DSW 2-2 ZDR39530 0ECE D0F4 3937 | STO W3975 *FOR ERR CHECKING 2-2 ZDR39540 0ECF 08E4 3938 | XIO W3925 SENSE WITH RESET 2-3 ZDR39550 0ED0 D0F1 3939 | STO W3970 SAVE CURRENT DSW 2-3 ZDR39560 3940 | * 2-2 ZDR39570 3941 | * TRANSFER COMPLETE INTERRUPT 2-2 ZDR39580 3942 | * 2-2 ZDR39590 0ED1 1001 3943 | SLA 1 CHECK IF TRANS COMP INTRPT. ZDR39600 0ED2 4C10 0EDE 3944 | BSC L W3510,- BR IF NOT TRANS COMP INTRPT ZDR39610 0ED4 6201 3945 | LDX 2 1 2-2 ZDR39620 0ED5 C0EB 3946 | LD W3965 GET CHAN 9/12 INDICATOR 2-2 ZDR39630 0ED6 4C20 0F04 3947 | BSC L W3580,Z *BR IF SENSED IN PREV OP2-2 ZDR39640 0ED8 C0DD 3948 | W3505 LD W3930 SEE IF USER WANTED TO ZDR39650 0ED9 E8D6 3949 | OR W3920 *PRINT WITH SPACE SUPPRESS. ZDR39660 0EDA 4C20 0EDE 3950 | BSC L W3510,Z BR IF SPACE SUPPRESSED 2-2 ZDR39670 0EDC 6203 3951 | LDX 2 3 2-2 ZDR39680 0EDD 702A 3952 | MDX W3590 BRANCH TO SPACE 2-2 ZDR39690 3953 | * 2-2 ZDR39700 3954 | * PRINT COMPLETE INTERRUPT 2-2 ZDR39710 3955 | * 2-2 ZDR39720 0EDE C0E3 3956 | W3510 LD W3970 CHECK IF PR COMP INTRPT 2-3 ZDR39730 0EDF 1002 3957 | SLA 2 ZDR39740 0EE0 4C10 0EED 3958 | BSC L W3550,- BR IF NOT PRINT COMP INTRPT ZDR39750 0EE2 62FF 3959 | LDX 2 -1 2-2 ZDR39760 0EE3 C0DF 3960 | LD W3975 GET THE DSW 2-2 ZDR39770 0EE4 E0CD 3961 | AND W3910 CHECK FOR ANY ERRORS. ZDR39780 0EE5 4C20 0F01 3962 | BSC L W3570,Z BR IF THERE WAS AN ERROR. ZDR39790 3963 | * ZDR39800 0EE7 74FF 0EB7 3964 | W3520 MDX L W3935,-1 DECREMENT RTN BUSY COUNTER. ZDR39810 0EE9 1000 3965 | W3980 NOP IN CASE OF SKIP. ZDR39820 0EEA 74FF 0032 3966 | MDX L $IOCT,-1 DECREMENT SYS I/O COUNTER. ZDR39830 0EEC 1800 3967 | W3985 SRA 0 NOP - IN CASE OF SKIP. ZDR39840 3968 | * * ZDR39850 3969 | * 2-2 ZDR39860 3970 | * CARRAGE COMPLETE INTERRUPT 2-2 ZDR39870 3971 | * 2-2 ZDR39880 0EED C0D4 3972 | W3550 LD W3970 GET CURRENT DSW 2-3 ZDR39890 0EEE 1003 3973 | SLA 3 CHECK IF CARRIAGE INT ZDR39900 0EEF 4C90 0E2B 3974 | BSC I W3010,- BR IF NO CARRIAGE INT 2-2 ZDR39910 0EF1 6203 3975 | LDX 2 3 ZDR39920 0EF2 6ACF 3976 | STX 2 W3970 CLEAR CURRENT DSW 2-3 ZDR39930 0EF3 1009 3977 | SLA 9 CHECK IF CH 9 OR 12 FOUND. ZDR39940 0EF4 4C02 0EF9 3978 | BSC L W3560,C BRANCH IF CHANNEL 9 FOUND. ZDR39950 0EF6 4C10 0EFA 3979 | BSC L W3565,- BR IF CHANNEL 12 NOT FOUND. ZDR39960 0EF8 7201 3980 | MDX 2 1 SET W3965 WITH 3 IF CHAN2-2 ZDR39970 0EF9 6AC7 3981 | W3560 STX 2 W3965 *9, WITH 4 IF CHAN 12 2-2 ZDR39980 0EFA C0C9 3982 | W3565 LD W3979 2-5 ZDR39990 0EFB 4C18 0EE7 3983 | BSC L W3520,+- 2-5 ZDR40000 0EFD 1010 3984 | SLA 16 IF SKIP TO CHANNEL 1 WAS2-5 ZDR40010 0EFE D0C5 3985 | STO W3979 *THE LAST CARRIAGE OP 2-5 ZDR40020 0EFF D0C1 3986 | STO W3965 *THEN RESET CH 1 ,CH12 2-5 ZDR40030 0F00 70E6 3987 | MDX W3520 RETURN ZDR40040 3988 | * 2-2 ZDR40050 3989 | * SET UP ACK WITH ERROR CODE AND BRANCH TO USER2-2 ZDR40060 3990 | * ERROR ROUTINE. 2-2 ZDR40070 3991 | * 2-2 ZDR40080 0F01 F0C1 3992 | W3570 EOR W3975 CLEAR THE ERROR BITS 2-2 ZDR40090 0F02 D0C0 3993 | STO W3975 *AND SAVE THE DSW 2-2 ZDR40100 0F03 C0BA 3994 | LD W3900 GET ERROR CODE 2-2 ZDR40110 0F04 4400 0000 3995 | W3580 BSI L *-* BR TO USERS ERROR ROUTINE. ZDR40120 0F06 4C18 0F17 3996 | BSC L W3600,+- BRANCH IF IGNORE ERROR. ZDR40130 0F08 08A7 3997 | W3590 XIO W3920 SENSE THE PRINTER. ZDR40140 0F09 4C04 0F1B 3998 | BSC L W3610,E BRANCH IF PRINTER NOT READY ZDR40150 0F0B 1802 3999 | SRA 2 CHECK IF CARRIAGE BUSY 2-2 ZDR40160 0F0C 4C04 0F08 4000 | BSC L W3590,E *BR IF YES 2-2 ZDR40170 0F0E C0A5 4001 | LD W3925 LOAD SKIP TO CH 1 CNTRL WRD ZDR40180 0F0F D0AC 4002 | STO W3950 *AND STORE IN CNTRL IOCC. ZDR40190 4003 | * 2-2 ZDR40200 4004 | * EXECUTE A SKIP IF XR2=1, SPACE IF XR2=2, 2-2 ZDR40210 4005 | * PRINT IF XR2=-1 2-2 ZDR40220 4006 | * 2-2 ZDR40230 0F10 40B4 4007 | BSI W3300 BR TO INCT BUSY/IOCT CNT2-3 ZDR40240 0F11 0E00 0EB9 4008 | XIO L2 W3945-1 INITIATE SKIP OR PRINT. ZDR40250 4009 | * ZDR40260 0F13 72FF 4010 | MDX 2 -1 IF A SKIP TO CHAN 1 WAS 2-2 ZDR40270 0F14 70C9 4011 | MDX W3510 *EXEC ABOVE, RESET 2-2 ZDR40280 0F15 6AAB 4012 | STX 2 W3965 *CHAN 9/12 INDICATOR 2-2 ZDR40290 0F16 70C7 4013 | MDX W3510 *TO ZERO 2-2 ZDR40300 4014 | * ZDR40310 0F17 72FF 4015 | W3600 MDX 2 -1 DID USER SUPPRESS SKIP 2-3 ZDR40320 0F18 70C5 4016 | MDX W3510 *BR IF NO 2-3 ZDR40330 0F19 6AA7 4017 | STX 2 W3965 *RESET CH 9/12 SWITCH 2-3 ZDR40340 0F1A 70BD 4018 | MDX W3505 GO TEST IF SPACE AFTER P2-3 ZDR40350 4019 | * ZDR40360 0F1B C0A4 4020 | W3610 LD W3960 LOAD NOT READY ERROR CODE. ZDR40370 0F1C 4400 008D 4021 | BSI L $PST4 BR TO POST-OP NT RDY WAIT. ZDR40380 0F1E 70E9 4022 | MDX W3590 BRANCH TO SENSE PRINTER. ZDR40390 4023 | * * ZDR40400 4024 | * * ZDR40410 0DE8 4025 | W3990 EQU PRNT1+'SCNT+2 OUTPUT BUFFER 2-10 ZDR40420 0F67 4026 | ENDXX EQU 'SCNT+1+PRNT3 BUFFER END ADDR 2-10 ZDR40430 INITIALIZATION, COMMON SUBROUTINES 0F68 4028 | BADCS EQU ENDXX+1 ZDR40450 0CA6 4029 | CR990 EQU PRNT1 SOURCE SECTOR BUFFER ZDR40460 0E26 4030 | CR992 EQU PRNT3 OBJECT SECTOR BUFFER ZDR40470 4031 | * ZDR40480 4032 | * INITIALIZATION. THIS CODE IS EXECUTED ONLY ONCE ZDR40490 4033 | * AFTER DCIP IS LOADED INTO CORE. NOTE THAT IT ZDR40500 4034 | * RESIDES IN ONE OF THE DISK BUFFERS AND IS CON- ZDR40510 4035 | * SEQUENTLY OVERLAID DURING DISK OPERATIONS. ZDR40520 4036 | * ZDR40530 0F1F 0000 4037 | BEGIN DC *-* ENTRY POINT ZDR40540 0F20 6500 0FCD 4038 | LDX L1 IX000 SET UP ITV ENTRY FOR LEVEL ZDR40550 0F22 6D00 0009 4039 | STX L1 $LEV1 *1 TO GO TO ILS FOR LEVEL 1 ZDR40560 0F24 6500 00B3 4040 | LDX L1 $I200 SET UP ITV ENTRY FOR LEVEL ZDR40570 0F26 6D00 000A 4041 | STX L1 $LEV2 *2 TO GO TO ECS FOR LEVEL 2 ZDR40580 0F28 6500 00C4 4042 | LDX L1 $I400 SET UP ITV ENTRY FOR LEVEL ZDR40590 0F2A 6D00 000C 4043 | STX L1 $LEV4 *4 TO GO TO ILS FOR LEVEL 4 ZDR40600 0F2C 6500 0091 4044 | LDX L1 $STOP SET UP ITV ENTRY FOR LEVEL ZDR40610 0F2E 6D00 000D 4045 | STX L1 $LEV5 *5 TO GO TO PROG STOP TRAP ZDR40620 0F30 6500 01AE 4046 | LDX L1 INTRQ INITIALIZE ADDR OF INT REQ ZDR40630 0F32 6D00 002C 4047 | STX L1 $IREQ *SUBROUTINE ZDR40640 0F34 1810 4048 | SRA 16 INITIALIZE ZDR40650 0F35 D400 0032 4049 | STO L $IOCT *IOCS COUNTER TO ZERO ZDR40660 4050 | * ZDR40670 4051 | * MOVE TRAPS TO THEIR DISK MONITOR LOCATIONS ZDR40680 4052 | * ZDR40690 4053 | * ZDR40700 0F37 61FB 4054 | LDX 1 -BE940+BE935-1 ZDR40710 0F38 C500 0F8F 4055 | BE050 LD L1 BE935+4 MOVE PREOPERATIVE, ZDR40720 0F3A D500 002C 4056 | STO L1 $PRET+4 *POSTOPERATIVE, AND ZDR40730 0F3C C500 0F93 4057 | LD L1 BE940+4 *PROGRAM STOP KEY ZDR40740 0F3E D500 0085 4058 | STO L1 $PST1+4 *TRAPS TO THE SAME ZDR40750 0F40 C500 0F97 4059 | LD L1 BE945+4 *LOCATIONS THEY OCCUPY ZDR40760 0F42 D500 0091 4060 | STO L1 $PST4+4 *WHEN DISK MONITOR ZDR40770 0F44 C500 0F9B 4061 | LD L1 BE950+4 *SYSTEM IS IN CONTROL ZDR40780 0F46 D500 0095 4062 | STO L1 $STOP+4 ZDR40790 0F48 7101 4063 | MDX 1 1 SKIP AFTER ALL TRAPS ZDR40800 0F49 70EE 4064 | MDX BE050 *MOVED, BRANCH OTHERWISE ZDR40810 4065 | * ZDR40820 4066 | * MOVE ILS02 AND ILS04 TO DISK MONITOR LOCATIONS ZDR40830 4067 | * ZDR40840 0F4A 61CF 4068 | LDX 1 BE955-BE998 ZDR40850 0F4B C500 0FCC 4069 | BE100 LD L1 BE955-BE955+BE998 ZDR40860 0F4D D500 00E4 4070 | STO L1 $I200-BE955+BE998 ZDR40870 0F4F 7101 4071 | MDX 1 1 SKIP AFTER ILS02 AND ILS04 ZDR40880 0F50 70FA 4072 | MDX BE100 *MOVED, BR OTHERWISE ZDR40890 0F51 C400 0FCC 4073 | LD L BE998 ZDR40900 0F53 D400 00D4 4074 | STO L $IBT4 SET UP ADDR OF IBT FOR LEV4 ZDR40910 4075 | * ZDR40920 4076 | * DETERMINE THE FASTEST PRINTER THAT IS PRESENT. ZDR40930 4077 | * (READY IS EQUIVALENT TO PRESENT IN THIS CONTEXT.) ZDR40940 4078 | * INITIALIZE TO DO ANY DUMPING THAT MIGHT BE ZDR40950 4079 | * REQUESTED ON THAT PRINTER. THE AREA ACCUPIED BY ZDR40960 4080 | * THE 1132 SUBROUTINE WILL BE USED AS A DISK BUFFER ZDR40970 4081 | * IF THERE IS NO 1132 AND NO 1403, IF THERE IS ZDR40980 4082 | * NO 1132 AND THERE IS A 1403, OR IF THERE IS BOTH ZDR40990 4083 | * AN 1132 AND A 1403. THE 1403 SUBROUTINE AREA BE- ZDR41000 4084 | * COMES THE DISK BUFFER IF THERE IS AN 1132 AND ZDR41010 4085 | * NO 1403. ZDR41020 4086 | * ZDR41030 0F55 6500 0480 4087 | LDX L1 ENDTB ADDR OF END OF CP CONV TBL ZDR41040 0F57 6D00 02C8 4088 | STX L1 ADDRX ZDR41050 0F59 1810 4089 | SRA 16 INITIALIZE PRINTER SW TO ZDR41060 0F5A D400 02BD 4090 | STO L SW002 *CONSOLE PRINTER SETTING ZDR41070 0F5C 0829 4091 | XIO BE900 SENSE 1403 ZDR41080 0F5D 4C04 0F65 4092 | BSC L BE150,E *AND BRANCH IF NOT READY ZDR41090 0F5F 4400 0E26 4093 | BSI L PRNT3 TRY TO SPACE 1 LINE ON 1403 ZDR41100 0F61 3D00 4094 | DC /3D00 SKIP-A-LINE FUNCTION CODE ZDR41110 0F62 0823 4095 | XIO BE900 SENSE TO DETERMINE IF 1403 ZDR41120 0F63 4C20 0F78 4096 | BSC L BE250,Z *EXISTS. BRANCH IF IT DOES ZDR41130 0F65 0822 4097 | BE150 XIO BE910 SENSE THE 1132 ZDR41140 0F66 1005 4098 | SLA 5 TEST FORMS CHECK AND ZDR41150 0F67 4C28 0F6F 4099 | BSC L BE160,Z+ *BRANCH IF IT IS ON ZDR41160 0F69 4400 0CA6 4100 | BSI L PRNT1 TRY TO SPACE ONE LINE ON ZDR41170 0F6B 3D00 4101 | DC /3D00 *THE 1132 ZDR41180 0F6C 081B 4102 | XIO BE910 SENSE TO DETERMINE IF 1132 ZDR41190 0F6D 4C20 0F72 4103 | BSC L BE200,Z *EXISTS. BRANCH IF IT DOES ZDR41200 0F6F 6700 0CA6 4104 | BE160 LDX L3 PRNT1 ADDR OF DISK BUFFER TO XR3 ZDR41210 0F71 700F 4105 | MDX BE350 OUTPUT TO CP. BR TO CONT. ZDR41220 0F72 7410 02C8 4106 | BE200 MDX L ADDRX,'HEXA ZDR41230 0F74 6700 0E26 4107 | LDX L3 PRNT3 ADDR OF DISK BUFFER TO XR3 ZDR41240 0F76 C00E 4108 | LD BE920 FETCH ADDR OF PRNT1 ENTRY ZDR41250 0F77 7003 4109 | MDX BE300 BR TO PRESET CALLS TO PRNT1 ZDR41260 0F78 C011 4110 | BE250 LD BE925 FETCH ADDR PRNT3 ENTRY ZDR41270 0F79 6700 0CA6 4111 | LDX L3 PRNT1 ADDR OF DISK BUFFER TO XR3 ZDR41280 0F7B D400 02CA 4112 | BE300 STO L CALLP SET APPROPRIATE CALL IN ZDR41290 0F7D 74E0 02C8 4113 | MDX L ADDRX,-2*'HEXA ZDR41300 0F7F 6C00 02BD 4114 | STX L0 SW002 *USE THE 1132 OR 1403 ZDR41310 0F81 6F00 02C9 4115 | BE350 STX L3 BFRAD ZDR41320 0F83 4C80 0F1F 4116 | BSC I BEGIN RETURN ZDR41330 4117 | * ZDR41340 4118 | * CONSTANTS AND WORK AREAS ZDR41350 4119 | * ZDR41360 0F85 0CA6 4120 | BE920 DC PRNT1 ADDR ENTRY POINT TO PRNT1 ZDR41370 0F86 4121 | BSS E 0 CREATE EVEN BOUNDARY ZDR41380 0F86 0000 4122 | BE900 DC *-* 1403 SENSE ZDR41390 0F87 AF01 4123 | DC 'I906 *DEVICE IOCC ZDR41400 0F88 0000 4124 | BE910 DC *-* 1132 SENSE ZDR41410 0F89 3701 4125 | DC 'I609 *DEVICE IOCC ZDR41420 0F8A 0E26 4126 | BE925 DC PRNT3 ADDR ENTRY POINT TO PRNT3 ZDR41430 4127 | * ZDR41440 4128 | * TRAPS FOR USE OF DCIP. THESE TRAPS ARE IDENTICAL ZDR41450 4129 | * TO AND OCCUPY SAME LOCATIONS AS THEIR DISK ZDR41460 4130 | * MONITOR SYSTEM COUNTERPARTS. ZDR41470 4131 | * ZDR41480 0F8B 0000 4132 | BE935 DC *-* TRAP FOR ZDR41490 0F8C 3000 4133 | WAIT *PREOPERATIVE ZDR41500 0F8D 4C80 0028 4134 | BSC I $PRET *I/O ERRORS ZDR41510 0F8F 0000 4135 | BE940 DC *-* TRAP FOR ZDR41520 0F90 3000 4136 | WAIT *POSTOPERATIVE I/O ZDR41530 0F91 4C80 0081 4137 | BSC I $PST1 *ERRORS ON LEVEL 1 ZDR41540 0F93 0000 4138 | BE945 DC *-* TRAP FOR ZDR41550 0F94 3000 4139 | WAIT *POSTOPERATIVE I/O ZDR41560 0F95 4C80 008D 4140 | BSC I $PST4 *ERRORS ON LEVEL 4 ZDR41570 0F97 0000 4141 | BE950 DC *-* PROGRAM ZDR41580 0F98 3000 4142 | WAIT *STOP KEY ZDR41590 0F99 4CC0 0091 4143 | BOSC I $STOP *TRAP ZDR41600 4144 | * ZDR41610 4145 | * INTERRUPT LEVEL SUBROUTINES FOR LEVELS 2 AND 4. ZDR41620 4146 | * THESE SUBROUTINES ARE IDENTICAL TO AND OCCUPY THE ZDR41630 4147 | * SAME LOCATIONS AS THEIR DISK MONITOR SYSTEM ZDR41640 4148 | * COUNTERPARTS. ZDR41650 4149 | * ZDR41660 0F9B 0000 4150 | BE955 DC *-* ENTRY POINT ZDR41670 0F9C 6906 4151 | STX 1 BE960+1 SAVE XR1 ZDR41680 0F9D 6A07 4152 | STX 2 BE965+1 SAVE XR2 ZDR41690 0F9E 2807 4153 | STS BE970 SAVE STATUS ZDR41700 0F9F D80A 4154 | STD BE975 SAVE ACC, EXT ZDR41710 0FA0 4400 0A34 4155 | BSI L DX030 BR TO SERVICE THE INTERRUPT ZDR41720 0FA2 6500 0000 4156 | BE960 LDX L1 *-* RESTORE XR1 ZDR41730 0FA4 6600 0000 4157 | BE965 LDX L2 *-* RESTORE XR2 ZDR41740 0FA6 2000 4158 | BE970 LDS 0 RESTORE STATUS ZDR41750 0FA7 C802 4159 | LDD BE975 RESTORE ACC,EXT 2-8 ZDR41760 0FA8 4CC0 00B3 4160 | BOSC I $I200 RETURN TO INTERRUPT POINT ZDR41770 0FAA 0000 4161 | BE975 DC *-* CONTENTS OF ACCUMULATOR ZDR41780 0FAB 0000 4162 | DC *-* CONTENTS OF EXTENSION ZDR41790 0FAC 0000 4163 | DC *-* ENTRY POINT ZDR41800 0FAD D818 4164 | STD BE995 SAVE ACC, EXT ZDR41810 0FAE 280E 4165 | STS BE980 SAVE STATUS ZDR41820 0FAF 690F 4166 | STX 1 BE985+1 SAVE XR1 ZDR41830 0FB0 6A10 4167 | STX 2 BE990+1 SAVE XR2 ZDR41840 0FB1 0816 4168 | XIO BE996 SENSE KB/CP DSW ZDR41850 0FB2 1002 4169 | SLA 2 ZDR41860 0FB3 4C10 00D0 4170 | BSC L $I403,- BR UNLESS INT REQ KEY ZDR41870 0FB5 4480 002C 4171 | BSI I $IREQ BR TO INT REQ SUBR ZDR41880 0FB7 FFFE 4172 | DC -2 FOR MONITOR USE ONLY ZDR41890 0FB8 6109 4173 | LDX 1 9 ZDR41900 0FB9 0810 4174 | XIO BE997 SENSE ILSW04 ZDR41910 0FBA 1140 4175 | SLCA 1 0 ZDR41920 0FBB 4580 0000 4176 | BSI I1 *-* BR TO SERVICE INTERRUPT ZDR41930 0FBD 2000 4177 | BE980 LDS 0 RESTORE STATUS ZDR41940 0FBE 6500 0000 4178 | BE985 LDX L1 *-* RESTORE XR1 ZDR41950 0FC0 6600 0000 4179 | BE990 LDX L2 *-* RESTORE XR2 ZDR41960 0FC2 C803 4180 | LDD BE995 RESTORE ACC, EXT ZDR41970 0FC3 4CC0 00C4 4181 | BOSC I $I400 RETURN TO INTERRUPT POINT ZDR41980 0FC5 0000 4182 | DC *-* CURRENT READING OF DISK DSW ZDR41990 0FC6 0000 4183 | BE995 DC *-* CONTENTS OF ACCUMULATOR ZDR42000 0FC7 0000 4184 | DC *-* CONTENTS OF EXTENSION ZDR42010 0FC8 0000 4185 | BE996 DC *-* IOCC FOR SENSING ZDR42020 0FC9 0F00 4186 | DC /0F00 *THE KB/CP DSW 2-9 ZDR42030 0FCA 0000 4187 | BE997 DC *-* IOCC FOR SENSING ZDR42040 0FCB 0300 4188 | DC 'I006 *THE ILSW ZDR42050 0FCC 02C6 4189 | BE998 DC IBT04-8 POINTER FOR LEVEL 4 IBT ZDR42060 INTERRUPT LEVEL 1 SUBROUTINE 4191 | * ZDR42080 4192 | *************************************************** ZDR42090 4193 | * ILS FOR INTERRUPT LEVEL 1 ZDR42100 4194 | *************************************************** ZDR42110 4195 | * ZDR42120 0FCD 0000 4196 | IX000 DC *-* ENTRY POINT ZDR42130 0FCE 6906 4197 | STX 1 IX210+1 SAVE XR1 ZDR42140 0FCF 6A07 4198 | STX 2 IX211+1 SAVE XR2 ZDR42150 0FD0 2807 4199 | STS IX212 SAVE STATUS ZDR42160 0FD1 D80A 4200 | STD IX213 SAVE ACC, EXT ZDR42170 0FD2 4400 0DA0 4201 | BSI L P1010 BR TO SERVICE THE INTERRUPT ZDR42180 0FD4 6500 0000 4202 | IX210 LDX L1 *-* RESTORE XR1 ZDR42190 0FD6 6600 0000 4203 | IX211 LDX L2 *-* RESTORE XR2 ZDR42200 0FD8 2000 4204 | IX212 LDS 0 RESTORE STATUS ZDR42210 0FD9 C802 4205 | LDD IX213 RESTORE ACC, EXT ZDR42220 0FDA 4CC0 0FCD 4206 | BOSC I IX000 RETURN TO INTERRUPT POINT ZDR42230 4207 | * ZDR42240 4208 | * CONSTANTS AND WORK AREAS ZDR42250 4209 | * ZDR42260 0FDC 4210 | BSS E 0 CREATE EVEN BOUNDARY ZDR42270 0FDC 0000 4211 | IX213 DC *-* CONTENTS OF ACCUMULATOR ZDR42280 0FDD 0000 4212 | DC *-* CONTENTS OF EXTENSION ZDR42290 PATCH AREA 0FDE 4214 | BSS 4096-* PATCH AREA ZDR42310 1000 4215 | END START ZDR42320 There were no errors in this assembly Program transfer address = 0100 === CROSS REFERENCES ========================================================== Name Val Defd Referenced #ANDU 0023 112 1409 #BNDU 0028 113 1410 #CIBA 003C 116 1414 #CIDN 0037 115 1407 1653 2420 2421 #FPAD 002D 114 1412 #ULET 0050 117 1416 $CH12 0006 198 1712 2438 2439 $DCYL 00A4 210 1712 2438 2439 $DDSW 00DD 215 2609 2738 2855 $I200 00B3 211 4040 4070 4160 $I400 00C4 212 4042 4181 $I403 00D0 216 4170 $I405 00D3 213 214 $IBT4 00D4 214 4074 $IOCT 0032 206 448 3002 3009 3048 3467 3563 3628 3656 3928 3966 4049 $IREQ 002C 205 3052 4047 4171 $LEV1 0009 199 4039 $LEV2 000A 200 4041 $LEV4 000C 201 1368 4043 $LEV5 000D 202 4045 $PRET 0028 204 594 2862 2984 2985 3897 3898 4056 4134 $PST1 0081 207 4058 4137 $PST4 008D 208 3108 4021 4060 4140 $SCAN 0020 203 3294 3297 3465 3595 3621 3686 $STOP 0091 209 4044 4062 4143 $ZEND 01E0 217 1345 1370 1374 1391 1393 1401 'CCNT 0008 137 139 483 1210 1219 1289 1723 1903 2215 2449 'CIBA 0008 173 1349 'CIDN 0004 183 1308 1535 'COPY 0005 180 1320 1533 1624 'CSTR 00D0 178 1345 1401 'D501 5000 150 2715 'DBSC 0010 135 1347 1363 'DCOM 0001 170 1346 'DCTB 0001 182 1125 1315 1537 1540 1546 1547 1550 1553 1879 1883 1899 1901 2192 2197 'DM2I FFFE 177 1343 'DMCT 0003 186 349 391 392 418 421 703 'DTYP 0008 181 1322 1531 1563 1597 'FPAD 0018 121 1347 1348 1357 1363 'FUNC 0000 192 2762 2788 'HEXA 0010 188 424 2045 2089 4106 4113 'I000 3A00 162 325 2725 'I006 0300 163 2726 4188 'I206 0F01 148 1394 'I208 0900 149 1392 'I515 2701 151 2690 'I516 8F01 152 2692 'I517 9701 153 2694 'I518 9F01 154 2696 'I519 A701 155 2698 'I520 B701 156 2700 'I521 BF01 157 2702 'I522 BF11 158 2704 'I523 BF21 159 2706 'I524 BF31 160 2708 'I525 BF41 161 2710 'I609 3701 164 4125 'I906 AF01 165 4123 'IDAD 0000 169 1342 'IOAR 0001 193 2752 2779 2783 2784 2797 'LFEN 0003 123 1359 'LFHD 0005 122 1359 'LSCT 0640 143 2168 'MCYL 00CB 144 1190 'MSCT 0658 142 143 1158 1363 1670 1723 1914 2449 'MXDR 000B 141 517 518 1157 1917 2265 2716 'NDCY 0003 138 139 471 1123 1125 1178 1313 1314 1315 1519 1572 1686 1688 1712 1723 1780 1781 1879 1881 1883 1898 1899 1901 2192 2194 2197 2389 2390 2392 2393 2395 2437 2438 2439 2449 'NDSC 0018 139 143 1363 'NPTN 0003 127 1194 'NRTN 0002 194 2770 'PRWC 003C 179 3387 'PTN1 AAAA 129 1244 'PTN2 5555 130 1245 'PTN3 0000 131 1246 'RIAD 0002 171 1723 2449 'SADR 0001 185 528 550 620 1198 1230 1256 1308 1313 1320 1322 1407 1409 1410 1412 1414 1416 1431 1531 1533 1535 1537 1540 1546 1547 1550 1553 1563 1597 1624 1640 1653 1741 1879 1937 1950 1952 1955 2192 2229 2290 'SCNT 0140 136 279 1359 1401 1499 1671 1920 2060 2061 2064 2466 2511 2512 2513 4025 4026 'TCNT 0010 140 2684 'TEST 0032 128 1241 'ULET 0002 172 1350 'WDCT 0000 184 232 353 1594 'WPLN 0010 187 422 703 ADDRX 02C8 721 1932 4088 4106 4113 ANLYZ 08EC 2164 258 BADAD 02C5 718 1224 1451 1465 BADCS 0F68 4028 1119 1125 1132 1176 1178 1315 1471 1472 1481 1485 1883 1899 1901 2197 2209 BADFL 02C4 717 1180 1467 1478 BE050 0F38 4055 4064 BE100 0F4B 4069 4072 BE150 0F65 4097 4092 BE160 0F6F 4104 4099 BE200 0F72 4106 4103 BE250 0F78 4110 4096 BE300 0F7B 4112 4109 BE350 0F81 4115 4105 BE900 0F86 4122 4091 4095 BE910 0F88 4124 4097 4102 BE920 0F85 4120 4108 BE925 0F8A 4126 4110 BE935 0F8B 4132 4054 4055 BE940 0F8F 4135 4054 4057 BE945 0F93 4138 4059 BE950 0F97 4141 4061 BE955 0F9B 4150 4068 4069 4070 BE960 0FA2 4156 4151 BE965 0FA4 4157 4152 BE970 0FA6 4158 4153 BE975 0FAA 4161 4154 4159 BE980 0FBD 4177 4165 BE985 0FBE 4178 4166 BE990 0FC0 4179 4167 BE995 0FC6 4183 4164 4180 BE996 0FC8 4185 4168 BE997 0FCA 4187 4174 BE998 0FCC 4189 4068 4069 4070 4073 BEGIN 0F1F 4037 225 4116 BFRAD 02C9 722 1304 1564 1652 1711 1878 1949 2191 4115 BLANK 02B6 704 292 348 1929 BUFF3 0281 700 1891 1893 1903 1938 1946 1954 1976 CALLP 02CA 723 656 660 1943 4112 CB000 0665 1498 1300 1405 1505 CB030 066A 1502 1500 1504 CM050 0102 226 266 275 453 595 1169 1755 2157 2250 2457 CM100 010E 234 264 CM250 0129 265 254 CM500 012C 270 249 CM905 0134 279 231 CN050 016E 357 413 CN100 017A 371 407 CN150 017E 374 386 CN300 0185 383 379 CN350 018C 392 401 CN400 0190 395 366 396 CN900 01A2 418 349 384 392 CN905 01A8 419 358 412 CN910 01A9 420 362 406 CN915 01AA 421 363 CN920 01AB 422 357 361 CN925 01AC 423 351 372 405 CN930 01AD 424 378 CNPNT 0166 347 316 414 1177 1585 1591 1947 1953 2284 2293 2316 2533 CO100 067B 1526 1576 CO120 0694 1543 1518 1571 CO130 06A4 1553 1549 CO140 06A8 1556 1520 1573 CO240 06BB 1580 1566 CO245 06E5 1614 1603 CO250 06E9 1620 1601 1606 1609 CO270 06EF 1628 CO275 06FE 1638 CO280 06FF 1639 1630 CO330 070F 1658 1654 1664 CO335 0715 1662 1656 CO336 0719 1665 1610 CO360 0731 1692 1660 CO380 0732 1693 1655 CO400 0734 1694 CO430 0747 1717 1707 CO460 074F 1725 1754 CO500 0759 1731 CO510 075F 1735 1749 CO530 076C 1744 1737 CO540 076D 1746 1747 CO550 0779 1755 1761 1807 CO629 0799 1800 1635 CO630 0792 1793 1541 1545 1548 1552 1554 1558 1666 CO640 077B 1759 1633 CO645 077D 1760 1766 1771 CO650 0780 1765 1621 CO660 0783 1770 1616 CO700 0786 1778 1713 1786 CO710 0789 1781 1785 CO720 078C 1783 1779 CO900 071B 1670 1516 1522 1527 1528 1529 1551 1574 CO910 071C 1671 1593 CO920 071D 1672 1527 1538 1542 1555 1724 1753 CO922 071E 1673 1529 1544 1557 CO925 071F 1674 1623 1634 1647 1703 1751 CO926 0720 1675 1605 1608 1615 1629 1701 1706 CO927 0721 1676 1602 1632 CO940 0722 1678 1522 1646 1700 1704 1725 1728 1730 CO945 0723 1679 1575 1639 1642 1694 1696 1717 1719 1731 1734 1735 1750 1752 CO950 0724 1680 1532 1595 1604 1607 1614 1628 1631 CO960 0726 1682 1536 1582 1588 1620 1659 1692 CO965 0728 1684 1534 1596 1622 1705 CO980 072D 1687 1782 CO990 072A 1686 1517 1726 CO994 072E 1688 1570 1732 1781 COMPR 0993 2362 260 271 CP900 0142 298 291 CPOUT 0135 286 226 293 1995 2278 2310 2525 CPTBL 0471 991 3220 CR060 09AC 2390 2397 CR100 09B9 2402 2405 CR140 09C6 2420 2423 CR180 09D3 2438 2441 CR220 09DD 2451 2456 CR700 09F6 2482 2415 2433 2453 2501 CR800 0A0D 2508 2409 2427 2445 2454 2537 CR820 0A12 2512 2519 CR840 0A2D 2537 2524 CR900 09E8 2461 2510 2517 2523 CR905 09E9 2462 2450 2455 CR910 09EA 2464 2374 2379 2391 2413 2431 2451 2487 2490 2528 CR915 09EB 2465 2383 2394 2414 2432 2452 2496 2499 2530 CR930 09EC 2466 2367 CR980 09ED 2467 2392 2488 CR985 09F0 2468 2395 2497 CR990 0CA6 4029 2368 2378 2390 2402 2420 2438 2486 2512 CR992 0E26 4030 2369 2382 2393 2403 2421 2439 2495 2513 CR994 09F3 2474 2529 2531 2532 DA040 08F1 2174 2177 DA120 0907 2195 2193 2199 DA150 090F 2203 2246 DA155 0919 2215 2240 DA160 091D 2218 2256 DA190 0933 2254 2235 DA600 093F 2274 2230 2299 DA700 095E 2306 2224 2323 2334 DA800 0981 2341 2218 2355 DA900 0937 2260 2169 2245 DA905 0938 2261 2351 DA910 0939 2262 2327 DA920 093A 2263 2228 2281 2313 2352 DA930 093B 2264 2181 2183 DA935 093C 2265 2175 2178 DA940 093D 2266 2204 2239 DA945 093E 2267 2216 2234 DC000 01CA 470 479 1727 1733 2210 2489 2498 DC050 01CC 472 478 DC900 01D5 483 474 DP040 07A7 1824 DP042 07A9 1825 1830 DP043 07AF 1829 1837 DP070 07C5 1851 1844 DP080 07C7 1852 1855 1857 DP090 07D6 1865 1820 DP095 07DD 1870 1865 DP100 07DF 1874 1847 1861 DP110 07E6 1882 1880 1885 DP120 07EC 1889 1965 DP130 07F0 1891 1869 DP160 07F7 1899 1905 DP240 0811 1926 1902 1906 1977 DP320 082C 1945 1940 1942 DP360 083F 1957 1959 DP400 084C 1975 1900 DP900 0804 1912 1928 DP902 0806 1913 1926 DP905 0808 1914 1836 DP910 0809 1915 1838 1856 DP915 080A 1916 1846 1853 1867 1964 DP920 080B 1917 1828 1831 DP925 080C 1918 1835 1892 DP930 080D 1919 1870 1939 1945 1970 DP935 080E 1920 1951 DP940 080F 1921 1975 DP945 0810 1922 1897 DUMPZ 07A2 1814 265 1971 1991 2156 2329 DUPLC 0670 1511 252 DX000 0A2F 2590 531 553 622 626 1433 1742 2141 2145 2750 2770 2771 DX030 0A34 2596 2677 4155 DX040 0A39 2603 2606 DX050 0A3F 2607 2601 2604 2605 2638 DX055 0A4D 2618 DX060 0A5C 2633 2635 DX065 0A6F 2648 2629 DX080 0A7C 2666 2620 DX090 0A7F 2671 2651 DX120 0A84 2675 2619 2645 2667 2734 2740 DX130 0A86 2677 2659 2674 DX150 0AD2 2732 2610 2614 DX210 0AD7 2738 DX240 0AE1 2748 2592 DX270 0AEE 2759 2756 2859 DX280 0AF0 2760 2761 DX330 0AF6 2767 2841 2849 DX380 0AF7 2768 2748 DX390 0AF9 2769 2749 DX470 0AFF 2776 2763 DX480 0B0D 2785 2782 DX500 0B28 2806 2793 DX520 0B3D 2824 2821 DX530 0B3F 2825 DX535 0B46 2829 2744 DX536 0B4D 2833 2831 DX537 0B52 2836 2833 DX540 0B54 2837 2835 2838 DX550 0B5D 2845 2811 DX600 0B65 2853 2672 2829 2847 2858 2866 DX630 0B66 2854 2863 DX635 0B74 2862 2868 DX640 0B77 2865 2856 DX900 0A8A 2682 2824 2834 DX901 0A88 2681 2755 DX902 0A8E 2685 2741 2743 2778 2800 2802 2830 2832 2836 DX906 0A8C 2683 DX907 0A8D 2684 2646 2827 2845 DX910 0A92 2689 2795 2810 2826 DX911 0A90 2687 2801 DX912 0A91 2688 2687 DX913 0A93 2690 581 587 591 2608 2789 2799 2818 2854 DX915 0AA8 2711 2641 2657 2742 2790 2794 2823 DX925 0AA9 2712 DX935 0AAA 2713 2649 2650 2798 DX945 0AAB 2714 2822 DX955 0AAC 2715 598 2861 DX960 0AAE 2716 583 2611 2648 2673 2732 2780 2791 2839 2848 DX970 0AC4 2717 452 535 557 630 1437 1746 2149 2626 2647 2655 2676 2760 2828 2837 2846 DX980 0ACA 2722 2591 2767 DX990 0ACC 2723 2753 2785 2796 2806 DX992 0ACE 2724 2643 DX994 0AD0 2726 2602 2840 DX995 0AD1 2727 2819 DX996 0AC5 2718 2809 2825 DX997 0AC6 2719 2733 2792 DX998 0AC7 2720 2640 2867 DX999 0AC8 2721 2776 ENDTB 0480 1006 289 4087 ENDXX 0F67 4026 1198 1256 4028 FI000 0596 1299 1137 1439 FI050 05A4 1315 1318 FI070 05A6 1316 1312 1313 FI090 05AD 1322 FI100 05B0 1327 1330 FI120 05B2 1328 1306 FI200 0603 1405 1338 FI210 0624 1437 1438 FI900 05BD 1342 1336 FI905 05BE 1343 1321 FI910 05BF 1345 1305 FI920 05C0 1346 1419 FI925 05C1 1347 1408 FI930 05C2 1348 1411 FI935 05C3 1349 1413 FI940 05C4 1350 1415 1430 FI945 05C5 1351 1335 1418 1429 FI950 05C6 1354 1431 1435 FI965 05CF 1363 1354 FI970 05D0 1367 1326 1327 1370 1374 1391 1393 1401 FI975 05D4 1370 1380 FI980 05E1 1381 1382 FI985 05E4 1384 1386 1393 FI990 05E8 1391 1372 1377 FI991 05EA 1393 1367 1385 FI992 05EC 1398 1369 FI993 05FC 1399 1369 1370 1371 1374 1376 1391 1401 FI994 0603 1401 1326 GD020 01D9 492 503 GD900 01EE 517 500 GD901 01F0 519 497 504 511 GD902 01F1 520 509 GETDR 01D6 490 512 1515 2373 HM050 0248 624 621 HM100 024D 628 625 HM120 024E 630 631 HM900 0253 636 619 HOMEX 0240 617 632 1106 1530 1874 2187 2381 2385 IB050 0149 309 306 IB100 014A 310 312 IB900 0158 324 314 IBT04 02CE 732 4189 INFOR 02B9 706 315 317 324 1583 1584 1589 1590 2282 2283 2291 2292 2314 2315 2322 2644 2724 INITL 04C8 1093 250 INITV 04C7 1086 262 INSTR 0144 305 234 318 492 1095 1108 1139 1147 1825 1852 2004 2174 2321 INTRQ 01AE 431 4046 IQ050 01B5 443 446 IQ150 01C0 452 IQ900 01C4 458 443 IQ902 01C6 460 438 IQ905 01C8 462 432 444 IT040 04CA 1095 1098 IT060 04DD 1107 1105 IT080 04DF 1108 1110 IT090 04E6 1114 IT100 04EB 1117 1153 IT120 04F2 1125 1127 IT140 04FE 1137 1182 IT150 050B 1147 1149 1152 IT280 051B 1166 1179 1181 IT300 051F 1169 1140 IT320 0521 1173 1133 IT920 0516 1157 1096 1099 IT925 0517 1158 1124 IT930 0518 1159 1115 IT945 0519 1160 1102 1144 IT950 051A 1161 230 585 1087 1104 IX000 0FCD 4196 4038 4206 IX210 0FD4 4202 4197 IX211 0FD6 4203 4198 IX212 0FD8 4204 4199 IX213 0FDC 4211 4200 4205 KBHXE 04AB 1052 2047 KBTBE 04C6 1079 3222 KBTBL 049C 1037 3221 LINKA 02C6 719 1449 MK050 0632 1455 1450 MK100 063B 1460 1447 1482 1486 MK150 063F 1465 1456 MK200 0645 1468 1466 MK250 0658 1479 1477 MK300 065E 1483 1480 MK900 0663 1490 1476 MK905 0664 1491 1474 MKERR 0629 1446 1232 1250 1448 1461 MSG10 0377 810 803 1175 MSG11 037E 817 810 1107 MSG12 0386 824 817 2632 MSG13 0398 832 491 824 MSG14 03B3 840 832 1146 MSG15 03C3 847 840 1168 MSG16 03C9 854 847 1803 MSG17 03CD 861 854 1798 MSG18 03D1 868 861 1806 MSG19 03D2 876 868 2003 MSG20 03E6 884 876 2279 MSG21 03F0 891 884 2288 MSG22 03FA 898 891 2311 MSG23 0407 905 898 2320 MSG24 0413 912 905 2526 MSG26 041D 919 912 1759 MSG27 042A 926 919 1765 MSG28 0435 933 926 1636 1770 MSG29 0445 935 933 1580 MSG30 044B 937 935 1586 MSOUT 015A 332 273 340 1581 1587 1637 1760 2054 2280 2289 2312 2527 MSSG1 02CF 746 233 MSSG2 030B 757 746 1824 MSSG3 0327 765 757 1851 MSSG4 0336 772 765 1138 MSSG5 0346 779 263 493 772 1097 1109 1148 1829 1854 2005 2176 MSSG6 0350 786 779 1094 2173 MSSG7 035F 793 272 786 MSSG9 036F 803 793 1136 NOPTN 0280 699 1117 1192 NT050 0799 1801 1795 NT100 079D 1804 1799 P1010 0DA0 3549 3597 4201 P1020 0CAC 3278 3318 3336 3341 3343 3344 3348 P1030 0CAE 3280 3400 3413 P1040 0CB0 3282 3308 P1050 0CB1 3288 3356 P1070 0CBA 3294 3295 3368 3373 P1080 0CBF 3297 3376 P1090 0CC2 3303 3403 P1100 0CC4 3308 3304 3397 3404 3426 3450 3452 3456 3488 P1110 0CCC 3318 3331 P1120 0CCE 3320 3349 P1130 0CCF 3321 3351 3427 P1140 0CD0 3322 3334 P1150 0CD1 3323 3354 3370 3425 P1160 0CD2 3324 3332 3340 3439 P1170 0CD3 3325 3337 P1180 0CD4 3326 3289 3292 3361 P1190 0CD5 3331 3618 P1200 0CDD 3338 3299 P1210 0CE0 3341 3333 P1220 0CE8 3347 3290 3296 3460 P1230 0CEF 3352 3350 P1250 0CF9 3365 3364 P1260 0D07 3380 3360 3372 P1270 0D08 3382 3303 3466 P1280 0D0A 3384 3461 P1290 0D0B 3386 3480 3489 P1300 0D0C 3387 3455 P1310 0D0D 3388 3346 3374 3453 3459 P1320 0D0E 3389 3293 3362 3363 3375 3454 P1330 0D0F 3390 3335 3369 3371 3462 3617 P1340 0D10 3396 3423 3445 P1350 0D11 3397 3272 P1360 0D24 3414 3313 3469 3521 P1370 0D25 3415 3270 3398 3399 P1380 0D2A 3418 3414 P1390 0D2C 3422 3407 P1400 0D37 3435 3437 P1410 0D47 3450 3503 P1420 0D49 3451 3442 3457 P1450 0D5F 3467 3525 3532 P1460 0D63 3474 3429 3476 P1470 0D66 3477 3479 P1480 0D74 3489 3486 P1490 0D80 3498 3502 P1500 0D88 3509 3463 3474 3622 3634 P1510 0D89 3510 3625 P1520 0D8A 3511 3401 3408 3435 3446 3477 3638 P1530 0D8C 3516 3492 3495 3498 P1540 0D8F 3519 3490 P1550 0D98 3526 3493 3496 3662 P1560 0D99 3530 3523 P1570 0D9B 3536 3484 3520 3646 P1580 0D9C 3538 3430 3438 3524 3667 P1590 0D9E 3540 3519 3522 3557 3561 3575 3577 3636 3642 3651 3666 P1600 0D9F 3541 3448 3458 3499 3516 3576 3602 3641 P1620 0DAF 3563 3578 P1630 0DB3 3569 3553 P1640 0DBF 3583 3559 3565 3571 P1650 0DD0 3596 3338 3586 3604 3626 3629 3630 3635 3653 3658 P1660 0DD2 3602 3588 P1670 0DD5 3608 3518 3556 P1680 0DD6 3610 3530 3579 3655 3665 P1690 0DD8 3612 3481 3501 3562 P1700 0DDA 3617 3591 P1710 0DED 3634 3623 P1730 0DF9 3646 3637 P1740 0E00 3651 3664 P1750 0E06 3656 3668 P1760 0E0A 3660 3648 P1770 0E0C 3662 3444 3650 3661 P1790 0E13 3667 3654 P1800 0E15 3672 3551 3572 3583 3589 P1810 0E16 3674 3627 3660 P1820 0E18 3676 3592 P1830 0E19 3677 3550 P1840 0E1A 3678 3587 3593 3603 P1850 0E1B 3679 3560 3573 3574 3584 3585 3624 3647 P1860 0E1C 3683 3345 3464 3594 3620 3689 P1870 0E1F 3686 3688 PA000 0530 1189 1131 1292 PA040 0534 1192 1291 PA080 0537 1194 1285 PA120 053C 1198 1280 PA160 053F 1200 1197 1202 1278 PA200 0545 1204 1199 1206 PA240 054C 1212 1215 PA280 0553 1220 1274 PA290 055D 1227 1269 PA300 0565 1232 719 PA340 0573 1250 1262 PA360 0576 1256 1231 PA380 0579 1258 1264 PA400 057A 1259 1257 PA420 0582 1268 1233 1251 PA900 0568 1237 1203 1258 PA905 056A 1238 1229 PA910 056B 1239 1193 1284 1470 PA915 056C 1240 1195 1279 PA920 056D 1241 1458 PA935 056E 1242 1191 1290 PA940 056F 1243 1221 1268 1459 1469 PA990 0570 1244 1196 PATCH 0850 1984 256 PD040 085C 2004 2008 2011 2041 PD080 0868 2015 2010 2055 2094 2117 2125 PD120 0872 2023 2025 PD160 088A 2046 2050 PD200 08A6 2089 2048 PD240 08AD 2098 2016 2031 2131 PD250 08B3 2103 2099 2100 PD280 08BC 2112 2033 2105 PD320 08C3 2121 2035 PD360 08C8 2130 2039 PD400 08CB 2135 2037 2114 PD420 08D1 2139 2155 PD440 08D7 2143 2140 PD480 08DC 2147 2144 2150 PD490 08E8 2156 2152 PD900 0894 2059 2006 2020 2098 2112 2116 2121 2124 PD905 0895 2060 2007 2115 PD910 0896 2061 2009 PD915 0897 2062 2030 PD920 0898 2063 1997 2091 2093 2102 PD925 0899 2064 2113 PD930 089A 2065 2123 PD935 089B 2066 1998 2015 2104 2130 PD980 089C 2070 2032 PD982 089D 2071 2034 PD984 089E 2072 2036 PD986 089F 2073 2038 PD988 08A0 2074 2040 PD990 08A2 2079 2019 2029 2046 PD992 08A4 2084 2108 PP100 0265 656 645 PP150 026D 662 655 PR900 026F 666 651 PRBUF 0285 702 365 648 658 675 677 PRERR 027B 690 659 692 PRINT 0254 643 411 662 678 PRNT1 0CA6 3269 3271 4025 4029 4100 4104 4111 4120 PRNT3 0E26 3750 1198 1256 3752 4026 4030 4093 4107 4126 PRS01 0213 577 579 PRS05 0217 580 576 596 PRS10 0228 590 586 PRS20 022D 593 589 PRS40 023A 602 584 590 PRS60 023C 604 602 PRS70 0232 596 592 PRS80 023E 607 582 PRS90 023F 610 593 PRSNT 0210 574 508 510 588 600 1103 1833 2182 RE050 020A 555 552 RE060 020B 557 558 READ1 0202 549 559 1228 1648 1702 1729 1890 2350 2491 2500 SECT1 02BB 708 529 551 618 1101 1145 1211 1213 1225 1227 1289 1334 1417 1420 1428 1432 1473 1475 1526 1740 1826 1834 1868 1889 1963 2137 2139 2180 2196 2208 2211 2217 2244 2254 2297 2330 2349 2380 2384 2636 2656 SERCH 02C7 720 290 377 1933 SP900 0279 683 674 SP905 027A 684 676 SPACE 0271 673 679 1948 1957 START 0100 225 4215 SW001 02BC 709 1739 1748 2151 2154 2658 SW002 02BD 710 1927 1930 4090 4114 SW003 02BE 711 288 644 1931 1941 SW004 02BF 712 1223 1455 1457 SW005 02C0 713 228 1116 2343 2354 2618 SW006 02C1 714 229 1819 1843 1990 2136 2328 2333 2781 SW007 02C2 715 2222 2345 2666 SW008 02C3 716 248 2366 T0020 0B82 2918 732 3053 T0030 0B85 2931 2958 T0040 0B86 2932 2982 3107 T0050 0B87 2933 2979 T0060 0B88 2934 2960 T0070 0B89 2937 2917 T0080 0B92 2945 3005 3014 T0090 0B94 2947 2986 T0100 0B96 2949 2915 T0110 0B98 2950 2937 T0120 0B9A 2951 2938 T0130 0B9B 2952 2948 T0140 0B9D 2953 2942 2954 T0170 0BA9 2962 2981 T0180 0BBA 2976 2961 3041 T0190 0BBD 2979 2959 2975 T0200 0BBF 2981 2964 T0210 0BC1 2982 2999 T0220 0BC2 2983 2980 T0230 0BC8 2987 2939 2946 T0240 0BCA 2988 449 2943 2953 3001 3008 3047 T0250 0BCB 2989 2962 2997 3095 3098 T0260 0BCC 2990 2971 T0270 0BCD 2991 3030 T0280 0BCE 2995 2977 T0290 0BD6 3001 3218 T0310 0BDC 3006 2978 T0320 0BE7 3030 2919 T0330 0BEF 3037 3035 T0340 0BFB 3046 3082 3170 T0350 0C00 3050 3036 3045 3102 3194 T0360 0C06 3057 3012 3059 3094 3141 T0370 0C07 3058 3004 3149 3193 T0380 0C08 3059 3013 3101 T0390 0C0A 3061 2972 3011 3087 3088 3092 3119 3120 3135 3147 3155 3169 3173 3179 T0400 0C0C 3063 2967 3039 3178 3190 3197 3200 T0410 0C0D 3064 2995 3007 3044 3080 3148 3151 3175 3180 T0420 0C0E 3065 3031 3050 T0430 0C0F 3066 2969 3083 3086 3091 T0440 0C10 3067 2966 2973 2996 3037 3171 3172 3174 3192 T0450 0C13 3070 2968 3183 3186 3191 3195 T0455 0C14 3071 2956 3124 3131 3144 T0456 0C15 3072 3142 T0460 0C16 3080 3043 T0470 0C1A 3083 3081 T0480 0C24 3090 3084 T0490 0C29 3094 3089 3177 3182 3188 3202 T0500 0C2A 3095 3109 3150 T0510 0C34 3107 3097 3100 T0520 0C39 3119 3033 T0525 0C48 3129 3125 T0530 0C4D 3135 3139 T0540 0C4F 3136 3215 T0550 0C55 3140 3137 3217 T0551 0C5E 3147 3156 T0555 0C64 3151 3146 T0560 0C6B 3168 3122 T0570 0C6F 3171 3127 T0580 0C76 3178 3128 T0590 0C7D 3183 3040 T0600 0C80 3185 3196 T0610 0C84 3189 3184 3198 T0630 0C8C 3195 3038 T0640 0C98 3206 3090 3185 3199 T0670 0C99 3207 3181 T0680 0C9A 3208 3168 T0690 0C9B 3209 3201 T0700 0C9C 3210 3176 3187 T0730 0C9D 3214 3000 T0740 0CA3 3219 3214 T0750 0CA4 3220 3216 T0760 049C 3221 3129 3219 T0770 04C6 3222 3129 TABLE 0451 953 937 2089 TC040 015F 336 333 TC080 0160 337 339 TEST 07D1 1858 1860 W3010 0E2B 3754 730 3974 W3020 0E2E 3761 3753 W3030 0E3A 3776 3848 3882 3889 W3040 0E3D 3783 3899 W3050 0E3E 3784 3761 W3060 0E40 3785 3751 W3070 0E42 3786 3762 W3080 0E43 3787 3783 W3085 0E45 3791 3796 3807 3843 3874 W3087 0E46 3792 3795 W3090 0E4E 3800 3774 W3100 0E5B 3817 3857 W3110 0E62 3823 3825 W3120 0E66 3829 3815 W3130 0E6D 3836 3814 3839 W3140 0E7B 3848 W3150 0E7E 3855 3886 W3160 0E84 3860 3856 W3170 0E8B 3867 3858 W3180 0E8C 3869 3881 W3182 0E8E 3871 3870 W3184 0E93 3875 3869 W3185 0E95 3876 3873 W3190 0E9E 3884 3809 W3200 0EA5 3893 3804 3820 3832 W3210 0EA7 3895 3768 3793 W3300 0EC5 3926 3844 3878 3929 4007 W3500 0ECC 3935 3755 W3505 0ED8 3948 4018 W3510 0EDE 3956 3944 3950 4011 4013 4016 W3520 0EE7 3964 3983 3987 W3550 0EED 3972 3958 W3560 0EF9 3981 3978 W3565 0EFA 3982 3979 W3570 0F01 3992 3962 W3580 0F04 3995 3842 3947 W3590 0F08 3997 3952 4000 4022 W3600 0F17 4015 3996 W3610 0F1B 4020 3998 W3900 0EBE 3916 3866 3994 W3905 0EAE 3901 3763 3782 W3910 0EB2 3904 3961 W3915 0EB3 3905 3822 W3920 0EB0 3902 3767 3792 3818 3935 3949 3997 W3925 0EB4 3906 3862 3938 4001 W3930 0EB6 3908 3847 3849 3867 3880 3888 3948 W3935 0EB7 3909 450 460 3775 3794 3927 3964 W3940 0EB8 3910 3845 W3945 0EBA 3912 4008 W3950 0EBC 3914 3861 3879 3912 4002 W3955 0EBF 3917 3893 W3960 0EC0 3918 3895 4020 W3965 0EC1 3919 3946 3981 3986 4012 4017 W3970 0EC2 3920 3939 3956 3972 3976 W3975 0EC3 3921 3936 3937 3960 3992 3993 W3979 0EC4 3922 3864 3982 3985 W3980 0EE9 3965 3859 W3985 0EEC 3967 3855 W3990 0DE8 4025 3823 3837 3910 WR050 01FA 533 530 WR060 01FC 535 536 WR900 0201 542 534 WRIT1 01F2 527 538 1212 1337 1424 1641 1695 1718 1736 2298 WRTY0 0B7D 2914 307 310 334 337 577 646 649 652 1134 1166 1173 1796 1801 1804 1858 2017 2023 2106 2630 2633 2916 XXXXX 02BA 707 1114 1307 1406 YYYYY 0285 701 700