プチコンmkII

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