1 /RL02SY.PA OS78V4 RL02 SYS HANDLER 2 /SYS DEVICE ONLY. ADAPTED FROM: 3 /R2SY: RL02 SYSTEM HANDLER 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 /COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 / 23 / 24 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 25 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 26 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY 27 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. 28 / 29 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 30 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 31 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 32 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. 33 / 34 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE 35 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY 36 /DIGITAL. 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 / 46 / 47 /RL01 SYSTEM HANDLER 48 49 VERSION="B&77 50 51 /NOTES: 52 /1. PRE-OMNIBUS COMPUTERS NOT SUPPORTED. 53 54 /EDIT HISTORY: 55 /21-OCT-77 CREATION 56 /DEC 80 ADAPTED FOR RL02 USE 57 58 /CHANGES FOR RL02: 59 60 /1. BAD BLOCK LIST IS 10 LOCATIONS + 0 TERMINATOR 61 /2. DEVICE SIZE IS EQUAL TO RL01 DEV A OR B, BUT DEVICE CODE 62 / FOR INTERNAL USE IS A 37 TO KEEP THINGS CONSTANT. 63 /3. INITIAL TRACK TO FORCE SEEK IS 4000 64 /4. DEVICE IS "R2SY" 65 66 /INSTRUCTIONS THAT GENERATE CONSTANTS 67 68 AC0001=CLA IAC 69 AC0002=CLA CLL CML RTL 70 AC0003=CLA CLL CML IAC RAL /* 71 AC0004=CLA CLL IAC RTL /* 72 AC0006=CLA CLL CML IAC RTL /* 73 AC0100=CLA IAC BSW /* 74 AC2000=CLA CLL CML RTR 75 AC3777=CLA CLL CMA RAR 76 AC4000=CLA CLL CML RAR 77 AC5777=CLA CLL CMA RTR 78 AC6000=CLA CLL CML IAC RTR /* 79 AC7775=CLA CLL CMA RTL 80 AC7776=CLA CLL CMA RAL 81 82 /* USE ONLY ON VT-78 AND PDP-8E,F,M,A 83 84 /ID CODE AT START OF BAD BLOCK LIST (BBL) 85 ID=123 86 /RL01 DEFINITIONS 87 88 RLIOT=6600 89 RLDC=RLIOT 0 /CLEAR DEVICE 90 RLSD=RLIOT 1 /SKIP IF DONE 91 RLMA=RLIOT 2 /LOAD MEM ADDR 92 RLCA=RLIOT 3 /LOAD REGISTER "A" 93 RLCB=RLIOT 4 /LOAD REG "B" AND EXECUTE 94 RLSA=RLIOT 5 /LOAD SECTOR ADDR 95 /RLIOT 6 UNUSED 96 RLWC=RLIOT 7 /LOAD WORD COUNT 97 RRER=RLIOT 10 /READ ERROR REG 98 RRWC=RLIOT 11 /READ WORD COUNT 99 RRCA=RLIOT 12 /READ REG "A" 100 RRCB=RLIOT 13 /READ REG "B" 101 RRSA=RLIOT 14 /READ SECTOR ADDR 102 RRSI=RLIOT 15 /READ SILO BYTE 103 /RLIOT 16 UNUSED 104 RLSE=RLIOT 17 /SKIP IF ERROR 105 /RLCB FUNCTION BITS: 106 RLMT=0 /MAINTENANCE MODE 107 RLRE=1 /RESET DRIVE ERRORS 108 RLST=2 /READ STATUS REGS INTO SILO 109 RLSK=3 /SEEK 110 RLRH=4 /READ HEADER 111 RLWR=5 /WRITE 112 RLRD=6 /READ 113 RLRN=7 /READ WITH NO HEADER CHECK 114 /BIT DEFINITIONS IN REGISTERS: 115 BYTE=1000 /BYTE TRANSFER MODE 116 /HEADER BLOCK FOR USE BY "BUILD" 117 118 *0 119 000000 7777 -1 //V4 OS78 IS SYSTEM ONLY 120 121 /FORMAT OF ENTRIES IN HEADER BLOCK: 122 /WORD DESCRIPTION 123 /1 GROUP NAME (4 CHAR) 124 /3 DEVICE NAME (4 CHAR) 125 /5 DCB WORD FOR AN RL (TYPE 37) DIRECTORY DEVICE, 126 / NO MULTIPLE PLATTERS 127 /6 2-PAGE/SYS/CORESIDENT INDICATOR, OFFSET 128 /7 0 (UNUSED WORD) 129 /10 NUMBER OF BLOCKS IN DEVICE 130 131 000001 2262 DEVICE R2SY;DEVICE SYS;4370;SYS&177+6000;0;7761 000002 2331 000003 2331 000004 2300 000005 4370 000006 6007 000007 0000 000010 7761 132 /DEVICE R2SY;DEVICE R20A;4370;SYS&177+5000;0;7761 133 /RL01 SECONDARY BOOTSTRAP 134 135 /SYSTEM MAP: 136 /BLOCK CYL. SURF. SECTOR CONTENTS 137 /0 0 0 20 SECONDARY BOOTSTRAP 138 /0 0 0 22 FIELD 0 RESIDENT 139 /66 1 1 1 FIELD 1 RESIDENT 140 /66 1 1 3 FIELD 2 RESIDENT 141 142 /RESIDENT MONITOR CODE OCCUPIES LAST PAGE OF FIELD 143 /FIELD 0 PAGE IS MONITOR CODE AND SYSTEM HANDLER 144 /FIELD 1 PAGE IS MONITOR TABLES 145 /FIELD 2 PAGE IS SYSTEM HANDLER 146 147 000011 7702 BOOTA-BOOTB /-LENGTH FOR "BUILD" 148 149 RELOC 0 /WILL RUN AT 00000 150 151 BOOTA, /START OF BOOTSTRAP CODE 152 153 /DATA 154 000000* 0016 C16, 16 155 000001* 0026 C26, 26 156 000002* 0300 C300, 300 157 000003* 2001 C2001, 2001 158 000004* 6001 C6001, 6001 159 000005* 7600 C7600, 7600 160 000006* 7605 C7605, 7605 161 000007* 2200 SECT, 2200 /INITIAL BLOCK 0 VALUE 162 000010* 0000 SURCYL, 0 /INITIAL BLOCK 0 VALUE 163 164 000011* 0000 ZBLOCK 31-2-. /LOCATE "IOSUB" (SEE BELOW) 000012* 0000 000013* 0000 000014* 0000 000015* 0000 000016* 0000 000017* 0000 000020* 0000 000021* 0000 000022* 0000 000023* 0000 000024* 0000 000025* 0000 000026* 0000 165 166 FUNC, /TEMPORARY STORAGE FOR RL01 167 /FUNCTION WORD 168 000027* 0036 IOSUB, BOOT /SUBROUTINE TO DO I/O; MATCHES 169 /SIMILAR SUBR IN PRIMARY BOOTSTRAP 170 /INITIAL VALUE WILL START SEC- 171 /ONDARY BOOTSTRAP WHEN IT HAS BEEN 172 /COMPLETELY READ IN. 173 000030* 6604 RLCB /EXECUTE RL01 FUNCTION 174 000031* 6601 RLSD /WAIT UNTIL DONE. NOTE: THIS WORD 175 /AND THE NEXT ONE MUST BE IN THE 176 /SAME LOCATIONS AS THEIR COUNTER- 177 /PARTS IN THE PRIMARY BOOTSTRAP. 178 000032* 5031 JMP .-1 179 000033* 6617 RLSE 180 000034* 5427 JMP I IOSUB /NO ERRORS: RETURN 181 000035* 5035 JMP . /ERROR OCCURRED: LOOP IN PLACE AS 182 /A CLEAR INDICATION THAT BOOTSTRAP 183 /OPERATION FAILED. 184 185 /START OF SECONDARY BOOTSTRAP OPERATIONS 186 000036* 7327 BOOT, AC0006 /AC=READ FUNCTION 187 000037* 4061 JMS READ /READ FIELD 0 RESIDENT 188 000040* 6600 RLDC /CLEAR CONTROLLER REGISTERS IN 189 /PREPARATION FOR SEEK 190 000041* 1004 TAD C6001 /DIFFERENCE WORD FOR CYL 1 SURF 1 191 000042* 6603 RLCA /LOAD "A" 192 000043* 7325 AC0003 /AC=SEEK FUNCTION 193 000044* 4027 JMS IOSUB /SEEK 194 000045* 7203 AC0100 /AC=SECTOR 1 195 000046* 3007 DCA SECT 196 000047* 1003 TAD C2001 /AC=CYL 1 SURF 1 197 000050* 3010 DCA SURCYL 198 000051* 1000 TAD C16 /AC=READ FUNCTION 199 000052* 4061 JMS READ /READ FIELD 1 RESIDENT 200 000053* 1002 TAD C300 /AC=SECTOR 3 201 000054* 3007 DCA SECT 202 000055* 1001 TAD C26 /AC=READ FUNCTION 203 000056* 4061 JMS READ /READ FIELD 2 RESIDENT 204 000057* 6201 CDF 00 /JUST IN CASE 205 000060* 5406 JMP I C7605 /START KEYBOARD MONITOR 206 207 /SUBROUTINE TO READ ONE SECTOR INTO ONE PAGE 208 000061* 0000 READ, 0 209 000062* 3027 DCA FUNC /SAVE FUNCTION WORD 210 000063* 1007 TAD SECT 211 000064* 6605 RLSA /LOAD SECTOR ADDRESS 212 000065* 1005 TAD C7600 213 000066* 6607 RLWC /LOAD WORD COUNT 214 000067* 1010 TAD SURCYL 215 000070* 6603 RLCA /LOAD REGISTER "A" 216 000071* 1005 TAD C7600 217 000072* 6602 RLMA /LOAD MA (ALL READS ARE INTO 218 /LAST PAGE OF FIELDS) 219 000073* 1027 TAD FUNC /RETRIEVE FUNCTION WORD 220 000074* 4027 JMS IOSUB /DO THE READ 221 000075* 5461 JMP I READ /NO ERROR: RETURN 222 223 BOOTB, /END OF BOOTSTRAP CODE 224 225 RELOC 226 /RL01 SYSTEM HANDLER CODE 227 228 *200 229 RELOC 7600 230 231 007600* 0000 ZBLOCK 7 /REQUIRED BY BUILD 007601* 0000 007602* 0000 007603* 0000 007604* 0000 007605* 0000 007606* 0000 232 233 /ENTRY POINT FOR SYS 234 007607* 0002 SYS, VERSION 235 007610* 7200 CLA 236 007611* 5230 SWITCH, JMP START /CHANGED TO "JMP SET" 237 /BY ONCE-ONLY CODE AT "START" 238 007612* 0003 3 /THIS IS A FLAG TO OS/8 THAT 239 /THIS IS A 2-PAGE HANDLER. 240 241 /----- BAD BLOCK LIST (BBL) STARTS HERE 242 / AND CONTINUES FOR 11 OCTAL LOCATIONS 243 244 BBL, 245 246 /ONCE-ONLY DATA 247 007613* 5251 JMPSET, JMP SET 248 007614* 7770 COUNT, -10 249 007615* 7763 ADDR, BARG 250 007616* 7744 ABRTN, BRTN 251 007617* 6203 ACDIF, CIF CDF 00 252 253 /ONCE-ONLY PARAMETERS FOR 2ND PAGE TO READ IN 254 /THE BAD BLOCK LIST (BBL) FOR DEVICE RL0A 255 007620* 7725 LIST, ARTN /BARG: RETURN TO SELF 256 007621* 1400 1400 /SECTOR: SECTOR 14 257 007622* 0000 0 /TRACK: 0 258 007623* 7613 BBL /MA: MA 259 007624* 0200 200 /PAGES: 1 PAGE COUNT 260 007625* 0006 RLRD /FNC: READ FUNCTION 261 007626* 7767 -11 /WC: SET TO BAD BLOCK SIZE INITIALLY 262 007627* 4000 4000 /CURTRK: FORCE HEADER READ 263 /ONCE-ONLY CODE TO READ IN BAD BLOCK LIST (BBL) 264 265 007630* 6214 START, RDF /ONCE-ONLY CODE. DESTROYED WHEN 266 /BBL IS READ IN ON TOP OF IT. 267 /FIRST, SAVE CALLING FIELD OVER 268 /THE READ-IN OF THE BBL. 269 007631* 1250 TAD BACK /(INITIALLY CONTAINS A CDF) 270 007632* 3250 DCA BACK 271 007633* 1213 TAD JMPSET /NEXT, RESET "SWITCH" TO SKIP 272 /AROUND ONCE-ONLY CODE FROM 273 /NOW ON. 274 007634* 3211 DCA SWITCH 275 007635* 6221 CDF 20 276 007636* 1220 LOOP, TAD LIST /RESET ONCE-ONLY DATA IN 2ND PAGE 277 007637* 3615 DCA I ADDR /(THIS IS REQUIRED BECAUSE "BUILD" 278 007640* 2236 ISZ LOOP /DOESN'T ALLOW ONCE-ONLY CODE IN 279 007641* 2215 ISZ ADDR /2ND PAGE OF 2-PAGE SYSTEM HANDLERS) 280 IFNZRO .-7642 281 007642* 6221 CDF 20 /******** MUST BE AT LOCATION 7642 282 /******** FOR FRTS.SV! 283 007643* 2214 ISZ COUNT 284 007644* 5236 JMP LOOP 285 007645* 1217 TAD ACDIF /ANOTHER ONCE-ONLY RESET 286 007646* 3616 DCA I ABRTN 287 007647* 4322 JMS GO /READ IN BBL 288 007650* 6201 BACK, CDF /RESTORE CALLING FIELD 289 290 /----- ONCE-ONLY CODE ENDS HERE 291 292 /FALL THROUGH TO SET UP AND DO THE TRANSFER 293 /SET UP AND DO THE TRANSFER 294 007651* 1332 SET, TAD BASE /INITIALIZE BAD BLOCK 295 /MAPPING 296 007652* 3255 DCA MAP 297 007653* 1207 TAD SYS /ADDR OF ARG LIST 298 007654* 4322 JMS GO /CALL 2ND PAGE SETUP SUBROUTINE 299 /DATA FIELD IS 2 ON RETURN 300 007655* 1000 MAP, TAD /MAP AROUND BAD BLOCKS, IF 301 /ANY. LOOK AT NEXT BAD BLOCK. 302 007656* 7450 SNA /IF 0, TERMINATOR 303 007657* 5271 JMP MAPPED 304 007660* 7161 STL CIA /IF NOT, 13-BIT NEGATE 305 007661* 1731 TAD I ABLOCK /SUBTRACT FROM CURRENT BLOCK 306 007662* 7630 SZL CLA /SKIP IF BLOCK IS GREATER THAN 307 /OR EQUAL TO BAD BLOCK 308 007663* 5271 JMP MAPPED /ELSE NO MAPPING TO DO 309 007664* 2255 ISZ MAP 310 007665* 2731 NEXT, ISZ I ABLOCK /INCREMENT CURRENT BLOCK, 311 /EITHER DURING TRANSFER OR 312 /TO MAP AROUND BAD BLOCK 313 007666* 5255 JMP MAP /CONTINUE MAPPING UNTIL DONE 314 007667* 6222 CIF 20 /IF REQUESTED BLOCK EVER OVERFLOWS TO 0, 315 007670* 5341 JMP ERROR /TAKE ERROR RETURN. 316 317 007671* 1731 MAPPED, TAD I ABLOCK /CALCULATE TRACK AND SECTOR 318 /FROM BLOCK 319 007672* 7012 RTR 320 007673* 7012 RTR 321 007674* 0337 AND A377 322 007675* 3730 DCA I ATRACK 323 007676* 1731 TAD I ABLOCK 324 007677* 0334 AND A17 325 007700* 7106 CLL RTL 326 007701* 1340 TAD A7751 327 007702* 7510 SPA 328 007703* 1335 TAD A47 329 007704* 7002 BSW 330 007705* 3727 DCA I ASECT 331 007706* 4322 JMS GO /TRANSFER 1ST PAGE OF BLOCK 332 007707* 1336 TAD A200 /INCREMENT MA AND SECTOR 333 007710* 1733 TAD I AMA 334 007711* 3733 DCA I AMA 335 007712* 1336 TAD A200 336 007713* 1727 TAD I ASECT 337 007714* 3727 DCA I ASECT 338 007715* 4322 JMS GO /TRANSFER 2ND PAGE OF BLOCK 339 007716* 1336 TAD A200 /INCREMENT MA 340 007717* 1733 TAD I AMA 341 007720* 3733 DCA I AMA 342 007721* 5265 JMP NEXT /CONTINUE WITH NEXT BLOCK, 343 /IF ANY 344 /SUBROUTINE TO CALL 2ND PAGE SUBR TO DO TRANSFER 345 007722* 0000 GO, 0 346 007723* 6222 CIF 20 347 007724* 4200 JMS MAIN 348 ARTN, /ON BBL READ, RETURN HERE 349 /IF IO ERROR. 350 /(ERROR WILL BE DETECTED 351 /DURING 2ND PAGE VALIDITY 352 /CHECK.) 353 007725* 6221 CDF 20 /DATA FIELD=2ND PAGE 354 007726* 5722 JMP I GO 355 /DATA 356 007727* 7764 ASECT, SECTOR 357 007730* 7765 ATRACK, TRACK 358 007731* 7760 ABLOCK, BLOCK 359 007732* 1214 BASE, TAD BBL+1 /SKIP ID CODE WORD 360 007733* 7766 AMA, MA 361 007734* 0017 A17, 17 362 007735* 0047 A47, 47 363 007736* 0200 A200, 200 364 007737* 0377 A377, 377 365 007740* 7751 A7751, 7751 366 367 007741* 0000 ZBLOCK 7744-. /UNUSED 007742* 0000 007743* 0000 368 /SECOND PAGE 369 370 RELOC 371 *400 372 RELOC 7600 373 374 /SUBROUTINE TO SETUP OR TRANSFER 375 007600* 0000 MAIN, 0 376 007601* 7450 SNA /AC TELLS WHICH 377 007602* 5243 JMP TRANS /NON-ZERO: TRANSFER 378 007603* 3363 SETUP, DCA BARG /SAVE ADDRESS OF ARGUMENTS 379 007604* 7330 AC4000 /SET FOR INITIAL HEADER READ 380 007605* 3372 DCA CURTRK /(2000 IS AN ILLEGAL TRACK) 381 007606* 1352 TAD B7600 /SET FOR FULL PAGE TRANSFERS 382 007607* 3371 DCA WC 383 007610* 1763 TAD I BARG /GET HANDLER FUNCTION WORD 384 007611* 0351 AND B4070 /CONVERT TO RL01 FUNCTION 385 007612* 7510 SPA 386 007613* 1350 TAD B3777 387 007614* 1354 TAD BRLRD 388 007615* 3370 DCA FNC 389 007616* 1763 TAD I BARG 390 007617* 7004 RAL /CONVERT TO PAGE COUNT 391 007620* 0352 AND B7600 392 007621* 3367 DCA PAGES 393 007622* 2363 ISZ BARG 394 007623* 1763 TAD I BARG /GET MA 395 007624* 3366 DCA MA 396 007625* 2363 ISZ BARG 397 007626* 1763 TAD I BARG /GET BLOCK 398 007627* 3360 DCA BLOCK 399 007630* 2363 ISZ BARG 400 007631* 6214 RDF /SAVE CALLING FIELD 401 007632* 1241 TAD BCDIF /FOR RETURN FROM HANDLER 402 007633* 3344 DCA BRTN 403 007634* 6201 CDF 00 /CHECK BBL FOR VALIDITY - 404 007635* 1756 TAD I BBBL /A VALID BBL HAS AN ID 405 007636* 1355 TAD CHECK /CODE IN ITS FIRST LOCATION 406 007637* 7640 SZA CLA 407 007640* 5341 JMP ERROR /INVALID BBL: TAKE ERROR 408 /RETURN FROM HANDLER 409 GOBACK, /RETURN TO 1ST PAGE 410 007641* 6203 BCDIF, CIF CDF 00 411 007642* 5600 JMP I MAIN 412 /TRANSFER (READ OR WRITE) 413 007643* 7346 TRANS, AC7775 /SET FOR 3 TRIES 414 007644* 3357 DCA ERRCNT 415 007645* 1365 TAD TRACK /CALCULATE CYLINDER AND 416 /SURFACE FROM TRACK 417 007646* 7110 CLL RAR 418 007647* 3362 DCA CYL 419 007650* 7012 RTR 420 007651* 3361 DCA SURF 421 007652* 4301 JMS TRKCMP /COMPARE TRACK WITH LAST 422 /ONE TRANSFERRED; IF THE 423 /SAME, DO TRANSFER. 424 007653* 6600 RETRY, RLDC /IF DIFFERENT, OR IF RE- 425 /TRYING, SEEK TO TRACK; 426 /CLEAR CONTROLLER REGISTERS 427 /FOR SEEK 428 007654* 7001 SEEK, IAC /AC=1 FOR RESETTING DRIVE 429 /REGISTERS (ERRORS), AC=3 430 /FOR DOING SEEK 431 007655* 4331 JMS IO /DO A RESET OR A SEEK 432 007656* 1353 TAD HEADER /AC=READ HEADER FUNCTION 433 007657* 4331 JMS IO /READ NEXT HEADER 434 007660* 6615 RRSI /GET HEADER BYTE #1 435 007661* 7002 BSW /CALCULATE TRACK 436 007662* 0346 AND B3 437 007663* 3372 DCA CURTRK 438 007664* 6615 RRSI /GET HEADER BYTE #2 439 007665* 0347 AND B377 440 007666* 7106 CLL RTL 441 007667* 1372 TAD CURTRK 442 007670* 3372 DCA CURTRK 443 007671* 4301 JMS TRKCMP /COMPARE CURRENT AND REQUESTED 444 /TRACK; IF SAME, DO TRANSFER 445 007672* 7510 SPA /IF DIFFERENT, SEEK: CALCULATE 446 007673* 7141 CLL CIA /DIFFERENCE WORD 447 007674* 7010 RAR 448 007675* 1361 TAD SURF 449 007676* 6603 RLCA /LOAD REGISTER "A" 450 007677* 7326 AC0002 /PREPARE FOR SEEK 451 007700* 5254 JMP SEEK /LOOP BACK TO ENSURE THAT TRACK 452 /REACHED IS REALLY THE DESIRED 453 /TRACK, IN CASE OF RL02 SEEK 454 /UNRELIABILITY. 455 /SUBROUTINE TO COMPARE CURRENT TRACK WITH REQUESTED 456 /TRACK AND DO TRANSFER IF THE SAME 457 007701* 0000 TRKCMP, 0 458 007702* 1372 TAD CURTRK 459 007703* 7041 CIA 460 007704* 1365 TAD TRACK 461 007705* 7120 STL /SET DIRECTION BIT IN 462 /DIFFERENCE WORD IF DIFF- 463 /ERENCE IS POSITIVE. 464 007706* 7440 SZA /SAME? 465 007707* 5701 JMP I TRKCMP /NO 466 007710* 1364 TAD SECTOR /YES; LOAD DRIVE REGISTERS 467 007711* 6605 RLSA 468 007712* 1371 TAD WC 469 007713* 6607 RLWC 470 007714* 1361 TAD SURF 471 007715* 1362 TAD CYL 472 007716* 6603 RLCA 473 007717* 1366 TAD MA 474 007720* 6602 RLMA 475 007721* 1370 TAD FNC 476 007722* 4331 JMS IO /READ OR WRITE 477 007723* 1352 TAD B7600 /COUNT PAGES TRANSFERRED 478 007724* 1367 TAD PAGES 479 007725* 7450 SNA 480 007726* 5343 JMP DONE /NO MORE TO GO 481 007727* 3367 DCA PAGES 482 007730* 5241 JMP GOBACK /MORE TO GO; RETURN TO 483 /1ST PAGE 484 485 /SUBROUTINE TO DO RL01 I/O 486 007731* 0000 IO, 0 487 007732* 6604 RLCB /EXECUTE FUNCTION (DRIVE 0) 488 007733* 6601 RLSD /WAIT UNTIL DONE 489 007734* 5333 JMP .-1 490 007735* 6617 RLSE /ANY ERRORS? 491 007736* 5731 JMP I IO /NO; RETURN 492 007737* 2357 ISZ ERRCNT /YES; MORE RETRIES LEFT? 493 007740* 5253 JMP RETRY /YES, RETRY IT. 494 007741* 7330 ERROR, AC4000 /NO, TAKE HANDLER ERROR 495 007742* 7410 SKP /RETURN. 496 007743* 2363 DONE, ISZ BARG /NORMAL HANDLER RETURN 497 007744* 6203 BRTN, CIF CDF 00 /RESTORE CALLING FIELD; 498 007745* 5763 JMP I BARG /INITIALLY, RETURN TO 1ST PAGE 499 /AFTER BBL READ-IN. 500 /DATA 501 007746* 0003 B3, 3 502 007747* 0377 B377, 377 503 007750* 3777 B3777, 3777 504 007751* 4070 B4070, 4070 505 007752* 7600 B7600, 7600 506 007753* 1004 HEADER, BYTE RLRH 507 007754* 0006 BRLRD, RLRD 508 007755* 7655 CHECK, -ID 509 007756* 7613 BBBL, BBL 510 007757* 0000 ERRCNT, 0 511 007760* 0000 BLOCK, 0 512 007761* 0000 SURF, 0 513 007762* 0000 CYL, 0 514 515 /VARIABLES INITIALIZED TO PERFORM INITIAL BBL READ-IN 516 007763* 7725 BARG, ARTN /INITIALLY, RETURN TO 1ST PAGE 517 /AFTER BBL READ-IN. 518 007764* 1400 SECTOR, 1400 /BBL: SECTOR 14 (TRACK 0) 519 007765* 0000 TRACK, 0 520 007766* 7613 MA, BBL /INITIAL BBL READ 521 007767* 0200 PAGES, 200 /INITIAL BBL READ 522 007770* 0006 FNC, RLRD /INITIAL BBL READ 523 007771* 7767 WC, -11 /INITIAL BBL READ 524 007772* 4000 CURTRK, 4000 /INITIAL HEADER READ AND 525 /SEEK IF REQUIRED. 526 527 007773* 0000 ZBLOCK 7774-. /UNUSED 528 529 007774* 0000 ZBLOCK 4 /RESERVED FOR USE BY BATCH 007775* 0000 007776* 0000 007777* 0000 530 /IN 12K SYSTEMS. 531 532 RELOC 533 $ A17 7734 A200 7736 A377 7737 A47 7735 A7751 7740 ABLOCK 7731 ABRTN 7616 AC0001 7201 unreferenced AC0002 7326 AC0003 7325 AC0004 7307 unreferenced AC0006 7327 AC0100 7203 AC2000 7332 unreferenced AC3777 7350 unreferenced AC4000 7330 AC5777 7352 unreferenced AC6000 7333 unreferenced AC7775 7346 AC7776 7344 unreferenced ACDIF 7617 ADDR 7615 AMA 7733 ARTN 7725 ASECT 7727 ATRACK 7730 B3 7746 B377 7747 B3777 7750 B4070 7751 B7600 7752 BACK 7650 BARG 7763 BASE 7732 BBBL 7756 BBL 7613 BCDIF 7641 BLOCK 7760 BOOT 0036 BOOTA 0000 BOOTB 0076 BRLRD 7754 BRTN 7744 BYTE 1000 C16 0000 C2001 0003 C26 0001 C300 0002 C6001 0004 C7600 0005 C7605 0006 CHECK 7755 COUNT 7614 CURTRK 7772 CYL 7762 DONE 7743 ERRCNT 7757 ERROR 7741 FNC 7770 FUNC 0027 GO 7722 GOBACK 7641 HEADER 7753 ID 0123 IO 7731 IOSUB 0027 JMPSET 7613 LIST 7620 LOOP 7636 MA 7766 MAIN 7600 MAP 7655 MAPPED 7671 NEXT 7665 PAGES 7767 READ 0061 RETRY 7653 RLCA 6603 RLCB 6604 RLDC 6600 RLIOT 6600 RLMA 6602 RLMT 0000 unreferenced RLRD 0006 RLRE 0001 unreferenced RLRH 0004 RLRN 0007 unreferenced RLSA 6605 RLSD 6601 RLSE 6617 RLSK 0003 unreferenced RLST 0002 unreferenced RLWC 6607 RLWR 0005 unreferenced RRCA 6612 unreferenced RRCB 6613 unreferenced RRER 6610 unreferenced RRSA 6614 unreferenced RRSI 6615 RRWC 6611 unreferenced SECT 0007 SECTOR 7764 SEEK 7654 SET 7651 SETUP 7603 unreferenced START 7630 SURCYL 0010 SURF 7761 SWITCH 7611 SYS 7607 TRACK 7765 TRANS 7643 TRKCMP 7701 VERSIO 0002 WC 7771