100 REM CHESS 960 110 PRINT "SPID (-1 FOR RANDOM):"; 120 OPEN 1,0:INPUT#1, SP$:CLOSE 1 130 SP=VAL(SP$) 140 IF SP<0 THEN SP=INT(RND(.)*960) 150 PRINT 160 IF SP>959 THEN SP=SP-960: GOTO 160 170 AR$="--------" 180 P=SP 190 N=P AND 3:P=INT(P/4) 200 AR$=LEFT$(AR$,2*N+1)+"B"+MID$(AR$,2*N+3) 210 N=P AND 3:P=INT(P/4) 220 AR$=LEFT$(AR$,2*N)+"B"+MID$(AR$,2*N+2) 230 N=P-6*INT(P/6):P=INT(P/6) 240 P$="Q":GOSUB 420 250 N=P-10*INT(P/10):P=INT(P/10) 260 FOR N1=0 TO 3 270 : FOR N2=N1+1 TO 4 280 : IF N<>0 THEN 340 290 : P$="N":N=N1:GOSUB 420 300 : P$="N":N=N2-1:GOSUB 420 310 : N1=3 320 : N2=4 340 : N=N-1 350 : NEXT N2 360 NEXT N1 370 P$="R":N=0:GOSUB 420 380 P$="K":N=0:GOSUB 420 390 P$="R":N=0:GOSUB 420 400 PRINT STR$(SP);":";AR$ 410 END 420 FOR I=1 TO LEN(AR$) 430 : IF MID$(AR$,I,1)<>"-" THEN 510 440 : IF N<>0 THEN 480 450 : AR$=LEFT$(AR$,I-1)+P$+MID$(AR$,I+1) 460 : I=LEN(AR$) 470 : GOTO 510 480 : N=N-1 510 NEXT I 520 RETURN