mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-11 09:29:51 +00:00
wargames: fix to work in cases w/o ssi-263
This commit is contained in:
parent
868ae59e44
commit
f77b683740
@ -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
BIN
demos/wargames/wargames.dsk
Normal file
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user