From 45ea1efb66a4afa616b701a67b665d4336ff0352 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 2 Oct 2021 18:13:17 -0400 Subject: [PATCH] fractals: add basic fractal --- basic/fractals/Makefile | 35 +++++++++++++++++++++++++++++++++ basic/fractals/dragon.bas | 19 ++++++++++++++++++ basic/fractals/dragon_small.bas | 4 ++++ basic/fractals/hello.bas | 2 ++ 4 files changed, 60 insertions(+) create mode 100644 basic/fractals/Makefile create mode 100644 basic/fractals/dragon.bas create mode 100644 basic/fractals/dragon_small.bas create mode 100644 basic/fractals/hello.bas diff --git a/basic/fractals/Makefile b/basic/fractals/Makefile new file mode 100644 index 00000000..c0b2c26f --- /dev/null +++ b/basic/fractals/Makefile @@ -0,0 +1,35 @@ +include ../../Makefile.inc + +DOS33 = ../../utils/dos33fs-utils/dos33 +TOKENIZE = ../../utils/asoft_basic-utils/tokenize_asoft +EMPTY_DISK = ../../empty_disk/empty.dsk + +all: fractal.dsk + +fractal.dsk: HELLO DRAGON.BAS DRAGON_SMALL.BAS + cp $(EMPTY_DISK) fractal.dsk + $(DOS33) -y fractal.dsk SAVE A HELLO + $(DOS33) -y fractal.dsk SAVE A DRAGON.BAS + $(DOS33) -y fractal.dsk SAVE A DRAGON_SMALL.BAS + +#### + +HELLO: hello.bas + $(TOKENIZE) < hello.bas > HELLO + +#### + +DRAGON.BAS: dragon.bas + $(TOKENIZE) < dragon.bas > DRAGON.BAS + +#### + +DRAGON_SMALL.BAS: dragon_small.bas + $(TOKENIZE) < dragon_small.bas > DRAGON_SMALL.BAS + + +#### + +clean: + rm -f *~ *.o *.lst HELLO CUBE.BAS CHEAT.BAS + diff --git a/basic/fractals/dragon.bas b/basic/fractals/dragon.bas new file mode 100644 index 00000000..99c03a42 --- /dev/null +++ b/basic/fractals/dragon.bas @@ -0,0 +1,19 @@ +4 REM POSTED TO TWITTER BY 8-BIT FRACTALS +10 DIM S(30) +20 HGR2:HCOLOR=7 +30 X=107:Y=142 +40 H=0:V=6 +50 S(0)=9:S(1)=1:SP=2 +60 GOSUB 80 +70 END +80 SP=SP-2:N=S(SP):A=S(SP+1) +90 IF N=0 THEN XX=X+H:YY=Y-V:HPLOT X,Y TO XX,YY:X=XX:Y=YY:RETURN +100 S(SP)=N-1:S(SP+1)=-1 +110 S(SP+2)=A +120 S(SP+3)=N-1:S(SP+4)=1 +130 SP=SP+5 +140 GOSUB 80:GOSUB 160:GOSUB 80 +150 RETURN +160 SP=SP-1:A=S(SP) +170 T=-A*H:H=A*V:V=T +180 RETURN diff --git a/basic/fractals/dragon_small.bas b/basic/fractals/dragon_small.bas new file mode 100644 index 00000000..906bb3eb --- /dev/null +++ b/basic/fractals/dragon_small.bas @@ -0,0 +1,4 @@ +0DIMS(30):HGR2:X=107:Y=142:V=6:S(0)=9:S(1)=1:P=2:GOSUB1:END +1P=P-2:N=S(P):A=S(P+1):IFN=0THENU=X+H:W=Y-V:HPLOT X,YTOU,W:X=U:Y=W:RETURN +2S(P)=N-1:S(P+1)=-1:S(P+2)=A:S(P+3)=N-1:S(P+4)=1:P=P+5:GOSUB1:GOSUB3:GOSUB 1:RETURN +3P=P-1:A=S(P):T=-A*H:H=A*V:V=T:RETURN diff --git a/basic/fractals/hello.bas b/basic/fractals/hello.bas new file mode 100644 index 00000000..133a44bb --- /dev/null +++ b/basic/fractals/hello.bas @@ -0,0 +1,2 @@ +5 HOME +10 PRINT CHR$(4);"CATALOG"