mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-06-28 18:29:33 +00:00
Mockingboard code complete / doesn't work yet.
This commit is contained in:
parent
ca404e2697
commit
77b47d5386
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
|
@ -514,7 +514,7 @@ CHECK4BYTES PHX
|
||||||
* On entry: X - oscillator number 0-3 , A - frequency, Y - amplitude
|
* On entry: X - oscillator number 0-3 , A - frequency, Y - amplitude
|
||||||
* Preserves all registers
|
* Preserves all registers
|
||||||
AUDIONOTE
|
AUDIONOTE
|
||||||
* JMP ENSQNOTE
|
JMP ENSQNOTE
|
||||||
* JMP MOCKNOTE
|
* JMP MOCKNOTE
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ AUDIONOTE
|
||||||
* On entry: X - oscillator number 0-3 , Y - frequency to set
|
* On entry: X - oscillator number 0-3 , Y - frequency to set
|
||||||
* Preserves X & Y
|
* Preserves X & Y
|
||||||
AUDIOFREQ
|
AUDIOFREQ
|
||||||
* JMP ENSQFREQ
|
JMP ENSQFREQ
|
||||||
* JMP MOCKFREQ
|
* JMP MOCKFREQ
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
@ -532,7 +532,7 @@ AUDIOFREQ
|
||||||
* On entry: X - oscillator number 0-3 , Y - amplitude to set
|
* On entry: X - oscillator number 0-3 , Y - amplitude to set
|
||||||
* Preserves X & Y
|
* Preserves X & Y
|
||||||
AUDIOAMP
|
AUDIOAMP
|
||||||
* JMP ENSQAMP
|
JMP ENSQAMP
|
||||||
* JMP MOCKAMP
|
* JMP MOCKAMP
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,8 @@ RESET TSX
|
||||||
RESETHW SEC
|
RESETHW SEC
|
||||||
JSR IDROUTINE ; See if this is a GS
|
JSR IDROUTINE ; See if this is a GS
|
||||||
BCS :NOTGS
|
BCS :NOTGS
|
||||||
* JSR ENSQINIT ; Initialize Ensoniq
|
JSR ENSQINIT ; Initialize Ensoniq
|
||||||
:NOTGS
|
:NOTGS
|
||||||
JSR MOCKINIT ; Initialize Mockingboard (sl4)
|
* JSR MOCKINIT ; Initialize Mockingboard (sl4)
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,8 @@ MOCKINIT LDA #$FF ; All VIA pins output
|
||||||
LDA #MOCK_AY_INACTIVE
|
LDA #MOCK_AY_INACTIVE
|
||||||
STA MOCK_6522_ORB2
|
STA MOCK_6522_ORB2
|
||||||
|
|
||||||
|
* TODO: DEALLOC_INTERRUPT before we QUIT
|
||||||
|
|
||||||
LDA #<MOCKISR ; Set up ISR with ALLOC_INTERRUPT
|
LDA #<MOCKISR ; Set up ISR with ALLOC_INTERRUPT
|
||||||
STA ALLOCPL+2
|
STA ALLOCPL+2
|
||||||
LDA #>MOCKISR
|
LDA #>MOCKISR
|
||||||
|
@ -92,7 +94,13 @@ MOCKSILENT LDX #13 ; Clear all 14 AY-3 regs
|
||||||
* Configure a Mockingboard oscillator to play a note
|
* Configure a Mockingboard oscillator to play a note
|
||||||
* On entry: X - oscillator number 0-3, A - frequency, Y - amplitude
|
* On entry: X - oscillator number 0-3, A - frequency, Y - amplitude
|
||||||
* Preserves all registers
|
* Preserves all registers
|
||||||
MOCKNOTE ; TODO
|
MOCKNOTE PHA
|
||||||
|
PHY
|
||||||
|
TAY
|
||||||
|
JSR MOCKFREQ ; Set frequency
|
||||||
|
PLY
|
||||||
|
JSR MOCKAMP ; Set amplitude
|
||||||
|
PLA
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
|
@ -100,10 +108,18 @@ MOCKNOTE ; TODO
|
||||||
* On entry: X - oscillator number 0-3, Y - frequency to set
|
* On entry: X - oscillator number 0-3, Y - frequency to set
|
||||||
* Preserves X & Y
|
* Preserves X & Y
|
||||||
MOCKFREQ PHX
|
MOCKFREQ PHX
|
||||||
PHY
|
CPX #$00 ; Noise channel
|
||||||
; TODO
|
BEQ :DONE ; TODO: IGNORE NOISE FOR NOW
|
||||||
PLY
|
TXA
|
||||||
PLX
|
DEC A ; Subtract 1
|
||||||
|
ASL ; Double to get fine register
|
||||||
|
TAX
|
||||||
|
LDA MFREQLOW,Y ; LSB of divider
|
||||||
|
JSR MOCKWRT ; Write value to AY-3 register
|
||||||
|
INX ; Add one for course register
|
||||||
|
LDA MFREQHIGH,Y ; MSB of divider
|
||||||
|
JSR MOCKWRT ; Write value to AY-3 register
|
||||||
|
:DONE PLX
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
|
@ -111,7 +127,6 @@ MOCKFREQ PHX
|
||||||
* On entry: X - oscillator number 0-3, Y - amplitude to set
|
* On entry: X - oscillator number 0-3, Y - amplitude to set
|
||||||
* Preserves X & Y
|
* Preserves X & Y
|
||||||
MOCKAMP PHX
|
MOCKAMP PHX
|
||||||
PHY
|
|
||||||
CPX #$00 ; Noise channel
|
CPX #$00 ; Noise channel
|
||||||
BEQ :DONE ; Has no amplitude
|
BEQ :DONE ; Has no amplitude
|
||||||
TXA ; Add 7 to get register
|
TXA ; Add 7 to get register
|
||||||
|
@ -123,9 +138,8 @@ MOCKAMP PHX
|
||||||
LSR
|
LSR
|
||||||
LSR ; Now 0..15
|
LSR ; Now 0..15
|
||||||
JSR MOCKWRT ; Write value to AY-3 register
|
JSR MOCKWRT ; Write value to AY-3 register
|
||||||
PLY
|
:DONE PLX
|
||||||
PLX
|
RTS
|
||||||
:DONE RTS
|
|
||||||
|
|
||||||
|
|
||||||
* Mockingboard interrupt service routine - just calls generic audio ISR
|
* Mockingboard interrupt service routine - just calls generic audio ISR
|
||||||
|
@ -143,8 +157,9 @@ MOCKISR CLD
|
||||||
|
|
||||||
* Write to both AY-3s
|
* Write to both AY-3s
|
||||||
* On entry: A - value, X - register
|
* On entry: A - value, X - register
|
||||||
* On exit: A and X unchanged, Y trashed.
|
* On exit: All regs preserved.
|
||||||
MOCKWRT STX MOCK_6522_ORA1 ; Latch the address
|
MOCKWRT PHY
|
||||||
|
STX MOCK_6522_ORA1 ; Latch the address
|
||||||
STX MOCK_6522_ORA2
|
STX MOCK_6522_ORA2
|
||||||
LDY #MOCK_AY_LATCH_ADDR
|
LDY #MOCK_AY_LATCH_ADDR
|
||||||
STY MOCK_6522_ORB1
|
STY MOCK_6522_ORB1
|
||||||
|
@ -163,5 +178,6 @@ MOCKWRT STX MOCK_6522_ORA1 ; Latch the address
|
||||||
LDY #MOCK_AY_INACTIVE ; Go inactive
|
LDY #MOCK_AY_INACTIVE ; Go inactive
|
||||||
STY MOCK_6522_ORB1
|
STY MOCK_6522_ORB1
|
||||||
STY MOCK_6522_ORB2
|
STY MOCK_6522_ORB2
|
||||||
|
PLY
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user