mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-01-03 22:30:09 +00:00
Added Mockingboard frequencies table
This commit is contained in:
parent
ebee7a0844
commit
ca404e2697
@ -280,6 +280,7 @@ MAINZP MAC
|
|||||||
PUT MAINMEM.ENSQ
|
PUT MAINMEM.ENSQ
|
||||||
PUT MAINMEM.ENSQFREQ
|
PUT MAINMEM.ENSQFREQ
|
||||||
PUT MAINMEM.MOCK
|
PUT MAINMEM.MOCK
|
||||||
|
PUT MAINMEM.MOCKFREQ
|
||||||
|
|
||||||
* Automatically save the object file:
|
* Automatically save the object file:
|
||||||
SAV APLCORN.SYSTEM
|
SAV APLCORN.SYSTEM
|
||||||
|
@ -477,9 +477,11 @@ NONOTE LDA CHANENV,X ; See if envelope is in effect
|
|||||||
CMP #$FF
|
CMP #$FF
|
||||||
BNE :RELEASE ; If envelope -> start rel phase
|
BNE :RELEASE ; If envelope -> start rel phase
|
||||||
STZ CURRAMP,X ; Next env will start at zero vol
|
STZ CURRAMP,X ; Next env will start at zero vol
|
||||||
|
PHY ; NEEDED FOR MOCKINGBOARD (NOT SURE WHY)
|
||||||
LDY #$00 ; Zero volume
|
LDY #$00 ; Zero volume
|
||||||
LDA #$00 ; Zero freq
|
LDA #$00 ; Zero freq
|
||||||
JSR AUDIONOTE ; Silence channel Y
|
JSR AUDIONOTE ; Silence channel Y
|
||||||
|
PLY ; NEEDED FOR MOCKINGBOARD (NOT SURE WHY)
|
||||||
RTS
|
RTS
|
||||||
:RELEASE LDA #3 ; Phase 3 is release phase
|
:RELEASE LDA #3 ; Phase 3 is release phase
|
||||||
STA AMPSECT,X ; Force release phase
|
STA AMPSECT,X ; Force release phase
|
||||||
@ -512,24 +514,27 @@ 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
|
||||||
|
|
||||||
|
|
||||||
* Adjust frequency of oscillator
|
* Adjust frequency of oscillator
|
||||||
* 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
|
||||||
|
|
||||||
|
|
||||||
* Adjust amplitude of oscillator
|
* Adjust amplitude of oscillator
|
||||||
* 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
|
||||||
|
|
||||||
|
|
||||||
* Handle envelope tick counter
|
* Handle envelope tick counter
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* (c) Bobbi 2022 GPLv3
|
* (c) Bobbi 2022 GPLv3
|
||||||
*
|
*
|
||||||
* Table of frequency values for Ensoniq
|
* Table of frequency values for Ensoniq
|
||||||
* Generated by freq_table script
|
* Generated by ensq_freq_table script
|
||||||
*
|
*
|
||||||
|
|
||||||
FREQHIGH
|
FREQHIGH
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -131,8 +131,8 @@ MOCKAMP PHX
|
|||||||
* Mockingboard interrupt service routine - just calls generic audio ISR
|
* Mockingboard interrupt service routine - just calls generic audio ISR
|
||||||
MOCKISR CLD
|
MOCKISR CLD
|
||||||
* TODO: Check whether interrupt is from Mockingboard or not
|
* TODO: Check whether interrupt is from Mockingboard or not
|
||||||
BIT MOCK_6522_T1CL ; Clear interrupt
|
BIT MOCK_6522_T1CL ; Clear interrupt
|
||||||
* JSR AUDIOISR
|
JSR AUDIOISR
|
||||||
CLC ; CC indicates we serviced irq
|
CLC ; CC indicates we serviced irq
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
522
mainmem.mockfreq.s
Normal file
522
mainmem.mockfreq.s
Normal file
@ -0,0 +1,522 @@
|
|||||||
|
* MAINMEM.MOCKFREQ.S
|
||||||
|
* (c) Bobbi 2022 GPLv3
|
||||||
|
*
|
||||||
|
* Table of frequency values for Mockingboard
|
||||||
|
* Generated by mock_freq_table script
|
||||||
|
*
|
||||||
|
|
||||||
|
MFREQHIGH
|
||||||
|
DB >1023
|
||||||
|
DB >1008
|
||||||
|
DB >993
|
||||||
|
DB >979
|
||||||
|
DB >965
|
||||||
|
DB >951
|
||||||
|
DB >937
|
||||||
|
DB >923
|
||||||
|
DB >910
|
||||||
|
DB >896
|
||||||
|
DB >883
|
||||||
|
DB >870
|
||||||
|
DB >858
|
||||||
|
DB >845
|
||||||
|
DB >833
|
||||||
|
DB >821
|
||||||
|
DB >809
|
||||||
|
DB >797
|
||||||
|
DB >785
|
||||||
|
DB >774
|
||||||
|
DB >762
|
||||||
|
DB >751
|
||||||
|
DB >740
|
||||||
|
DB >729
|
||||||
|
DB >719
|
||||||
|
DB >708
|
||||||
|
DB >698
|
||||||
|
DB >687
|
||||||
|
DB >677
|
||||||
|
DB >667
|
||||||
|
DB >658
|
||||||
|
DB >648
|
||||||
|
DB >638
|
||||||
|
DB >629
|
||||||
|
DB >620
|
||||||
|
DB >611
|
||||||
|
DB >602
|
||||||
|
DB >593
|
||||||
|
DB >584
|
||||||
|
DB >576
|
||||||
|
DB >567
|
||||||
|
DB >559
|
||||||
|
DB >550
|
||||||
|
DB >542
|
||||||
|
DB >534
|
||||||
|
DB >526
|
||||||
|
DB >519
|
||||||
|
DB >511
|
||||||
|
DB >503
|
||||||
|
DB >496
|
||||||
|
DB >489
|
||||||
|
DB >481
|
||||||
|
DB >474
|
||||||
|
DB >467
|
||||||
|
DB >460
|
||||||
|
DB >454
|
||||||
|
DB >447
|
||||||
|
DB >440
|
||||||
|
DB >434
|
||||||
|
DB >427
|
||||||
|
DB >421
|
||||||
|
DB >415
|
||||||
|
DB >408
|
||||||
|
DB >402
|
||||||
|
DB >396
|
||||||
|
DB >390
|
||||||
|
DB >385
|
||||||
|
DB >379
|
||||||
|
DB >373
|
||||||
|
DB >368
|
||||||
|
DB >362
|
||||||
|
DB >357
|
||||||
|
DB >351
|
||||||
|
DB >346
|
||||||
|
DB >341
|
||||||
|
DB >336
|
||||||
|
DB >331
|
||||||
|
DB >326
|
||||||
|
DB >321
|
||||||
|
DB >316
|
||||||
|
DB >311
|
||||||
|
DB >307
|
||||||
|
DB >302
|
||||||
|
DB >297
|
||||||
|
DB >293
|
||||||
|
DB >288
|
||||||
|
DB >284
|
||||||
|
DB >280
|
||||||
|
DB >276
|
||||||
|
DB >271
|
||||||
|
DB >267
|
||||||
|
DB >263
|
||||||
|
DB >259
|
||||||
|
DB >255
|
||||||
|
DB >251
|
||||||
|
DB >247
|
||||||
|
DB >244
|
||||||
|
DB >240
|
||||||
|
DB >236
|
||||||
|
DB >233
|
||||||
|
DB >229
|
||||||
|
DB >226
|
||||||
|
DB >222
|
||||||
|
DB >219
|
||||||
|
DB >215
|
||||||
|
DB >212
|
||||||
|
DB >209
|
||||||
|
DB >206
|
||||||
|
DB >202
|
||||||
|
DB >199
|
||||||
|
DB >196
|
||||||
|
DB >193
|
||||||
|
DB >190
|
||||||
|
DB >187
|
||||||
|
DB >184
|
||||||
|
DB >181
|
||||||
|
DB >179
|
||||||
|
DB >176
|
||||||
|
DB >173
|
||||||
|
DB >170
|
||||||
|
DB >168
|
||||||
|
DB >165
|
||||||
|
DB >162
|
||||||
|
DB >160
|
||||||
|
DB >157
|
||||||
|
DB >155
|
||||||
|
DB >152
|
||||||
|
DB >150
|
||||||
|
DB >148
|
||||||
|
DB >145
|
||||||
|
DB >143
|
||||||
|
DB >141
|
||||||
|
DB >138
|
||||||
|
DB >136
|
||||||
|
DB >134
|
||||||
|
DB >132
|
||||||
|
DB >130
|
||||||
|
DB >128
|
||||||
|
DB >126
|
||||||
|
DB >124
|
||||||
|
DB >122
|
||||||
|
DB >120
|
||||||
|
DB >118
|
||||||
|
DB >116
|
||||||
|
DB >114
|
||||||
|
DB >112
|
||||||
|
DB >110
|
||||||
|
DB >108
|
||||||
|
DB >107
|
||||||
|
DB >105
|
||||||
|
DB >103
|
||||||
|
DB >101
|
||||||
|
DB >100
|
||||||
|
DB >98
|
||||||
|
DB >96
|
||||||
|
DB >95
|
||||||
|
DB >93
|
||||||
|
DB >92
|
||||||
|
DB >90
|
||||||
|
DB >89
|
||||||
|
DB >87
|
||||||
|
DB >86
|
||||||
|
DB >84
|
||||||
|
DB >83
|
||||||
|
DB >81
|
||||||
|
DB >80
|
||||||
|
DB >79
|
||||||
|
DB >77
|
||||||
|
DB >76
|
||||||
|
DB >75
|
||||||
|
DB >73
|
||||||
|
DB >72
|
||||||
|
DB >71
|
||||||
|
DB >69
|
||||||
|
DB >68
|
||||||
|
DB >67
|
||||||
|
DB >66
|
||||||
|
DB >65
|
||||||
|
DB >63
|
||||||
|
DB >62
|
||||||
|
DB >61
|
||||||
|
DB >60
|
||||||
|
DB >59
|
||||||
|
DB >58
|
||||||
|
DB >57
|
||||||
|
DB >56
|
||||||
|
DB >55
|
||||||
|
DB >54
|
||||||
|
DB >53
|
||||||
|
DB >52
|
||||||
|
DB >51
|
||||||
|
DB >50
|
||||||
|
DB >49
|
||||||
|
DB >48
|
||||||
|
DB >47
|
||||||
|
DB >46
|
||||||
|
DB >45
|
||||||
|
DB >44
|
||||||
|
DB >44
|
||||||
|
DB >43
|
||||||
|
DB >42
|
||||||
|
DB >41
|
||||||
|
DB >40
|
||||||
|
DB >39
|
||||||
|
DB >39
|
||||||
|
DB >38
|
||||||
|
DB >37
|
||||||
|
DB >36
|
||||||
|
DB >36
|
||||||
|
DB >35
|
||||||
|
DB >34
|
||||||
|
DB >33
|
||||||
|
DB >33
|
||||||
|
DB >32
|
||||||
|
DB >31
|
||||||
|
DB >31
|
||||||
|
DB >30
|
||||||
|
DB >29
|
||||||
|
DB >29
|
||||||
|
DB >28
|
||||||
|
DB >27
|
||||||
|
DB >27
|
||||||
|
DB >26
|
||||||
|
DB >25
|
||||||
|
DB >25
|
||||||
|
DB >24
|
||||||
|
DB >24
|
||||||
|
DB >23
|
||||||
|
DB >23
|
||||||
|
DB >22
|
||||||
|
DB >22
|
||||||
|
DB >21
|
||||||
|
DB >20
|
||||||
|
DB >20
|
||||||
|
DB >19
|
||||||
|
DB >19
|
||||||
|
DB >18
|
||||||
|
DB >18
|
||||||
|
DB >17
|
||||||
|
DB >17
|
||||||
|
DB >16
|
||||||
|
DB >16
|
||||||
|
DB >16
|
||||||
|
DB >15
|
||||||
|
DB >15
|
||||||
|
DB >14
|
||||||
|
DB >14
|
||||||
|
DB >13
|
||||||
|
DB >13
|
||||||
|
DB >13
|
||||||
|
DB >12
|
||||||
|
DB >12
|
||||||
|
DB >11
|
||||||
|
DB >11
|
||||||
|
DB >11
|
||||||
|
DB >10
|
||||||
|
|
||||||
|
MFREQLOW
|
||||||
|
DB <1023
|
||||||
|
DB <1008
|
||||||
|
DB <993
|
||||||
|
DB <979
|
||||||
|
DB <965
|
||||||
|
DB <951
|
||||||
|
DB <937
|
||||||
|
DB <923
|
||||||
|
DB <910
|
||||||
|
DB <896
|
||||||
|
DB <883
|
||||||
|
DB <870
|
||||||
|
DB <858
|
||||||
|
DB <845
|
||||||
|
DB <833
|
||||||
|
DB <821
|
||||||
|
DB <809
|
||||||
|
DB <797
|
||||||
|
DB <785
|
||||||
|
DB <774
|
||||||
|
DB <762
|
||||||
|
DB <751
|
||||||
|
DB <740
|
||||||
|
DB <729
|
||||||
|
DB <719
|
||||||
|
DB <708
|
||||||
|
DB <698
|
||||||
|
DB <687
|
||||||
|
DB <677
|
||||||
|
DB <667
|
||||||
|
DB <658
|
||||||
|
DB <648
|
||||||
|
DB <638
|
||||||
|
DB <629
|
||||||
|
DB <620
|
||||||
|
DB <611
|
||||||
|
DB <602
|
||||||
|
DB <593
|
||||||
|
DB <584
|
||||||
|
DB <576
|
||||||
|
DB <567
|
||||||
|
DB <559
|
||||||
|
DB <550
|
||||||
|
DB <542
|
||||||
|
DB <534
|
||||||
|
DB <526
|
||||||
|
DB <519
|
||||||
|
DB <511
|
||||||
|
DB <503
|
||||||
|
DB <496
|
||||||
|
DB <489
|
||||||
|
DB <481
|
||||||
|
DB <474
|
||||||
|
DB <467
|
||||||
|
DB <460
|
||||||
|
DB <454
|
||||||
|
DB <447
|
||||||
|
DB <440
|
||||||
|
DB <434
|
||||||
|
DB <427
|
||||||
|
DB <421
|
||||||
|
DB <415
|
||||||
|
DB <408
|
||||||
|
DB <402
|
||||||
|
DB <396
|
||||||
|
DB <390
|
||||||
|
DB <385
|
||||||
|
DB <379
|
||||||
|
DB <373
|
||||||
|
DB <368
|
||||||
|
DB <362
|
||||||
|
DB <357
|
||||||
|
DB <351
|
||||||
|
DB <346
|
||||||
|
DB <341
|
||||||
|
DB <336
|
||||||
|
DB <331
|
||||||
|
DB <326
|
||||||
|
DB <321
|
||||||
|
DB <316
|
||||||
|
DB <311
|
||||||
|
DB <307
|
||||||
|
DB <302
|
||||||
|
DB <297
|
||||||
|
DB <293
|
||||||
|
DB <288
|
||||||
|
DB <284
|
||||||
|
DB <280
|
||||||
|
DB <276
|
||||||
|
DB <271
|
||||||
|
DB <267
|
||||||
|
DB <263
|
||||||
|
DB <259
|
||||||
|
DB <255
|
||||||
|
DB <251
|
||||||
|
DB <247
|
||||||
|
DB <244
|
||||||
|
DB <240
|
||||||
|
DB <236
|
||||||
|
DB <233
|
||||||
|
DB <229
|
||||||
|
DB <226
|
||||||
|
DB <222
|
||||||
|
DB <219
|
||||||
|
DB <215
|
||||||
|
DB <212
|
||||||
|
DB <209
|
||||||
|
DB <206
|
||||||
|
DB <202
|
||||||
|
DB <199
|
||||||
|
DB <196
|
||||||
|
DB <193
|
||||||
|
DB <190
|
||||||
|
DB <187
|
||||||
|
DB <184
|
||||||
|
DB <181
|
||||||
|
DB <179
|
||||||
|
DB <176
|
||||||
|
DB <173
|
||||||
|
DB <170
|
||||||
|
DB <168
|
||||||
|
DB <165
|
||||||
|
DB <162
|
||||||
|
DB <160
|
||||||
|
DB <157
|
||||||
|
DB <155
|
||||||
|
DB <152
|
||||||
|
DB <150
|
||||||
|
DB <148
|
||||||
|
DB <145
|
||||||
|
DB <143
|
||||||
|
DB <141
|
||||||
|
DB <138
|
||||||
|
DB <136
|
||||||
|
DB <134
|
||||||
|
DB <132
|
||||||
|
DB <130
|
||||||
|
DB <128
|
||||||
|
DB <126
|
||||||
|
DB <124
|
||||||
|
DB <122
|
||||||
|
DB <120
|
||||||
|
DB <118
|
||||||
|
DB <116
|
||||||
|
DB <114
|
||||||
|
DB <112
|
||||||
|
DB <110
|
||||||
|
DB <108
|
||||||
|
DB <107
|
||||||
|
DB <105
|
||||||
|
DB <103
|
||||||
|
DB <101
|
||||||
|
DB <100
|
||||||
|
DB <98
|
||||||
|
DB <96
|
||||||
|
DB <95
|
||||||
|
DB <93
|
||||||
|
DB <92
|
||||||
|
DB <90
|
||||||
|
DB <89
|
||||||
|
DB <87
|
||||||
|
DB <86
|
||||||
|
DB <84
|
||||||
|
DB <83
|
||||||
|
DB <81
|
||||||
|
DB <80
|
||||||
|
DB <79
|
||||||
|
DB <77
|
||||||
|
DB <76
|
||||||
|
DB <75
|
||||||
|
DB <73
|
||||||
|
DB <72
|
||||||
|
DB <71
|
||||||
|
DB <69
|
||||||
|
DB <68
|
||||||
|
DB <67
|
||||||
|
DB <66
|
||||||
|
DB <65
|
||||||
|
DB <63
|
||||||
|
DB <62
|
||||||
|
DB <61
|
||||||
|
DB <60
|
||||||
|
DB <59
|
||||||
|
DB <58
|
||||||
|
DB <57
|
||||||
|
DB <56
|
||||||
|
DB <55
|
||||||
|
DB <54
|
||||||
|
DB <53
|
||||||
|
DB <52
|
||||||
|
DB <51
|
||||||
|
DB <50
|
||||||
|
DB <49
|
||||||
|
DB <48
|
||||||
|
DB <47
|
||||||
|
DB <46
|
||||||
|
DB <45
|
||||||
|
DB <44
|
||||||
|
DB <44
|
||||||
|
DB <43
|
||||||
|
DB <42
|
||||||
|
DB <41
|
||||||
|
DB <40
|
||||||
|
DB <39
|
||||||
|
DB <39
|
||||||
|
DB <38
|
||||||
|
DB <37
|
||||||
|
DB <36
|
||||||
|
DB <36
|
||||||
|
DB <35
|
||||||
|
DB <34
|
||||||
|
DB <33
|
||||||
|
DB <33
|
||||||
|
DB <32
|
||||||
|
DB <31
|
||||||
|
DB <31
|
||||||
|
DB <30
|
||||||
|
DB <29
|
||||||
|
DB <29
|
||||||
|
DB <28
|
||||||
|
DB <27
|
||||||
|
DB <27
|
||||||
|
DB <26
|
||||||
|
DB <25
|
||||||
|
DB <25
|
||||||
|
DB <24
|
||||||
|
DB <24
|
||||||
|
DB <23
|
||||||
|
DB <23
|
||||||
|
DB <22
|
||||||
|
DB <22
|
||||||
|
DB <21
|
||||||
|
DB <20
|
||||||
|
DB <20
|
||||||
|
DB <19
|
||||||
|
DB <19
|
||||||
|
DB <18
|
||||||
|
DB <18
|
||||||
|
DB <17
|
||||||
|
DB <17
|
||||||
|
DB <16
|
||||||
|
DB <16
|
||||||
|
DB <16
|
||||||
|
DB <15
|
||||||
|
DB <15
|
||||||
|
DB <14
|
||||||
|
DB <14
|
||||||
|
DB <13
|
||||||
|
DB <13
|
||||||
|
DB <13
|
||||||
|
DB <12
|
||||||
|
DB <12
|
||||||
|
DB <11
|
||||||
|
DB <11
|
||||||
|
DB <11
|
||||||
|
DB <10
|
32
mock_freq_table
Executable file
32
mock_freq_table
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
#
|
||||||
|
# Make a table of Mockingboard wavelength values (high and low bytes)
|
||||||
|
# Corresponding to the frequency values used in BBC Micro
|
||||||
|
# SOUND statements.
|
||||||
|
#
|
||||||
|
|
||||||
|
d7 = 2349.32 # D7 is pitch value 253
|
||||||
|
clk = 63216.64 # AY-3 clock
|
||||||
|
freqs = [0] * 256
|
||||||
|
divider = [0] * 256
|
||||||
|
|
||||||
|
freqs[253] = d7
|
||||||
|
|
||||||
|
for i in range(254,256):
|
||||||
|
freqs[i] = freqs[i-1] * (2 ** (1 / 48))
|
||||||
|
|
||||||
|
for i in range(252,-1,-1):
|
||||||
|
freqs[i] = freqs[i+1] / (2 ** (1 / 48))
|
||||||
|
|
||||||
|
for i in range(0,256):
|
||||||
|
divider[i] = clk / freqs[i] - 16
|
||||||
|
# print(i, freqs[i], divider[i])
|
||||||
|
|
||||||
|
print("\nMFREQHIGH");
|
||||||
|
for i in range(0,256):
|
||||||
|
print(" DB >{:.0f}".format(divider[i]))
|
||||||
|
|
||||||
|
print("\nMFREQLOW");
|
||||||
|
for i in range(0,256):
|
||||||
|
print(" DB <{:.0f}".format(divider[i]))
|
Loading…
Reference in New Issue
Block a user