/MIDICar-Player

ATARI 8-bit MIDI Player via MIDICar

Primary LanguagePascal

MIDICar logo

About MIDICar About MIDICar-Remote

Introduction

The repository contains source code for a MIDI file player designed for the ATARI 8-bit platform. It uses the MIDICar interface plugged in as an external device, via the ECI/CARD bus (XE series) or the PBI bus (XL series).

Language

The programming language used is MAD Pascal compiler and MADS Assembler compiler for computers with 6502 processor.

Requirements

In order to run the program correctly, an ATARI platform with a minimum of 64KB RAM is required. Such a configuration will allow loading a MIDI file with a very small size, as 29KB of RAM will be available. To load larger files without hindrance, it is a good idea to equip your computer with a minimum of 256KB RAM.

DOS

The player works with (practically) any known DOS, but as a developer I recommend using DOS with Command Processor like:

  • Sparta Dos X - best option :P
  • Sparta Dos
  • BW DOS
  • DOS II+ D
  • DOS XL
  • realDOS
  • XDOS - but loader can't recognize CP

MEMLO must be no higher than $2000, and the RAM area under the ROM remains at the user's disposal. In addition, the use of RAM-DISK is not advisable, as the data contained therein can be tampered with by the program.

Users using SpartaDOS/SDX can also use the player without much hindrance. The only requirement is to configure the system to use extended memory (USE BANKED configuration).

Any other DOS may cause greater or lesser startup problems - this has not been tested. In case the DOS in use does not have the ability to pass a parameter to the program, it is important to load the appropriate MIDI driver before running the program.

Run

It is important to indicate on the command line which driver will be used. To do this, run the programme as follows:

Type:

MCPLAY.EXE /Dx:path>filename.ext

  • in place of x enter the device number, or skip it
  • path> - path can only be specified in DOS that supports directories like Sparta DOS, Sparta DOS X, MyDos.
  • filename.ext driver file name

The program supports ONLY Dx: disk devices.

If your DOS does not have the ability to pass parameters to the program, the driver MUST be loaded into memory before running. Load it as you would a normal EXE or COM binary file.

Drivers

Drivers are currently available:

  • MIDICar - PBI or ECI/CARD based MIDI expanded card with independent communication port

SIO devices:

  • MIDIMate - which has its own internal 31.25KHz clock

  • MIDIBox - clocked by a clock generated by POKEY

  • These are bootable, non-relocatable files.

  • They do not set MEMLO, so they can be overwritten!

  • They load in the area from $2000 onward. After running, a corresponding message should appear on the screen (the name of the driver)

More about the drivers in the document general drivers concept.md in the /doc directory.

Bundling

There may be problems loading the driver from under DOS that do not have a Command Line with parameter passing. The solution to this is to be able to link the driver together with the main program.

The important thing with this operation is that the main program is CONNECTED TO the driver, not the other way around.

The linking operation can be performed on a PC using (under Linux) the command:

cat driver MCP.EXE >> mcpbundl.exe.

in place of driver specify the name of the driver file. Of course, the name of the resulting file can be different :)

Compilation

Type make in main directory.

Use make -DRIVER={file_name} to connect the driver to the program. The names of the drivers are available in the drvs directory - all files with the a65 extension. Do not specify the extension in the DRIVER= parameter.

Documentation

Instructions on how to use the program are included in the document docs/MIDICar Player Description.md.

A small summary, related to the program's memory usage, is also available. The whole in the document dosc/memory usage.md.

At: https://miro.com/app/board/uXjVOo1LIvc=/?share_link_id=542607287697 a block diagram of the program - mainly of the MID player part - is also available.

Contributions

  • Błażej "Pancio" Biernat
  • Jerzy "Mono" Kut

All PTODT Users

If you like this...

ByMeCaffee

Licence

MIT Licence by GSoftDev 2021-2022

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.