mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-02 19:42:23 +00:00
lemm: split screen intro on IIe
This commit is contained in:
parent
ccf6cf974d
commit
d3002a62d6
Binary file not shown.
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
@ -8,6 +8,7 @@ CLR80COL = $C000 ; PAGE0/PAGE1 normal
|
||||||
SET80COL = $C001 ; PAGE0/PAGE1 switches PAGE0 in Aux instead
|
SET80COL = $C001 ; PAGE0/PAGE1 switches PAGE0 in Aux instead
|
||||||
EIGHTYCOLOFF = $C00C
|
EIGHTYCOLOFF = $C00C
|
||||||
EIGHTYCOLON = $C00D
|
EIGHTYCOLON = $C00D
|
||||||
|
VBLANK = $C019 ; IIe *not* RDVBL (VBL signal low)
|
||||||
TBCOLOR = $C022 ; IIgs text foreground / background colors
|
TBCOLOR = $C022 ; IIgs text foreground / background colors
|
||||||
NEWVIDEO = $C029 ; IIgs graphics modes
|
NEWVIDEO = $C029 ; IIgs graphics modes
|
||||||
SPEAKER = $C030
|
SPEAKER = $C030
|
||||||
|
|
|
@ -5,6 +5,16 @@
|
||||||
|
|
||||||
intro_level1:
|
intro_level1:
|
||||||
|
|
||||||
|
lda #<level1_preview_lzsa
|
||||||
|
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||||
|
lda #>level1_preview_lzsa
|
||||||
|
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||||
|
|
||||||
|
lda #$20
|
||||||
|
|
||||||
|
jsr decompress_lzsa2_fast
|
||||||
|
|
||||||
|
|
||||||
; clear text screen
|
; clear text screen
|
||||||
|
|
||||||
jsr clear_all
|
jsr clear_all
|
||||||
|
@ -30,6 +40,15 @@ text_loop:
|
||||||
dex
|
dex
|
||||||
bne text_loop
|
bne text_loop
|
||||||
|
|
||||||
|
bit KEYRESET
|
||||||
|
|
||||||
|
lda APPLEII_MODEL
|
||||||
|
cmp #'E'
|
||||||
|
bne intro_not_iie
|
||||||
|
|
||||||
|
jmp split_screen_iie
|
||||||
|
|
||||||
|
intro_not_iie:
|
||||||
; wait until keypress
|
; wait until keypress
|
||||||
|
|
||||||
jsr wait_until_keypress
|
jsr wait_until_keypress
|
||||||
|
@ -39,18 +58,85 @@ text_loop:
|
||||||
level1_intro_text:
|
level1_intro_text:
|
||||||
.byte 0, 8,"LEVEL 1",0
|
.byte 0, 8,"LEVEL 1",0
|
||||||
.byte 15, 8,"JUST DIG!",0
|
.byte 15, 8,"JUST DIG!",0
|
||||||
.byte 9,13,"NUMBER OF LEMMINGS 10",0
|
.byte 9,12,"NUMBER OF LEMMINGS 10",0
|
||||||
.byte 12,15,"10% TO BE SAVED",0
|
.byte 12,14,"10% TO BE SAVED",0
|
||||||
.byte 12,17,"RELEASE RATE 50",0
|
.byte 12,16,"RELEASE RATE 50",0
|
||||||
.byte 13,19,"TIME 5 MINUTES",0
|
.byte 13,18,"TIME 5 MINUTES",0
|
||||||
.byte 15,21,"RATING FUN",0
|
.byte 15,20,"RATING FUN",0
|
||||||
.byte 8,23,"PRESS RETURN TO CONINUE",0
|
.byte 8,23,"PRESS RETURN TO CONINUE",0
|
||||||
|
|
||||||
.byte 0, 8,"LEVEL 5",0
|
.byte 0, 8,"LEVEL 5",0
|
||||||
.byte 15, 8,"YOU NEED BASHERS THIS TIME",0
|
.byte 15, 8,"YOU NEED BASHERS THIS TIME",0
|
||||||
.byte 9,13,"NUMBER OF LEMMINGS 50",0
|
.byte 9,12,"NUMBER OF LEMMINGS 50",0
|
||||||
.byte 12,15,"10% TO BE SAVED",0
|
.byte 12,14,"10% TO BE SAVED",0
|
||||||
.byte 12,17,"RELEASE RATE 50",0
|
.byte 12,16,"RELEASE RATE 50",0
|
||||||
.byte 13,19,"TIME 5 MINUTES",0
|
.byte 13,18,"TIME 5 MINUTES",0
|
||||||
.byte 15,21,"RATING FUN",0
|
.byte 15,20,"RATING FUN",0
|
||||||
.byte 8,23,"PRESS RETURN TO CONINUE",0
|
.byte 8,23,"PRESS RETURN TO CONINUE",0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; split screen?
|
||||||
|
|
||||||
|
split_screen_iie:
|
||||||
|
|
||||||
|
; wait for vblank on IIe
|
||||||
|
; positive? during vblank
|
||||||
|
|
||||||
|
wait_vblank_iie:
|
||||||
|
lda VBLANK
|
||||||
|
bmi wait_vblank_iie ; wait for positive (in vblank)
|
||||||
|
wait_vblank_done_iie:
|
||||||
|
lda VBLANK ; wait for negative (vlank done)
|
||||||
|
bpl wait_vblank_done_iie
|
||||||
|
|
||||||
|
;
|
||||||
|
split_loop:
|
||||||
|
;===========================
|
||||||
|
; hires for 64 lines
|
||||||
|
; each line 65 cycles (25 hblank+40 bytes)
|
||||||
|
|
||||||
|
bit HIRES ; 4
|
||||||
|
bit SET_GR ; 4
|
||||||
|
|
||||||
|
; (64*65)-8 = 4160-8 = 4152
|
||||||
|
|
||||||
|
; Try X=91 Y=9 cycles=4150
|
||||||
|
|
||||||
|
nop ; delay two more
|
||||||
|
|
||||||
|
ldy #9 ; 2
|
||||||
|
loop1: ldx #91 ; 2
|
||||||
|
loop2: dex ; 2
|
||||||
|
bne loop2 ; 2nt/3
|
||||||
|
dey ; 2
|
||||||
|
bne loop1 ; 2nt/3
|
||||||
|
|
||||||
|
; text for 128 lines + horizontal blank
|
||||||
|
; vblank = 4550 cycles
|
||||||
|
|
||||||
|
; (128*65)+4550-15 = 8320+4550-15 = 12855
|
||||||
|
|
||||||
|
bit LORES ; 4
|
||||||
|
bit SET_TEXT ; 4
|
||||||
|
|
||||||
|
; Try X=150 Y=17 cycles=12853
|
||||||
|
|
||||||
|
nop ; 2
|
||||||
|
|
||||||
|
ldy #17 ; 2
|
||||||
|
loop3: ldx #150 ; 2
|
||||||
|
loop4: dex ; 2
|
||||||
|
bne loop4 ; 2nt/3
|
||||||
|
dey ; 2
|
||||||
|
bne loop3 ; 2nt/3
|
||||||
|
|
||||||
|
lda KEYPRESS ; 4
|
||||||
|
bpl split_loop ; 2nt/3t
|
||||||
|
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user