gr: tunnel: always wanted a tunnel effect

still not working
This commit is contained in:
Vince Weaver 2021-06-06 00:37:31 -04:00
parent 76442fb6d5
commit cda248e40c
9 changed files with 395 additions and 1 deletions

View File

@ -16,7 +16,7 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS HELLO \
C64.BAS SIERPINSKI.BAS FAKES.BAS SIER.BAS DROPS.BAS RR.BAS RR_HGR.BAS \
COMBO.BAS WIRES.BAS PATTERN.BAS BALL.BAS LINES.BAS MOD9.BAS \
XOR_ZOOM.BAS MOD9_HGR.BAS SIER_HGR.BAS MOVE.BAS SINE.BAS XDRAW128.BAS \
GATOR.BAS CURSOR.BAS
GATOR.BAS CURSOR.BAS WEIRD.BAS
# cp $(EMPTY_DISK)/empty.dsk appleiibot.dsk
cp empty.dsk appleiibot.dsk
@ -83,6 +83,7 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS HELLO \
$(DOS33) -y appleiibot.dsk SAVE A XDRAW128.BAS
$(DOS33) -y appleiibot.dsk SAVE A GATOR.BAS
$(DOS33) -y appleiibot.dsk SAVE A CURSOR.BAS
$(DOS33) -y appleiibot.dsk SAVE A WEIRD.BAS
####
@ -256,6 +257,11 @@ GATOR.BAS: gator.bas
CURSOR.BAS: cursor.bas
$(TOKENIZE) < cursor.bas > CURSOR.BAS
####
WEIRD.BAS: weird.bas
$(TOKENIZE) < weird.bas > WEIRD.BAS
####

View File

@ -0,0 +1,2 @@
1FORI=0TO123:POKE892+I,4*PEEK(2125+I)-192+(PEEK(2249+I/3)-35)/4^(I-INT(I/3)*3):NEXT
2&",=n9D`S0QnZ0Oo6F3QeWoV/Q6QBk=J8QoM:Q9a;X9R1I0NnYlR86nYmYo76nVo8InYaVn76nRmY776`foWB8RmR1I1VhoR]>Rnj$NocnYnb1[Waod1V2Qc@S0CO0S+@*,4L4;6*4,I70.$*'0#Z'?3[0C75+@W=)G&4V&&

View File

@ -0,0 +1,55 @@
include ../../../Makefile.inc
DOS33 = ../../../utils/dos33fs-utils/dos33
PNG2GR = ../../../utils/gr-utils/png2gr
PNG2RLE = ../../../utils/gr-utils/png2rle
TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft
LINKERSCRIPTS = ../../../linker_scripts
EMPTYDISK = ../../../empty_disk
all: tunnel.dsk
$(DOS33):
cd ../../utils/dos33fs-utils && make
tunnel.dsk: $(DOS33) HELLO TUNNEL.BAS TUNNEL WEIRD
cp $(EMPTYDISK)/empty.dsk tunnel.dsk
$(DOS33) -y tunnel.dsk SAVE A HELLO
$(DOS33) -y tunnel.dsk SAVE A TUNNEL.BAS
$(DOS33) -y tunnel.dsk BSAVE -a 0xc00 TUNNEL
$(DOS33) -y tunnel.dsk BSAVE -a 0x37c WEIRD
###
HELLO: hello.bas
$(TOKENIZE) < hello.bas > HELLO
###
TUNNEL.BAS: tunnel.bas
$(TOKENIZE) < tunnel.bas > TUNNEL.BAS
###
TUNNEL: tunnel.o
ld65 -o TUNNEL tunnel.o -C $(LINKERSCRIPTS)/apple2_c00.inc
tunnel.o: tunnel.s
ca65 -o tunnel.o tunnel.s -l tunnel.lst
###
WEIRD: weird.o
ld65 -o WEIRD weird.o -C $(LINKERSCRIPTS)/apple2_37c.inc
weird.o: weird.s
ca65 -o weird.o weird.s -l weird.lst
###
clean:
rm -f *~ *.o HELLO TUNNEL.BAS TUNNEL WEIRD *.lst

View File

@ -0,0 +1,8 @@
5 REM BY @hisham_hm Mar 7 @AppleIIBot
10 GR:N=7
20 FOR X=0 TO 4
30 FOR I=X TO 15+X STEP 5:COLOR=0
40 Z=39-I:J=I+1:W=Z-1:HLIN J,W AT I:HLIN J,W AT Z:VLIN J,W AT I:VLIN J,W AT Z: COLOR=N:HLIN J,W AT J:HLIN J,W AT W:VLIN J,W AT J:VLIN J,W AT W:N=N+1
50 NEXT:N=N-4
60 NEXT:N=N-1:IF N=0 THEN N=12
70 GOTO 20

143
graphics/gr/tunnel/tunnel.s Normal file
View File

