From 60a7cc1fbb1809e73bba9fdd63e05322a7193114 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 26 Sep 2018 23:52:36 -0400 Subject: [PATCH] fireworks: merge in the bird_mountain sequence --- megademo/KATC.BIN.lz4 | Bin 0 -> 2217 bytes megademo/Makefile | 1 + megademo/bird_mountain.s | 487 +++++++++++++++++++++++++++++++++++++++ megademo/fireworks.s | 20 +- megademo/fw.s | 40 ++++ megademo/megademo.s | 4 + megademo/move_letters.s | 40 ---- megademo/tfv_sprites.inc | 47 ++++ 8 files changed, 589 insertions(+), 50 deletions(-) create mode 100644 megademo/KATC.BIN.lz4 create mode 100644 megademo/bird_mountain.s create mode 100644 megademo/tfv_sprites.inc diff --git a/megademo/KATC.BIN.lz4 b/megademo/KATC.BIN.lz4 new file mode 100644 index 0000000000000000000000000000000000000000..f3a0a19191d043264698ebb49029557626f27f15 GIT binary patch literal 2217 zcmXw)eQZ3>w}f99%ve+GZP=v zOxg^BMcI^?{1JyZo0+DPS4h31vLc&dg`I*;HG`tkW#Yx@k+IG`?GpRPmY&hzSsL4}FCL~c1!|W-ahT;pE!0K# zz72{jsnl-4i#DL8HaH|x84u6p{|4O90ImDn23`W{sVg8?WYIx4Q<%dIk<>Bpl18H{ zmwfhBFxG3yL_zCeJ#-xffalyEK zWZ}ld;lS$d4lj8VpDr^>qx=&dO;2YMoTX#mosB+Yy+ae>551(xsG`@A z4nq#nEX^e{tXbz#Tro%=vD8fyb8|L3s<_ICxpFs>|S1Czwk zdiiQQx*5S>5*Ip&IGu|lRSnduH9?l3B$FPhV#A+WPqOLqbr zYXE((mZpJNj%M)2?6(%AfXX88O-ZtUxCSG}Hz=8{G-7z>6CJ*_{B^~UZt1Y<

}#G5FSF zYl(~xExfk`b9Fh3z&oXeJb;7 z(4K1dpIB-VNb#a2sSsx=8lZLt5@%x}u5cC)aa^kkri_6Yz#h!elKS0Oa{BLy@Drmj z#KY;KiTm6Zn38_DFt{=Pa5mO*b-t4b9=oO^C~sL;Ae_Uon$}^ta119% zhNW4hxSMA5OQd8wIZ*%?smH7H1u^*doY$x22qcR zb+UpX8&&=1LhJgkfBkVk7C^jHHTx+VApKSgXtH)D->=2n8i-D5Dletters_bm + sta LETTERH + lda #39 + sta LETTERX + lda #1 + sta LETTERY + lda #15 + sta LETTERD + + ;================= + ; Set draw page + + lda #0 + sta DISP_PAGE + lda #0 + sta DRAW_PAGE + + ;========================== + ; Load the background image + + lda #katahdin + sta LZ4_SRC+1 + + lda #<(katahdin_end-8) ; skip checksum at end + sta LZ4_END + lda #>(katahdin_end-8) ; skip checksum at end + sta LZ4_END+1 + + lda #<$2000 ; Destination is HGR page0 + sta LZ4_DST + lda #>$2000 + sta LZ4_DST+1 + + jsr lz4_decode + + + ;===================================================== + ; attempt vapor lock + ;===================================================== + jsr vapor_lock + + + ;========================== + ; setup text screen + + ; clear top 6 lines to space + + ; takes (Y/2)*(6+435+7)+5 = ? + lda #$A0 ; space ; 2 + ldy #10 ; 6 lines ; 2 + jsr clear_page_loop ; 2693 + +; 1 2 +; 0123456789abcdef0123456789abcdef0123456 +;line1:.asciiz " * . " $400 +;line2:.asciiz " * . . " $480 +;line3:.asciiz " * " $500 +;line4:.asciiz " * " $580 +;line5:.asciiz " . . . " $600 +;line6:.asciiz " . " $680 + + lda #'.'|$80 ; print star ; 2 + sta $420 ; 4 + sta $487 ; 4 + sta $4A4 ; 4 + sta $601 ; 4 + sta $61c ; 4 + sta $621 ; 4 + sta $68d ; 4 + ;============ + ; 30 + ; draw the moon + lda #' ' ; print inv space ; 2 + sta $403 ; 4 + sta $482 ; 4 + sta $502 ; 4 + sta $583 ; 4 + ;============ + ; 18 + + + + ; vapor lock returns with us at beginning of hsync in line + ; 114 (7410 cycles), so with 5070 cycles to go + ; 5070+4550 = 9620 + ; -2745 (draw text) + ; =========== + ; 6875 + + + ; Try X=97 Y=14 cycles=6875 + + ldy #14 ; 2 +bmloopA:ldx #97 ; 2 +bmloopB:dex ; 2 + bne bmloopB ; 2nt/3 + dey ; 2 + bne bmloopA ; 2nt/3 + + jmp bm_display_loop +.align $100 + + ;===================================================== + ;===================================================== + ; Loop forever display loop + ;===================================================== + ;===================================================== +bm_display_loop: + ; each scan line 65 cycles + ; 1 cycle each byte (40cycles) + 25 for horizontal + ;Total of 12480 cycles to draw screen + ;Vertical blank = 4550 cycles (70 scan lines) + ; Total of 17030 cycles to get back to where was + ; Text mode for 6*8=48 scanlines (3120 cycles) + ; hgr for 64 scalines (4160 cycles) + ; gr for 80 scalines (5200 cycles) + ; vblank = 4550 cycles + + ; text + bit SET_TEXT ; 4 + + ;================ + ; clear bottom green + + jsr draw_bottom_green ; 2209+6 + + + ;================ + ; Draw Small Tree + + lda #>small_tree ; 2 + sta INH ; 3 + lda #big_tree ; 2 + sta INH ; 3 + lda #bird_rider_stand_right ; 2 + sta INH ; 3 + lda #bird_rider_walk_right ; 2 + sta INH ; 3 + lda #letters - sta LETTERH - lda #39 - sta LETTERX - lda #22 - sta LETTERY - lda #25 - sta LETTERD + lda #fw_letters + sta LETTERH + lda #39 + sta LETTERX + lda #22 + sta LETTERY + lda #25 + sta LETTERD diff --git a/megademo/fw.s b/megademo/fw.s index 29d3b8c6..01356ba6 100644 --- a/megademo/fw.s +++ b/megademo/fw.s @@ -841,3 +841,43 @@ stars: ; even x so they are purple .byte 216, 21, 164, 40, 124, 18, 60, 12 .byte 240,124, 94,125, 12, 22, 216,116 + +fw_letters: +; .byte 22,28, + .byte " ",128 + .byte 22+128,25," ",128 + + .byte 23,25, " ",128 + .byte 23+128,25," ",128 + + .byte 22,26, "CODE BY",128 + .byte 22+128,26,"CODE BY",128 + + .byte 23,26, "DEATER",128 + .byte 23+128,26,"DEATER",198 + + .byte 22,26, " ",128 + .byte 22+128,26," ",128 + + .byte 23,26, " ",128 + .byte 23+128,26," ",128 + + .byte 22,26, "FIREWORKS",128 + .byte 22+128,26,"FIREWORKS",128 + + .byte 23,26, "FOZZTEXX",128 + .byte 23+128,26,"FOZZTEXX",198 + + .byte 22,26, " ",128 + .byte 22+128,26," ",128 + + .byte 23,26, " ",128 + .byte 23+128,26," ",128 + + .byte 22,26,"A VMW",128 + .byte 22+128,26,"A VMW",128 + + .byte 23,26,"PRODUCTION",128 + .byte 23+128,26,"PRODUCTION" + + .byte 255 diff --git a/megademo/megademo.s b/megademo/megademo.s index 1074cfc6..0227fdc7 100644 --- a/megademo/megademo.s +++ b/megademo/megademo.s @@ -26,6 +26,7 @@ ; Leaving house ; Riding bird + jsr bird_mountain ; Waterfall @@ -63,4 +64,7 @@ loop_forever: .align $100 .include "fireworks.s" .include "hgr.s" + .include "bird_mountain.s" .include "move_letters.s" +.align $100 + .include "gr_putsprite.s" diff --git a/megademo/move_letters.s b/megademo/move_letters.s index 2e6c2e0c..bede455c 100644 --- a/megademo/move_letters.s +++ b/megademo/move_letters.s @@ -181,43 +181,3 @@ waste_28: inc BLARGH ; 5 inc BLARGH ; 5 rts ; 6 - -letters: -; .byte 22,28, - .byte " ",128 - .byte 22+128,25," ",128 - - .byte 23,25, " ",128 - .byte 23+128,25," ",128 - - .byte 22,26, "CODE BY",128 - .byte 22+128,26,"CODE BY",128 - - .byte 23,26, "DEATER",128 - .byte 23+128,26,"DEATER",198 - - .byte 22,26, " ",128 - .byte 22+128,26," ",128 - - .byte 23,26, " ",128 - .byte 23+128,26," ",128 - - .byte 22,26, "FIREWORKS",128 - .byte 22+128,26,"FIREWORKS",128 - - .byte 23,26, "FOZZTEXX",128 - .byte 23+128,26,"FOZZTEXX",198 - - .byte 22,26, " ",128 - .byte 22+128,26," ",128 - - .byte 23,26, " ",128 - .byte 23+128,26," ",128 - - .byte 22,26,"A VMW",128 - .byte 22+128,26,"A VMW",128 - - .byte 23,26,"PRODUCTION",128 - .byte 23+128,26,"PRODUCTION" - - .byte 255 diff --git a/megademo/tfv_sprites.inc b/megademo/tfv_sprites.inc new file mode 100644 index 00000000..dee1657f --- /dev/null +++ b/megademo/tfv_sprites.inc @@ -0,0 +1,47 @@ +bird_rider_stand_right: + .byte $6,$7 + .byte $00,$dd,$bd,$00,$00,$00 + .byte $00,$dd,$db,$00,$dd,$90 + .byte $00,$00,$22,$02,$dd,$00 + .byte $0d,$dd,$d2,$22,$dd,$00 + .byte $00,$00,$0d,$82,$8d,$00 + .byte $00,$00,$00,$99,$00,$00 + .byte $00,$00,$00,$99,$90,$00 + ; 00=22 0X=3 X0=2 XX=15 + ; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y + ; = 33 + 7*52 + 30*22 + 64*3 + 69*2 + 54*15 - 7 + ; = 2190 + +bird_rider_walk_right: + .byte $6,$7 + .byte $00,$dd,$bd,$00,$00,$00 + .byte $00,$dd,$db,$00,$dd,$90 + .byte $00,$00,$22,$02,$dd,$00 + .byte $0d,$dd,$d2,$22,$dd,$00 + .byte $00,$00,$0d,$82,$8d,$00 + .byte $00,$00,$00,$99,$00,$00 + .byte $00,$00,$99,$00,$99,$00 + ; 00=22 0X=3 X0=1 XX=16 + ; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y + ; = 33 + 7*52 + 30*22 + 64*3 + 69*1 + 54*16 - 7 + ; = 2175 + +small_tree: + .byte $3,$3 + .byte $00,$CC,$00 + .byte $CC,$CC,$CC + .byte $00,$88,$00 + ; 00=4 0X=0 X0=0 XX=5 + ; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y + ; = 33 + 3*52 + [30*4 + 54*5]-3 = 576 + +big_tree: + .byte $5,$5 + .byte $00,$00,$CC,$00,$00 + .byte $00,$C0,$CC,$C0,$00 + .byte $00,$CC,$CC,$CC,$00 + .byte $c0,$CC,$CC,$CC,$c0 + .byte $00,$00,$88,$00,$00 + ; 00=12 0X=0 X0=4 XX=9 + ; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y + ; = 33 + 5*52 + 30*12 + 69*4 + 54*9 - 5 = 1410