gr: tunnel: difficult

This commit is contained in:
Vince Weaver 2021-06-07 01:18:45 -04:00
parent 31268a43b2
commit 8fd727a221
7 changed files with 118 additions and 33 deletions

View File

@ -12,12 +12,14 @@ all: tunnel.dsk
$(DOS33): $(DOS33):
cd ../../utils/dos33fs-utils && make cd ../../utils/dos33fs-utils && make
tunnel.dsk: $(DOS33) HELLO TUNNEL.BAS TUNNEL WEIRD tunnel.dsk: $(DOS33) HELLO TUNNEL.BAS TUNNEL TUNNEL2 STARGATE T.BAS
cp $(EMPTYDISK)/empty.dsk tunnel.dsk cp $(EMPTYDISK)/empty.dsk tunnel.dsk
$(DOS33) -y tunnel.dsk SAVE A HELLO $(DOS33) -y tunnel.dsk SAVE A HELLO
$(DOS33) -y tunnel.dsk SAVE A TUNNEL.BAS $(DOS33) -y tunnel.dsk SAVE A TUNNEL.BAS
$(DOS33) -y tunnel.dsk SAVE A T.BAS
$(DOS33) -y tunnel.dsk BSAVE -a 0xc00 TUNNEL $(DOS33) -y tunnel.dsk BSAVE -a 0xc00 TUNNEL
$(DOS33) -y tunnel.dsk BSAVE -a 0x37c WEIRD $(DOS33) -y tunnel.dsk BSAVE -a 0xc00 TUNNEL2
$(DOS33) -y tunnel.dsk BSAVE -a 0x37c STARGATE
### ###
@ -29,6 +31,12 @@ HELLO: hello.bas
TUNNEL.BAS: tunnel.bas TUNNEL.BAS: tunnel.bas
$(TOKENIZE) < tunnel.bas > TUNNEL.BAS $(TOKENIZE) < tunnel.bas > TUNNEL.BAS
###
T.BAS: t.bas
$(TOKENIZE) < t.bas > T.BAS
### ###
@ -40,16 +48,25 @@ tunnel.o: tunnel.s
### ###
WEIRD: weird.o TUNNEL2: tunnel2.o
ld65 -o WEIRD weird.o -C $(LINKERSCRIPTS)/apple2_37c.inc ld65 -o TUNNEL2 tunnel2.o -C $(LINKERSCRIPTS)/apple2_c00.inc
weird.o: weird.s tunnel2.o: tunnel2.s
ca65 -o weird.o weird.s -l weird.lst ca65 -o tunnel2.o tunnel2.s -l tunnel2.lst
###
STARGATE: stargate.o
ld65 -o STARGATE stargate.o -C $(LINKERSCRIPTS)/apple2_37c.inc
stargate.o: stargate.s
ca65 -o stargate.o stargate.s -l stargate.lst
### ###
clean: clean:
rm -f *~ *.o HELLO TUNNEL.BAS TUNNEL WEIRD *.lst rm -f *~ *.o HELLO TUNNEL.BAS TUNNEL TUNNEL2 STARGATE *.lst

View File

@ -1,11 +1,12 @@
5 REM BY @hisham_hm Mar 7 @AppleIIBot 7 DIM A(9,9):FOR I=0 TO 8:FOR J=0 TO 8:A(I,J)=40/(2+I+J/7):NEXTJ,I
10 GR:N=7 10 GR:N=23
20 FOR X=0 TO 4 15 FOR Q=0 TO 7
30 FOR I=X TO 15+X STEP 5 20 T=19:FOR X=0 TO 7
30 FOR I=T TO T-A(X,Q) STEP -1
40 Z=39-I:J=I+1:W=Z-1 40 Z=39-I:J=I+1:W=Z-1
42 COLOR=0:HLIN J,W AT I:HLIN J,W AT Z:VLIN J,W AT I:VLIN J,W AT Z 42 COLOR=N:HLIN J,W AT I:HLIN J,W AT Z:VLIN J,W AT I:VLIN J,W AT Z
46 COLOR=N:HLIN J,W AT J:HLIN J,W AT W:VLIN J,W AT J:VLIN J,W AT W 50 NEXT:T=T-A(X,Q):N=N-1
48 N=N+1 60 NEXT:N=N+9:IF N=16 THEN N=32
50 NEXT:N=N-4 65 NEXT
60 NEXT:N=N-1:IF N=0 THEN N=12 70 GOTO 15
70 GOTO 20