@ -0,0 +1,143 @@
; based roughly on 5 REM BY @hisham_hm Mar 7 @AppleIIBot
; this one was an accident due to bug trying to get tunnel code working
; very striking, but *warning flashing lights*
H2 = $2C
V2 = $2D
COLOR = $30
J = $FB
Z = $FC
COUNTMAX = $FD
COUNT = $FE
NEWCOLOR = $FF
FULLGR = $C052
HLINE = $F819 ;; HLINE Y,$2C at A
VLINE = $F828 ;; VLINE A,$2D at Y
SETCOL = $F864 ; COLOR=A
SETGR = $FB40
WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
tunnel:
; 10 GR:N=7
jsr SETGR
bit FULLGR
lda #$7
sta NEWCOLOR
; 20 FOR X=0 TO 4
lda #0
sta COUNT
clc
adc #16
sta COUNTMAX
cycle:
; 30 FOR I=X TO 15+X STEP 5:COLOR=0
ldx COUNT
iloop:
lda #0
sta COLOR
; 40 Z=39-I:J=I+1:W=Z-1
txa
eor #$ff
sec
adc #39
sta Z
sta H2
sta V2
dec H2
dec V2
txa
clc
adc #1
sta J
; HLIN J,W AT I ; HLINE Y,$2C at A
ldy J
txa
jsr HLINE
; HLIN J,W AT Z ; HLINE Y,$2C at A
ldy J
lda Z
jsr HLINE
; VLIN J,W AT I ; VLINE A,$2D at Y
; VLIN J,W AT Z ; VLINE A,$2D at Y
; COLOR=N
lda NEWCOLOR
jsr SETCOL
; HLIN J,W AT J ; HLINE Y,$2C at A
ldy J
lda J
jsr HLINE
; HLIN J,W AT W ; HLINE Y,$2C at A
ldy J
lda H2
jsr HLINE
; VLIN J,W AT J ; VLINE A,$2D at Y
; VLIN J,W AT W ; VLINE A,$2D at Y
; N=N+1
inc NEWCOLOR
lda #75
jsr WAIT
; 50 NEXT:N=N-4
txa
clc
adc #5
tax
cpx COUNTMAX
bcc iloop
sec
lda NEWCOLOR
sbc #4
sta NEWCOLOR
; 60 NEXT:N=N-1:IF N=0 THEN N=12
inc COUNT
lda COUNT
cmp #4
bne cycle
dec NEWCOLOR
bne end
lda #12
sta NEWCOLOR
end:
; 70 GOTO 20
jmp cycle

144
graphics/gr/tunnel/weird.s Normal file
View File

@ -0,0 +1,144 @@
; 5 REM BY @hisham_hm Mar 7 @AppleIIBot
H2 = $2C
V2 = $2D
COLOR = $30
J = $FB
Z = $FC
COUNTMAX = $FD
COUNT = $FE
NEWCOLOR = $FF
FULLGR = $C052
HLINE = $F819 ;; HLINE Y,$2C at A
VLINE = $F828 ;; VLINE A,$2D at Y
SETCOL = $F864 ; COLOR=A
SETGR = $FB40
WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
tunnel:
; 10 GR:N=7
jsr SETGR
bit FULLGR
lda #$7
sta NEWCOLOR
; 20 FOR X=0 TO 4
lda #0
sta COUNT
clc
adc #16
sta COUNTMAX
cycle:
; 30 FOR I=X TO 15+X STEP 5:COLOR=0
ldx COUNT
iloop:
lda #0
sta COLOR
; 40 Z=39-I:J=I+1:W=Z-1
txa
eor #$ff
sec
adc #39
sta Z
sta H2
sta V2
dec H2
dec V2
txa
clc
adc #1
sta J
; HLIN J,W AT I ; HLINE Y,$2C at A
ldy J
txa
jsr HLINE
; HLIN J,W AT Z ; HLINE Y,$2C at A
ldy J
lda Z
jsr HLINE
; VLIN J,W AT I ; VLINE A,$2D at Y
; VLIN J,W AT Z ; VLINE A,$2D at Y
; COLOR=N
lda NEWCOLOR
jsr SETCOL
; HLIN J,W AT J ; HLINE Y,$2C at A
ldy J
lda J
jsr HLINE
; HLIN J,W AT W ; HLINE Y,$2C at A
ldy J
lda H2
jsr HLINE
; VLIN J,W AT J ; VLINE A,$2D at Y
; VLIN J,W AT W ; VLINE A,$2D at Y
; N=N+1
inc NEWCOLOR
lda #75
jsr WAIT
; 50 NEXT:N=N-4
txa
clc
adc #5
tax
cpx COUNTMAX
bcc iloop
sec
lda NEWCOLOR
sbc #4
sta NEWCOLOR
; 60 NEXT:N=N-1:IF N=0 THEN N=12
inc COUNT
lda COUNT
cmp #4
bne cycle
dec NEWCOLOR
bne end
lda #12
sta NEWCOLOR
end:
; 70 GOTO 20
jmp cycle
; want to load at $3f5, this originally at 379
; so load at $37c
jmp tunnel

View File

@ -0,0 +1,12 @@
MEMORY {
ZP: start = $00, size = $1A, type = rw;
RAM: start = $37c, size = $8E00, file = %O;
}
SEGMENTS {
CODE: load = RAM, type = ro;
RODATA: load = RAM, type = ro;
DATA: load = RAM, type = rw;
BSS: load = RAM, type = bss, define = yes;
ZEROPAGE: load = ZP, type = zp;
}

View File

@ -0,0 +1,12 @@
MEMORY {
ZP: start = $00, size = $1A, type = rw;
RAM: start = $37f, size = $8E00, file = %O;
}
SEGMENTS {
CODE: load = RAM, type = ro;
RODATA: load = RAM, type = ro;
DATA: load = RAM, type = rw;
BSS: load = RAM, type = bss, define = yes;
ZEROPAGE: load = ZP, type = zp;
}

View File

@ -0,0 +1,12 @@
MEMORY {
ZP: start = $00, size = $1A, type = rw;
RAM: start = $382, size = $8E00, file = %O;
}
SEGMENTS {
CODE: load = RAM, type = ro;
RODATA: load = RAM, type = ro;
DATA: load = RAM, type = rw;
BSS: load = RAM, type = bss, define = yes;
ZEROPAGE: load = ZP, type = zp;
}