Commit Graph

20 Commits

Author SHA1 Message Date
cybernesto
118279b8e7 Corrected frequency values based on the real CPU Clock frequency
The Mockingboard PSGs base their frequency on the Apple II Clock.
https://groups.google.com/g/comp.sys.apple2/c/lNSdI9GyBgc/m/8tAydOPUAwAJ
Based on this discussion I made a spreadsheet to calculate the correct values of the frequency tables and updated the ones used by the Music Construction Set player.
2020-11-24 18:55:29 +01:00
cybernesto
c1e5c79853 MCS player for the Cricket with ACIA interrupts
The MCS-CRICKET player set the VBL as an interrupt source using the
mouse firmware. This had several limitations, since it is only
available on the //c but also because depending if the //c is a PAL or
NTSC model it would produce a 50Hz or a 60Hz interrupt.

This version uses the ACIA as an interrupt source instead making it
also compatible with other Apple II models with a Super Serial Card.
The interrupts are caused by a Cricket alarm set to 60Hz making it
region independent as well.
2018-05-01 18:54:23 +02:00
cybernesto
bf9cf3485b converted source to lowercase
Less Merlin more acme.
2018-05-01 18:47:16 +02:00
cybernesto
6409b500f9 Renamed acme source
According to the acme naming convention, assembly files should end with
.a
2018-05-01 18:45:48 +02:00
cybernesto
e5dcde2963 ACME compatible source code
Added a version of the interrupt player with all features like slot
independency and ECHO+ support in ACME compatible source format.

Jump table omitted since it is intended for direct use on demos and
such.
2017-12-28 23:03:20 +01:00
cybernesto
f57b0d34d5 Added ECHO+ player
The Street Electronics ECHO+ sound card complemented the popular ECHO
speech card with two AY8913 providing similar sound capabilities to
those offered by the Mockingboard.

A very clever design allowed it to use only one 6522 instead of two but
also made it incompatible with the few titles to ever support
Mockingboard sound, making it even less popular.

This routine considers the slight differences between both making it
possible to play music on this rare card.
2017-05-06 21:29:32 +02:00
cybernesto
521c97d852 Updated player routines
A slot number different that slot 4 can be used for the Mockingboard.
A separate simple player introduced to include the minimum amount of
code required for the routine to work.
2017-05-01 20:23:46 +02:00
cybernesto
cf8e1d1223 Added slot independent Mockingboard play routine
This version expects the SLOT number in the zero page locations $CE,
$CF.
It is kept as a separate version, since it adds significant overhead
for each PSG register write.
2017-05-01 20:21:57 +02:00
cybernesto
97079842da Added simple Applesoft music player and disk image
The disk image contain the sources in Merlin format, assembled binaries
and some songs in BSAVEd format.
2017-04-29 10:19:00 +02:00
cybernesto
74e253b113 Small optimization
Reduced the amount of data required by the parameter initialization
routine.
2017-04-25 19:37:20 +02:00
cybernesto
46d88df216 Renaming
Renames the Music player for the mockingboard to differentiate it from
the Cricket and maybe other future versions.
2017-04-25 19:34:41 +02:00
cybernesto
c3e61e5ba4 Adapted the note frequencies for the Cricket!
The Cricket! uses a 4.9152MHz crystal which it uses to derive the
frequency of the PSGs resulting in 20% higher timer values. The note
values were extracted from the Appendix C of the Cricket! manual.
2017-04-25 19:02:40 +02:00
cybernesto
a084f07bb5 Added first version of the MCS player for the Cricket!
This version requires the Cricket! from Street Electronics to be
connected on the serial port 2 of the Apple //c. It uses the VBL
interrupt to replace the 60Hz Interrupts of the Mockingboard version so
it will run a bit slower on european models with 50Hz. This can be
partly compensated by selecting a lower TEMPO value, even tough it is
not the perfect solution yet.
2017-04-24 20:36:04 +02:00
cybernesto
84c6904ae0 Minor optimizations
* Moved the ENABLE register initialization to the PARAMS array
* Removed unused labels
2017-04-22 17:34:01 +02:00
cybernesto
96c2745384 Moved buffer and song addresses to higher memory
* AY register buffer moved from $300 to $8400. Replaced fixed
references with an EQU.
* Song moved from $4000 to $8900. This allows to keep the whole player
routine including buffers and songs between $8400 and $9200.
* Changed zero page pointers to safer locations.
2017-04-22 09:51:24 +02:00
cybernesto
7b1bc9712b Added PSG initialization
The Mockingboard Developer’s Toolkit included as interrupt based MCS
player that was obviously based on the original sources but included
important corrections. This included the PSG initialization and a
correction the frequency tables.
The code was moved to the address $8500 to match that implementation.
2017-02-05 18:51:03 +01:00
cybernesto
2503860ec5 Added labels to improve readability
Added labels for the ACIA registers.
The interrupt initialization also uses a label instead of a fixed
address to make the player relocatable.
2017-02-05 18:47:55 +01:00
cybernesto
e102e710df Added missing labels
Now the sources can be compiled without errors with Merlin.
2017-02-05 18:45:30 +01:00
cybernesto
0c39994792 Original Version of the player
The original version misses some labels and thus it cannot be compiled.
It is included here for historical reasons.
2017-02-04 20:56:40 +01:00
cybernesto
cadb17b0cd Initial commit 2017-02-04 18:19:50 +01:00