mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-27 02:31:00 +00:00
mode7_demo: got credits doing something useful
This commit is contained in:
parent
c37cb8d140
commit
6a6c5fa2bc
@ -3,85 +3,91 @@
|
|||||||
;===========
|
;===========
|
||||||
; CONSTANTS
|
; CONSTANTS
|
||||||
;===========
|
;===========
|
||||||
|
|
||||||
NUM_CREDITS EQU 10
|
NUM_CREDITS EQU 10
|
||||||
|
|
||||||
;===============
|
|
||||||
; Init screen
|
init_credits:
|
||||||
;===============
|
ldy #0
|
||||||
|
lda (OUTL),Y ; get the first byte of credit
|
||||||
|
; which is the X-coord
|
||||||
|
|
||||||
|
sta CH ; store HTAB value
|
||||||
|
|
||||||
|
lda #22 ; text Y=22
|
||||||
|
sta CV ; store VTAB value
|
||||||
|
|
||||||
|
lda #$f0 ; -16
|
||||||
|
sta NAMEX ; we're clicking 10 times to get to our char
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
;===========================
|
;===========================
|
||||||
;===========================
|
;===========================
|
||||||
; Main Loop
|
; draw_credits
|
||||||
;===========================
|
;===========================
|
||||||
;===========================
|
;===========================
|
||||||
|
|
||||||
forever_loop:
|
draw_credits:
|
||||||
ldx #0
|
|
||||||
stx YY
|
|
||||||
|
|
||||||
lda #>credits
|
|
||||||
sta OUTH
|
|
||||||
lda #<credits
|
|
||||||
sta OUTL
|
|
||||||
|
|
||||||
outer_loop:
|
|
||||||
|
|
||||||
|
|
||||||
credit_loop:
|
credit_loop:
|
||||||
|
|
||||||
ldy #0
|
|
||||||
lda (OUTL),Y
|
|
||||||
|
|
||||||
clc
|
|
||||||
adc #7
|
|
||||||
|
|
||||||
sta CH
|
|
||||||
|
|
||||||
lda #22
|
|
||||||
sta CV
|
|
||||||
|
|
||||||
lda #$f6 ; - 10
|
|
||||||
sta XX
|
|
||||||
inner_loop:
|
inner_loop:
|
||||||
|
|
||||||
jsr htab_vtab
|
jsr htab_vtab ; put the cursor (BASL/BASH) at CH,CV
|
||||||
|
|
||||||
ldy #1
|
ldy #1 ; skip the x-coord to get to string
|
||||||
print_loop:
|
print_loop:
|
||||||
lda (OUTL),Y
|
lda (OUTL),Y ; get the character
|
||||||
beq done_print
|
beq done_print ; if 0 then end of string
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc XX
|
adc NAMEX ; subtract the char back
|
||||||
|
|
||||||
|
ora #$80 ; convert ASCII to apple normal text
|
||||||
|
sta (BASL),Y ; store it directly to screen
|
||||||
|
iny ; point to next character
|
||||||
|
jmp print_loop ; loop
|
||||||
|
|
||||||
ora #$80
|
|
||||||
sta (BASL),Y
|
|
||||||
iny
|
|
||||||
jmp print_loop
|
|
||||||
done_print:
|
done_print:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;==================
|
;==================
|
||||||
; flip pages
|
; click
|
||||||
;==================
|
;==================
|
||||||
|
|
||||||
jsr page_flip ; 6
|
lda LOOP
|
||||||
|
beq not_waiting
|
||||||
|
|
||||||
|
clc
|
||||||
|
adc #$ff
|
||||||
|
|
||||||
;==================
|
sta LOOP
|
||||||
; delay?
|
|
||||||
;==================
|
|
||||||
|
|
||||||
lda #$C0
|
bne done_click
|
||||||
bit SPEAKER
|
|
||||||
jsr WAIT
|
|
||||||
|
|
||||||
ldx XX
|
jsr init_credits
|
||||||
inx
|
|
||||||
stx XX
|
jmp done_click
|
||||||
cpx #1
|
|
||||||
bne inner_loop
|
not_waiting:
|
||||||
|
lda FRAME_COUNT ; slow down by x32
|
||||||
|
and #$3f
|
||||||
|
beq done_click
|
||||||
|
|
||||||
|
bit SPEAKER ; click the speaker
|
||||||
|
|
||||||
|
ldx NAMEX ; get the mutate counter
|
||||||
|
inx ; increment
|
||||||
|
stx NAMEX
|
||||||
|
cpx #0 ; if not 1, then continue
|
||||||
|
bne done_click
|
||||||
|
|
||||||
|
lda #$30 ; set delay to show the credit before
|
||||||
|
sta LOOP ; continuing
|
||||||
|
|
||||||
|
done_click:
|
||||||
|
rts
|
||||||
|
|
||||||
;==================
|
;==================
|
||||||
; Delay since done
|
; Delay since done
|
||||||
@ -139,15 +145,9 @@ done_skip:
|
|||||||
inx
|
inx
|
||||||
stx YY
|
stx YY
|
||||||
cpx #10
|
cpx #10
|
||||||
beq forever
|
; beq forever
|
||||||
jmp outer_loop
|
|
||||||
|
|
||||||
;==================
|
|
||||||
; loop forever
|
|
||||||
;==================
|
|
||||||
forever:
|
|
||||||
jmp forever_loop ; 3
|
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
;===============================
|
;===============================
|
||||||
; draw the above-credits chrome
|
; draw the above-credits chrome
|
||||||
@ -208,9 +208,9 @@ credits_draw_bottom:
|
|||||||
lda #32
|
lda #32
|
||||||
sta V2
|
sta V2
|
||||||
lda #36
|
lda #36
|
||||||
jsr hlin_double ; make this a jump and tail-call?
|
jmp hlin_double ; tail call, will return for us
|
||||||
|
|
||||||
rts
|
; rts
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Draw text mode boilerplate
|
; Draw text mode boilerplate
|
||||||
@ -275,25 +275,25 @@ empty:
|
|||||||
|
|
||||||
; offset can't be 0 or it confuses the next-credit code
|
; offset can't be 0 or it confuses the next-credit code
|
||||||
credits:
|
credits:
|
||||||
.byte 7
|
.byte 7+7
|
||||||
.asciiz "FROGGYSUE"
|
.asciiz "FROGGYSUE"
|
||||||
.byte 7
|
.byte 7+7
|
||||||
.asciiz "PIANOMAN08"
|
.asciiz "PIANOMAN08"
|
||||||
.byte 7
|
.byte 7+7
|
||||||
.asciiz "UTOPIA BBS"
|
.asciiz "UTOPIA BBS"
|
||||||
.byte 5
|
.byte 5+7
|
||||||
.asciiz "THE 7HORSEMEN"
|
.asciiz "THE 7HORSEMEN"
|
||||||
.byte 2
|
.byte 2+7
|
||||||
.asciiz "WEAVE'S WORLD TALKER"
|
.asciiz "WEAVE'S WORLD TALKER"
|
||||||
.byte 6
|
.byte 6+7
|
||||||
.asciiz "STEALTHSUSIE"
|
.asciiz "STEALTHSUSIE"
|
||||||
.byte 3
|
.byte 3+7
|
||||||
.asciiz "ECE GRAD BOWLING"
|
.asciiz "ECE GRAD BOWLING"
|
||||||
.byte 6
|
.byte 6+7
|
||||||
.asciiz "CORNELL GCF"
|
.asciiz "CORNELL GCF"
|
||||||
.byte 1
|
.byte 1+7
|
||||||
.asciiz "ALL MSTIES EVERYWHERE"
|
.asciiz "ALL MSTIES EVERYWHERE"
|
||||||
.byte 10
|
.byte 10+7
|
||||||
.asciiz "..."
|
.asciiz "..."
|
||||||
|
|
||||||
thankz:
|
thankz:
|
||||||
|
@ -139,6 +139,15 @@ starfield_credits:
|
|||||||
; always multiply with low byte as zero
|
; always multiply with low byte as zero
|
||||||
sta NUM2L ; 3
|
sta NUM2L ; 3
|
||||||
sta FRAME_COUNT
|
sta FRAME_COUNT
|
||||||
|
sta YY ; which credit
|
||||||
|
sta LOOP ; delay loop
|
||||||
|
|
||||||
|
lda #>credits ; load credits pointer
|
||||||
|
sta OUTH
|
||||||
|
lda #<credits
|
||||||
|
sta OUTL
|
||||||
|
|
||||||
|
; Initialize stars
|
||||||
|
|
||||||
ldy #(NUMSTARS-1) ; 2
|
ldy #(NUMSTARS-1) ; 2
|
||||||
init_stars2:
|
init_stars2:
|
||||||
@ -146,6 +155,10 @@ init_stars2:
|
|||||||
dey ; 2
|
dey ; 2
|
||||||
bpl init_stars2 ; 2nt/3
|
bpl init_stars2 ; 2nt/3
|
||||||
|
|
||||||
|
; Initialize the credits
|
||||||
|
|
||||||
|
jsr init_credits
|
||||||
|
|
||||||
;===========================
|
;===========================
|
||||||
;===========================
|
;===========================
|
||||||
; StarCredits Loop
|
; StarCredits Loop
|
||||||
@ -175,7 +188,7 @@ starcredits_loop:
|
|||||||
; draw the credits
|
; draw the credits
|
||||||
;====================
|
;====================
|
||||||
|
|
||||||
|
jsr draw_credits
|
||||||
jsr credits_draw_bottom
|
jsr credits_draw_bottom
|
||||||
|
|
||||||
;==================
|
;==================
|
||||||
|
Loading…
Reference in New Issue
Block a user