10 REM INTERFACE-TESTER 20 REM CONNECTED AT D100 OR D500 40 POKE 710,0:BUF=30000:FOUT=1 45 DIM RES(7),POW(7),A$(1) 50 DIM INFO(6):PARA=1 51 FOR I=0 TO 7 52 READ A,B 53 RES(I)=A:POW(I)=B 54 NEXT I 55 DATA 0,0,1,1,1,1,1,1 56 DATA 0,0,0,0,0,160,80,80 60 ? "$)" 70 REM --- DETECT HARDDISK --- 80 PORT=53504 110 A=PEEK(PORT+7) 120 IF A<128 THEN 195 125 PORT=54528 130 A=PEEK(PORT+7) 140 IF A<128 THEN 195 150 ? "NO HARDDISK FOUND!" 160 ? :? "CHECK POWER/CABLE" 170 ? "CHECK JUMPERS" 180 ? :? "THEN RUN FDISK AGAIN" 190 END 195 ? "$)CREATING MACHINE-CODE, PLEASE WAIT" 196 ? 197 IF PORT=53504 THEN ? "INTERNAL"; 198 IF PORT=54528 THEN ? "EXTERNAL"; 199 ? " INTERFACE DETECTED" 200 GOSUB 3001 201 ? "$)INTERFACE-TESTER":? 205 ? "RESET/POWERUP VALUE (x,x)" 210 FOR I=0 TO 7 220 ? "$Dx0";I;" ",PEEK(PORT+I),"(";RES(I);",";POW(I);")" 230 NEXT I 235 ? "MIXED VALUES? A0-A2 MIXED-UP" 236 ? "80=1 AND 1=80? D0-D7 SWAPPED" 238 ? :? "HIT RETURN TO TEST PORT"; 239 INPUT A$ 240 FOR I=2 TO 6 245 ? "TESTING PORT $Dx0";I;" "; 246 FOUT=0 250 FOR J=0 TO 255 260 POKE PORT+I,J 270 IF PEEK(PORT+I)<>J THEN FOUT=1 280 NEXT J 290 IF FOUT=0 THEN ? "OK" 300 IF FOUT=1 THEN ? "ERROR" 310 NEXT I 315 ? "ERRORS? LOOKAT IOW,Dx00,D0-D7" 320 ? :? "Y/N FOR WRITE TEST":? "WARNING THIS WILL DESTROY DATA!" 330 INPUT A$ 340 IF A$<>"Y" THEN END 345 ? "WRITING DATA......" 346 FOR I=0 TO 255:POKE (32768+I),I:NEXT I 350 A=USR(6*256,49) 440 ? "DATA WRITTEN" 450 ? 455 ? "READING DATA......" 460 A=USR(6*256,33) 490 ? "VERIFYING DATA...." 510 FOR I=0 TO 255 520 A=PEEK(32768+I) 530 IF A<>I THEN ? "ERROR BYTE ";I,"VALUE ";A:FOUT=1 540 NEXT I 545 IF FOUT=0 THEN ? "NO ERRORS FOUND" 550 IF FOUT=1 THEN ? "IF ANY ERRORS HERE, HARDDRIVE DEFECT OR NOT COMPATIBLE" 600 END 3001 REM --DATA MACHINE-CODE-- 3002 FOR I=0 TO 78 3003 READ A 3004 POKE 6*256+I,A 3005 NEXT I 3006 IF PORT=54528 THEN GOTO 4002 3007 RETURN 3010 DATA 104,104,104,133,192,169,1,141,2,209,141,3,209,169,1,141,4,209,141,5,209,141,6,209,165,192 3020 DATA 201,49,240,5,201,33,240,23,96,141,7,209,173,7,209,41,8,240,249,162,0,189,0,128,141 3030 DATA 0,209,232,208,247,96,141,7,209,173,7,209,41,8,240,249,162,0,173,0,209,157,0,128,232 3040 DATA 208,247,96 4002 FOR I=0 TO 78 4003 READ A 4004 POKE 6*256+I,A 4005 NEXT I 4006 RETURN 4010 DATA 104,104,104,133,192,169,1,141,2,213,141,3,213,169,1,141,4,213,141,5,213,141,6,213,165,192 4020 DATA 201,49,240,5,201,33,240,23,96,141,7,213,173,7,213,41,8,240,249,162,0,189,0,128,141 4030 DATA 0,213,232,208,247,96,141,7,213,173,7,213,41,8,240,249,162,0,173,0,213,157,0,128,232 4040 DATA 208,247,96