sa: merge the versions

This commit is contained in:
Vince Weaver 2018-06-04 15:26:03 -04:00
parent 2d7a8d1374
commit d1c221da7a
8 changed files with 36 additions and 32 deletions

View File

@ -19,7 +19,7 @@ still_alive.o: still_alive.s \
../asm_routines/lz4_decode.s \ ../asm_routines/lz4_decode.s \
display_art.s display_lyrics.s \ display_art.s display_lyrics.s \
sa_ed.s duet.s SA.ED \ sa_ed.s duet.s SA.ED \
ascii_art.inc \ sa_mb.s ascii_art.inc \
interrupt_handler.s \ interrupt_handler.s \
ascii_art.inc ascii_art_lz4.inc lyrics.inc zp.inc ascii_art.inc ascii_art_lz4.inc lyrics.inc zp.inc
ca65 -o still_alive.o still_alive.s -l still_alive.lst ca65 -o still_alive.o still_alive.s -l still_alive.lst

View File

@ -36,6 +36,7 @@ intial 80 col support: 20191
80 col cursor: 20344 80 col cursor: 20344
strip out some unneeded text printing: 19962 strip out some unneeded text printing: 19962
merge ED and MB code 24993 merge ED and MB code 24993
properly select between versions: 25001
Memory Map Memory Map

BIN
still_alive/TITLE.BAS Normal file

Binary file not shown.

View File

@ -7,17 +7,6 @@ still_alive_ed:
lda #0 lda #0
sta FRAME_COUNT sta FRAME_COUNT
lda #1
sta FORTYCOL
;===========================
; clear both screens
;===========================
; Clear text page0
; jsr HOME
;============================ ;============================
; Draw Lineart around edges ; Draw Lineart around edges
@ -31,9 +20,9 @@ still_alive_ed:
; Setup lyrics ; Setup lyrics
;============================== ;==============================
lda #<(lyrics) lda #<(lyrics_ed)
sta LYRICSL sta LYRICSL
lda #>(lyrics) lda #>(lyrics_ed)
sta LYRICSH sta LYRICSH
@ -51,8 +40,4 @@ still_alive_ed:
; loop forever ; loop forever
;================== ;==================
forever_loop_ed: rts
jmp forever_loop_ed

View File

@ -10,8 +10,6 @@ still_alive_mb:
;============================= ;=============================
; Setup ; Setup
;============================= ;=============================
jsr HOME
jsr TEXT
; init variables ; init variables
@ -21,9 +19,7 @@ still_alive_mb:
sta DECODE_ERROR sta DECODE_ERROR
sta LYRICS_ACTIVE sta LYRICS_ACTIVE
; Testing, let's get 40col working first ; call mockingboard detect?
lda #0
sta FORTYCOL
jsr mockingboard_detect_slot4 ; call detection routine jsr mockingboard_detect_slot4 ; call detection routine
cpx #$1 cpx #$1
@ -135,7 +131,7 @@ only_forty:
;============================ ;============================
; Loop forever ; Main Loop
;============================ ;============================
main_loop: main_loop:
lda DECODE_ERROR lda DECODE_ERROR
@ -180,7 +176,7 @@ check_done:
beq main_loop beq main_loop
forever_loop: forever_loop:
jmp forever_loop rts
@ -312,6 +308,3 @@ page_copy_loop:
;====================== ;======================
; 2+14*256+6+29= 3621 ; 2+14*256+6+29= 3621

View File

@ -3,10 +3,28 @@
.include "zp.inc" .include "zp.inc"
still_alive: still_alive:
;=============================
; Clear screen
;=============================
jsr HOME
jsr TEXT
; See if Mockingboard or Electric Duet
lda USEMB
beq no_mockingboard
jsr still_alive_mb jsr still_alive_mb
jmp reset
no_mockingboard:
jsr still_alive_ed jsr still_alive_ed
reset:
jmp ($3F2) ; warm-start?
; want reboot, not BASIC
;========== ;==========
; main code ; main code

View File

@ -21,4 +21,8 @@
95 PRINT " ----> "; 95 PRINT " ----> ";
100 INPUT A 100 INPUT A
105 IF A<1 OR A>3 THEN PRINT CHR$(7): GOTO 95 105 IF A<1 OR A>3 THEN PRINT CHR$(7): GOTO 95
110 PRINT CHR$(4);"BRUN STILL_ALIVE" 110 ON A GOTO 120,130,140
120 POKE 768,0:POKE 769,1:GOTO 150
130 POKE 768,1:POKE 769,1:GOTO 150
140 POKE 768,1:POKE 769,0
150 PRINT CHR$(4);"BRUN STILL_ALIVE"

View File

@ -116,7 +116,7 @@ COPY_TIME EQU $98
DECOMPRESS_TIME EQU $99 DECOMPRESS_TIME EQU $99
TIME_TAKEN EQU $9A TIME_TAKEN EQU $9A
LYRICS_ACTIVE EQU $9B LYRICS_ACTIVE EQU $9B
FORTYCOL EQU $9C ;FORTYCOL EQU $9C
CURSOR EQU $9D CURSOR EQU $9D
; More zero-page addresses ; More zero-page addresses
@ -153,6 +153,9 @@ OUTL EQU $FE
OUTH EQU $FF OUTH EQU $FF
FORTYCOL EQU $300
USEMB EQU $301
KEYPRESS EQU $C000 KEYPRESS EQU $C000
KEYRESET EQU $C010 KEYRESET EQU $C010