3 .CS/80 OFFLINE DIAGNOSTIC PROGRAM 2/8/82 REVISION 0.11 6 DB &CC,50 9 DB &BB,50 12 DB &DD,100 15 DB &EE,20000 16 DB &HH,1000 18 DB &LL,6 21 DB &MM,16,"0123456789ABCDEF" 22 DB &NN,20 23 DB NN,20 24 DB PP,10,0 27 DB &FF,4096 30 DB &GG,8,"CS80MSGS " 33 FILENAME &GG(0) 36 READFILE &EE(0),20000 54 DB YY,7,0 57 DB ZZ,122,-1 60 DB WW,126,0 61 DB &VV,30 63 LET TIMEOUT:=5,ZZ(39):=0,WW(100):=!4800,WW(101):=!D00,ZZ(70):=0 66 GOSUB 8730 67 LET &VV(0):=ZZ(0):=0 68 CPVA YY(0) 70 GOTO 1608 72 LET W:=AA(78) 75 EPRINT *&AA(0,W) 76 RETURN 77 LET W:=&VV(0) 78 PRINTEX 0,&EE(310,327);&VV(1,W) 81 RETURN 84 IFN YY(0) THEN 96 87 GOSUB 72 90 PRINTEX 0,&EE(330,363);!YY(0) 93 END 96 IF YY(1) THEN 168 99 GOSUB 72 102 PRINTEX 0,&EE(370,414);!YY(1); 105 PRINTEX &EE(420,431) 108 END 111 IFN L THEN 117 114 LPON 117 RETURN 118 LET WW(100):=WW(100) AND !FF00 OR ZZ(70) 119 RETURN 121 BSIO XX 123 WR !5,WW(112),P 126 WAIT 129 IF Z=2 THEN 138 132 RR !E,NAME1,WW(110) 135 GOTO 141 138 WR !E,NAME1,WW(110) 141 WAIT 144 DSJ 162,147;Z 147 WR !5,WW(100),3 150 WAIT 153 RR !E,PP(0),20 156 WAIT 159 DSJ 162;WW(10) 162 IN H,1,1 165 ESIO 168 RETURN 172 BSIO XX 174 WR !5,WW(112),P 177 WAIT 180 GOTO 144 184 BSIO XX 186 WR !12,WW(112),P 189 WAIT 192 DSJ 210,195;Z 195 WR !5,WW(100),3 198 WAIT 201 RR !E,PP(0),20 204 WAIT 207 DSJ 210;WW(10) 210 IN H,1,1 213 RSIO XX 216 RETURN 220 BSIO XX 222 DSJ 225;Z 225 WR !5,WW(100),3 228 WAIT 231 RR !E,PP(0),20 234 WAIT 237 DSJ 240;Z 240 CLEAR 243 WAIT 246 GOTO 192 249 LET Q:=P/2,P:=P+1 252 IFN P MOD 2 THEN 261 255 LET WW(Q):=Z LSL 8 258 RETURN 261 LET WW(Q):=WW(Q) OR Z 264 RETURN 267 LET Q:=P/2,P:=P+5,R:=Q+1,S:=Q+2,T:=T LSL 1,WW(110):=T 270 IFN P MOD 2 THEN 279 273 LET WW(Q):=!1800,WW(R):=T LSR 8,WW(S):=T LSL 8 276 RETURN 279 LET WW(Q):=WW(Q) OR !18,WW(R):=0,WW(S):=T 282 RETURN 285 LET Q:=P/2,P:=P+7,R:=Q+1,S:=Q+2,T:=Q+3 288 IFN P MOD 2 THEN 306 291 LET Z:=VALUE2 LSL 8,WW(Q):=WW(37) LSR 8 OR !1000 OR Z 294 LET Z:=WW(38) LSR 8,WW(R):=WW(37) LSL 8 OR Z 297 LET Z:=WW(39) LSR 8,WW(S):=WW(38) LSL 8 OR Z 300 LET WW(T):=WW(39) LSL 8 303 RETURN 306 LET WW(Q):=WW(Q) OR !10 OR VALUE2,WW(R):=WW(37) 309 LET WW(S):=WW(38),WW(T):=WW(39) 312 RETURN 315 LET Q:=P/2,P:=P-223 318 IFN P MOD 2 THEN 327 321 LET WW(Q):=Z LSL 8 324 RETURN 327 LET WW(Q):=WW(Q) OR Z 330 RETURN 333 IFN STEP THEN 337 336 GOSUB 72 337 GOSUB 77 338 PRINTEX &EE(440,458) 339 PRINTEX " ",&EE(460,483)," " 340 GOSUB 8390 341 IFN AA(98) THEN 345 342 IF PP(1) OR PP(2) THEN 345 343 GOTO 346 345 LET AA(99):=0,AA(98):=0 346 LET W:=PP(0) LSR 12,X:=PP(0) LSR 8 MOD 16,Y:=PP(0) MOD 256 347 PRINTEX "Unit = ";X;" Volume = ";W 348 IF Y=255 THEN 357 351 PRINTEX "Unit ";Y;&EE(490,506) 354 GOTO 360 357 PRINTEX &EE(510,539) 360 IFN PP(1) THEN 414 363 PRINTEX " ",&EE(540,569)," " 366 IFN !2000 AND PP(1) THEN 372 369 PRINTEX &EE(570,589) 372 IFN !400 AND PP(1) THEN 378 375 PRINTEX &EE(730,743) 378 IFN !200 AND PP(1) THEN 384 381 PRINTEX &EE(590,618) 384 IFN !100 AND PP(1) THEN 390 387 PRINTEX &EE(620,639) 390 IFN !80 AND PP(1) THEN 396 393 PRINTEX &EE(640,661) 396 IFN !40 AND PP(1) THEN 402 399 PRINTEX &EE(670,686) 402 IFN !20 AND PP(1) THEN 408 405 PRINTEX &EE(750,799) 408 IFN 8 AND PP(1) THEN 414 411 PRINTEX &EE(710,729) 414 IFN PP(2) THEN 546 417 PRINTEX " ",&EE(800,821),0 420 IFN !4000 AND PP(2) THEN 450 423 PRINTEX &EE(830,862) 426 PRINTEX &EE(870,896) 429 GOSUB 858 450 IFN !1000 AND PP(2) THEN 456 453 PRINTEX &EE(920,935) 456 IFN !200 AND PP(2) THEN 462 459 PRINTEX &EE(940,949) 462 IFN !80 AND PP(2) THEN 507 465 PRINTEX &EE(950,979) 466 IF AA(99) THEN 507 468 LET W:=PP(5) LSR 8,AA(99):=1 471 IFN W THEN 477 474 GOSUB 723 477 LET W:=PP(5) AND !FF 480 IFN W THEN 486 483 GOSUB 723 486 LET W:=PP(6) LSR 8 489 IFN W THEN 495 492 GOSUB 729 495 LET W:=PP(6) AND !FF 498 IFN W THEN 507 501 GOSUB 729 507 IFN !20 AND PP(2) THEN 516 510 PRINTEX &EE(980,1008); 513 GOTO 530 516 IFN !10 AND PP(2) THEN 525 519 PRINTEX &EE(1010,1041); 522 GOTO 530 525 IFN !8 AND PP(2) THEN 534 528 PRINTEX &EE(1050,1078); 530 PRINTEX &EE(1080,1121) 531 GOSUB 719 534 IFN 2 AND PP(2) THEN 540 537 PRINTEX &EE(1130,1145);"media just loaded" 540 IFN 1 AND PP(2) THEN 546 543 PRINTEX &EE(1170,1189) 546 IFN PP(3) THEN 615 549 PRINTEX " ",&EE(1230,1252),0 552 IFN !8000 AND PP(3) THEN 558 555 PRINTEX &EE(1260,1285) 558 IFN !4000 AND PP(3) THEN 564 561 PRINTEX &EE(1290,1306) 564 IFN !2000 AND PP(3) THEN 570 567 PRINTEX &EE(1310,1333) 570 IFN !1000 AND PP(3) THEN 576 573 PRINTEX &EE(1340,1357) 576 IFN !800 AND PP(3) THEN 582 579 PRINTEX &EE(1360,1384) 582 IFN !400 AND PP(3) THEN 588 585 PRINTEX &EE(1570,1582) 588 IFN !80 AND PP(3) THEN 594 591 PRINTEX &EE(1390,1416) 594 IFN !40 AND PP(3) THEN 603 597 PRINTEX "Unrecoverable Data" 598 IF AA(99) THEN 603 600 PRINTEX "Address of bad data follows:" 601 ADDR PP(5),PP(6),PP(7) 603 IFN !10 AND PP(3) THEN 609 606 PRINTEX &EE(1470,1492) 609 IFN 8 AND PP(3) THEN 615 612 PRINTEX &EE(1500,1524) 615 IFN PP(4) THEN 709 618 PRINTEX " ",&EE(1530,1557)," " 621 IFN !8000 AND PP(4) THEN 627 624 PRINTEX &EE(1600,1629) 625 GOSUB 719 627 IFN !4000 AND PP(4) THEN 633 630 PRINTEX &EE(1630,1670) 631 GOSUB 719 633 IFN !2000 AND PP(4) THEN 639 636 PRINTEX &EE(1680,1721) 637 GOSUB 719 639 IFN !1000 AND PP(4) THEN 645 642 PRINTEX &EE(1560,1569) 645 IFN !800 AND PP(4) THEN 651 648 PRINTEX &EE(1730,1760) 651 IFN !100 AND PP(4) THEN 657 654 PRINTEX &EE(1770,1801) 657 IFN !40 AND PP(4) THEN 663 660 PRINTEX &EE(1810,1834) 663 IFN !20 AND PP(4) THEN 681 666 PRINTEX &EE(1840,1864) 669 PRINTEX &EE(1870,1896) 672 PRINTEX &EE(1900,1915) 673 IF AA(99) THEN 681 675 PRINTEX &EE(1920,1947) 678 ADDR PP(5),PP(6),PP(7) 681 IFN 16 AND PP(4) THEN 705 684 PRINTEX &EE(1950,1982) 687 PRINTEX &EE(1990,2012) 690 PRINTEX &EE(2020,2035) 691 IF AA(99) THEN 699 693 PRINTEX &EE(2040,2073) 696 ADDR PP(5),PP(6),PP(7) 699 GOSUB 807 702 RETURN 705 IFN !4 AND PP(4) THEN 710 707 PRINT " " 708 PRINTEX &EE(2080,2105) 709 IF AA(98) THEN 780 710 IF AA(99) THEN 717 711 PRINTEX 0,&EE(2110,2132) 714 ADDR PP(5),PP(6),PP(7) 717 GOSUB 807 718 RETURN 719 IF AA(99) THEN 722 720 PRINT "Units requesting release are:" 721 GOSUB 858 722 RETURN 723 PRINTEX &EE(2140,2153);W;" FAILED" 726 RETURN 729 PRINTEX &EE(2160,2172);W;" RETURNED" 732 RETURN 735 FUNCTION ADDR VALUE1,VALUE2,VALUE3 737 LET AA(99):=1 738 IF ZZ(70) THEN 768 741 PRINTEX &EE(2180,2195); 744 BCDCNVT VALUE1,VALUE2,VALUE3 750 PRINT 0 765 GOTO 778 768 PRINTEX &EE(2200,2213) 771 LET W:=VALUE1 LSL 8,W:=VALUE2 LSR 8 OR W 774 PRINTEX "Cyl =";W 775 LET W:=VALUE2 AND !FF 776 PRINTEX "Head =";W 777 PRINTEX "Sect =";VALUE3 778 ENDF 780 PRINTEX "Start of spared block is:" 782 ADDR PP(5),PP(6),PP(7) 786 PRINTEX "Length of spared block = "; 788 LET W:=PP(9) LSR 3,W:=PP(8) AND 7 LSL 13 OR W 790 LET Y:=PP(8) LSR 3 792 BCDCNVT 0,Y,W 793 PRINTEX " bytes" 794 RETURN 807 LET &FF(0):=PP(8) LSR 8,&FF(1):=PP(8) AND !FF 810 LET &FF(2):=PP(9) LSR 8,&FF(3):=PP(9) AND !FF 811 IF WW(112) LSR 8=6 THEN 846 813 FOR O:=0 UNTIL 3 816 LET W:=&FF(O) 819 IFN W THEN 843 822 IF W=64 THEN 831 825 PRINTEX &EE(2220,2233);W;" RETURNED" 828 GOTO 843 831 PRINTEX &EE(2240,2255); 834 LET O:=O+1,W:=&FF(O),Y:=8 837 GOSUB 7884 840 PRINTEX " " 843 NEXT 813 846 RETURN 850 LET W:=Z 851 IFN Y THEN 846 853 LET X:=Y-1*4 854 LET Q:=W LSR X LSL 1 LSR 1 MOD 16 855 PRINTEX &MM(Q); 856 LET Y:=Y-1 857 GOTO 851 858 LET &FF(0):=PP(5) LSR 8,&FF(1):=PP(5) AND !FF,&FF(2):=PP(6) LSR 8 859 LET &FF(3):=PP(6) AND !FF,&FF(4):=PP(7) LSR 8,&FF(5):=PP(7) AND !FF 860 LET AA(99):=1 862 FOR O:=0 UNTIL 5 863 LET W:=&FF(O) 864 IF W=255 THEN 866 865 PRINT "Unit =";W 866 NEXT 862 867 RETURN 869 GOTO 864 873 GETNAMEINFO NAME1,R,S,T 876 LET Y:=0 879 GOSUB 900 882 LET P:=224,Z:=!20 OR ZZ(40) 885 GOSUB 249 888 IFN T THEN 894 891 GOSUB 267 894 GOSUB 285 897 RETURN 900 IFN VALUE2 THEN 912 903 LET Z:=VALUE3 LSL 8,WW(37):=VALUE4 LSR 8 OR Z 906 LET WW(38):=VALUE4 LSL 8 OR VALUE5,WW(39):=VALUE6 909 RETURN 912 LET WW(37):=VALUE3,WW(38):=VALUE4,WW(39):=VALUE5 915 RETURN 918 GOSUB 315 921 GOSUB 118 922 GOSUB 121 924 RSIO XX 927 IF AA(73)=1 THEN 939 930 IFN Z THEN 939 933 LET AA(79):=1 936 GOSUB 333 939 GOSUB 84 942 RETURN 945 GOSUB 118 946 GOSUB 172 948 GOSUB 924 951 RETURN 993 RANDOM P 996 RANDOM W 999 RANDOM U 1002 LET S:=P,T:=X 1005 GOSUB 1038 1008 LET P:=S 1011 IFN S=T THEN 1035 1014 LET S:=W,T:=Y 1017 GOSUB 1038 1020 LET W:=S 1023 IF S4 THEN 1980 1971 FOR I:=0 UNTIL 2 1974 GOSUB 1671 1977 IFN E THEN 2019 1980 FOR C:=1 UNTIL 15 1983 GOSUB 1683 1986 IFN E THEN 2013 1989 GOSUB 1701 1992 IFN E THEN 2013 1995 FOR D:=0 UNTIL 7 1998 GOSUB 1767 2001 IFN E THEN 2010 2004 GOSUB 1716 2007 LET ZZ(10):=C,ZZ(20):=D,ZZ(90):=I,G:=G+1,ZZ(80):=J,ZZ(40):=0 2010 NEXT 1995 2013 NEXT 1980 2016 IF AA(77)<>4 THEN 2022 2019 NEXT 1971 2022 IF G THEN 2031 2025 PRINT &EE(2540,2561) 2028 END 2031 PRINT &EE(4910,4969) 2034 IF G EQ 1 THEN 2164 2037 GOSUB 2043 2040 GOTO 2166 2043 LET I:=0 2046 IF AA(77)<>4 THEN 2076 2049 PRINT &EE(2570,2618) 2052 INPUT I 2055 IF -1 LT I LT 3 THEN 2064 2058 PRINT &EE(2620,2642) 2061 GOTO 2043 2064 GOSUB 1671 2067 IF E THEN 2076 2070 PRINT &EE(2650,2667) 2073 GOTO 2043 2076 PRINT &EE(2670,2727) 2079 PRINT "TO TEST (1-15,0-7)?" 2082 INPUT C,D 2085 IF 0 LT C LT 16 THEN 2094 2088 PRINT &EE(2730,2759) 2091 GOTO 2043 2094 IF -1 LT D LT 8 THEN 2103 2097 PRINT &EE(2760,2789) 2100 GOTO 2043 2103 GOSUB 1683 2106 IF E THEN 2115 2109 PRINT &EE(2790,2814) 2112 GOTO 2043 2115 GOSUB 1701 2118 IF E THEN 2127 2121 PRINT &EE(2820,2839) 2124 GOTO 2043 2127 GOSUB 1767 2130 IF E THEN 2137 2133 PRINT &EE(2840,2859) 2136 GOTO 2043 2137 LET ZZ(10):=C,ZZ(20):=D,ZZ(90):=I,ZZ(80):=J 2138 GOSUB 8230 2139 IFN E THEN 2043 2142 RETURN 2145 UNIT 0,ZZ(40) 2147 READZERO 2150 DESCRIBE 0,&DD(0) 2152 IFN &DD(5) EQ 2 THEN 2163 2153 LET AA(76):=40 2154 LET D:=&DD(34) LSL 8 OR &DD(35) 2157 IF D EQ DD(57) THEN 2163 2160 LET AA(76):=80 2163 RETURN 2164 GOSUB 8230 2165 IFN E THEN 2164 2166 GOSUB 2145 2177 GOSUB 118 2178 LET SECTIONS1:=!F000,L:=FALSE,AA(73):=STEP:=0,TIMEOUT:=32300 2181 PPRINT &EE(2860,2906) 2184 IFN GOPARAM1=1 THEN 2190 2187 LET L:=TRUE 2190 IFN NEWTEST THEN 2199 2193 IFN SECTIONS1 AND !C00 THEN 2199 2196 PPRINT "SELECTED DATA DESTRUCTIVE TEST, SHOULD USE SCRATCH MEDIA" 2199 SECTION 1,2460 2202 GOSUB 111 2205 PRINT &EE(2910,2934) 2208 INIT 2211 ASSIGN EE(1),1,3,4,5,6,7,8,9,!A 2214 ASSIGN FF(1),!C0,!40FF,!FF,!FF,!FE,!FF,!FF,!FFFF,!FFFF 2217 FOR STEP:=1 UNTIL 9 2220 LET F:=0,C:=EE(STEP),E:=FF(STEP) 2223 RIOC C,G 2226 LET D:=-G AND E,B:=D 2229 GOSUB 1884 2232 WIOC C,G 2235 NEXT 2217 2238 LET STEP:=10,C:=!C,D:=DEVICE+8,E:=!FF,F:=1,B:=!80 LSR DEVICE 2241 SMSK !0 2244 IOFF 2247 GOSUB 1884 2250 WIOC !C,DEVICE 2253 ION 2256 LET STEP:=11,C:=!F,F:=2,B:=CHANNEL LSL 3+7,E:=!7F 2259 GOSUB 1887 2262 LET STEP:=12,B:=CHANNEL LSL 3+7,F:=2,C:=!D,E:=!7F 2265 GOSUB 1887 2268 LET STEP:=13,B:=0,C:=!E,E:=!9FFF 2271 GOSUB 1887 2274 LET STEP:=14,J:=TRUE 2277 RIOC !B,A 2280 IFN A AND !8 THEN 2289 2283 LET &AA(0,35):="'Diagnostic' switch is set to 'test'",AA(78):=35 2286 GOSUB 1902 2289 RIOC 1,A 2292 IF A AND !8 THEN 2304 2295 LET &AA(0,48):="'Sys Ctrl' switch shows GIC not system controller" 2298 LET AA(78):=48 2301 GOSUB 1902 2304 RIOC !E,A 2307 IFN A AND !4000 THEN 2319 2310 LET &AA(0,47):="'Device Type' switch is set to non-amigo devices" 2313 LET AA(78):=47 2316 GOSUB 1902 2319 IF AA(77)<>4 THEN 2334 2322 LET A:=-A 2325 IF A AND !2000 THEN 2343 2328 LET &AA(0,33):="'Processor' Switch is set to 'CPU'",AA(78):=33 2331 GOTO 2340 2334 IFN A AND !2000 THEN 2343 2337 LET &AA(0,33):="'Processor' Switch is set to 'CPP'",AA(78):=33 2340 GOSUB 1902 2343 IF J THEN 2349 2346 PAUSE 2349 LET STEP:=15,J:=TRUE 2352 INIT 2355 WIOC 15,!88 2358 WIOC 7,!67 2361 FOR I:=0 UNTIL 15 2364 RANDOM EE(I) 2367 LET EE(I):=EE(I) AND !FF 2370 NEXT 2361 2373 WIOC 0,!4027 2376 WIOC 0,!4047 2379 FOR I:=0 UNTIL 15 2382 WIOC 0,EE(I) 2385 NEXT 2379 2388 FOR I:=0 UNTIL 15 2391 RIOC 0,FF(I) 2394 NEXT 2388 2397 CB EE(0),FF(0),16 2400 IF INDEX=-1 THEN 2421 2403 EPRINT *&EE(3170,3202) 2406 FOR I:=INDEX UNTIL 15 2409 IF EE(I)=FF(I) THEN 2415 2412 ERR I,FF(I),EE(I) 2415 NEXT 2406 2418 PAUSE 2421 LET STEP:=14,G:=DEVICE+8,NORESPONS:=1,H:=IMBNUM LSL 7,Z:=F:=BADINTP:=0 2424 LET H:=CHANNEL LSL 3+DEVICE+H 2427 INIT 2430 HIOP 2433 SMSK !7FFF 2436 WIOC 12,G 2439 IF BADINTP=H THEN 2445 2442 EPRINT &EE(3210,3231),0 2445 LET BADINTP:=0 2448 INIT 2450 LET AA(73):=1 2451 MC 0 2454 PRINT "End of Section 1",0 2457 LPOFF 2460 SECTION 2,2589 2463 GOSUB 111 2466 PRINT &EE(3240,3270) 2469 LET STEP:=20 2472 GOSUB 2490 2475 LET STEP:=21 2478 GOSUB 2523 2481 PRINT &EE(3280,3295),0 2484 LPOFF 2487 GOTO 2589 2490 LET J:=0,AA(73):=1,A:=48 2493 FOR I:=-1 STEP 2 UNTIL 253 2496 LET JJ(J):=I LSL 8+I+1,J:=J+1 2499 NEXT 2493 2502 LOOPBACK 0,1,JJ(0) 2505 IF Z EQ 0 AND XX(A) EQ 0 THEN 2520 2508 LET B:=256-XX(A) 2511 EPRINT *&EE(3300,3315);B;" out of 256 bytes were written" 2514 GOSUB 338 2517 PAUSE 2520 RETURN 2523 LET C:=0 2526 LOOPBACK 0,0,FF(0) 2529 IF Z EQ 0 AND XX(A) EQ 0 THEN 2547 2532 LET B:=256-XX(A) 2535 EPRINT *&EE(3350,3364);B;" out of 256 bytes were read" 2538 IF Z<>2 THEN 2547 2541 PRINTEX &EE(3400,3422) 2544 GOTO 2580 2547 FOR I:=0 UNTIL 127 2550 IF C=10 THEN 2580 2553 LET G:=FF(I) XOR JJ(I) 2556 IFN G THEN 2574 2559 LET C:=C+1 2562 PRINTEX &EE(3430,3443);I; 2565 ZEROESON 2568 PRINTEX &EE(3450,3473);%G 2571 ZEROESOFF 2574 NEXT 2547 2577 IF C EQ 0 AND Z EQ 0 THEN 2583 2580 PAUSE 2581 LET AA(73):=1 2583 MC 0 2586 RETURN 2589 SECTION 3,2637 2592 GOSUB 111 2595 PRINT &EE(3480,3508) 2598 UNIT 0,15 2601 IF Z THEN 2619 2604 LET &VV(0,7):="SELFTEST" 2607 LET WW(112):=!3300,WW(113):=!100,WW(114):=0,STEP:=30,P:=4 2610 LET &AA(0,14):="Selftest Failed",AA(78):=14,&VV(1,4):="DIAG",&VV(0):=4 2613 GOSUB 945 2616 IFN Z THEN 2622 2619 PAUSE 2622 LET AA(73):=1 2625 UNIT 0,ZZ(40) 2628 MC 0 2631 PRINT &EE(3540,3555),0 2634 LPOFF 2637 SECTION 4,2901 2640 GOSUB 111 2643 GOTO 2655 2646 GOSUB 338 2649 PAUSE 2652 RETURN 2655 PRINT &EE(3560,3588) 2658 LET STEP:=40,WW(112):=!1800,WW(113):=0,WW(114):=!201,AA(73):=1 2661 GOSUB 118 2662 BSIO XX 2664 WR !5,WW(112),6 2667 WAIT 2670 RR !E,EE(0),2 2673 WAIT 2676 DSJ 2679;Z 2679 IN H,1,1 2682 RSIO XX 2685 STATUS 0,PP(0) 2688 IF PP(1) AND !400 THEN 2700 2691 IF PP(2) AND !1 OR PP(4) AND !2000 THEN 2658 2694 EPRINT *&EE(3590,3625) 2697 GOSUB 2646 2700 LET STEP:=41 2703 UNIT 0,3 2706 IF PP(1) AND !200 THEN 2718 2709 IF PP(2) AND !1 OR PP(4) AND !2000 THEN 2703 2712 EPRINT *&EE(3630,3665) 2715 GOSUB 2646 2718 LET STEP:=42,A:=AA(76)+2 2721 IF DD(A)=2 THEN 2742 2727 SETADDR 0,1,0,!F00,0,0 2730 IF PP(1) AND !100 THEN 2742 2733 IF PP(2) AND !1 OR PP(4) AND !2000 THEN 2727 2736 GOTO 2751 2742 SETADDR 0,0,0,!F00,0,0 2745 IF PP(1) AND !100 THEN 2760 2748 IF PP(2) AND !1 OR PP(4) AND !2000 THEN 2742 2751 RETADMOD 0,0 2754 EPRINT *&EE(3670,3705) 2757 GOSUB 2646 2760 LET STEP:=43,WW(112):=!3E20,WW(113):=!12,P:=9 2763 LET WW(114):=!BB00,WW(115):=WW(116):=0 2766 GOSUB 945 2769 IF PP(1) AND !80 THEN 2781 2772 IF PP(2) AND !1 OR PP(4) AND !2000 THEN 2760 2775 EPRINT *&EE(3710,3747) 2778 GOSUB 2646 2781 LET STEP:=44,WW(112):=!4810,P:=1 2784 GOSUB 945 2787 IF PP(1) AND !40 THEN 2799 2790 IF PP(2) AND !1 OR PP(4) AND !2000 THEN 2781 2793 EPRINT *&EE(3750,3788) 2796 GOSUB 2646 2799 LET STEP:=45,WW(112):=!1800,WW(113):=0,WW(114):=!602 2802 BSIO XX 2805 WR !5,WW(112),6 2808 WAIT 2811 RR !E,EE(0),6 2814 WAIT 2817 DSJ 2820;Z 2820 IN H,1,1 2823 RSIO XX 2826 STATUS 0,PP(0) 2829 IF PP(1) AND !20 THEN 2889 2832 IF PP(2) AND !1 OR PP(4) AND !2000 THEN 2799 2835 EPRINT *&EE(3790,3828) 2838 GOSUB 2646 2889 UNIT 0,ZZ(40) 2892 MC 0 2895 PRINT &EE(3870,3885),0 2898 LPOFF 2901 SECTION 5,3927 2904 GOSUB 111 2907 PRINT &EE(3890,3922) 2910 GOTO 2994 2913 LET X:=AA(76)+15,Y:=AA(76)+16,Z:=AA(76)+17 2916 LET X:=DD(X),Y:=DD(Y),Z:=DD(Z)-8 2919 GOSUB 993 2922 LET A:=FF(5):=P,B:=FF(6):=W,C:=FF(7):=U,D:=0 2925 RETURN 2928 LET Y:=AA(76)+12,C:=AA(76)+13,I:=AA(76)+12 2931 LET X:=0,Y:=DD(Y) LSR 8,I:=DD(I) LSL 8,J:=DD(C) LSR 8,Z:=I OR J 2934 GOSUB 993 2937 LET A:=W,B:=U,FF(5):=B LSR 8,FF(6):=B LSL 8 2940 RANDOM I 2943 LET S:=I AND !FF,T:=AA(76)+13,T:=DD(T) AND !FF 2946 GOSUB 1038 2949 LET C:=S,FF(6):=FF(6) OR C 2952 RANDOM I 2955 LET S:=I AND !FF,T:=AA(76)+14,T:=DD(T) AND !FF,T:=T-8 2958 GOSUB 1038 2961 LET D:=FF(7):=S 2964 RETURN 2967 LET E:=0 2970 FOR F:=INDEX UNTIL 1023 2973 IF E=11 THEN 2988 2976 IF GG(F)=HH(F) THEN 2985 2979 ERR F,HH(F),GG(F) 2982 LET E:=E+1 2985 NEXT 2970 2988 LET AA(79):=1 2991 RETURN 2994 LET STEP:=60,AA(73):=1 2997 STATUS 0,PP(0) 3000 IF Z THEN 3021 3003 STATUS 0,PP(0) 3006 IF Z THEN 3021 3009 FOR I:=1 UNTIL 4 3012 IF PP(I) THEN 3021 3015 NEXT 3009 3018 GOTO 3045 3021 IF PP(2) AND 1 THEN 2997 3024 IFN PP(4) AND !2000 THEN 3033 3027 RELEASE 0 3030 GOTO 2997 3033 EPRINT *&EE(3930,3959) 3036 IF Z<>2 THEN 3042 3039 PRINTEX "Returned from Power Fail" 3042 PAUSE 3045 LET STEP:=61,AA(73):=AA(79):=0 3048 LET &AA(0,32):="Testing Locate and Verify Command",AA(78):=32 3051 LENGTH 0,0,!800 3054 GOSUB 2913 3057 LOCVER 0,0,A,B,C,D 3060 IFN AA(79) THEN 3066 3063 PAUSE 3066 LET STEP:=62,A:=AA(76)+2 3069 LET &AA(0,30):="Testing Locate and Read Command",AA(78):=30 3072 IF DD(A)=2 THEN 3084 3075 GOSUB 2928 3078 LET I:=1 3081 GOSUB 3096 3084 LET I:=0 3087 GOSUB 2913 3090 GOSUB 3096 3093 GOTO 3132 3096 RETADMOD 0,I 3099 LOCRD 0,GG(0),I,A,B,C,D 3102 IF Z THEN 3120 3105 LOCRD 0,HH(0),I,A,B,C,D 3108 IF Z THEN 3120 3111 CB GG(0),HH(0),1024 3114 IF INDEX=-1 THEN 3129 3117 EPRINT *&AA(0,30) 3120 LET F:=2048-XX(55) 3123 PRINTEX F;&EE(4070,4098) 3126 PAUSE 3129 RETURN 3132 LET STEP:=63,A:=AA(76)+2 3135 LET &AA(0,31):="Testing Locate and Write Command",AA(78):=31 3138 FOR I:=0 UNTIL 1023 3141 RANDOM GG(I) 3144 NEXT 3138 3147 IF DD(A)=2 THEN 3159 3150 GOSUB 2928 3153 LET I:=1,AA(79):=0 3156 GOSUB 3171 3159 GOSUB 2913 3162 LET I:=0,AA(79):=0 3165 GOSUB 3171 3168 GOTO 3213 3171 RETADMOD 0,I 3174 LOCRD 0,II(0),I,A,B,C,D 3177 IF Z THEN 3207 3180 LOCWR 0,GG(0),I,A,B,C,D 3183 LET F:=2048-XX(55) 3186 LOCRD 0,HH(0),I,A,B,C,D 3189 CB GG(0),HH(0),1024 3192 IF INDEX=-1 THEN 3201 3195 PRINTEX F;&EE(4140,4170) 3198 GOSUB 2967 3201 LOCWR 0,II(0),I,A,B,C,D 3204 IFN AA(79) THEN 3210 3207 PAUSE 3210 RETURN 3213 LET STEP:=64,J:=AA(76),A:=DD(J) 3216 LET &AA(0,23):="Testing Set Unit Command",AA(78):=23 3219 FOR I:=1 UNTIL 15 3222 LET A:=A LSR 1 3225 IFN A AND 1 THEN 3243 3228 UNIT 0,I 3231 IF Z THEN 3237 3234 STATUS 0,PP(0) 3237 LET C:=PP(0) LSR 8,B:=C AND !F 3240 IF I NE B OR Z NE 0 THEN 3252 3243 NEXT 3219 3246 UNIT 0,ZZ(40) 3249 IFN Z THEN 3258 3252 PRINTEX &EE(4210,4223);I;" was ";B 3255 PAUSE 3258 LET STEP:=65,B:=0 3261 LET &AA(0,25):="Testing Set Volume Command",AA(78):=25 3264 VOLUME 0,0 3267 IF Z THEN 3273 3270 STATUS 0,PP(0) 3273 LET B:=PP(0) LSR 12 3276 IF B EQ 0 AND Z EQ 0 THEN 3285 3279 PRINTEX &EE(4290,4311);B 3282 PAUSE 3285 LET STEP:=66,A:=AA(76)+2 3288 LET &AA(0,26):="Testing Set Address Command",AA(78):=26 3291 IF DD(A)=2 THEN 3303 3294 GOSUB 2928 3297 LET I:=1,AA(79):=0 3300 GOSUB 3318 3303 GOSUB 2913 3306 LET I:=AA(79):=0 3309 GOSUB 3318 3312 GOTO 3348 3318 SETADDR 0,I,A,B,C,D 3321 IF Z THEN 3327 3324 STATUS 0,PP(0) 3327 CB FF(5),PP(5),3 3330 IFN INDEX=-1 THEN 3336 3333 IFN AA(79) THEN 3345 3336 PRINTEX 0,"Expect "; 3339 ADDR FF(5),FF(6),FF(7) 3342 PAUSE 3345 RETURN 3348 LET STEP:=67,A:=AA(76)+2 3351 LET &AA(0,37):="Testing Set Block Displacement Command",AA(78):=37 3354 IF DD(A)=2 THEN 3366 3357 GOSUB 2928 3360 LET I:=1,AA(79):=0 3363 GOSUB 3381 3366 RANDOM C 3369 LET I:=A:=B:=D:=AA(79):=FF(5):=FF(6):=0,FF(7):=C:=C AND !FFF 3372 GOSUB 3381 3375 GOTO 3399 3381 SETADDR 0,I,A,B,C,D 3384 SBLKDISP 0,0,0,1 3387 IF Z THEN 3393 3390 STATUS 0,PP(0) 3393 LET FF(7):=FF(7)+1 3396 GOTO 3327 3399 LET STEP:=68,AA(79):=0 3402 LET &AA(0,25):="Testing Set Length Command",AA(78):=25 3405 RANDOM J 3408 LET J:=J AND !FE+1 3411 LENGTH 0,0,J 3414 LET WW(112):=!3400,G:=2 3417 GOSUB 118 3418 BSIO XX 3420 WR !5,WW(112),G 3423 WAIT 3426 RR !E,EE(0),J 3429 WAIT 3432 GOSUB 192 3435 IFN J=XX(13) THEN 3441 3438 IFN AA(79) THEN 3450 3441 PRINTEX &EE(4420,4438);J 3444 PRINTEX &EE(4440,4463);XX(13) 3447 PAUSE 3450 LET STEP:=69,AA(79):=0 3453 LET &AA(0,24):="Testing Set Burst Command",AA(78):=24 3456 GOSUB 2913 3459 LOCRD 0,II(0),0,A,B,C,D 3462 IF Z THEN 3525 3465 FOR H:=112 UNTIL 118 3468 LET EE(H):=WW(H) 3471 NEXT 3465 3474 LET E:=P 3477 BURST 0,1 3480 IF Z THEN 3525 3483 LET &VV(0,7):="WRBURST ",G:=1 3486 LET EE(118):=EE(118) OR !2 3489 GOSUB 3531 3492 GOSUB 927 3495 LET &VV(0,7):="RRBURST ",G:=0 3498 LET EE(118):=EE(118) AND !FF00 3501 GOSUB 3531 3504 GOSUB 927 3507 CB GG(0),HH(0),1024 3510 IF INDEX=-1 THEN 3516 3513 GOSUB 2967 3516 BURST 0,0 3519 LOCWR 0,II(0),0,A,B,C,D 3522 IFN AA(79) THEN 3564 3525 PAUSE 3528 GOTO 3564 3531 GOSUB 118 3532 BSIO XX 3534 WR !5,EE(112),E 3537 WAIT 3540 IF G=1 THEN 3549 3543 RB !E,HH(0),2048,256 3546 GOTO 3552 3549 WB !E,GG(0),2048,256 3552 JUMP 3558 3555 JUMP 3537 3558 WAIT 3561 GOTO 192 3564 LET STEP:=70,A:=AA(76)+15,AA(79):=0 3567 LET &AA(0,30):="Testing Set Status Mask Command",AA(78):=30 3570 MASKSTAT 0,!100,0,0,0 3573 LET AA(73):=1,J:=DD(A)+1,B:=Z 3576 SETADDR 0,0,J,0,0,0 3579 IFN PP(1) AND !100 THEN 3597 3582 IF B THEN 3588 3585 EPRINT *&EE(4560,4590) 3588 PRINTEX &EE(4600,4645) 3591 PAUSE 3594 GOTO 3600 3597 IF B THEN 3591 3600 LET AA(73):=0,STEP:=71,A:=AA(76)+2 3603 LET &AA(0,30):="Testing Set Return Mode Command",AA(78):=30 3606 IF DD(A)=2 THEN 3618 3609 GOSUB 2928 3612 LET I:=1,J:=AA(79):=0 3615 GOSUB 3633 3618 GOSUB 2913 3621 LET I:=AA(79):=0,J:=1 3624 GOSUB 3633 3627 GOTO 3687 3633 SETADDR 0,I,A,B,C,D 3636 IF Z THEN 3642 3639 STATUS 0,PP(0) 3642 LET EE(5):=PP(5),EE(6):=PP(6),EE(7):=PP(7) 3645 RETADMOD 0,J 3648 RETADMOD 0,I 3651 IF Z THEN 3657 3654 STATUS 0,PP(0) 3657 FOR G:=5 UNTIL 7 3660 IF EE(G)<>PP(G) THEN 3669 3663 NEXT 3657 3666 IF AA(79)=0 THEN 3684 3669 PRINTEX 0,&EE(4690,4698); 3672 ADDR EE(5),EE(6),EE(7) 3675 PRINTEX 0,"Final "; 3678 ADDR PP(5),PP(6),PP(7) 3681 PAUSE 3684 RETURN 3687 LET STEP:=72,A:=AA(76) 3690 LET &AA(0,23):="Testing Describe Command",AA(78):=23 3693 DESCRIBE 0,FF(0) 3696 IF Z THEN 3723 3697 CB FF(0),DD(A),18 3698 IF INDEX=-1 THEN 3726 3699 IFN A=0 THEN 3705 3700 LET A:=120 3701 CB FF(0),DD(A),18 3702 IF INDEX=-1 THEN 3726 3703 GOTO 3708 3705 EPRINT *&AA(0,23) 3708 IF A=0 OR A=120 THEN 3721 3712 FOR I:=0 UNTIL 17 3713 LET A:=AA(76)+I 3714 IF FF(I) EQ DD(A) THEN 3719 3717 ERR I,FF(I),DD(A) 3719 NEXT 3712 3720 GOTO 3723 3721 PRINT "Returned bit pattern does not match with 7933/35 disc" 3723 PAUSE 3726 LET STEP:=73,I:=AA(76)+8,AA(79):=0 3729 LET &AA(0,29):="Testing Set Retry Time Command",AA(78):=29 3732 RANDOM J 3735 SETRETIM 0,J 3738 IF Z<>0 THEN 3753 3741 GOSUB 2913 3744 LOCRD 0,EE(0),0,A,B,C,D 3747 SETRETIM 0,DD(I) 3750 IFN AA(79) THEN 3756 3753 PAUSE 3756 LET STEP:=74 3759 BSIO XX 3762 IDENT J 3765 IN H,1,1 3768 RSIO XX 3771 IF J EQ ZZ(80) THEN 3786 3774 EPRINT *&EE(4760,4783) 3777 PRINTEX &EE(4790,4818);!J 3780 PRINTEX &EE(4820,4848);!ZZ(80) 3783 PAUSE 3786 LET STEP:=75 3789 LET &AA(0,22):="Testing Release Command",AA(78):=22 3792 RELEASE 0 3795 IFN Z THEN 3801 3798 PAUSE 3801 LET STEP:=76 3804 LET &AA(0,29):="Testing Release Denied Command",AA(78):=29 3807 RELDEN 0 3810 IFN Z THEN 3816 3813 PAUSE 3816 LET STEP:=80,A:=AA(76)+2,AA(79):=0 3819 IFN DD(A)=2 THEN 3876 3822 LET &AA(0,30):="Testing Write File Mark Command",AA(78):=30 3825 GOSUB 2913 3828 LOCRD 0,II(0),0,A,B,C,D 3831 IF Z THEN 3873 3834 LOCWR 0,FF(0),0,A,B,C,D 3837 WFM 0 3840 LET AA(73):=1 3843 LOCRD 0,GG(0),0,A,B,C,D 3846 LET AA(73):=0 3849 IF PP(3) AND !10 THEN 3867 3852 IF AA(79)=1 THEN 3858 3855 EPRINT *&AA(0,30) 3858 PRINTEX &EE(5040,5058) 3861 PAUSE 3864 GOTO 3876 3867 LOCWR 0,II(0),0,A,B,C,D 3870 IFN AA(79) THEN 3876 3873 PAUSE 3876 LET STEP:=90,A:=AA(76)+2,AA(79):=0 3879 IF DD(A)=2 THEN 3915 3882 LET &AA(0,22):="Testing Set RPS Command",AA(78):=22 3885 RANDOM J 3888 RANDOM I 3891 LET J:=J AND !FE+1,I:=I AND !FE+1 3894 RPS 0,I,J 3897 IF Z THEN 3912 3900 GOSUB 2913 3903 LOCRD 0,GG(0),0,A,B,C,D 3906 RPS 0,0,0 3909 IFN AA(79) THEN 3915 3912 PAUSE 3915 PRINT &EE(5090,5105),0 3916 LET AA(73):=1 3918 UNIT 0,ZZ(40) 3921 MC 0 3924 LPOFF 3927 SECTION 6,8214 3928 LET AA(73):=1,AA(98):=0 3930 DB EE,2048,0 3933 LET AA(73):=0,STEP:=0,AA(79):=0 3936 PRINT &EE(5110,5133) 3939 LET A:=ZZ(20),AA(62):=A+64,AA(39):=A+32 3942 LET B:=1 LSL A,AA(54):=128/B 3945 LET AA(13):=A,AA(9):=AA(25):=AA(59):=AA(3):=AA(4):=AA(5):=0 3948 LET AA(21):=1 3951 PRINT &EE(5140,5155) 3954 LET AA(70):=0,K:=0 3957 LET &CC(0,10):=" " 3960 INPUT &CC(0,10) 3963 IF &CC(0)="C" THEN 4005 3966 IF &CC(0)="D" THEN 4038 3969 IF &CC(0)="E" THEN 4047 3972 IF &CC(0)="F" THEN 4068 3975 IF &CC(0)="H" THEN 4083 3978 IF &CC(0)="I" THEN 4092 3981 IF &CC(0)="P" THEN 4101 3984 IF &CC(0)="R" THEN 4110 3987 IF &CC(0)="S" THEN 4143 3990 IF &CC(0)="T" THEN 4164 3993 IF &CC(0)="U" THEN 4173 3996 IF &CC(0)="W" THEN 4194 3999 PRINT &EE(5180,5197) 4002 GOTO 3951 4005 CB &CC(0),&EE(0),6 4008 IF INDEX=-1 THEN 4209 4011 CB &CC(0),&EE(8),4 4014 IF INDEX=-1 THEN 5487 4017 CB &CC(0),&EE(14),7 4020 IF INDEX=-1 THEN 4224 4023 CB &CC(0),&EE(23),7 4026 IF INDEX=-1 THEN 4296 4029 CB &CC(0),&EE(32),10 4032 IF INDEX=-1 THEN 4311 4035 GOTO 3999 4038 CB &CC(0),&EE(44),4 4041 IF INDEX=-1 THEN 4377 4044 GOTO 3999 4047 CB &CC(0),&EE(50),6 4050 IF INDEX=-1 THEN 4431 4053 CB &CC(0),&EE(58),7 4056 IF INDEX=-1 THEN 4659 4059 CB &CC(0),&EE(67),4 4062 IF INDEX=-1 THEN 4803 4065 GOTO 3999 4068 CB &CC(0),&EE(73),9 4071 IF INDEX=-1 THEN 4818 4074 CB &CC(0),&EE(258),6 4077 IF INDEX=-1 THEN 4509 4080 GOTO 3999 4083 CB &CC(0),&EE(84),4 4086 IF INDEX=-1 THEN 4908 4089 GOTO 3999 4092 CB &CC(0),&EE(90),10 4095 IF INDEX=-1 THEN 4509 4098 GOTO 3999 4101 CB &CC(0),&EE(102),6 4104 IF INDEX=-1 THEN 4845 4107 GOTO 3999 4110 CB &CC(0),&EE(121),7 4113 IF INDEX=-1 THEN 4863 4116 CB &CC(0),&EE(130),3 4119 IF INDEX=-1 THEN 4884 4122 CB &CC(0),&EE(135),9 4125 IF INDEX=-1 THEN 5073 4128 CB &CC(0),&EE(146),6 4131 IF INDEX=-1 THEN 5505 4134 CB &CC(0),&EE(154),7 4137 IF INDEX=-1 THEN 4998 4140 GOTO 3999 4143 CB &CC(0),&EE(163),7 4146 IF INDEX=-1 THEN 5118 4149 CB &CC(0),&EE(172),5 4152 IF INDEX=-1 THEN 5151 4155 CB &CC(0),&EE(179),5 4158 IF INDEX=-1 THEN 5178 4161 GOTO 3999 4164 CB &CC(0),&EE(186),6 4167 IF INDEX=-1 THEN 5307 4170 GOTO 3999 4173 CB &CC(0),&EE(194),4 4176 IF INDEX=-1 THEN 5379 4179 CB &CC(0),&EE(200),6 4182 IF INDEX=-1 THEN 5406 4185 CB &CC(0),&EE(208),7 4188 IF INDEX=-1 THEN 5424 4191 GOTO 3999 4194 CB &CC(0),&EE(217),8 4197 IF INDEX=-1 THEN 5466 4200 CB &CC(0),&EE(227),7 4203 IF INDEX=-1 THEN 5517 4206 GOTO 3999 4209 LET A:=5,&AA(0,A):="CANCEL" 4212 GOSUB 8360 4215 CANCEL 0 4218 GOSUB 6228 4221 GOTO 3951 4224 LET A:=11,&AA(0,11):="HPIB Channel" 4225 GOSUB 8360 4226 LPOFF 4227 PRINT &EE(5230,5252),&EE(5260,5269);ZZ(10),&EE(5270,5278);ZZ(20) 4236 IF AA(77)<>4 THEN 4242 4239 PRINT &EE(5280,5292);ZZ(90) 4242 PRINT &EE(5300,5339) 4245 GOSUB 5883 4246 IF K THEN 4290 4248 IFN F THEN 4266 4251 GOSUB 2043 4260 GOSUB 2145 4266 GOSUB 111 4269 GOSUB 2490 4272 IFN Z EQ 0 AND XX(A) EQ 0 THEN 4278 4275 PRINT &EE(5340,5371) 4278 GOSUB 2523 4281 IFN Z EQ 0 AND C EQ 0 THEN 4287 4284 PRINT &EE(5380,5410) 4287 LET A:=11 4290 GOSUB 6228 4293 GOTO 3951 4296 LET A:=6,&AA(0,A):="CICLEAR" 4299 GOSUB 8360 4302 MC 0 4305 GOSUB 6228 4308 GOTO 3951 4311 LET A:=9,&AA(0,A):="CLEAR LOGS" 4313 GOSUB 8360 4315 LPOFF 4317 PRINT &EE(5440,5481),&EE(5490,5512) 4323 GOSUB 6239 4326 IF K THEN 4371 4329 IFN INPUTLEN=3 THEN 4344 4332 CB &CC(0),&EE(236),3 4335 IF INDEX=-1 THEN 4353 4338 CB &CC(0),&EE(149),3 4341 IF INDEX=-1 THEN 4359 4344 LET AA(98):=0 4345 GOSUB 6129 4347 PRINT &EE(5520,5536) 4350 GOTO 4317 4353 LET B:=0 4356 GOTO 4362 4359 LET B:=1 4362 LET &BB(0):=!30,&BB(1):=!CD,&BB(2):=B 4365 LET P:=3,&VV(0):=10,&VV(1,10):="CLEAR LOGS" 4366 GOSUB 111 4368 GOSUB 6276 4371 GOSUB 6228 4374 GOTO 3951 4377 LET A:=18,&AA(0,A):="INTERNAL DIAGNOSTIC" 4379 GOSUB 8360 4381 LPOFF 4383 PRINT &EE(5590,5618) 4386 LET C:=127,AA(70):=0 4389 GOSUB 6147 4390 IF K THEN 4425 4392 LET WW(1):=D 4396 PRINT &EE(5560,5587) 4399 LET C:=32767,AA(70):=1 4400 GOSUB 6147 4401 IF K THEN 4425 4402 LET AA(0):=D,D:=WW(1) 4403 GOSUB 111 4404 PRINT &EE(5650,5664);D;&EE(5620,5646);AA(0) 4405 LET B:=ZZ(40) 4410 LET &BB(0):=!2F,&BB(1):=!33,&BB(2):=AA(0) LSR 8 4413 LET &BB(3):=AA(0) MOD 256,&BB(4):=D 4416 LET P:=5,&VV(0):=4,&VV(1,4):="DIAG" 4419 GOSUB 6276 4422 UNIT 0,B 4425 GOSUB 6228 4428 GOTO 3951 4431 LET A:=17,&AA(0,A):="Read Error Summary" 4433 GOSUB 8360 4435 LPOFF 4437 IF !210 LE ZZ(80) LE !23F THEN 6387 4438 IF &DD(5)=2 THEN 4448 4440 PRINT &EE(5690,5745) 4443 LET &LL(0):=2,&LL(1,2):="CP" 4445 INAME 4446 IF K THEN 4503 4447 GOTO 4449 4448 LET WW(0):=0 4449 LET &BB(0):=!32,&BB(1):=!C1,&BB(2):=WW(0),AA(74):=256 4452 LET P:=3,&VV(0):=6,&VV(1,6):="ERRSUM" 4453 GOSUB 111 4455 GOSUB 6297 4458 IF Z THEN 4503 4461 PRINT &EE(5750,5771),0,&EE(5810,5831) 4467 LET C:=0 4470 GOSUB 8121 4473 IFN WW(0) THEN 4503 4476 PRINT &EE(5840,5864) 4479 LET C:=1 4482 GOSUB 8121 4485 PRINT &EE(5870,5894) 4488 LET C:=2 4491 GOSUB 8121 4494 PRINT &EE(5900,5924) 4497 LET C:=3 4500 GOSUB 8121 4503 GOSUB 6228 4506 GOTO 3951 4509 LET A:=9,&AA(0,A):="INIT MEDIA" 4511 GOSUB 8360 4513 LPOFF 4514 GOSUB 5869 4515 IF K THEN 4554 4516 IFN F THEN 3951 4518 IF &DD(5)=2 THEN 4560 4521 PRINT &EE(5940,5971),&EE(5980,6010),&EE(6020,6050) 4530 PRINT " or",&EE(6060,6100) 4531 PRINT " ","(Normally use B)" 4533 LET &LL(0):=3,&LL(1,3):="BPI" 4536 INAME 4537 IF K THEN 4554 4539 PRINT &EE(6110,6141) 4540 PRINT " ","(Normally use 1)" 4542 LET C:=32 4545 GOSUB 6147 4546 IF K THEN 4554 4548 LPOFF 4549 PRINT &EE(6150,6198) 4550 GOSUB 111 4551 FMT 0,WW(0),D 4554 GOSUB 6228 4557 GOTO 3951 4560 PRINT &EE(6200,6240),&EE(6242,6253) 4563 GOSUB 5883 4564 IF K THEN 4554 4566 IFN F THEN 4572 4569 LET WW(0):=5,D:=0 4570 GOTO 4550 4572 LET &BB(0):=!32,&BB(1):=!C5,&BB(2):=0,P:=3,AA(74):=4096 4573 LET &VV(0):=7,&VV(1,7):="Run Log" 4574 GOSUB 111 4575 GOSUB 6297 4576 LPOFF 4577 IF EE(1)=1 THEN 4586 4578 IF EE(1)=2 THEN 4586 4579 IF EE(1)=4 THEN 4586 4580 PRINT &EE(6400,6429) 4581 IFN L THEN 4584 4582 LPON 4583 PRINT &EE(6400,6429) 4584 LET WW(0):=0,D:=0 4585 GOTO 4548 4586 PRINT "Jump Spares will now be converted to Skip Spares." 4587 IFN L THEN 4584 4588 LPON 4589 PRINT "Jump Spares will now be converted to Skip Spares." 4590 GOTO 4584 4592 LET N:=0 4593 PRINT &EE(6260,6279); 4594 IF EE(1) AND !FF=0 THEN 4608 4595 IF EE(1) AND !FF=1 THEN 4614 4596 IF EE(1) AND !FF=2 THEN 4620 4599 IF EE(1) AND !FF=4 THEN 4626 4602 PRINT &EE(6280,6302) 4605 GOTO 4632 4608 PRINT &EE(6320,6332) 4611 GOTO 4632 4614 PRINT &EE(6340,6351) 4617 GOTO 4629 4620 PRINT &EE(6360,6371) 4623 GOTO 4629 4626 PRINT &EE(6380,6399) 4629 LET N:=1 4632 RETURN 4659 LET A:=22,&VV(1,7):="ERT LOG",&AA(0,A):="Read ERT Data Error Log" 4660 GOSUB 8360 4662 LET &BB(1):=!C6 4665 IFN &DD(5)=2 THEN 5004 4668 LET &BB(0):=!32,&BB(2):=0,AA(74):=1000,P:=3 4669 LET &VV(0):=7,&VV(1,7):="ERT LOG" 4671 GOSUB 6297 4672 IF Z THEN 4797 4677 PRINT 0,&EE(6460,6479),0 4680 LET Y:=0,Z:=EE(0) LSR 8*3+20/2 4683 GOSUB 7488 4686 LET B:=&FF(5) LSL 8 OR &FF(6),C:=&FF(7) LSL 8 OR &FF(8),D:=B+C 4689 LET E:=&FF(9),F:=&FF(10) 4692 PRINT &EE(6480,6501);" "; 4695 LET W:=&FF(1) LSL 8 OR &FF(2),Y:=&FF(3) LSL 8 OR &FF(4) 4698 BCDCNVT 0,W,Y 4710 PRINT 0,&EE(6510,6539);D,&EE(6540,6569);B,&EE(6570,6599);C 4719 GOSUB 4725 4722 GOTO 4734 4725 PRINT &EE(6600,6629);E,&EE(13220,13246);" ";F,0 4731 RETURN 4734 LET E:=13 4737 GOSUB 4743 4740 GOTO 4797 4743 LET B:=&FF(E) AND !40=!40,C:=&FF(E) AND !80=!80,H:=0 4744 PRINT "LOGICAL" 4749 PRINT &EE(6650,6679) 4752 FOR I:=1 UNTIL &FF(0) 4755 LET B:=&FF(E) AND !40=!40 4758 LET C:=&FF(E) AND !80=!80,H:=H OR B OR C 4761 LET D:=E-1,F:=E-2,G:=&FF(F) LSL 8 OR &FF(D) 4764 IFN B AND C THEN 4773 4767 PRINT !G;7;&EE(273,284);"AND ";&EE(291,303) 4770 GOTO 4788 4773 IFN B THEN 4782 4776 PRINT !G;&EE(6710,6729) 4779 GOTO 4788 4782 IFN C THEN 4788 4785 PRINT !G;&EE(6730,6749) 4788 LET E:=E+3 4791 NEXT 4752 4792 IFN H THEN 4812 4794 RETURN 4797 GOSUB 6228 4800 GOTO 3951 4803 PRINT &EE(6750,6779),&EE(6780,6809) 4809 END 4812 PRINT &EE(6810,6849),0 4815 GOTO 4797 4818 LET A:=8,&AA(0,A):="Fault Log" 4820 LET &VV(0):=9,&VV(1,9):="Fault log" 4822 GOSUB 8360 4824 IF &DD(5)=2 THEN 6387 4827 LET &BB(0):=!32,&BB(1):=!C7,P:=2,AA(74):=2048 4830 GOSUB 6297 4834 IF Z THEN 4839 4836 GOSUB 7062 4839 GOSUB 6228 4842 GOTO 3951 4845 LET A:=11,&AA(0,A):="Preset Drive" 4847 LET &VV(0):=12,&VV(1,12):="Preset Drive" 4849 GOSUB 8360 4851 LET &BB(0):=!30,&BB(1):=!CE,P:=2 4854 GOSUB 6276 4857 GOSUB 6228 4860 GOTO 3951 4863 LET A:=13,&AA(0,A):="Request Status" 4865 LET &VV(0):=6,&VV(1,6):="Status" 4867 GOSUB 8360 4869 STATUS 0,GG(0) 4870 FOR I:=0 UNTIL 9 4871 LET PP(I):=GG(I) 4872 NEXT 4870 4875 GOSUB 338 4878 GOSUB 6228 4881 GOTO 3951 4884 LET A:=19,&AA(0,A):="Read Revision Number" 4886 LET &VV(0):=3,&VV(1,3):="REV" 4888 GOSUB 8360 4890 LET &BB(0):=!32,&BB(1):=!C3,P:=2,AA(74):=22 4893 GOSUB 6297 4897 IF Z THEN 4902 4899 GOSUB 7197 4902 GOSUB 6228 4905 GOTO 3951 4908 LET A:=3,&AA(0,A):="Help" 4911 GOSUB 8360 4914 PRINT &EE(6920,6950),&EE(6960,6976),&EE(6980,7004) 4917 PRINT &EE(7010,7042);" utility",&EE(7050,7080),&EE(7090,7118) 4918 PRINT &EE(13120,13150) 4920 PRINT &EE(7120,7152),&EE(7160,7208),&EE(13160,13180); 4921 PRINT &EE(13190,13217) 4923 PRINT &EE(7210,7240),&EE(7300,7325),&EE(7330,7379) 4926 PRINT &EE(7380,7409),&EE(7410,7439),&EE(7440,7462) 4929 PRINT &EE(7470,7495);" utility",&EE(7500,7531),&EE(7540,7576) 4932 PRINT &EE(7580,7608),&EE(7610,7632),&EE(7640,7656) 4935 PRINT &EE(7660,7691),&EE(7700,7712);" utility",&EE(7720,7737);" utility" 4938 PRINT &EE(7740,7769),&EE(7770,7808),&EE(7810,7836) 4992 GOSUB 6228 4995 GOTO 3951 4998 LET A:=6,&BB(1):=!C5,&VV(1,7):="RUN LOG",&AA(0,6):="Run Log" 5000 LET &VV(0):=7,&VV(1,7):="Run Log" 5002 GOSUB 8360 5004 IFN &DD(5)=2 THEN 5012 5007 LET I:=J:=0 5010 GOTO 5025 5012 LPOFF 5013 GOSUB 6318 5014 IF K THEN 5067 5016 LET J:=H,I:=H 5019 IFN H=-1 THEN 5025 5022 LET J:=&DD(27),I:=0 5025 FOR D:=I UNTIL J 5028 LET &VV(0):=7,&BB(0):=!32,&BB(2):=D,P:=3,AA(74):=4096 5030 GOSUB 111 5031 GOSUB 6297 5035 IF Z THEN 5067 5037 IF &DD(5)=2 THEN 5046 5040 GOSUB 6777 5043 GOTO 5064 5046 LET E:=EE(0) AND !FF,F:=EE(1) LSR 8,Y:=0,Z:=500 5049 GOSUB 7488 5050 PRINT 6;&EE(7850,7869),0 5052 GOSUB 4725 5055 GOSUB 4592 5058 LET E:=6 5061 GOSUB 4743 5064 NEXT 5025 5067 GOSUB 6228 5070 GOTO 3951 5073 LET A:=15,&AA(0,A):="Read Full Sector" 5075 GOSUB 8360 5077 LPOFF 5079 GOSUB 6381 5082 PRINT &EE(7890,7929) 5085 LET C:=32767,AA(70):=1 5088 GOSUB 6147 5089 IF K THEN 5112 5091 LET AA(80):=D 5092 GOSUB 5202 5093 IF K THEN 5112 5094 FOR AA(81):=1 UNTIL AA(80) 5098 GOSUB 111 5100 RFSI 0,EE(0) 5104 IF AA(79) THEN 5112 5106 GOSUB 7338 5109 NEXT 5094 5112 GOSUB 6228 5115 GOTO 3951 5118 LET B:=!20 OR DEVICE,A:=20,&AA(0,A):="Selected Device Clear" 5120 LET &VV(0):=7,&VV(1,7):="SDCLEAR" 5122 GOSUB 8360 5127 BSIO XX 5130 CHP !5E,B,!4,!BF 5133 GOSUB 189 5136 GOSUB 930 5145 GOSUB 6228 5148 GOTO 3951 5151 LET A:=11,&AA(0,A):="Read Sensors" 5153 LET &VV(0):=5,&VV(1,5):="SENSE" 5155 GOSUB 8360 5157 GOSUB 6381 5160 LET &BB(0):=!32,&BB(1):=!C2,P:=2,AA(74):=5 5163 GOSUB 6297 5166 GOSUB 111 5167 IF Z THEN 5172 5169 GOSUB 7254 5172 GOSUB 6228 5175 GOTO 3951 5178 LET A:=10,&AA(0,A):="Spare Block" 5180 GOSUB 8360 5182 LPOFF 5184 IF &DD(5)=2 THEN 5241 5187 PRINT &EE(8100,8139) 5190 GOSUB 5883 5191 IF K THEN 5295 5193 LET F:=NOT F AND 1 5196 GOSUB 5202 5197 IF K THEN 5295 5199 GOTO 5231 5202 PRINT &EE(8140,8199) 5205 GOSUB 6397 5206 IF K THEN 5230 5208 IF G THEN 5218 5211 GOSUB 6465 5217 GOTO 5229 5218 GOSUB 6408 5221 IF K THEN 5230 5227 GOSUB 111 5228 SETADDR 0,G,0,AA(9),AA(25),AA(59) 5229 LPOFF 5230 RETURN 5231 LET AA(98):=1,AA(99):=1 5232 GOSUB 111 5234 IF AA(79) THEN 5295 5235 SPAREBLK 0,F 5236 STATUS 0,PP(0) 5237 GOSUB 338 5238 GOTO 5295 5241 PRINT &EE(8200,8249) 5244 LET &LL(0):=2,&LL(1,2):="SJ" 5247 INAME 5248 IF K THEN 5295 5250 LET F:=WW(0)*4+1,G:=0 5253 GOTO 5301 5295 GOSUB 6228 5296 LET AA(98):=0 5298 GOTO 3951 5301 GOSUB 5211 5302 IF K THEN 5295 5304 GOTO 5231 5307 LET A:=16,&AA(0,A):="Read Drive Tables" 5309 LET &VV(0):=6,&VV(1,6):="TABLES" 5310 GOSUB 8360 5311 LPOFF 5313 PRINT &EE(8270,8293),&EE(8300,8336),&EE(8340,8371),&EE(8380,8416) 5316 PRINT &EE(8420,8457),&EE(8460,8497),&EE(8500,8523) 5334 LET C:=11,AA(70):=1 5337 GOSUB 6147 5338 IF K THEN 5373 5340 IF 6 LE D LE 9 THEN 5313 5343 LET &BB(0):=!32,&BB(1):=!C4,&BB(2):=D,P:=3,AA(74):=512 5346 IFN &DD(5) EQ 2 THEN 5352 5349 IF D LT 10 THEN 6387 5352 IFN &DD(5) EQ 1 THEN 5358 5355 IF D GT 3 THEN 6387 5358 IFN &DD(5) EQ 0 THEN 5363 5359 IF !210 LE ZZ(80) LE !215 THEN 5377 5361 IF D GT 1 THEN 6387 5363 GOSUB 111 5365 GOSUB 6297 5368 IF Z THEN 5373 5370 GOSUB 7515 5373 GOSUB 6228 5376 GOTO 3951 5377 IF D GT 3 THEN 6387 5378 GOTO 5363 5379 LET A:=14,C:=15,&AA(0,A):="Set Unit Number" 5381 GOSUB 8360 5383 LPOFF 5388 PRINT &EE(8550,8569) 5390 GOSUB 6147 5391 IF K THEN 5400 5392 GOSUB 111 5394 UNIT 0,D 5396 STATUS 0,PP(0) 5397 GOSUB 338 5398 LET ZZ(40):=PP(0) LSR 8 AND !F 5399 DESCRIBE 0,&DD(0) 5400 GOSUB 6228 5403 GOTO 3951 5406 LET A:=20,&AA(0,A):="Unload tape cartridge" 5408 LET &VV(0):=6,&VV(1,6):="Unload" 5409 GOSUB 8360 5410 IFN &DD(5)=2 THEN 6387 5412 LET P:=1,&BB(0):=!4A 5415 GOSUB 6276 5418 GOSUB 6228 5421 GOTO 3951 5424 LET A:=16,&AA(0,A):="Read Tape Use Log" 5426 GOSUB 8360 5430 IFN &DD(5)=2 THEN 6387 5433 LET &BB(0):=!32,&BB(1):=!C7,P:=2,AA(74):=2048 5434 LET &VV(0):=7,&VV(1,7):="Use Log" 5436 GOSUB 6297 5437 IF Z THEN 5460 5439 PRINT &EE(8630,8639); 5440 BCDCNVT 0,0,EE(0) 5442 PRINT 0,&EE(8640,8662); 5448 BCDCNVT 0,EE(1),EE(2) 5457 PRINT 0 5460 GOSUB 6228 5463 GOTO 3951 5466 LET A:=14,&AA(0,A):="Write File Mark" 5468 GOSUB 8360 5470 LPOFF 5471 IFN &DD(5)=2 THEN 6387 5472 GOSUB 5869 5473 IF K THEN 5481 5474 IFN F THEN 3951 5475 GOSUB 6465 5476 GOSUB 111 5478 WFM 0 5481 GOSUB 6228 5484 GOTO 3951 5487 LET A:=28,&AA(0,A):="CERTIFICATION ERROR RATE TEST" 5488 GOSUB 8360 5489 LPOFF 5490 IFN &DD(5)=2 THEN 6387 5491 GOSUB 5869 5492 IF K THEN 5481 5493 IFN F THEN 3951 5494 LET P:=1,O:=2,B:=1,&BB(0):=!30,&BB(1):=!C8 5496 LET &BB(3):=2,&BB(4):=2 5499 GOSUB 5778 5500 IF K THEN 5481 5502 GOTO 5646 5505 LET A:=24,&AA(0,24):="Read Only Error Rate Test" 5506 GOSUB 8360 5507 LPOFF 5508 LET B:=0,P:=1,&BB(0):=!30,O:=0 5511 GOSUB 5778 5513 IF K THEN 5481 5514 GOTO 5529 5517 LET A:=30,&AA(0,A):="Write Then Read Error Rate Test" 5518 GOSUB 8360 5519 LPOFF 5520 LET B:=1,P:=1,&BB(0):=!30,O:=1 5522 GOSUB 5869 5523 IF K THEN 5481 5524 IFN F THEN 3951 5526 GOSUB 5778 5527 IF K THEN 5481 5529 IF &DD(5)=2 THEN 5601 5532 IF B THEN 5550 5535 PRINT &EE(8790,8829) 5538 GOSUB 5883 5539 IF K THEN 5481 5541 LET &BB(1):=-F*3+!C9,AA(72):=&BB(1) 5544 IFN F THEN 5569 5547 GOTO 5572 5550 PRINT &EE(8930,8959),&EE(8960,8980),&EE(8990,9012) 5553 PRINT &EE(9020,9033),&EE(9040,9069) 5565 GOSUB 5967 5566 IF K THEN 5481 5568 IF F THEN 5572 5569 GOSUB 5937 5570 IF K THEN 5481 5571 IF AA(79) THEN 4878 5572 LET &BB(3):=0 5574 PRINT &EE(9070,9109) 5580 GOSUB 5883 5581 IF K THEN 5481 5583 IFN F THEN 5643 5586 PRINT &EE(9110,9149) 5589 LET AA(70):=-127,C:=127 5592 GOSUB 6147 5593 IF K THEN 5481 5595 LET &BB(3):=-F*D 5598 GOTO 5643 5601 GOSUB 6018 5602 IF K THEN 5481 5604 LET &BB(4):=F,&BB(1):=!C8 5607 IF F THEN 5634 5610 GOSUB 6465 5611 IF K THEN 5481 5613 LET Y:=32767,Q:=1 5616 PRINT &EE(9150,9189) 5619 GOSUB 6330 5620 IF K THEN 5481 5622 LET Y:=0 5625 IFN H=-1 THEN 5631 5628 LET Y:=-1 5631 LENGTH 0,Y,H 5634 LET F:=0 5637 IFN O=0 THEN 5643 5640 IF &DD(5)=2 THEN 5769 5643 IFN B THEN 5670 5646 PRINT &EE(9190,9220),&EE(9230,9260),&EE(9270,9308) 5649 PRINT &EE(9310,9339),&EE(9340,9359) 5661 GOSUB 6057 5662 IF K THEN 5481 5664 IFN F=1 THEN 5670 5667 GOSUB 6597 5668 IF K THEN 5481 5669 IF AA(79) THEN 4878 5670 IF &DD(5)=2 THEN 5769 5673 PRINT &EE(9360,9379),&EE(9380,9406),&EE(9410,9439) 5676 PRINT &EE(9440,9466),&EE(9470,9485) 5688 GOSUB 7830 5689 IF K THEN 5481 5691 LET &BB(4):=0 5694 IF F=2 THEN 5700 5697 LET &BB(0):=!32,&BB(4):=F 5700 LET AA(74):=1000,P:=6 5703 GOSUB 111 5706 IFN &BB(1)=!C8 THEN 5715 5709 LET P:=7 5712 GOTO 5721 5715 IFN &BB(1)=!CC THEN 5721 5718 LET P:=5 5721 IFN &BB(0)=!30 THEN 5730 5723 GOSUB 5776 5724 GOSUB 6276 5727 GOTO 5748 5730 GOSUB 5776 5731 GOSUB 6297 5733 LET D:=1000-XX(55) 5736 IF D=1 THEN 5748 5737 IF Z THEN 5748 5739 GOSUB 7959 5742 LET &BB(2):=0 5745 GOTO 5730 5748 GOSUB 6228 5751 IF &DD(5)=2 THEN 5757 5754 GOTO 3951 5757 PRINT &EE(10000,10039) 5760 GOSUB 5883 5761 IF K THEN 5481 5763 IF F THEN 4659 5766 GOTO 3951 5769 LET &BB(5):=F,P:=6,&BB(3):=O 5772 GOSUB 5853 5773 GOSUB 5776 5775 GOTO 5723 5776 LET &VV(0):=3,&VV(1,3):="ERT" 5777 RETURN 5778 PRINT &EE(10040,10060) 5781 PRINT &EE(10070,10093) 5784 GOSUB 6239 5785 IF K THEN 5799 5787 CB &CC(0),&EE(244),3 5790 IFN INDEX=-1 THEN 5802 5793 IFN INPUTLEN=3 THEN 5817 5796 LET &BB(2):=255,AA(72):=2 5799 RETURN 5802 LET Z:=INPUTLEN-1 5805 FOR I:=0 UNTIL Z 5808 IFN "0" LE &CC(I) LE "9" THEN 5817 5811 NEXT 5805 5814 GOTO 5823 5817 GOSUB 6129 5820 GOTO 5778 5823 CONVERT 0 5826 IFN 1 LE AA(71) LE 254 THEN 5817 5829 LET &BB(2):=AA(71),P:=2 5832 RETURN 5835 FUNCTION CONVERT VALUE1 5838 LET AA(71):=0,Z:=INPUTLEN-1 5841 FOR I:=VALUE1 UNTIL Z 5844 LET AA(71):=AA(71)*10-48+&CC(I) 5847 NEXT 5841 5850 ENDF 5853 PRINT &EE(10100,10127) 5856 RETURN 5869 PRINT &EE(10130,10159) 5871 PRINT "data.",&EE(10160,10178) 5874 GOSUB 5883 5875 IF K THEN 5880 5876 IF F THEN 5880 5877 PRINT &EE(10520,10556) 5880 RETURN 5883 GOSUB 6239 5884 IF K THEN 5901 5886 IF INPUTLEN>3 THEN 5928 5889 IFN INPUTLEN=3 THEN 5904 5892 CB &CC(0),&EE(239),3 5895 IFN INDEX=-1 THEN 5928 5898 LET F:=-1 5901 RETURN 5904 IFN INPUTLEN=2 THEN 5919 5907 CB &CC(0),&EE(242),2 5910 IFN INDEX=-1 THEN 5928 5913 LET F:=0 5916 RETURN 5919 IFN INPUTLEN=1 THEN 5928 5922 IF &CC(0)="Y" THEN 5898 5925 IF &CC(0)="N" THEN 5913 5928 GOSUB 6129 5931 PRINT &EE(10180,10201) 5934 GOTO 5883 5937 GOSUB 6408 5938 IF K THEN 5964 5940 SETADDR 0,1,0,AA(9),AA(25),AA(59) 5943 PRINT &EE(10210,10232) 5946 PRINT &EE(10240,10271) 5949 PRINT &EE(10280,10307) 5952 LET &LL(0):=5,&LL(1,5):="STCHV" 5955 INAME 5958 LET F:=WW(0) 5961 LET &BB(5):=F 5964 RETURN 5967 GOSUB 6239 5968 IF K THEN 5982 5970 IFN INPUTLEN=2 THEN 6009 5971 LET AA(72):=&BB(0) 5973 CB &CC(0),&EE(247),2 5976 IFN INDEX=-1 THEN 5985 5979 LET F:=0,&BB(1):=!C8 5982 RETURN 5985 CB &CC(0),&EE(249),2 5988 IFN INDEX=-1 THEN 5997 5991 LET F:=1,&BB(1):=!CB 5994 RETURN 5997 CB &CC(0),&EE(251),2 6000 IFN INDEX=-1 THEN 6009 6003 LET F:=2,&BB(1):=!CA 6006 RETURN 6009 GOSUB 6129 6012 PRINT &EE(10310,10328) 6015 GOTO 5967 6018 PRINT &EE(10330,10353),&EE(10360,10378) 6024 PRINT &EE(10380,10398),&EE(10400,10414) 6030 LET &LL(0):=3,&LL(1,3):="CSE" 6033 INAME 6034 IF K THEN 6054 6036 LET F:=WW(0) 6039 IFN F=1 THEN 6054 6042 LET AA(70):=0,C:=15 6045 PRINT &EE(10420,10437) 6048 GOSUB 6147 6051 LET F:=D LSL 4 OR 1 6054 RETURN 6057 GOSUB 6239 6058 IF K THEN 6102 6060 IFN INPUTLEN=2 THEN 6120 6063 CB &CC(0),&EE(247),2 6066 IFN INDEX=-1 THEN 6075 6069 LET F:=0 6072 GOTO 6096 6075 CB &CC(0),&EE(253),2 6078 IFN INDEX=-1 THEN 6087 6081 LET F:=1 6084 GOTO 6096 6087 CB &CC(0),&EE(249),2 6090 IFN INDEX=-1 THEN 6120 6093 LET F:=2 6096 IFN &BB(1)=!C8 THEN 6105 6099 LET &BB(6):=F 6102 RETURN 6105 IFN &BB(1)=!CB THEN 6114 6108 LET &BB(5):=F 6111 RETURN 6114 IF &BB(1)=!CA THEN 6108 6117 RETURN 6120 GOSUB 6129 6123 PRINT &EE(10440,10458) 6126 GOTO 6057 6129 PRINT &EE(10460,10492) 6132 RETURN 6135 LET &CC(0):=0 6138 GOSUB 6239 6141 IFN INPUTLEN=0 THEN 6151 6142 RETURN 6147 LET &CC(0):=0 6150 GOSUB 6239 6151 IF K THEN 6195 6153 IF &CC(0)="-" THEN 6171 6156 FOR I:=0 UNTIL Z 6159 IFN "0" LE &CC(I) LE "9" THEN 6198 6162 NEXT 6156 6165 CONVERT 0 6168 GOTO 6186 6171 FOR I:=1 UNTIL Z 6174 IFN "0" LE &CC(I) LE "9" THEN 6198 6177 NEXT 6171 6180 CONVERT 1 6183 LET AA(71):=-AA(71) 6186 LET D:=AA(71) 6189 IF C=-1 THEN 6195 6192 IFN AA(70) LE D LE C THEN 6198 6195 RETURN 6198 IF C=-1 THEN 6210 6201 GOSUB 6129 6204 PRINT AA(70);" to ";C 6207 GOTO 6147 6210 GOSUB 6129 6213 IF &AA(0)="I" THEN 6222 6216 PRINT "0 to 65535" 6219 GOTO 6147 6222 PRINT "1 to 65535" 6225 GOTO 6147 6228 IF K THEN 6234 6229 GOSUB 111 6231 IF AA(79) THEN 6234 6232 PRINT 0,&AA(0,A);&EE(10500,10517),0 6234 LPOFF 6235 LET AA(79):=0 6237 RETURN 6239 INPUT &CC(0,7) 6240 LET Z:=INPUTLEN-1 6243 IF INPUTLEN=0 THEN 6267 6246 FOR I:=0 UNTIL Z 6249 IFN 97 LE &CC(I) LE 122 THEN 6255 6252 LET &CC(I):=&CC(I)-32 6255 NEXT 6246 6258 IFN INPUTLEN=4 THEN 6267 6261 CB &CC(0),&EE(67),4 6264 IF INDEX=-1 THEN 6270 6267 RETURN 6270 PRINT &EE(10520,10556) 6273 LET K:=1 6274 RETURN 6276 BSIO XX 6282 WR 5,&BB(0),P 6285 WAIT 6288 GOSUB 192 6291 GOSUB 927 6294 RETURN 6297 BSIO XX 6303 WR 5,&BB(0),P 6306 WAIT 6309 RR !E,EE(0),AA(74) 6312 WAIT 6315 GOTO 6288 6318 PRINT &EE(10560,10581) 6321 LET Y:=&DD(27),Q:=0 6324 GOSUB 6330 6327 RETURN 6330 GOSUB 6239 6331 IF K THEN 6345 6333 IFN INPUTLEN=3 THEN 6348 6336 CB &CC(0),&EE(236),3 6339 IFN INDEX=-1 THEN 6348 6342 LET H:=-1 6345 RETURN 6348 LET Z:=INPUTLEN-1 6351 FOR I:=0 UNTIL Z 6354 IFN "0" LE &CC(I) LE "9" THEN 6372 6357 NEXT 6351 6360 CONVERT 0 6363 IFN Q LE AA(71) LE Y THEN 6372 6366 LET H:=AA(71) 6369 RETURN 6372 GOSUB 6129 6375 PRINT Q;" to ";Y;", ALL or EXIT" 6378 GOTO 6330 6381 IFN !210 LE ZZ(80) LE !215 THEN 6387 6384 RETURN 6387 GOSUB 111 6388 PRINT &EE(10590,10620) 6390 PRINT &EE(10630,10661) 6391 LPOFF 6393 GOTO 3951 6397 LET &LL(0):=2,&LL(1,2):="BV" 6399 INAME 6402 LET G:=WW(0) 6405 RETURN 6408 PRINT &EE(10670,10698),&EE(10700,10721),&EE(10730,10747),0 6417 PRINT &EE(10750,10767);AA(9) 6420 LET C:=&DD(25) LSL 8+&DD(26),AA(70):=0 6423 GOSUB 6135 6424 IF K THEN 6462 6426 IFN INPUTLEN THEN 6432 6429 LET AA(9):=D 6432 PRINT &EE(10770,10784);AA(25) 6435 LET C:=&DD(27) 6438 GOSUB 6135 6439 IF K THEN 6462 6441 IFN INPUTLEN THEN 6447 6444 LET AA(25):=D 6447 PRINT &EE(10790,10806);AA(59) 6450 LET C:=&DD(28) LSL 8+&DD(29) 6453 GOSUB 6135 6454 IF K THEN 6462 6456 IFN INPUTLEN THEN 6462 6459 LET AA(59):=D 6462 RETURN 6465 PRINT "Current "; 6468 LET ZZ(70):=0 6471 ADDR AA(3),AA(4),AA(5) 6474 PRINT &EE(10810,10837),&EE(10840,10870) 6480 PRINT &EE(10880,10909),&EE(10910,10933) 6486 GOSUB 6239 6487 IF K THEN 6588 6488 IFN INPUTLEN THEN 6585 6490 LET W:=INPUTLEN-1 6492 FOR X:=0 UNTIL W 6494 IFN "0" LE &CC(X) LE "9" THEN 6552 6496 LET Y:=W-X,&FF(Y):=&CC(X)-48 6498 NEXT 6492 6500 DTOHEX W 6502 LET AA(3):=NN(0),AA(4):=NN(1),AA(5):=NN(2) 6519 LET S:=AA(3),T:=&DD(30) LSL 8 OR &DD(31) 6522 GOSUB 1038 6525 IFN S=AA(3) THEN 6552 6528 LET S:=AA(4),T:=&DD(32) LSL 8 OR &DD(33) 6531 GOSUB 1038 6534 IFN S=AA(4) THEN 6552 6537 IFN S=T THEN 6549 6540 LET S:=AA(5),T:=&DD(34) LSL 8 OR &DD(35) 6543 GOSUB 1038 6546 IFN S=AA(5) THEN 6552 6549 GOTO 6585 6552 GOSUB 6129 6555 PRINT "0 - "; 6558 LET AA(3):=AA(4):=AA(5):=0 6561 LET Z:=&DD(30) LSL 8 OR &DD(31) 6567 LET Y:=&DD(32) LSL 8 OR &DD(33) 6573 LET W:=&DD(34) LSL 8 OR &DD(35) 6576 BCDCNVT Z,Y,W 6579 PRINT " " 6582 GOTO 6486 6585 GOSUB 111 6586 SETADDR 0,0,AA(3),AA(4),AA(5) 6587 LPOFF 6588 RETURN 6591 LET &FF(0):=J:=0 6594 RETURN 6597 PRINT &EE(10940,10969),&EE(10970,10987) 6612 GOSUB 6239 6613 IF K THEN 6720 6615 IFN INPUTLEN THEN 6591 6618 LET Z:=INPUTLEN-1 6621 FOR I:=0 UNTIL Z 6624 IF "0" LE &CC(I) LE "F" THEN 6630 6627 IFN "A" LE &CC(I) LE "F" THEN 6723 6630 NEXT 6621 6633 LET I:=INPUTLEN-1,J:=-1 6636 IF I=-1 THEN 6681 6639 LET J:=J+1 6642 IFN "0" LE &CC(I) LE "9" THEN 6651 6645 LET &FF(J):=&CC(I)-48 6648 GOTO 6654 6651 LET &FF(J):=&CC(I)-55 6654 LET I:=I-1 6657 IF I=-1 THEN 6681 6660 IFN "0" LE &CC(I) LE "9" THEN 6669 6663 LET &FF(J):=&CC(I)-48 LSL 4+&FF(J) 6666 GOTO 6672 6669 LET &FF(J):=&CC(I)-55 LSL 4+&FF(J) 6672 LET I:=I-1 6675 GOTO 6636 6681 LET J:=INPUTLEN+1/2,W:=J,X:=J-1 6682 FOR I:=0 UNTIL X 6683 LET Z:=X-I 6684 LET &CC(I):=&FF(Z) 6685 NEXT 6682 6686 FOR I:=0 UNTIL X 6687 LET &FF(I):=&CC(I) 6688 NEXT 6686 6690 FOR I:=1 UNTIL 63 6691 LET Z:=I*W 6692 FOR J:=0 UNTIL X 6693 LET Y:=Z+J,&FF(Y):=&FF(J) 6696 NEXT 6692 6699 NEXT 6690 6702 LET WW(112):=!31D1,P:=2,Z:=2,WW(110):=64 6705 GOTO 6717 6708 FUNCTION UP NAME1 6709 LET &VV(0):=16,&VV(1,16):="SET USER PATTERN" 6711 GOSUB 921 6714 ENDF 6717 UP &FF(0) 6720 RETURN 6723 GOSUB 6129 6726 PRINT &EE(11010,11031) 6729 GOTO 6597 6730 IFN ZZ(70) THEN 6736 6731 LET B:=AA(9) LSR 8,C:=AA(9) LSL 8 OR AA(25) 6732 ADDR B,C,AA(59) 6734 GOTO 6738 6736 ADDR AA(3),AA(4),AA(5) 6738 RETURN 6777 PRINT 0,&EE(11040,11048);D,&EE(11050,11070); 6783 LET Z:=EE(0) AND !FF,I:=EE(1),Y:=EE(2) 6786 BCDCNVT Z,I,Y 6801 PRINT 0,&EE(11080,11103);EE(3) 6804 LET Z:=EE(4) LSR 8 6807 PRINT &EE(11110,11135);Z 6810 LET I:=EE(0) LSR 8 6813 PRINT &EE(11140,11164);I 6816 LET C:=0 6819 LET B:=EE(0) LSR 8-1 6822 IF B=-1 THEN 6942 6825 FOR C:=0 UNTIL B 6828 GOSUB 6834 6831 GOTO 6933 6834 LET E:=C*5+4,F:=E+1,G:=E+2 6837 LET EE(0):=EE(E) LSL 8 6840 LET EE(0):=EE(F) LSR 8+EE(0) 6843 LET EE(1):=EE(F) LSL 8 6846 LET EE(1):=EE(G) LSR 8+EE(1) 6849 LET E:=E+2,F:=E+1,G:=E+2 6852 LET EE(2):=EE(E) LSL 8 6855 LET EE(2):=EE(F) LSR 8 OR EE(2) 6858 LET EE(3):=EE(F) LSL 8 6861 LET EE(3):=EE(G) LSR 8 OR EE(3) 6864 LET E:=E+2,F:=E+1 6867 LET EE(4):=EE(E) LSL 8 6870 LET EE(4):=EE(F) LSR 8 OR EE(4) 6873 GOSUB 6879 6876 RETURN 6879 GOSUB 6945 6882 IF 0 LE EE(0) THEN 6894 6885 LET X:=EE(0) AND !7FFF 6888 PRINT "CYL";6;X;"*";7; 6891 GOTO 6897 6894 PRINT "CYL";6;EE(0);7; 6897 IF 0 LE EE(2) THEN 6909 6900 LET X:=EE(2) AND !7FFF 6903 PRINT X;"*" 6906 GOTO 6912 6909 PRINT EE(2) 6912 LET X:=EE(1) LSR 8,Y:=EE(3) LSR 8 6915 PRINT "HEAD";5;X;9;Y 6918 LET X:=EE(1) AND !FF,Y:=EE(3) AND !FF 6921 PRINT "SECT";5;X;8;Y 6927 LET X:=EE(4) LSR 8,Y:=EE(4) AND !FF 6930 RETURN 6933 PRERS X 6936 PRINT &EE(11170,11188);Y 6939 NEXT 6825 6942 RETURN 6945 PRINT 0,&EE(11190,11213) 6948 PRINT &EE(11220,11243) 6951 RETURN 6954 FUNCTION PRERS VALUE1 6957 IFN VALUE1 AND 3=0 THEN 6963 6960 PRINT &EE(11250,11281) 6963 IFN VALUE1 AND 3=1 THEN 6969 6966 PRINT &EE(11290,11324) 6969 IFN VALUE1 AND 3=2 THEN 6975 6972 PRINT &EE(11330,11356) 6975 IF VALUE1 AND 4=0 THEN 6984 6978 PRINT &EE(11360,11381) 6981 GOTO 6987 6984 PRINT &EE(11390,11409) 6987 IF VALUE1 AND 8=0 THEN 6996 6990 PRINT &EE(11410,11435) 6993 GOTO 6999 6996 PRINT &EE(11440,11458) 6999 IF VALUE1 AND 16=0 THEN 7008 7002 PRINT &EE(11460,11515) 7005 GOTO 7011 7008 PRINT &EE(11520,11548) 7011 IF VALUE1 AND 32=0 THEN 7020 7014 PRINT &EE(11550,11592) 7017 GOTO 7023 7020 PRINT &EE(11600,11619) 7023 IF VALUE1 AND 64=0 THEN 7032 7026 PRINT &EE(11620,11653) 7029 GOTO 7035 7032 PRINT &EE(11660,11687) 7035 IF VALUE2=1 THEN 7050 7036 IFN &AA(1)="u" THEN 7050 7038 IF VALUE1 AND 128=0 THEN 7047 7041 PRINT &EE(11690,11702) 7044 GOTO 7050 7047 PRINT &EE(11710,11736) 7050 ENDF 7053 PRINT 0,&EE(11740,11761) 7056 PRINT &EE(11770,11792) 7059 RETURN 7062 LET B:=EE(0) LSR 8 7065 IF B THEN 7074 7068 PRINT &EE(11800,11824) 7071 RETURN 7074 PRINT &EE(11830,11855);B 7077 LET D:=-10,E:=B*11+1,I:=0 7080 IFN B THEN 7071 7083 LET D:=D+11,I:=D/2 7086 IF D/2*2-D=-1 THEN 7107 7089 LET EE(0):=EE(I),F:=I+1,G:=I+2,H:=I+3 7092 LET EE(1):=EE(F),EE(2):=EE(G),EE(3):=EE(H) 7095 LET F:=I+4,G:=EE(F) LSR 8 7098 LET H:=EE(F) AND !FF,F:=I+5 7101 LET J:=EE(F) LSR 8 7104 GOTO 7146 7107 LET F:=I+1,G:=I+2 7110 LET H:=EE(I) LSL 8 7113 LET EE(0):=EE(F) LSR 8 OR H 7116 LET H:=EE(F) LSL 8 7119 LET EE(1):=EE(G) LSR 8 OR H 7122 LET F:=I+3,H:=EE(G) LSL 8 7125 LET EE(2):=EE(F) LSR 8 OR H 7128 LET G:=I+4,H:=EE(F) LSL 8 7131 LET EE(3):=EE(G) LSR 8 OR H 7134 LET G:=EE(G) AND !FF 7137 LET F:=I+5 7140 LET H:=EE(F) LSR 8 7143 LET J:=EE(F) AND !FF 7146 GOSUB 7053 7149 GOSUB 6882 7152 PRINT &EE(11860,11879),&EE(11880,11892); 7158 LET Z:=G,Y:=8 7161 GOSUB 7881 7164 PRINT " binary" 7167 IF J=0 THEN 7176 7170 PRINT &EE(11900,11925);H 7173 GOTO 7179 7176 PRINT &EE(11930,11954);H 7179 LET B:=B-1 7182 GOTO 7080 7197 LET I:=EE(0) LSR 8 7200 PRINT &EE(11960,11979),&EE(11980,11996),&EE(12000,12018) 7206 FOR J:=1 UNTIL I 7209 LET B:=J/2 7212 IF J/2*2-J=-1 THEN 7221 7215 LET &FF(J):=EE(B) LSR 8 7218 GOTO 7224 7221 LET &FF(J):=EE(B) AND !FF 7224 NEXT 7206 7227 FOR J:=1 UNTIL I 7230 LET B:=J-1 7233 IFN &FF(J)=!F3 THEN 7242 7236 PRINT 1;B;10;"NONE" 7239 GOTO 7248 7242 LET B:=J-1,C:=&FF(J) LSR 4,D:=&FF(J) MOD 4 7245 PRINT " ";B;" ";C;" - ";D 7248 NEXT 7227 7251 RETURN 7254 LET B:=EE(0) LSR 8 7257 IFN B THEN 7953 7260 LET C:=EE(0) AND !FF 7263 PRINT &EE(12020,12037); 7266 IF C THEN 7275 7269 PRINT "GOOD" 7272 GOTO 7278 7275 PRINT "BAD" 7278 LET C:=EE(1) LSR 8 7281 PRINT &EE(12040,12057); 7284 IFN C THEN 7293 7287 PRINT "BAD" 7290 GOTO 7296 7293 PRINT "GOOD" 7296 LET C:=EE(1) AND !FF 7299 PRINT &EE(12060,12078);C;&EE(12080,12093) 7302 LET C:=EE(2) LSR 8 7305 PRINT &EE(12100,12120);C;&EE(12080,12093) 7308 LET W:=EE(2) AND !FF,Y:=8 7310 PRINT "Hardware fault reg = "; 7312 GOSUB 7881 7314 LET W:=EE(3) LSR 8,Y:=8 7316 PRINT " binary","Read/write fault reg = "; 7318 GOSUB 7881 7320 PRINT " binary" 7330 RETURN 7338 PRINT 0,&EE(12150,12158) 7339 GOSUB 6730 7341 LET B:=EE(0) LSR 8 7344 LET C:=EE(0) AND !FF 7347 LET D:=EE(1) LSR 8 7350 LET E:=EE(1) AND !FF 7353 LET E:=EE(2) AND !FF00 OR E 7356 LET F:=EE(2) AND !FF 7359 PRINT &EE(12160,12168);B,&EE(12170,12189);C,&EE(13370,13387);D 7368 PRINT &EE(12200,12221);E,&EE(12230,12244);F,&EE(12250,12262),0 7380 LET Z:=130,Y:=3 7383 GOSUB 7488 7386 FOR I:=0 UNTIL 31 7389 LET J:=I*8+1 7392 PRINT " ";J; 7395 FOR H:=0 UNTIL 7 7398 LET J:=I*8+H 7401 LET Z:=&FF(J),Y:=2 7404 PRINT " "; 7407 GOSUB 850 7410 NEXT 7395 7413 PRINT " " 7416 NEXT 7386 7419 PRINT "CRC = "; 7422 LET Z:=EE(131) LSR 8,Y:=8 7425 GOSUB 7881 7428 PRINT " "; 7431 LET Z:=EE(131) AND !FF,Y:=8 7434 GOSUB 7881 7437 PRINT " ","ECC = "; 7440 LET Z:=EE(132) LSR 8,Y:=8 7443 GOSUB 7881 7446 PRINT " "; 7449 LET Z:=EE(132) AND !FF,Y:=8 7452 GOSUB 7881 7455 PRINT " "; 7458 LET Z:=EE(133) LSR 8,Y:=8 7461 GOSUB 7881 7464 PRINT " " 7467 LET Z:=EE(133) AND !FF,Y:=8 7470 GOSUB 7881 7473 PRINT " "; 7476 LET Z:=EE(134) LSR 8,Y:=8 7479 GOSUB 7881 7482 PRINT " " 7485 RETURN 7488 FOR I:=Y UNTIL Z 7491 LET H:=Y*2 7494 LET H:=I*2-H 7497 LET J:=Y*2-1 7500 LET J:=I*2-J 7503 LET &FF(H):=EE(I) LSR 8 7506 LET &FF(J):=EE(I) AND !FF 7509 NEXT 7488 7512 RETURN 7515 LET B:=0 7518 LET C:=&DD(27) 7521 LET Z:=150,Y:=0 7524 GOSUB 7488 7527 IFN D=1 THEN 7596 7530 PRINT &EE(12270,12286) 7533 FOR E:=0 UNTIL C 7536 LET Y:=&FF(B) 7539 PRINT 1,&EE(12290,12303);Y 7542 LET F:=B+1,G:=B+2 7545 LET H:=&FF(F) LSL 8+&FF(G) 7548 PRINT &EE(12310,12335);H 7551 LET F:=B+3,Y:=&FF(F) 7554 PRINT &EE(12340,12358);Y 7557 LET F:=B+4,G:=&FF(F) 7560 PRINT &EE(12360,12388);G 7563 LET B:=B+5 7566 IFN G THEN 7590 7569 FOR F:=1 UNTIL G 7572 LET H:=B+1 7575 LET I:=&FF(B) LSL 8+&FF(H) 7578 LET J:=B+2,Y:=&FF(J) 7581 PRINT "CYL = ";I;&EE(12390,12400);Y 7584 LET B:=B+3 7587 NEXT 7569 7590 NEXT 7533 7593 RETURN 7596 IFN D=2 THEN 7656 7599 FOR E:=0 UNTIL C 7602 PRINT 0,&EE(12410,12437);E 7605 GOSUB 7920 7608 LET B:=B+6 7611 NEXT 7599 7614 LET B:=78 7617 FOR E:=0 UNTIL C 7620 PRINT 0,&EE(12440,12462);E 7623 GOSUB 7920 7626 LET B:=B+6 7629 NEXT 7617 7632 LET B:=156 7635 PRINT 0,&EE(12470,12498) 7638 FOR E:=0 UNTIL C 7641 LET F:=B+E 7644 LET I:=&FF(F) LSL 8 ASR 8 7647 PRINT "head ";E;" = ";I 7650 NEXT 7638 7653 RETURN 7656 IFN D=3 THEN 7782 7659 PRINT 0,&EE(12500,12526),&EE(12530,12548); 7665 LET Z:=EE(0),Y:=EE(1) 7668 BCDCNVT 0,Z,Y 7677 PRINT " " 7680 LET E:=&FF(4),F:=&FF(15),G:=&FF(16) 7683 PRINT &EE(12550,12570);E,&EE(12580,12597);F,&EE(12600,12617);G 7692 LET I:=&FF(5) LSL 8+&FF(6) 7695 PRINT &EE(12620,12634);I,&EE(12640,12656); 7701 LET Z:=EE(3) AND !FF,Y:=2 7704 GOSUB 850 7707 FOR I:=4 UNTIL 6 7710 LET Z:=EE(I),Y:=4 7713 GOSUB 850 7716 NEXT 7707 7719 LET Z:=EE(7) LSR 8,Y:=2 7722 GOSUB 850 7725 PRINT " " 7728 PRINT &EE(12660,12679); 7731 LET I:=&FF(17) 7734 GOSUB 7905 7737 PRINT &EE(12680,12698); 7740 LET I:=&FF(18) 7743 GOSUB 7905 7746 PRINT &EE(12700,12717); 7749 LET Z:=&FF(19),Y:=8 7752 GOSUB 7881 7755 PRINT " " 7758 PRINT &EE(12720,12736); 7761 GOSUB 7905 7764 PRINT &EE(12740,12764); 7767 IF &FF(21) THEN 7776 7770 PRINT "BLOCK" 7773 RETURN 7776 PRINT "VECTOR" 7779 RETURN 7782 IFN D=10 THEN 7809 7785 PRINT &EE(12770,12795),0,&EE(12800,12815);&FF(2,8),&EE(12820,12843); 7794 PRINT &FF(11,14),&EE(12850,12867),0,&FF(17,32),&FF(34,56),0 7800 PRINT &EE(12870,12890);&FF(59,64),&EE(12900,12910);&FF(65,76) 7806 RETURN 7809 LET I:=&FF(0)*3 7810 PRINT &EE(12920,12941),0 7811 IFN I THEN 7828 7812 PRINT &EE(12950,12977) 7815 FOR J:=1 STEP 3 UNTIL I 7818 LET E:=J+1,B:=&FF(J) LSL 8 OR &FF(E),E:=J+2,C:=&FF(E),F:=J/3+1 7821 PRINT 3;F;8;C;8; 7822 BCDCNVT 0,0,B 7823 PRINT 0 7824 NEXT 7815 7827 RETURN 7828 PRINT "No spares." 7829 RETURN 7830 GOSUB 6239 7831 IF K THEN 7845 7833 IFN INPUTLEN=3 THEN 7872 7836 CB &CC(0),&EE(236),3 7839 IFN INDEX=-1 THEN 7848 7842 LET F:=1 7845 RETURN 7848 CB &CC(0),&EE(255),3 7851 IFN INDEX=-1 THEN 7860 7854 LET F:=0 7857 RETURN 7860 CB &CC(0),&EE(38),3 7863 IFN INDEX=-1 THEN 7872 7866 LET F:=2 7869 RETURN 7872 GOSUB 6129 7875 PRINT &EE(12980,13001) 7878 GOTO 7830 7881 LET W:=Z 7884 IFN Y THEN 7827 7887 LET X:=Y-1 7890 LET Q:=W LSR X LSL 1 LSR 1 AND 1 7893 PRINT Q; 7896 LET Y:=Y-1 7899 GOTO 7884 7905 IF I=1 THEN 7914 7908 PRINT "OFF" 7911 RETURN 7914 PRINT "ON" 7917 RETURN 7920 LET Z:=&FF(B) LSL 8 ASR 8 7923 PRINT "OD = ";Z 7926 LET Z:=B+1,Z:=&FF(Z) LSL 8 ASR 8 7929 PRINT "MI-OD = ";Z 7932 LET Z:=B+2,Z:=&FF(Z) LSL 8 ASR 8 7935 PRINT "MI = ";Z 7938 LET Z:=B+3,Z:=&FF(Z) LSL 8 ASR 8 7941 PRINT "ID-MI = ";Z 7944 LET Z:=B+4,Z:=&FF(Z) LSL 8 ASR 8 7947 PRINT "ID = ";Z 7950 RETURN 7953 PRINT &EE(13010,13025) 7956 RETURN 7959 LET Z:=EE(4) AND !FF 7961 PRINT 0,"Loop = ";Z 7968 LET Z:=EE(4) LSR 8 7969 PRINT &EE(13030,13061) 7970 PRERS Z 7972 GOSUB 6879 7977 IFN &BB(4) THEN 8001 7980 LET Y:=0,Z:=274 7983 GOSUB 7488 7986 FOR E:=279 UNTIL 547 7989 IFN &FF(E) THEN 7998 7992 GOSUB 8004 7995 LET E:=600 7998 NEXT 7986 8001 RETURN 8004 LET Z:=E-279 8007 PRINT 0,&EE(13070,13093);Z 8010 PRINT "Was: "; 8013 LET F:=E-270,Z:=&FF(F),Y:=8 8016 IFN E=279 THEN 8025 8019 PRINT 8; 8022 GOTO 8028 8025 GOSUB 7881 8028 PRINT " "; 8031 LET F:=F+1,Z:=&FF(F),Y:=8 8034 LET Q:=&FF(11) 8037 GOSUB 7881 8040 PRINT " "; 8043 LET F:=F+1,Z:=&FF(F),Y:=8 8046 IF E=547 THEN 8052 8049 GOSUB 7881 8052 PRINT " ","Map: "; 8055 LET F:=E-1,Z:=&FF(F),Y:=8 8058 IFN E=279 THEN 8067 8061 PRINT 9; 8064 GOTO 8070 8067 GOSUB 8091 8070 LET Z:=&FF(E),Y:=8 8073 GOSUB 8091 8076 LET F:=E+1,Z:=&FF(F),Y:=8 8079 IF E=547 THEN 8085 8082 GOSUB 8091 8085 PRINT " " 8088 RETURN 8091 LET X:=256 8094 FOR I:=1 UNTIL 8 8097 LET X:=X/2 8100 IFN Z AND X=X THEN 8109 8103 PRINT "*"; 8106 GOTO 8112 8109 PRINT " "; 8112 NEXT 8094 8115 PRINT " "; 8118 RETURN 8121 LET Y:=C*32,Z:=C+1*32-1,D:=0 8122 GOSUB 7488 8124 FOR I:=0 UNTIL 63 8126 IFN &FF(I) THEN 8142 8128 LET D:=1,F:=256 8130 FOR G:=0 UNTIL 7 8132 LET F:=F/2 8134 IFN F AND &FF(I) THEN 8140 8136 LET H:=I*8+G 8138 PRINT !H;","; 8140 NEXT 8130 8142 NEXT 8124 8144 IF D THEN 8148 8146 PRINT &EE(13100,13115) 8148 PRINT " " 8150 RETURN 8166 FUNCTION INAME VALUE1 8169 GOSUB 6239 8170 IF K THEN 8193 8172 IFN INPUTLEN=1 THEN 8196 8175 LET WW(0):=-1 8178 FOR VALUE1:=1 UNTIL &LL(0) 8181 IFN &CC(0)=&LL(VALUE1) THEN 8187 8184 LET WW(0):=VALUE1-1 8187 NEXT 8178 8190 IF WW(0)=-1 THEN 8196 8193 ENDF 8196 GOSUB 6129 8199 FOR VALUE1:=1 UNTIL &LL(0) 8202 PRINT &LL(VALUE1);", "; 8205 NEXT 8199 8208 PRINT "or EXIT" 8211 GOTO 8169 8214 BUMP 8217 LOOPTO 2199 8220 IF SECTIONS1 AND !C00 THEN 2177 8223 END 8230 LET E:=TRUE 8235 LET CHANNEL:=ZZ(10),DEVICE:=ZZ(20),IMBNUM:=ZZ(90) 8245 INIT 8259 LET U:=0,ZZ(40):=15,ZZ(70):=0 8260 CANCEL 0 8270 STATUS 0,PP(0) 8280 DESCRIBE 0,GG(0) 8290 IF GG(0) EQ !8001 THEN 8350 8295 LET U:=GG(0) AND !7FFF 8300 PRINT "WHAT UNIT DO YOU WISH TO TEST (0-";U;")?" 8310 INPUT U 8320 IF U AND GG(0) THEN 8350 8330 PRINT "UNIT NUMBER OUT OF RANGE" 8340 LET E:=FALSE 8350 LET ZZ(40):=U 8352 RETURN 8360 GOSUB 111 8370 PRINT 0,&AA(0,A);" UTILITY" 8380 RETURN 8390 IF PP(0) AND !F00=!F00 THEN 8450 8400 IF &DD(5)=2 THEN 8470 8410 IF &DD(5)=1 THEN 8490 8420 IF &DD(5)=0 THEN 8490 8430 PRINTEX "Unkown "; 8440 GOTO 8500 8450 PRINTEX "Controller "; 8460 GOTO 8500 8470 PRINTEX "Tape "; 8480 GOTO 8500 8490 PRINTEX "Disc "; 8500 PRINTEX "unit type selected" 8510 RETURN 8520 FUNCTION BCDCNVT VALUE1,VALUE2,VALUE3,VALUE4 8522 IF VALUE1 OR VALUE2 THEN 8526 8523 IF VALUE3<0 THEN 8526 8524 PRINT VALUE3; 8525 ENDF 8526 LET VALUE4:=VALUE3 AND !FFF,Q:=VALUE2 LSL 4 AND !FF0 8527 LET VALUE3:=VALUE3 LSR 12 OR Q,Q:=VALUE1 AND !F LSL 8 8528 LET VALUE2:=VALUE2 LSR 8 OR Q,VALUE1:=VALUE1 LSR 4 8530 LET NN(0):=NN(1):=NN(2):=NN(3):=0 8550 FOR NN(5):=1 UNTIL 48 8555 FOR X:=0 UNTIL 3 8575 LET Q:=NN(X) LSR 8 AND !F 8580 IF Q<=4 THEN 8590 8585 LET NN(X):=NN(X)+!300 AND !FFF 8590 LET Q:=NN(X) LSR 4 AND !F 8595 IF Q<=4 THEN 8605 8600 LET NN(X):=NN(X)+!30 AND !FFF 8605 LET Q:=NN(X) AND !F 8610 IF Q<=4 THEN 8620 8615 LET NN(X):=NN(X)+3 AND !FFF 8620 NEXT 8555 8625 LET Q:=NN(1) LSR 11,NN(0):=NN(0) LSL 1+Q AND !FFF 8630 LET Q:=NN(2) LSR 11,NN(1):=NN(1) LSL 1+Q AND !FFF 8632 LET Q:=NN(3) LSR 11,NN(2):=NN(2) LSL 1+Q AND !FFF 8635 LET Q:=VALUE1 LSR 11,NN(3):=NN(3) LSL 1+Q AND !FFF 8640 LET Q:=VALUE2 LSR 11,VALUE1:=VALUE1 LSL 1+Q AND !FFF 8645 LET Q:=VALUE3 LSR 11,VALUE2:=VALUE2 LSL 1+Q AND !FFF 8647 LET Q:=VALUE4 LSR 11,VALUE3:=VALUE3 LSL 1+Q AND !FFF 8650 LET VALUE4:=VALUE4 LSL 1 AND !FFF 8655 NEXT 8550 8660 LET &NN(0):=NN(0) LSR 8 AND !F+!30,&NN(1):=NN(0) LSR 4 AND !F+!30 8665 LET &NN(2):=NN(0) AND !F+!30,&NN(3):=NN(1) LSR 8 AND !F+!30 8675 LET &NN(4):=NN(1) LSR 4 AND !F+!30,&NN(5):=NN(1) AND !F+!30 8680 LET &NN(6):=NN(2) LSR 8 AND !F+!30,&NN(7):=NN(2) LSR 4 AND !F+!30 8685 LET &NN(8):=NN(2) AND !F+!30,&NN(9):=NN(3) LSR 8 AND !F+!30 8686 LET &NN(10):=NN(3) LSR 4 AND !F+!30,&NN(11):=NN(3) AND !F+!30 8690 FOR Q:=0 UNTIL 11 8695 IF &NN(Q) NE "0" THEN 8705 8700 NEXT 8690 8705 FOR X:=Q UNTIL 11 8710 PRINT &NN(X); 8715 NEXT 8705 8720 ENDF 8730 LET J:=0 8740 FOR I:=15000 UNTIL 16500 8750 LET X:=&EE(I)-48 8760 IF X<10 THEN 8770 8765 LET X:=X-7 8770 LET I:=I+1 8775 LET Y:=&EE(I)-48 8780 IF Y<10 THEN 8790 8785 LET Y:=Y-7 8790 LET &HH(J):=Y LSL 4 OR X 8795 LET J:=J+1 8800 NEXT 8740 8805 RETURN 8820 FUNCTION DTOHEX VALUE1,VALUE2,VALUE3,VALUE4,VALUE5,VALUE6 8825 FOR VALUE2:=0 UNTIL 5 8830 LET &NN(VALUE2):=0 8835 NEXT 8825 8840 LET VALUE2:=0 8845 FOR VALUE3:=0 UNTIL VALUE1 8850 LET VALUE4:=&FF(VALUE3),VALUE2:=VALUE4*6+VALUE2,VALUE5:=0 8855 FOR Y:=0 UNTIL 5 8860 LET VALUE6:=VALUE2+Y,X:=&NN(Y)+&HH(VALUE6)+VALUE5,VALUE5:=X LSR 8 8862 LET &NN(Y):=X AND !FF 8865 NEXT 8855 8870 LET VALUE2:=10-VALUE4*6+VALUE2 8875 NEXT 8845 8880 LET NN(0):=&NN(5) LSL 8 OR &NN(4),NN(1):=&NN(3) LSL 8 OR &NN(2) 8885 LET NN(2):=&NN(1) LSL 8 OR &NN(0) 8890 ENDF