11
graphics/gr/tunnel/t2.bas Normal file
View File

@ -0,0 +1,11 @@
5 REM BY @hisham_hm Mar 7 @AppleIIBot
10 GR:N=23
20 FOR X=4 TO 0 STEP -1
30 FOR I=15+X TO X STEP -5
40 Z=39-I/2:J=I+1:W=Z-1
42 COLOR=N:HLIN J,W AT I:HLIN J,W AT Z:VLIN J,W AT I:VLIN J,W AT Z
46 REM COLOR=N:HLIN J,W AT J:HLIN J,W AT W:VLIN J,W AT J:VLIN J,W AT W
48 N=N+1
50 NEXT:N=N-4
60 NEXT:N=N-1:IF N=16 THEN N=32
70 GOTO 20

12
graphics/gr/tunnel/t3.bas Normal file
View File

@ -0,0 +1,12 @@
5 REM BY @hisham_hm Mar 7 @AppleIIBot
10 GR:N=23
15 FOR X=2 TO 0 STEP -0.5
17 N=23
20 FOR D=20+X TO 2+X STEP -1
40 H=40/D:L=20-H:R=19+H
42 COLOR=N
43 HLIN L,R AT L:HLIN L,R AT R:VLIN L,R AT L:VLIN L,R AT R
48 N=N-1
60 NEXT:IF N<5 THEN N=23
65 NEXT
70 GOTO 15

View File

@ -0,0 +1,26 @@
#include <stdio.h>
int main(int argc, char **argv) {
double x,y;
for(y=0;y<1;y+=1.0/7.0) {
printf("%.2lf: ",y);
for(x=2.0+y;x<=9.0+y;x++) {
printf("%.2lf ",40/x);
}
printf("\n");
}
printf("\n");
for(y=0;y<1;y+=1.0/7.0) {
for(x=2.0+y;x<=9.0+y;x++) {
// printf("%.2lf ",40/x);
printf("%.1lf ",(40/x) - 40/(x+1));
}
printf("\n");
}
return 0;
}

View File

@ -33,7 +33,7 @@ tunnel:
outer: outer:
; 20 FOR X=0 TO 4 ; 20 FOR X=0 TO 4
lda #0 lda #3
sta COUNT sta COUNT
cycle: cycle:
@ -44,12 +44,15 @@ cycle:
tax tax
clc clc
adc #16 adc #15
sta COUNTMAX sta COUNTMAX
; sta COUNT
tax
iloop: iloop:
lda #0 ; lda #0
sta COLOR ; sta COLOR
; 40 Z=39-I:J=I+1:W=Z-1 ; 40 Z=39-I:J=I+1:W=Z-1
@ -68,6 +71,11 @@ iloop:
adc #1 adc #1
sta J sta J
; COLOR=N
lda NEWCOLOR
jsr SETCOL
.if 1
; HLIN J,W AT I ; HLINE Y,$2C at A ; HLIN J,W AT I ; HLINE Y,$2C at A
ldy J ldy J
@ -90,11 +98,11 @@ iloop:
ldy Z ldy Z
lda J lda J
jsr VLINE jsr VLINE
.endif
; COLOR=N ; COLOR=N
lda NEWCOLOR lda NEWCOLOR
jsr SETCOL jsr SETCOL
.if 0
; HLIN J,W AT J ; HLINE Y,$2C at A ; HLIN J,W AT J ; HLINE Y,$2C at A
ldy J ldy J
@ -116,8 +124,8 @@ iloop:
lda J lda J
jsr VLINE jsr VLINE
.endif
lda #150 lda #50
jsr WAIT jsr WAIT
; N=N+1 ; N=N+1
@ -126,13 +134,20 @@ iloop:
; 50 NEXT:N=N-4 ; 50 NEXT:N=N-4
; txa
; clc
; adc #5
; tax
txa txa
clc sec
adc #5 sbc #5
tax tax
cpx COUNTMAX ; cpx COUNTMAX
bcc iloop ; bcc iloop
bpl iloop
sec sec
lda NEWCOLOR lda NEWCOLOR
@ -141,10 +156,13 @@ iloop:
; 60 NEXT:N=N-1:IF N=0 THEN N=12 ; 60 NEXT:N=N-1:IF N=0 THEN N=12
inc COUNT ; inc COUNT
lda COUNT ; lda COUNT
cmp #5 ; cmp #5
bne cycle ; bne cycle
dec COUNT
bpl cycle
dec NEWCOLOR dec NEWCOLOR
bne end bne end