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 0920 4420 095E 2223 | BSI L DA700,Z BR IF DATA ERROR ZDR22340 2224 | * ZDR22350 2225 | * CHECK FOR SECTOR ADDR ERROR ZDR22360 2226 | * ZDR22370 0922 C017 2227 | LD DA920 SECTOR ADDRESS W/O DR CODE ZDR22380 0923 F301 2228 | EOR 3 @SADR SECTOR ADDR FROM BUFFER ZDR22390 0924 4420 093F 2229 | BSI L DA600,Z BR IF SECTOR ADDR ERROR ZDR22400 2230 | * ZDR22410 2231 | * CHECK IF ALL SECTORS READ ZDR22420 2232 | * ZDR22430 0926 7401 093E 2233 | MDX L DA945,1 INCR SECTOR READ COUNTER ZDR22440 0928 700A 2234 | MDX DA190 BR TO DECR SECTOR POINTER ZDR22450 2235 | * ZDR22460 2236 | * CHECK TO SEE IF CYLINDER READ 16 TIMES ZDR22470 2237 | * ZDR22480 0929 7401 093D 2238 | MDX L DA940,1 INCR CYLINDER READ COUNTER ZDR22490 092B 70ED 2239 | MDX DA155 BR TO READ CYLINDER AGAIN ZDR22500 2240 | * ZDR22510 2241 | * CHECK TO SEE IF DONE ZDR22520 2242 | * ZDR22530 092C 7408 02BB 2243 | MDX L SECT1,8 SCTR POINTER TO NEXT CYL ZDR22540 092E 74F8 0937 2244 | MDX L DA900,-8 DECR SECTORS TO READ COUNT ZDR22550 0930 70DE 2245 | MDX DA150 BR TO READ NEXT CYLINDER ZDR22560 2246 | * ZDR22570 2247 | * RETURN ZDR22580 2248 | * ZDR22590 0931 4C00 0102 2249 | BSC L CM050 RETURN FOR NEXT OPTION 2-11 ZDR22600 2250 | * ZDR22610 2251 | * DECREMENT SECTOR POINTER ZDR22620 2252 | * ZDR22630 0933 74FF 02BB 2253 | DA190 MDX L SECT1,-1 DECR TO READ SCTRS BACKWARD ZDR22640 0935 1000 2254 | NOP MAY SKIP ZDR22650 0936 70E6 2255 | MDX DA160 BR TO READ NEXT SECTOR ZDR22660 2256 | * ZDR22670 2257 | * CONSTANTS AND WORK AREAS ZDR22680 2258 | * ZDR22690 0937 0000 2259 | DA900 DC *-* SECTOR READ COUNTER ZDR22700 0938 0FFF 2260 | DA905 DC /0FFF SECTOR ADDR MASK ZDR22710 0939 8001 2261 | DA910 DC /8001 DUMP SWITCH ZDR22720 093A 0000 2262 | DA920 DC *-* PHYSICAL SCTR ADDRESS ZDR22730 093B 0000 2263 | DA930 DC *-* DRIVE CODE ZDR22740 093C 000B 2264 | DA935 DC @MXDR MAX NO. OF DRIVES 2-11 ZDR22750 093D 0000 2265 | DA940 DC *-* CYLINDER READ COUNTER ZDR22760 093E 0000 2266 | DA945 DC *-* SECTOR READ COUNTER ZDR22770 DISK ANALYSIS OPTION 2268 | * ZDR22790 2269 | *************************************************** ZDR22800 2270 | * SECTOR ADDRESS ERROR HANDLING SUBROUTINE ZDR22810 2271 | *************************************************** ZDR22820 2272 | * ZDR22830 093F 0000 2273 | DA600 DC *-* ENTRY POINT ZDR22840 2274 | * ZDR22850 2275 | * PRINT MESSAGE- ADDRESS ERROR ON SECTOR .... ZDR22860 2276 | * ZDR22870 0940 4400 0135 2277 | BSI L CPOUT BR TO INITIALIZE PRINT ZDR22880 0942 6500 03E6 2278 | LDX L1 MSG20 ADDRESS ERROR ON SECTOR MSG ZDR22890 0944 4400 015A 2279 | BSI L MSOUT BR TO PRINT MESSAGE ZDR22900 0946 C0F3 2280 | LD DA920 PHYSICAL SCTR ADDR ZDR22910 0947 D400 02B9 2281 | STO L INFOR *TO PRINT. ZDR22920 0949 6500 02B8 2282 | LDX L1 INFOR-1 ZDR22930 094B 4400 0166 2283 | BSI L CNPNT PRINT SECTOR ADDRESS ZDR22940 2284 | * ZDR22950 2285 | * PRINT MESSAGE- ERRONEOUS SCTR ADDR WAS .... ZDR22960 2286 | * ZDR22970 094D 6500 03F0 2287 | LDX L1 MSG21 ERRONEOUS SCTR ADDR WAS MSG ZDR22980 094F 4400 015A 2288 | BSI L MSOUT BR TO PRINT ZDR22990 0951 C301 2289 | LD 3 @SADR ERRONEOUS SECTOR ADDR ZDR23000 0952 D400 02B9 2290 | STO L INFOR STORE TO PRINT ZDR23010 0954 6500 02B8 2291 | LDX L1 INFOR-1 ZDR23020 0956 4400 0166 2292 | BSI L CNPNT PRINT BAD ADDRESS ZDR23030 2293 | * ZDR23040 2294 | * WRITE CORRECT ADDR ON SECTOR ZDR23050 2295 | * ZDR23060 0958 C400 02BB 2296 | LD L SECT1 PHYSICAL SECTOR ADDRESS ZDR23070 095A 4400 01F2 2297 | BSI L WRIT1 WRITE CORRECT ADDRESS ZDR23080 095C 4C80 093F 2298 | BSC I DA600 EXIT ZDR23090 DISK ANALYSIS OPTION 2300 | * ZDR23110 2301 | *************************************************** ZDR23120 2302 | * DISK DATA ERROR HANDLING SUBROUTINE ZDR23130 2303 | *************************************************** ZDR23140 2304 | * ZDR23150 095E 0000 2305 | DA700 DC *-* ENTRY POINT ZDR23160 2306 | * ZDR23170 2307 | * PRINT MESSAGE- DISK READ ERROR ON SECTOR .... ZDR23180 2308 | * ZDR23190 095F 4400 0135 2309 | BSI L CPOUT BR TO INITIALIZE PRINT ZDR23200 0961 6500 03FA 2310 | LDX L1 MSG22 DISK DATA ERROR MESSAGE ZDR23210 0963 4400 015A 2311 | BSI L MSOUT BR TO PRINT MESSAGE ZDR23220 0965 C0D4 2312 | LD DA920 PHYSICAL SECTOR ADDRESS ZDR23230 0966 D400 02B9 2313 | STO L INFOR *TO PRINT. ZDR23240 0968 6500 02B8 2314 | LDX L1 INFOR-1 ZDR23250 096A 4400 0166 2315 | BSI L CNPNT PRINT SECTOR ADDRESS ZDR23260 2316 | * ZDR23270 2317 | * PRINT MESSAGE- TURN ON BIT SW 0 TO DUMP ZDR23280 2318 | * ZDR23290 096C 6500 0407 2319 | LDX L1 MSG23 TURN ON BIT SW 0 TO DUMP ZDR23300 096E 4400 0144 2320 | BSI L INSTR BR TO PRINT AND READ BIT SW ZDR23310 0970 C400 02B9 2321 | LD L INFOR ZDR23320 0972 4C90 095E 2322 | BSC I DA700,- BR IF NO DUMP ZDR23330 2323 | * ZDR23340 2324 | * DUMP SECTOR IN ERROR TO PRINTER ZDR23350 2325 | * ZDR23360 0974 C0C4 2326 | LD DA910 DUMP SWITCH ZDR23370 0975 D400 02C1 2327 | STO L SW006 ZDR23380 0977 4400 07A2 2328 | BSI L DUMPZ DUMP SECTOR ZDR23390 0979 74FF 02BB 2329 | MDX L SECT1,-1 ADJUST FOR DUMPZ INCREMENT ZDR23400 097B 1000 2330 | NOP MAY SKIP ZDR23410 097C 1010 2331 | SLA 16 CLEAR ACCUMULATOR 2-10 ZDR23420 097D D400 02C1 2332 | STO L SW006 ZERO SWITCH 2-10 ZDR23430 097F 4C80 095E 2333 | BSC I DA700 EXIT ZDR23440 DISK ANALYSIS OPTION 2335 | * ZDR23460 2336 | *************************************************** ZDR23470 2337 | * READ A SECTOR SUBROUTINE ZDR23480 2338 | *************************************************** ZDR23490 2339 | * ZDR23500 0981 0000 2340 | DA800 DC *-* ENTRY POINT ZDR23510 0982 6102 2341 | LDX 1 2 SET SW005 TO ALLOW DISK RTN ZDR23520 0983 6D00 02C0 2342 | STX L1 SW005 *TO SET SW007 IF DISK ERROR ZDR23530 0985 1010 2343 | SLA 16 ZDR23540 0986 D400 02C2 2344 | STO L SW007 CLEAR DATA ERROR SWITCH ZDR23550 2345 | * ZDR23560 2346 | * READ NEXT SECTOR ZDR23570 2347 | * ZDR23580 0988 C400 02BB 2348 | LD L SECT1 SECTOR ADDRESS ZDR23590 098A 4400 0202 2349 | BSI L READ1 READ A SECTOR ZDR23600 098C E0AB 2350 | AND DA905 MASK OUT DRIVE CODE ZDR23610 098D D0AC 2351 | STO DA920 SAVE PHYSICAL SCTR ADDRESS ZDR23620 098E 1010 2352 | SLA 16 RESET SW005 TO REVERT TO ZDR23630 098F D400 02C0 2353 | STO L SW005 *NORMAL DISK ERROR HANDLING ZDR23640 0991 4C80 0981 2354 | BSC I DA800 RETURN ZDR23650 COMPARE OPTION 2356 | * ZDR23670 2357 | *************************************************** ZDR23680 2358 | * THE FOLLOWING SECTION HANDLES DISK COMPARE ZDR23690 2359 | *************************************************** ZDR23700 2360 | * ZDR23710 0993 2361 | COMPR EQU * 2-11 ZDR23720 2362 | * ZDR23730 2363 | * INITIALIZATION ZDR23740 2364 | * ZDR23750 0993 6C00 02C3 2365 | STX L0 SW008 COMPARE OPTION SWITCH ON ZDR23760 0995 C056 2366 | LD CR930 1 SECTOR WORD COUNT ZDR23770 0996 D400 0CA6 2367 | STO L CR990 WD COUNT TO SOURCE BUFFER ZDR23780 0998 D400 0E26 2368 | STO L CR992 WD COUNT TO OBJECT BUFFER ZDR23790 2369 | * ZDR23800 2370 | * FETCH SOURCE AND OBJECT DRIVE NOS., CHK VALIDITY ZDR23810 2371 | * ZDR23820 099A 4400 01D6 2372 | BSI L GETDR FETCH SOURCE AND OBJECT DRS ZDR23830 099C D84D 2373 | STD CR910 ADDR OF SCTR @IDAD ZDR23840 2374 | * ZDR23850 2375 | * SEEK HOME AND READ SECTOR @IDAD ZDR23860 2376 | * ZDR23870 099D 6700 0CA6 2377 | LDX L3 CR990 SOURCE BUFFER ADDRESS ZDR23880 099F C04A 2378 | LD CR910 SCTR @IDAD ADDRESS ZDR23890 09A0 D400 02BB 2379 | STO L SECT1 ZDR23900 09A2 4400 0240 2380 | BSI L HOMEX SEEK HOME AND READ ZDR23910 09A4 6700 0E26 2381 | LDX L3 CR992 OBJECT BUFFER ADDRESS ZDR23920 09A6 C044 2382 | LD CR915 SCTR @IDAD ADDRESS ZDR23930 09A7 D400 02BB 2383 | STO L SECT1 ZDR23940 09A9 4400 0240 2384 | BSI L HOMEX SEEK HOME AND READ ZDR23950 2385 | * ZDR23960 2386 | * SAVE DEFECTIVE CYLINDER TABLES ZDR23970 2387 | * ZDR23980 09AB 61FD 2388 | LDX 1 -@NDCY INITIALIZE POINTER ZDR23990 09AC C500 0CAB 2389 | CR060 LD L1 CR990+2+@NDCY MOVE SOURCE DEFECTIVE ZDR24000 09AE E83B 2390 | OR CR910 *CYLINDER TABLE. ZDR24010 09AF D500 09F0 2391 | STO L1 CR980+@NDCY ZDR24020 09B1 C500 0E2B 2392 | LD L1 CR992+2+@NDCY MOVE OBJECT DEFECTIVE ZDR24030 09B3 E837 2393 | OR CR915 *CYLINDER TABLE. ZDR24040 09B4 D500 09F3 2394 | STO L1 CR985+@NDCY ZDR24050 09B6 7101 2395 | MDX 1 1 INCR POINTER TO NEXT ENTRY ZDR24060 09B7 70F4 2396 | MDX CR060 BR TO CONTINUE MOVE ZDR24070 2397 | * ZDR24080 2398 | * FIRST 7 WDS WILL NOT COMPARE - MAKE THEM EQUAL ZDR24090 2399 | * ZDR24100 09B8 61F9 2400 | LDX 1 -7 INITIALIZE POINTER ZDR24110 09B9 C500 0CAF 2401 | CR100 LD L1 CR990+2+7 MAKE FIRST 7 WORDS OF BOTH ZDR24120 09BB D500 0E2F 2402 | STO L1 CR992+2+7 *BUFFERS EQUAL FOR COMPARE ZDR24130 09BD 7101 2403 | MDX 1 1 INCR POINTER ZDR24140 09BE 70FA 2404 | MDX CR100 ZDR24150 2405 | * ZDR24160 2406 | * COMPARE SECTOR @IDAD ZDR24170 2407 | * ZDR24180 09BF 404D 2408 | BSI CR800 BR TO COMPARE ZDR24190 2409 | * ZDR24200 2410 | * READ AND COMPARE SECTOR @DCOM ZDR24210 2411 | * ZDR24220 09C0 7401 09EA 2412 | MDX L CR910,1 INCR SOURCE SCTR ADDR ZDR24230 09C2 7401 09EB 2413 | MDX L CR915,1 INCR OBJECT SCTR ADDR ZDR24240 09C4 4031 2414 | BSI CR700 READ BOTH @DCOM SECTORS ZDR24250 2415 | * ZDR24260 2416 | * #CIDN TABLES WILL NOT COMPARE - MAKE EQUAL ZDR24270 2417 | * ZDR24280 09C5 61FB 2418 | LDX 1 -5 DR TBL LENGTH IN DCOM 2-11 ZDR24290 09C6 C500 0CE4 2419 | CR140 LD L1 CR990+2+#CIDN+5 MOVE SOURCE 2-11 ZDR24300 09C8 D500 0E64 2420 | STO L1 CR992+2+#CIDN+5 *TO OBJ #CIDN 2-11 ZDR24310 09CA 7101 2421 | MDX 1 1 INCR POINTER ZDR24320 09CB 70FA 2422 | MDX CR140 BR TO MOVE NEXT TABLE ENTRY ZDR24330 2423 | * ZDR24340 2424 | * COMPARE SECTOR @DCOM ZDR24350 2425 | * ZDR24360 09CC 4040 2426 | BSI CR800 BR TO COMPARE ZDR24370 2427 | * ZDR24380 2428 | * READ AND COMPARE SECTOR @RIAD ZDR24390 2429 | * ZDR24400 09CD 7401 09EA 2430 | MDX L CR910,1 INCR SOURCE SCTR ADDR ZDR24410 09CF 7401 09EB 2431 | MDX L CR915,1 INCR OBJECT SCTR ADDR ZDR24420 09D1 4024 2432 | BSI CR700 READ BOTH SECTORS ZDR24430 2433 | * ZDR24440 2434 | * DEFECTIVE CYL TABLES WILL NOT COMPARE -MAKE EQUAL ZDR24450 2435 | * ZDR24460 09D2 61F1 2436 | LDX 1 -'NDCY*5 MOVE POINTER 2-11 ZDR24470 09D3 C500 0D55 2437 | CR180 LD L1 CR990+2+$DCYL+'NDCY*5-$CH12 2-11 ZDR24480 09D5 D500 0ED5 2438 | STO L1 CR992+2+$DCYL+'NDCY*5-$CH12 2-11 ZDR24490 09D7 7101 2439 | MDX 1 1 INCR POINTER ZDR24500 09D8 70FA 2440 | MDX CR180 ZDR24510 2441 | * ZDR24520 2442 | * COMPARE SECTOR @RIAD ZDR24530 2443 | * ZDR24540 09D9 4033 2444 | BSI CR800 ZDR24550 2445 | * ZDR24560 2446 | * COMPARE REST OF SECTORS ZDR24570 2447 | * ZDR24580 09DA 6600 063D 2448 | LDX L2 @MSCT-1-@NDCY*@CCNT-@RIAD SAVE NO. ZDR24590 09DC 6A0C 2449 | STX 2 CR905 *SECTORS LEFT TO COPY. ZDR24600 09DD 7401 09EA 2450 | CR220 MDX L CR910,1 INCR SOURCE SCTR ADDR ZDR24610 09DF 7401 09EB 2451 | MDX L CR915,1 INCR OBJECT SCTR ADDR ZDR24620 09E1 4014 2452 | BSI CR700 READ NEXT SECTORS ZDR24630 09E2 402A 2453 | BSI CR800 COMPARE ZDR24640 09E3 74FF 09E9 2454 | MDX L CR905,-1 DECR SCTRS TO COMPARE COUNT ZDR24650 09E5 70F7 2455 | MDX CR220 BR TO CONTINUE COMPARE ZDR24660 09E6 4C00 0102 2456 | BSC L CM050 RETURN FOR NEXT OPTION 2-11 ZDR24670 2457 | * ZDR24680 2458 | * CONSTANTS AND WORK AREAS ZDR24690 2459 | * ZDR24700 09E8 0000 2460 | CR900 DC *-* COMPARE ERROR FLAG ZDR24710 09E9 0000 2461 | CR905 DC *-* NO. SCTRS LEFT TO COPY ZDR24720 09EA 2462 | BSS E 0 MAKE ADDRESS EVEN ZDR24730 09EA 0000 2463 | CR910 DC *-* ADDR OF NEXT SCTR (SOURCE) ZDR24740 09EB 0000 2464 | CR915 DC *-* ADDR OF NEXT SCTR (OBJECT) ZDR24750 09EC 0141 2465 | CR930 DC @SCNT+1 NO. OF WORDS PER SECTOR+1 ZDR24760 09ED 2466 | CR980 BSS 3 SOURCE DEF CYL TABLE ZDR24770 09F0 2467 | CR985 BSS 3 OBJECT DEF CYL TABLE ZDR24780 2468 | *CR990 EQU PRNT1 SOURCE SECTOR BUFFER ZDR24790 2469 | *CR992 EQU PRNT3 OBJECT SECTOR BUFFER ZDR24800 2470 | * ZDR24810 2471 | * PRINT SECTOR ADDRESSES BUFFER ZDR24820 2472 | * ZDR24830 09F3 0002 2473 | CR994 DC 2 WORD COUNT ZDR24840 09F4 2474 | BSS 2 RESERVE TWO WORDS ZDR24850 COMPARE OPTION 2476 | * ZDR24870 2477 | *************************************************** ZDR24880 2478 | * READ NEXT TWO SECTORS FOR COMPARE ZDR24890 2479 | *************************************************** ZDR24900 2480 | * ZDR24910 09F6 0000 2481 | CR700 DC *-* ENTRY POINT ZDR24920 2482 | * ZDR24930 2483 | * READ SOURCE DRIVE ZDR24940 2484 | * ZDR24950 09F7 6700 0CA6 2485 | LDX L3 CR990 SOURCE BUFFER ADDRESS ZDR24960 09F9 C0F0 2486 | LD CR910 SECTOR ADDRESS ZDR24970 09FA 6500 09ED 2487 | LDX L1 CR980 DEF CYL TABLE ADDR (SOURCE) ZDR24980 09FC 4400 01CA 2488 | BSI L DC000 CHECK FOR DEFECTIVE CYL ZDR24990 09FE D0EB 2489 | STO CR910 ZDR25000 09FF 4400 0202 2490 | BSI L READ1 BR TO READ ZDR25010 2491 | * ZDR25020 2492 | * READ OBJECT DRIVE ZDR25030 2493 | * ZDR25040 0A01 6700 0E26 2494 | LDX L3 CR992 OBJECT BUFFER ADDRESS ZDR25050 0A03 C0E7 2495 | LD CR915 SECTOR ADDRESS ZDR25060 0A04 6500 09F0 2496 | LDX L1 CR985 DEF CYL TABLE ADDR (OBJECT) ZDR25070 0A06 4400 01CA 2497 | BSI L DC000 CHECK FOR DEFECTIVE CYL ZDR25080 0A08 D0E2 2498 | STO CR915 ZDR25090 0A09 4400 0202 2499 | BSI L READ1 BR TO READ ZDR25100 0A0B 4C80 09F6 2500 | BSC I CR700 RETURN ZDR25110 COMPARE OPTION 2502 | * ZDR25130 2503 | *************************************************** ZDR25140 2504 | * COMPARE A SECTOR SUBROUTINE ZDR25150 2505 | *************************************************** ZDR25160 2506 | * ZDR25170 0A0D 0000 2507 | CR800 DC *-* ENTRY POINT ZDR25180 0A0E 1010 2508 | SLA 16 ZDR25190 0A0F D0D8 2509 | STO CR900 CLEAR ERROR FLAG ZDR25200 0A10 6500 FEC0 2510 | LDX L1 -@SCNT NO. OF WDS PER SECTOR ZDR25210 0A12 CD00 0DE8 2511 | CR820 LDD L1 CR990+2+@SCNT SOURCE SECTOR WORDS ZDR25220 0A14 9D00 0F68 2512 | SD L1 CR992+2+@SCNT OBJECT SECTOR WORDS ZDR25230 0A16 4818 2513 | BSC +- SKIP IF NOT SAME ZDR25240 0A17 18D0 2514 | RTE 16 CHECK SECOND WORDS ZDR25250 0A18 4820 2515 | BSC Z SKIP IF COMPARE OK ZDR25260 0A19 D0CE 2516 | STO CR900 SET ERROR FLAG ON ZDR25270 0A1A 7101 2517 | MDX 1 1 INCR BUFFER POINTER ZDR25280 0A1B 70F6 2518 | MDX CR820 BR TO CONTINUE COMPARE ZDR25290 2519 | * ZDR25300 2520 | * PRINT MESSAGE IF ERROR FLAGGED ZDR25310 2521 | * ZDR25320 0A1C C0CB 2522 | LD CR900 ERROR FLAG ZDR25330 0A1D 4C18 0A2D 2523 | BSC L CR840,+- EXIT IF NO ERROR ZDR25340 0A1F 4400 0135 2524 | BSI L CPOUT INITIALIZE TO PRINT ZDR25350 0A21 6500 0413 2525 | LDX L1 MSG24 DISK DATA ERROR MESSAGE ZDR25360 0A23 4400 015A 2526 | BSI L MSOUT BR TO PRINT MESSAGE ZDR25370 0A25 C0C4 2527 | LD CR910 SOURCE SECTOR ADDRESS ZDR25380 0A26 D0CD 2528 | STO CR994+1 PRINT BUFFER ZDR25390 0A27 C0C3 2529 | LD CR915 OBJECT SECTOR ADDRESS ZDR25400 0A28 D0CC 2530 | STO CR994+2 PRINT BUFFER ZDR25410 0A29 6500 09F3 2531 | LDX L1 CR994 ZDR25420 0A2B 4400 0166 2532 | BSI L CNPNT PRINT SECTOR ADDRESSES ZDR25430 2533 | * ZDR25440 2534 | * RETURN ZDR25450 2535 | * ZDR25460 0A2D 4C80 0A0D 2536 | CR840 BSC I CR800 EXIT ZDR25470 DISK I/O SUBROUTINE 2538 | *************************************************** ZDR25490 2539 | *STATUS-VERSION 2, MODIFICATION 2 * ZDR25500 2540 | * * ZDR25510 2541 | *FUNCTION/OPERATION- * ZDR25520 2542 | * THIS SUBROUTINE PERFORMS ALL DISK OPERATIONS * ZDR25530 2543 | * FOR ALL PORTIONS OF DCIP. IT PERFORMS THE * ZDR25540 2544 | * FOLLOWING FUNCTIONS * ZDR25550 2545 | * * TEST * ZDR25560 2546 | * * READ CHECK * ZDR25570 2547 | * * READ (WITH AUTOMATIC SEEK) * ZDR25580 2548 | * * WRITE (WITH AUTOMATIC SEEK) * ZDR25590 2549 | * * SEEK * ZDR25600 2550 | * * SEEK HOME * ZDR25610 2551 | * * ZDR25620 2552 | *ENTRY POINTS- * ZDR25630 2553 | * * DX000 (CALL) * ZDR25640 2554 | * * DX030 (INTERRUPT) * ZDR25650 2555 | * * ZDR25660 2556 | *INPUT- * ZDR25670 2557 | * * WORD COUNT IN 1ST WD OF I/O AREA * ZDR25680 2558 | * * SCTR ADDR/DRIVE CODE IN 2ND WD OF I/O AREA * ZDR25690 2559 | * * ZDR25700 2560 | *OUTPUT-FROM I/O BFR OR TO I/O BFR * ZDR25710 2561 | * * ZDR25720 2562 | *EXTERNAL SUBROUTINES-N/A * ZDR25730 2563 | * * ZDR25740 2564 | *EXITS- * ZDR25750 2565 | * * NORMAL-DX390 * ZDR25760 2566 | * * INTERRUPT-DX130 * ZDR25770 2567 | * * ERROR-DX130 * ZDR25780 2568 | * * ZDR25790 2569 | *TABLES/WORK AREAS-N/A * ZDR25800 2570 | * * ZDR25810 2571 | *ATTRIBUTES-SERIALLY REUSABLE * ZDR25820 2572 | * * ZDR25830 2573 | *NOTES- * ZDR25840 2574 | * * THE DRIVE CODE IN THE I/O AREA IS LOST. * ZDR25850 2575 | * * ERRORS DETECTED DURING INITIALIZING OF A * ZDR25860 2576 | * CARTRIDGE AND DISK ANALYSIS ARE NOT * ZDR25870 2577 | * AUTOMATICALLY RETRIED AS ARE OTHER ERRORS. * ZDR25880 2578 | * * IGNORING AN ERROR AFTER @TCNT RETRIES IS * ZDR25890 2579 | * AT OPTION OF USER. * ZDR25900 2580 | * * I/O BUFFER MUST START ON AN EVEN BOUNDARY. * ZDR25910 2581 | *************************************************** ZDR25920 DISK I/O SUBROUTINE 2583 | *************************************************** ZDR25940 2584 | * DISK I/O SUBROUTINE * ZDR25950 2585 | *************************************************** ZDR25960 2586 | * ZDR25970 2587 | * CALL ENTRY POINT ZDR25980 2588 | * ZDR25990 0A2F 0000 2589 | DX000 DC *-* ENTRY POINT ZDR26000 0A30 DC00 0ACA 2590 | STD L DX980 SAVE ACC & EXT 2-10 ZDR26010 0A32 4C00 0AE1 2591 | BSC L DX240 BR TO CALL PROCESSING ZDR26020 2592 | * ZDR26030 2593 | * INTERRUPT ENTRY POINT ZDR26040 2594 | * ZDR26050 0A34 0000 2595 | DX030 DC *-* INTERRUPT ENTRY POINT ZDR26060 2596 | * ZDR26070 2597 | * COMPUTE TWICE THE PHYSICAL DRIVE CODE ZDR26080 2598 | * ZDR26090 0A35 1810 2599 | SRA 16 INITIALIZE PHYSICAL DRIVE ZDR26100 0A36 D009 2600 | STO DX050+1 *CODE ACCUMULATOR TO ZERO ZDR26110 0A37 0C00 0AD0 2601 | XIO L DX994 SENSE LVL 4 ILSW 2-10 ZDR26120 0A39 1001 2602 | DX040 SLA 1 ZDR26140 0A3A 4C18 0A3F 2603 | BSC L DX050,+- BR IF DR CODE ACCUMULATED ZDR26150 0A3C 7402 0A40 2604 | MDX L DX050+1,2 ACCUMULATE 2*DRIVE CODE ZDR26160 0A3E 70FA 2605 | MDX DX040 BR TO CHECK FOR ZERO ZDR26170 0A3F 6500 0000 2606 | DX050 LDX L1 *-* TWICE DRIVE CODE TO XR1 ZDR26180 0A41 0D00 0A92 2607 | XIO L1 DX913-1 SENSE DISK DSW/RESET 2-11 ZDR26190 0A43 D400 00DD 2608 | STO L $DDSW SAVE THE DSW ZDR26200 0A45 4C10 0AD2 2609 | BSC L DX150,- BR IF NO DISK ERROR ZDR26210 0A47 C500 0AAF 2610 | LD L1 DX960+1 CHECK FOR READ BEFORE 2-10 ZDR26220 0A49 1006 2611 | SLA 6 *SEEK 2-10 ZDR26230 0A4A 180E 2612 | SRA 14 2-10 ZDR26240 0A4B 4C18 0AD2 2613 | BSC L DX150,+- BR TO CONTINUE IF RD/SK2-10 ZDR26250 2614 | * ZDR26260 2615 | * PROCESS DISK ERRORS (2ND WD IOCC IN EXT) ZDR26270 2616 | * ZDR26280 0A4D C400 02C0 2617 | DX055 LD L SW005 BR IF INITIALIZING 2-10 ZDR26290 0A4F 4C04 0A84 2618 | BSC L DX120,E *A CARTRIDGE 2-10 ZDR26300 0A51 4C20 0A7C 2619 | BSC L DX080,Z BR IF DISK ANALYSIS ZDR26310 2620 | * ZDR26320 2621 | * RETRY OPERATION UP TO 16 TIMES ZDR26330 2622 | * ZDR26340 0A53 4878 2623 | BOSC +-Z TURN OFF INTERRUPT ZDR26350 0A54 1000 2624 | NOP MAY SKIP ZDR26360 0A55 74FF 0AC4 2625 | MDX L DX970,-1 DECREMENT RETRY COUNTER2-11 ZDR26370 2626 | * *AND SKIP IF 16 RETRIES2-11 ZDR26380 2627 | * *HAVE BEEN MADE 2-11 ZDR26390 0A57 7017 2628 | MDX DX065 OTHERWISE, BR TO RETRY 2-11 ZDR26400 0A58 4400 0B7D 2629 | BSI L WRTY0 PRINT DISK ERROR MESSAGE ZDR26460 0A5A 2000 2630 | DC /2000 ZDR26470 0A5B 0386 2631 | DC MSG12 ZDR26480 0A5C 4400 0B7D 2632 | DX060 BSI L WRTY0 WAIT FOR OPERATION COMPLETE ZDR26490 0A5E 0000 2633 | DC /0000 ZDR26500 0A5F 70FC 2634 | MDX DX060 BR TO TEST BUSY AGAIN ZDR26510 0A60 C400 02BB 2635 | LD L SECT1 FETCH CURRENT SCTR ADDR2-11 ZDR26511 0A62 18CB 2636 | RTE 11 LEFT JUSTIFY IN EXR 2-11 ZDR26512 0A63 C0DC 2637 | LD DX050+1 LOAD 2*DR CODE 2-11 ZDR26513 0A64 18C5 2638 | RTE 5 EXT = DR CD & SCTR ADDR2-11 ZDR26514 0A65 C061 2639 | LD DX998 LD /5002, AND CONVRT 2-11 ZDR26515 0A66 8041 2640 | A DX915 *TO /5003 ERROR WAIT 2-11 ZDR26516 0A67 3000 2641 | WAIT WAIT FOR OPERATOR ACTION ZDR26520 0A68 0865 2642 | XIO DX992 READ DATA SWITCHES ZDR26530 0A69 C400 02B9 2643 | LD L INFOR FETCH READING ZDR26540 0A6B 4C10 0A84 2644 | BSC L DX120,- BR TO IGNORE ERROR 2-10 ZDR26550 0A6D C01F 2645 | LD DX907 RESET FOR 16 MORE ATTEMPTS ZDR26560 0A6E D055 2646 | STO DX970 2-10 ZDR26570 0A6F C500 0AAF 2647 | DX065 LD L1 DX960+1 FETCH 2ND WD OF IOCC ZDR26580 0A71 E038 2648 | AND DX935 'AND' WITH READ CHK FUNC CDEZDR26590 0A72 F037 2649 | EOR DX935 COMPARE WITH READ CHK CODE ZDR26600 0A73 4C20 0A7F 2650 | BSC L DX090,Z BR UNLESS READ CHECK ZDR26610 2651 | * ZDR26620 2652 | * RETURN AFTER A READ CHECK ERROR ZDR26630 2653 | * ZDR26640 0A75 D04E 2654 | STO DX970 CLEAR BURY INDR 2-10 ZDR26650 0A76 74FF 02BB 2655 | MDX L SECT1,-1 ZDR26660 0A78 C02F 2656 | LD DX915 ZDR26670 0A79 D400 02BC 2657 | STO L SW001 SET READ CHECK ERROR SW ZDR26680 0A7B 700A 2658 | MDX DX130 RETURN TO CALLER ZDR26690 2659 | * ZDR26700 2660 | * OUT TO TAG A DEFECTIVE CYLINDER ZDR26710 2661 | * ZDR26720 2662 | * ZDR26730 2663 | * SET ERROR FLAG FOR DISK ANALYSIS ZDR26740 2664 | * ZDR26750 0A7C 6C00 02C2 2665 | DX080 STX L0 SW007 ZDR26760 0A7E 7005 2666 | MDX DX120 BR TO EXIT 2-10 ZDR26770 2667 | * ZDR26780 2668 | * PROCESS ALL BUT READ CHECK ERRORS ZDR26790 2669 | * ZDR26800 0A7F 2670 | DX090 EQU * 2-11 ZDR26810 0A7F 4400 0B65 2671 | BSI L DX600 OUT TO RETRY THE OPERATION ZDR26820 0A81 0D00 0AAE 2672 | XIO L1 DX960 RETRY OPERATION 2-10 ZDR26830 0A83 7002 2673 | MDX DX130 BR TO RETURN 2-11 ZDR26850 0A84 1810 2674 | DX120 SRA 16 CLEAR BUSY INDR 2-10 ZDR26860 0A85 D03E 2675 | STO DX970 2-10 ZDR26870 0A86 4C80 0A34 2676 | DX130 BSC I DX030 RETURN TO INTERRUPT POINT ZDR26880 2677 | * ZDR26890 2678 | * CONSTANTS AND WORK AREAS ZDR26900 2679 | * ZDR26910 0A88 001F 2680 | DX901 DC /001F MASK FOR TWICE DR NO. 2-11 ZDR26920 0A8A 2681 | DX900 BSS E 2 SEEK IOCC ZDR26930 0A8C 0000 2682 | DX906 DC *-* WASTEBASKET ZDR26940 0A8D 0010 2683 | DX907 DC @TCNT RETRY COUNT ZDR26950 0A8E 0000 2684 | DX902 DC *-* READ BEFORE SEEK INDR 2-10 ZDR26960 0A8F 0000 2685 | DC *-* READ BEFORE SEEK IOCC+12-10 ZDR26970 0A90 0A91 2686 | DX911 DC DX912 ADDR OF I/O AREA 2-10 ZDR26980 0A91 0001 2687 | DX912 DC /0001 WD CNT FOR READ CHECK 2-10 ZDR26990 0A92 0000 2688 | DX910 DC *-* ARM POSITION,DR 0 2-11 ZDR27000 0A93 2701 2689 | DX913 DC @I515 SENSE W/RESET IOCC DR0 2-11 ZDR27001 0A94 0000 2690 | DC *-* ARM POSITION,DR 1 2-11 ZDR27002 0A95 8F01 2691 | DC @I516 SENSE W/RESET IOCC DR1 2-11 ZDR27003 0A96 0000 2692 | DC *-* ARM POSITION,DR 2 2-11 ZDR27004 0A97 9701 2693 | DC @I517 SENSE W/RESET IOCC DR2 2-11 ZDR27005 0A98 0000 2694 | DC *-* ARM POSITION,DR 3 2-11 ZDR27006 0A99 9F01 2695 | DC @I518 SENSE W/RESET IOCC DR3 2-11 ZDR27007 0A9A 0000 2696 | DC *-* ARM POSITION,DR 4 2-11 ZDR27008 0A9B A701 2697 | DC @I519 SENSE W/RESET IOCC DR4 2-11 ZDR27009 0A9C 0000 2698 | DC *-* ARM POSITION,DR 5 2-11 ZDR27010 0A9D B701 2699 | DC @I520 SENSE W/RESET IOCC DR5 2-11 ZDR27011 0A9E 0000 2700 | DC *-* ARM POSITION,DR 6 2-11 ZDR27012 0A9F BF01 2701 | DC @I521 SENSE W/RESET IOCC DR6 2-11 ZDR27013 0AA0 0000 2702 | DC *-* ARM POSITION,DR 7 2-11 ZDR27014 0AA1 BF11 2703 | DC @I522 SENSE W/RESET IOCC DR7 2-11 ZDR27015 0AA2 0000 2704 | DC *-* ARM POSITION,DR 8 2-11 ZDR27016 0AA3 BF21 2705 | DC @I523 SENSE W/RESET IOCC DR8 2-11 ZDR27017 0AA4 0000 2706 | DC *-* ARM POSITION,DR 9 2-11 ZDR27018 0AA5 BF31 2707 | DC @I524 SENSE W/RESET IOCC DR9 2-11 ZDR27019 0AA6 0000 2708 | DC *-* ARM POSITION,DR 10 2-11 ZDR27020 0AA7 BF41 2709 | DC @I525 SENSE W/RESET IOCC DR102-11 ZDR27021 0AA8 0001 2710 | DX915 DC 1 GENERAL PURPOSE CONST 2-11 ZDR27022 0AA9 0000 2711 | DX925 DC *-* SCTR ADDR FROM USER BUFFER ZDR27030 0AAA 0180 2712 | DX935 DC /0180 READ CHECK FUNCTION CODE ZDR27050 0AAB FFFF 2713 | DX945 DC -1 MASK FOR COMPLEMENTING ZDR27070 0AAC 5000 2714 | DX955 DC @D501 DISK NOT-READY ERROR CODE ZDR27090 0AAE 2715 | DX960 BSS E @MXDR*2 WORK AREA FOR IOCCS ZDR27100 0AC4 0000 2716 | DX970 DC *-* BUSY INDICATOR 2-10 ZDR27110 0AC5 0000 2717 | DX996 DC *-* CYLINDER ADDR 2-10 ZDR27140 0AC6 0300 2718 | DX997 DC /0300 SEEK FUNCTION CODE 2-10 ZDR27170 0AC7 5002 2719 | DX998 DC /5002 WR SEL/PWR UNS ER CODE 2-10 ZDR27200 0AC8 0100 2720 | DX999 DC /0100 USED TO SET RD CHK INDR2-10 ZDR27230 0ACA 2721 | DX980 BSS E 2 STORAGE FOR ACC AND EXT ZDR27250 0ACC 2722 | DX990 BSS E 2 ORIGINAL WD CNT, SCTR ADDR ZDR27260 0ACE 02B9 2723 | DX992 DC INFOR IOCC FOR READING THE ZDR27270 0ACF 3A00 2724 | DC @I000 *CONSOLE ENTRY SWITCHES ZDR27280 0AD0 0300 2725 | DX994 DC @I006 SENSE ILSW IOCC ZDR27290 0AD1 0301 2726 | DX995 DC /0301 MASK FOR BITS 6,7,15 ZDR27300 2727 | * ZDR27310 2728 | * DETERMINE THE TYPE OF OPERATION PERFORMED, I.E., ZDR27320 2729 | * REQUESTED SEEK, AUTOMATIC SEEK, OR READ/WRITE/CHK ZDR27330 2730 | * ZDR27340 0AD2 C500 0AAF 2731 | DX150 LD L1 DX960+1 FETCH 2ND WD OF CURR IOCC ZDR27350 0AD4 E0F1 2732 | AND DX997 'AND' WITH SEEK FUNC CODE ZDR27360 0AD5 4C20 0A84 2733 | BSC L DX120,Z BR IF REQUESTED SEEK 2-10 ZDR27370 2734 | * ZDR27390 2735 | * CONTINUE SEEKING UNTIL ARM IS IN HOME POSITION ZDR27400 2736 | * ZDR27410 0AD7 C400 00DD 2737 | DX210 LD L $DDSW FETCH THE DSW ZDR27420 0AD9 1004 2738 | SLA 4 ZDR27430 0ADA 4C28 0A84 2739 | BSC L DX120,Z+ BR IF ARM HOME 2-10 ZDR27440 0ADC C0B2 2740 | LD DX902+1 SET READ BEFORE SEEK 2-11 ZDR27450 0ADD F0CA 2741 | EOR DX915 *TO INDICATE IF READ 2-11 ZDR27460 0ADE D0B0 2742 | STO DX902+1 *OR SEEK OP REQUIRED 2-11 ZDR27470 0ADF 4C40 0B46 2743 | BOSC L DX535 BR TO SEEK 2-10 ZDR27490 2744 | * ZDR27500 2745 | * CALL PROCESSING ZDR27510 2746 | * ZDR27520 0AE1 6916 2747 | DX240 STX 1 DX380+1 SAVE XR1 ZDR27530 0AE2 6A17 2748 | STX 2 DX390+1 SAVE XR2 ZDR27540 0AE3 6680 0A2F 2749 | LDX I2 DX000 ADDR CALL+1 TO XR2 ZDR27550 0AE5 18D0 2750 | RTE 16 SCTR ADDR TO EXTENSION ZDR27560 0AE6 C680 0001 2751 | LD I2 @IOAR ORIGINAL WORD COUNT ZDR27570 0AE8 D8E3 2752 | STD DX990 SAVE ORIGINAL WD CNT, SCTR ZDR27580 0AE9 1085 2753 | SLT 5 TWICE DR NO. TO ACC 2-11 ZDR27590 0AEA E09D 2754 | AND DX901 SAVE ONLY TWICE DR NO. 2-11 ZDR27610 0AEB D003 2755 | STO DX270+1 ZDR27620 0AEC 1005 2756 | SLA 5 CLEAR DR CODE FROM SCTR ADR ZDR27630 0AED 1885 2757 | SRT 5 ZDR27640 0AEE 6500 0000 2758 | DX270 LDX L1 *-* ZDR27650 0AF0 C0D3 2759 | DX280 LD DX970 FETCH BUSY INDR 2-10 ZDR27660 0AF1 4C20 0AF0 2760 | BSC L DX280,Z LOOP IF DRIVE IS BUSY ZDR27670 0AF3 C200 2761 | LD 2 @FUNC FETCH FUNCTION CODE ZDR27680 0AF4 4C20 0AFF 2762 | BSC L DX470,Z BR UNLESS TEST FUNCTION ZDR27690 2763 | * ZDR27700 2764 | * RETURN TO CALLER ZDR27710 2765 | * ZDR27720 0AF6 C8D3 2766 | DX330 LDD DX980 ZDR27730 0AF7 6500 0000 2767 | DX380 LDX L1 *-* RESTORE XR1 ZDR27740 0AF9 6600 0000 2768 | DX390 LDX L2 *-* RESTORE XR2 ZDR27750 0AFB 7402 0A2F 2769 | MDX L DX000,@NRTN INCR LINK WORD AND ZDR27760 0AFD 4C80 0A2F 2770 | BSC I DX000 *RETURN TO CALLER ZDR27770 2771 | * ZDR27780 2772 | * CONTINUE CALL PROCESSING (SCTR ADDR, LESS DRIVE ZDR27790 2773 | * CODE, IS IN THE EXTENSION) ZDR27800 2774 | * ZDR27810 0AFF 80C8 2775 | DX470 A DX999 SET READ BEFORE SEEK 2-10 ZDR27820 0B00 180A 2776 | SRA 10 *INDR 2-10 ZDR27830 0B01 D08C 2777 | STO DX902 2-10 ZDR27840 0B02 C201 2778 | LD 2 @IOAR SAVE ADDR OF USER 2-10 ZDR27850 0B03 D500 0AAE 2779 | STO L1 DX960 *I/O AREA ZDR27860 0B05 C400 02C1 2780 | LD L SW006 PATCH OPTION SWITCH ZDR27870 0B07 4C04 0B0D 2781 | BSC L DX480,E BR IF CALL FROM PATCH ZDR27880 0B09 C680 0001 2782 | LD I2 @IOAR WD CNT,SCTR ADDR TO ZDR27890 0B0B DE80 0001 2783 | STD I2 @IOAR *USER I/O AREA ZDR27900 0B0D C0BF 2784 | DX480 LD DX990+1 SECTOR ADDR TO ACC 2-10 ZDR27910 0B0E 100D 2785 | SLA 13 ISOLATE THE SCTR ZDR27920 0B0F 180D 2786 | SRA 13 *NO.,I.E.,RIGHTMOST 3 BITS ZDR27930 0B10 EA00 2787 | OR 2 @FUNC 'OR' IN FUNCTION CODE ZDR27940 0B11 F500 0A93 2788 | EOR L1 DX913 EOR IN AREA CODE, PUT 2-11 ZDR27950 0B13 F094 2789 | EOR DX915 *BACK BIT 15 IF NECESSARY ZDR27960 0B14 D500 0AAF 2790 | STO L1 DX960+1 STORE 2ND WD OF IOCC ZDR27970 0B16 E0AF 2791 | AND DX997 'AND' ALL BUT BITS 6, 7 ZDR27980 0B17 4C20 0B28 2792 | BSC L DX500,Z BR UNLESS SEEK REQUESTED ZDR27990 0B19 C08E 2793 | LD DX915 ZDR28000 0B1A D500 0A92 2794 | STO L1 DX910 SET ARM POSITION TO CYL 1 ZDR28010 0B1C C8AF 2795 | LDD DX990 RESTORE WD CNT AND ZDR28020 0B1D DE80 0001 2796 | STD I2 @IOAR *SCTR ADDR ZDR28030 0B1F C08A 2797 | LD DX935 BUILD READ CHECK IOCC 2-11 ZDR28040 0B20 F500 0A93 2798 | EOR L1 DX913 EOR IN AREA CODE 2-11 ZDR28050 0B22 D400 0A8F 2799 | STO L DX902+1 *AND SAVE IT 2-11 ZDR28060 0B24 C400 0A90 2800 | LD L DX911 SAVE ADDR OF I/O AREA 2-11 ZDR28070 0B26 D400 0A8E 2801 | STO L DX902 *IN READ CHECK IOCC 2-10 ZDR28080 2802 | * ZDR28090 2803 | * CHECK TO SEE IF AUTOMATIC SEEK IS NECESSARY ZDR28100 2804 | * ZDR28110 0B28 C0A4 2805 | DX500 LD DX990+1 FETCH SECTOR ADDR 2-10 ZDR28120 0B29 1004 2806 | SLA 4 CLEAR OUT DRIVE CODE AND ZDR28130 0B2A 1807 2807 | SRA 7 *CONVERT TO A CYLINDER ADDR ZDR28140 0B2B D099 2808 | STO DX996 SAVE ADDR CYLINDER SOUGHT ZDR28150 0B2C 9500 0A92 2809 | S L1 DX910 COMPARE WITH CURR CYL ADDR ZDR28160 0B2E 4C18 0B5D 2810 | BSC L DX550,+- BR IF SEEK NOT NECESSARY ZDR28170 2811 | * ZDR28180 2812 | * AUTOMATIC SEEK PREPARATION ZDR28190 2813 | * ZDR28200 0B30 1890 2814 | SRT 16 PUT NO. CYLINDERS IN EXT ZDR28210 0B31 180F 2815 | SRA 15 + OR - SIGN TO BIT 15 ZDR28220 0B32 1002 2816 | SLA 2 DIRECTION INDR TO BIT 13, ZDR28230 0B33 ED00 0A93 2817 | OR L1 DX913 *'OR' AGAINST SENSEIOCC2-11 ZDR28240 0B35 F09B 2818 | EOR DX995 *MASK BITS 6,7,AND 15 OUT ZDR28250 0B36 18D0 2819 | RTE 16 ZDR28260 0B37 4C10 0B3D 2820 | BSC L DX520,- BR IF SEEK TOWARD CENTER ZDR28270 0B39 F400 0AAB 2821 | EOR L DX945 COMPLEMENT NO. CYLINDERS ZDR28280 0B3B 8400 0AA8 2822 | A L DX915 *SOUGHT TO GET POSITIVE NO. ZDR28290 0B3D DC00 0A8A 2823 | DX520 STD L DX900 SAVE SEEK IOCC ZDR28300 0B3F C085 2824 | DX530 LD DX996 RESET ARM POSITION TO 2-11 ZDR28320 0B40 D500 0A92 2825 | STO L1 DX910 *ADDR OF CYLINDER SOUGHT ZDR28330 0B42 C400 0A8D 2826 | LD L DX907 SET BUSY INDICATOR 2-10 ZDR28340 0B44 D400 0AC4 2827 | STO L DX970 *TO INDICATE SEEK 2-10 ZDR28350 0B46 401E 2828 | DX535 BSI DX600 BR TO CHK FOR DISK REDY2-11 ZDR28370 0B47 C400 0A8E 2829 | LD L DX902 GET READ BEFORE SEEK 2-10 ZDR28380 0B49 4C18 0B4D 2830 | BSC L DX536,+- *INDR & BR IF OFF 2-10 ZDR28390 0B4B C400 0A8F 2831 | LD L DX902+1 GET RD BEFORE SEEK IOCC2-10 ZDR28400 0B4D 4C04 0B52 2832 | DX536 BSC L DX537,E *AND BR IF OP NOT SEEK 2-10 ZDR28410 0B4F 0C00 0A8A 2833 | XIO L DX900 XEQ SEEK 2-10 ZDR28420 0B51 7002 2834 | MDX DX540 SKIP NEXT XIO 2-10 ZDR28430 0B52 0C00 0A8E 2835 | DX537 XIO L DX902 XEQ OP OTHER THAN SEEK 2-10 ZDR28440 0B54 7400 0AC4 2836 | DX540 MDX L DX970,0 SKIP IF DISK NOT BUSY 2-11 ZDR28450 0B56 70FD 2837 | MDX DX540 *OTHERWISE, LOOP 2-11 ZDR28460 0B57 C500 0AAF 2838 | LD L1 DX960+1 FETCH 2ND WD CURRENT IOCC ZDR28470 0B59 E400 0AD0 2839 | AND L DX994 'AND' ALL BUT BITS 6, 7 ZDR28480 0B5B 4C18 0AF6 2840 | BSC L DX330,+- BR IF SEEK REQUESTED ZDR28490 2841 | * ZDR28500 2842 | * READ/WRITE/READ CHECK PREPARATION ZDR28510 2843 | * ZDR28520 0B5D C400 0A8D 2844 | DX550 LD L DX907 FETCH NO. RETRIES ZDR28530 0B5F D400 0AC4 2845 | STO L DX970 SET BUSY INDR 2-10 ZDR28540 0B61 4003 2846 | BSI DX600 OUT TO READ/WRITE/READ CHK ZDR28560 0B62 0D00 0AAE 2847 | XIO L1 DX960 RETRY OPERATION 2-10 ZDR28570 0B64 7091 2848 | MDX DX330 BR TO EXIT ZDR28580 2849 | * ZDR28590 2850 | * TEST FOR NOT-READY, INITIATE ALL DISK OPERATIONS ZDR28600 2851 | * ZDR28610 0B65 0000 2852 | DX600 DC *-* ENTRY POINT ZDR28620 0B66 0D00 0A92 2853 | DX630 XIO L1 DX913-1 SENSE DISK DSW/RESET 2-11 ZDR28640 0B68 D400 00DD 2854 | STO L $DDSW SAVE THE DSW ZDR28650 0B6A 4C28 0B77 2855 | BSC L DX640,+Z TEST FOR DATA ERROR 2-9 ZDR28660 0B6C 1002 2856 | SLA 2 ZDR28670 0B6D 4C90 0B65 2857 | BSC I DX600,- BR IF DR READY 2-11 ZDR28680 0B6F C400 0AEF 2858 | LD L DX270+1 GET TWICE DR CODE 2-10 ZDR28690 0B71 1003 2859 | SLA 3 PUT DR CODE IN DIGIT 2 2-10 ZDR28700 0B72 EC00 0AAC 2860 | OR L DX955 OR IN ERROR CODE 2-10 ZDR28710 0B74 4400 0028 2861 | DX635 BSI L $PRET BR TO PREOPERATIVE ERR TRAP ZDR28720 0B76 70EF 2862 | MDX DX630 BR TO TEST FOR READY ZDR28730 2863 | * 2-9 ZDR28740 0B77 1002 2864 | DX640 SLA 2 CHECK IF WR SEL/PWR UNS 2-9 ZDR28750 0B78 4C90 0B65 2865 | BSC I DX600,- BR IF DATA ERROR 2-11 ZDR28760 0B7A C400 0AC7 2866 | LD L DX998 LD WR SEL/PWR UNS CODE 2-9 ZDR28770 0B7C 70F7 2867 | MDX DX635 BR TO DISP ERROR 2-9 ZDR28780 TYPE0 2869 | *************************************************** ZDR28860 2870 | * * ZDR28870 2871 | *STATUS- VERSION 2, MODIFICATION LEVEL 0 * ZDR28880 2872 | * * ZDR28890 2873 | *FUNCTION/OPERATION- * ZDR28900 2874 | * THIS 1130/18OO SUBROUTINE OPERATES THE PRIME * ZDR28910 2875 | * KEYBOARD/PRINTER (1816/1053). IT INITIATES * ZDR28920 2876 | * REQUESTED OPERATIONS AND PROCESSES ANY * ZDR28930 2877 | * KEYBOARD, PRINTER, OR OPERATOR REQUEST * ZDR28940 2878 | * INTERRUPTS. IT IGNORES ANY KEYBOARD/PRINTER * ZDR28950 2879 | * ERRORS. * ZDR28960 2880 | * * ZDR28970 2881 | *ENTRY POINTS- * ZDR28980 2882 | * * TYPE0-CALL ENTRANCE FOR READ, WRITE, OR * ZDR28990 2883 | * TEST OPERATIONS. * ZDR29000 2884 | * * ZDR29010 2885 | * * INT1- ENTRY POINT FOR KEYBOARD, CONSOLE * ZDR29020 2886 | * PRINTER, OR INTERRUPT REQUEST * ZDR29030 2887 | * PKEY INTERRUPTS * ZDR29040 2888 | * * ZDR29050 2889 | *INPUT- FROM KEYBOARD OR LIBF PARAMETERS * ZDR29060 2890 | * * ZDR29070 2891 | *OUTPUT- PRINTED * ZDR29080 2892 | * * ZDR29090 2893 | *EXTERNAL SUBROUTINES- * ZDR29100 2894 | * * HOLL * ZDR29110 2895 | * *PRTY * ZDR29120 2896 | * * ZDR29130 2897 | *EXITS- * ZDR29140 2898 | * NORMAL- * ZDR29150 2899 | * * CALL PORTION-EXIT BACK TO USER PROGRAM. * ZDR29160 2900 | * * INTERRUPT PORTION-BACK TO ILS04 * ZDR29170 2901 | * * ERROR- * ZDR29180 2902 | * * CALL PORTION-TO $PRET * ZDR29190 2903 | * * INTERRUPT PORTION-TO $PST4 * ZDR29200 2904 | * * ZDR29210 2905 | *TABLES/WORK AREAS- LIBF TO HOLL TABLE SUBROUTINE * ZDR29220 2906 | * * ZDR29230 2907 | *ATTRIBUTES- REUSABLE * ZDR29240 2908 | * * ZDR29250 2909 | *NOTES--N/A * ZDR29260 2910 | * * ZDR29270 2911 | *************************************************** ZDR29280 TYPE0 0B7D 0000 2913 | WRTY0 DC 0 ENTRY POINT ZDR29300 0B7E 6918 2914 | STX 1 T0100+1 LIBF ENTRANCE (+0 ZDR29310 0B7F 6580 0B7D 2915 | LDX I1 WRTY0 ZDR29320 0B81 7007 2916 | MDX T0070 BR TO PROCESS THE CALL ZDR29330 0B82 0000 2917 | T0020 DC 0 INTERRUPT ENTRANCE (+4) ZDR29340 0B83 4C00 0BE7 2918 | BSC L T0320 BR TO PROCESS INTERRUPT ZDR29350 2919 | *************************************************** ZDR29360 2920 | * LIBF PROCESSING * ZDR29370 2921 | *************************************************** ZDR29380 2922 | * THIS PORTION STORES CALLING SEQUENCE INFO * ZDR29390 2923 | * AND CHECKS THE DEVICE STATUS BEFORE ANY I/O * ZDR29400 2924 | * OPERATION IS INITIATED. A CALLING ERROR * ZDR29410 2925 | * CAUSES AN ERROR EXIT TO LOC 41. NOT READY * ZDR29420 2926 | * 1053 CAUSES ERROR EXIT TO LOC /8D. OTHERWISE* ZDR29430 2927 | * THE ROUTINE IS SET BUSY AND IOCS CTR INCREMEN* ZDR29440 2928 | * TED TO INDICATE INTERRUPT(S) PENDING. * ZDR29450 2929 | *************************************************** ZDR29460 0B85 0002 2930 | T0030 DC +2 DECIMAL TWO ZDR29470 0B86 2000 2931 | T0040 DC /2000 DEVICE NOT READY CODE ZDR29480 0B87 2001 2932 | T0050 DC /2001 ILLEGAL CALL ERROR CODE ZDR29490 0B88 7001 2933 | T0060 MDX *+1 TO SET UP JUMP TABLE ZDR29500 2934 | * ZDR29510 2935 | * ZDR29520 0B89 6A0F 2936 | T0070 STX 2 T0110+1 SAVE XR2 ZDR29530 0B8A 280F 2937 | STS T0120 SAVE STATUS ZDR29540 0B8B D83C 2938 | STD T0230 SAVE ACC AND EXT ZDR29550 0B8C C100 2939 | LD 1 0 GET THE CONTROL PARAMETER ZDR29560 0B8D 180C 2940 | SRA 12 IS FUNCTION TEST ZDR29570 0B8E 4C20 0B9D 2941 | BSC L T0140,Z * NO ZDR29580 0B90 C039 2942 | LD T0240 * YES, IS SUBR BUSY ZDR29590 0B91 4818 2943 | BSC +- IF ZDR29600 0B92 7101 2944 | T0080 MDX 1 +1 * NO, EXIT TO CALL+3 ZDR29610 0B93 C834 2945 | LDD T0230 ZDR29620 0B94 7101 2946 | T0090 MDX 1 +1 IF YES, EXIT TO CALL+2 ZDR29630 0B95 6906 2947 | STX 1 T0130+1 SET UP EXIT ZDR29640 0B96 6500 0000 2948 | T0100 LDX L1 *-* RESTORE XR1 ZDR29650 0B98 6600 0000 2949 | T0110 LDX L2 *-* RESTORE XR2 ZDR29660 0B9A 2000 2950 | T0120 LDS *-* RESTORE STATUS ZDR29670 0B9B 4C00 0000 2951 | T0130 BSC L *-* EXIT ZDR29680 0B9D C02C 2952 | T0140 LD T0240 IS SUBROUTINE BUSY ZDR29690 0B9E 4C20 0B9D 2953 | BSC L T0140,Z * YES, WAIT ZDR29700 0BA0 C100 2954 | LD 1 0 ZDR29710 0BA1 D400 0C14 2955 | STO L T0455 PATCH CALL FLAG ZDR29720 0BA3 180C 2956 | SRA 12 ZDR29730 0BA4 90E0 2957 | S T0030 IS FUNCTION LEGAL ZDR29740 0BA5 4C30 0BBD 2958 | BSC L T0190,Z- * NO, ERROR ZDR29750 0BA7 80E0 2959 | A T0060 *YES, SET UP JUMP TABLE ZDR29760 0BA8 D011 2960 | STO T0180 ZDR29770 0BA9 0820 2961 | T0170 XIO T0250-1 IS THE DEVICE READY ZDR29780 0BAA 1005 2962 | SLA 5 ZDR29790 0BAB 4C28 0BBF 2963 | BSC L T0200,Z+ NO,LOOP UNTIL READY ZDR29800 0BAD 1810 2964 | SRA 16 READY, CLEAR STORAGE AREAS, ZDR29810 0BAE D061 2965 | STO T0440 * RESTART INDR ZDR29820 0BAF D05C 2966 | STO T0400 * BACKSPACE INDR ZDR29830 0BB0 D062 2967 | STO T0450 * SLASH INDR ZDR29840 0BB1 D05D 2968 | STO T0430 * SET INDR FOR RIGHT CHAR ZDR29850 0BB2 C101 2969 | LD 1 1 GET DATA ADDR ZDR29860 0BB3 8018 2970 | A T0260 AVOID STORED WD CNT ZDR29870 0BB4 D055 2971 | STO T0390 SAVE I/O AREA ADDR ZDR29880 0BB5 D05B 2972 | STO T0440+1 ZDR29890 0BB6 C580 0001 2973 | LD I1 1 SAVE WORD COUNT ZDR29900 0BB8 4C08 0BBD 2974 | BSC L T0190,+ ERROR IF ZERO OR NEGATIVE ZDR29910 0BBA 7000 2975 | T0180 MDX T0180+1 INITIATE FUNCTION ZDR29920 0BBB 7012 2976 | MDX T0280 * = GET ZDR29930 0BBC 701F 2977 | MDX T0310 * = PUT ZDR29940 0BBD C0C9 2978 | T0190 LD T0050 ERROR HANDLING ZDR29950 0BBE 7003 2979 | MDX T0220 * = ILLEGAL CALL ZDR29960 0BBF 4C02 0BA9 2980 | T0200 BSC L T0170,C * = NOT READY & BUSY ZDR29970 0BC1 C0C4 2981 | T0210 LD T0040 * = NOT READY & NOT BUSY ZDR29980 0BC2 71FF 2982 | T0220 MDX 1 -1 ZDR29990 0BC3 6D00 0028 2983 | STX L1 $PRET STORE LIBF ADDR ZDR30000 0BC5 6128 2984 | LDX 1 $PRET ZDR30010 0BC6 70CD 2985 | MDX T0090 ZDR30020 0BC8 2986 | T0230 BSS E 2 SAVE ACC AND EXT ZDR30030 0BCA 0000 2987 | T0240 DC 0 SUBR BUSY INDR ZDR30040 0BCB 0F00 2988 | T0250 DC /0F00 IOCC TO SENSE DSW ZDR30050 0BCC 0001 2989 | T0260 DC +1 DECIMAL ONE ZDR30060 0BCD 0F01 2990 | T0270 DC /0F01 SENSE DSW IOCC (RESET) ZDR30070 2991 | *************************************************** ZDR30080 2992 | * TYPE0 FUNCTION INITIATION ZDR30090 2993 | *************************************************** ZDR30100 0BCE D03E 2994 | T0280 STO T0410 READ FUNCTION INITIATION ZDR30110 0BCF D042 2995 | STO T0440+2 SAVE WD CNT FOR RESTART ZDR30120 0BD0 08F9 2996 | XIO T0250-1 ZDR30130 0BD1 1006 2997 | SLA 6 IS KEYBOARD READY ZDR30140 0BD2 4C28 0BC1 2998 | BSC L T0210,Z+ * NO, ERROR ZDR30150 0BD4 4C00 0C9D 2999 | BSC L T0730 SET UP CONVERSION TBL ADDR ZDR30160 0BD6 D0F3 3000 | T0290 STO T0240 SET SUBROUTINE BUSY ZDR30170 0BD7 7401 0032 3001 | MDX L $IOCT,+1 INCR IOCS CTR ZDR30180 0BD9 1000 3002 | NOP AVOID SKIP PROBLEM ZDR30190 0BDA 082B 3003 | XIO T0370-1 RELEASE KEYBOARD ZDR30200 0BDB 70B6 3004 | MDX T0080 GO TO EXIT ZDR30210 0BDC 1001 3005 | T0310 SLA 1 PUT FUNCTION INITIATION ZDR30220 0BDD D02F 3006 | STO T0410 SAVE WORD COUNT *2 ZDR30230 0BDE D0EB 3007 | STO T0240 SET SUBROUTINE BUSY ZDR30240 0BDF 7401 0032 3008 | MDX L $IOCT,+1 INCR IOCS CTR ZDR30250 0BE1 1000 3009 | NOP AVOID SKIP PROBLEM ZDR30260 0BE2 C480 0C0A 3010 | LD I T0390 GET 1ST O/P CHAR ZDR30270 0BE4 D021 3011 | STO T0360 STORE THECHAR IN TEMP AREA ZDR30280 0BE5 0822 3012 | XIO T0380 PRINT ONE CHARACTER ZDR30290 0BE6 70AB 3013 | MDX T0080 GO TO EXIT ZDR30300 3014 | *************************************************** ZDR30310 3015 | * GENERAL INTERRUPT PROCESSING * ZDR30320 3016 | *************************************************** ZDR30330 3017 | * THIS PORTION IS ENTERED FROM AN INTERRUPT * ZDR30340 3018 | * LEVEL SUBROUTINE (04 IN 1130). IT DETERMINES * ZDR30350 3019 | * THE CAUSE OF THE INTERRUPT. IF THE REQUESTED * ZDR30360 3020 | * NUMBER OF CHARACTERS HAS BEEN READ AND/OR * ZDR30370 3021 | * PRINTED, THE ROUTINE IS SET NOT BUSY AND THE * ZDR30380 3022 | * IOCS COUNTER DECREMENTED TO INDICATE INTERR * ZDR30390 3023 | * PROCESSING COMPLETED. IF AN OPERATOR REQUEST * ZDR30400 3024 | * INTERRUPT IS DETECTED, THE SUBROUTINE EXITS, * ZDR30410 3025 | * VIA THE ADDRESS IN LOCN $IREQ , TO THE USER * ZDR30420 3026 | * BEFORE RETURNING CONTROL TO THE INTERRUPT * ZDR30430 3027 | * LEVEL SUBROUTINE. * ZDR30440 3028 | *************************************************** ZDR30450 0BE7 08E4 3029 | T0320 XIO T0270-1 WHAT CAUSED INTERRUPT ZDR30460 0BE8 D025 3030 | STO T0420 ZDR30470 0BE9 1001 3031 | SLA 1 ZDR30480 0BEA 4C28 0C39 3032 | BSC L T0520,Z+ KEYBOARD SERVICE REQUEST ZDR30490 0BEC 4802 3033 | BSC C ZDR30500 0BED 7001 3034 | MDX T0330 PRINTER SERVICE REQUEST ZDR30510 0BEE 7011 3035 | MDX T0350 IF NOT THESE,CONT CHK ZDR30520 0BEF C020 3036 | T0330 LD T0440 WAS RE-ENTRY LAST READ ZDR30530 0BF0 4C20 0C8C 3037 | BSC L T0630,Z * YES ZDR30540 0BF2 C019 3038 | LD T0400 WAS BACKSPACE LAST REA ZDR30550 0BF3 4C20 0C7D 3039 | BSC L T0590,Z * YES ZDR30560 0BF5 C0C4 3040 | LD T0180 IS THEFUNCTION = PUT ZDR30570 0BF6 4804 3041 | BSC E * NO ZDR30580 0BF7 701E 3042 | MDX T0460 * YES ZDR30590 0BF8 7400 0C0D 3043 | MDX L T0410,0 ANY MORE CHARS TO PRINT ZDR30600 0BFA 7005 3044 | MDX T0350 * YES ZDR30610 0BFB 1810 3045 | T0340 SRA 16 CLEAR SUBROUTINE BUSY INDR ZDR30620 0BFC D0CD 3046 | STO T0240 ZDR30630 0BFD 74FF 0032 3047 | MDX L $IOCT,-1 DECREMENT IOCS COUNTER ZDR30640 0BFF 1000 3048 | NOP ZDR30650 0C00 C00D 3049 | T0350 LD T0420 ZDR30660 0C01 1002 3050 | SLA 2 ZDR30670 0C02 44A8 002C 3051 | BSI I $IREQ,Z+ BR IF INTERRUPT REQUEST ZDR30680 0C04 4C80 0B82 3052 | BSC I T0020 EXIT TO ILS 04 ZDR30690 3053 | * ZDR30700 3054 | *CONSTANTS AND BUFFER AREA ZDR30710 3055 | * ZDR30720 0C06 3056 | T0360 BSS E 1 TEMPORARY STORAGE ZDR30730 0C07 0C00 3057 | T0370 DC /0C00 IOCC TO READY KEYBOARD O ZDR30740 0C08 0C06 3058 | T0380 DC T0360 IOCC TO PRINT 1 CHAR E ZDR30750 0C09 0900 3059 | DC /0900 ZDR30760 0C0A 0000 3060 | T0390 DC 0 IOCC TO READ 1 CHAR E ZDR30770 0C0B 0A00 3061 | DC /0A00 O ZDR30780 0C0C 0000 3062 | T0400 DC 0 BACKSPACE INDR ZDR30790 0C0D 0000 3063 | T0410 DC 0 LENGTH OF I/O AREA ZDR30800 0C0E 0000 3064 | T0420 DC 0 DEVICE STATUS WORD ZDR30810 0C0F 0000 3065 | T0430 DC 0 CHAR INDR (0 IF RIGHT) ZDR30820 0C10 0000 3066 | T0440 DC 0 RE-ENTRY INFO - INDICATOR ZDR30830 0C11 0000 3067 | DC 0 IOAR ADDR ZDR30840 0C12 0000 3068 | DC 0 WORD COUNT ZDR30850 0C13 0000 3069 | T0450 DC 0 SLASH CHAR INDR ZDR30860 0C14 0000 3070 | T0455 DC 0 PATCH CALL FLAG ZDR30870 0C15 00FF 3071 | T0456 DC /00FF PRINTER CODE EXTRACT MASK ZDR30880 3072 | *************************************************** ZDR30890 3073 | * T0380 FUNCTION INTERRUPT PROCESSING * ZDR30900 3074 | *************************************************** ZDR30910 3075 | * DATA IS PRINTED FROM A TEMPORARY REGISTER AS * ZDR30920 3076 | * THE DATA AREA IS UNPACKED, ONE CHARACTER * ZDR30930 3077 | * AT A TIME. * ZDR30940 3078 | *************************************************** ZDR30950 0C16 74FF 0C0D 3079 | T0460 MDX L T0410,-1 ANY MORE CHARS TO PRINT ZDR30960 0C18 7001 3080 | MDX T0470 * YES ZDR30970 0C19 70E1 3081 | MDX T0340 * NO, EXIT ZDR30980 0C1A C0F4 3082 | T0470 LD T0430 IS THIS RIGHT CHAR ZDR30990 0C1B 4C18 0C24 3083 | BSC L T0480,+- * YES,GO TO PRINT ZDR31000 0C1D 1810 3084 | SRA 16 * NO, IS LEFT CHAR ZDR31010 0C1E D0F0 3085 | STO T0430 ZERO RIGHT HAND CHAR INDR ZDR31020 0C1F 7401 0C0A 3086 | MDX L T0390,+1 INCR I/O AREA ADDR ZDR31030 0C21 C480 0C0A 3087 | LD I T0390 GET NEXT O/P WD ZDR31040 0C23 7005 3088 | MDX T0490 GO PRINT LEFT CHAR ZDR31050 0C24 C073 3089 | T0480 LD T0640 IF RIGHT CHAR,SET INDR F ZDR31060 0C25 D0E9 3090 | STO T0430 NEXT CHAR TO BE LEFT CHAR. ZDR31070 0C26 C480 0C0A 3091 | LD I T0390 GET RIGHT CHAR,LEFT JUSTIF ZDR31080 0C28 1008 3092 | SLA 8 ZDR31090 0C29 D0DC 3093 | T0490 STO T0360 STO CHAR IN O/P BUFFER ZDR31100 0C2A 089F 3094 | T0500 XIO T0250-1 IS THE DEVICE READY ZDR31110 0C2B 1005 3095 | SLA 5 ZDR31120 0C2C 4C28 0C34 3096 | BSC L T0510,Z+ NO, GO TO ERROR TRAP ZDR31130 0C2E 089B 3097 | XIO T0250-1 DEVICE STILL READY ZDR31140 0C2F 1005 3098 | SLA 5 ZDR31150 0C30 4C28 0C34 3099 | BSC L T0510,Z+ NO, WAS CONTACT BOUNCE ZDR31160 0C32 08D5 3100 | XIO T0380 PRINT 1 CHARACTER***** ZDR31170 0C33 70CC 3101 | MDX T0350 CHK INTERRUPT REQUEST ZDR31180 3102 | * ZDR31190 3103 | *EXIT TO POST-OPERATIVE ERROR TRAP WITH NOT READY ZDR31200 3104 | *ERROR CODE IN THE ACCUMULATOR. ZDR31210 3105 | * ZDR31220 0C34 C400 0B86 3106 | T0510 LD L T0040 ERROR CODE INTO ACC ZDR31230 0C36 4400 008D 3107 | BSI L $PST4 EXIT TO ERROR TRAP ZDR31240 0C38 70F1 3108 | MDX T0500 TRY AGAIN ZDR31250 3109 | *************************************************** ZDR31260 3110 | * KEYBOARD INTERRUPT PROCESSING * ZDR31270 3111 | *************************************************** ZDR31280 3112 | * THE INPUT CHARACTER IS READ, ANALYZED, AND * ZDR31290 3113 | * PROCESSED. IF A GRAPHIC, IT IS PRINTED AND, * ZDR31300 3114 | * IF THE REQUESTED NO. OF CHARACTERS HAS NOT * ZDR31310 3115 | * BEEN READ, THE KEYBOARD IS RELEASED FOR THE * ZDR31320 3116 | * NEXT ENTRY. * ZDR31330 3117 | *************************************************** ZDR31340 0C39 08D0 3118 | T0520 XIO T0390 READ 1 CHAR FROM KEYBOARD ZDR31350 0C3A C480 0C0A 3119 | LD I T0390 ZDR31360 0C3C 100D 3120 | SLA 13 WHAT IS CHAR JUST READ ZDR31370 0C3D 4C02 0C6B 3121 | BSC L T0560,C * CHAR = END MESSAGE ZDR31380 0C3F 18D0 3122 | RTE 16 SAVE ACCUMULATOR ZDR31390 0C40 C0D3 3123 | LD T0455 ZDR31400 0C41 4C04 0C48 3124 | BSC L T0525,E BR IF PATCH CALL ZDR31410 0C43 18D0 3125 | RTE 16 RESTORE ACCUMULATOR ZDR31420 0C44 4C30 0C6F 3126 | BSC L T0570,Z- * CHAR = RE-ENTRY ZDR31430 0C46 4C20 0C76 3127 | BSC L T0580,Z * CHAR = BACKSPACE ZDR31440 0C48 612A 3128 | T0525 LDX 1 +T0770-T0760 LENGTH OF CONVERSION TBL ZDR31450 3129 | * FOR CONVERSION ZDR31460 0C49 C0CA 3130 | LD T0455 CHK FOR BIT 14 ON IN CALL ZDR31470 0C4A 1801 3131 | SRA 1 *FUNCTION WORD. ZDR31480 0C4B 4804 3132 | BSC E SKIP IF NOT DM1 LABEL CALL ZDR31490 0C4C 71FC 3133 | MDX 1 -4 EXCLUDE SPECIAL CHARS ZDR31500 0C4D C480 0C0A 3134 | T0530 LD I T0390 ZDR31510 0C4F F500 0000 3135 | T0540 EOR L1 *-* CHK W/HOLL TBL ENTRY ZDR31520 0C51 4C18 0C55 3136 | BSC L T0550,+- MATCH ,GET PRTY TBL ENTRY ZDR31530 0C53 71FF 3137 | MDX 1 -1 IF NOT,CHK NEXT TBL ENTRY ZDR31540 0C54 70F8 3138 | MDX T0530 ZDR31550 0C55 C500 0000 3139 | T0550 LD L1 *-* GET PRTY CHAR ZDR31560 0C57 D0AE 3140 | STO T0360 PUT IN O/P BUFFER ZDR31570 0C58 E0BC 3141 | AND T0456 /00FF - REMOVE PRINTER HALF ZDR31580 0C59 18D0 3142 | RTE 16 SAVE CHARACTER IN EXTENSION ZDR31590 0C5A C0B9 3143 | LD T0455 CHK FOR BIT 14 ON IN CALL ZDR31600 0C5B 1801 3144 | SRA 1 *FUNCTION WORD. ZDR31610 0C5C 4C04 0C64 3145 | BSC L T0555,E BR IF VERSION 1 LABEL CALL ZDR31620 0C5E 7401 0C0A 3146 | T0551 MDX L T0390,1 GET SET TO READ NEXT CHAR ZDR31630 0C60 74FF 0C0D 3147 | MDX L T0410,-1 ANY MORE CHARACTERS ZDR31640 0C62 08A3 3148 | XIO T0370-1 * YES,ENABLE THE KEYBOARD ZDR31650 0C63 70C6 3149 | MDX T0500 PRINT THE CHAR JUST READ ZDR31660 0C64 C0A8 3150 | T0555 LD T0410 CHARACTER COUNT ZDR31670 0C65 4804 3151 | BSC E SKIP IF NO SHIFT REQUIRED ZDR31680 0C66 1088 3152 | SLT 8 *FOR PACKING ZDR31690 0C67 18D0 3153 | RTE 16 CHAR TO ACC ZDR31700 0C68 D480 0C0A 3154 | STO I T0390 EBC TO BUFFER ZDR31710 0C6A 70F3 3155 | MDX T0551 BR TO READ NEXT CHAR ZDR31720 3156 | *************************************************** ZDR31730 3157 | * SPECIAL CHARACTER SETUP/PROCESSING * ZDR31740 3158 | *************************************************** ZDR31750 3159 | * IF A RE-ENTRY CHARACTER IS READ, TWO SLASHES * ZDR31760 3160 | * ARE PRINTED, THE CARRIER RESTORED, AND THE * ZDR31770 3161 | * KEYBOARD RELEASED FOR THE NEXT (FIRST) * ZDR31780 3162 | * ENTRY. IF A BACKSPACE CHARACTER IS READ, A * ZDR31790 3163 | * BACKSPACE IS EXECUTED, A SLASH PRINTED, AND * ZDR31800 3164 | * THE KEYBOAD RELEASED FOR THE NEXT (PREVIOUS) * ZDR31810 3165 | * ENTRY. * ZDR31820 3166 | *************************************************** ZDR31830 0C6B C02E 3167 | T0560 LD T0680 END OF FIELD CHAR INPUT ZDR31840 0C6C D480 0C0A 3168 | STO I T0390 STORE A NEW LINE CHAR ZDR31850 0C6E 708C 3169 | MDX T0340 GO TO EXIT ZDR31860 0C6F D0A0 3170 | T0570 STO T0440 ZDR31870 0C70 C0A0 3171 | LD T0440+1 CHARACTER = RE-ENTRY ZDR31880 0C71 D098 3172 | STO T0390 ZDR31890 0C72 C09F 3173 | LD T0440+2 RESTORE ADDRESS & COUNT T ZDR31900 0C73 D099 3174 | STO T0410 ZDR31910 0C74 C027 3175 | LD T0700 CHAR = SLASH ZDR31920 0C75 70B3 3176 | MDX T0490 GO TO PRINT SLASH ZDR31930 0C76 D095 3177 | T0580 STO T0400 SET BACKSPACE INDR NON-ZER ZDR31940 0C77 74FF 0C0A 3178 | MDX L T0390,-1 REFERENCE PREVIOUS WORD ZDR31950 0C79 7401 0C0D 3179 | MDX L T0410,+1 INCR THE WD CNT ZDR31960 0C7B C01D 3180 | LD T0670 CHAR = BACKSPACE ZDR31970 0C7C 70AC 3181 | MDX T0490 EXECUTE A BACKSPACE ZDR31980 0C7D C095 3182 | T0590 LD T0450 BKSP INDR SET,IS SLASH INDR ZDR31990 0C7E 4C20 0C84 3183 | BSC L T0610,Z * YES,ENABLE KB AND EXIT ZDR32000 0C80 C017 3184 | T0600 LD T0640 * NO,SET SLASH INDR ZDR32010 0C81 D091 3185 | STO T0450 ZDR32020 0C82 C019 3186 | LD T0700 CHAR = SLASH ZDR32030 0C83 70A5 3187 | MDX T0490 GO TO PRINT SLASH ZDR32040 0C84 1810 3188 | T0610 SRA 16 CLEAR INDICATORS & ZDR32050 0C85 D086 3189 | STO T0400 RELEASE THE KEYBOARD ZDR32060 0C86 D08C 3190 | STO T0450 ZDR32070 0C87 D088 3191 | STO T0440 ZDR32080 0C88 0C00 0C06 3192 | XIO L T0370-1 ZDR32090 0C8A 4C00 0C00 3193 | BSC L T0350 ZDR32100 0C8C C086 3194 | T0630 LD T0450 RESTART INDR SET,IS SLASH ZDR32110 0C8D 4C18 0C80 3195 | BSC L T0600,+- * NO, SET & PRINT SLASH ZDR32120 0C8F C400 0C0C 3196 | LD L T0400 * YES,IS BKSP INDR SET ZDR32130 0C91 4C20 0C84 3197 | BSC L T0610,Z CLEAR ALL INDICATORS ZDR32140 0C93 C004 3198 | LD T0640 * NO,SET BKSP INDR = 0 ZDR32150 0C94 D400 0C0C 3199 | STO L T0400 ZDR32160 0C96 C004 3200 | LD T0690 =CARRIAGE RET (NEW LINE) ZDR32170 0C97 7091 3201 | MDX T0490 GO TO SPACE CARRIAGE ZDR32180 3202 | * ZDR32190 3203 | *CONSTANTS AREA ZDR32200 3204 | * ZDR32210 0C98 0001 3205 | T0640 DC +1 DECIMAL CONSTANT ZDR32220 0C99 1100 3206 | T0670 DC /1100 BACKSPACE (CONSOLE PTR) ZDR32230 0C9A 4110 3207 | T0680 DC /4110 HOLLERITH NEW LINE CHAR ZDR32240 0C9B 8100 3208 | T0690 DC /8100 NEW LINE (CONSOLE PTR) ZDR32250 0C9C BC00 3209 | T0700 DC /BC00 SLASH (CONSOLE PTR) ZDR32260 3210 | *************************************************** ZDR32270 3211 | * T0730- STORE CONVERSION TBL ADDRS * ZDR32280 3212 | *************************************************** ZDR32290 0C9D C005 3213 | T0730 LD T0740 GET LIBF HOLL WD ZDR32300 0C9E D0B1 3214 | STO T0540+1 SETUP ADDR FOR CONVERSIONS ZDR32310 0C9F C004 3215 | LD T0750 GET LIBF PRTY WD ZDR32320 0CA0 D0B5 3216 | STO T0550+1 SETUP ADDR FOR CONVERSIONS ZDR32330 0CA1 4C00 0BD6 3217 | BSC L T0290 RET TO CALL SERVICE PORTIO ZDR32340 0CA3 049C 3218 | T0740 DC T0760 ADDR OF IBM CARD CODE TABLE ZDR32350 0CA4 0471 3219 | T0750 DC CPTBL ADDR OF CONSOLE PTR CODE TB ZDR32360 049C 3220 | T0760 EQU KBTBL ZDR32370 04C6 3221 | T0770 EQU KBTBE ZDR32380 PRNT1 3223 | *************************************************** ZDR32400 3224 | * * ZDR32410 3225 | * STATUS - CHANGE LEVEL 0 * ZDR32420 3226 | * * ZDR32430 3227 | * FUNCTION/OPERATION - PRNT1 CAN PERFORM THE * ZDR32440 3228 | * FOLLOWING FUNCTIONS * ZDR32450 3229 | * 1. TEST * ZDR32460 3230 | * 2. PRINT * ZDR32470 3231 | * 3. CONTROL CARRIAGE * ZDR32480 3232 | * 4. PRINT NUMERICAL * ZDR32490 3233 | * * ZDR32500 3234 | * ENTRY POINTS - * ZDR32510 3235 | * 1. PRNT1 CALL ENTRANCE, LIBF PRNT1 * ZDR32520 3236 | * 2. INT1 INTERRUPT ENTRANCE FROM ILS01 * ZDR32530 3237 | * * ZDR32540 3238 | * INPUT - THE I/O AREA CONTAINS EBCDIC CHARACTERS * ZDR32550 3239 | * PACKED TWO PER WORD * ZDR32560 3240 | * * ZDR32570 3241 | * OUTPUT - PRINTED ON 1132 PRINTER * ZDR32580 3242 | * * ZDR32590 3243 | * EXTERNAL SUBROUTINES - NONE * ZDR32600 3244 | * * ZDR32610 3245 | * EXITS - * ZDR32620 3246 | * NORMAL * ZDR32630 3247 | * 1. CALL PORTION - FC58, BACK TO USER. * ZDR32640 3248 | * 2. INTERRUPT PORTION - OUT, BACK TO ILS01 * ZDR32650 3249 | * ERROR * ZDR32660 3250 | * 1. CALL PORTION - IF PRE-OP ERROR IS DETECT* ZDR32670 3251 | * *ED, SUBROUTINE BRANCHES TO $PRET AND * ZDR32680 3252 | * DISPLAYS 6000 OR 6001 IN ACCUMULATOR. * ZDR32690 3253 | * 2. INTERRUPT PORTION - IF CARRIAGE CHANNEL * ZDR32700 3254 | * 9 OR 12 IS DETECTED, SUBROUTINE PERFORMS* ZDR32710 3255 | * BSI TO USER'S ERROR SUBROUTINE WITH 0003* ZDR32720 3256 | * OR 0004 RESPECTIVELY IN ACCUMULATOR. * ZDR32730 3257 | * * ZDR32740 3258 | * TABLES/WORK AREAS - NONE * ZDR32750 3259 | * * ZDR32760 3260 | * ATTRIBUTES - REUSABLE * ZDR32770 3261 | * * ZDR32780 3262 | * NOTES - EBCDIC CHARACTERS NOT INCLUDED IN 1132 * ZDR32790 3263 | * CHARACTER SET ARE PRINTED AS BLANKS. * ZDR32800 3264 | * * ZDR32810 3265 | *************************************************** ZDR32820 PRNT1 0CA6 3267 | BSS E 0 CREATE EVEN BOUNDARY ZDR32840 0CA6 0000 3268 | PRNT1 DC 0 ENTRY POINT ZDR32850 0CA7 6D00 0D26 3269 | STX L1 P1370+1 CALL ENTRANCE (+0 ZDR32860 0CA9 6580 0CA6 3270 | LDX I1 PRNT1 ADDR OF 1ST PARAM +2 ZDR32870 0CAB 7065 3271 | MDX P1350 TO PROCESS CALL ZDR32880 3272 | * 2-11 ZDR32890 3273 | * 2 INSTRUCTIONS MOVED 2-11 ZDR32900 3274 | * ZDR32910 3275 | *CONSTANTS AND BUFFER AREA ZDR32920 3276 | * ZDR32930 0CAC 0000 3277 | P1020 DC *-* STORAGE FOR WHEEL CHAR ZDR32940 0CAE 3278 | BSS E 0 ZDR32950 0CAE 0000 3279 | P1030 DC *-* SAVE ACC AND EXT ZDR32960 0CAF 0000 3280 | DC *-* * ZDR32970 0CB0 6001 3281 | P1040 DC /6001 ERROR CODE ZDR32980 3282 | * ZDR32990 3283 | *THIS SECTION DOES THE SHIFT TO POSITION SCAN BITS, ZDR33000 3284 | *STORES THEM IN THE SCAN FIELD AND KEEPS TRACK OF ZDR33010 3285 | *THE WORD COUNT. ZDR33020 3286 | * ZDR33030 0CB1 1082 3287 | P1050 SLT 2 POSITION FOR 2 MORE BITS ZDR33040 0CB2 74FC 0CD4 3288 | MDX L P1180,-4 IF A WD IS DONE,BR ZDR33050 0CB4 7033 3289 | MDX P1220 *ELSE RET TO GET 2 BITS ZDR33060 0CB5 108E 3290 | SLT 14 WHEN EXT FULL, MOVE TO ACC ZDR33070 0CB6 7420 0CD4 3291 | MDX L P1180,32 RESET FOR NEXT WD ZDR33080 0CB8 7408 0D0E 3292 | MDX L P1320,8 MODIFY WD CNT ZDR33090 0CBA D400 0020 3293 | P1070 STO L $SCAN STORE 1 WD IN SCAN FIELD ZDR33100 0CBC 7401 0CBB 3294 | MDX L P1070+1,1 INCR SCAN FIELD ADDR ZDR33110 0CBE 7029 3295 | MDX P1220 RET TO SET UP NEXT WD ZDR33120 0CBF 7401 0027 3296 | P1080 MDX L $SCAN+7,1 SCAN COMPLETE INDR SET ZDR33130 3297 | * ACC IS NON-0 AT THIS TIME ZDR33140 0CC1 701B 3298 | MDX P1200 EXIT TO ILS(IF ACC NOT 0) ZDR33150 3299 | * ZDR33160 3300 | *END OF FORMS ERROR EXIT ZDR33170 3301 | * ZDR33180 0CC2 C045 3302 | P1090 LD P1270 GET ERROR CODE ZDR33190 0CC3 7001 3303 | MDX P1100+1 EXIT TO CORE LOC 41 ZDR33200 3304 | * ZDR33210 3305 | *ERROR EXIT TO CORE LOC 41 W/CALL ADDR IN LOC 40 ZDR33220 3306 | * ZDR33230 0CC4 C0EB 3307 | P1100 LD P1040 GET ERROR CODE ZDR33240 0CC5 6500 0000 3308 | LDX L1 *-* GET CALL ADDR AND STORE IN ZDR33250 0CC7 71FE 3309 | MDX 1 -2 CORE LOC 40 ZDR33260 0CC8 6D00 0028 3310 | STX L1 40 ZDR33270 0CCA 6129 3311 | LDX 1 41 SET TO EXIT TO CORE LOC 41 ZDR33280 0CCB 7058 3312 | MDX P1360 ZDR33290 3313 | * ZDR33300 3314 | *CONSTANTS AND BUFFER AREA ZDR33310 3315 | * ZDR33320 0CCC 3316 | BSS E 0 CREATE EVEN BOUNDARY ZDR33330 0CCC 0CAC 3317 | P1110 DC P1020 * ZDR33340 0CCD 3200 3318 | DC /3200 READ EMITTER IOCC WDS ZDR33350 0CCE FF00 3319 | P1120 DC /FF00 SETS CARRY IF NOT CMP ZDR33360 0CCF 0002 3320 | P1130 DC 2 SET 1ST CHAR CMP BIT ZDR33370 0CD0 0016 3321 | P1140 DC 22 CTR IF NUMERIC MODE ZDR33380 0CD1 0001 3322 | P1150 DC 1 SET 2ND CHAR CMP BIT ZDR33390 0CD2 0000 3323 | P1160 DC *-* PTV=NUMERIC,NEG=ALPHA ZDR33400 0CD3 F100 3324 | P1170 DC /F100 1ST NUMERIC CHAR ON WHEEL ZDR33410 0CD4 0020 3325 | P1180 DC 32 16 BITS CTR FOR SCAN ST ZDR33420 3326 | * ZDR33430 3327 | *THIS SECTION SETS UP THE BITS FOR THE SCAN FIELD ZDR33440 3328 | * ZDR33450 3329 | * ZDR33460 0CD5 08F6 3330 | P1190 XIO P1110 WHEEL CHAR TO EMITTER ZDR33470 0CD6 C0FB 3331 | LD P1160 IS NUMERIC INDR ON ZDR33480 0CD7 4C08 0CE0 3332 | BSC L P1210,+ NO,GO START SCAN SETUP ZDR33490 0CD9 C0F6 3333 | LD P1140 YES, SET CTR48 TO 22 ZDR33500 0CDA D034 3334 | STO P1330 ZDR33510 0CDB C0D0 3335 | LD P1020 GET PRESENT WHEEL CHAR ZDR33520 0CDC F0F6 3336 | EOR P1170 CMP W/1ST NUMERIC CHAR ZDR33530 0CDD 4C20 0DD0 3337 | P1200 BSC L P1650,Z DONT CMP,EXIT TO WAIT FOR ZDR33540 3338 | * * INTRPT ON NEXT WHEEL CHAR ZDR33550 0CDF D0F2 3339 | STO P1160 DO CMP,ZERO NUMERIC INDR ZDR33560 0CE0 C0CB 3340 | P1210 LD P1020 FETCH 8-BIT CHAR & ZEROS ZDR33570 0CE1 1808 3341 | SRA 8 MOVE CHAR TO RT SIDE ACC ZDR33580 0CE2 E8C9 3342 | OR P1020 OR CHAR INTO LEFT SIDE ZDR33590 0CE3 D0C8 3343 | STO P1020 2 CHARS NOW AT WHEEL ZDR33600 0CE4 4400 0E1C 3344 | BSI L P1860 CLEAR PRINT MASK (32-39) ZDR33610 0CE6 6680 0D0D 3345 | LDX I2 P1310 NEG WD CNT TO XR2 ZDR33620 0CE8 C600 0000 3346 | P1220 LD L2 *-* GET NEXT WD TO BE O/P ZDR33630 0CEA F0C1 3347 | EOR P1020 CMP W/PRESENT WHEEL CHAR ZDR33640 0CEB 80E2 3348 | A P1120 DID LEFT CHAR CMP ZDR33650 0CEC 4C02 0CEF 3349 | BSC L P1230,C NO,BR ZDR33660 0CEE 88DF 3350 | AD P1130-1 YES,SET 2 BIT IN Q REG ZDR33670 0CEF 1008 3351 | P1230 SLA 8 DID RT CHAR CMP ZDR33680 0CF0 4818 3352 | BSC +- NO,BR ZDR33690 0CF1 88DE 3353 | AD P1150-1 YES,SET 1 BIT IN Q REG ZDR33700 0CF2 7201 3354 | MDX 2 1 DECR WD CNT ZDR33710 0CF3 70BD 3355 | MDX P1050 IF NOT ZERO,GO DO SHIFT ZDR33720 3356 | * ZDR33730 3357 | *WD CNT ZERO, DO FINAL SHIFT AND STORE ZDR33740 3358 | * ZDR33750 0CF4 C012 3359 | LD P1260 RESET CTR THAT TESTS ZDR33760 0CF5 D0DE 3360 | STO P1180 *FOR Q REG FULL ZDR33770 0CF6 8017 3361 | A P1320 ADD MODIFIED WD CNT ZDR33780 0CF7 8016 3362 | A P1320 *TWICE TO SET Q SHIFT ZDR33790 0CF8 D001 3363 | STO P1250+1 *LEFT-JUSTIFIED ZDR33800 0CF9 6600 0000 3364 | P1250 LDX L2 *-* SET UP XR2 FOR SLC ZDR33810 0CFB 1810 3365 | SRA 16 CLEAR ACC BEFORE SHIFT ZDR33820 0CFC 12C0 3366 | SLC 2 0 COUNT XR2 ZDR33830 0CFD D480 0CBB 3367 | STO I P1070+1 STORE FINAL PART OF SCAN ZDR33840 0CFF C00F 3368 | LD P1330 ZDR33850 0D00 90D0 3369 | S P1150 DECR CTR48 ZDR33860 0D01 D00D 3370 | STO P1330 ZDR33870 0D02 C004 3371 | LD P1260 ZDR33880 0D03 D0B7 3372 | STO P1070+1 RESET SCAN FIELD ADDR ZDR33890 0D04 C008 3373 | LD P1310 RESET MODIFIED WD CNT TO ZDR33900 0D05 D008 3374 | STO P1320 *STARTING VALUE ZDR33910 0D06 70B8 3375 | MDX P1080 GO SET SCAN COMPLETE INDR ZDR33920 3376 | * ZDR33930 3377 | *CONSTANTS AND BUFFER AREA ZDR33940 3378 | * ZDR33950 0D07 0020 3379 | P1260 DC 32 Q REG FULL CON ZDR33960 0D08 3380 | BSS E 0 CREATE EVEN BOUNDARY ZDR33970 0D08 6000 3381 | P1270 DC /6000 END OF FORMS ERROR CODE ZDR33980 0D09 3480 3382 | DC /3480 START PRINTER IOCC WD ZDR33990 0D0A 0030 3383 | P1280 DC 48 CON TO SET 48 PR CYCLES ZDR34000 3384 | * OR 16 IDLE CYCLES. ZDR34010 0D0B 000C 3385 | P1290 DC 12 CON TO SET 2 CYCLES ZDR34020 0D0C FFC4 3386 | P1300 DC -@PRWC WD CNT ERROR CHK CON ZDR34030 0D0D 0000 3387 | P1310 DC *-* SOURCE FOR NEG USER WD CNT ZDR34040 0D0E 0000 3388 | P1320 DC *-* WD CNT BUFFER USED BY SCAN ZDR34050 0D0F 0000 3389 | P1330 DC *-* PTR SCAN COUNT BUFFER ZDR34060 3390 | *************************************************** ZDR34070 3391 | * * ZDR34080 3392 | *THIS PORTION SERVICES A CALL ENTRANCE * ZDR34090 3393 | * * ZDR34100 3394 | *************************************************** ZDR34110 0D10 0000 3395 | P1340 DC *-* SAVE CONTROL PARAM ZDR34120 0D11 69B4 3396 | P1350 STX 1 P1100+2 ADDR OF CALL+1 STORED ZDR34130 0D12 6A15 3397 | STX 2 P1370+3 SAVE XR2 ZDR34140 0D13 2815 3398 | STS P1370+4 SAVE STATUS ZDR34150 0D14 D899 3399 | STD P1030 SAVE A AND Q REGS ZDR34160 0D15 0874 3400 | XIO P1520 SENSE PRINTER ZDR34170 0D16 1005 3401 | SLA 5 END OF FORMS TEST ZDR34180 0D17 4C28 0CC2 3402 | BSC L P1090,+Z IF END, TAKE ERROR EXIT ZDR34190 0D19 C480 0CC6 3403 | LD I P1100+2 FETCH 1ST PARAMETER ZDR34200 0D1B 188C 3404 | SRT 12 WHAT IS THE FUNCTION ZDR34210 0D1C 4820 3405 | BSC Z BR IF TEST FUNC ZDR34220 0D1D 700E 3406 | MDX P1390 NOT TEST,GO CHK PR OF CTRL ZDR34230 0D1E 086B 3407 | XIO P1520 CHK FOR PTR OR CARRIAGE ZDR34240 0D1F 1808 3408 | SRA 8 BUSY. ZDR34250 0D20 4818 3409 | BSC +- ZDR34260 0D21 7101 3410 | MDX 1 1 NOT BUSY,EXIT AT CALL+3 ZDR34270 0D22 7101 3411 | MDX 1 1 BUSY, EXIT AT CALL+2 ZDR34280 0D23 C88A 3412 | LDD P1030 RESTORE A AND Q REGS ZDR34290 0D24 6906 3413 | P1360 STX 1 P1380+1 SET UP EXIT ZDR34300 0D25 6500 0000 3414 | P1370 LDX L1 *-* RESTORE XR1 ZDR34310 0D27 6600 0000 3415 | LDX L2 *-* RESTORE XR2 ZDR34320 0D29 2000 3416 | LDS *-* RESTORE STATUS ZDR34330 0D2A 4C00 0000 3417 | P1380 BSC L *-* EXIT TO MAINLINE ZDR34340 3418 | * ZDR34350 3419 | *NOT TEST FUNCTION,CHECK PRINT OR CARRIAGE CONTROL ZDR34360 3420 | * ZDR34370 0D2C 18D4 3421 | P1390 RTE 20 RESTORE CTRL WD TO A REG ZDR34380 0D2D D0E2 3422 | STO P1340 SAVE CTRL WD ZDR34390 0D2E 188C 3423 | SRT 12 GET FUNC DIGIT ZDR34400 0D2F 90A1 3424 | S P1150 IS IT LEGAL ZDR34410 0D30 4C08 0CC4 3425 | BSC L P1100,+ NO,BR ZDR34420 0D32 909C 3426 | S P1130 TEST IF CONTROL ZDR34430 0D33 4818 3427 | BSC +- NOT,SKIP ZDR34440 0D34 702E 3428 | MDX P1460 IS, TO CTRL PROCESSING ZDR34450 0D35 D066 3429 | STO P1580 SAVE TO SET NUMERIC INDR ZDR34460 0D36 10A0 3430 | SLT 32 CLEAR Q REG ZDR34470 3431 | * ZDR34480 3432 | *THIS SECTION SETS UP THE ROUTINE TO PRINT ZDR34490 3433 | * ZDR34500 0D37 0852 3434 | P1400 XIO P1520 ANY RESPONSE,BUSY,OR ERROR ZDR34510 0D38 1808 3435 | SRA 8 BITS ON. ZDR34520 0D39 4C20 0D37 3436 | BSC L P1400,Z YES,SENSE PTR AGAIN ZDR34530 0D3B C060 3437 | LD P1580 IF PREVIOUS LINE NUMERIC ZDR34540 0D3C D095 3438 | STO P1160 THE INDR WAS SET OFF WHEN ZDR34550 3439 | * 1ST NUMERIC CHAR FOUND ZDR34560 0D3D 7101 3440 | MDX 1 1 INCR XR1 TO CALL+2 ADDR ZDR34570 0D3E 690B 3441 | STX 1 P1420+1 ST CALL+2 ADDR ZDR34580 0D3F 7101 3442 | MDX 1 1 ZDR34590 0D40 6D00 0E0E 3443 | STX L1 P1770+2 ST CALL+3 ADDR ZDR34600 0D42 C0CD 3444 | LD P1340 GET CTRL PARAM ZDR34610 0D43 D046 3445 | STO P1520 SAVE ZDR34620 0D44 188C 3446 | SRT 12 GET FUNC DIGIT ZDR34630 0D45 9059 3447 | S P1600 SUB 1 ZDR34640 0D46 1802 3448 | SRA 2 IF ANY BIT REMAINS, PARAM ZDR34650 0D47 4C20 0CC4 3449 | P1410 BSC L P1100,Z WAS OVER 4.TAKE ERROR EXIT ZDR34660 0D49 9480 0000 3450 | P1420 S I *-* SUB WD CNT FROM ZERO ZDR34670 0D4B 4C10 0CC4 3451 | BSC L P1100,- RESULT SHOULD BE NEG ZDR34680 0D4D D0BF 3452 | STO P1310 SAVE MINUS WD CNT ZDR34690 0D4E D0BF 3453 | STO P1320 ZDR34700 0D4F 90BC 3454 | S P1300 CHECK RANGE AND DISPLAY ZDR34710 0D50 4C28 0CC4 3455 | BSC L P1100,+Z *6001 IF ERROR ZDR34720 0D52 C480 0D4A 3456 | LD I P1420+1 LD ADDR OF I/O AREA ZDR34730 0D54 804A 3457 | A P1600 AVOID STORED WD CNT ZDR34740 0D55 90B7 3458 | S P1310 SUB NEG WD CNT (PT TO END) ZDR34750 0D56 D092 3459 | STO P1220+1 SAVE IN SCAN RTN ZDR34760 0D57 C8B2 3460 | LDD P1280 SET CTRS 48, 16, & 2 ZDR34770 0D58 D0B6 3461 | STO P1330 *FOR A TOTAL OF 66 CYCLES ZDR34780 0D59 D82E 3462 | STD P1500 ZDR34790 0D5A 4400 0E1C 3463 | BSI L P1860 CLEAR SCAN FIELD (32-39) ZDR34800 0D5C 7401 0027 3464 | MDX L $SCAN+7,1 SET SCAN COMPLETE INDR ZDR34810 0D5E 08A9 3465 | XIO P1270 START THE PRINTER ZDR34820 0D5F 7401 0032 3466 | P1450 MDX L $IOCT,1 INCR ISS CTR (I/O OP CTR) ZDR34830 0D61 1000 3467 | NOP MAY SKIP ZDR34840 0D62 70BF 3468 | MDX P1360-2 EXIT TO CALLING PROG ZDR34850 3469 | * ZDR34860 3470 | *THIS SECTION DOES THE CARRIAGE CONTROL FUNCTION ZDR34870 3471 | * PROCESSING ZDR34880 3472 | * ZDR34890 0D63 C024 3473 | P1460 LD P1500 WAIT FOR 16 IDLE SCANS ZDR34900 0D64 4830 3474 | BSC Z- ZDR34910 0D65 70FD 3475 | MDX P1460 ZDR34920 0D66 0823 3476 | P1470 XIO P1520 ZDR34930 0D67 180C 3477 | SRA 12 IS THE CARRIAGE BUSY ZDR34940 0D68 4C20 0D66 3478 | BSC L P1470,Z YES,SENSE PTR AGAIN ZDR34950 0D6A C0A0 3479 | LD P1290 NO, SET 6-CTR FOR CHAN CH ZDR34960 0D6B D06C 3480 | STO P1690 ZDR34970 0D6C 1810 3481 | SRA 16 CLEAR ACC ZDR34980 0D6D 1084 3482 | SLT 4 GET 2ND HEX DIGIT FROM Q ZDR34990 0D6E D02C 3483 | STO P1570 NOT ZERO--IMMEDIATE CTRL ZDR35000 3484 | * ZERO--CTRL AFTER PRINT ZDR35010 0D6F 4C20 0D74 3485 | BSC L P1480,Z IS IT ZERO ZDR35020 0D71 1084 3486 | SLT 4 YES,TRY 3RD HEX DIGIT ZDR35030 0D72 4C18 0CC4 3487 | BSC L P1100,+- IS IT ZERO ALSO,ERROR EXIT ZDR35040 0D74 9096 3488 | P1480 S P1290 NO,SUB 12 ZDR35050 0D75 4C30 0D8F 3489 | BSC L P1540,-Z IS THIS A SKIP ZDR35060 0D77 6200 3490 | LDX 2 0 YES ZDR35070 0D78 4C10 0D8C 3491 | BSC L P1530,- IS IT A SKIP TO CHAN 12 ZDR35080 0D7A 801D 3492 | A P1550 NO ZDR35090 0D7B 6201 3493 | LDX 2 1 SET XR2 FOR SHIFT & COUNT ZDR35100 0D7C 4C18 0D8C 3494 | BSC L P1530,+- IS IT CHAN 9 ZDR35110 0D7E 8019 3495 | A P1550 NO, INCR XR2 ZDR35120 0D7F 7201 3496 | MDX 2 1 ZDR35130 0D80 4C18 0D8C 3497 | P1490 BSC L P1530,+- TEST FOR NEXT CHANNEL ZDR35140 0D82 801C 3498 | A P1600 NO, LOOP & TRY FOR 5,4,3 ZDR35150 0D83 7201 3499 | MDX 2 1 *2,1 ZDR35160 0D84 74FF 0DD8 3500 | MDX L P1690,-1 CTR TO LIMIT LOOPS ZDR35170 0D86 70F9 3501 | MDX P1490 RET TO CHK CHAN ZDR35180 0D87 70BF 3502 | MDX P1410 ILLEGAL CALL-TAKE ERROR ZDR35190 3503 | * EXIT.(ACC NEG BY NOW) ZDR35200 3504 | * ZDR35210 3505 | *CONSTANTS AND BUFFER AREA ZDR35220 3506 | * ZDR35230 0D88 3507 | BSS E 0 CREATE EVEN BOUNDARY ZDR35240 0D88 0000 3508 | P1500 DC *-* CTR FOR 16 IDLE SCANS (48) ZDR35250 0D89 0000 3509 | P1510 DC *-* CTR FOR 2 IDLE SCANS (12) ZDR35260 0D8A 0000 3510 | P1520 DC *-* STORAGE FOR CALL+1 PARAM ZDR35270 0D8B 3700 3511 | DC /3700 SENSE THE PRINTER IOCC WD ZDR35280 3512 | * ZDR35290 3513 | *SET UP SKIP MASK,AND EXECUTE SKIP OR EXIT ZDR35300 3514 | * ZDR35310 0D8C C012 3515 | P1530 LD P1600 SET UP BIT FOR SKIP MASK ZDR35320 0D8D 1240 3516 | SLCA 2 0 ZDR35330 0D8E E846 3517 | OR P1670 SET SIGN BIT ON ZDR35340 0D8F D00E 3518 | P1540 STO P1590 PTV=SPACE, NEG= SKIP ZDR35350 0D90 C00A 3519 | LD P1570 SHOULD EXECUTION WAIT ZDR35360 0D91 4C18 0D22 3520 | BSC L P1360-2,+- GO TO EXIT IF YES,ELSE ZDR35370 0D93 C00A 3521 | LD P1590 DETERMINE IF SKIP OR SPACE ZDR35380 0D94 4C10 0D99 3522 | BSC L P1560,- IS IT A SKIP ZDR35390 0D96 0805 3523 | XIO P1580 YES,START CARRIAGE ZDR35400 0D97 70C7 3524 | MDX P1450 GO INCR ISS CTR, RET ZDR35410 0D98 0003 3525 | P1550 DC 3 CON OF 3 ZDR35420 3526 | * ZDR35430 3527 | *SPACE CARRIAGE CONTROL PROCESSING ZDR35440 3528 | * ZDR35450 0D99 083C 3529 | P1560 XIO P1680 START SPACES THAT INTRPT ZDR35460 3530 | * *SERVICE PART WILL FINISH ZDR35470 0D9A 70C4 3531 | MDX P1450 INCR ISS CTR, RET TO USER ZDR35480 3532 | * ZDR35490 3533 | *CONSTANTS AND BUFFER AREA ZDR35500 3534 | * ZDR35510 0D9B 0000 3535 | P1570 DC *-* CTRL BEFORE OR AFTER PR ZDR35520 0D9C 3536 | BSS E 0 CREATE EVEN BOUNDARY ZDR35530 0D9C 0000 3537 | P1580 DC *-* SAVE NUMERIC INDR ZDR35540 0D9D 3404 3538 | DC /3404 START CARRIAGE ZDR35550 0D9E 0000 3539 | P1590 DC *-* SKIP OR SPACE INDR ZDR35560 0D9F 0001 3540 | P1600 DC 1 CON OF 1 ZDR35570 3541 | *************************************************** ZDR35580 3542 | * * ZDR35590 3543 | * THIS SECTION SERVICES THE INTERRUPTS WHICH * ZDR35600 3544 | * OCCUR ON INTERRUPT LEVEL 01, THAT COME FROM * ZDR35610 3545 | * THE 1132 PRINTER. * ZDR35620 3546 | * * ZDR35630 3547 | *************************************************** ZDR35640 0DA0 0000 3548 | P1010 DC *-* INTERRUPT ENTRY POINT 2-11 ZDR35650 0DA1 0876 3549 | XIO P1830-1 SENSE AND RESET ZDR35660 0DA2 D072 3550 | STO P1800 HOLD DSW ZDR35670 0DA3 1001 3551 | SLA 1 IS IT A SKIP REQUEST ZDR35680 0DA4 4C10 0DB3 3552 | BSC L P1630,- NO,BR TO CONT CHK ZDR35690 0DA6 1007 3553 | SLA 7 YES,GET CARRIAGE CHAN NO. ZDR35700 0DA7 1808 3554 | SRA 8 RIGHT JUSTIFY ZDR35710 0DA8 E82C 3555 | OR P1670 SET UP DSW FOR COMPARE ZDR35720 0DA9 F0F4 3556 | EOR P1590 CMP W/COMMAND ZDR35730 0DAA 4820 3557 | BSC Z DO THEY MATCH ZDR35740 0DAB 7013 3558 | MDX P1640 NO,GO CONT CHK ZDR35750 0DAC D06E 3559 | STO P1850 YES,CLEAR PASS ZDR35760 0DAD D0F0 3560 | STO P1590 CLEAR MASK ZDR35770 0DAE 0829 3561 | XIO P1690 STOP CARRIAGE ZDR35780 0DAF 74FF 0032 3562 | P1620 MDX L $IOCT,-1 DECR ISS CTR ZDR35790 0DB1 1000 3563 | NOP MAY SKIP ZDR35800 0DB2 700C 3564 | MDX P1640 CONTINUE ZDR35810 3565 | * ZDR35820 3566 | *THIS SECTION SERVICES CARRIAGE RESPONSE REQUEST ZDR35830 3567 | * ZDR35840 0DB3 1001 3568 | P1630 SLA 1 IS IT A SPACE REQUES ZDR35850 0DB4 4810 3569 | BSC - IS CARR SPACE DONE ZDR35860 0DB5 7009 3570 | MDX P1640 NO ZDR35870 0DB6 C05E 3571 | LD P1800 YES,GET DSW ZDR35880 0DB7 E863 3572 | OR P1850 SAVE INFO IN PASS ZDR35890 0DB8 D062 3573 | STO P1850 ZDR35900 0DB9 C0E4 3574 | LD P1590 ZDR35910 0DBA 90E4 3575 | S P1600 DECR SPACE CNT ZDR35920 0DBB D0E2 3576 | STO P1590 STORE BACK NEW CNT ZDR35930 0DBC 4C08 0DAF 3577 | BSC L P1620,+ DECR ISS CTR+EXIT IF ZERO, ZDR35940 0DBE 0817 3578 | XIO P1680 *ELSE KEEP SPACING ZDR35950 3579 | * ZDR35960 3580 | *CONTINUE CHK IF NOT SKIP OR SPACE REQUEST ZDR35970 3581 | * ZDR35980 0DBF C055 3582 | P1640 LD P1800 PUT DSW IN PASS ZDR35990 0DC0 E85A 3583 | OR P1850 ZDR36000 0DC1 D059 3584 | STO P1850 ZDR36010 0DC2 4C10 0DD0 3585 | BSC L P1650,- IS 11.2 MS PTR INTPRT BIT ZDR36020 0DC4 C055 3586 | LD P1840 YES,CHK IF DOING 47 IDLES ZDR36030 0DC5 4C20 0DD2 3587 | BSC L P1660,Z YES,GO DECR CNT AND EXIT ZDR36040 0DC7 C04D 3588 | LD P1800 NO ZDR36050 0DC8 1004 3589 | SLA 4 DID PRESENT SCAN FINISH ZDR36060 0DC9 4C10 0DDA 3590 | BSC L P1700,- YES,BR ZDR36070 0DCB C04C 3591 | LD P1820 NO, SET UP FOR IDLES ZDR36080 0DCC D04D 3592 | STO P1840 ZDR36090 0DCD 404E 3593 | BSI P1860 ZDR36100 0DCE 7401 0027 3594 | MDX L $SCAN+7,1 SET SCAN COMPLETE INDR ZDR36110 0DD0 3595 | P1650 EQU * 2-11 ZDR36120 0DD0 4C80 0DA0 3596 | BSC I P1010 TO USER VIA ILS SUBR ZDR36130 3597 | * ZDR36140 3598 | *IF INCOMPLETE SCAN OCCURRED, DO 47 IDLES TO GET ZDR36150 3599 | *THE PRINT WHEEL BACK TO TRY SAME CHAR AGAIN. ZDR36160 3600 | * ZDR36170 0DD2 90CC 3601 | P1660 S P1600 DECR CTR46 ZDR36180 0DD3 D046 3602 | STO P1840 ZDR36190 0DD4 70FB 3603 | MDX P1650 EXIT VIA ILS 01. ZDR36200 3604 | * ZDR36210 3605 | *CONSTANTS AND BUFFER AREA ZDR36220 3606 | * ZDR36230 0DD5 8000 3607 | P1670 DC /8000 SIGN BIT ZDR36240 0DD6 3608 | BSS E 0 ZDR36250 0DD6 8080 3609 | P1680 DC /8080 STG FOR CHAN 1 MASK CON ZDR36260 0DD7 3401 3610 | DC /3401 CARRIAGE SPACE IOCC ZDR36270 0DD8 0000 3611 | P1690 DC *-* CTR TO LIMIT LOOPS-CHAN CHK ZDR36280 0DD9 3402 3612 | DC /3402 STOP CARRIAGE IOCC ZDR36290 3613 | * ZDR36300 3614 | *BEGIN PRINT MASK SET UP ZDR36310 3615 | * ZDR36320 0DDA C400 0D0F 3616 | P1700 LD L P1330 IS FORMAL PR FINISHED ZDR36330 0DDC 4C20 0CD5 3617 | BSC L P1190,Z NO,GO READ EMITTER AND SET ZDR36340 3618 | * UP SCAN FIELD FOR NEXT CHAR ZDR36350 0DDE 403D 3619 | BSI P1860 YES,CLEAR SCAN FIELD ZDR36360 0DDF 7401 0027 3620 | MDX L $SCAN+7,1 SET SCAN COMPLETE INDR ZDR36370 0DE1 C0A6 3621 | LD P1500 ARE IDLE CYCLES DONE ZDR36380 0DE2 4C20 0DED 3622 | BSC L P1710,Z NO,GO DECR IDLE CNT ZDR36390 0DE4 D036 3623 | STO P1850 YES,CLEAR PASS ZDR36400 0DE5 74FA 0D89 3624 | MDX L P1510,-6 DECR 2-CTR ZDR36410 0DE7 70E8 3625 | MDX P1650 TO USER IF NOT ZERO YET ZDR36420 0DE8 082D 3626 | XIO P1810 IF ZERO,CUT OFF INTRPTS ZDR36430 0DE9 74FF 0032 3627 | MDX L $IOCT,-1 DECREMENT IOCS COUNTER ZDR36440 0DEB 70E4 3628 | MDX P1650 TO USER ZDR36450 0DEC 70E3 3629 | MDX P1650 TO USER IF SKIP ZDR36460 3630 | * ZDR36470 3631 | *TAKE CARE OF 16 IDLES CNT AFTER PRINT COMPLETE ZDR36480 3632 | * ZDR36490 0DED 74FD 0D88 3633 | P1710 MDX L P1500,-3 DECR IDLE CNT FOR 1 IDLE ZDR36500 0DEF 70E0 3634 | MDX P1650 EXIT IF NOT DONE ZDR36510 0DF0 C0AD 3635 | LD P1590 DONE,GET SPACE/SKIP INDR ZDR36520 0DF1 4C20 0DF9 3636 | BSC L P1730,Z IS POST-PR SPACE/SKIP ASKE ZDR36530 0DF3 C400 0D8A 3637 | LD L P1520 NO,GET THE CONTROL WD ZDR36540 0DF5 100B 3638 | SLA 11 ALL ZERO IF SPACE 1 LINE ZDR36550 0DF6 180F 3639 | SRA 15 ALL ONES IF SUPPRESS SPACE ZDR36560 0DF7 F0A7 3640 | EOR P1600 CHANGE 0 TO 1, -1 TO -2 ZDR36570 0DF8 D0A5 3641 | STO P1590 PTV--SET SPACE.NEG--INHIBI ZDR36580 3642 | * ZDR36590 3643 | *THIS SECTION SETS UP THE SPACE OR SKIP AFTER PRINT ZDR36600 3644 | * ZDR36610 0DF9 D0A1 3645 | P1730 STO P1570 SET INDR OFF (+ OR -) ZDR36620 0DFA C020 3646 | LD P1850 GET CHANNEL INDR ZDR36630 0DFB 4C04 0E0A 3647 | BSC L P1760,E IF ODD,CHAN 12 WAS PASSED ZDR36640 0DFD 1801 3648 | SRA 1 ZDR36650 0DFE 4C04 0E0C 3649 | BSC L P1770,E IF ODD,CHAN 9 WAS PASSED ZDR36660 0E00 C09D 3650 | P1740 LD P1590 IF 9/12 NOT PASSED,START ZDR36670 0E01 4818 3651 | BSC +- AFTER SPACE/SKIP IF PRESENT ZDR36680 0E02 70CD 3652 | MDX P1650 TO USER IF NO SPACE/SKIP ZDR36690 0E03 4C28 0E13 3653 | BSC L P1790,+Z IS A SPACE CALLED FOR ZDR36700 0E05 08D0 3654 | XIO P1680 YES,START THE CARRIAGE ZDR36710 0E06 7401 0032 3655 | P1750 MDX L $IOCT,1 INCR THE ISS CTR ZDR36720 0E08 1000 3656 | NOP MAY SKIP ZDR36730 0E09 70C6 3657 | MDX P1650 EXIT TO USER ZDR36740 3658 | * ZDR36750 0E0A C00B 3659 | P1760 LD P1810 LD ACC W/A CON OF 4 ZDR36760 0E0B 7001 3660 | MDX P1770+1 GO TO USER ERROR RTN ZDR36770 0E0C C08B 3661 | P1770 LD P1550 LD ACC W/A CON OF 3 ZDR36780 0E0D 4480 0000 3662 | BSI I *-* GO TO USER ERROR RTN ZDR36790 0E0F 4C18 0E00 3663 | BSC L P1740,+- TAKE NO ACTION IF CLEARED, ZDR36800 0E11 C0C4 3664 | LD P1680 ELSE SET UP SKIP TO CHAN 1 ZDR36810 0E12 D08B 3665 | STO P1590 ZDR36820 0E13 0888 3666 | P1790 XIO P1580 A SKIP ASKED.START CARRIAGE ZDR36830 0E14 70F1 3667 | MDX P1750 GO INCR ISS CTR,EXIT ZDR36840 3668 | * ZDR36850 3669 | *CONSTANTS AND BUFFER AREA ZDR36860 3670 | * ZDR36870 0E15 0000 3671 | P1800 DC *-* DVC STATUS WD STG ZDR36880 0E16 3672 | BSS E 0 CREATE EVEN BOUNDARY ZDR36890 0E16 0004 3673 | P1810 DC 4 ERROR CODE FOR CHAN 12 PASS ZDR36900 0E17 3440 3674 | DC /3440 STOP PRINTER IOCC ZDR36910 0E18 002E 3675 | P1820 DC 46 CTR CON FOR 47 IDLES ZDR36920 0E19 3701 3676 | P1830 DC /3701 SENSE W/RESET IOCC ZDR36930 0E1A 0000 3677 | P1840 DC *-* CTR FOR IDLES ZDR36940 0E1B 0000 3678 | P1850 DC *-* STG FOR CARRIAGE STATUS ZDR36950 3679 | * ZDR36960 3680 | *THIS SECTION CLEARS THE PRINT SCAN FIELD (32-39) ZDR36970 3681 | * ZDR36980 0E1C 0000 3682 | P1860 DC *-* SAVE RET ADDR ZDR36990 0E1D 10A0 3683 | SLT 32 CLEAR A AND Q REGS ZDR37000 0E1E 62F8 3684 | LDX 2 -8 SET CTR FOR 4 PASSES ZDR37010 0E1F DE00 0028 3685 | P1870 STD L2 $SCAN+8 CLEAR 2 WDS ZDR37020 0E21 7202 3686 | MDX 2 2 DECR XR2 BY 2 ZDR37030 0E22 70FC 3687 | MDX P1870 RET IF NOT ZERO ZDR37040 0E23 4C80 0E1C 3688 | BSC I P1860 RET ZDR37050 PRNT3,LIBRARY SUBR FOR 1403 PRINTER 3690 | *************************************************** ZDR37080 3691 | *STATUS-VERSION 2,MODIFICATION 5 * ZDR37090 3692 | *FUNCTION/OPERATION- THIS IS A LIBRARY SUBROUTINE * ZDR37100 3693 | *FOR THE 1130 DISK MONITOR VERSION 2.THIS SUBR. * ZDR37110 3694 | *SUPPORTS THE 1403 PRINTER. ALL 1403 PRINTER * ZDR37120 3695 | *FUNCTION SUCH AS PRINTING,SPACING AND SKIPPING * ZDR37130 3696 | *INTERRUPT SERVICE SUBROUTINE(ISS) AND IS * ZDR37140 3697 | *ORGANIZED IN TWO SECTIONS-- A CALL PORTION AND AN* ZDR37150 3698 | *INTERRUPT PORTION.IN THE CALL PORTION THE FUNC- * ZDR37160 3699 | *TION IS ANALYZED AND THE REQUIRED OPERATION(S) * ZDR37170 3700 | *INITIATED.THE INTERRUPT PORTION THE THREE 1403 * ZDR37180 3701 | *INTERRUPTS,TRANSFER COMPLETE,PRINT COMPLETE AND * ZDR37190 3702 | *CARRIAGE,ARE SERVICED * ZDR37200 3703 | * * ZDR37210 3704 | *ENTRY POINTS- * ZDR37220 3705 | * *PRNT3,THIS IS THE ENTRY FOR THE CALL * ZDR37230 3706 | * PORTION,THE CALLING SEQUENCE USED BY THE * ZDR37240 3707 | * USER IS THE STANDARD ISS LIBF STATEMENT.FOR* ZDR37250 3708 | * A PRINT FUNCTION THE CALLING SEQUENCE IS- * ZDR37260 3709 | * *LIBF PRNT3 * ZDR37270 3710 | * DC /2000 (CONTROL PARAMETER) * ZDR37280 3711 | * DC /AREA (ADDRESS OF I/O AREA) * ZDR37290 3712 | * DC ERROR (ADDRESS OF ERROR SUBR) * ZDR37300 3713 | * *W3020--THIS IS THE INTERRUPT ENTRANCE FROM * ZDR37310 3714 | * THE SYSTEM ILS SUBROUTINE. * ZDR37320 3715 | * * ZDR37330 3716 | *INPUT-A WORD-COUNT PRECEDING DATA TO BE PRINTED * ZDR37340 3717 | *ARRANGED IN 1403 PRINTER CODE. * ZDR37350 3718 | * * ZDR37360 3719 | *OUTPUT-A PRINTED LINE AND ONE SPACE(PRINT FUNC) * ZDR37370 3720 | * * ZDR37380 3721 | *EXTERNAL REFERENCES-THE FOLLOWING WORDS IN COMMA * ZDR37390 3722 | *ARE REFERENCED-- * ZDR37400 3723 | * $PRET PRE-OPERATIVE ERROR TRAP * ZDR37410 3724 | * $IOCT IOCS COUNTER * ZDR37420 3725 | * $PST4 LEVEL 4 POST-OPERATIVE ERROR TRAP * ZDR37430 3726 | * * ZDR37440 3727 | *EXITS- NORMAL * ZDR37450 3728 | * *CALL PORTION-- W3160 RETURN TO USER PROGRAM* ZDR37460 3729 | * *INTERRUPT PORTION--W3800 RETURN TO ILS * ZDR37470 3730 | * - ERROR * ZDR37480 3731 | * *CALL PORTION--W3420 AND W3440 PRE-OPERATIVE* ZDR37490 3732 | * ERROR EXITS TO $PRET. * ZDR37500 3733 | * *INTERRUPT PORTION--W3780,TO USER ERROR SUBR* ZDR37510 3734 | * * ZDR37520 3735 | *TABLES,WORK AREAS- W3920,A 60-WORD OUTPUT BUFFER * ZDR37530 3736 | *INTO WHICH THE USERS MESSAGE IS TRANSFERRED. * ZDR37540 3737 | *ALL PRINTING IS DONE FROM THIS OUTPUT BUFFER. * ZDR37550 3738 | * * ZDR37560 3739 | *ATTRIBUTES-REUSABLE * ZDR37570 3740 | * * ZDR37580 3741 | *NOTES--SINCE THE 1403 ALWAYS PRINTS A FULL LINE * ZDR37590 3742 | *OF 120 CHARACTERS,THIS SUBROUTINE STORES THE * ZDR37600 3743 | *USERS MESSAGE INTO ITS OWN BUFFER TO THE LIMIT * ZDR37610 3744 | *OF THE USERS WORD-COUNT,THE REMAINDER OF THE * ZDR37620 3745 | *BUFFER IS PADDED WITH 1403 BLANK CHARACTERS. * ZDR37630 3746 | * * ZDR37640 3747 | *************************************************** ZDR37650 0E26 3748 | BSS E 0 CREATE EVEN BOUNDARY ZDR37660 0E26 0000 3749 | PRNT3 DC *-* ENTRY POINT ZDR37670 0E27 6919 3750 | STX 1 W3060+1 SAVE CONTENTS OF XR1 ZDR37680 0E28 6580 0E26 3751 | LDX I1 PRNT3 ZDR37690 0E2A 7003 3752 | MDX W3020 BRANCH TO CALL PROCESSING. ZDR37700 0E2B 0000 3753 | W3010 DC *-* INTERRUPT ENTRANCE. ZDR37710 0E2C 4C00 0ECC 3754 | BSC L W3500 BR. TO INTRPT PROCESSING. ZDR37720 3755 | *************************************************** ZDR37730 3756 | * * ZDR37740 3757 | * PRINT3 CALL PROCESSING. * ZDR37750 3758 | * * ZDR37760 3759 | *************************************************** ZDR37770 0E2E 6A10 3760 | W3020 STX 2 W3050+1 SAVE CONTENTS OF XR2. ZDR37780 0E2F 2812 3761 | STS W3070 SAVE STATUS OF INDICATORS. ZDR37790 0E30 D87D 3762 | STD W3905 SAVE CONTENTS OF ACC/EXT. ZDR37800 3763 | ** 2-4 ZDR37810 3764 | * CHECK PRINTER READY 2-4 ZDR37820 3765 | ** 2-4 ZDR37830 0E31 087E 3766 | XIO W3920 SENSE DSW WITHOUT RESET 2-4 ZDR37840 0E32 4C04 0EA7 3767 | BSC L W3210,E BR IF NOT READY 2-4 ZDR37850 3768 | ** ZDR37860 3769 | * CHECK TO SEE IF FUNCTION IS TEST. ZDR37870 3770 | ** ZDR37880 0E34 C100 3771 | LD 1 0 LOAD CONTROL PARAMETER. ZDR37890 0E35 188C 3772 | SRT 12 EXAMINE FUNCTION CODE. ZDR37900 0E36 4C20 0E4E 3773 | BSC L W3090,Z BR IF FUNCTION IS NOT TEST. ZDR37910 0E38 7400 0EB7 3774 | MDX L W3935,0 SKIP IF ROUTINE IS NOT BUSY ZDR37920 0E3A 71FF 3775 | W3030 MDX 1 -1 ZDR37930 0E3B 7102 3776 | MDX 1 2 ZDR37940 3777 | ** ZDR37950 3778 | * THE FOLLOWING INSTRUCTIONS RESET THE REGISTERS ZDR37960 3779 | * PRIOR TO RETURNING TO THE USERS MAINLINE. ZDR37970 3780 | ** ZDR37980 0E3C C871 3781 | LDD W3905 RESTORE ACCUMULATOR AND EXT ZDR37990 0E3D 6906 3782 | W3040 STX 1 W3080+1 STORE RETURN ADDRESS. ZDR38000 0E3E 6600 0000 3783 | W3050 LDX L2 *-* RESET XR2 TO ORIG CONTENTS. ZDR38010 0E40 6500 0000 3784 | W3060 LDX L1 *-* RESET XR1 TO ORIG CONTENTS. ZDR38020 0E42 2000 3785 | W3070 LDS *-* RESTORE OVERFLOW AND CARRY. ZDR38030 0E43 4C00 0000 3786 | W3080 BSC L *-* RETURN TO USER. ZDR38040 3787 | ** 2-3 ZDR38050 3788 | * CHECK PRINTER READY AND ROUTINE BUSY 2-3 ZDR38060 3789 | ** 2-3 ZDR38070 0E45 0000 3790 | W3085 DC *-* 2-3 ZDR38080 0E46 0869 3791 | W3087 XIO W3920 SENSE THE DSW 2-3 ZDR38090 0E47 4C04 0EA7 3792 | BSC L W3210,E BR IF PRINTER NOT READY 2-3 ZDR38100 0E49 7400 0EB7 3793 | MDX L W3935,0 SKIP IF RTN IS NOT BUSY 2-3 ZDR38110 0E4B 70FA 3794 | MDX W3087 RTN BUSY GO CHECK READY 2-3 ZDR38120 0E4C 4C80 0E45 3795 | BSC I W3085 RETURN 2-3 ZDR38130 3796 | ** ZDR38140 3797 | * CHECK TO SEE IF FUNCTION IS LEGAL. ZDR38150 3798 | ** ZDR38160 0E4E 6210 3799 | W3090 LDX 2 16 ZDR38170 0E4F 1240 3800 | SLCA 2 ZDR38180 0E50 72FF 3801 | MDX 2 -1 SKIP IF FUNCTION CODE IS 1. ZDR38190 0E51 72FF 3802 | MDX 2 -1 SKIP IF FUNCTION CODE LEGAL ZDR38200 0E52 7052 3803 | MDX W3200 BRANCH TO PRE-OP ERROR EXIT ZDR38210 3804 | * CHECK ROUTINE BUSY MOVED2-3 ZDR38220 0E53 1002 3805 | SLA 2 ZDR38230 0E54 40F0 3806 | BSI W3085 CHECK RDY AND RTN BUSY 2-3 ZDR38240 0E55 4802 3807 | BSC C SKIP IF FUNCTION IS PRINT. ZDR38250 0E56 7047 3808 | MDX W3190 BR TO CONTROL PROCESSING. ZDR38260 3809 | ** ZDR38270 3810 | * SET UP AND INITIATE THE PRINT OPERATION. ZDR38280 3811 | ** ZDR38290 0E57 C101 3812 | LD 1 1 LOAD ADDR OF USERS I/O AREA ZDR38300 0E58 D015 3813 | STO W3130+1 ZDR38310 0E59 D00D 3814 | STO W3120+1 ZDR38320 0E5A 18CC 3815 | RTE 12 ISOLATE AND SAVE ZDR38330 0E5B 180C 3816 | W3100 SRA 12 * THIRD DIGIT OF ZDR38340 0E5C D053 3817 | STO W3920 * CONTROL PARAMETER. ZDR38350 0E5D 1801 3818 | SRA 1 SHIFT OUT LOW ORDER BIT. ZDR38360 0E5E 4C20 0EA5 3819 | BSC L W3200,Z BR IF ILLEGAL CHARACTER. ZDR38370 0E60 623C 3820 | LDX 2 60 LOAD XR2 WITH BUFFER WD CNT ZDR38380 0E61 C851 3821 | LDD W3915 FILL ZDR38390 0E62 DE00 0DE6 3822 | W3110 STD L2 W3990-2 * OUTPUT ZDR38400 0E64 72FE 3823 | MDX 2 -2 * BUFFER ZDR38410 0E65 70FC 3824 | MDX W3110 * WITH SPACES. ZDR38420 3825 | ** ZDR38430 3826 | * CHECK USERS WORD COUNT ZDR38440 3827 | ** ZDR38450 0E66 6680 0000 3828 | W3120 LDX I2 *-* LOAD XR2 WITH WORD COUNT. ZDR38460 0E68 7200 3829 | MDX 2 0 SKIP IF WORD COUNT IS ZERO. ZDR38470 0E69 72C4 3830 | MDX 2 -60 SKIP IF WORD COUNT IS LEGAL ZDR38480 0E6A 703A 3831 | MDX W3200 BRANCH TO PRE-OP ERROR EXIT ZDR38490 0E6B 723C 3832 | MDX 2 60 RESTORE XR2 TO WORD COUNT. ZDR38500 0E6C 1000 3833 | NOP IN CASE OF SKIP. ZDR38510 3834 | * * ZDR38520 0E6D C600 0000 3835 | W3130 LD L2 *-* MOVE USERS ZDR38530 0E6F D600 0DE7 3836 | STO L2 W3990-1 * MESSAGE ZDR38540 0E71 72FF 3837 | MDX 2 -1 * TO OUTPUT ZDR38550 0E72 70FA 3838 | MDX W3130 * BUFFER. ZDR38560 3839 | * * ZDR38570 0E73 C102 3840 | LD 1 2 STORE ADDR OF USERS ERR RTN ZDR38580 0E74 D400 0F05 3841 | STO L W3580+1 *IN INTRPT PROCESSING AREA. ZDR38590 0E76 40CE 3842 | BSI W3085 CHK RDY AND RTN BSY 2-4 ZDR38600 0E77 404D 3843 | BSI W3300 BR TO INCR BUSY/IOCT CNT2-3 ZDR38610 0E78 083F 3844 | XIO W3940 INITIATE PRINT OPERATION. ZDR38620 0E79 7102 3845 | MDX 1 2 SET TO EXIT AT LIBF +4 ZDR38630 0E7A C03B 3846 | LD W3930 IS THERE CONTROL AFTER PRNT ZDR38640 0E7B 4C18 0E3A 3847 | W3140 BSC L W3030,+- BR IF NO CONTROL AFTER PRNT ZDR38650 0E7D C038 3848 | LD W3930 THIRD DIGIT TO ACC 2-4 ZDR38660 3849 | ** ZDR38670 3850 | * SET UP THE CARRIAGE CONTROL FUNCTION REQUESTED BY ZDR38680 3851 | * THE USER IN THE CARRIAGE CONTROL IOCC WORD - THEN ZDR38690 3852 | * EXECUTE THE CONTROL FUNCTION. ZDR38700 3853 | ** ZDR38710 0E7E 806D 3854 | W3150 A W3985 SET UP FOR POSSIBLE ZDR38720 0E7F D004 3855 | STO W3160 *CARRIAGE SKIP. ZDR38730 0E80 90DA 3856 | S W3100 ZDR38740 0E81 4C30 0E8B 3857 | BSC L W3170,Z- BR IF CONTROL IS SPACING. ZDR38750 0E83 C065 3858 | LD W3980 SET UP ZDR38760 0E84 1800 3859 | W3160 SRA *-* * IOCC WORD ZDR38770 0E85 D036 3860 | STO W3950 * FOR SKIP. 2-2 ZDR38780 0E86 902D 3861 | S W3925 SET 2-5 ZDR38790 0E87 4818 3862 | BSC +- *SWITCH IF 2-5 ZDR38800 0E88 683B 3863 | STX W3979 *SKIP TO CHANNEL 1 2-5 ZDR38810 0E89 62FE 3864 | LDX 2 -2 SKIP OVER NEXT WORD. ZDR38820 0E8A C033 3865 | LD W3900 SET CARRIAGE CONTROL ZDR38830 0E8B D02A 3866 | W3170 STO W3930 *COUNTER TO ONE. ZDR38840 3867 | * PREPARE RETURN FROM $PRET IF PRINTER NOT READY ZDR38850 0E8C 6907 3868 | W3180 STX 1 W3184+1 SAVE XR1 2-4 ZDR38860 0E8D 6801 3869 | STX W3182+1 SET RETURN ADDR IF 2-4 ZDR38870 0E8E 6500 0000 3870 | W3182 LDX L1 *-* *PRINTER NOT READY 2-4 ZDR38880 0E90 7105 3871 | MDX 1 5 2-5 ZDR38890 0E91 6A04 3872 | STX 2 W3185+1 SAVE XR2 2-5 ZDR38900 0E92 40B2 3873 | BSI W3085 CHECK RDY AND RTN BUSY 2-4 ZDR38910 0E93 6500 0000 3874 | W3184 LDX L1 *-* RESTORE XR1 2-4 ZDR38920 0E95 6600 0000 3875 | W3185 LDX L2 *-* RESTORE XR2 2-5 ZDR38930 3876 | * * ZDR38940 0E97 402D 3877 | BSI W3300 BR TO INCR BUSY/IOCT CNT2-2 ZDR38950 0E98 0E00 0EBC 3878 | XIO L2 W3950 INITIATE THE CONTROL FUNC. ZDR38960 0E9A 74FF 0EB6 3879 | MDX L W3930,-1 SKIP IF NO MORE CONTROL. ZDR38970 0E9C 70EF 3880 | MDX W3180 BRANCH FOR MORE CONTROL. ZDR38980 0E9D 709C 3881 | MDX W3030 BRANCH TO RETURN TO USER ZDR38990 3882 | * * ZDR39000 0E9E 1010 3883 | W3190 SLA 16 CLEAR ACC 2-3 ZDR39010 0E9F 1084 3884 | SLT 4 ZDR39020 0EA0 4C20 0E7E 3885 | BSC L W3150,Z BR IF CONTROL IS IMMEDIATE. ZDR39030 0EA2 1084 3886 | SLT 4 MOVE IN AND SAVE THIRD ZDR39040 0EA3 D012 3887 | STO W3930 *DIGIT OF CONTROL PARAMETER ZDR39050 0EA4 7095 3888 | MDX W3030 BRANCH TO RETURN TO USER. ZDR39060 3889 | ** ZDR39070 3890 | * SET UP FOR PRE-OPERATIVE ERROR EXIT. ZDR39080 3891 | ** ZDR39090 0EA5 C019 3892 | W3200 LD W3955 LOAD BAD CALL ERROR CODE. ZDR39100 0EA6 7001 3893 | MDX *+1 SKIP OVER NEXT INSTRUCTION. ZDR39110 0EA7 C018 3894 | W3210 LD W3960 LOAD NOT READY ERROR CODE. ZDR39120 0EA8 71FE 3895 | MDX 1 -2 PUT ADDRESS OF CALL IN XR1. ZDR39130 0EA9 6D00 0028 3896 | STX L1 $PRET STORE CALL ADDR AT $PRET. ZDR39140 0EAB 6129 3897 | LDX 1 $PRET+1 SET UP EXIT TO $PRET+1. ZDR39150 0EAC 7090 3898 | MDX W3040 BRANCH TO EXIT TO $PRET. ZDR39160 3899 | * * ZDR39170 0EAE 3900 | W3905 BSS E 2 WORDS FOR SAVING ACC/EXT. ZDR39180 0EB0 0000 3901 | W3920 DC *-* SENSE ZDR39190 0EB1 AF00 3902 | DC /AF00 *IOCC. ZDR39200 0EB2 8600 3903 | W3910 DC /8600 POSSIBLE PRINT ERROR BITS. ZDR39210 0EB3 7F7F 3904 | W3915 DC /7F7F SPACE - 1403 CODE. ZDR39220 0EB4 0800 3905 | W3925 DC /0800 SKIP TO CH 1 CONTROL WORD. ZDR39230 0EB5 AF01 3906 | DC /AF01 WRD 2 OF SENSE W/RESET IOCC ZDR39240 0EB6 0000 3907 | W3930 DC *-* AFTER PRINT CONTROL FLAG. ZDR39250 0EB7 0000 3908 | W3935 DC *-* ROUTINE BUSY INDICATOR. ZDR39260 0EB8 0DE8 3909 | W3940 DC W3990 PRINT ZDR39270 0EB9 AD00 3910 | DC /AD00 *IOCC. ZDR39280 0EBA 0EBC 3911 | W3945 DC W3950 CARRIAGE ZDR39290 0EBB A900 3912 | DC /A900 *SKIP IOCC. ZDR39300 0EBC 0000 3913 | W3950 DC *-* CARRIAGE ZDR39310 0EBD AC00 3914 | DC /AC00 *SPACE IOCC. ZDR39320 0EBE 0001 3915 | W3900 DC 1 CONSTANT OF DECIMAL ONE ZDR39330 0EBF 9001 3916 | W3955 DC /9001 BAD CALL ERROR CODE. ZDR39340 0EC0 9000 3917 | W3960 DC /9000 PRINTER NOT RDY ERROR CODE. ZDR39350 0EC1 0000 3918 | W3965 DC *-* CHANNEL 9/12 INDICATOR 2-2 ZDR39360 0EC2 0000 3919 | W3970 DC *-* DSW TO CHECK AN INTRPT 2-3 ZDR39370 0EC3 0000 3920 | W3975 DC *-* DSW SAVED FOR ERR CHECK 2-2 ZDR39380 0EC4 0000 3921 | W3979 DC *-* CHANNEL 1 SWITCH 2-5 ZDR39390 3922 | * 2-2 ZDR39400 3923 | * SUBROUTINE FOR INCREMENTING BUSY AND IOCT CNTR2-2 ZDR39410 3924 | * 2-2 ZDR39420 0EC5 0000 3925 | W3300 DC *-* ENTRY POINT 2-2 ZDR39430 0EC6 7401 0EB7 3926 | MDX L W3935,1 INCREMENT RTN BUSY COUNTER. ZDR39440 0EC8 7401 0032 3927 | MDX L $IOCT,1 INCREMENT SYS I/O COUNTER. ZDR39450 0ECA 4C80 0EC5 3928 | BSC I W3300 RETURN 2-2 ZDR39460 3929 | *************************************************** ZDR39470 3930 | * * ZDR39480 3931 | * PRNT3 INTERRUPT PROCESSING. * ZDR39490 3932 | * * ZDR39500 3933 | *************************************************** ZDR39510 0ECC 08E3 3934 | W3500 XIO W3920 SENSE WITHOUT RESET 2-3 ZDR39520 0ECD E8F5 3935 | OR W3975 COMBINE AND SAVE DSW 2-2 ZDR39530 0ECE D0F4 3936 | STO W3975 *FOR ERR CHECKING 2-2 ZDR39540 0ECF 08E4 3937 | XIO W3925 SENSE WITH RESET 2-3 ZDR39550 0ED0 D0F1 3938 | STO W3970 SAVE CURRENT DSW 2-3 ZDR39560 3939 | * 2-2 ZDR39570 3940 | * TRANSFER COMPLETE INTERRUPT 2-2 ZDR39580 3941 | * 2-2 ZDR39590 0ED1 1001 3942 | SLA 1 CHECK IF TRANS COMP INTRPT. ZDR39600 0ED2 4C10 0EDE 3943 | BSC L W3510,- BR IF NOT TRANS COMP INTRPT ZDR39610 0ED4 6201 3944 | LDX 2 1 2-2 ZDR39620 0ED5 C0EB 3945 | LD W3965 GET CHAN 9/12 INDICATOR 2-2 ZDR39630 0ED6 4C20 0F04 3946 | BSC L W3580,Z *BR IF SENSED IN PREV OP2-2 ZDR39640 0ED8 C0DD 3947 | W3505 LD W3930 SEE IF USER WANTED TO ZDR39650 0ED9 E8D6 3948 | OR W3920 *PRINT WITH SPACE SUPPRESS. ZDR39660 0EDA 4C20 0EDE 3949 | BSC L W3510,Z BR IF SPACE SUPPRESSED 2-2 ZDR39670 0EDC 6203 3950 | LDX 2 3 2-2 ZDR39680 0EDD 702A 3951 | MDX W3590 BRANCH TO SPACE 2-2 ZDR39690 3952 | * 2-2 ZDR39700 3953 | * PRINT COMPLETE INTERRUPT 2-2 ZDR39710 3954 | * 2-2 ZDR39720 0EDE C0E3 3955 | W3510 LD W3970 CHECK IF PR COMP INTRPT 2-3 ZDR39730 0EDF 1002 3956 | SLA 2 ZDR39740 0EE0 4C10 0EED 3957 | BSC L W3550,- BR IF NOT PRINT COMP INTRPT ZDR39750 0EE2 62FF 3958 | LDX 2 -1 2-2 ZDR39760 0EE3 C0DF 3959 | LD W3975 GET THE DSW 2-2 ZDR39770 0EE4 E0CD 3960 | AND W3910 CHECK FOR ANY ERRORS. ZDR39780 0EE5 4C20 0F01 3961 | BSC L W3570,Z BR IF THERE WAS AN ERROR. ZDR39790 3962 | * ZDR39800 0EE7 74FF 0EB7 3963 | W3520 MDX L W3935,-1 DECREMENT RTN BUSY COUNTER. ZDR39810 0EE9 1000 3964 | W3980 NOP IN CASE OF SKIP. ZDR39820 0EEA 74FF 0032 3965 | MDX L $IOCT,-1 DECREMENT SYS I/O COUNTER. ZDR39830 0EEC 1800 3966 | W3985 SRA 0 NOP - IN CASE OF SKIP. ZDR39840 3967 | * * ZDR39850 3968 | * 2-2 ZDR39860 3969 | * CARRAGE COMPLETE INTERRUPT 2-2 ZDR39870 3970 | * 2-2 ZDR39880 0EED C0D4 3971 | W3550 LD W3970 GET CURRENT DSW 2-3 ZDR39890 0EEE 1003 3972 | SLA 3 CHECK IF CARRIAGE INT ZDR39900 0EEF 4C90 0E2B 3973 | BSC I W3010,- BR IF NO CARRIAGE INT 2-2 ZDR39910 0EF1 6203 3974 | LDX 2 3 ZDR39920 0EF2 6ACF 3975 | STX 2 W3970 CLEAR CURRENT DSW 2-3 ZDR39930 0EF3 1009 3976 | SLA 9 CHECK IF CH 9 OR 12 FOUND. ZDR39940 0EF4 4C02 0EF9 3977 | BSC L W3560,C BRANCH IF CHANNEL 9 FOUND. ZDR39950 0EF6 4C10 0EFA 3978 | BSC L W3565,- BR IF CHANNEL 12 NOT FOUND. ZDR39960 0EF8 7201 3979 | MDX 2 1 SET W3965 WITH 3 IF CHAN2-2 ZDR39970 0EF9 6AC7 3980 | W3560 STX 2 W3965 *9, WITH 4 IF CHAN 12 2-2 ZDR39980 0EFA C0C9 3981 | W3565 LD W3979 2-5 ZDR39990 0EFB 4C18 0EE7 3982 | BSC L W3520,+- 2-5 ZDR40000 0EFD 1010 3983 | SLA 16 IF SKIP TO CHANNEL 1 WAS2-5 ZDR40010 0EFE D0C5 3984 | STO W3979 *THE LAST CARRIAGE OP 2-5 ZDR40020 0EFF D0C1 3985 | STO W3965 *THEN RESET CH 1 ,CH12 2-5 ZDR40030 0F00 70E6 3986 | MDX W3520 RETURN ZDR40040 3987 | * 2-2 ZDR40050 3988 | * SET UP ACK WITH ERROR CODE AND BRANCH TO USER2-2 ZDR40060 3989 | * ERROR ROUTINE. 2-2 ZDR40070 3990 | * 2-2 ZDR40080 0F01 F0C1 3991 | W3570 EOR W3975 CLEAR THE ERROR BITS 2-2 ZDR40090 0F02 D0C0 3992 | STO W3975 *AND SAVE THE DSW 2-2 ZDR40100 0F03 C0BA 3993 | LD W3900 GET ERROR CODE 2-2 ZDR40110 0F04 4400 0000 3994 | W3580 BSI L *-* BR TO USERS ERROR ROUTINE. ZDR40120 0F06 4C18 0F17 3995 | BSC L W3600,+- BRANCH IF IGNORE ERROR. ZDR40130 0F08 08A7 3996 | W3590 XIO W3920 SENSE THE PRINTER. ZDR40140 0F09 4C04 0F1B 3997 | BSC L W3610,E BRANCH IF PRINTER NOT READY ZDR40150 0F0B 1802 3998 | SRA 2 CHECK IF CARRIAGE BUSY 2-2 ZDR40160 0F0C 4C04 0F08 3999 | BSC L W3590,E *BR IF YES 2-2 ZDR40170 0F0E C0A5 4000 | LD W3925 LOAD SKIP TO CH 1 CNTRL WRD ZDR40180 0F0F D0AC 4001 | STO W3950 *AND STORE IN CNTRL IOCC. ZDR40190 4002 | * 2-2 ZDR40200 4003 | * EXECUTE A SKIP IF XR2=1, SPACE IF XR2=2, 2-2 ZDR40210 4004 | * PRINT IF XR2=-1 2-2 ZDR40220 4005 | * 2-2 ZDR40230 0F10 40B4 4006 | BSI W3300 BR TO INCT BUSY/IOCT CNT2-3 ZDR40240 0F11 0E00 0EB9 4007 | XIO L2 W3945-1 INITIATE SKIP OR PRINT. ZDR40250 4008 | * ZDR40260 0F13 72FF 4009 | MDX 2 -1 IF A SKIP TO CHAN 1 WAS 2-2 ZDR40270 0F14 70C9 4010 | MDX W3510 *EXEC ABOVE, RESET 2-2 ZDR40280 0F15 6AAB 4011 | STX 2 W3965 *CHAN 9/12 INDICATOR 2-2 ZDR40290 0F16 70C7 4012 | MDX W3510 *TO ZERO 2-2 ZDR40300 4013 | * ZDR40310 0F17 72FF 4014 | W3600 MDX 2 -1 DID USER SUPPRESS SKIP 2-3 ZDR40320 0F18 70C5 4015 | MDX W3510 *BR IF NO 2-3 ZDR40330 0F19 6AA7 4016 | STX 2 W3965 *RESET CH 9/12 SWITCH 2-3 ZDR40340 0F1A 70BD 4017 | MDX W3505 GO TEST IF SPACE AFTER P2-3 ZDR40350 4018 | * ZDR40360 0F1B C0A4 4019 | W3610 LD W3960 LOAD NOT READY ERROR CODE. ZDR40370 0F1C 4400 008D 4020 | BSI L $PST4 BR TO POST-OP NT RDY WAIT. ZDR40380 0F1E 70E9 4021 | MDX W3590 BRANCH TO SENSE PRINTER. ZDR40390 4022 | * * ZDR40400 4023 | * * ZDR40410 0DE8 4024 | W3990 EQU PRNT1+@SCNT+2 OUTPUT BUFFER 2-10 ZDR40420 0F67 4025 | ENDXX EQU @SCNT+1+PRNT3 BUFFER END ADDR 2-10 ZDR40430 INITIALIZATION, COMMON SUBROUTINES 0F68 4027 | BADCS EQU ENDXX+1 ZDR40450 0CA6 4028 | CR990 EQU PRNT1 SOURCE SECTOR BUFFER ZDR40460 0E26 4029 | CR992 EQU PRNT3 OBJECT SECTOR BUFFER ZDR40470 4030 | * ZDR40480 4031 | * INITIALIZATION. THIS CODE IS EXECUTED ONLY ONCE ZDR40490 4032 | * AFTER DCIP IS LOADED INTO CORE. NOTE THAT IT ZDR40500 4033 | * RESIDES IN ONE OF THE DISK BUFFERS AND IS CON- ZDR40510 4034 | * SEQUENTLY OVERLAID DURING DISK OPERATIONS. ZDR40520 4035 | * ZDR40530 0F1F 0000 4036 | BEGIN DC *-* ENTRY POINT ZDR40540 0F20 6500 0FCD 4037 | LDX L1 IX000 SET UP ITV ENTRY FOR LEVEL ZDR40550 0F22 6D00 0009 4038 | STX L1 $LEV1 *1 TO GO TO ILS FOR LEVEL 1 ZDR40560 0F24 6500 00B3 4039 | LDX L1 $I200 SET UP ITV ENTRY FOR LEVEL ZDR40570 0F26 6D00 000A 4040 | STX L1 $LEV2 *2 TO GO TO ECS FOR LEVEL 2 ZDR40580 0F28 6500 00C4 4041 | LDX L1 $I400 SET UP ITV ENTRY FOR LEVEL ZDR40590 0F2A 6D00 000C 4042 | STX L1 $LEV4 *4 TO GO TO ILS FOR LEVEL 4 ZDR40600 0F2C 6500 0091 4043 | LDX L1 $STOP SET UP ITV ENTRY FOR LEVEL ZDR40610 0F2E 6D00 000D 4044 | STX L1 $LEV5 *5 TO GO TO PROG STOP TRAP ZDR40620 0F30 6500 01AE 4045 | LDX L1 INTRQ INITIALIZE ADDR OF INT REQ ZDR40630 0F32 6D00 002C 4046 | STX L1 $IREQ *SUBROUTINE ZDR40640 0F34 1810 4047 | SRA 16 INITIALIZE ZDR40650 0F35 D400 0032 4048 | STO L $IOCT *IOCS COUNTER TO ZERO ZDR40660 4049 | * ZDR40670 4050 | * MOVE TRAPS TO THEIR DISK MONITOR LOCATIONS ZDR40680 4051 | * ZDR40690 4052 | * ZDR40700 0F37 61FB 4053 | LDX 1 -BE940+BE935-1 ZDR40710 0F38 C500 0F8F 4054 | BE050 LD L1 BE935+4 MOVE PREOPERATIVE, ZDR40720 0F3A D500 002C 4055 | STO L1 $PRET+4 *POSTOPERATIVE, AND ZDR40730 0F3C C500 0F93 4056 | LD L1 BE940+4 *PROGRAM STOP KEY ZDR40740 0F3E D500 0085 4057 | STO L1 $PST1+4 *TRAPS TO THE SAME ZDR40750 0F40 C500 0F97 4058 | LD L1 BE945+4 *LOCATIONS THEY OCCUPY ZDR40760 0F42 D500 0091 4059 | STO L1 $PST4+4 *WHEN DISK MONITOR ZDR40770 0F44 C500 0F9B 4060 | LD L1 BE950+4 *SYSTEM IS IN CONTROL ZDR40780 0F46 D500 0095 4061 | STO L1 $STOP+4 ZDR40790 0F48 7101 4062 | MDX 1 1 SKIP AFTER ALL TRAPS ZDR40800 0F49 70EE 4063 | MDX BE050 *MOVED, BRANCH OTHERWISE ZDR40810 4064 | * ZDR40820 4065 | * MOVE ILS02 AND ILS04 TO DISK MONITOR LOCATIONS ZDR40830 4066 | * ZDR40840 0F4A 61CF 4067 | LDX 1 BE955-BE998 ZDR40850 0F4B C500 0FCC 4068 | BE100 LD L1 BE955-BE955+BE998 ZDR40860 0F4D D500 00E4 4069 | STO L1 $I200-BE955+BE998 ZDR40870 0F4F 7101 4070 | MDX 1 1 SKIP AFTER ILS02 AND ILS04 ZDR40880 0F50 70FA 4071 | MDX BE100 *MOVED, BR OTHERWISE ZDR40890 0F51 C400 0FCC 4072 | LD L BE998 ZDR40900 0F53 D400 00D4 4073 | STO L $IBT4 SET UP ADDR OF IBT FOR LEV4 ZDR40910 4074 | * ZDR40920 4075 | * DETERMINE THE FASTEST PRINTER THAT IS PRESENT. ZDR40930 4076 | * (READY IS EQUIVALENT TO PRESENT IN THIS CONTEXT.) ZDR40940 4077 | * INITIALIZE TO DO ANY DUMPING THAT MIGHT BE ZDR40950 4078 | * REQUESTED ON THAT PRINTER. THE AREA ACCUPIED BY ZDR40960 4079 | * THE 1132 SUBROUTINE WILL BE USED AS A DISK BUFFER ZDR40970 4080 | * IF THERE IS NO 1132 AND NO 1403, IF THERE IS ZDR40980 4081 | * NO 1132 AND THERE IS A 1403, OR IF THERE IS BOTH ZDR40990 4082 | * AN 1132 AND A 1403. THE 1403 SUBROUTINE AREA BE- ZDR41000 4083 | * COMES THE DISK BUFFER IF THERE IS AN 1132 AND ZDR41010 4084 | * NO 1403. ZDR41020 4085 | * ZDR41030 0F55 6500 0480 4086 | LDX L1 ENDTB ADDR OF END OF CP CONV TBL ZDR41040 0F57 6D00 02C8 4087 | STX L1 ADDRX ZDR41050 0F59 1810 4088 | SRA 16 INITIALIZE PRINTER SW TO ZDR41060 0F5A D400 02BD 4089 | STO L SW002 *CONSOLE PRINTER SETTING ZDR41070 0F5C 0829 4090 | XIO BE900 SENSE 1403 ZDR41080 0F5D 4C04 0F65 4091 | BSC L BE150,E *AND BRANCH IF NOT READY ZDR41090 0F5F 4400 0E26 4092 | BSI L PRNT3 TRY TO SPACE 1 LINE ON 1403 ZDR41100 0F61 3D00 4093 | DC /3D00 SKIP-A-LINE FUNCTION CODE ZDR41110 0F62 0823 4094 | XIO BE900 SENSE TO DETERMINE IF 1403 ZDR41120 0F63 4C20 0F78 4095 | BSC L BE250,Z *EXISTS. BRANCH IF IT DOES ZDR41130 0F65 0822 4096 | BE150 XIO BE910 SENSE THE 1132 ZDR41140 0F66 1005 4097 | SLA 5 TEST FORMS CHECK AND ZDR41150 0F67 4C28 0F6F 4098 | BSC L BE160,Z+ *BRANCH IF IT IS ON ZDR41160 0F69 4400 0CA6 4099 | BSI L PRNT1 TRY TO SPACE ONE LINE ON ZDR41170 0F6B 3D00 4100 | DC /3D00 *THE 1132 ZDR41180 0F6C 081B 4101 | XIO BE910 SENSE TO DETERMINE IF 1132 ZDR41190 0F6D 4C20 0F72 4102 | BSC L BE200,Z *EXISTS. BRANCH IF IT DOES ZDR41200 0F6F 6700 0CA6 4103 | BE160 LDX L3 PRNT1 ADDR OF DISK BUFFER TO XR3 ZDR41210 0F71 700F 4104 | MDX BE350 OUTPUT TO CP. BR TO CONT. ZDR41220 0F72 7410 02C8 4105 | BE200 MDX L ADDRX,@HEXA ZDR41230 0F74 6700 0E26 4106 | LDX L3 PRNT3 ADDR OF DISK BUFFER TO XR3 ZDR41240 0F76 C00E 4107 | LD BE920 FETCH ADDR OF PRNT1 ENTRY ZDR41250 0F77 7003 4108 | MDX BE300 BR TO PRESET CALLS TO PRNT1 ZDR41260 0F78 C011 4109 | BE250 LD BE925 FETCH ADDR PRNT3 ENTRY ZDR41270 0F79 6700 0CA6 4110 | LDX L3 PRNT1 ADDR OF DISK BUFFER TO XR3 ZDR41280 0F7B D400 02CA 4111 | BE300 STO L CALLP SET APPROPRIATE CALL IN ZDR41290 0F7D 74E0 02C8 4112 | MDX L ADDRX,-2*@HEXA ZDR41300 0F7F 6C00 02BD 4113 | STX L0 SW002 *USE THE 1132 OR 1403 ZDR41310 0F81 6F00 02C9 4114 | BE350 STX L3 BFRAD ZDR41320 0F83 4C80 0F1F 4115 | BSC I BEGIN RETURN ZDR41330 4116 | * ZDR41340 4117 | * CONSTANTS AND WORK AREAS ZDR41350 4118 | * ZDR41360 0F85 0CA6 4119 | BE920 DC PRNT1 ADDR ENTRY POINT TO PRNT1 ZDR41370 0F86 4120 | BSS E 0 CREATE EVEN BOUNDARY ZDR41380 0F86 0000 4121 | BE900 DC *-* 1403 SENSE ZDR41390 0F87 AF01 4122 | DC @I906 *DEVICE IOCC ZDR41400 0F88 0000 4123 | BE910 DC *-* 1132 SENSE ZDR41410 0F89 3701 4124 | DC @I609 *DEVICE IOCC ZDR41420 0F8A 0E26 4125 | BE925 DC PRNT3 ADDR ENTRY POINT TO PRNT3 ZDR41430 4126 | * ZDR41440 4127 | * TRAPS FOR USE OF DCIP. THESE TRAPS ARE IDENTICAL ZDR41450 4128 | * TO AND OCCUPY SAME LOCATIONS AS THEIR DISK ZDR41460 4129 | * MONITOR SYSTEM COUNTERPARTS. ZDR41470 4130 | * ZDR41480 0F8B 0000 4131 | BE935 DC *-* TRAP FOR ZDR41490 0F8C 3000 4132 | WAIT *PREOPERATIVE ZDR41500 0F8D 4C80 0028 4133 | BSC I $PRET *I/O ERRORS ZDR41510 0F8F 0000 4134 | BE940 DC *-* TRAP FOR ZDR41520 0F90 3000 4135 | WAIT *POSTOPERATIVE I/O ZDR41530 0F91 4C80 0081 4136 | BSC I $PST1 *ERRORS ON LEVEL 1 ZDR41540 0F93 0000 4137 | BE945 DC *-* TRAP FOR ZDR41550 0F94 3000 4138 | WAIT *POSTOPERATIVE I/O ZDR41560 0F95 4C80 008D 4139 | BSC I $PST4 *ERRORS ON LEVEL 4 ZDR41570 0F97 0000 4140 | BE950 DC *-* PROGRAM ZDR41580 0F98 3000 4141 | WAIT *STOP KEY ZDR41590 0F99 4CC0 0091 4142 | BOSC I $STOP *TRAP ZDR41600 4143 | * ZDR41610 4144 | * INTERRUPT LEVEL SUBROUTINES FOR LEVELS 2 AND 4. ZDR41620 4145 | * THESE SUBROUTINES ARE IDENTICAL TO AND OCCUPY THE ZDR41630 4146 | * SAME LOCATIONS AS THEIR DISK MONITOR SYSTEM ZDR41640 4147 | * COUNTERPARTS. ZDR41650 4148 | * ZDR41660 0F9B 0000 4149 | BE955 DC *-* ENTRY POINT ZDR41670 0F9C 6906 4150 | STX 1 BE960+1 SAVE XR1 ZDR41680 0F9D 6A07 4151 | STX 2 BE965+1 SAVE XR2 ZDR41690 0F9E 2807 4152 | STS BE970 SAVE STATUS ZDR41700 0F9F D80A 4153 | STD BE975 SAVE ACC, EXT ZDR41710 0FA0 4400 0A34 4154 | BSI L DX030 BR TO SERVICE THE INTERRUPT ZDR41720 0FA2 6500 0000 4155 | BE960 LDX L1 *-* RESTORE XR1 ZDR41730 0FA4 6600 0000 4156 | BE965 LDX L2 *-* RESTORE XR2 ZDR41740 0FA6 2000 4157 | BE970 LDS 0 RESTORE STATUS ZDR41750 0FA7 C802 4158 | LDD BE975 RESTORE ACC,EXT 2-8 ZDR41760 0FA8 4CC0 00B3 4159 | BOSC I $I200 RETURN TO INTERRUPT POINT ZDR41770 0FAA 0000 4160 | BE975 DC *-* CONTENTS OF ACCUMULATOR ZDR41780 0FAB 0000 4161 | DC *-* CONTENTS OF EXTENSION ZDR41790 0FAC 0000 4162 | DC *-* ENTRY POINT ZDR41800 0FAD D818 4163 | STD BE995 SAVE ACC, EXT ZDR41810 0FAE 280E 4164 | STS BE980 SAVE STATUS ZDR41820 0FAF 690F 4165 | STX 1 BE985+1 SAVE XR1 ZDR41830 0FB0 6A10 4166 | STX 2 BE990+1 SAVE XR2 ZDR41840 0FB1 0816 4167 | XIO BE996 SENSE KB/CP DSW ZDR41850 0FB2 1002 4168 | SLA 2 ZDR41860 0FB3 4C10 00D0 4169 | BSC L $I403,- BR UNLESS INT REQ KEY ZDR41870 0FB5 4480 002C 4170 | BSI I $IREQ BR TO INT REQ SUBR ZDR41880 0FB7 FFFE 4171 | DC -2 FOR MONITOR USE ONLY ZDR41890 0FB8 6109 4172 | LDX 1 9 ZDR41900 0FB9 0810 4173 | XIO BE997 SENSE ILSW04 ZDR41910 0FBA 1140 4174 | SLCA 1 0 ZDR41920 0FBB 4580 0000 4175 | BSI I1 *-* BR TO SERVICE INTERRUPT ZDR41930 0FBD 2000 4176 | BE980 LDS 0 RESTORE STATUS ZDR41940 0FBE 6500 0000 4177 | BE985 LDX L1 *-* RESTORE XR1 ZDR41950 0FC0 6600 0000 4178 | BE990 LDX L2 *-* RESTORE XR2 ZDR41960 0FC2 C803 4179 | LDD BE995 RESTORE ACC, EXT ZDR41970 0FC3 4CC0 00C4 4180 | BOSC I $I400 RETURN TO INTERRUPT POINT ZDR41980 0FC5 0000 4181 | DC *-* CURRENT READING OF DISK DSW ZDR41990 0FC6 0000 4182 | BE995 DC *-* CONTENTS OF ACCUMULATOR ZDR42000 0FC7 0000 4183 | DC *-* CONTENTS OF EXTENSION ZDR42010 0FC8 0000 4184 | BE996 DC *-* IOCC FOR SENSING ZDR42020 0FC9 0F00 4185 | DC /0F00 *THE KB/CP DSW 2-9 ZDR42030 0FCA 0000 4186 | BE997 DC *-* IOCC FOR SENSING ZDR42040 0FCB 0300 4187 | DC @I006 *THE ILSW ZDR42050 0FCC 02C6 4188 | BE998 DC IBT04-8 POINTER FOR LEVEL 4 IBT ZDR42060 INTERRUPT LEVEL 1 SUBROUTINE 4190 | * ZDR42080 4191 | *************************************************** ZDR42090 4192 | * ILS FOR INTERRUPT LEVEL 1 ZDR42100 4193 | *************************************************** ZDR42110 4194 | * ZDR42120 0FCD 0000 4195 | IX000 DC *-* ENTRY POINT ZDR42130 0FCE 6906 4196 | STX 1 IX210+1 SAVE XR1 ZDR42140 0FCF 6A07 4197 | STX 2 IX211+1 SAVE XR2 ZDR42150 0FD0 2807 4198 | STS IX212 SAVE STATUS ZDR42160 0FD1 D80A 4199 | STD IX213 SAVE ACC, EXT ZDR42170 0FD2 4400 0DA0 4200 | BSI L P1010 BR TO SERVICE THE INTERRUPT ZDR42180 0FD4 6500 0000 4201 | IX210 LDX L1 *-* RESTORE XR1 ZDR42190 0FD6 6600 0000 4202 | IX211 LDX L2 *-* RESTORE XR2 ZDR42200 0FD8 2000 4203 | IX212 LDS 0 RESTORE STATUS ZDR42210 0FD9 C802 4204 | LDD IX213 RESTORE ACC, EXT ZDR42220 0FDA 4CC0 0FCD 4205 | BOSC I IX000 RETURN TO INTERRUPT POINT ZDR42230 4206 | * ZDR42240 4207 | * CONSTANTS AND WORK AREAS ZDR42250 4208 | * ZDR42260 0FDC 4209 | BSS E 0 CREATE EVEN BOUNDARY ZDR42270 0FDC 0000 4210 | IX213 DC *-* CONTENTS OF ACCUMULATOR ZDR42280 0FDD 0000 4211 | DC *-* CONTENTS OF EXTENSION ZDR42290 PATCH AREA 0FDE 4213 | BSS 4096-* PATCH AREA ZDR42310 1000 4214 | 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 2419 2420 #FPAD 002D 114 1412 #ULET 0050 117 1416 $CH12 0006 198 1712 2437 2438 $DCYL 00A4 210 1712 2437 2438 $DDSW 00DD 215 2608 2737 2854 $I200 00B3 211 4039 4069 4159 $I400 00C4 212 4041 4180 $I403 00D0 216 4169 $I405 00D3 213 214 $IBT4 00D4 214 4073 $IOCT 0032 206 448 3001 3008 3047 3466 3562 3627 3655 3927 3965 4048 $IREQ 002C 205 3051 4046 4170 $LEV1 0009 199 4038 $LEV2 000A 200 4040 $LEV4 000C 201 1368 4042 $LEV5 000D 202 4044 $PRET 0028 204 594 2861 2983 2984 3896 3897 4055 4133 $PST1 0081 207 4057 4136 $PST4 008D 208 3107 4020 4059 4139 $SCAN 0020 203 3293 3296 3464 3594 3620 3685 $STOP 0091 209 4043 4061 4142 $ZEND 01E0 217 1345 1370 1374 1391 1393 1401 'CCNT 0008 137 139 483 1210 1219 1289 1723 1903 2215 2448 'CIBA 0008 173 1349 'CIDN 0004 183 1308 1535 'COPY 0005 180 1320 1533 1624 'CSTR 00D0 178 1345 1401 'D501 5000 150 2714 '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 2761 2787 'HEXA 0010 188 424 2045 2089 4105 4112 'I000 3A00 162 325 2724 'I006 0300 163 2725 4187 'I206 0F01 148 1394 'I208 0900 149 1392 'I515 2701 151 2689 'I516 8F01 152 2691 'I517 9701 153 2693 'I518 9F01 154 2695 'I519 A701 155 2697 'I520 B701 156 2699 'I521 BF01 157 2701 'I522 BF11 158 2703 'I523 BF21 159 2705 'I524 BF31 160 2707 'I525 BF41 161 2709 'I609 3701 164 4124 'I906 AF01 165 4122 'IDAD 0000 169 1342 'IOAR 0001 193 2751 2778 2782 2783 2796 '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 2448 'MXDR 000B 141 517 518 1157 1917 2264 2715 '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 2388 2389 2391 2392 2394 2436 2437 2438 2448 'NDSC 0018 139 143 1363 'NPTN 0003 127 1194 'NRTN 0002 194 2769 'PRWC 003C 179 3386 'PTN1 AAAA 129 1244 'PTN2 5555 130 1245 'PTN3 0000 131 1246 'RIAD 0002 171 1723 2448 '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 2228 2289 'SCNT 0140 136 279 1359 1401 1499 1671 1920 2060 2061 2064 2465 2510 2511 2512 4024 4025 'TCNT 0010 140 2683 'TEST 0032 128 1241 'ULET 0002 172 1350 'WDCT 0000 184 232 353 1594 'WPLN 0010 187 422 703 ADDRX 02C8 721 1932 4087 4105 4112 ANLYZ 08EC 2164 258 BADAD 02C5 718 1224 1451 1465 BADCS 0F68 4027 1119 1125 1132 1176 1178 1315 1471 1472 1481 1485 1883 1899 1901 2197 2209 BADFL 02C4 717 1180 1467 1478 BE050 0F38 4054 4063 BE100 0F4B 4068 4071 BE150 0F65 4096 4091 BE160 0F6F 4103 4098 BE200 0F72 4105 4102 BE250 0F78 4109 4095 BE300 0F7B 4111 4108 BE350 0F81 4114 4104 BE900 0F86 4121 4090 4094 BE910 0F88 4123 4096 4101 BE920 0F85 4119 4107 BE925 0F8A 4125 4109 BE935 0F8B 4131 4053 4054 BE940 0F8F 4134 4053 4056 BE945 0F93 4137 4058 BE950 0F97 4140 4060 BE955 0F9B 4149 4067 4068 4069 BE960 0FA2 4155 4150 BE965 0FA4 4156 4151 BE970 0FA6 4157 4152 BE975 0FAA 4160 4153 4158 BE980 0FBD 4176 4164 BE985 0FBE 4177 4165 BE990 0FC0 4178 4166 BE995 0FC6 4182 4163 4179 BE996 0FC8 4184 4167 BE997 0FCA 4186 4173 BE998 0FCC 4188 4067 4068 4069 4072 BEGIN 0F1F 4036 225 4115 BFRAD 02C9 722 1304 1564 1652 1711 1878 1949 2191 4114 BLANK 02B6 704 292 348 1929 BUFF3 0281 700 1891 1893 1903 1938 1946 1954 1976 CALLP 02CA 723 656 660 1943 4111 CB000 0665 1498 1300 1405 1505 CB030 066A 1502 1500 1504 CM050 0102 226 266 275 453 595 1169 1755 2157 2249 2456 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 2283 2292 2315 2532 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 2361 260 271 CP900 0142 298 291 CPOUT 0135 286 226 293 1995 2277 2309 2524 CPTBL 0471 991 3219 CR060 09AC 2389 2396 CR100 09B9 2401 2404 CR140 09C6 2419 2422 CR180 09D3 2437 2440 CR220 09DD 2450 2455 CR700 09F6 2481 2414 2432 2452 2500 CR800 0A0D 2507 2408 2426 2444 2453 2536 CR820 0A12 2511 2518 CR840 0A2D 2536 2523 CR900 09E8 2460 2509 2516 2522 CR905 09E9 2461 2449 2454 CR910 09EA 2463 2373 2378 2390 2412 2430 2450 2486 2489 2527 CR915 09EB 2464 2382 2393 2413 2431 2451 2495 2498 2529 CR930 09EC 2465 2366 CR980 09ED 2466 2391 2487 CR985 09F0 2467 2394 2496 CR990 0CA6 4028 2367 2377 2389 2401 2419 2437 2485 2511 CR992 0E26 4029 2368 2381 2392 2402 2420 2438 2494 2512 CR994 09F3 2473 2528 2530 2531 DA040 08F1 2174 2177 DA120 0907 2195 2193 2199 DA150 090F 2203 2245 DA155 0919 2215 2239 DA160 091D 2218 2255 DA190 0933 2253 2234 DA600 093F 2273 2229 2298 DA700 095E 2305 2223 2322 2333 DA800 0981 2340 2218 2354 DA900 0937 2259 2169 2244 DA905 0938 2260 2350 DA910 0939 2261 2326 DA920 093A 2262 2227 2280 2312 2351 DA930 093B 2263 2181 2183 DA935 093C 2264 2175 2178 DA940 093D 2265 2204 2238 DA945 093E 2266 2216 2233 DC000 01CA 470 479 1727 1733 2210 2488 2497 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 2328 DUPLC 0670 1511 252 DX000 0A2F 2589 531 553 622 626 1433 1742 2141 2145 2749 2769 2770 DX030 0A34 2595 2676 4154 DX040 0A39 2602 2605 DX050 0A3F 2606 2600 2603 2604 2637 DX055 0A4D 2617 DX060 0A5C 2632 2634 DX065 0A6F 2647 2628 DX080 0A7C 2665 2619 DX090 0A7F 2670 2650 DX120 0A84 2674 2618 2644 2666 2733 2739 DX130 0A86 2676 2658 2673 DX150 0AD2 2731 2609 2613 DX210 0AD7 2737 DX240 0AE1 2747 2591 DX270 0AEE 2758 2755 2858 DX280 0AF0 2759 2760 DX330 0AF6 2766 2840 2848 DX380 0AF7 2767 2747 DX390 0AF9 2768 2748 DX470 0AFF 2775 2762 DX480 0B0D 2784 2781 DX500 0B28 2805 2792 DX520 0B3D 2823 2820 DX530 0B3F 2824 DX535 0B46 2828 2743 DX536 0B4D 2832 2830 DX537 0B52 2835 2832 DX540 0B54 2836 2834 2837 DX550 0B5D 2844 2810 DX600 0B65 2852 2671 2828 2846 2857 2865 DX630 0B66 2853 2862 DX635 0B74 2861 2867 DX640 0B77 2864 2855 DX900 0A8A 2681 2823 2833 DX901 0A88 2680 2754 DX902 0A8E 2684 2740 2742 2777 2799 2801 2829 2831 2835 DX906 0A8C 2682 DX907 0A8D 2683 2645 2826 2844 DX910 0A92 2688 2794 2809 2825 DX911 0A90 2686 2800 DX912 0A91 2687 2686 DX913 0A93 2689 581 587 591 2607 2788 2798 2817 2853 DX915 0AA8 2710 2640 2656 2741 2789 2793 2822 DX925 0AA9 2711 DX935 0AAA 2712 2648 2649 2797 DX945 0AAB 2713 2821 DX955 0AAC 2714 598 2860 DX960 0AAE 2715 583 2610 2647 2672 2731 2779 2790 2838 2847 DX970 0AC4 2716 452 535 557 630 1437 1746 2149 2625 2646 2654 2675 2759 2827 2836 2845 DX980 0ACA 2721 2590 2766 DX990 0ACC 2722 2752 2784 2795 2805 DX992 0ACE 2723 2642 DX994 0AD0 2725 2601 2839 DX995 0AD1 2726 2818 DX996 0AC5 2717 2808 2824 DX997 0AC6 2718 2732 2791 DX998 0AC7 2719 2639 2866 DX999 0AC8 2720 2775 ENDTB 0480 1006 289 4086 ENDXX 0F67 4025 1198 1256 4027 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 2372 HM050 0248 624 621 HM100 024D 628 625 HM120 024E 630 631 HM900 0253 636 619 HOMEX 0240 617 632 1106 1530 1874 2187 2380 2384 IB050 0149 309 306 IB100 014A 310 312 IB900 0158 324 314 IBT04 02CE 732 4188 INFOR 02B9 706 315 317 324 1583 1584 1589 1590 2281 2282 2290 2291 2313 2314 2321 2643 2723 INITL 04C8 1093 250 INITV 04C7 1086 262 INSTR 0144 305 234 318 492 1095 1108 1139 1147 1825 1852 2004 2174 2320 INTRQ 01AE 431 4045 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 4195 4037 4205 IX210 0FD4 4201 4196 IX211 0FD6 4202 4197 IX212 0FD8 4203 4198 IX213 0FDC 4210 4199 4204 KBHXE 04AB 1052 2047 KBTBE 04C6 1079 3221 KBTBL 049C 1037 3220 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 2631 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 2278 MSG21 03F0 891 884 2287 MSG22 03FA 898 891 2310 MSG23 0407 905 898 2319 MSG24 0413 912 905 2525 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 2279 2288 2311 2526 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 3548 3596 4200 P1020 0CAC 3277 3317 3335 3340 3342 3343 3347 P1030 0CAE 3279 3399 3412 P1040 0CB0 3281 3307 P1050 0CB1 3287 3355 P1070 0CBA 3293 3294 3367 3372 P1080 0CBF 3296 3375 P1090 0CC2 3302 3402 P1100 0CC4 3307 3303 3396 3403 3425 3449 3451 3455 3487 P1110 0CCC 3317 3330 P1120 0CCE 3319 3348 P1130 0CCF 3320 3350 3426 P1140 0CD0 3321 3333 P1150 0CD1 3322 3353 3369 3424 P1160 0CD2 3323 3331 3339 3438 P1170 0CD3 3324 3336 P1180 0CD4 3325 3288 3291 3360 P1190 0CD5 3330 3617 P1200 0CDD 3337 3298 P1210 0CE0 3340 3332 P1220 0CE8 3346 3289 3295 3459 P1230 0CEF 3351 3349 P1250 0CF9 3364 3363 P1260 0D07 3379 3359 3371 P1270 0D08 3381 3302 3465 P1280 0D0A 3383 3460 P1290 0D0B 3385 3479 3488 P1300 0D0C 3386 3454 P1310 0D0D 3387 3345 3373 3452 3458 P1320 0D0E 3388 3292 3361 3362 3374 3453 P1330 0D0F 3389 3334 3368 3370 3461 3616 P1340 0D10 3395 3422 3444 P1350 0D11 3396 3271 P1360 0D24 3413 3312 3468 3520 P1370 0D25 3414 3269 3397 3398 P1380 0D2A 3417 3413 P1390 0D2C 3421 3406 P1400 0D37 3434 3436 P1410 0D47 3449 3502 P1420 0D49 3450 3441 3456 P1450 0D5F 3466 3524 3531 P1460 0D63 3473 3428 3475 P1470 0D66 3476 3478 P1480 0D74 3488 3485 P1490 0D80 3497 3501 P1500 0D88 3508 3462 3473 3621 3633 P1510 0D89 3509 3624 P1520 0D8A 3510 3400 3407 3434 3445 3476 3637 P1530 0D8C 3515 3491 3494 3497 P1540 0D8F 3518 3489 P1550 0D98 3525 3492 3495 3661 P1560 0D99 3529 3522 P1570 0D9B 3535 3483 3519 3645 P1580 0D9C 3537 3429 3437 3523 3666 P1590 0D9E 3539 3518 3521 3556 3560 3574 3576 3635 3641 3650 3665 P1600 0D9F 3540 3447 3457 3498 3515 3575 3601 3640 P1620 0DAF 3562 3577 P1630 0DB3 3568 3552 P1640 0DBF 3582 3558 3564 3570 P1650 0DD0 3595 3337 3585 3603 3625 3628 3629 3634 3652 3657 P1660 0DD2 3601 3587 P1670 0DD5 3607 3517 3555 P1680 0DD6 3609 3529 3578 3654 3664 P1690 0DD8 3611 3480 3500 3561 P1700 0DDA 3616 3590 P1710 0DED 3633 3622 P1730 0DF9 3645 3636 P1740 0E00 3650 3663 P1750 0E06 3655 3667 P1760 0E0A 3659 3647 P1770 0E0C 3661 3443 3649 3660 P1790 0E13 3666 3653 P1800 0E15 3671 3550 3571 3582 3588 P1810 0E16 3673 3626 3659 P1820 0E18 3675 3591 P1830 0E19 3676 3549 P1840 0E1A 3677 3586 3592 3602 P1850 0E1B 3678 3559 3572 3573 3583 3584 3623 3646 P1860 0E1C 3682 3344 3463 3593 3619 3688 P1870 0E1F 3685 3687 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 3268 3270 4024 4028 4099 4103 4110 4119 PRNT3 0E26 3749 1198 1256 3751 4025 4029 4092 4106 4125 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 2349 2490 2499 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 2243 2253 2296 2329 2348 2379 2383 2635 2655 SERCH 02C7 720 290 377 1933 SP900 0279 683 674 SP905 027A 684 676 SPACE 0271 673 679 1948 1957 START 0100 225 4214 SW001 02BC 709 1739 1748 2151 2154 2657 SW002 02BD 710 1927 1930 4089 4113 SW003 02BE 711 288 644 1931 1941 SW004 02BF 712 1223 1455 1457 SW005 02C0 713 228 1116 2342 2353 2617 SW006 02C1 714 229 1819 1843 1990 2136 2327 2332 2780 SW007 02C2 715 2222 2344 2665 SW008 02C3 716 248 2365 T0020 0B82 2917 732 3052 T0030 0B85 2930 2957 T0040 0B86 2931 2981 3106 T0050 0B87 2932 2978 T0060 0B88 2933 2959 T0070 0B89 2936 2916 T0080 0B92 2944 3004 3013 T0090 0B94 2946 2985 T0100 0B96 2948 2914 T0110 0B98 2949 2936 T0120 0B9A 2950 2937 T0130 0B9B 2951 2947 T0140 0B9D 2952 2941 2953 T0170 0BA9 2961 2980 T0180 0BBA 2975 2960 3040 T0190 0BBD 2978 2958 2974 T0200 0BBF 2980 2963 T0210 0BC1 2981 2998 T0220 0BC2 2982 2979 T0230 0BC8 2986 2938 2945 T0240 0BCA 2987 449 2942 2952 3000 3007 3046 T0250 0BCB 2988 2961 2996 3094 3097 T0260 0BCC 2989 2970 T0270 0BCD 2990 3029 T0280 0BCE 2994 2976 T0290 0BD6 3000 3217 T0310 0BDC 3005 2977 T0320 0BE7 3029 2918 T0330 0BEF 3036 3034 T0340 0BFB 3045 3081 3169 T0350 0C00 3049 3035 3044 3101 3193 T0360 0C06 3056 3011 3058 3093 3140 T0370 0C07 3057 3003 3148 3192 T0380 0C08 3058 3012 3100 T0390 0C0A 3060 2971 3010 3086 3087 3091 3118 3119 3134 3146 3154 3168 3172 3178 T0400 0C0C 3062 2966 3038 3177 3189 3196 3199 T0410 0C0D 3063 2994 3006 3043 3079 3147 3150 3174 3179 T0420 0C0E 3064 3030 3049 T0430 0C0F 3065 2968 3082 3085 3090 T0440 0C10 3066 2965 2972 2995 3036 3170 3171 3173 3191 T0450 0C13 3069 2967 3182 3185 3190 3194 T0455 0C14 3070 2955 3123 3130 3143 T0456 0C15 3071 3141 T0460 0C16 3079 3042 T0470 0C1A 3082 3080 T0480 0C24 3089 3083 T0490 0C29 3093 3088 3176 3181 3187 3201 T0500 0C2A 3094 3108 3149 T0510 0C34 3106 3096 3099 T0520 0C39 3118 3032 T0525 0C48 3128 3124 T0530 0C4D 3134 3138 T0540 0C4F 3135 3214 T0550 0C55 3139 3136 3216 T0551 0C5E 3146 3155 T0555 0C64 3150 3145 T0560 0C6B 3167 3121 T0570 0C6F 3170 3126 T0580 0C76 3177 3127 T0590 0C7D 3182 3039 T0600 0C80 3184 3195 T0610 0C84 3188 3183 3197 T0630 0C8C 3194 3037 T0640 0C98 3205 3089 3184 3198 T0670 0C99 3206 3180 T0680 0C9A 3207 3167 T0690 0C9B 3208 3200 T0700 0C9C 3209 3175 3186 T0730 0C9D 3213 2999 T0740 0CA3 3218 3213 T0750 0CA4 3219 3215 T0760 049C 3220 3128 3218 T0770 04C6 3221 3128 TABLE 0451 953 937 2089 TC040 015F 336 333 TC080 0160 337 339 TEST 07D1 1858 1860 W3010 0E2B 3753 730 3973 W3020 0E2E 3760 3752 W3030 0E3A 3775 3847 3881 3888 W3040 0E3D 3782 3898 W3050 0E3E 3783 3760 W3060 0E40 3784 3750 W3070 0E42 3785 3761 W3080 0E43 3786 3782 W3085 0E45 3790 3795 3806 3842 3873 W3087 0E46 3791 3794 W3090 0E4E 3799 3773 W3100 0E5B 3816 3856 W3110 0E62 3822 3824 W3120 0E66 3828 3814 W3130 0E6D 3835 3813 3838 W3140 0E7B 3847 W3150 0E7E 3854 3885 W3160 0E84 3859 3855 W3170 0E8B 3866 3857 W3180 0E8C 3868 3880 W3182 0E8E 3870 3869 W3184 0E93 3874 3868 W3185 0E95 3875 3872 W3190 0E9E 3883 3808 W3200 0EA5 3892 3803 3819 3831 W3210 0EA7 3894 3767 3792 W3300 0EC5 3925 3843 3877 3928 4006 W3500 0ECC 3934 3754 W3505 0ED8 3947 4017 W3510 0EDE 3955 3943 3949 4010 4012 4015 W3520 0EE7 3963 3982 3986 W3550 0EED 3971 3957 W3560 0EF9 3980 3977 W3565 0EFA 3981 3978 W3570 0F01 3991 3961 W3580 0F04 3994 3841 3946 W3590 0F08 3996 3951 3999 4021 W3600 0F17 4014 3995 W3610 0F1B 4019 3997 W3900 0EBE 3915 3865 3993 W3905 0EAE 3900 3762 3781 W3910 0EB2 3903 3960 W3915 0EB3 3904 3821 W3920 0EB0 3901 3766 3791 3817 3934 3948 3996 W3925 0EB4 3905 3861 3937 4000 W3930 0EB6 3907 3846 3848 3866 3879 3887 3947 W3935 0EB7 3908 450 460 3774 3793 3926 3963 W3940 0EB8 3909 3844 W3945 0EBA 3911 4007 W3950 0EBC 3913 3860 3878 3911 4001 W3955 0EBF 3916 3892 W3960 0EC0 3917 3894 4019 W3965 0EC1 3918 3945 3980 3985 4011 4016 W3970 0EC2 3919 3938 3955 3971 3975 W3975 0EC3 3920 3935 3936 3959 3991 3992 W3979 0EC4 3921 3863 3981 3984 W3980 0EE9 3964 3858 W3985 0EEC 3966 3854 W3990 0DE8 4024 3822 3836 3909 WR050 01FA 533 530 WR060 01FC 535 536 WR900 0201 542 534 WRIT1 01F2 527 538 1212 1337 1424 1641 1695 1718 1736 2297 WRTY0 0B7D 2913 307 310 334 337 577 646 649 652 1134 1166 1173 1796 1801 1804 1858 2017 2023 2106 2629 2632 2915 XXXXX 02BA 707 1114 1307 1406 YYYYY 0285 701 700