プチコン

  1. ’┌──────────────┐
  2. ’│SAMPLE6       │
  3. ’│ シ-ケンサ- v1.00 │
  4. ’└──────────────┘
  5. VISIBLE 1,1,1,1,0,0
  6. BGMSTOP
  7. ’---
  8. CLEAR
  9. DIM S(8,16)
  10. DIM N(8)
  11. DIM F(8,16),V(8,16),P(8,16)
  12. DATA 52,53,27,26,28,62,47,25
  13. FOR I=0 TO 7:READ N(I):NEXT
  14. MAX=8
  15. GOSUB @SCINIT
  16. ’---
  17. GOSUB @INIT
  18. GOSUB @SCPUT
  19. ICONSET 2,5 :’PEN
  20. ICONSET 3,39:’ERASER
  21. ’---
  22. TMP=120:TT=1/60:TC=TT
  23. GOSUB @CLCTMP
  24. MD=0:OFS=0
  25. PLY=FALSE
  26. ’---
  27. @LOOP
  28.  ’
  29.  OLDB=B:B=BUTTON()
  30.  OLDST=TST:OTX=TX:OTY=TY
  31.  TST=TCHST:TX=TCHX:TY=TCHY
  32.  ’
  33.  GOSUB @CTRL
  34.  GOSUB @SEQEDIT
  35.  GOSUB @SEQPLAY
  36.  GOSUB @PUTST
  37.  ’
  38.  VSYNC(1)
  39.  ’
  40. GOTO @LOOP
  41. END
  42. ’---
  43. @PUTST
  44. LOCATE 24,0
  45. PRINT ”SPD:   ”;
  46. LOCATE CSRX-3,0
  47. PRINT TMP;
  48. RETURN
  49. ’---
  50. @CTRL
  51. OT=TMP
  52. I=ICONCHK()
  53. IF I!=-1 THEN MD=I-2
  54. ’---
  55. IF OLDB==B THEN RETURN
  56. IF B==64 THEN GOSUB @SCCLR
  57. IF B==4 THEN TMP=TMP-1
  58. IF B==8 THEN TMP=TMP+1
  59. IF TMP<10  THEN TMP=10
  60. IF TMP>240 THEN TMP=240
  61. IF OT!=TMP THEN GOSUB @CLCTMP
  62. RETURN
  63. ’---
  64. @SCCLR
  65. GOSUB @SCINIT
  66. FOR I=0 TO MAX-1
  67.  FOR O=0 TO 15
  68.   GOSUB @SCPUT1
  69.  NEXT
  70. NEXT
  71. RETURN
  72. ’---
  73. @SEQEDIT
  74. IF TST==FALSE THEN RETURN
  75. C=1:IF MD==1 THEN C=0
  76. X=FLOOR(TX/8)
  77. Y=FLOOR(TY/8)
  78. EY=MAX*2+SY-1
  79. IF Y<SY THEN RETURN
  80. IF Y>EY THEN RETURN
  81. O=FLOOR(X/2)
  82. I=FLOOR((Y-SY)/2)
  83. S(I,O)=C
  84. GOSUB @SCPUT1
  85. RETURN
  86. ’---
  87. @CLCTMP
  88. T=60*60 :’VSYNC(1)→1/60SEC
  89. C=TMP*4 :’16フ゛オンフ゜キシ゛ュン
  90. TMAX=T/C/48 :’フ゛ンカイノウ48
  91. RETURN
  92. ’---
  93. @SEQPLAY
  94. ’---
  95. LOCATE 0,22:PRINT TMAX,TT,TC
  96. TC=TC-TT
  97. IF TC>0 THEN RETURN
  98. GOSUB @SCPLAY
  99. TC=TC+TMAX
  100. RETURN
  101. ’---
  102. @SCPLAY
  103. FOR I=0 TO MAX-1
  104.  IF S(I,OFS)==0 GOTO @SCPSKIP
  105.  BEEP N(I),F(I,OFS),V(I,OFS),P(I,OFS)
  106. @SCPSKIP
  107. NEXT
  108. ’---
  109. OFS=OFS+1
  110. OFS=OFS AND 15
  111. BGPAGE 1
  112. BGOFS 1,-OFS*16,0
  113. BGPAGE 0
  114. BGOFS 1,-OFS*16,0
  115. RETURN
  116. ’---
  117. @SCINIT
  118. ’---
  119. FOR I=0 TO MAX-1
  120.  FOR O=0 TO 15
  121.   S(I,O)=0:’RND(2)
  122.   F(I,O)=0:’RND(8192)-4096
  123.   V(I,O)=127:’RND(100)+27
  124.   P(I,O)=64:’RND(128)
  125.  NEXT
  126. NEXT
  127. RETURN
  128. ’---
  129. @SCPUT1 ’I=NO,O=OFS
  130. ’---
  131. X=O*2+SX:Y=I*2+SY:C=0
  132. D=I+2:IF S(I,O)==0 THEN D=0
  133. BGPAGE 1
  134. GOSUB @BGBOX
  135. C=1
  136. BGPAGE 0
  137. ’---
  138. @BGBOX
  139. BGPUT 0,X+0,Y+0,D,C,0,0
  140. BGPUT 0,X+1,Y+0,D,C,0,0
  141. BGPUT 0,X+0,Y+1,D,C,0,0
  142. BGPUT 0,X+1,Y+1,D,C,0,0
  143. RETURN
  144. ’---
  145. @SCPUT
  146. ’---
  147. FOR I=0 TO MAX-1
  148.  FOR O=0 TO 15
  149.   GOSUB @SCPUT1
  150.  NEXT
  151. NEXT
  152. RETURN
  153. ’---
  154. @INIT
  155. PNLTYPE ”OFF”
  156. FOR I=0 TO 1
  157.  BGPAGE I
  158.  BGOFS 0,0,0
  159.  BGOFS 1,0,0
  160.  BGCLIP 0,0,31,23
  161. NEXT
  162. ’---
  163. CLS:COLOR 7
  164. PRINT”┌┐┌┐┌┐──┌┐┬┐┌┐┌┐┬┐”
  165. PRINT”└┐├┘││││├┘│││ ├┘│ ”
  166. PRINT”└┘└┘└┤└┴└┘──└┘└┘── v1.0”
  167. COLOR 0
  168. X=0:Y=CSRY+1
  169. COLOR 1
  170. LOCATE X,Y:PRINT”0 1 2 3 4 5 6 7 8 9 A B C D E F”;
  171. COLOR 0
  172. PNLSTR X,Y,”0 1 2 3 4 5 6 7 8 9 A B C D E F”;
  173. Y=Y+1
  174. SX=X:SY=Y
  175. FOR I=0 TO MAX-1
  176.  COLOR 1
  177.  LOCATE X,Y+0:PRINT”ТТСТСТСТСТСТСТСТСТСТСТСТСТСТСТСТ”;
  178.  LOCATE X,Y+1:PRINT”  У У У У У У У У У У У У У У У ”;
  179.  COLOR 0
  180.  PNLSTR X,Y+0,”ТТСТСТСТСТСТСТСТСТСТСТСТСТСТСТСТ”;
  181.  PNLSTR X,Y+1,”  У У У У У У У У У У У У У У У ”;
  182.  Y=Y+2
  183. NEXT
  184. COLOR 1
  185. LOCATE X,Y:PRINT”ТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ”;
  186. COLOR 0
  187. PNLSTR X,Y,”ТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ”;
  188. ’---
  189. PNLSTR 0,0,”Ф:CLEAR”
  190. ’---
  191. BGPAGE 1
  192. GOSUB @BGCLS
  193. C=1:GOSUB @OFSBAR
  194. BGPAGE 0
  195. GOSUB @BGCLS
  196. C=2:GOSUB @OFSBAR
  197. RETURN
  198. ’---
  199. @OFSBAR
  200. O=8*2
  201. FOR Y=0 TO 23
  202.  BGPUT 1,0,Y,15,C,0,0
  203.  BGPUT 1,1,Y,15,C,0,0
  204. NEXT
  205. RETURN
  206. ’---
  207. @BGCLS
  208. FOR X=0 TO 63
  209.  FOR Y=0 TO 23
  210.   BGPUT 0,X,Y,0,0,0,0
  211.   BGPUT 1,X,Y,15,14,0,0
  212.  NEXT
  213. NEXT
  214. RETURN