1 IFLC=0THENLC=1:LOAD"MC",8,8 2 IFLC=1THENLC=2:LOAD"P.CURSOR",8,8 3 IFLC=2THENLC=3:PRINTCHR$(147)CHR$(142)CHR$(8);:LOAD"C.MASK",8,8 4 IFLC=3THENLC=4:POKE53280,11:POKE53281,11:LOAD"MASK",8,8 5 POKE55,63:POKE56,156:CLR:DIM VI(39,24),JR(26) 6 DIMSX(17),SY(17),MX(15),MY(15) 7 DEF FN JY(X) =JR(PEEK(X)-101) 8 DEF FN XB(X) =INT((X-24)/8) 9 DEF FN YB(Y) =INT((Y-50)/8) 20 DEF FN PW(X) =INT(X*40.96) 21 DEF FN FR(X) =INT(X*17.02841156) 22 DEF FN GR(X) =INT(((X*1000)-30)/5.8182) 23 DEF FN HI(X) =INT(X/256) 24 DEF FN LO(X) =X-256*FN HI(X) 25 DEF FN PO(N1)=N1+16*N2 26 DEF FN XK(X) =PEEK(700)+PEEK(701)*256 27 DEF FN YK(X) =PEEK(702) 28 DEF FN SX(X) =X*8+24 29 DEF FN SY(Y) =Y*8+50 30 DEF FN OD(W) =W AND 1 31 DEF FN GH(X) =INT(X/8) 32 DEF FN GL(X) =X-8*FN GH(X) 36 S=54272:FORI=0TO2:A=I+1:B=S+7*I:FL(A)=B:FH(A)=B+1:PL(A)=B+2:PH(A)=B+3 37 KO(A)=B+4:AD(A)=B+5:SR(A)=B+6:NEXTI 40 GL=S+21:GH=S+22:RF=S+23:ML=S+24 43 VO=0:FU=0:FO=3848.568011:UG=0.03:OG=11.9398554:PU=0:PO=100:V=1:CS=58640 44 JO=56320:FORI=0TO24:POKES+I,0:NEXTI 50 FORI=1TO7:READX,Y,M:VI(X,Y)=M:VI(X,Y+1)=M:VI(X,Y+2)=M:SX(I)=FNSX(X) 51 SY(I)=FNSY(Y):NEXTI:FORI=1TO10:READX,Y,M:VI(X,Y)=M:VI(X+1,Y)=M:VI(X+2,Y)=M 52 SX(I+7)=FNSX(X):SY(I+7)=FNSY(Y):NEXTI:FORI=0TO26:READJR(I):NEXTI 55 POKE2041,14:POKE2042,15:FORI=896TO919:POKEI,255:NEXTI:FORI=960TO1022:POKEI,0 56 NEXTI:FORI=920TO958:POKEI,0:NEXTI:FORI=960TO995STEP3:POKEI,255:NEXTI 57 POKE53271,4:POKE53275,14:POKE700,32:POKE701,0:POKE702,58 58 FORI=0TO3:POKE53287+I,1:NEXTI 59 FORI=1TO15:READMX(I),MY(I):NEXT 60 POKE2043,14:POKE53254,248:POKE53255,138 200 POKE53269,(DO*8)*-(V=3):SYS40000:X=FNXK(0):Y=FNYK(0):M=VI(FNXB(X),FNYB(Y)) 201 IFX>255THENPOKE700,PEEK(700)-1 202 IFM=0GOTO200 203 POKE53269,(DO*8)*-(V=3):XP=53252:YP=53253:A=4 210 IFM>7THENXP=53250:YP=53251:A=2 211 POKEYP,SY(M):IFX<256THENPOKEXP,SX(M) 212 IFX>255THENPOKEXP,SX(M)-255:POKE53264,A 213 POKE53269,PEEK(53269)OR A 214 ONMGOSUB300,320,340,360,380,400,420,440,460,480,500,520,540,560,580,600,620 220 GOTO200 300 W=A(V):GOSUB650:A(V)=W:N2=A(V):POKEAD(V),FNPO(D(V)):RETURN 320 W=D(V):GOSUB650:D(V)=W:N2=A(V):POKEAD(V),FNPO(W):RETURN 340 W=S(V):GOSUB650:S(V)=W:N2=S(V):POKESR(V),FNPO(R(V)):RETURN 360 W=R(V):GOSUB650:R(V)=W:N2=S(V):POKESR(V),FNPO(W):RETURN 380 W=VO:GOSUB650:VO=W:POKEML,VO+FI+DO*128:RETURN 400 W=RS:GOSUB650:RS=W:POKERF,RS*16+F(1)+F(2)+F(3):RETURN 420 IFFI=16THENF=2 421 IFFI=32THENF=3 422 IFFI=64THENF=1 423 IFFI=80THENF=4 425 GOSUB850:POKEML,FI+VO+DO*128:RETURN 440 GV=3:GOSUB1000:IF(AOG)GOTO440 441 GR=FNGR(A):POKEGL,FNGL(GR):POKEGH,FNGH(GR):RETURN 460 GV=4:GOSUB1000:IF(AFO)GOTO460 461 FR$(V)=B$:FR(V)=FNFR(A):POKEFL(V),FNLO(FR(V)):POKEFH(V),FNHI(FR(V)):RETURN 480 GV=3:GOSUB1000:IF(APO)GOTO480 481 PW$(V)=B$:PW(V)=FNPW(A):POKEPL(V),FNLO(PW(V)):POKEPH(V),FNHI(PW(V)):RETURN 500 W=0:IFRI(V)>0THENW=1 501 GOSUB950:RI(V)=W*4:POKEKO(V),RA(V)+RE(V)+SA(V)+DR(V)+RI(V)+SC(V):RETURN 520 W=0:IFSC(V)>0THENW=1 521 GOSUB950:SC(V)=W*2:POKEKO(V),RA(V)+RE(V)+SA(V)+DR(V)+RI(V)+SC(V):RETURN 540 W=0:IFF(V)>0THENW=1 541 GOSUB950:F(V)=W*2^(V-1):POKERF,RS*16+F(1)+F(2)+F(3):RETURN 560 KR=0 561 IFRA(V)=128THENKR=1 562 IFRE(V)= 64THENKR=2 563 IFSA(V)= 32THENKR=3 564 IFDR(V)= 16THENKR=4 565 IFV=3THENGOSUB800:GOTO570 566 GOSUB750 570 POKEKO(V),KR+RI(V)+SC(V) 571 POKEML,FI+VO+DO*128:RETURN 580 VV=V:W=V:GOSUB1100 581 POKE211,MX(9):POKE214,MY(9):SYSCS:FORI=1TO8-LEN(FR$(V)):PRINT"[153] ";:NEXTI 582 PRINT"";FR$(V):POKE211,MX(10):POKE214,MY(10):SYSCS:FORI=1TO7-LEN(PW$(V)) 583 PRINT"[153] ";:NEXTI:PRINT"";PW$(V) 584 P=160:M=1:W=A(VV):GOSUB1252:M=2:W=D(VV):GOSUB1252:M=3:W=S(VV):GOSUB1252 585 M=4:W=R(VV):GOSUB1252 586 POKE1024+MX(14)+(MY(14)-KI(VV))*40,160 587 IF V=3 THEN IF DO=1 THEN POKE53269,PEEK(53269) OR 8 588 IF V=3 THEN IF DO=0 THEN POKE53269,PEEK(53269) AND 247 594 W=A(V):M=1:GOSUB1250:W=D(V):M=2:GOSUB1250:W=S(V):M=3:GOSUB1250:W=R(V):M=4 595 GOSUB1250:VA=1024+MX(14)+MY(14)*40:POKEVA-KI(V)*40,192 596 M=11:W=RI(V):GOSUB1300:M=12:W=SC(V):GOSUB1300:M=13:W=F(V):GOSUB1300 599 RETURN 600 A$=",":C$(1)="100 DATA":FORI=1TO3:FL(I)=FNLO(FR(I)):FH(I)=FNHI(FR(I)) 601 PL(I)=FNLO(PW(I)):PH(I)=FNHI(PW(I)) 602 KI(I)=RA(I)+RE(I)+SA(I)+DR(I)+RI(I)+SC(I):AD(I)=A(I)*16+D(I) 603 SR(I)=S(I)*16+R(I):NEXTI:C$(2)="101 DATA" 604 FORI=1TO3:B$(I)=STR$(FL(I))+A$+STR$(FH(I))+A$+STR$(PL(I))+A$+STR$(PH(I))+A$ 605 B$(I)=B$(I)+STR$(KI(I))+A$+STR$(AD(I))+A$+STR$(SR(I)):NEXTI 606 A$(1)=C$(1)+B$(1)+A$+B$(2):A$(2)=C$(2)+B$(3)+A$:GL=FNGL(GR):GH=FNGH(GR) 607 A$(2)=A$(2)+STR$(GL)+A$+STR$(GH)+A$+STR$(RS*16+F(1)+F(2)+F(3))+A$ 608 A$(2)=A$(2)+STR$(FI+VO+DO*128):A$(4)="103 ":A$(5)="104 " 609 A$(3)="102 S=54272:FORI=0TO24:READD:POKES+I,D:NEXTI" 610 IFKI(1)>15THENA$(4)=A$(4)+"POKE"+STR$(KO(1))+","+STR$(KI(1)+1) 611 IFKI(2)>15THENA$(4)=A$(4)+":POKE"+STR$(KO(2))+","+STR$(KI(2)+1) 612 IFKI(3)>15THENA$(4)=A$(4)+":POKE"+STR$(KO(3))+","+STR$(KI(3)+1) 613 A$(4)=A$(4)+":FORI=1TO1000:NEXTI" 614 IFKI(1)>15THENA$(5)=A$(5)+"POKE"+STR$(KO(1))+","+STR$(KI(1)) 615 IFKI(2)>15THENA$(5)=A$(5)+":POKE"+STR$(KO(2))+","+STR$(KI(2)) 616 IFKI(3)>15THENA$(5)=A$(5)+":POKE"+STR$(KO(3))+","+STR$(KI(3)) 617 PRINT"[147]";"NEW":PRINTA$(1):PRINTA$(2):PRINTA$(3):PRINTA$(4):PRINTA$(5) 619 POKE631,19:FORI=1TO6:POKE631+I,13:NEXTI:POKE198,7:POKE53269,0:END 620 FORI=1TO3:KR=RA(I)+RE(I)+SA(I)+DR(I):IFKR>0THENPOKEKO(I),KR+RI(I)+SC(I)+1 621 NEXTI:WAIT56320,16,239:FORI=1TO3:KR=RA(I)+RE(I)+SA(I)+DR(I)+RI(I)+SC(I) 622 POKEKO(I),KR:NEXTI:RETURN 650 X=MX(M):Y=MY(M):VA=1024+X+(Y-INT(W/2))*40 651 J=FNJY(JO) 652 IF(J<9)OR(J=18)THENRETURN 655 IFJ=10 THENIFW<15THENW=W+1 656 IFJ=14 THENIFW> 0THENW=W-1 660 IF FN OD(W)=1THENP=197 661 IF FN OD(W)=0THENP=210 665 V2=VA:VA=1024+X+(Y-INT(W/2))*40:POKEVA,P:IFV2<>VATHENPOKEV2,160 669 GOTO651 750 X=MX(M):Y=MY(M):VA=1024+X+(Y-KR)*40:P=192 751 J=FNJY(JO) 752 IF(J<9)OR(J=18)THENGOSUB770:RETURN 755 IFJ=10 THENIFKR<4THENKR=KR+1 756 IFJ=14 THENIFKR>0THENKR=KR-1 765 V2=VA:VA=1024+X+(Y-KR)*40:POKEVA,P:IFV2<>VATHENPOKEV2,160 769 GOTO751 770 RA(V)=0:RE(V)=0:SA(V)=0:DR(V)=0:KI(V)=KR 771 IFKR=1THENRA(V)=128:KR=128 772 IFKR=2THENRE(V)=64 :KR= 64 773 IFKR=3THENSA(V)=32 :KR= 32 774 IFKR=4THENDR(V)=16 :KR= 16 775 RETURN 800 X=MX(M):Y=MY(M):VA=1024+X+(Y-KR)*40:P=192 801 J=FNJY(JO) 802 IF(J<9)OR(J=18)THENGOSUB820:RETURN 805 IFJ=10 THENIFKR<4THENKR=KR+1 806 IFJ=14 THENIFKR>0THENKR=KR-1 807 IFJ=12 THEN DO=0:POKE53269,PEEK(53269)AND 247 808 IFJ=16 THEN DO=1:POKE53269,PEEK(53269)OR 8 815 V2=VA:VA=1024+X+(Y-KR)*40:POKEVA,P:IFV2<>VATHENPOKEV2,160 816 GOTO801 820 RA(V)=0:RE(V)=0:SA(V)=0:DR(V)=0:KI(V)=KR 821 IFKR=1THENRA(V)=128:KR=128 822 IFKR=2THENRE(V)=64 :KR= 64 823 IFKR=3THENSA(V)=32 :KR= 32 824 IFKR=4THENDR(V)=16 :KR= 16 825 POKEML,VO+FI+DO*128 826 RETURN 850 X=MX(M):Y=MY(M):VA=55296+X+Y*40 851 J=FNJY(JO):F2=F 852 IF(J<9)OR(J=18)THENRETURN 855 IFJ=10 THENIFF<4THENF=F+1 856 IFJ=14 THENIFF>1THENF=F-1 860 IFF2=FTHEN851 862 IFF=1THENFORI=5TO7:POKEVA-I*40,7:NEXT:FORI=0TO4:POKEVA-I*40,0:NEXT:FI=64 863 IFF=1GOTO851 864 IFF=2THENFORI=0TO2:POKEVA-I*40,7:NEXT:FORI=3TO7:POKEVA-I*40,0:NEXT:FI=16 865 IFF=2GOTO851 866 IFF=3THENFORI=0TO7:POKEVA-I*40,0:NEXT:FORI=2TO5:POKEVA-I*40,7:NEXT:FI=32 867 IFF=3GOTO851 868 IFF=4THENFORI=0TO7:POKEVA-I*40,7:NEXT:FORI=2TO5:POKEVA-I*40,0:NEXT:FI=80 869 GOTO851 950 X=MX(M):Y=MY(M):VA=1024+X+Y*40:P=189:V2=55296+X+Y*40 951 J=FNJY(JO) 952 IF(J<9)OR(J=18)THENRETURN 955 IFJ=16 THENW=0 956 IFJ=12 THENW=1 960 IF W=1THENPOKEVA-4,160:POKEVA-3,P :POKEV2,7 961 IF W=0THENPOKEVA-4,P :POKEVA-3,160:POKEV2,0 965 GOTO951 1000 X=MX(M):Y=MY(M):KF=0:NS=0:VS=0:B$="":VA=1024+X+Y*40 1001 FORI=0TO4+GV:POKEVA+I,160:NEXTI 1010 GETA$:IFA$=""GOTO1010 1011 A=ASC(A$):IF((A<48)OR(A>57))AND(A<>46)AND(A<>13)AND(A<>20)GOTO1010 1012 IF(A<>13)GOTO1015 1013 IF(KF=0)OR((KF=1)AND(NS<2))GOTO1010 1014 A=VAL(B$):RETURN 1015 IF(A<>20)GOTO1020 1016 IF(VS>0)THENB$=LEFT$(B$,LEN(B$)-1) 1017 IF((KF=0)AND(VS>0))THENVS=VS-1 1018 IF((KF=1)AND(NS=0))THENKF=0 1019 IF((KF=1)AND(NS>0))THENNS=NS-1 1020 IF((A=46)AND(VS=0))OR((A=46)AND(KF=1))THEN1010 1021 B=((A>47)AND(A<58)):IF(A=46)THENKF=1 1022 IF B AND((VS=GV)AND(KF=0))GOTO1010 1023 IF B AND(NS=2)GOTO1010 1024 IF B AND(KF=1)THENNS=NS+1 1025 IF B AND(KF=0)THENVS=VS+1 1026 IF((A<>20)AND(A<>13))THENB$=B$+A$ 1030 POKE211,X:POKE214,Y:SYSCS:FORI=1TO(4+GV)-LEN(B$):PRINT"[153] ";:NEXTI 1031 PRINT"";B$:GOTO1010 1100 X=MX(M):Y=MY(M) 1101 J=FNJY(JO) 1102 IF(J<9)OR(J=18)THENRETURN 1103 IFJ=10 THENIFV<3THENV=V+1 1104 IFJ=14 THENIFV>1THENV=V-1 1105 POKE211,X:POKE214,Y:SYSCS:PRINT"[153]";RIGHT$(STR$(V),1):GOTO1101 1250 IF FN OD(W)=1THENP=197 1251 IF FN OD(W)=0THENP=210 1252 VA=1024+MX(M)+(MY(M)-INT(W/2))*40:POKEVA,P:RETURN 1300 Q=MX(M)+MY(M)*40:IFW>0THENPOKE55296+Q,7:POKE1020+Q,160:POKE1021+Q,189 1301 IFW=0THENPOKE55296+Q,0:POKE1020+Q,189:POKE1021+Q,160 1302 RETURN 60000 DATA 3,20,1,6,20,2,9,20,3,12,20,4,15,20,5,18,20,6,21,20,7 60001 DATA 16,3,8,16,7,9,33,3,10,31,15,11,31,18,12,31,21,13,20,7,14 60002 DATA 35,18,15,35,16,16,35,14,17 60003 DATA 13,11,12,0,15,17,16,0,14,10,9,0,0,0,0,0,4,2,3,0,6,8,7,0,5,1,18 60004 DATA 3,18,6,18,9,18,12,18,15,18,18,18,21,18,3,3,3,7,22,3 60005 DATA 29,15,29,18,29,21,25,11,36,21