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:IFNNTHENN=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:IFS2S1ANDD<=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:IFNCHR$(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:IFS2S1ANDD<=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