2018-04-28 01:24:57 +00:00
|
|
|
; And Believe Me, I'm Still Alive
|
|
|
|
|
|
|
|
.include "zp.inc"
|
|
|
|
|
2018-06-04 18:57:40 +00:00
|
|
|
still_alive:
|
2018-06-04 19:26:03 +00:00
|
|
|
|
|
|
|
;=============================
|
|
|
|
; Clear screen
|
|
|
|
;=============================
|
2018-06-05 18:30:01 +00:00
|
|
|
bit LORES ; needed or 80 column card has issues??
|
2018-06-04 19:26:03 +00:00
|
|
|
jsr HOME
|
|
|
|
jsr TEXT
|
|
|
|
|
2018-06-04 20:46:32 +00:00
|
|
|
;=============================
|
|
|
|
; setup Lyrics
|
|
|
|
;=============================
|
|
|
|
lda #<(lyrics)
|
|
|
|
sta LYRICSL
|
|
|
|
lda #>(lyrics)
|
|
|
|
sta LYRICSH
|
|
|
|
|
2018-06-05 13:48:06 +00:00
|
|
|
;===========================
|
|
|
|
; setup text screens
|
|
|
|
;===========================
|
2018-06-04 20:46:32 +00:00
|
|
|
|
2018-06-05 13:48:06 +00:00
|
|
|
lda FORTYCOL
|
|
|
|
bne only_forty
|
|
|
|
|
|
|
|
switch_to_80:
|
|
|
|
|
|
|
|
; Initialize 80 column firmware
|
|
|
|
jsr $C300 ; same as PR#3
|
|
|
|
sta SET80COL ; 80store C001
|
|
|
|
; makes pageflip switch between
|
|
|
|
; regular/aux memory
|
|
|
|
|
|
|
|
only_forty:
|
|
|
|
|
|
|
|
; Clear text page0
|
|
|
|
jsr HOME
|
|
|
|
|
|
|
|
;============================
|
|
|
|
; Draw Lineart around edges
|
|
|
|
;============================
|
|
|
|
|
|
|
|
jsr setup_edges
|
|
|
|
|
|
|
|
jsr HOME
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;=====================================
|
2018-06-04 19:26:03 +00:00
|
|
|
; See if Mockingboard or Electric Duet
|
2018-06-05 13:48:06 +00:00
|
|
|
;=====================================
|
2018-06-04 19:26:03 +00:00
|
|
|
|
|
|
|
lda USEMB
|
|
|
|
beq no_mockingboard
|
|
|
|
|
2018-06-04 18:57:40 +00:00
|
|
|
jsr still_alive_mb
|
2018-04-28 01:24:57 +00:00
|
|
|
|
2018-06-05 14:07:19 +00:00
|
|
|
jmp wait_for_keypress
|
2018-06-04 19:26:03 +00:00
|
|
|
|
|
|
|
no_mockingboard:
|
|
|
|
jsr still_alive_ed
|
2018-04-28 01:24:57 +00:00
|
|
|
|
2018-06-05 14:07:19 +00:00
|
|
|
wait_for_keypress:
|
|
|
|
lda KEYPRESS ; check if keypressed
|
|
|
|
bpl wait_for_keypress ; if not, loop
|
|
|
|
|
|
|
|
|
2018-06-04 19:26:03 +00:00
|
|
|
reset:
|
2018-06-04 20:55:28 +00:00
|
|
|
lda $AA6A ; current disk slot, dos 3.3
|
|
|
|
ora #$c0
|
|
|
|
sta $3F3
|
|
|
|
lda #0
|
|
|
|
sta $3F2
|
|
|
|
|
2018-06-04 19:26:03 +00:00
|
|
|
jmp ($3F2) ; warm-start?
|
|
|
|
; want reboot, not BASIC
|
2018-04-28 01:24:57 +00:00
|
|
|
|
2018-06-04 20:55:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-04 18:57:40 +00:00
|
|
|
;==========
|
|
|
|
; main code
|
|
|
|
;==========
|
2018-04-28 01:24:57 +00:00
|
|
|
|
2018-06-04 18:57:40 +00:00
|
|
|
.include "sa_mb.s"
|
|
|
|
.include "sa_ed.s"
|
2018-04-28 01:24:57 +00:00
|
|
|
|
|
|
|
;=========
|
|
|
|
;routines
|
|
|
|
;=========
|
2018-06-05 17:21:36 +00:00
|
|
|
.include "gr_offsets.s"
|
|
|
|
.include "mockingboard_a.s"
|
|
|
|
.include "lz4_decode.s"
|
2018-04-28 01:24:57 +00:00
|
|
|
|
2018-05-23 18:07:19 +00:00
|
|
|
.include "display_art.s"
|
|
|
|
.include "display_lyrics.s"
|
|
|
|
|
2018-04-28 01:24:57 +00:00
|
|
|
.include "interrupt_handler.s"
|
|
|
|
|
2018-06-04 18:57:40 +00:00
|
|
|
.include "duet.s"
|
|
|
|
|
2018-04-28 01:24:57 +00:00
|
|
|
;=========
|
|
|
|
; strings
|
|
|
|
;=========
|
|
|
|
|
2018-05-21 17:33:08 +00:00
|
|
|
|
2018-05-21 18:32:12 +00:00
|
|
|
lyrics:
|
|
|
|
.include "lyrics.inc"
|
|
|
|
|
2018-06-04 20:46:32 +00:00
|
|
|
art:
|
2018-05-23 20:09:44 +00:00
|
|
|
.include "ascii_art.inc"
|
2018-05-21 17:33:08 +00:00
|
|
|
|
|
|
|
LZ4_BUFFER:
|
2018-06-04 18:57:40 +00:00
|
|
|
music_address:
|
2018-06-05 17:21:36 +00:00
|
|
|
;.incbin "SA.KR4"
|
|
|
|
;.incbin "SA.ED"
|
2018-06-04 18:57:40 +00:00
|
|
|
|