mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-27 11:55:20 +00:00
mist: add ssi263 speech
This commit is contained in:
parent
571dd34d27
commit
2bee1c10b9
@ -161,20 +161,20 @@ mockingboard_found:
|
|||||||
;===========================
|
;===========================
|
||||||
; detect SSI-263 too
|
; detect SSI-263 too
|
||||||
;===========================
|
;===========================
|
||||||
;detect_ssi:
|
detect_ssi:
|
||||||
; lda MB_ADDR_H
|
lda MB_ADDR_H
|
||||||
; and #$87 ; slot
|
and #$87 ; slot
|
||||||
; jsr detect_ssi263
|
jsr detect_ssi263
|
||||||
;
|
|
||||||
; lda irq_count
|
lda irq_count
|
||||||
; beq ssi_not_found
|
beq ssi_not_found
|
||||||
;
|
|
||||||
; lda #'Y'+$80
|
lda #'Y'+$80
|
||||||
; sta $7d0+39 ; 23,39
|
sta $7d0+39 ; 23,39
|
||||||
;
|
|
||||||
; lda #SOUND_SSI263
|
lda #SOUND_SSI263
|
||||||
; ora SOUND_STATUS
|
ora SOUND_STATUS
|
||||||
; sta SOUND_STATUS
|
sta SOUND_STATUS
|
||||||
|
|
||||||
ssi_not_found:
|
ssi_not_found:
|
||||||
|
|
||||||
@ -290,6 +290,58 @@ reload_everything:
|
|||||||
lda #0
|
lda #0
|
||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
|
|
||||||
|
|
||||||
|
;===================================
|
||||||
|
; Cyan Logo
|
||||||
|
;===================================
|
||||||
|
; missing most of the animation
|
||||||
|
; also missing (good) music
|
||||||
|
|
||||||
|
; play music if mockingboard
|
||||||
|
|
||||||
|
lda SOUND_STATUS
|
||||||
|
and #SOUND_MOCKINGBOARD
|
||||||
|
beq cyan_title_nomb
|
||||||
|
|
||||||
|
cyan_title_mb:
|
||||||
|
|
||||||
|
; cli
|
||||||
|
|
||||||
|
; First
|
||||||
|
; ldx #<cyan1_lzsa
|
||||||
|
; ldy #>cyan1_lzsa
|
||||||
|
; lda #$FF
|
||||||
|
; jsr draw_and_wait
|
||||||
|
|
||||||
|
; Second
|
||||||
|
; ldx #<cyan2_lzsa
|
||||||
|
; ldy #>cyan2_lzsa
|
||||||
|
; lda #$FE
|
||||||
|
; jsr draw_and_wait
|
||||||
|
|
||||||
|
jsr mockingboard_disable_interrupt ; disable music
|
||||||
|
|
||||||
|
jsr clear_ay_both
|
||||||
|
|
||||||
|
jmp cyan_title_done
|
||||||
|
|
||||||
|
cyan_title_nomb:
|
||||||
|
; First
|
||||||
|
; ldx #<cyan1_lzsa
|
||||||
|
; ldy #>cyan1_lzsa
|
||||||
|
; lda #20
|
||||||
|
; jsr draw_and_wait
|
||||||
|
|
||||||
|
; Second
|
||||||
|
; ldx #<cyan2_lzsa
|
||||||
|
; ldy #>cyan2_lzsa
|
||||||
|
; lda #40
|
||||||
|
; jsr draw_and_wait
|
||||||
|
cyan_title_done:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
; M Y S T letters
|
; M Y S T letters
|
||||||
;===================================
|
;===================================
|
||||||
@ -327,9 +379,25 @@ reload_everything:
|
|||||||
|
|
||||||
bit TEXTGR ; split text/gr
|
bit TEXTGR ; split text/gr
|
||||||
|
|
||||||
|
fissure_speech:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
and #SOUND_SSI263
|
||||||
|
beq fissure_no_speech
|
||||||
|
|
||||||
|
lda ssi263_slot
|
||||||
|
jsr ssi263_speech_init
|
||||||
|
|
||||||
|
lda #<myst_fissure
|
||||||
|
sta SPEECH_PTRL
|
||||||
|
lda #>myst_fissure
|
||||||
|
sta SPEECH_PTRH
|
||||||
|
|
||||||
|
jsr ssi263_speak
|
||||||
|
fissure_no_speech:
|
||||||
|
|
||||||
ldx #<fissure_lzsa
|
ldx #<fissure_lzsa
|
||||||
ldy #>fissure_lzsa
|
ldy #>fissure_lzsa
|
||||||
lda #50
|
lda #150
|
||||||
jsr draw_and_wait
|
jsr draw_and_wait
|
||||||
|
|
||||||
|
|
||||||
@ -337,42 +405,107 @@ reload_everything:
|
|||||||
; FISSURE_BOOK_SMALL: starry expanse...
|
; FISSURE_BOOK_SMALL: starry expanse...
|
||||||
;===================================
|
;===================================
|
||||||
|
|
||||||
|
starry_speech:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
and #SOUND_SSI263
|
||||||
|
beq starry_no_speech
|
||||||
|
|
||||||
|
lda #<myst_starry
|
||||||
|
sta SPEECH_PTRL
|
||||||
|
lda #>myst_starry
|
||||||
|
sta SPEECH_PTRH
|
||||||
|
|
||||||
|
jsr ssi263_speak
|
||||||
|
starry_no_speech:
|
||||||
|
|
||||||
ldx #<fissure_book_small_lzsa
|
ldx #<fissure_book_small_lzsa
|
||||||
ldy #>fissure_book_small_lzsa
|
ldy #>fissure_book_small_lzsa
|
||||||
lda #50
|
lda #115
|
||||||
jsr draw_and_wait
|
jsr draw_and_wait
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
; FISSURE_BOOK_BIG: I have tried to speculate...
|
; FISSURE_BOOK_BIG: I have tried to speculate...
|
||||||
;===================================
|
;===================================
|
||||||
|
|
||||||
|
speculate_speech:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
and #SOUND_SSI263
|
||||||
|
beq speculate_no_speech
|
||||||
|
|
||||||
|
lda #<myst_speculate
|
||||||
|
sta SPEECH_PTRL
|
||||||
|
lda #>myst_speculate
|
||||||
|
sta SPEECH_PTRH
|
||||||
|
|
||||||
|
jsr ssi263_speak
|
||||||
|
speculate_no_speech:
|
||||||
|
|
||||||
ldx #<fissure_book_big_lzsa
|
ldx #<fissure_book_big_lzsa
|
||||||
ldy #>fissure_book_big_lzsa
|
ldy #>fissure_book_big_lzsa
|
||||||
lda #50
|
lda #150
|
||||||
jsr draw_and_wait
|
jsr draw_and_wait
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
; FALLING_LEFT: Still, the question...
|
; FALLING_LEFT: Still, the question...
|
||||||
;===================================
|
;===================================
|
||||||
|
|
||||||
|
unsettling_speech:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
and #SOUND_SSI263
|
||||||
|
beq unsettling_no_speech
|
||||||
|
|
||||||
|
lda #<myst_unsettling
|
||||||
|
sta SPEECH_PTRL
|
||||||
|
lda #>myst_unsettling
|
||||||
|
sta SPEECH_PTRH
|
||||||
|
|
||||||
|
jsr ssi263_speak
|
||||||
|
unsettling_no_speech:
|
||||||
|
|
||||||
ldx #<falling_left_lzsa
|
ldx #<falling_left_lzsa
|
||||||
ldy #>falling_left_lzsa
|
ldy #>falling_left_lzsa
|
||||||
lda #50
|
lda #128
|
||||||
jsr draw_and_wait
|
jsr draw_and_wait
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
; FALLING_RIGHT: I know my aprehensions...
|
; FALLING_RIGHT: I know my aprehensions...
|
||||||
;===================================
|
;===================================
|
||||||
|
|
||||||
|
allayed_speech:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
and #SOUND_SSI263
|
||||||
|
beq allayed_no_speech
|
||||||
|
|
||||||
|
lda #<myst_allayed
|
||||||
|
sta SPEECH_PTRL
|
||||||
|
lda #>myst_allayed
|
||||||
|
sta SPEECH_PTRH
|
||||||
|
|
||||||
|
jsr ssi263_speak
|
||||||
|
allayed_no_speech:
|
||||||
|
|
||||||
ldx #<falling_right_lzsa
|
ldx #<falling_right_lzsa
|
||||||
ldy #>falling_right_lzsa
|
ldy #>falling_right_lzsa
|
||||||
lda #50
|
lda #143
|
||||||
jsr draw_and_wait
|
jsr draw_and_wait
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
; BOOK_AIR : The ending...
|
; BOOK_AIR : The ending...
|
||||||
;===================================
|
;===================================
|
||||||
|
|
||||||
|
written_speech:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
and #SOUND_SSI263
|
||||||
|
beq written_no_speech
|
||||||
|
|
||||||
|
lda #<myst_written
|
||||||
|
sta SPEECH_PTRL
|
||||||
|
lda #>myst_written
|
||||||
|
sta SPEECH_PTRH
|
||||||
|
|
||||||
|
jsr ssi263_speak
|
||||||
|
written_no_speech:
|
||||||
|
|
||||||
ldx #<book_air_lzsa
|
ldx #<book_air_lzsa
|
||||||
ldy #>book_air_lzsa
|
ldy #>book_air_lzsa
|
||||||
lda #15
|
lda #15
|
||||||
@ -593,6 +726,12 @@ really_exit:
|
|||||||
.include "interrupt_handler.s"
|
.include "interrupt_handler.s"
|
||||||
.include "pt3_lib_mockingboard_detect.s"
|
.include "pt3_lib_mockingboard_detect.s"
|
||||||
|
|
||||||
|
; ssi-263 code
|
||||||
|
.include "ssi263.inc"
|
||||||
|
.include "ssi263_simple_speech.s"
|
||||||
|
.include "ssi263_detect.s"
|
||||||
|
.include "title_speech.s"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.include "wait_a_bit.s"
|
.include "wait_a_bit.s"
|
||||||
@ -634,6 +773,27 @@ get_mist_book:
|
|||||||
lda SOUND_STATUS
|
lda SOUND_STATUS
|
||||||
and #SOUND_MOCKINGBOARD
|
and #SOUND_MOCKINGBOARD
|
||||||
beq skip_start_music
|
beq skip_start_music
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta DONE_PLAYING
|
||||||
|
|
||||||
|
; lda #<theme_music_compressed
|
||||||
|
; sta getsrc_smc+1
|
||||||
|
; lda #>theme_music_compressed
|
||||||
|
; sta getsrc_smc+2
|
||||||
|
|
||||||
|
; lda #$BA ; decompress to $BA00
|
||||||
|
|
||||||
|
; jsr decompress_lzsa2_fast
|
||||||
|
|
||||||
|
; re-enable interrupts as SSI code probably broke things
|
||||||
|
|
||||||
|
jsr mockingboard_init
|
||||||
|
jsr reset_ay_both
|
||||||
|
jsr mockingboard_setup_interrupt
|
||||||
|
|
||||||
|
jsr pt3_init_song
|
||||||
|
|
||||||
cli
|
cli
|
||||||
skip_start_music:
|
skip_start_music:
|
||||||
|
|
||||||
|
100
games/mist/ssi263.inc
Normal file
100
games/mist/ssi263.inc
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
;SPEECH_PTRL = $FE
|
||||||
|
;SPEECH_PTRH = $FF
|
||||||
|
|
||||||
|
SSI263_BASE = $40 ; First speech chip
|
||||||
|
SSI263_DRP = SSI263_BASE+$00 ; Reg0, Duration/Phoneme
|
||||||
|
SSI263_I = SSI263_BASE+$01 ; Reg1, Inflection
|
||||||
|
SSI263_RI = SSI263_BASE+$02 ; Reg2, Rate/Inflection
|
||||||
|
SSI263_CAA = SSI263_BASE+$03 ; Reg3, Control/Articulation/Amplitude
|
||||||
|
SSI263_F = SSI263_BASE+$04 ; Reg4, Filter Frequency
|
||||||
|
VIA6522_DDRB1 = $02 ; 6522 Data direction port B register
|
||||||
|
VIA6522_DDRA1 = $03 ; 6522 Data direction port A register
|
||||||
|
VIA6522_PCR2 = $8C ; 6522 #2 Peripheral control register
|
||||||
|
VIA6522_IFR2 = $8D ; 6522 #2 Interrupt flag register
|
||||||
|
VIA6522_IER2 = $8E ; 6522 #2 Interrupt enable register
|
||||||
|
|
||||||
|
VIA6522_IFR2_CA1 = $02
|
||||||
|
|
||||||
|
VIA6522_IER2_SET = $80
|
||||||
|
VIA6522_IER2_CA1 = $02
|
||||||
|
|
||||||
|
VIA6522_PCR2_CA2_LOW = $0C
|
||||||
|
VIA6522_PCR2_CA2_HI = $0E
|
||||||
|
|
||||||
|
VIA6522_PCR2_CA1_NEG = $00
|
||||||
|
VIA6522_PCR2_CA1_POS = $01
|
||||||
|
|
||||||
|
|
||||||
|
SSI263_CAA_CTL = $80 ; control bit
|
||||||
|
|
||||||
|
SSI263_DRP_TRANSITIONED_INFLECTION = $C0
|
||||||
|
SSI263_DRP_PHONEME_TIMING_IMMEDIATE_INFLECTION = $80
|
||||||
|
SSI263_DRP_FRAME_TIMING_IMMEDIATE_INFLECTION = $40
|
||||||
|
SSI263_DRP_DISABLE_AR = $00
|
||||||
|
|
||||||
|
DURATION_LONG = $00
|
||||||
|
|
||||||
|
PHONEME_PAUSE = $00 ; Pause
|
||||||
|
PHONEME_E = $01 ; mEEt
|
||||||
|
PHONEME_E1 = $02 ; bEnt
|
||||||
|
PHONEME_Y = $03 ; bEfore
|
||||||
|
PHONEME_YI = $04 ; Year
|
||||||
|
PHONEME_AY = $05 ; plEAse
|
||||||
|
PHONEME_IE = $06 ; anY
|
||||||
|
PHONEME_I = $07 ; sIx
|
||||||
|
PHONEME_A = $08 ; mAde
|
||||||
|
PHONEME_AI = $09 ; cAre
|
||||||
|
PHONEME_EH = $0A ; nEst
|
||||||
|
PHONEME_EH1 = $0B ; bElt
|
||||||
|
PHONEME_AE = $0C ; dAd
|
||||||
|
PHONEME_AE1 = $0D ; After
|
||||||
|
PHONEME_AH = $0E ; gOt
|
||||||
|
PHONEME_AH1 = $0F ; fAther
|
||||||
|
PHONEME_AW = $10 ; Office
|
||||||
|
PHONEME_O = $11 ; stOre
|
||||||
|
PHONEME_OU = $12 ; bOAt
|
||||||
|
PHONEME_OO = $13 ; lOOk
|
||||||
|
PHONEME_IU = $14 ; yOU
|
||||||
|
PHONEME_IU1 = $15 ; cOUld
|
||||||
|
PHONEME_U = $16 ; tUne
|
||||||
|
PHONEME_U1 = $17 ; cartOOn
|
||||||
|
PHONEME_UH = $18 ; wOnder
|
||||||
|
PHONEME_UH1 = $19 ; lOve
|
||||||
|
PHONEME_UH2 = $1A ; whAt
|
||||||
|
PHONEME_UH3 = $1B ; nUt
|
||||||
|
PHONEME_ER = $1C ; bIRd
|
||||||
|
PHONEME_R = $1D ; Roof
|
||||||
|
PHONEME_R1 = $1E ; Rug
|
||||||
|
PHONEME_R2 = $1F ; muetteR (German)
|
||||||
|
PHONEME_L = $20 ; Lift
|
||||||
|
PHONEME_L1 = $21 ; pLay
|
||||||
|
PHONEME_LF = $22 ; falL (final)
|
||||||
|
PHONEME_W = $23 ; Water
|
||||||
|
PHONEME_B = $24 ; Bag
|
||||||
|
PHONEME_D = $25 ; paiD
|
||||||
|
PHONEME_KV = $26 ; taG (glottal stop)
|
||||||
|
PHONEME_P = $27 ; Pen
|
||||||
|
PHONEME_T = $28 ; Tart
|
||||||
|
PHONEME_K = $29 ; Kit
|
||||||
|
PHONEME_HV = $2A ; (hold vocal)
|
||||||
|
PHONEME_HVC = $2B ; (hold vocal closure)
|
||||||
|
PHONEME_HF = $2C ; Heart
|
||||||
|
PHONEME_HFC = $2D ; (hold frictive closure)
|
||||||
|
PHONEME_HN = $2E ; (hold nasal)
|
||||||
|
PHONEME_Z = $2F ; Zero
|
||||||
|
PHONEME_S = $30 ; Same
|
||||||
|
PHONEME_J = $31 ; meaSure
|
||||||
|
PHONEME_SCH = $32 ; SHip
|
||||||
|
PHONEME_V = $33 ; Very
|
||||||
|
PHONEME_F = $34 ; Four
|
||||||
|
PHONEME_THV = $35 ; THere
|
||||||
|
PHONEME_TH = $36 ; wiTH
|
||||||
|
PHONEME_M = $37 ; More
|
||||||
|
PHONEME_N = $38 ; NiNe
|
||||||
|
PHONEME_NG = $39 ; raNG
|
||||||
|
PHONEME_CA = $3A ; mAerchen (German)
|
||||||
|
PHONEME_COH = $3B ; lOwe (French)
|
||||||
|
PHONEME_CU = $3C ; fUenf (German)
|
||||||
|
PHONEME_CUH = $3D ; menU (French)
|
||||||
|
PHONEME_E2 = $3E ; bittE (German)
|
||||||
|
PHONEME_LB = $3F ; Lube
|
137
games/mist/ssi263_detect.s
Normal file
137
games/mist/ssi263_detect.s
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
; This code detects a SSI263 chip on a Mockingboard
|
||||||
|
; it does this by trying to enable the chip and waiting for
|
||||||
|
; the SSI-263 to signal an interrupt when done.
|
||||||
|
; If the interrupt never comes then assume no SSI-263 is present
|
||||||
|
; The code assumes the SSI-263 is hooked to VIA6522 #2 (?)
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
;=============================
|
||||||
|
; detect SSI263
|
||||||
|
;=============================
|
||||||
|
;=============================
|
||||||
|
; A = slot of mockingboard
|
||||||
|
|
||||||
|
detect_ssi263:
|
||||||
|
sta ssi263_slot ; store for later
|
||||||
|
|
||||||
|
and #$7
|
||||||
|
ora #$c0 ; turn slot number into address
|
||||||
|
sta ssid_wc_smc1+2 ; update the read/write routines
|
||||||
|
|
||||||
|
sei ; disable IRQ
|
||||||
|
|
||||||
|
lda $3fe ; backup the IRQ handler
|
||||||
|
sta irq1backup
|
||||||
|
lda $3ff
|
||||||
|
sta irq2backup
|
||||||
|
|
||||||
|
lda #<mb_irq ; point IRQ handler to our code
|
||||||
|
sta $3fe
|
||||||
|
lda #>mb_irq
|
||||||
|
sta $3ff
|
||||||
|
|
||||||
|
; Set 6522#2 peripheral control register to recognize the signal
|
||||||
|
; from the speech chip.
|
||||||
|
lda #(VIA6522_PCR2_CA2_LOW|VIA6522_PCR2_CA1_NEG)
|
||||||
|
ldx #VIA6522_PCR2
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; Raise control bit in register 3 of SSI-263
|
||||||
|
lda #SSI263_CAA_CTL
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; Transitioned inflection (when CTL is toggled)
|
||||||
|
lda #SSI263_DRP_TRANSITIONED_INFLECTION
|
||||||
|
ldx #SSI263_DRP
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; Lower control bit in SSI-263
|
||||||
|
lda #$70 ; CTL=0, T=6, AMP=0
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; Enable 6522 interrupt on input CA2
|
||||||
|
lda #(VIA6522_IER2_SET|VIA6522_IER2_CA1)
|
||||||
|
ldx #VIA6522_IER2
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
ldx #0 ; clear counts
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
cli ; enable interrupts
|
||||||
|
|
||||||
|
wait_irq:
|
||||||
|
lda irq_count ; see if irq happened
|
||||||
|
|
||||||
|
bne got_irq
|
||||||
|
|
||||||
|
iny ; otherwise increase counts
|
||||||
|
bne wait_irq
|
||||||
|
inx ;
|
||||||
|
bne wait_irq
|
||||||
|
|
||||||
|
got_irq:
|
||||||
|
sei ; disable interrupts
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; detection IRQ handler
|
||||||
|
;========================
|
||||||
|
mb_irq:
|
||||||
|
txa ; save X
|
||||||
|
pha
|
||||||
|
|
||||||
|
; Clear the 6522 interrupt flag
|
||||||
|
lda #VIA6522_IFR2_CA1
|
||||||
|
ldx #VIA6522_IFR2
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; disable speech
|
||||||
|
|
||||||
|
; Raise control bit in register 3 of SSI-263
|
||||||
|
lda #SSI263_CAA_CTL
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; Disable talking on SSI-263 (when CTL is toggled)
|
||||||
|
lda #SSI263_DRP_DISABLE_AR
|
||||||
|
ldx #SSI263_DRP
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; Lower control bit in SSI-263
|
||||||
|
lda #$70 ; also T=7?
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
; increment our irq count
|
||||||
|
|
||||||
|
inc irq_count
|
||||||
|
|
||||||
|
; Disable 6522 interrupts
|
||||||
|
lda #VIA6522_IER2_CA1
|
||||||
|
ldx #VIA6522_IER2
|
||||||
|
jsr ssi263_d_write_chip
|
||||||
|
|
||||||
|
pla ; restore X
|
||||||
|
tax
|
||||||
|
|
||||||
|
lda $45 ; restore accumulator
|
||||||
|
|
||||||
|
rti ; return from interrupt
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; write_chip
|
||||||
|
;========================
|
||||||
|
ssi263_d_write_chip:
|
||||||
|
ssid_wc_smc1:
|
||||||
|
sta $C000,X
|
||||||
|
rts
|
||||||
|
|
||||||
|
irq_count: .byte $00
|
||||||
|
irq1backup: .byte $00
|
||||||
|
irq2backup: .byte $00
|
||||||
|
ssi263_slot: .byte $00
|
241
games/mist/ssi263_simple_speech.s
Normal file
241
games/mist/ssi263_simple_speech.s
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
|
||||||
|
;.include "ssi263.inc"
|
||||||
|
|
||||||
|
; Simple speech routine for ssi-263
|
||||||
|
|
||||||
|
; to save space we only change the Phoneme/Delay each time, we don't
|
||||||
|
; mess with the other registers
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; ssi263_write_chip
|
||||||
|
;========================
|
||||||
|
ssi263_write_chip:
|
||||||
|
wc_smc1:
|
||||||
|
sta $C000,X
|
||||||
|
rts
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; read_chip
|
||||||
|
;========================
|
||||||
|
ssi263_read_chip:
|
||||||
|
rc_smc1:
|
||||||
|
lda $C000,X
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; ssi263_speech_init
|
||||||
|
;========================
|
||||||
|
; A = slot number of mockingboard
|
||||||
|
ssi263_speech_init:
|
||||||
|
sei ; disable interrupts
|
||||||
|
|
||||||
|
and #$7
|
||||||
|
ora #$c0 ; turn slot number into address
|
||||||
|
sta wc_smc1+2 ; update the read/write routines
|
||||||
|
sta rc_smc1+2
|
||||||
|
|
||||||
|
; Set 6522#2 peripheral control register to recognize the signal
|
||||||
|
; from the speech chip.
|
||||||
|
lda #(VIA6522_PCR2_CA2_LOW|VIA6522_PCR2_CA1_NEG)
|
||||||
|
ldx #VIA6522_PCR2
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
|
||||||
|
lda #<ssi263_speech_irq ; point IRQ handler to our code
|
||||||
|
sta $3fe
|
||||||
|
lda #>ssi263_speech_irq
|
||||||
|
sta $3ff
|
||||||
|
|
||||||
|
|
||||||
|
; set defaults
|
||||||
|
|
||||||
|
; filter frequency
|
||||||
|
lda #$E9
|
||||||
|
ldx #SSI263_F
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; control / articulation/ amplitude
|
||||||
|
lda #$5C
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; rate/inflection
|
||||||
|
lda #$A8
|
||||||
|
ldx #SSI263_RI
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; inflection
|
||||||
|
lda #$50
|
||||||
|
ldx #SSI263_I
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
cli ; enable interrupts
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; ssi263_speech_shutdown
|
||||||
|
;============================
|
||||||
|
|
||||||
|
ssi263_speech_shutdown:
|
||||||
|
sei
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;=========================
|
||||||
|
; ssi263_speak
|
||||||
|
;=========================
|
||||||
|
; pointer to data in SPEECH_PTRL/H
|
||||||
|
|
||||||
|
ssi263_speak:
|
||||||
|
|
||||||
|
sei ; disable interrupts
|
||||||
|
|
||||||
|
; Set the busy flag
|
||||||
|
lda #$FF
|
||||||
|
sta speech_busy
|
||||||
|
|
||||||
|
; Set peripheral control register to recognize the signal from the
|
||||||
|
; speech chip.
|
||||||
|
lda #(VIA6522_PCR2_CA2_LOW|VIA6522_PCR2_CA1_NEG)
|
||||||
|
ldx #VIA6522_PCR2
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Set transitioned inflection by setting value while toggling CTL
|
||||||
|
|
||||||
|
lda #SSI263_CAA_CTL
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Set transitioned inflection mode in register 0
|
||||||
|
lda #SSI263_DRP_TRANSITIONED_INFLECTION
|
||||||
|
ldx #SSI263_DRP
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Lower control bit
|
||||||
|
lda #$70 ; also T=7
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Enable 6522 interrupts
|
||||||
|
lda #(VIA6522_IER2_SET|VIA6522_IER2_CA1)
|
||||||
|
ldx #VIA6522_IER2
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
cli ; re-enable interrupts
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;====================
|
||||||
|
; speech interrupt
|
||||||
|
;====================
|
||||||
|
ssi263_speech_irq:
|
||||||
|
|
||||||
|
php ; save flags
|
||||||
|
cld
|
||||||
|
|
||||||
|
pha ; save A
|
||||||
|
txa
|
||||||
|
pha ; save X
|
||||||
|
tya
|
||||||
|
pha ; save Y
|
||||||
|
|
||||||
|
; inc $0404 ; irq indicator on screen
|
||||||
|
|
||||||
|
; be sure it was a 6522#2 interrupt
|
||||||
|
ldx #VIA6522_IFR2
|
||||||
|
jsr ssi263_read_chip
|
||||||
|
bmi have_interrupt
|
||||||
|
|
||||||
|
; wasn't us, return to caller
|
||||||
|
; this assumes we can handle multiple interrupt sources
|
||||||
|
|
||||||
|
jmp end_interrupt
|
||||||
|
|
||||||
|
have_interrupt:
|
||||||
|
; Clear the 6522#2 CA interrupt flag
|
||||||
|
lda #VIA6522_IFR2_CA1
|
||||||
|
ldx #VIA6522_IFR2
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Check if done with speech
|
||||||
|
ldy #0
|
||||||
|
lda (SPEECH_PTRL),Y
|
||||||
|
cmp #$ff
|
||||||
|
beq speech_end
|
||||||
|
|
||||||
|
not_end:
|
||||||
|
|
||||||
|
; Set the speech playing flag
|
||||||
|
lda #$ff
|
||||||
|
sta speech_playing
|
||||||
|
|
||||||
|
|
||||||
|
ldy #$00
|
||||||
|
; Get the next data
|
||||||
|
lda (SPEECH_PTRL),Y
|
||||||
|
ldx #SSI263_DRP ; duration/phoneme
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Next data (inc 16 bit)
|
||||||
|
inc SPEECH_PTRL
|
||||||
|
bne no_oflo
|
||||||
|
inc SPEECH_PTRH
|
||||||
|
no_oflo:
|
||||||
|
|
||||||
|
; Finish the interrupt handler
|
||||||
|
jmp end_interrupt
|
||||||
|
|
||||||
|
speech_end:
|
||||||
|
|
||||||
|
; If at the end, turn everything off
|
||||||
|
|
||||||
|
; Toggle CTL while DR set to disable A/!R
|
||||||
|
|
||||||
|
lda #SSI263_CAA_CTL
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
lda #SSI263_DRP_DISABLE_AR
|
||||||
|
ldx #SSI263_DRP
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Zero amplitude
|
||||||
|
lda #$70
|
||||||
|
ldx #SSI263_CAA
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
; Clear busy and playing flags
|
||||||
|
lda #$00
|
||||||
|
sta speech_busy
|
||||||
|
sta speech_playing
|
||||||
|
|
||||||
|
; Disable interrupt in 6522
|
||||||
|
lda #VIA6522_IER2_CA1
|
||||||
|
ldx #VIA6522_IER2
|
||||||
|
jsr ssi263_write_chip
|
||||||
|
|
||||||
|
end_interrupt:
|
||||||
|
|
||||||
|
pla
|
||||||
|
tay ; restore Y
|
||||||
|
pla
|
||||||
|
tax ; restore X
|
||||||
|
|
||||||
|
pla ; restore A
|
||||||
|
|
||||||
|
ssi_interrupt_smc:
|
||||||
|
lda $45 ; restore A (II+/IIe)
|
||||||
|
|
||||||
|
plp ; restore flags
|
||||||
|
|
||||||
|
rti ; return from interrupt
|
||||||
|
|
||||||
|
speech_busy: .byte $00
|
||||||
|
speech_playing: .byte $00
|
||||||
|
|
@ -36,7 +36,7 @@ text_loop:
|
|||||||
|
|
||||||
; 0123456789012345678901234567890123456789
|
; 0123456789012345678901234567890123456789
|
||||||
boot_message:
|
boot_message:
|
||||||
.byte 0,0, "LOADING MIST V1.02",0
|
.byte 0,0, "LOADING MIST V1.03",0
|
||||||
.byte 0,3, "CONTROLS:",0
|
.byte 0,3, "CONTROLS:",0
|
||||||
.byte 5,4, "MOVE CURSOR : ARROWS OR WASD",0
|
.byte 5,4, "MOVE CURSOR : ARROWS OR WASD",0
|
||||||
.byte 5,5, "FORWARD/ACTION : RETURN OR SPACE",0
|
.byte 5,5, "FORWARD/ACTION : RETURN OR SPACE",0
|
||||||
|
815
games/mist/title_speech.s
Normal file
815
games/mist/title_speech.s
Normal file
@ -0,0 +1,815 @@
|
|||||||
|
;
|
||||||
|
; myst title speech
|
||||||
|
;
|
||||||
|
; Getting text-to-speech on a ssi-263 equipped mockigboard
|
||||||
|
; for Myst
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; the document
|
||||||
|
; "Phonetic Speech Dictionary for the SC-01 Speech Synthesizer"
|
||||||
|
; sc01-dictionary.pdf
|
||||||
|
; was very helpful here
|
||||||
|
|
||||||
|
myst_fissure:
|
||||||
|
; "I REALIZED, THE MOMENT I FELL INTO THE"
|
||||||
|
; "FISSURE, THAT THE BOOK WOULD NOT BE"
|
||||||
|
; "DESTROYED AS I HAD PLANNED."
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_R ; R ; realized
|
||||||
|
.byte PHONEME_E1 ; E1
|
||||||
|
.byte PHONEME_AY ; AY
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_AH1 ; AH1
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA ; ,
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; the
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; moment
|
||||||
|
.byte PHONEME_O ; O1
|
||||||
|
.byte PHONEME_M ; M
|
||||||
|
.byte PHONEME_EH1 ; EH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_F ; F ; fell
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_I ; I1/I3 ; into
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
.byte PHONEME_IU ; UI/UI
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; the
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_F ; F ; fissure
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_SCH ; SCH
|
||||||
|
.byte PHONEME_ER ; ER
|
||||||
|
.byte PHONEME_PAUSE ; PA ; ,
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; that
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; the
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_B ; B ; book
|
||||||
|
.byte PHONEME_OO ; OO1
|
||||||
|
.byte PHONEME_OO ; OO1
|
||||||
|
.byte PHONEME_K ; K
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_W ; W ; would
|
||||||
|
.byte PHONEME_IU1 ; IU1
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_N ; N ; not
|
||||||
|
.byte PHONEME_AH1 ; AH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_B ; B ; be
|
||||||
|
.byte PHONEME_E1 ; E1
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_B ; B ; burninated
|
||||||
|
.byte PHONEME_ER ; ER
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_A ; A
|
||||||
|
.byte PHONEME_A ; A
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AE1 ; AE1 ; as
|
||||||
|
.byte PHONEME_EH1 ; EH3
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; H ; had
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH1 ; EH3
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_P ; P ; planned
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH1 ; EH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte $FF
|
||||||
|
|
||||||
|
|
||||||
|
; "IT CONTINUED FALLING INTO THAT STARRY",0
|
||||||
|
; "EXPANSE OF WHICH I HAD ONLY A",0
|
||||||
|
; "FLEETING GLIMPSE.",0
|
||||||
|
myst_starry:
|
||||||
|
.byte PHONEME_I ; I1 ; It
|
||||||
|
; .byte PHONEME_I3 ; I3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_K ; K ; continued
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_I ; I1
|
||||||
|
; .byte PHONEME_I3 ; I3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
; .byte PHONEME_Y1 ; Y1
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_F ; F ; falling
|
||||||
|
.byte PHONEME_AW ; AW
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_NG ; NG
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_I ; I1/I3 ; into
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
.byte PHONEME_IU ; UI/UI
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; that
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_S ; S ; starry
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_AH1 ; AH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_E1 ; E1
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_EH1 ; EH1 ; expanse
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_K ; K
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_S ; S
|
||||||
|
.byte PHONEME_P ; P
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_UH1 ; UH1 ; of
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_V ; V
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_W ; W ; which
|
||||||
|
.byte PHONEME_I ; I1
|
||||||
|
; .byte PHONEME_I3 ; I3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_SCH ; SCH
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; H ; had
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH1 ; EH3
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_O ; O1 ; only
|
||||||
|
; .byte PHONEME_O2 ; O2
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_UH2 ; UH2 ; a
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_F ; F ; fleeting
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_NG ; NG
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_KV ; G ; glimpse
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_M ; M
|
||||||
|
.byte PHONEME_P ; P
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte $FF
|
||||||
|
|
||||||
|
; "I HAVE TRIED TO SPECULATE WHERE IT MIGHT"
|
||||||
|
; "HAVE LANDED, BUT I MUST ADMIT,"
|
||||||
|
; "HOWEVER-- SUCH CONJECTURE IS FUTILE."
|
||||||
|
myst_speculate:
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; H ; have
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_V ; V
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_T ; T ; tried
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_AH1 ; AH1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_T ; T ; to
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
.byte PHONEME_IU ; UI/UI
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_S ; S ; speculate
|
||||||
|
.byte PHONEME_P ; P
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
; .byte PHONEME_EH3 ; EH3
|
||||||
|
.byte PHONEME_K ; K
|
||||||
|
.byte PHONEME_K ; K
|
||||||
|
; .byte PHONEME_Y1 ; Y1
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
; .byte PHONEME_A1 ; A1
|
||||||
|
.byte PHONEME_AY ; AY
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_W ; W ; where
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_AY ; A2
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_I ; I ; it
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; might
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_AH ; AH2
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; H ; have
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_V ; V
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_L ; L ; landed
|
||||||
|
.byte PHONEME_AH1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_B ; B ; but
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH2 ; UH2
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; must
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH2 ; UH2
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AE1 ; AE1 ; admit
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_M ; M
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; H ; however
|
||||||
|
.byte PHONEME_AH1 ; AH1
|
||||||
|
; .byte PHONEME_O2 ; O2
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
.byte PHONEME_V ; V
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_PAUSE ; PA ; --
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_S ; S ; such
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
; .byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_SCH ; SCH
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_K ; K ; conjecture
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_J ; J
|
||||||
|
.byte PHONEME_E1 ; E1
|
||||||
|
.byte PHONEME_K ; K
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_SCH ; SCH
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_I ; I ; is
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_F ; F ; futile.
|
||||||
|
; .byte PHONEME_Y1 ; Y1
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
; .byte PHONEME_UI ; UI
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_I ; I3
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte $FF
|
||||||
|
|
||||||
|
; "STILL, THE QUESTION ABOUT WHOSE HANDS"
|
||||||
|
; "MIGHT SOMEDAY HOLD MY MYST BOOK ARE"
|
||||||
|
; "UNSETTLING TO ME."
|
||||||
|
myst_unsettling:
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_S ; S ; still
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_PAUSE ; PA ; ,
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; the
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_K ; K ; question
|
||||||
|
.byte PHONEME_W ; W
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
; .byte PHONEME_EH3 ; EH3
|
||||||
|
.byte PHONEME_S ; S
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_SCH ; SCH
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_UH1 ; UH1 ; about
|
||||||
|
.byte PHONEME_B ; B
|
||||||
|
.byte PHONEME_UH2 ; UH2
|
||||||
|
.byte PHONEME_AH ; AH2
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; H ; whose
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; HF ; hands
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; might
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_AH ; AH2
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_S ; S ; someday
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH2 ; UH2
|
||||||
|
.byte PHONEME_M ; M
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_AI ; A1
|
||||||
|
.byte PHONEME_I ; I3
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; HF ; hold
|
||||||
|
.byte PHONEME_O ; O2
|
||||||
|
.byte PHONEME_O ; O2
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; my
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_AH ; AH2
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; MYST
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_S ; S
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_B ; B ; book
|
||||||
|
.byte PHONEME_OO ; OO1
|
||||||
|
.byte PHONEME_OO ; OO1
|
||||||
|
.byte PHONEME_K ; K
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; are
|
||||||
|
.byte PHONEME_UH2 ; UH2
|
||||||
|
.byte PHONEME_ER ; ER
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_UH1 ; UH1 ; unsettling
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_S ; S
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_NG ; NG
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
|
||||||
|
.byte PHONEME_T ; T ; to
|
||||||
|
.byte PHONEME_IU ; IU
|
||||||
|
.byte PHONEME_IU ; UI/UI
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; me
|
||||||
|
.byte PHONEME_E1 ; E1
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte $FF
|
||||||
|
|
||||||
|
; "I KNOW THAT MY APPREHENSIONS MIGHT"
|
||||||
|
; "NEVER BE ALLAYED, AND SO I CLOSE,"
|
||||||
|
; "REALIZING THAT PERHAPS,"
|
||||||
|
myst_allayed:
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_N ; AH1 ; know
|
||||||
|
.byte PHONEME_OO ; OO1
|
||||||
|
.byte PHONEME_O ; O1
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; that
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; my
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_AH ; AH2
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AE1 ; AE1 ; apprehensions
|
||||||
|
.byte PHONEME_P ; P
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_HF ; HF
|
||||||
|
.byte PHONEME_EH ; EH
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_SCH ; SCH
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_M ; M ; might
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_AH ; AH2
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_N ; N ; never
|
||||||
|
.byte PHONEME_EH1 ; EH
|
||||||
|
.byte PHONEME_V ; V
|
||||||
|
.byte PHONEME_R ; R
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_B ; B ; be
|
||||||
|
.byte PHONEME_E1 ; E1
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_UH1 ; UH1 ; allayed
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_A ; A
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_PAUSE ; PA ; ,
|
||||||
|
|
||||||
|
.byte PHONEME_AE1 ; AE1 ; and
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_S ; S ; so
|
||||||
|
.byte PHONEME_OO ; OO
|
||||||
|
.byte PHONEME_O ; O2
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_AH1 ; AH1 ; I
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_K ; K ; close
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_O ; O1
|
||||||
|
.byte PHONEME_U1 ; U1
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_PAUSE ; PA ; ,
|
||||||
|
|
||||||
|
.byte PHONEME_R ; R ; realizing
|
||||||
|
.byte PHONEME_E1 ; E1
|
||||||
|
.byte PHONEME_AY ; AY
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_L ; L
|
||||||
|
.byte PHONEME_AH1 ; AH1
|
||||||
|
.byte PHONEME_Y ; Y
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_NG ; NG
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; that
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_P ; P ; perhaps
|
||||||
|
.byte PHONEME_ER ; ER
|
||||||
|
.byte PHONEME_HF ; HF
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
.byte PHONEME_EH ; EH3
|
||||||
|
.byte PHONEME_P ; P
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte $FF
|
||||||
|
|
||||||
|
; "THE ENDING HAS NOT YET BEEN WRITTEN."
|
||||||
|
myst_written:
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_THV ; THV ; the
|
||||||
|
.byte PHONEME_UH1 ; UH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_EH1 ; EH1 ; ending
|
||||||
|
; .byte PHONEME_EH3 ; EH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_D ; D
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_NG ; NG
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_HF ; H ; has
|
||||||
|
.byte PHONEME_AE1 ; AE1
|
||||||
|
; .byte PHONEME_EH3 ; EH3
|
||||||
|
.byte PHONEME_Z ; Z
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_N ; N ; not
|
||||||
|
.byte PHONEME_AH1 ; AH1
|
||||||
|
.byte PHONEME_UH3 ; UH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_YI ; YI ; yet
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
; .byte PHONEME_EH3 ; EH3
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_B ; B ; been
|
||||||
|
.byte PHONEME_EH1 ; EH1
|
||||||
|
; .byte PHONEME_EH3 ; EH3
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_R ; R ; written
|
||||||
|
.byte PHONEME_I ; I
|
||||||
|
.byte PHONEME_T ; T
|
||||||
|
.byte PHONEME_N ; N
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte PHONEME_PAUSE ; PA
|
||||||
|
.byte $FF
|
@ -4,6 +4,10 @@
|
|||||||
NIBCOUNT = $00
|
NIBCOUNT = $00
|
||||||
APPLEII_MODEL = $01
|
APPLEII_MODEL = $01
|
||||||
|
|
||||||
|
|
||||||
|
SPEECH_PTRL = $17
|
||||||
|
SPEECH_PTRH = $18
|
||||||
|
|
||||||
;; Zero page monitor routines addresses
|
;; Zero page monitor routines addresses
|
||||||
|
|
||||||
WNDLFT = $20
|
WNDLFT = $20
|
||||||
@ -292,8 +296,9 @@ CURRENT_DISK = $DC
|
|||||||
JOYSTICK_ENABLED= $DD
|
JOYSTICK_ENABLED= $DD
|
||||||
SOUND_STATUS = $DE
|
SOUND_STATUS = $DE
|
||||||
SOUND_DISABLED = $80
|
SOUND_DISABLED = $80
|
||||||
SOUND_IN_LC = $01 ; $01 sound effects in language card
|
SOUND_IN_LC = $01 ; $01 sound effects in language card
|
||||||
SOUND_MOCKINGBOARD = $02 ; mockingboard detected
|
SOUND_MOCKINGBOARD = $02 ; mockingboard detected
|
||||||
|
SOUND_SSI263 = $04 ; SSI-263 speech chip detected
|
||||||
|
|
||||||
GRID_PAGE = $DF
|
GRID_PAGE = $DF
|
||||||
ANIMATE_FRAME = $E0
|
ANIMATE_FRAME = $E0
|
||||||
|
@ -533,7 +533,7 @@ speculate_no_speech:
|
|||||||
; "MIGHT SOMEDAY HOLD MY MYST BOOK ARE"
|
; "MIGHT SOMEDAY HOLD MY MYST BOOK ARE"
|
||||||
; "UNSETTLING TO ME."
|
; "UNSETTLING TO ME."
|
||||||
|
|
||||||
unsettling_speech:
|
unsettling_speech:
|
||||||
lda SOUND_STATUS
|
lda SOUND_STATUS
|
||||||
and #SOUND_SSI263
|
and #SOUND_SSI263
|
||||||
beq unsettling_no_speech
|
beq unsettling_no_speech
|
||||||
|
@ -147,7 +147,7 @@ ssi263_speech_irq:
|
|||||||
tya
|
tya
|
||||||
pha ; save Y
|
pha ; save Y
|
||||||
|
|
||||||
inc $0404 ; irq indicator on screen
|
; inc $0404 ; irq indicator on screen
|
||||||
|
|
||||||
; be sure it was a 6522#2 interrupt
|
; be sure it was a 6522#2 interrupt
|
||||||
ldx #VIA6522_IFR2
|
ldx #VIA6522_IFR2
|
||||||
|
Loading…
Reference in New Issue
Block a user