From 5233e24790de653a9f9b1ab1558d8cb58c32ec31 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 10 Oct 2020 17:49:21 -0400 Subject: [PATCH] two-liners: add some more examples --- dhgr/raster4.s | 16 +++++++--------- dhgr/raster5.s | 26 ++++++++++++++++++++++++++ two-liners/Makefile | 16 +++++++++++++++- two-liners/convert_qkumba.c | 2 +- two-liners/raster2.bas | 2 ++ two-liners/raster3.bas | 2 ++ two-liners/raster4.bas | 4 ++-- two-liners/raster5.bas | 7 +++++++ 8 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 dhgr/raster5.s create mode 100644 two-liners/raster2.bas create mode 100644 two-liners/raster3.bas create mode 100644 two-liners/raster5.bas diff --git a/dhgr/raster4.s b/dhgr/raster4.s index ae90c4c2..e4e2d590 100644 --- a/dhgr/raster4.s +++ b/dhgr/raster4.s @@ -23,7 +23,7 @@ raster: lsr HGRPAGE ; set to $20 (HGR2 set this to $40) - ldy #100 +; ldy #100 big_loop: lda #0 ; 2 ; blueline @@ -32,20 +32,18 @@ big_loop: lda #4 ; 2 ; redline jsr one_line ; 3 - tya ; YPOS bmi go_neg ; if >128, flip to go up cmp #64 ; if < 64, flip to go down - bcs do_add ; otherwise, nothing + bcs smc ; otherwise, nothing go_pos: ldx #$c8 .byte $2C ; bit trick go_neg: ldx #$88 stx smc -do_add: - clc ; move the bar -smc: + +smc: ; move the bar iny ; c8=iny, 88=dey bne big_loop ; bra @@ -69,7 +67,7 @@ color_loop: ; get right color lda LINE ;(2) cmp #$4 ;(2) bcc none ;(2) - eor #$3 ; 00 01 10 11 00 01 10 11 + eor #$3 ; 2 00 01 10 11 00 01 10 11 none: ; 11 10 01 00 and #$3 ;(2) @@ -93,7 +91,7 @@ draw_line_color: ldy #0 jsr HPOSN ; put into GBASL addr of coord (Y,X),A - ldy #39 +; ldy #39 loop_it: ; set page2 sta $C055 ; 3 @@ -121,7 +119,7 @@ loop_it: ;============================== next_pixel: lda COLOR ; 2 - sta (GBASL),Y ; 3 + sta (GBASL),Y ; 2 cmp #$80 ; 2 rol COLOR ; 2 rts ; 1 diff --git a/dhgr/raster5.s b/dhgr/raster5.s new file mode 100644 index 00000000..9c99bf91 --- /dev/null +++ b/dhgr/raster5.s @@ -0,0 +1,26 @@ + + + ldy #0 +loop: + lda offset,Y + asl + asl + +1 DEFFNP(X)=PEEK(800+I)-32 +2 J=0:FORI=0TO119STEP4 +3 POKE768+J,FNP(0)*4+FNP(1)/16 +4 POKE769+J,FNP(1)*16+FMP(3)/4) +5 POKE770+J,FNP(3)*64+FNP(4) +6 J=J+3 + iny + bne loop + jmp $300 + + +offset: +.byte "(.CS(-;SC5? C0/ C0# 1NF@9*H (#P#J0$@, ",34 +.byte "8, ')0+P(HL(LHH*.+0 8R-3CA?^8212HJ0&%_:G]R0&0 D(#*0 89?^JO7X#A?^82.G]H@",34 +.byte "@ ",34 +.byte "@1]*@GC57 ('P#C57 ('P#B!3Q:*K&_13+8*G_D2G)@",34 +.byte "G_8 1(CP W>O_8!8 " + diff --git a/two-liners/Makefile b/two-liners/Makefile index 60bcb9f0..bfefa4df 100644 --- a/two-liners/Makefile +++ b/two-liners/Makefile @@ -7,7 +7,8 @@ all: entropy.dsk convert_to convert_back convert_qkumba entropy.dsk: ENTROPY ENTROPY.BAS E2.BAS FLAME.BAS FLAME2.BAS \ CIRCLES.BAS AUTUMN.BAS QKUMBA.BAS ASTEROID.BAS PERSON.BAS SHIP.BAS \ - CONCERT.BAS NYAN.BAS RASTER.BAS RASTER2.BAS RASTER3.BAS LOTS.BAS LOAD + CONCERT.BAS NYAN.BAS RASTER.BAS RASTER2.BAS RASTER3.BAS LOTS.BAS LOAD \ + RASTER4.BAS RASTER5.BAS $(DOS33) -y entropy.dsk BSAVE -a 0x0C00 ENTROPY $(DOS33) -y entropy.dsk BSAVE -a 0x0300 LOAD $(DOS33) -y entropy.dsk SAVE A ENTROPY.BAS @@ -25,6 +26,8 @@ entropy.dsk: ENTROPY ENTROPY.BAS E2.BAS FLAME.BAS FLAME2.BAS \ $(DOS33) -y entropy.dsk SAVE A RASTER.BAS $(DOS33) -y entropy.dsk SAVE A RASTER2.BAS $(DOS33) -y entropy.dsk SAVE A RASTER3.BAS + $(DOS33) -y entropy.dsk SAVE A RASTER4.BAS + $(DOS33) -y entropy.dsk SAVE A RASTER5.BAS $(DOS33) -y entropy.dsk SAVE A LOTS.BAS ### @@ -151,6 +154,17 @@ RASTER2.BAS: raster2.bas RASTER3.BAS: raster3.bas $(TOKENIZE) < raster3.bas > RASTER3.BAS +#### + +RASTER4.BAS: raster4.bas + $(TOKENIZE) < raster4.bas > RASTER4.BAS + + +#### + +RASTER5.BAS: raster5.bas + $(TOKENIZE) < raster5.bas > RASTER5.BAS + #### diff --git a/two-liners/convert_qkumba.c b/two-liners/convert_qkumba.c index 284649c8..b46daca1 100644 --- a/two-liners/convert_qkumba.c +++ b/two-liners/convert_qkumba.c @@ -22,7 +22,7 @@ int main(int argc, char **argv) { enc[e]=0; printf("%s\n",enc); - printf("2FORI=0TO%d:C=INT((PEEK(%d+I/3)-32)/4^(I-INT(I/3)*3)):POKE768+I,((PEEK(2054+I)-32)*4)+C-INT(C/4)*4:NEXT:CALL768\n", + printf("2FORI=0TO%d:C%%=(PEEK(%d+I/3)-32)/4^(I-INT(I/3)*3):POKE768+I,C%%+4*(PEEK(2054+I)-32-INT(C%%/4)):NEXT:CALL768\n", filesize,2054+filesize); return 0; diff --git a/two-liners/raster2.bas b/two-liners/raster2.bas new file mode 100644 index 00000000..653ef38d --- /dev/null +++ b/two-liners/raster2.bas @@ -0,0 +1,2 @@ +1REM(X\(V\C7PC#PC PJ(AYJ A_J(Y_I_(* Y_I_RPT[3$ H H ($]H)C5P(1 C5P(1 B$\8I_D)R@)_8 XP)%%1&9Z)OF!S+ !7 ' #1GA# +2FORI=0TO77:C=INT((PEEK(2132+I/3)-32)/4^(I-INT(I/3)*3)):POKE768+I,((PEEK(2054+I)-32)*4)+C-INT(C/4)*4:NEXT:CALL768 diff --git a/two-liners/raster3.bas b/two-liners/raster3.bas new file mode 100644 index 00000000..387fe27a --- /dev/null +++ b/two-liners/raster3.bas @@ -0,0 +1,2 @@ +1REM(X\(V\C7PC#PC PJ(AYA_J!A_I_,!R0L"H +H_C* &: A_I_O: \"K* , &:,A_I_.Y_H H ($]H)C5P(8 C5P(8 B$\Q_,M$SI_D)R@)_8 $(,,($ XP)%%1F=E< &N/5:]@/3W)E $ .D10GA#Y;L +2FORI=0TO115:C=INT((PEEK(2169+I/3)-32)/4^(I-INT(I/3)*3)):POKE768+I,((PEEK(2054+I)-32)*4)+C-INT(C/4)*4:NEXT:CALL768 diff --git a/two-liners/raster4.bas b/two-liners/raster4.bas index 387fe27a..3fd3727f 100644 --- a/two-liners/raster4.bas +++ b/two-liners/raster4.bas @@ -1,2 +1,2 @@ -1REM(X\(V\C7PC#PC PJ(AYA_J!A_I_,!R0L"H +H_C* &: A_I_O: \"K* , &:,A_I_.Y_H H ($]H)C5P(8 C5P(8 B$\Q_,M$SI_D)R@)_8 $(,,($ XP)%%1F=E< &N/5:]@/3W)E $ .D10GA#Y;L -2FORI=0TO115:C=INT((PEEK(2169+I/3)-32)/4^(I-INT(I/3)*3)):POKE768+I,((PEEK(2054+I)-32)*4)+C-INT(C/4)*4:NEXT:CALL768 +1REM(X\(V\C7PC#PC P1YJ (+ J!(+ F,!R0L"HR+HBC* RTYA_F2$JJ!A_I_R!D 2 * &9_JO= A_F2Y_H H ($]H)C5P(; C5P(; B$\:JQ_$R8I_D)R@)_8 $(, W[_XP)%%:0'TP!((Z !!=5!V-AY-4"0P%T!T0@QT9X0.Y +2FORI=768TO894:C%=(PEEK(1924+I/3)-32)/4^(I-INT(I/3)*3):POKEI,C%+4*(PEEK(1286+I)-32-INT(C%/4)):NEXT:CALL768 diff --git a/two-liners/raster5.bas b/two-liners/raster5.bas new file mode 100644 index 00000000..aef3b06b --- /dev/null +++ b/two-liners/raster5.bas @@ -0,0 +1,7 @@ +1 DEFFNP(X)=PEEK(2193+I+X)-32 +2 J=0:FORI=0TO119STEP4 +3 POKE768+J,FNP(0)*4+FNP(1)/16 +4 POKE769+J,FNP(1)*16+FNP(3)/4 +5 POKE770+J,FNP(3)*64+FNP(4) +6 J=J+3:NEXT +8REM(.CS(-;SC5? C0/ C0# 1NF@9*H (#P#J0$@, "8, ')0+P(HL(LHH*.+0 8R-3CA?^8212HJ0&%_:G]R0&0 D(#*0 89?^JO7X#A?^82.G]H@"@ "@1]*@GC57 ('P#C57 ('P#B!3Q:*K&_13+8*G_D2G)@"G_8 1(CP W>O_8!8