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