mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-27 07:29:29 +00:00
botdemo: more work on title animation
This commit is contained in:
parent
9d9d4899cd
commit
5bfdb59945
|
@ -36,7 +36,7 @@ botdemo.o: botdemo.s \
|
||||||
zp.inc hardware.inc nozp.inc timeline.inc \
|
zp.inc hardware.inc nozp.inc timeline.inc \
|
||||||
commands.s bg.inc \
|
commands.s bg.inc \
|
||||||
interrupt_handler.s \
|
interrupt_handler.s \
|
||||||
wipe.s
|
wipe.s mock_anim.s
|
||||||
ca65 -o botdemo.o botdemo.s -l botdemo.lst
|
ca65 -o botdemo.o botdemo.s -l botdemo.lst
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,20 +13,19 @@ DO_LOAD = 1
|
||||||
DO_LIST = 2
|
DO_LIST = 2
|
||||||
DO_RUN = 3
|
DO_RUN = 3
|
||||||
|
|
||||||
|
;==========================================
|
||||||
|
; we are loaded at $6000
|
||||||
|
;
|
||||||
|
; since we are now decompressed here after load
|
||||||
|
; we don't have to worry about running into DOS3.3 at $9600
|
||||||
|
;
|
||||||
|
; we shouldn't need to set HIMEM as we don't use many vars
|
||||||
|
; and variable memory starts right after the program
|
||||||
|
|
||||||
bot_demo:
|
bot_demo:
|
||||||
;===================
|
|
||||||
; init some stuff
|
|
||||||
|
|
||||||
; we have from $6000 to $9600 (DOS 3.3)
|
|
||||||
; which is $3600 = 12 + 1.5 = 13.5k
|
|
||||||
|
|
||||||
; we don't need to set HIMEM as we don't use many vars
|
|
||||||
; and variable memory starts right after the program it seems
|
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; PT3 Setup
|
; PT3 player Setup
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta DONE_PLAYING
|
sta DONE_PLAYING
|
||||||
|
@ -52,17 +51,22 @@ mockingboard_not_found:
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; init screen
|
; init screen
|
||||||
|
;===================
|
||||||
|
|
||||||
jsr TEXT
|
jsr TEXT
|
||||||
jsr HOME
|
jsr SETGR
|
||||||
bit SET_GR
|
; jsr HOME
|
||||||
bit TEXTGR
|
; bit SET_GR
|
||||||
|
; bit TEXTGR
|
||||||
bit KEYRESET
|
bit KEYRESET
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; init vars
|
; init vars
|
||||||
|
;===================
|
||||||
|
|
||||||
;=============================
|
;=============================
|
||||||
; Load bg
|
; Load title screen
|
||||||
|
;=============================
|
||||||
|
|
||||||
lda #<bg_rle
|
lda #<bg_rle
|
||||||
sta GBASL
|
sta GBASL
|
||||||
|
@ -71,40 +75,19 @@ mockingboard_not_found:
|
||||||
lda #$c
|
lda #$c
|
||||||
jsr load_rle_gr
|
jsr load_rle_gr
|
||||||
|
|
||||||
jsr do_wipe
|
;==============================
|
||||||
|
; wipe it to page1 gr
|
||||||
|
;==============================
|
||||||
|
|
||||||
; jsr gr_copy_to_current ; copy to page1
|
jsr do_wipe
|
||||||
|
|
||||||
;=============================
|
;=============================
|
||||||
; mockingboard where available
|
; mockingboard where available
|
||||||
|
;=============================
|
||||||
|
|
||||||
lda #5
|
jsr mock_anim
|
||||||
sta CH
|
|
||||||
lda #21
|
|
||||||
sta CV
|
|
||||||
jsr VTAB
|
|
||||||
|
|
||||||
lda #<mock_string
|
command_loop:
|
||||||
ldy #>mock_string
|
|
||||||
|
|
||||||
jsr STROUT
|
|
||||||
|
|
||||||
lda #12
|
|
||||||
sta CH
|
|
||||||
lda #22
|
|
||||||
sta CV
|
|
||||||
jsr VTAB
|
|
||||||
|
|
||||||
lda #<mock2_string
|
|
||||||
ldy #>mock2_string
|
|
||||||
|
|
||||||
jsr STROUT
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
done:
|
|
||||||
lda trigger
|
lda trigger
|
||||||
beq not_trigger
|
beq not_trigger
|
||||||
|
|
||||||
|
@ -113,7 +96,7 @@ done:
|
||||||
|
|
||||||
lda command
|
lda command
|
||||||
cmp #DONE
|
cmp #DONE
|
||||||
beq done
|
beq command_loop
|
||||||
|
|
||||||
cmp #DO_LIST
|
cmp #DO_LIST
|
||||||
bne not_do_list
|
bne not_do_list
|
||||||
|
@ -133,14 +116,7 @@ not_do_load:
|
||||||
|
|
||||||
not_trigger:
|
not_trigger:
|
||||||
|
|
||||||
jmp done
|
jmp command_loop
|
||||||
|
|
||||||
|
|
||||||
mock_string:
|
|
||||||
.byte ") ) ) MOCKINGBOARD SOUND ( ( (",0
|
|
||||||
mock2_string:
|
|
||||||
.byte "WHERE AVAILABLE",0
|
|
||||||
|
|
||||||
|
|
||||||
command: .byte $00
|
command: .byte $00
|
||||||
which: .byte $00
|
which: .byte $00
|
||||||
|
@ -163,6 +139,7 @@ original_stack: .byte $00
|
||||||
.include "timeline.inc"
|
.include "timeline.inc"
|
||||||
|
|
||||||
.include "wipe.s"
|
.include "wipe.s"
|
||||||
|
.include "mock_anim.s"
|
||||||
|
|
||||||
.include "nozp.inc"
|
.include "nozp.inc"
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ HLINE = $F819 ;; HLINE Y,$2C at A
|
||||||
VLINE = $F828 ;; VLINE A,$2D at Y
|
VLINE = $F828 ;; VLINE A,$2D at Y
|
||||||
CLRSCR = $F832 ;; Clear low-res screen
|
CLRSCR = $F832 ;; Clear low-res screen
|
||||||
CLRTOP = $F836 ;; clear only top of low-res screen
|
CLRTOP = $F836 ;; clear only top of low-res screen
|
||||||
|
SETGR = $FB40 ;; GR
|
||||||
SETCOL = $F864 ;; COLOR=A
|
SETCOL = $F864 ;; COLOR=A
|
||||||
TEXT = $FB36
|
TEXT = $FB36
|
||||||
TABV = $FB5B ;; VTAB to A
|
TABV = $FB5B ;; VTAB to A
|
||||||
|
|
|
@ -3,9 +3,10 @@
|
||||||
20 PRINT
|
20 PRINT
|
||||||
30 PRINT " A COLLECTION OF BASIC DEMOS"
|
30 PRINT " A COLLECTION OF BASIC DEMOS"
|
||||||
40 PRINT " THAT EACH FIT IN A 280 CHARACTER TWEET"
|
40 PRINT " THAT EACH FIT IN A 280 CHARACTER TWEET"
|
||||||
42 PRINT " FIRST TESTED ON THE @APPLEIIBOT"
|
42 PRINT
|
||||||
45 PRINT
|
45 PRINT " FIRST TESTED ON THE @APPLEIIBOT"
|
||||||
50 HTAB 15:PRINT " _ "
|
50 PRINT
|
||||||
60 HTAB 15:PRINT " _: :_ _"
|
60 HTAB 15:PRINT " _ "
|
||||||
70 HTAB 15:PRINT ":_: _: : "
|
70 HTAB 15:PRINT " _: :_ _"
|
||||||
80 PRINT CHR$(4)"BRUN LOADER"
|
80 HTAB 15:PRINT ":_: _: : "
|
||||||
|
90 PRINT CHR$(4)"BRUN LOADER"
|
||||||
|
|
|
@ -92,9 +92,9 @@ no_tick_oflo:
|
||||||
|
|
||||||
ldx original_stack
|
ldx original_stack
|
||||||
txs
|
txs
|
||||||
lda #>done
|
lda #>command_loop
|
||||||
pha
|
pha
|
||||||
lda #<done
|
lda #<command_loop
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda #0 ; program status word
|
lda #0 ; program status word
|
||||||
|
|
121
bot_demo/mock_anim.s
Normal file
121
bot_demo/mock_anim.s
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
;=============================
|
||||||
|
; mockingboard where available
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
mock_anim:
|
||||||
|
|
||||||
|
lda #11
|
||||||
|
sta CH
|
||||||
|
lda #21
|
||||||
|
sta CV
|
||||||
|
jsr VTAB
|
||||||
|
|
||||||
|
lda #<mock_string
|
||||||
|
ldy #>mock_string
|
||||||
|
|
||||||
|
jsr STROUT
|
||||||
|
|
||||||
|
lda #9
|
||||||
|
sta paren_limit_smc+1
|
||||||
|
jsr paren_move
|
||||||
|
|
||||||
|
lda #7
|
||||||
|
sta paren_limit_smc+1
|
||||||
|
jsr paren_move
|
||||||
|
|
||||||
|
lda #5
|
||||||
|
sta paren_limit_smc+1
|
||||||
|
jsr paren_move
|
||||||
|
|
||||||
|
; flip the parens
|
||||||
|
|
||||||
|
lda #9
|
||||||
|
sta paren_flip1_smc+1
|
||||||
|
lda #30
|
||||||
|
sta paren_flip2_smc+1
|
||||||
|
jsr paren_flip
|
||||||
|
|
||||||
|
lda #7
|
||||||
|
sta paren_flip1_smc+1
|
||||||
|
lda #32
|
||||||
|
sta paren_flip2_smc+1
|
||||||
|
jsr paren_flip
|
||||||
|
|
||||||
|
lda #5
|
||||||
|
sta paren_flip1_smc+1
|
||||||
|
lda #34
|
||||||
|
sta paren_flip2_smc+1
|
||||||
|
jsr paren_flip
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; where available
|
||||||
|
|
||||||
|
lda #12
|
||||||
|
sta CH
|
||||||
|
lda #22
|
||||||
|
sta CV
|
||||||
|
jsr VTAB
|
||||||
|
|
||||||
|
lda #<mock2_string
|
||||||
|
ldy #>mock2_string
|
||||||
|
|
||||||
|
jsr STROUT
|
||||||
|
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
; animate the parenthesis
|
||||||
|
paren_move:
|
||||||
|
ldx #0
|
||||||
|
ldy #39
|
||||||
|
parenthesis_loop:
|
||||||
|
|
||||||
|
lda #' '|$80
|
||||||
|
sta $6d0,X
|
||||||
|
sta $6d0,Y
|
||||||
|
|
||||||
|
inx
|
||||||
|
dey
|
||||||
|
|
||||||
|
lda #'('|$80
|
||||||
|
sta $6d0,X
|
||||||
|
lda #')'|$80
|
||||||
|
sta $6d0,Y
|
||||||
|
|
||||||
|
lda #128
|
||||||
|
jsr WAIT
|
||||||
|
|
||||||
|
paren_limit_smc:
|
||||||
|
cpx #9
|
||||||
|
bne parenthesis_loop
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
; flip the parenthesis
|
||||||
|
paren_flip:
|
||||||
|
|
||||||
|
paren_flip1_smc:
|
||||||
|
ldx #9
|
||||||
|
lda #')'|$80
|
||||||
|
sta $6d0,X
|
||||||
|
|
||||||
|
paren_flip2_smc:
|
||||||
|
ldy #30
|
||||||
|
lda #'('|$80
|
||||||
|
sta $6d0,Y
|
||||||
|
|
||||||
|
lda #200
|
||||||
|
jsr WAIT
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mock_string:
|
||||||
|
.byte "MOCKINGBOARD SOUND",0
|
||||||
|
; .byte ") ) ) MOCKINGBOARD SOUND ( ( (",0
|
||||||
|
mock2_string:
|
||||||
|
.byte "WHERE AVAILABLE",0
|
Loading…
Reference in New Issue
Block a user