Make C1P screen sharper, add support for C1P JSON files, and add more C1P README files
This commit is contained in:
parent
c8d3a102e2
commit
985c7c76cd
46 changed files with 2199 additions and 54 deletions
|
|
@ -1,212 +0,0 @@
|
|||
10 REM - OTHELLO -
|
||||
15 REM
|
||||
20 A=53184:CO=79:CX=88
|
||||
21 POKE11,0:POKE12,253
|
||||
25 PL=1
|
||||
30 GOSUB9000
|
||||
40 DIMB(8,8)
|
||||
50 B(4,5)=1:B(5,5)=2:B(4,4)=2:B(5,4)=1
|
||||
60 GOSUB8000
|
||||
70 GOSUB7000
|
||||
80 GOSUB6000
|
||||
90 GOSUB5000
|
||||
100 GOSUB4000
|
||||
110 GOTO60
|
||||
999 END
|
||||
4000 REM - MAKE MOVE IN TABLE -
|
||||
4010 IFUP=0ANDDN=0ANDLF=0ANDRT=0ANDUL=0ANDUR=0ANDLL=0ANDLR=0THEN4990
|
||||
4020 B(C,R)=PL
|
||||
4030 IFUP=0THEN4100
|
||||
4040 FORZ=1TOUP
|
||||
4050 B(C,R+Z)=PL
|
||||
4060 NEXT
|
||||
4100 IFDN=0THEN4200
|
||||
4110 FORZ=1TODN
|
||||
4120 B(C,R-Z)=PL
|
||||
4130 NEXT
|
||||
4200 IFLF=0THEN4300
|
||||
4210 FORZ=1TOLF
|
||||
4220 B(C-Z,R)=PL
|
||||
4230 NEXT
|
||||
4300 IFRT=0THEN4400
|
||||
4310 FORZ=1TORT
|
||||
4320 B(C+Z,R)=PL
|
||||
4330 NEXT
|
||||
4400 IFUL=0THEN4500
|
||||
4410 FORZ=1TOUL
|
||||
4420 B(C-Z,R+Z)=PL
|
||||
4430 NEXT
|
||||
4500 IFUR=0THEN4600
|
||||
4510 FORZ=1TOUR
|
||||
4520 B(C+Z,R+Z)=PL
|
||||
4530 NEXT
|
||||
4600 IFLL=0THEN4700
|
||||
4610 FORZ=1TOLL
|
||||
4620 B(C-Z,R-Z)=PL
|
||||
4630 NEXT
|
||||
4700 IFLR=0THEN4900
|
||||
4710 FORZ=1TOLR
|
||||
4720 B(C+Z,R-Z)=PL
|
||||
4730 NEXT
|
||||
4900 PL=3-PL
|
||||
4990 RETURN
|
||||
5000 REM - LEGAL MOVE? -
|
||||
5010 UP=0:DN=0:LF=0:RT=0:UL=0:UR=0:LL=0:LR=0
|
||||
5020 IFB(C,R)<>0THENGOTO5990
|
||||
5030 FORTR=R-1TO1STEP-1
|
||||
5040 IFTR<1THENDN=0:GOTO5100
|
||||
5045 IFB(C,TR)=0THENDN=0:GOTO5100
|
||||
5050 IFB(C,TR)=3-PLANDTR>1THENDN=DN+1
|
||||
5060 IFB(C,TR)=PLTHENGOTO5100
|
||||
5070 NEXT
|
||||
5080 DN=0
|
||||
5100 FORTR=R+1TO8
|
||||
5110 IFTR>8THENUP=0:GOTO5200
|
||||
5115 IFB(C,TR)=0THENUP=0:GOTO5200
|
||||
5120 IFB(C,TR)=(3-PL)ANDTR<8THENUP=UP+1
|
||||
5130 IFB(C,TR)=PLTHENGOTO5200
|
||||
5140 NEXT
|
||||
5150 UP=0
|
||||
5200 FORTC=C-1TO1STEP-1
|
||||
5210 IFTC<1THENLF=0:GOTO5300
|
||||
5215 IFB(TC,R)=0THENLF=0:GOTO5300
|
||||
5220 IFB(TC,R)=(3-PL)ANDTC>1THENLF=LF+1
|
||||
5230 IFB(TC,R)=PLTHENGOTO5300
|
||||
5240 NEXT
|
||||
5250 LF=0
|
||||
5300 FORTC=C+1TO8
|
||||
5310 IFTC>8THENRT=0:GOTO5400
|
||||
5315 IFB(TC,R)=0THENRT=0:GOTO5400
|
||||
5320 IFB(TC,R)=(3-PL)ANDTC<8THENRT=RT+1
|
||||
5330 IFB(TC,R)=PLTHENGOTO5400
|
||||
5340 NEXT
|
||||
5350 RT=0
|
||||
5400 TC=C-1
|
||||
5410 FORTR=R+1TO8
|
||||
5420 IFTR>8ORTC<1THENUL=0:GOTO5500
|
||||
5425 IFB(TC,TR)=0THENUL=0:GOTO5500
|
||||
5430 IFB(TC,TR)=(3-PL)ANDTR<8ANDTC>1THENUL=UL+1
|
||||
5440 IFB(TC,TR)=PLTHENGOTO5500
|
||||
5450 TC=TC-1
|
||||
5460 NEXT
|
||||
5470 UL=0
|
||||
5500 TC=C+1
|
||||
5510 FORTR=R+1TO8
|
||||
5520 IFTR>8ORTC>8THENUR=0:GOTO5600
|
||||
5525 IFB(TC,TR)=0THENUR=0:GOTO5600
|
||||
5530 IFB(TC,TR)=(3-PL)ANDTR<8ANDTC<8THENUR=UR+1
|
||||
5540 IFB(TC,TR)=PLTHENGOTO5600
|
||||
5550 TC=TC+1
|
||||
5560 NEXT
|
||||
5570 UR=0
|
||||
5600 TC=C-1
|
||||
5610 FORTR=R-1TO1STEP-1
|
||||
5620 IFTR<1ORTC<1THENLL=0:GOTO5700
|
||||
5625 IFB(TC,TR)=0THENLL=0:GOTO5700
|
||||
5630 IFB(TC,TR)=(3-PL)ANDTR>1ANDTC>1THENLL=LL+1
|
||||
5640 IFB(TC,TR)=PLTHENGOTO5700
|
||||
5650 TC=TC-1
|
||||
5660 NEXT
|
||||
5670 LL=0
|
||||
5700 TC=C+1
|
||||
5710 FORTR=R-1TO1STEP-1
|
||||
5720 IFTR<1ORTC>8THENLR=0:GOTO5990
|
||||
5725 IFB(TC,TR)=0THENLR=0:GOTO5990
|
||||
5730 IFB(TC,TR)=(3-PL)ANDTR>1ANDTC<8THENLR=LR+1
|
||||
5740 IFB(TC,TR)=PLTHENGOTO5990
|
||||
5750 TC=TC+1
|
||||
5760 NEXT
|
||||
5770 LR=0
|
||||
5990 RETURN
|
||||
6000 REM - CHECK INPUT -
|
||||
6010 REM - AND SET UP -
|
||||
6020 REM - R (ROW) AND -
|
||||
6030 REM - C (COLUMN) -
|
||||
6040 IFLEN(I$)<>2THENGOSUB7000:GOTO6040
|
||||
6050 C1=ASC(LEFT$(I$,1)):C2=ASC(RIGHT$(I$,1))
|
||||
6060 IF(C1>=65)AND(C1<=72)THENR=C1:GOTO6080
|
||||
6070 IF(C2>=65)AND(C2<=72)THENR=C2:GOTO6090
|
||||
6075 GOSUB7000:GOTO6040
|
||||
6080 IF(C2<49)OR(C2>56)THENGOSUB7000:GOTO6040
|
||||
6085 C=C2:GOTO6100
|
||||
6090 IF(C1<49)OR(C1>56)THENGOSUB7000:GOTO6040
|
||||
6095 C=C1
|
||||
6100 C=C-48:R=R-64
|
||||
6990 RETURN
|
||||
7000 REM - INPUT MOVE -
|
||||
7001 POKE(A+256+20*32+18),(PL+48)
|
||||
7005 I$="":T2=A+256+21*32+7
|
||||
7006 FORX=1TO20:POKE(T2+X),32:NEXT
|
||||
7009 POKET2,63:T2=T2+1:POKET2,161
|
||||
7010 T1=USR(T1):T1=PEEK(531)
|
||||
7011 IFT1=13THEN7030
|
||||
7012 IFT1<>127THEN7019
|
||||
7013 IFI$=""THEN7010
|
||||
7015 POKET2,32:T2=T2-1:POKET2,161
|
||||
7017 IFLEN(I$)=1THENI$="":GOTO7010
|
||||
7018 I$=LEFT$(I$,LEN(I$)-1):GOTO7010
|
||||
7019 I$=I$+CHR$(T1)
|
||||
7020 POKET2,T1:T2=T2+1:POKET2,161
|
||||
7023 IFLEN(I$)>10THENGOTO7000
|
||||
7025 GOTO7010
|
||||
7030 FORY=1TO8
|
||||
7990 RETURN
|
||||
8000 REM - MAKE MOVE -
|
||||
8010 S=A+8*32+7
|
||||
8020 FORX=1TO8
|
||||
8030 FORY=1TO8
|
||||
8040 P=S+2*X+2*32*(8-Y)
|
||||
8050 IFB(X,Y)=1THENPOKEP,CX
|
||||
8060 IFB(X,Y)=2THENPOKEP,CO
|
||||
8080 NEXTY,X
|
||||
8990 RETURN
|
||||
9000 REM - FRAME -
|
||||
9010 T1=A+256
|
||||
9020 FORY=1TO24
|
||||
9030 PRINT
|
||||
9040 NEXT
|
||||
9050 FORX=1TO16
|
||||
9060 POKE(A+224+X+7),128
|
||||
9070 NEXT
|
||||
9080 FORY=1TO16STEP2
|
||||
9090 FORX=1TO8
|
||||
9100 T2=2*(X-1)
|
||||
9110 POKE(T1+(Y-1)*32+8+T2),136
|
||||
9120 POKE(T1+Y*32+8+T2),209
|
||||
9130 POKE(T1+Y*32+9+T2),128
|
||||
9140 NEXTX
|
||||
9150 POKE(T1+(Y-1)*32+8+2*(X-1)),136
|
||||
9160 POKE(T1+Y*32+8+2*(X-1)),136
|
||||
9170 NEXTY
|
||||
9180 T3=T1+6
|
||||
9190 T4=T3+577
|
||||
9200 FORZ=1TO8
|
||||
9210 POKE(T3+2*(8-Z)*32),((Z-1)+65)
|
||||
9220 POKE(T4+2*Z),((Z-1)+49)
|
||||
9230 NEXT
|
||||
9240 T2=A+903
|
||||
9250 POKET2,ASC("P"):T2=T2+1
|
||||
9260 POKET2,ASC("L"):T2=T2+1
|
||||
9270 POKET2,ASC("A"):T2=T2+1
|
||||
9280 POKET2,ASC("Y"):T2=T2+1
|
||||
9290 POKET2,ASC("E"):T2=T2+1
|
||||
9300 POKET2,ASC("R"):T2=T2+1
|
||||
9310 T2=T2+1
|
||||
9320 POKET2,ASC("N"):T2=T2+1
|
||||
9330 POKET2,ASC("O"):T2=T2+1
|
||||
9340 POKET2,ASC("."):T2=T2+3
|
||||
9350 POKET2,ASC(":"):T2=T2+1
|
||||
9990 RETURN
|
||||
10000 REM - FUN -
|
||||
10005 A=53248
|
||||
10010 FORX=1TO24:PRINT:NEXT:T1=A+263
|
||||
10020 FORX=1TO16
|
||||
10025 FORY=1TO8
|
||||
10026 POKET1+(X-2)*32,32
|
||||
10035 NEXTY,X
|
||||
10040 FORX=16TO1STEP-1
|
||||
10045 FORY=8TO1STEP-1
|
||||
10046 POKET1+X*32,32
|
||||
10050 POKET1+(X-1)*32,(9-Y)+127
|
||||
10055 NEXTY,X
|
||||
10060 GOTO10020
|
||||
Loading…
Reference in a new issue