From e2ac01dd91460384f4392f9077cfcc5985f2990f Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 4 Oct 2020 12:44:50 -0400 Subject: [PATCH] twoline: of course qkumba did it better --- two-liners/Makefile | 7 ++++++- two-liners/convert_qkumba.c | 14 ++++++++++++++ two-liners/qkumba_seasons.bas | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 two-liners/convert_qkumba.c create mode 100644 two-liners/qkumba_seasons.bas diff --git a/two-liners/Makefile b/two-liners/Makefile index 786128af..0f76215f 100644 --- a/two-liners/Makefile +++ b/two-liners/Makefile @@ -6,7 +6,7 @@ TOKENIZE = ../asoft_basic-utils/tokenize_asoft all: entropy.dsk convert_to convert_back entropy.dsk: ENTROPY ENTROPY.BAS E2.BAS FLAME.BAS FLAME2.BAS \ - CIRCLES.BAS AUTUMN.BAS LOAD + CIRCLES.BAS AUTUMN.BAS QKUMBA.BAS LOAD $(DOS33) -y entropy.dsk BSAVE -a 0x0C00 ENTROPY $(DOS33) -y entropy.dsk BSAVE -a 0x0300 LOAD $(DOS33) -y entropy.dsk SAVE A ENTROPY.BAS @@ -15,6 +15,7 @@ entropy.dsk: ENTROPY ENTROPY.BAS E2.BAS FLAME.BAS FLAME2.BAS \ $(DOS33) -y entropy.dsk SAVE A FLAME2.BAS $(DOS33) -y entropy.dsk SAVE A AUTUMN.BAS $(DOS33) -y entropy.dsk SAVE A CIRCLES.BAS + $(DOS33) -y entropy.dsk SAVE A QKUMBA.BAS ### @@ -49,6 +50,10 @@ LOAD: load.o load.o: load.s ca65 -o load.o load.s -l load.lst +#### + +QKUMBA.BAS: qkumba_seasons.bas + $(TOKENIZE) < qkumba_seasons.bas > QKUMBA.BAS #### diff --git a/two-liners/convert_qkumba.c b/two-liners/convert_qkumba.c new file mode 100644 index 00000000..52ba1871 --- /dev/null +++ b/two-liners/convert_qkumba.c @@ -0,0 +1,14 @@ +i = 0; +e = 0; + +do +{ +enc[e++] = ((in[i + 2] & 3) << 4) + ((in[i + 1] & 3) << 2) + (in[i + 0] & 3) + 32; +in[i + 0] = (in[i + 0] >> 2) + 32; +in[i + 1] = (in[i + 1] >> 2) + 32; +in[i + 2] = (in[i + 2] >> 2) + 32; +write(o, in + i, 3); +} +while ((i += 3) < filesize); +write(o, enc, sizeof(enc)); + diff --git a/two-liners/qkumba_seasons.bas b/two-liners/qkumba_seasons.bas new file mode 100644 index 00000000..23489cf9 --- /dev/null +++ b/two-liners/qkumba_seasons.bas @@ -0,0 +1,2 @@ +1REM(V\I\I]B.Y]A\FY]R@:A]9\&B9]A]F9]R@:A]9]9]9^9^9^L'Y^T Y_I\:@A\D Y].J Y]A]J Y]A]I^")_1_A^*!" JI],HI]*\TG([]I\I]I](5]K 0,CIJ2 AJ4A 'P.(53&&.6%98:N8*YHT1C"151FM2T=:R10@.4,A0V)P +2FOR I=0TO127:C=INT((PEEK(2183+I/3)-32)/4^(I-INT(I/3)*3)):POKE 4096+I,((PEEK(2054+I)-32)*4)+C-INT(C/4)*4:NEXT:CALL4096