home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh2x / sh21a.d64 / mbb-edi.src (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  10KB  |  325 lines

  1. 1000 REM ******************************
  2. 1010 REM *                            *
  3. 1020 REM *     MAGIC BORDER BEAMS     *
  4. 1030 REM *                            *
  5. 1040 REM * EDITOR  DE LUXE VERSION #5 *
  6. 1050 REM *                            *
  7. 1060 REM *    BY MATTHIAS FICHTNER    *
  8. 1070 REM *                            *
  9. 1080 REM ******************************
  10. 1090 POKE55,0:POKE56,120:CLR:POKE650,255:DIMM(7,24):MM=32769:POKE788,52
  11. 1100 F(0)=0:F(1)=0:F(2)=128:F(3)=128:SP=0:FP=0:LP=0:TP=255:ME=0
  12. 1110 IFPEEK(789)<>234THENSYS49620
  13. 1120 REM ******************************
  14. 1130 REM * INTRO                      *
  15. 1140 REM ******************************
  16. 1150 PRINT"[147][142]":POKE53280,15:POKE53265,11:POKE53281,0
  17. 1160 PRINT"                   [214]"
  18. 1170 PRINT"                  [214][214][214]"
  19. 1180 PRINT"                 [214][214][150][214][214][214]"
  20. 1190 PRINT"                [214][214][150][214][214][214][214][214]"
  21. 1200 PRINT"               [214][214][150][214][214][155][214][150][214][214][214][214]"
  22. 1210 PRINT"              [214] [214][214][150][214][214][214][214][214] [151][214]"
  23. 1220 PRINT"             [214][214][214] [214][214][150][214][214][214] [151][214][214][214]"
  24. 1230 PRINT"            [214][214][154][214][214][214] [214][214][214] [151][214][214][152][214][151][214][214]"
  25. 1240 PRINT"           [214][214][154][214][214][214][214][214] [214] [151][214][214][152][214][214][214][151][214][214]"
  26. 1250 PRINT"          [214][214][154][214][214][155][214][154][214][214][214][214] [151][214][214][152][214][214][155][214][152][214][214][151][214][214]"
  27. 1260 PRINT"           [214][214][154][214][214][214][214][214]   [151][214][214][152][214][214][214][151][214][214]"
  28. 1270 PRINT"            [214][214][154][214][214][214]     [151][214][214][152][214][151][214][214]"
  29. 1280 PRINT"             [214][214][214]       [151][214][214][214]"
  30. 1290 PRINT"              [214] [155]T R A X [151][214]"
  31. 1300 PRINT"            [155]S O F T W A R E"
  32. 1310 POKE53265,27
  33. 1320 N$="MBB-EDI.ASS":A=30720:GOSUB2970
  34. 1330 N$="MBB-IRQ.CDE":A=49152:GOSUB2970
  35. 1340 C(0)=0:C(1)=11:C(2)=12:C(3)=15:C(4)=1
  36. 1350 READA$:IFA$="*"THENRESTORE:GOTO1350
  37. 1360 FORT=0TO4
  38. 1370 POKE646,C(T):PRINT"[145]"A$
  39. 1380 FORI=1TO30:NEXTI,T:T=0
  40. 1390 GETB$:IFB$=CHR$(13)THEN1540
  41. 1400 T=T+1:IFT<600THEN1390
  42. 1410 FORT=4TO0STEP-1
  43. 1420 POKE646,C(T):PRINT"[145]"A$
  44. 1430 FORI=1TO30:NEXTI,T
  45. 1440 GOTO1350
  46. 1450 DATA"       MAGIC BORDER BEAMS EDITOR"
  47. 1460 DATA"          DE LUXE VERSION #05"
  48. 1470 DATA"   WRITTEN 1987 BY MATTHIAS FICHTNER"
  49. 1480 DATA"       (C) 1987 BY TRAX SOFTWARE"
  50. 1490 DATA"          HIT RETURN TO ENTER"
  51. 1500 DATA"*"
  52. 1510 REM ******************************
  53. 1520 REM * INIT SCREEN                *
  54. 1530 REM ******************************
  55. 1540 POKE53265,11:POKE780,15:SYS30723
  56. 1550 PRINT"[147]":FORY=0TO23:PRINT" [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]";
  57. 1560 POKE1064+Y*40+39,228:IFY<23THENPRINT
  58. 1570 NEXTY
  59. 1580 P=0:L=0
  60. 1590 REM ******************************
  61. 1600 REM * MAIN                       *
  62. 1610 REM ******************************
  63. 1620 PRINT"[146] [151][218][152][218][155][218] MAGIC BORDER BEAMS [218][152][218][151][218]    [155]PIC: "RIGHT$("  "+STR$(P),3)
  64. 1630 N=253:GOSUB2780:SYS30720
  65. 1640 POKE211,0:POKE214,24-L:SYS58732
  66. 1650 PRINT">";:POKE53265,27
  67. 1660 GOSUB2820
  68. 1670 N=(P-(A$="+")+(A$="-")-(A$="[219]")*10+(A$="[221]")*10)AND255
  69. 1680 IFN<>PTHENP=N:GOTO1620
  70. 1690 IFA$=""ANDL>0THENPRINT"[157] [157]>";:L=L-1:GOTO1660
  71. 1700 IFA$="[145]"ANDL<23THENPRINT"[157] [145][157]>";:L=L+1:GOTO1660
  72. 1710 IFA$="U"THENN=251:GOSUB2780:SYS30732:GOTO1620
  73. 1720 IFA$="D"THENN=251:GOSUB2780:SYS30735:GOTO1620
  74. 1730 IFA$="="ANDP>0THEN3680
  75. 1740 T=1
  76. 1750 IFA$=MID$("[144][159][156][158][129][149][150][151][152][153][154][155]",T,1)THENPOKEMM+P*32+L,T-1:GOTO1630
  77. 1760 T=T+1:IFT<17THEN1750
  78. 1770 IFA$="B"THENPOKE53280,(PEEK(53280)+1)AND15:GOTO1660
  79. 1780 IFA$="[147]"THENFORT=0TO23:POKEMM+P*32+T,PEEK(53280)AND15:NEXT:GOTO1630
  80. 1790 IFA$="M"THEN3240
  81. 1800 IFA$="R"THEN3480
  82. 1810 IFA$="L"THEN1990
  83. 1820 IFA$="S"THEN2070
  84. 1830 IFA$="Q"THEN2310
  85. 1840 IFA$="C"THEN2370
  86. 1850 IFA$="T"THEN2620
  87. 1860 IFA$="N"THEN2860
  88. 1870 IFA$="G"THEN3130
  89. 1880 IFA$="I"THEN3610
  90. 1890 IFA$="P"THEN3720
  91. 1900 IFA$="F"THEN4040
  92. 1910 T=1
  93. 1920 IFA$=MID$("[137][138][139][140]",T,1)THENF(T-1)=P
  94. 1930 IFA$=MID$("[133][134][135][136]",T,1)THENP=F(T-1):GOTO1620
  95. 1940 T=T+1:IFT<5THEN1920
  96. 1950 GOTO1660
  97. 1960 REM ******************************
  98. 1970 REM * LOAD PIC                   *
  99. 1980 REM ******************************
  100. 1990 GOSUB2930:PRINT" LOAD: ";
  101. 2000 GOSUB2180:IFLEN(N$)=6THEN1620
  102. 2010 A=MM-1:GOSUB2970:GOSUB3050:IFN<>0THEN1620
  103. 2020 TP=PEEK(36864):FP=PEEK(36865):LP=PEEK(36866):SP=PEEK(36867):SYS30747
  104. 2030 GOTO1620
  105. 2040 REM ******************************
  106. 2050 REM * SAVE PIC                   *
  107. 2060 REM ******************************
  108. 2070 GOSUB2930:PRINT" SAVE: ";
  109. 2080 GOSUB2180:IFLEN(N$)=6THEN1620
  110. 2090 FORT=1TOLEN(N$):POKE51711+T,ASC(MID$(N$,T,1)):NEXT
  111. 2100 POKE781,8:POKE782,0:SYS65466
  112. 2110 POKE780,LEN(N$):POKE781,0:POKE782,202:SYS65469
  113. 2120 SYS30744:POKE36864,TP:POKE36865,FP:POKE36866,LP:POKE36867,SP
  114. 2130 POKE251,0:POKE252,128:POKE780,251:POKE781,4:POKE782,144:SYS65496
  115. 2140 SYS30747:GOSUB3050:GOTO1620
  116. 2150 REM ******************************
  117. 2160 REM * GET PIC-NAME               *
  118. 2170 REM ******************************
  119. 2180 N$="@:MBB.":PRINTCHR$(34)"MBB.";:POKE212,0:PRINT"[164][146][157]";:FORT=1TO12
  120. 2190 GOSUB2820
  121. 2200 IF(A$<" "ORA$>"_"ORA$=CHR$(34))ANDA$<>CHR$(13)ANDA$<>CHR$(20)THEN2190
  122. 2210 IFA$=CHR$(13)THENT=13
  123. 2220 IFA$=CHR$(20)ANDT<2THEN2190
  124. 2230 IFA$=CHR$(20)THENPRINT" [157][157][164][146][157]";:T=T-2:N$=LEFT$(N$,LEN(N$)-1):GOTO2250
  125. 2240 IFA$<>CHR$(13)THENPRINTA$"[164][146][157]";:N$=N$+A$
  126. 2250 NEXT
  127. 2260 PRINTCHR$(34);:POKE212,0
  128. 2270 RETURN
  129. 2280 REM ******************************
  130. 2290 REM * QUIT                       *
  131. 2300 REM ******************************
  132. 2310 GOSUB2930:PRINT" ARE YOU SURE ? ";
  133. 2320 N$="N":GOSUB3990:IFN$="N"THEN1620
  134. 2330 POKE24576,0:SYS64738
  135. 2340 REM ******************************
  136. 2350 REM * CHANGE COLOR               *
  137. 2360 REM ******************************
  138. 2370 GOSUB2930:PRINT" CHANGE < >[157][157]";:N=PEEK(MM+P*32+L):GOSUB3910:C1=N
  139. 2380 PRINT" INTO < >[157][157]";:GOSUB3910:C2=N
  140. 2390 PRINT"     IN PIC ";:N=P:GOSUB2490:S1=N
  141. 2400 PRINT"-";
  142. 2410 N=S1:GOSUB2490:IFN<S1THEN2410
  143. 2420 S2=N:POKE780,C1:POKE2,C2:I=P
  144. 2430 N=251:P=S1:GOSUB2780
  145. 2440 N=253:P=S2+1:GOSUB2780
  146. 2450 SYS30726:P=I:GOTO1620
  147. 2460 REM ******************************
  148. 2470 REM * GET NUMBER OF PIC          *
  149. 2480 REM ******************************
  150. 2490 PX=PEEK(211):PY=PEEK(214)
  151. 2500 POKE211,PX:POKE214,PY:SYS58732:PRINTRIGHT$("  "+STR$(N),3);
  152. 2510 POKE254,(MM+N*32)/256:POKE253,(MM+N*32)-PEEK(254)*256:SYS30720
  153. 2520 GOSUB2820
  154. 2530 X=(N-(A$="+")+(A$="-")-(A$="[219]")*10+(A$="[221]")*10)AND255
  155. 2540 FORT=1TO4:IFA$=MID$("[133][134][135][136]",T,1)THENX=F(T-1)
  156. 2550 NEXT
  157. 2560 IFX<>NTHENN=X:GOTO2500
  158. 2570 IFA$<>CHR$(13)THEN2520
  159. 2580 POKE211,PX:POKE214,PY:SYS58732:RETURN
  160. 2590 REM ******************************
  161. 2600 REM * TRANSFER PICS              *
  162. 2610 REM ******************************
  163. 2620 GOSUB2930:PRINT" SOURCE: ";
  164. 2630 N=P:GOSUB2490:S1=N
  165. 2640 PRINT"-";
  166. 2650 N=S1:GOSUB2490:S2=N:IFS2<S1THEN2650
  167. 2660 PRINT"       DESTINATION: ";
  168. 2670 N=S1:GOSUB2490:D=N:I=P
  169. 2680 AW=0:EW=S2-S1:SW=1:IFD>S1ANDD<=S2THENAW=EW:EW=0:SW=-1
  170. 2690 FORT=AWTOEWSTEPSW
  171. 2700 IF(T+D)>255THEN2740
  172. 2710 N=251:P=T+S1:GOSUB2780
  173. 2720 N=253:P=T+D:GOSUB2780
  174. 2730 SYS30729
  175. 2740 NEXT:P=I:GOTO1620
  176. 2750 REM ******************************
  177. 2760 REM * POKE PIC-ADR TO N/N+1      *
  178. 2770 REM ******************************
  179. 2780 POKEN+1,(MM+P*32)/256:POKEN,(MM+P*32)-PEEK(N+1)*256:RETURN
  180. 2790 REM ******************************
  181. 2800 REM * GETKEY A$                  *
  182. 2810 REM ******************************
  183. 2820 GETA$:ON-(A$="")GOTO2820:RETURN
  184. 2830 REM ******************************
  185. 2840 REM * INIT FOR NEW MOVIE         *
  186. 2850 REM ******************************
  187. 2860 GOSUB2930:PRINT" ARE YOU SURE ? ";
  188. 2870 N$="N":GOSUB3990:IFN$="N"THEN1620
  189. 2880 POKE780,PEEK(53280)AND15:SYS30723:FORT=0TO7:M(T,24)=0:NEXT
  190. 2890 TP=255:FP=0:LP=0:SP=0:GOTO1580
  191. 2900 REM ******************************
  192. 2910 REM * CLEAR CURSOR/HEADLINE      *
  193. 2920 REM ******************************
  194. 2930 PRINT"[157]                                        ";:RETURN
  195. 2940 REM ******************************
  196. 2950 REM * LOAD N$ TO A               *
  197. 2960 REM ******************************
  198. 2970 FORT=1TOLEN(N$):POKE51711+T,ASC(MID$(N$,T,1)):NEXT
  199. 2980 POKE781,8:POKE782,0:SYS65466
  200. 2990 POKE780,LEN(N$):POKE781,0:POKE782,202:SYS65469
  201. 3000 POKE780,0:POKE782,A/256:POKE781,A-PEEK(782)*256:SYS65493
  202. 3010 RETURN
  203. 3020 REM ******************************
  204. 3030 REM * CHECK DISK STATUS          *
  205. 3040 REM ******************************
  206. 3050 OPEN1,8,15:INPUT#1,N:CLOSE1
  207. 3060 IFN=0THENRETURN
  208. 3070 PRINT"                                       ";
  209. 3080 PRINT" I/O-ERROR...";
  210. 3090 GOSUB2820:RETURN
  211. 3100 REM ******************************
  212. 3110 REM * SHOW THE MOVIE             *
  213. 3120 REM ******************************
  214. 3130 PRINT"[157] ";:POKE832,SP:POKE833,1
  215. 3140 POKE834,FP:POKE252,(FP-1)AND255
  216. 3150 POKE835,LP:CC=PEEK(53280)AND15:POKE50176,CC:POKE50240,CC
  217. 3160 POKE836,TP
  218. 3170 SYS30738:SYS49155
  219. 3180 GOSUB2820:IFA$="B"THENCC=(CC+1)AND15:POKE50176,CC:POKE50240,CC
  220. 3190 IFA$<>"H"THEN3180
  221. 3200 SYS49620:GOTO1620
  222. 3210 REM ******************************
  223. 3220 REM * MEMORIZE                   *
  224. 3230 REM ******************************
  225. 3240 PX=PEEK(211):PY=PEEK(214)
  226. 3250 GOSUB2930:PRINT" MEMORY:";
  227. 3260 PRINTME"[157][157][157]";
  228. 3270 GOSUB2820
  229. 3280 ME=(ME-(A$="+")+(A$="-"))AND7
  230. 3290 IFA$="_"THEN1620
  231. 3300 IFA$<>CHR$(13)THEN3260
  232. 3310 POKE211,PX:POKE214,PY:SYS58732:PRINT"[157]>";:B=L
  233. 3320 GOSUB2820
  234. 3330 IFA$=""ANDB>0THENPRINT"[157] [157]>";:B=B-1
  235. 3340 IFA$="[145]"ANDB<23THENPRINT"[157] [145][157]>";:B=B+1
  236. 3350 IFA$<>CHR$(13)THEN3320
  237. 3360 T=B
  238. 3370 GOSUB2820
  239. 3380 IFA$=""ANDT>BTHENPRINT"[157] ";:T=T-1
  240. 3390 IFA$="[145]"ANDT<23THENPRINT"[145][157]>";:T=T+1
  241. 3400 IFA$<>CHR$(13)THEN3370
  242. 3410 FORI=0TOT-B:M(ME,I)=PEEK(MM+32*P+I+B):NEXT
  243. 3420 M(ME,24)=T-B+1:PRINT"[157] ";
  244. 3430 IFT>BTHENPRINT"[157] ";:T=T-1:GOTO3430
  245. 3440 GOTO1620
  246. 3450 REM ******************************
  247. 3460 REM * RECALL                     *
  248. 3470 REM ******************************
  249. 3480 GOSUB2930:PRINT" MEMORY:";
  250. 3490 PRINTME"[157][157][157]";
  251. 3500 GOSUB2820
  252. 3510 ME=(ME-(A$="+")+(A$="-"))AND7
  253. 3520 IFA$="_"THEN1620
  254. 3530 IFA$<>CHR$(13)THEN3490
  255. 3540 IFM(ME,24)=0THEN3570
  256. 3550 FORT=0TOM(ME,24)-1:IFL+T<24THENPOKEMM+P*32+L+T,M(ME,T)
  257. 3560 NEXT
  258. 3570 GOTO1620
  259. 3580 REM ******************************
  260. 3590 REM * INVERT ORDER               *
  261. 3600 REM ******************************
  262. 3610 GOSUB2930:PRINT" INVERT ORDER OF PIC ";
  263. 3620 N=P:GOSUB2490:P1=N:PRINT"-";
  264. 3630 N=P1:GOSUB2490:IFN<P1THEN3630
  265. 3640 P2=N:I=P:FORT=0TOINT((P2-P1)/2)
  266. 3650 N=251:P=P1+T:GOSUB2780
  267. 3660 N=253:P=P2-T:GOSUB2780
  268. 3670 SYS30741:NEXT:P=I:GOTO1620
  269. 3680 REM ******************************
  270. 3690 REM * COPY PREVIOUS PIC          *
  271. 3700 REM ******************************
  272. 3710 N=251:P=P-1:GOSUB2780:N=253:P=P+1:GOSUB2780:SYS30729:GOTO1620
  273. 3720 REM ******************************
  274. 3730 REM * GET PARAMETERS             *
  275. 3740 REM ******************************
  276. 3750 GOSUB2930:PRINT" SPEED: ";
  277. 3760 PRINTRIGHT$(STR$(SP),2)"[157][157]";
  278. 3770 GOSUB2820
  279. 3780 SP=(SP-(A$="+")+(A$="-"))AND31
  280. 3790 IFA$<>CHR$(13)THEN3760
  281. 3800 PRINT" MOVIE: ";
  282. 3810 N=FP:GOSUB2490:FP=N
  283. 3820 PRINT"-";:N=(LP-1)AND255:GOSUB2490:LP=(N+1)AND255
  284. 3830 PRINT" TRANSPARENT COLOR ? ";
  285. 3840 N$="Y":IFTP=255THENN$="N":TP=PEEK(MM+P*32+L)
  286. 3850 GOSUB3990
  287. 3860 IFN$="N"THENTP=255:GOTO1620
  288. 3870 PRINT"[157][157][157]: < >[157][157]";:N=TP:GOSUB3910:TP=N:GOTO1620
  289. 3880 REM ******************************
  290. 3890 REM * GET COLOR                  *
  291. 3900 REM ******************************
  292. 3910 POKE646,N:PRINT"[164][146][157][155]";
  293. 3920 GOSUB2820
  294. 3930 N=(N-(A$="+")+(A$="-"))AND15
  295. 3940 IFA$<>CHR$(13)THEN3910
  296. 3950 RETURN
  297. 3960 REM ******************************
  298. 3970 REM * GET Y OR N                 *
  299. 3980 REM ******************************
  300. 3990 PRINTN$"[157]";
  301. 4000 GOSUB2820
  302. 4010 IFA$="Y"ORA$="N"THENN$=A$
  303. 4020 IFA$<>CHR$(13)THEN3990
  304. 4030 RETURN
  305. 4040 REM ******************************
  306. 4050 REM * TRANSFER PICS FROM FILE    *
  307. 4060 REM ******************************
  308. 4070 GOSUB2930:PRINT" TRANSFER FROM FILE: ";
  309. 4080 GOSUB2180:IFLEN(N$)=6THEN1620
  310. 4090 A=40960:GOSUB2970:GOSUB3050:IFN<>0THEN1620
  311. 4100 SYS49893:MM=40961
  312. 4110 GOSUB2930:PRINT" SOURCE: ";
  313. 4120 N=0:GOSUB2490:S1=N
  314. 4130 PRINT"-";
  315. 4140 N=S1:GOSUB2490:S2=N:IFS2<S1THEN4140
  316. 4150 MM=32769:PRINT"       DESTINATION: ";
  317. 4160 N=P:GOSUB2490:D=N:I=P
  318. 4170 AW=0:EW=S2-S1:SW=1:IFD>S1ANDD<=S2THENAW=EW:EW=0:SW=-1
  319. 4180 FORT=AWTOEWSTEPSW
  320. 4190 IF(T+D)>255THEN4230
  321. 4200 MM=40961:N=251:P=T+S1:GOSUB2780
  322. 4210 MM=32769:N=253:P=T+D:GOSUB2780
  323. 4220 SYS30729
  324. 4230 NEXT:P=I:GOTO1620
  325.