wargames: fix to work in cases w/o ssi-263

This commit is contained in:
Vince Weaver 2021-09-19 00:01:26 -04:00
parent 868ae59e44
commit f77b683740
4 changed files with 43 additions and 11 deletions

View File

@ -10,6 +10,7 @@
;=============================
;=============================
; A = slot of mockingboard
; carry set if found
detect_ssi263:
and #$7
@ -68,9 +69,13 @@ wait_irq:
bne wait_irq
inx ;
bne wait_irq
sei
clc ; not found
rts
got_irq:
sei ; disable interrupts
sec ; found
rts

BIN
demos/wargames/wargames.dsk Normal file

Binary file not shown.

View File

@ -13,6 +13,7 @@ VGI_CX = P1
VGI_CY = P2
VGI_CR = P3
SSI_FOUND = $08
NIBCOUNT = $09
CH = $24
CV = $25
@ -68,6 +69,9 @@ wargames:
; jmp exchange ; debug
lda #0
sta DRAW_PAGE
jsr HOME
lda #<header
@ -288,13 +292,21 @@ done_missiles:
jsr HOME
lda #0
sta SSI_FOUND
lda #4 ; assume slot #4 for now
jsr detect_ssi263
bcc no_ssi
lda #1
sta SSI_FOUND
lda #4 ; assume slot #4 for now
jsr ssi263_speech_init
no_ssi:
speech_loop:
@ -314,10 +326,7 @@ speech_loop:
jsr move_and_print
; wait for it to complete
wait1:
lda speech_busy
bne wait1
jsr wait_for_ssi_done
jsr wait_1s
@ -332,9 +341,7 @@ wait1:
jsr move_and_print
wait2:
lda speech_busy
bne wait2
jsr wait_for_ssi_done
jsr wait_1s
@ -350,9 +357,7 @@ wait2:
jsr move_and_print
jsr move_and_print
wait3:
lda speech_busy
bne wait3
jsr wait_for_ssi_done
bit KEYRESET
@ -728,3 +733,12 @@ parabolas:
; status grame x/x y/y dy/dy ddy/ddy destx/desty
wait_for_ssi_done:
lda SSI_FOUND
beq ssi_no_need
wait1:
lda speech_busy
bne wait1
ssi_no_need:
rts

View File

@ -1,3 +1,9 @@
Notes
~~~~~
Some people would like actual S.A.M. support like the original game,
but that takes 9kB! Is there room in TROGDOR for that?
Memory Map
~~~~~~~~~~
@ -18,7 +24,7 @@ $BC-$BF ???
$C0-$CF I/O
$D0-$FF ROM
Disk Map (disk has 35 tracks, each 4k in size)
Disk1 Map (disk has 35 tracks, each 4k in size)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
T 0 = Qboot
T 1 = QLOAD 4813 bytes 19S = 1T3S
@ -31,6 +37,13 @@ T 19 = PEASANT2 ; 79 = 20224
T 24 = PEASANT3
T 29 = PEASANT4
Disk2 Map (disk has 35 tracks, each 4k in size)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
T 19 = TROGDOR 13673 bytes
T 24 = ENDING 19690 bytes 77S = 4T13S
238, to 280 (6)
50 to 135 (85) 6*85=510