home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh2x / sh23b.d64 / sid-director (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  7KB  |  213 lines

  1. 1 IFLC=0THENLC=1:LOAD"MC",8,8
  2. 2 IFLC=1THENLC=2:LOAD"P.CURSOR",8,8
  3. 3 IFLC=2THENLC=3:PRINTCHR$(147)CHR$(142)CHR$(8);:LOAD"C.MASK",8,8
  4. 4 IFLC=3THENLC=4:POKE53280,11:POKE53281,11:LOAD"MASK",8,8
  5. 5 POKE55,63:POKE56,156:CLR:DIM VI(39,24),JR(26)
  6. 6 DIMSX(17),SY(17),MX(15),MY(15)
  7. 7 DEF  FN JY(X) =JR(PEEK(X)-101)
  8. 8 DEF  FN XB(X) =INT((X-24)/8)
  9. 9 DEF  FN YB(Y) =INT((Y-50)/8)
  10. 20 DEF FN PW(X) =INT(X*40.96)
  11. 21 DEF FN FR(X) =INT(X*17.02841156)
  12. 22 DEF FN GR(X) =INT(((X*1000)-30)/5.8182)
  13. 23 DEF FN HI(X) =INT(X/256)
  14. 24 DEF FN LO(X) =X-256*FN HI(X)
  15. 25 DEF FN PO(N1)=N1+16*N2
  16. 26 DEF FN XK(X) =PEEK(700)+PEEK(701)*256
  17. 27 DEF FN YK(X) =PEEK(702)
  18. 28 DEF FN SX(X) =X*8+24
  19. 29 DEF FN SY(Y) =Y*8+50
  20. 30 DEF FN OD(W) =W AND 1
  21. 31 DEF FN GH(X) =INT(X/8)
  22. 32 DEF FN GL(X) =X-8*FN GH(X)
  23. 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
  24. 37 KO(A)=B+4:AD(A)=B+5:SR(A)=B+6:NEXTI
  25. 40 GL=S+21:GH=S+22:RF=S+23:ML=S+24
  26. 43 VO=0:FU=0:FO=3848.568011:UG=0.03:OG=11.9398554:PU=0:PO=100:V=1:CS=58640
  27. 44 JO=56320:FORI=0TO24:POKES+I,0:NEXTI
  28. 50 FORI=1TO7:READX,Y,M:VI(X,Y)=M:VI(X,Y+1)=M:VI(X,Y+2)=M:SX(I)=FNSX(X)
  29. 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
  30. 52 SX(I+7)=FNSX(X):SY(I+7)=FNSY(Y):NEXTI:FORI=0TO26:READJR(I):NEXTI
  31. 55 POKE2041,14:POKE2042,15:FORI=896TO919:POKEI,255:NEXTI:FORI=960TO1022:POKEI,0
  32. 56 NEXTI:FORI=920TO958:POKEI,0:NEXTI:FORI=960TO995STEP3:POKEI,255:NEXTI
  33. 57 POKE53271,4:POKE53275,14:POKE700,32:POKE701,0:POKE702,58
  34. 58 FORI=0TO3:POKE53287+I,1:NEXTI
  35. 59 FORI=1TO15:READMX(I),MY(I):NEXT
  36. 60 POKE2043,14:POKE53254,248:POKE53255,138
  37. 200 POKE53269,(DO*8)*-(V=3):SYS40000:X=FNXK(0):Y=FNYK(0):M=VI(FNXB(X),FNYB(Y))
  38. 201 IFX>255THENPOKE700,PEEK(700)-1
  39. 202 IFM=0GOTO200
  40. 203 POKE53269,(DO*8)*-(V=3):XP=53252:YP=53253:A=4
  41. 210 IFM>7THENXP=53250:YP=53251:A=2
  42. 211 POKEYP,SY(M):IFX<256THENPOKEXP,SX(M)
  43. 212 IFX>255THENPOKEXP,SX(M)-255:POKE53264,A
  44. 213 POKE53269,PEEK(53269)OR A
  45. 214 ONMGOSUB300,320,340,360,380,400,420,440,460,480,500,520,540,560,580,600,620
  46. 220 GOTO200
  47. 300 W=A(V):GOSUB650:A(V)=W:N2=A(V):POKEAD(V),FNPO(D(V)):RETURN
  48. 320 W=D(V):GOSUB650:D(V)=W:N2=A(V):POKEAD(V),FNPO(W):RETURN
  49. 340 W=S(V):GOSUB650:S(V)=W:N2=S(V):POKESR(V),FNPO(R(V)):RETURN
  50. 360 W=R(V):GOSUB650:R(V)=W:N2=S(V):POKESR(V),FNPO(W):RETURN
  51. 380 W=VO:GOSUB650:VO=W:POKEML,VO+FI+DO*128:RETURN
  52. 400 W=RS:GOSUB650:RS=W:POKERF,RS*16+F(1)+F(2)+F(3):RETURN
  53. 420 IFFI=16THENF=2
  54. 421 IFFI=32THENF=3
  55. 422 IFFI=64THENF=1
  56. 423 IFFI=80THENF=4
  57. 425 GOSUB850:POKEML,FI+VO+DO*128:RETURN
  58. 440 GV=3:GOSUB1000:IF(A<UG)OR(A>OG)GOTO440
  59. 441 GR=FNGR(A):POKEGL,FNGL(GR):POKEGH,FNGH(GR):RETURN
  60. 460 GV=4:GOSUB1000:IF(A<FU)OR(A>FO)GOTO460
  61. 461 FR$(V)=B$:FR(V)=FNFR(A):POKEFL(V),FNLO(FR(V)):POKEFH(V),FNHI(FR(V)):RETURN
  62. 480 GV=3:GOSUB1000:IF(A<PU)OR(A>PO)GOTO480
  63. 481 PW$(V)=B$:PW(V)=FNPW(A):POKEPL(V),FNLO(PW(V)):POKEPH(V),FNHI(PW(V)):RETURN
  64. 500 W=0:IFRI(V)>0THENW=1
  65. 501 GOSUB950:RI(V)=W*4:POKEKO(V),RA(V)+RE(V)+SA(V)+DR(V)+RI(V)+SC(V):RETURN
  66. 520 W=0:IFSC(V)>0THENW=1
  67. 521 GOSUB950:SC(V)=W*2:POKEKO(V),RA(V)+RE(V)+SA(V)+DR(V)+RI(V)+SC(V):RETURN
  68. 540 W=0:IFF(V)>0THENW=1
  69. 541 GOSUB950:F(V)=W*2^(V-1):POKERF,RS*16+F(1)+F(2)+F(3):RETURN
  70. 560 KR=0
  71. 561 IFRA(V)=128THENKR=1
  72. 562 IFRE(V)= 64THENKR=2
  73. 563 IFSA(V)= 32THENKR=3
  74. 564 IFDR(V)= 16THENKR=4
  75. 565 IFV=3THENGOSUB800:GOTO570
  76. 566 GOSUB750
  77. 570 POKEKO(V),KR+RI(V)+SC(V)
  78. 571 POKEML,FI+VO+DO*128:RETURN
  79. 580 VV=V:W=V:GOSUB1100
  80. 581 POKE211,MX(9):POKE214,MY(9):SYSCS:FORI=1TO8-LEN(FR$(V)):PRINT"[153] ";:NEXTI
  81. 582 PRINT"";FR$(V):POKE211,MX(10):POKE214,MY(10):SYSCS:FORI=1TO7-LEN(PW$(V))
  82. 583 PRINT"[153] ";:NEXTI:PRINT"";PW$(V)
  83. 584 P=160:M=1:W=A(VV):GOSUB1252:M=2:W=D(VV):GOSUB1252:M=3:W=S(VV):GOSUB1252
  84. 585 M=4:W=R(VV):GOSUB1252
  85. 586 POKE1024+MX(14)+(MY(14)-KI(VV))*40,160
  86. 587 IF V=3 THEN IF DO=1 THEN POKE53269,PEEK(53269) OR 8
  87. 588 IF V=3 THEN IF DO=0 THEN POKE53269,PEEK(53269) AND 247
  88. 594 W=A(V):M=1:GOSUB1250:W=D(V):M=2:GOSUB1250:W=S(V):M=3:GOSUB1250:W=R(V):M=4
  89. 595 GOSUB1250:VA=1024+MX(14)+MY(14)*40:POKEVA-KI(V)*40,192
  90. 596 M=11:W=RI(V):GOSUB1300:M=12:W=SC(V):GOSUB1300:M=13:W=F(V):GOSUB1300
  91. 599 RETURN
  92. 600 A$=",":C$(1)="100 DATA":FORI=1TO3:FL(I)=FNLO(FR(I)):FH(I)=FNHI(FR(I))
  93. 601 PL(I)=FNLO(PW(I)):PH(I)=FNHI(PW(I))
  94. 602 KI(I)=RA(I)+RE(I)+SA(I)+DR(I)+RI(I)+SC(I):AD(I)=A(I)*16+D(I)
  95. 603 SR(I)=S(I)*16+R(I):NEXTI:C$(2)="101 DATA"
  96. 604 FORI=1TO3:B$(I)=STR$(FL(I))+A$+STR$(FH(I))+A$+STR$(PL(I))+A$+STR$(PH(I))+A$
  97. 605 B$(I)=B$(I)+STR$(KI(I))+A$+STR$(AD(I))+A$+STR$(SR(I)):NEXTI
  98. 606 A$(1)=C$(1)+B$(1)+A$+B$(2):A$(2)=C$(2)+B$(3)+A$:GL=FNGL(GR):GH=FNGH(GR)
  99. 607 A$(2)=A$(2)+STR$(GL)+A$+STR$(GH)+A$+STR$(RS*16+F(1)+F(2)+F(3))+A$
  100. 608 A$(2)=A$(2)+STR$(FI+VO+DO*128):A$(4)="103 ":A$(5)="104 "
  101. 609 A$(3)="102 S=54272:FORI=0TO24:READD:POKES+I,D:NEXTI"
  102. 610 IFKI(1)>15THENA$(4)=A$(4)+"POKE"+STR$(KO(1))+","+STR$(KI(1)+1)
  103. 611 IFKI(2)>15THENA$(4)=A$(4)+":POKE"+STR$(KO(2))+","+STR$(KI(2)+1)
  104. 612 IFKI(3)>15THENA$(4)=A$(4)+":POKE"+STR$(KO(3))+","+STR$(KI(3)+1)
  105. 613 A$(4)=A$(4)+":FORI=1TO1000:NEXTI"
  106. 614 IFKI(1)>15THENA$(5)=A$(5)+"POKE"+STR$(KO(1))+","+STR$(KI(1))
  107. 615 IFKI(2)>15THENA$(5)=A$(5)+":POKE"+STR$(KO(2))+","+STR$(KI(2))
  108. 616 IFKI(3)>15THENA$(5)=A$(5)+":POKE"+STR$(KO(3))+","+STR$(KI(3))
  109. 617 PRINT"[147]";"NEW":PRINTA$(1):PRINTA$(2):PRINTA$(3):PRINTA$(4):PRINTA$(5)
  110. 619 POKE631,19:FORI=1TO6:POKE631+I,13:NEXTI:POKE198,7:POKE53269,0:END
  111. 620 FORI=1TO3:KR=RA(I)+RE(I)+SA(I)+DR(I):IFKR>0THENPOKEKO(I),KR+RI(I)+SC(I)+1
  112. 621 NEXTI:WAIT56320,16,239:FORI=1TO3:KR=RA(I)+RE(I)+SA(I)+DR(I)+RI(I)+SC(I)
  113. 622 POKEKO(I),KR:NEXTI:RETURN
  114. 650 X=MX(M):Y=MY(M):VA=1024+X+(Y-INT(W/2))*40
  115. 651 J=FNJY(JO)
  116. 652 IF(J<9)OR(J=18)THENRETURN
  117. 655 IFJ=10 THENIFW<15THENW=W+1
  118. 656 IFJ=14 THENIFW> 0THENW=W-1
  119. 660 IF FN OD(W)=1THENP=197
  120. 661 IF FN OD(W)=0THENP=210
  121. 665 V2=VA:VA=1024+X+(Y-INT(W/2))*40:POKEVA,P:IFV2<>VATHENPOKEV2,160
  122. 669 GOTO651
  123. 750 X=MX(M):Y=MY(M):VA=1024+X+(Y-KR)*40:P=192
  124. 751 J=FNJY(JO)
  125. 752 IF(J<9)OR(J=18)THENGOSUB770:RETURN
  126. 755 IFJ=10 THENIFKR<4THENKR=KR+1
  127. 756 IFJ=14 THENIFKR>0THENKR=KR-1
  128. 765 V2=VA:VA=1024+X+(Y-KR)*40:POKEVA,P:IFV2<>VATHENPOKEV2,160
  129. 769 GOTO751
  130. 770 RA(V)=0:RE(V)=0:SA(V)=0:DR(V)=0:KI(V)=KR
  131. 771 IFKR=1THENRA(V)=128:KR=128
  132. 772 IFKR=2THENRE(V)=64 :KR= 64
  133. 773 IFKR=3THENSA(V)=32 :KR= 32
  134. 774 IFKR=4THENDR(V)=16 :KR= 16
  135. 775 RETURN
  136. 800 X=MX(M):Y=MY(M):VA=1024+X+(Y-KR)*40:P=192
  137. 801 J=FNJY(JO)
  138. 802 IF(J<9)OR(J=18)THENGOSUB820:RETURN
  139. 805 IFJ=10 THENIFKR<4THENKR=KR+1
  140. 806 IFJ=14 THENIFKR>0THENKR=KR-1
  141. 807 IFJ=12 THEN DO=0:POKE53269,PEEK(53269)AND 247
  142. 808 IFJ=16 THEN DO=1:POKE53269,PEEK(53269)OR 8
  143. 815 V2=VA:VA=1024+X+(Y-KR)*40:POKEVA,P:IFV2<>VATHENPOKEV2,160
  144. 816 GOTO801
  145. 820 RA(V)=0:RE(V)=0:SA(V)=0:DR(V)=0:KI(V)=KR
  146. 821 IFKR=1THENRA(V)=128:KR=128
  147. 822 IFKR=2THENRE(V)=64 :KR= 64
  148. 823 IFKR=3THENSA(V)=32 :KR= 32
  149. 824 IFKR=4THENDR(V)=16 :KR= 16
  150. 825 POKEML,VO+FI+DO*128
  151. 826 RETURN
  152. 850 X=MX(M):Y=MY(M):VA=55296+X+Y*40
  153. 851 J=FNJY(JO):F2=F
  154. 852 IF(J<9)OR(J=18)THENRETURN
  155. 855 IFJ=10 THENIFF<4THENF=F+1
  156. 856 IFJ=14 THENIFF>1THENF=F-1
  157. 860 IFF2=FTHEN851
  158. 862 IFF=1THENFORI=5TO7:POKEVA-I*40,7:NEXT:FORI=0TO4:POKEVA-I*40,0:NEXT:FI=64
  159. 863 IFF=1GOTO851
  160. 864 IFF=2THENFORI=0TO2:POKEVA-I*40,7:NEXT:FORI=3TO7:POKEVA-I*40,0:NEXT:FI=16
  161. 865 IFF=2GOTO851
  162. 866 IFF=3THENFORI=0TO7:POKEVA-I*40,0:NEXT:FORI=2TO5:POKEVA-I*40,7:NEXT:FI=32
  163. 867 IFF=3GOTO851
  164. 868 IFF=4THENFORI=0TO7:POKEVA-I*40,7:NEXT:FORI=2TO5:POKEVA-I*40,0:NEXT:FI=80
  165. 869 GOTO851
  166. 950 X=MX(M):Y=MY(M):VA=1024+X+Y*40:P=189:V2=55296+X+Y*40
  167. 951 J=FNJY(JO)
  168. 952 IF(J<9)OR(J=18)THENRETURN
  169. 955 IFJ=16 THENW=0
  170. 956 IFJ=12 THENW=1
  171. 960 IF W=1THENPOKEVA-4,160:POKEVA-3,P  :POKEV2,7
  172. 961 IF W=0THENPOKEVA-4,P  :POKEVA-3,160:POKEV2,0
  173. 965 GOTO951
  174. 1000 X=MX(M):Y=MY(M):KF=0:NS=0:VS=0:B$="":VA=1024+X+Y*40
  175. 1001 FORI=0TO4+GV:POKEVA+I,160:NEXTI
  176. 1010 GETA$:IFA$=""GOTO1010
  177. 1011 A=ASC(A$):IF((A<48)OR(A>57))AND(A<>46)AND(A<>13)AND(A<>20)GOTO1010
  178. 1012 IF(A<>13)GOTO1015
  179. 1013 IF(KF=0)OR((KF=1)AND(NS<2))GOTO1010
  180. 1014 A=VAL(B$):RETURN
  181. 1015 IF(A<>20)GOTO1020
  182. 1016 IF(VS>0)THENB$=LEFT$(B$,LEN(B$)-1)
  183. 1017 IF((KF=0)AND(VS>0))THENVS=VS-1
  184. 1018 IF((KF=1)AND(NS=0))THENKF=0
  185. 1019 IF((KF=1)AND(NS>0))THENNS=NS-1
  186. 1020 IF((A=46)AND(VS=0))OR((A=46)AND(KF=1))THEN1010
  187. 1021 B=((A>47)AND(A<58)):IF(A=46)THENKF=1
  188. 1022 IF B AND((VS=GV)AND(KF=0))GOTO1010
  189. 1023 IF B AND(NS=2)GOTO1010
  190. 1024 IF B AND(KF=1)THENNS=NS+1
  191. 1025 IF B AND(KF=0)THENVS=VS+1
  192. 1026 IF((A<>20)AND(A<>13))THENB$=B$+A$
  193. 1030 POKE211,X:POKE214,Y:SYSCS:FORI=1TO(4+GV)-LEN(B$):PRINT"[153] ";:NEXTI
  194. 1031 PRINT"";B$:GOTO1010
  195. 1100 X=MX(M):Y=MY(M)
  196. 1101 J=FNJY(JO)
  197. 1102 IF(J<9)OR(J=18)THENRETURN
  198. 1103 IFJ=10 THENIFV<3THENV=V+1
  199. 1104 IFJ=14 THENIFV>1THENV=V-1
  200. 1105 POKE211,X:POKE214,Y:SYSCS:PRINT"[153]";RIGHT$(STR$(V),1):GOTO1101
  201. 1250 IF FN OD(W)=1THENP=197
  202. 1251 IF FN OD(W)=0THENP=210
  203. 1252 VA=1024+MX(M)+(MY(M)-INT(W/2))*40:POKEVA,P:RETURN
  204. 1300 Q=MX(M)+MY(M)*40:IFW>0THENPOKE55296+Q,7:POKE1020+Q,160:POKE1021+Q,189
  205. 1301 IFW=0THENPOKE55296+Q,0:POKE1020+Q,189:POKE1021+Q,160
  206. 1302 RETURN
  207. 60000 DATA 3,20,1,6,20,2,9,20,3,12,20,4,15,20,5,18,20,6,21,20,7
  208. 60001 DATA 16,3,8,16,7,9,33,3,10,31,15,11,31,18,12,31,21,13,20,7,14
  209. 60002 DATA 35,18,15,35,16,16,35,14,17
  210. 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
  211. 60004 DATA 3,18,6,18,9,18,12,18,15,18,18,18,21,18,3,3,3,7,22,3
  212. 60005 DATA 29,15,29,18,29,21,25,11,36,21
  213.