home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh2x
/
sh21a.d64
/
mbb-edi.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
10KB
|
325 lines
1000 REM ******************************
1010 REM * *
1020 REM * MAGIC BORDER BEAMS *
1030 REM * *
1040 REM * EDITOR DE LUXE VERSION #5 *
1050 REM * *
1060 REM * BY MATTHIAS FICHTNER *
1070 REM * *
1080 REM ******************************
1090 POKE55,0:POKE56,120:CLR:POKE650,255:DIMM(7,24):MM=32769:POKE788,52
1100 F(0)=0:F(1)=0:F(2)=128:F(3)=128:SP=0:FP=0:LP=0:TP=255:ME=0
1110 IFPEEK(789)<>234THENSYS49620
1120 REM ******************************
1130 REM * INTRO *
1140 REM ******************************
1150 PRINT"[147][142]":POKE53280,15:POKE53265,11:POKE53281,0
1160 PRINT" [214]"
1170 PRINT" [214][214][214]"
1180 PRINT" [214][214][150][214][214][214]"
1190 PRINT" [214][214][150][214][214][214][214][214]"
1200 PRINT" [214][214][150][214][214][155][214][150][214][214][214][214]"
1210 PRINT" [214] [214][214][150][214][214][214][214][214] [151][214]"
1220 PRINT" [214][214][214] [214][214][150][214][214][214] [151][214][214][214]"
1230 PRINT" [214][214][154][214][214][214] [214][214][214] [151][214][214][152][214][151][214][214]"
1240 PRINT" [214][214][154][214][214][214][214][214] [214] [151][214][214][152][214][214][214][151][214][214]"
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]"
1260 PRINT" [214][214][154][214][214][214][214][214] [151][214][214][152][214][214][214][151][214][214]"
1270 PRINT" [214][214][154][214][214][214] [151][214][214][152][214][151][214][214]"
1280 PRINT" [214][214][214] [151][214][214][214]"
1290 PRINT" [214] [155]T R A X [151][214]"
1300 PRINT" [155]S O F T W A R E"
1310 POKE53265,27
1320 N$="MBB-EDI.ASS":A=30720:GOSUB2970
1330 N$="MBB-IRQ.CDE":A=49152:GOSUB2970
1340 C(0)=0:C(1)=11:C(2)=12:C(3)=15:C(4)=1
1350 READA$:IFA$="*"THENRESTORE:GOTO1350
1360 FORT=0TO4
1370 POKE646,C(T):PRINT"[145]"A$
1380 FORI=1TO30:NEXTI,T:T=0
1390 GETB$:IFB$=CHR$(13)THEN1540
1400 T=T+1:IFT<600THEN1390
1410 FORT=4TO0STEP-1
1420 POKE646,C(T):PRINT"[145]"A$
1430 FORI=1TO30:NEXTI,T
1440 GOTO1350
1450 DATA" MAGIC BORDER BEAMS EDITOR"
1460 DATA" DE LUXE VERSION #05"
1470 DATA" WRITTEN 1987 BY MATTHIAS FICHTNER"
1480 DATA" (C) 1987 BY TRAX SOFTWARE"
1490 DATA" HIT RETURN TO ENTER"
1500 DATA"*"
1510 REM ******************************
1520 REM * INIT SCREEN *
1530 REM ******************************
1540 POKE53265,11:POKE780,15:SYS30723
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]";
1560 POKE1064+Y*40+39,228:IFY<23THENPRINT
1570 NEXTY
1580 P=0:L=0
1590 REM ******************************
1600 REM * MAIN *
1610 REM ******************************
1620 PRINT"[146] [151][218][152][218][155][218] MAGIC BORDER BEAMS [218][152][218][151][218] [155]PIC: "RIGHT$(" "+STR$(P),3)
1630 N=253:GOSUB2780:SYS30720
1640 POKE211,0:POKE214,24-L:SYS58732
1650 PRINT">";:POKE53265,27
1660 GOSUB2820
1670 N=(P-(A$="+")+(A$="-")-(A$="[219]")*10+(A$="[221]")*10)AND255
1680 IFN<>PTHENP=N:GOTO1620
1690 IFA$=""ANDL>0THENPRINT"[157] [157]>";:L=L-1:GOTO1660
1700 IFA$="[145]"ANDL<23THENPRINT"[157] [145][157]>";:L=L+1:GOTO1660
1710 IFA$="U"THENN=251:GOSUB2780:SYS30732:GOTO1620
1720 IFA$="D"THENN=251:GOSUB2780:SYS30735:GOTO1620
1730 IFA$="="ANDP>0THEN3680
1740 T=1
1750 IFA$=MID$("[144][159][156][158][129][149][150][151][152][153][154][155]",T,1)THENPOKEMM+P*32+L,T-1:GOTO1630
1760 T=T+1:IFT<17THEN1750
1770 IFA$="B"THENPOKE53280,(PEEK(53280)+1)AND15:GOTO1660
1780 IFA$="[147]"THENFORT=0TO23:POKEMM+P*32+T,PEEK(53280)AND15:NEXT:GOTO1630
1790 IFA$="M"THEN3240
1800 IFA$="R"THEN3480
1810 IFA$="L"THEN1990
1820 IFA$="S"THEN2070
1830 IFA$="Q"THEN2310
1840 IFA$="C"THEN2370
1850 IFA$="T"THEN2620
1860 IFA$="N"THEN2860
1870 IFA$="G"THEN3130
1880 IFA$="I"THEN3610
1890 IFA$="P"THEN3720
1900 IFA$="F"THEN4040
1910 T=1
1920 IFA$=MID$("[137][138][139][140]",T,1)THENF(T-1)=P
1930 IFA$=MID$("[133][134][135][136]",T,1)THENP=F(T-1):GOTO1620
1940 T=T+1:IFT<5THEN1920
1950 GOTO1660
1960 REM ******************************
1970 REM * LOAD PIC *
1980 REM ******************************
1990 GOSUB2930:PRINT" LOAD: ";
2000 GOSUB2180:IFLEN(N$)=6THEN1620
2010 A=MM-1:GOSUB2970:GOSUB3050:IFN<>0THEN1620
2020 TP=PEEK(36864):FP=PEEK(36865):LP=PEEK(36866):SP=PEEK(36867):SYS30747
2030 GOTO1620
2040 REM ******************************
2050 REM * SAVE PIC *
2060 REM ******************************
2070 GOSUB2930:PRINT" SAVE: ";
2080 GOSUB2180:IFLEN(N$)=6THEN1620
2090 FORT=1TOLEN(N$):POKE51711+T,ASC(MID$(N$,T,1)):NEXT
2100 POKE781,8:POKE782,0:SYS65466
2110 POKE780,LEN(N$):POKE781,0:POKE782,202:SYS65469
2120 SYS30744:POKE36864,TP:POKE36865,FP:POKE36866,LP:POKE36867,SP
2130 POKE251,0:POKE252,128:POKE780,251:POKE781,4:POKE782,144:SYS65496
2140 SYS30747:GOSUB3050:GOTO1620
2150 REM ******************************
2160 REM * GET PIC-NAME *
2170 REM ******************************
2180 N$="@:MBB.":PRINTCHR$(34)"MBB.";:POKE212,0:PRINT"[164][146][157]";:FORT=1TO12
2190 GOSUB2820
2200 IF(A$<" "ORA$>"_"ORA$=CHR$(34))ANDA$<>CHR$(13)ANDA$<>CHR$(20)THEN2190
2210 IFA$=CHR$(13)THENT=13
2220 IFA$=CHR$(20)ANDT<2THEN2190
2230 IFA$=CHR$(20)THENPRINT" [157][157][164][146][157]";:T=T-2:N$=LEFT$(N$,LEN(N$)-1):GOTO2250
2240 IFA$<>CHR$(13)THENPRINTA$"[164][146][157]";:N$=N$+A$
2250 NEXT
2260 PRINTCHR$(34);:POKE212,0
2270 RETURN
2280 REM ******************************
2290 REM * QUIT *
2300 REM ******************************
2310 GOSUB2930:PRINT" ARE YOU SURE ? ";
2320 N$="N":GOSUB3990:IFN$="N"THEN1620
2330 POKE24576,0:SYS64738
2340 REM ******************************
2350 REM * CHANGE COLOR *
2360 REM ******************************
2370 GOSUB2930:PRINT" CHANGE < >[157][157]";:N=PEEK(MM+P*32+L):GOSUB3910:C1=N
2380 PRINT" INTO < >[157][157]";:GOSUB3910:C2=N
2390 PRINT" IN PIC ";:N=P:GOSUB2490:S1=N
2400 PRINT"-";
2410 N=S1:GOSUB2490:IFN<S1THEN2410
2420 S2=N:POKE780,C1:POKE2,C2:I=P
2430 N=251:P=S1:GOSUB2780
2440 N=253:P=S2+1:GOSUB2780
2450 SYS30726:P=I:GOTO1620
2460 REM ******************************
2470 REM * GET NUMBER OF PIC *
2480 REM ******************************
2490 PX=PEEK(211):PY=PEEK(214)
2500 POKE211,PX:POKE214,PY:SYS58732:PRINTRIGHT$(" "+STR$(N),3);
2510 POKE254,(MM+N*32)/256:POKE253,(MM+N*32)-PEEK(254)*256:SYS30720
2520 GOSUB2820
2530 X=(N-(A$="+")+(A$="-")-(A$="[219]")*10+(A$="[221]")*10)AND255
2540 FORT=1TO4:IFA$=MID$("[133][134][135][136]",T,1)THENX=F(T-1)
2550 NEXT
2560 IFX<>NTHENN=X:GOTO2500
2570 IFA$<>CHR$(13)THEN2520
2580 POKE211,PX:POKE214,PY:SYS58732:RETURN
2590 REM ******************************
2600 REM * TRANSFER PICS *
2610 REM ******************************
2620 GOSUB2930:PRINT" SOURCE: ";
2630 N=P:GOSUB2490:S1=N
2640 PRINT"-";
2650 N=S1:GOSUB2490:S2=N:IFS2<S1THEN2650
2660 PRINT" DESTINATION: ";
2670 N=S1:GOSUB2490:D=N:I=P
2680 AW=0:EW=S2-S1:SW=1:IFD>S1ANDD<=S2THENAW=EW:EW=0:SW=-1
2690 FORT=AWTOEWSTEPSW
2700 IF(T+D)>255THEN2740
2710 N=251:P=T+S1:GOSUB2780
2720 N=253:P=T+D:GOSUB2780
2730 SYS30729
2740 NEXT:P=I:GOTO1620
2750 REM ******************************
2760 REM * POKE PIC-ADR TO N/N+1 *
2770 REM ******************************
2780 POKEN+1,(MM+P*32)/256:POKEN,(MM+P*32)-PEEK(N+1)*256:RETURN
2790 REM ******************************
2800 REM * GETKEY A$ *
2810 REM ******************************
2820 GETA$:ON-(A$="")GOTO2820:RETURN
2830 REM ******************************
2840 REM * INIT FOR NEW MOVIE *
2850 REM ******************************
2860 GOSUB2930:PRINT" ARE YOU SURE ? ";
2870 N$="N":GOSUB3990:IFN$="N"THEN1620
2880 POKE780,PEEK(53280)AND15:SYS30723:FORT=0TO7:M(T,24)=0:NEXT
2890 TP=255:FP=0:LP=0:SP=0:GOTO1580
2900 REM ******************************
2910 REM * CLEAR CURSOR/HEADLINE *
2920 REM ******************************
2930 PRINT"[157] ";:RETURN
2940 REM ******************************
2950 REM * LOAD N$ TO A *
2960 REM ******************************
2970 FORT=1TOLEN(N$):POKE51711+T,ASC(MID$(N$,T,1)):NEXT
2980 POKE781,8:POKE782,0:SYS65466
2990 POKE780,LEN(N$):POKE781,0:POKE782,202:SYS65469
3000 POKE780,0:POKE782,A/256:POKE781,A-PEEK(782)*256:SYS65493
3010 RETURN
3020 REM ******************************
3030 REM * CHECK DISK STATUS *
3040 REM ******************************
3050 OPEN1,8,15:INPUT#1,N:CLOSE1
3060 IFN=0THENRETURN
3070 PRINT" ";
3080 PRINT" I/O-ERROR...";
3090 GOSUB2820:RETURN
3100 REM ******************************
3110 REM * SHOW THE MOVIE *
3120 REM ******************************
3130 PRINT"[157] ";:POKE832,SP:POKE833,1
3140 POKE834,FP:POKE252,(FP-1)AND255
3150 POKE835,LP:CC=PEEK(53280)AND15:POKE50176,CC:POKE50240,CC
3160 POKE836,TP
3170 SYS30738:SYS49155
3180 GOSUB2820:IFA$="B"THENCC=(CC+1)AND15:POKE50176,CC:POKE50240,CC
3190 IFA$<>"H"THEN3180
3200 SYS49620:GOTO1620
3210 REM ******************************
3220 REM * MEMORIZE *
3230 REM ******************************
3240 PX=PEEK(211):PY=PEEK(214)
3250 GOSUB2930:PRINT" MEMORY:";
3260 PRINTME"[157][157][157]";
3270 GOSUB2820
3280 ME=(ME-(A$="+")+(A$="-"))AND7
3290 IFA$="_"THEN1620
3300 IFA$<>CHR$(13)THEN3260
3310 POKE211,PX:POKE214,PY:SYS58732:PRINT"[157]>";:B=L
3320 GOSUB2820
3330 IFA$=""ANDB>0THENPRINT"[157] [157]>";:B=B-1
3340 IFA$="[145]"ANDB<23THENPRINT"[157] [145][157]>";:B=B+1
3350 IFA$<>CHR$(13)THEN3320
3360 T=B
3370 GOSUB2820
3380 IFA$=""ANDT>BTHENPRINT"[157] ";:T=T-1
3390 IFA$="[145]"ANDT<23THENPRINT"[145][157]>";:T=T+1
3400 IFA$<>CHR$(13)THEN3370
3410 FORI=0TOT-B:M(ME,I)=PEEK(MM+32*P+I+B):NEXT
3420 M(ME,24)=T-B+1:PRINT"[157] ";
3430 IFT>BTHENPRINT"[157] ";:T=T-1:GOTO3430
3440 GOTO1620
3450 REM ******************************
3460 REM * RECALL *
3470 REM ******************************
3480 GOSUB2930:PRINT" MEMORY:";
3490 PRINTME"[157][157][157]";
3500 GOSUB2820
3510 ME=(ME-(A$="+")+(A$="-"))AND7
3520 IFA$="_"THEN1620
3530 IFA$<>CHR$(13)THEN3490
3540 IFM(ME,24)=0THEN3570
3550 FORT=0TOM(ME,24)-1:IFL+T<24THENPOKEMM+P*32+L+T,M(ME,T)
3560 NEXT
3570 GOTO1620
3580 REM ******************************
3590 REM * INVERT ORDER *
3600 REM ******************************
3610 GOSUB2930:PRINT" INVERT ORDER OF PIC ";
3620 N=P:GOSUB2490:P1=N:PRINT"-";
3630 N=P1:GOSUB2490:IFN<P1THEN3630
3640 P2=N:I=P:FORT=0TOINT((P2-P1)/2)
3650 N=251:P=P1+T:GOSUB2780
3660 N=253:P=P2-T:GOSUB2780
3670 SYS30741:NEXT:P=I:GOTO1620
3680 REM ******************************
3690 REM * COPY PREVIOUS PIC *
3700 REM ******************************
3710 N=251:P=P-1:GOSUB2780:N=253:P=P+1:GOSUB2780:SYS30729:GOTO1620
3720 REM ******************************
3730 REM * GET PARAMETERS *
3740 REM ******************************
3750 GOSUB2930:PRINT" SPEED: ";
3760 PRINTRIGHT$(STR$(SP),2)"[157][157]";
3770 GOSUB2820
3780 SP=(SP-(A$="+")+(A$="-"))AND31
3790 IFA$<>CHR$(13)THEN3760
3800 PRINT" MOVIE: ";
3810 N=FP:GOSUB2490:FP=N
3820 PRINT"-";:N=(LP-1)AND255:GOSUB2490:LP=(N+1)AND255
3830 PRINT" TRANSPARENT COLOR ? ";
3840 N$="Y":IFTP=255THENN$="N":TP=PEEK(MM+P*32+L)
3850 GOSUB3990
3860 IFN$="N"THENTP=255:GOTO1620
3870 PRINT"[157][157][157]: < >[157][157]";:N=TP:GOSUB3910:TP=N:GOTO1620
3880 REM ******************************
3890 REM * GET COLOR *
3900 REM ******************************
3910 POKE646,N:PRINT"[164][146][157][155]";
3920 GOSUB2820
3930 N=(N-(A$="+")+(A$="-"))AND15
3940 IFA$<>CHR$(13)THEN3910
3950 RETURN
3960 REM ******************************
3970 REM * GET Y OR N *
3980 REM ******************************
3990 PRINTN$"[157]";
4000 GOSUB2820
4010 IFA$="Y"ORA$="N"THENN$=A$
4020 IFA$<>CHR$(13)THEN3990
4030 RETURN
4040 REM ******************************
4050 REM * TRANSFER PICS FROM FILE *
4060 REM ******************************
4070 GOSUB2930:PRINT" TRANSFER FROM FILE: ";
4080 GOSUB2180:IFLEN(N$)=6THEN1620
4090 A=40960:GOSUB2970:GOSUB3050:IFN<>0THEN1620
4100 SYS49893:MM=40961
4110 GOSUB2930:PRINT" SOURCE: ";
4120 N=0:GOSUB2490:S1=N
4130 PRINT"-";
4140 N=S1:GOSUB2490:S2=N:IFS2<S1THEN4140
4150 MM=32769:PRINT" DESTINATION: ";
4160 N=P:GOSUB2490:D=N:I=P
4170 AW=0:EW=S2-S1:SW=1:IFD>S1ANDD<=S2THENAW=EW:EW=0:SW=-1
4180 FORT=AWTOEWSTEPSW
4190 IF(T+D)>255THEN4230
4200 MM=40961:N=251:P=T+S1:GOSUB2780
4210 MM=32769:N=253:P=T+D:GOSUB2780
4220 SYS30729
4230 NEXT:P=I:GOTO1620