mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-14 13:33:48 +00:00
megadmo: add e-mail check
This commit is contained in:
parent
c78e29e0fc
commit
7c0ca01789
@ -26,6 +26,7 @@ megademo.o: megademo.s \
|
||||
gr_hline.s gr_offsets.s vapor_lock.s delay_a.s wait_keypress.s \
|
||||
c64_opener.s c64.img.lz4 \
|
||||
falling_apple.s apple_40_96.inc \
|
||||
check_email.s email_40_96.inc \
|
||||
bird_mountain.s \
|
||||
fireworks.s fw_background.inc fw_state_machine.s fw.s \
|
||||
hgr.s random16.s move_letters.s
|
||||
@ -39,6 +40,11 @@ apple_40_96.inc: ./images/apple_40_96.png
|
||||
|
||||
####
|
||||
|
||||
email_40_96.inc: ./email_40_96.png
|
||||
$(PNG_TO_40x96) asm ./email_40_96.png email > email_40_96.inc
|
||||
|
||||
####
|
||||
|
||||
c64.img.lz4: c64.img
|
||||
lz4 -f -16 c64.img
|
||||
|
||||
|
45
megademo/TODO
Normal file
45
megademo/TODO
Normal file
@ -0,0 +1,45 @@
|
||||
Overall:
|
||||
fix off-by-one line vaporlock
|
||||
|
||||
Music:
|
||||
compose music
|
||||
fit in RAM
|
||||
|
||||
c64_opener:
|
||||
get curtain-opening effect working
|
||||
add text to background
|
||||
|
||||
starring:
|
||||
implement
|
||||
complete graphics
|
||||
add wipe effect with tengwar
|
||||
|
||||
e-mail:
|
||||
implement
|
||||
half text
|
||||
40x96 graphics
|
||||
use existing move_letters?
|
||||
|
||||
|
||||
**01234567890123456**
|
||||
2 DEATER,
|
||||
3
|
||||
4 Wir MuSSEN
|
||||
5 ZUSAMMEN SEIN.
|
||||
6
|
||||
7 RAUMFAHRST DU
|
||||
8 SCHNELL.
|
||||
9
|
||||
10 DEIN IMMER
|
||||
11
|
||||
12 FroGGY SuE
|
||||
13 _
|
||||
14 [_]
|
||||
15 /| |\
|
||||
16 /_|_|_\
|
||||
17 /_\
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
181
megademo/check_email.s
Normal file
181
megademo/check_email.s
Normal file
@ -0,0 +1,181 @@
|
||||
; Display e-mail demo
|
||||
|
||||
; 40x96 graphics as well as half-screen text manipulation
|
||||
|
||||
|
||||
check_email:
|
||||
|
||||
;===================
|
||||
; init screen
|
||||
jsr TEXT
|
||||
jsr HOME
|
||||
bit KEYRESET
|
||||
|
||||
;===================
|
||||
; init vars
|
||||
|
||||
lda #0
|
||||
sta DRAW_PAGE
|
||||
|
||||
;=============================
|
||||
; Load graphic page0
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image to $c00
|
||||
|
||||
|
||||
lda #<email_low
|
||||
sta GBASL
|
||||
lda #>email_low
|
||||
sta GBASH
|
||||
jsr load_rle_gr
|
||||
|
||||
lda #4
|
||||
sta DRAW_PAGE
|
||||
|
||||
jsr gr_copy_to_current ; copy to page1
|
||||
|
||||
; GR part
|
||||
bit PAGE1
|
||||
bit LORES ; 4
|
||||
bit SET_GR ; 4
|
||||
bit FULLGR ; 4
|
||||
|
||||
;=============================
|
||||
; Load graphic page1
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image to $c00
|
||||
|
||||
lda #<email_high
|
||||
sta GBASL
|
||||
lda #>email_high
|
||||
sta GBASH
|
||||
jsr load_rle_gr
|
||||
|
||||
lda #0
|
||||
sta DRAW_PAGE
|
||||
|
||||
jsr gr_copy_to_current
|
||||
|
||||
; GR part
|
||||
bit PAGE0
|
||||
|
||||
|
||||
;==============================
|
||||
; setup graphics for vapor lock
|
||||
;==============================
|
||||
|
||||
jsr vapor_lock ; 6
|
||||
|
||||
; vapor lock returns with us at beginning of hsync in line
|
||||
; 114 (7410 cycles), so with 5070 lines to go
|
||||
|
||||
jsr gr_copy_to_current ; 6+ 9292
|
||||
|
||||
; now we have 322 left
|
||||
|
||||
; GR part
|
||||
bit LORES ; 4
|
||||
bit SET_GR ; 4
|
||||
bit FULLGR ; 4
|
||||
|
||||
; 322 - 12 = 310
|
||||
; - 3 for jmp
|
||||
; 307
|
||||
|
||||
; Try X=9 Y=6 cycles=307
|
||||
|
||||
ldy #6 ; 2
|
||||
celoopA:ldx #9 ; 2
|
||||
celoopB:dex ; 2
|
||||
bne celoopB ; 2nt/3
|
||||
dey ; 2
|
||||
bne celoopA ; 2nt/3
|
||||
|
||||
jmp em_display_loop
|
||||
.align $100
|
||||
|
||||
|
||||
;================================================
|
||||
; Email 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
|
||||
|
||||
; We want to alternate between page1 and page2 every 65 cycles
|
||||
; vblank = 4550 cycles to do scrolling
|
||||
|
||||
|
||||
; 2 + 48*( (4+2+25*(2+3)) + (4+2+23*(2+3)+4+5)) + 9)
|
||||
; 48*[(6+125)-1] + [(6+115+10)-1]
|
||||
|
||||
; For this part we want
|
||||
|
||||
; T00000000000000000000 G0000000000000000000000
|
||||
; T00000000000000000000 G0000000000000000000000
|
||||
; T00000000000000000000 G1111111111111111111111
|
||||
; T00000000000000000000 G1111111111111111111111
|
||||
; T11111111111111111111 G0000000000000000000000
|
||||
; T11111111111111111111 G0000000000000000000000
|
||||
; T11111111111111111111 G1111111111111111111111
|
||||
; T11111111111111111111 G1111111111111111111111
|
||||
|
||||
|
||||
em_display_loop:
|
||||
|
||||
ldy #48 ; 2
|
||||
|
||||
em_outer_loop:
|
||||
|
||||
bit PAGE0 ; 4
|
||||
ldx #25 ; 130 cycles with PAGE0 ; 2
|
||||
em_page0_loop: ; delay 126+bit
|
||||
dex ; 2
|
||||
bne em_page0_loop ; 2/3
|
||||
|
||||
|
||||
bit PAGE1 ; 4
|
||||
ldx #23 ; 130 cycles with PAGE1 ; 2
|
||||
em_page1_loop: ; delay 115+(7 loop)+4 (bit)+4(extra)
|
||||
dex ; 2
|
||||
bne em_page1_loop ; 2/3
|
||||
|
||||
nop ; 2
|
||||
lda DRAW_PAGE ; 3
|
||||
|
||||
dey ; 2
|
||||
bne em_outer_loop ; 2/3
|
||||
|
||||
|
||||
|
||||
;======================================================
|
||||
; We have 4550 cycles in the vblank, use them wisely
|
||||
;======================================================
|
||||
; do_nothing should be 4550+1 -2-9 -7= 4533
|
||||
|
||||
jsr do_nothing ; 6
|
||||
|
||||
lda KEYPRESS ; 4
|
||||
bpl em_no_keypress ; 3
|
||||
jmp em_start_over
|
||||
em_no_keypress:
|
||||
|
||||
jmp em_display_loop ; 3
|
||||
|
||||
em_start_over:
|
||||
bit KEYRESET ; clear keypress ; 4
|
||||
rts ; 6
|
||||
|
||||
|
||||
|
||||
.include "email_40_96.inc"
|
||||
|
||||
|
BIN
megademo/email_40_96.png
Normal file
BIN
megademo/email_40_96.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.3 KiB |
@ -11,6 +11,8 @@
|
||||
;===================
|
||||
jsr HOME
|
||||
|
||||
jsr check_email
|
||||
|
||||
; C64 Opening Sequence
|
||||
|
||||
jsr c64_opener
|
||||
@ -22,6 +24,8 @@
|
||||
; Starring Screens
|
||||
|
||||
; E-mail arriving
|
||||
jsr check_email
|
||||
|
||||
|
||||
; Leaving house
|
||||
|
||||
@ -32,6 +36,8 @@
|
||||
|
||||
; Enter ship
|
||||
|
||||
; mode7 (???)
|
||||
|
||||
; Fly in space
|
||||
|
||||
; Arrive
|
||||
@ -54,6 +60,7 @@ loop_forever:
|
||||
.include "lz4_decode.s"
|
||||
.include "c64_opener.s"
|
||||
.include "falling_apple.s"
|
||||
.include "check_email.s"
|
||||
.align $100
|
||||
.include "gr_offsets.s"
|
||||
.include "gr_hline.s"
|
||||
|
Loading…
x
Reference in New Issue
Block a user