mirror of
https://github.com/tomcw/Cybernoid.git
synced 2025-04-09 14:39:29 +00:00
Added assembly-time USE_AYDATA1 define:
. USE_AYDATA1=0: use the Cybernoid noisy section of 48 AY-reg sets - keys (to change A-period): 1...5; Q...T . USE_AYDATA1=1: use just 2 AY-reg sets - keys (to change A-period): 1,2; Q,W
This commit is contained in:
parent
0378adc3b1
commit
25a3efc4ff
@ -6,6 +6,7 @@
|
||||
*=$4000
|
||||
|
||||
AY_UPDATE_OLD = 0
|
||||
USE_AYDATA1 = 0
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
@ -242,7 +243,7 @@ MB1x sty CARD_BASE+SY6522_ORA
|
||||
lda #AY_LATCH
|
||||
MB2x sta CARD_BASE+SY6522_ORB
|
||||
MB3x stx CARD_BASE+SY6522_ORB ; Set INACTIVE
|
||||
MBsmc1 lda AYData,y
|
||||
MBsmc1 lda AYData1,y
|
||||
MB4x sta CARD_BASE+SY6522_ORA
|
||||
lda #AY_WRITE
|
||||
MB5x sta CARD_BASE+SY6522_ORB
|
||||
@ -253,7 +254,7 @@ MB7x sty CARD_BASE+SY6522_ORA
|
||||
lda #AY_LATCH
|
||||
MB8x sta CARD_BASE+SY6522_ORB
|
||||
MB9x stx CARD_BASE+SY6522_ORB ; Set INACTIVE
|
||||
MBsmc2 lda AYData,y
|
||||
MBsmc2 lda AYData1,y
|
||||
MBAx sta CARD_BASE+SY6522_ORA
|
||||
lda #AY_WRITE
|
||||
MBBx sta CARD_BASE+SY6522_ORB
|
||||
@ -398,10 +399,17 @@ SF_GetTimerL:
|
||||
;--------------------------------------
|
||||
|
||||
InitAYData
|
||||
lda #<AYData
|
||||
!if USE_AYDATA1 {
|
||||
lda #<AYData1
|
||||
sta pAYData+0
|
||||
lda #>AYData
|
||||
lda #>AYData1
|
||||
sta pAYData+1
|
||||
} else {
|
||||
lda #<AYData2
|
||||
sta pAYData+0
|
||||
lda #>AYData2
|
||||
sta pAYData+1
|
||||
}
|
||||
rts
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
@ -474,10 +482,14 @@ smc2 lda #$00
|
||||
|
||||
; Odd lines
|
||||
|
||||
lda #<(AYData+14)
|
||||
sta pAYData+0
|
||||
lda #>(AYData+14)
|
||||
sta pAYData+1
|
||||
jsr InitAYData
|
||||
clc
|
||||
lda pAYData+0
|
||||
adc #14 ; 1st odd set
|
||||
sta pAYData+0
|
||||
lda pAYData+1
|
||||
adc #0
|
||||
sta pAYData+1
|
||||
|
||||
lda #<TonesTblOdd
|
||||
sta pTonesTbl+0
|
||||
@ -540,6 +552,7 @@ PrintTones
|
||||
sta $402
|
||||
sta $403
|
||||
|
||||
!if USE_AYDATA1 {
|
||||
lda TonesTbl+1*3+1
|
||||
sta $404
|
||||
lda TonesTbl+1*3+0
|
||||
@ -575,6 +588,16 @@ PrintTones
|
||||
lda #$A0
|
||||
sta $412
|
||||
sta $413
|
||||
} else {
|
||||
lda TonesTbl+2*3+1
|
||||
sta $404
|
||||
lda TonesTbl+2*3+0
|
||||
sta $405
|
||||
|
||||
lda #$A0
|
||||
sta $406
|
||||
sta $407
|
||||
}
|
||||
|
||||
sec
|
||||
rts
|
||||
@ -582,6 +605,7 @@ PrintTones
|
||||
;--------------------------------------
|
||||
|
||||
TonesInc
|
||||
!if USE_AYDATA1 {
|
||||
ldy #0
|
||||
cmp #'1'+$80
|
||||
beq .inc
|
||||
@ -598,6 +622,15 @@ TonesInc
|
||||
iny
|
||||
cmp #'5'+$80
|
||||
beq .inc
|
||||
} else {
|
||||
ldy #0
|
||||
cmp #'1'+$80
|
||||
beq .inc
|
||||
iny ; skip 'evens' end marker
|
||||
iny
|
||||
cmp #'2'+$80
|
||||
beq .inc
|
||||
}
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -629,6 +662,7 @@ TonesInc
|
||||
;--------------------------------------
|
||||
|
||||
TonesDec
|
||||
!if USE_AYDATA1 {
|
||||
ldy #0
|
||||
cmp #'Q'+$80
|
||||
beq .dec
|
||||
@ -645,6 +679,15 @@ TonesDec
|
||||
iny
|
||||
cmp #'T'+$80
|
||||
beq .dec
|
||||
} else {
|
||||
ldy #0
|
||||
cmp #'Q'+$80
|
||||
beq .dec
|
||||
iny ; skip 'evens' end marker
|
||||
iny
|
||||
cmp #'W'+$80
|
||||
beq .dec
|
||||
}
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -676,6 +719,7 @@ TonesDec
|
||||
;--------------------------------------
|
||||
|
||||
InitTones
|
||||
!if USE_AYDATA1 {
|
||||
ldy #0*3
|
||||
lda #$01
|
||||
sta TonesTbl+0*3+1
|
||||
@ -701,12 +745,24 @@ InitTones
|
||||
sta TonesTbl+5*3+1
|
||||
lda #$f4
|
||||
sta TonesTbl+5*3+0
|
||||
} else {
|
||||
ldy #0*3
|
||||
lda #$01
|
||||
sta TonesTbl+0*3+1
|
||||
lda #$e9
|
||||
sta TonesTbl+0*3+0
|
||||
;
|
||||
lda #$00
|
||||
sta TonesTbl+2*3+1
|
||||
lda #$cd
|
||||
sta TonesTbl+2*3+0
|
||||
}
|
||||
rts
|
||||
|
||||
;--------------------------------------
|
||||
|
||||
TonesTbl ; word freq, byte count
|
||||
!if USE_AYDATA1 {
|
||||
; even sets
|
||||
!word $01e9
|
||||
!byte 18
|
||||
@ -725,10 +781,24 @@ TonesTblOdd
|
||||
!byte 6
|
||||
!word $ffff ; end
|
||||
!byte $ff
|
||||
} else {
|
||||
; even sets
|
||||
!word $01e9
|
||||
!byte 1
|
||||
!word $ffff ; end
|
||||
!byte $ff
|
||||
|
||||
TonesTblOdd
|
||||
; odd sets
|
||||
!word $00cd
|
||||
!byte 1
|
||||
!word $ffff ; end
|
||||
!byte $ff
|
||||
}
|
||||
|
||||
;--------------------------------------
|
||||
|
||||
AYData
|
||||
AYData1
|
||||
; A-period C-period Ena BVol Envelope
|
||||
; B-period Noise AVol CVol
|
||||
; Cybernoid AY-regs generated by AppleII Cybernoid (so has Mockingboard tone freqs)
|
||||
@ -783,5 +853,7 @@ AYData
|
||||
!byte $F4,$00,$00,$00,$00,$00,$2F,$3E,$00,$00,$00,$64,$00,$0A
|
||||
!byte $ff,$ff
|
||||
|
||||
AYDataReset
|
||||
!byte $00,$00,$00,$00,$00,$00,$00,$3F,$00,$00,$00,$00,$00,$00 ; Set all channels off
|
||||
AYData2 ; just freq modulation (no amplitude modulation)
|
||||
!byte $E9,$01,$00,$00,$00,$00,$2F,$3E,$0D,$00,$00,$64,$00,$0A
|
||||
!byte $CD,$00,$00,$00,$00,$00,$2F,$3E,$0D,$00,$00,$64,$00,$0A
|
||||
!byte $ff,$ff
|
||||
|
Loading…
x
Reference in New Issue
Block a user