Giter Site home page Giter Site logo

a2noslotmidi's People

Contributors

erangell avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

a2noslotmidi's Issues

Add subroutine to reconfigure application for a different annunciator

Add a JMP entry point to a new subroutine that updates the C058, C059 references to the user's desired annunciator. Determine best way for user to pass the annunciator number: zero page, poke a location after the JMP table, or pass in a register.

0 = C058, C059
1 = C05A, C05B
2 = C05C, C05D
3 = C05E, C05F

Convert source code for Midi File Format 0 player from EDASM to XCODE

I have found that I need to do the following:

  • Add colons to labels
  • Change EQU to =
  • Change DFB to .byte
  • Reverse direction of < and >

I then compare the binary output of XCODE to the original binary built with EDASM using the monitor V (verify) command.

You can see the EDASM source code in the LEGACY directory.

Write program to play notes on MIDI OUT using the apple keyboard.

2 octaves can be played on the 4 rows of keys. The apple keys can be used to determine which voices the notes should be played on, and used to toggle note on/note off - experiment to find the best mechanism to play 3 part harmony: ex: oa-Z, sa-C, oa-sa-B for a C major chord, space to turn all notes off, or any of the above keystrokes to turn individual notes off - the logic should keep track of which notes are on, and if the keystroke for that note is pressed, it turns that note off.

Make driver code relocatable

It is possible to replace JMPs with CLV, BVC if jumps can be made to fit within +/- 127 bytes. Or, booster code statements can be inserted to get to code farther away. This should probably be driven by a conditional assembly parameter. The advantage is that the driver can be relocated based on memory requirements (ex: Dos/Prodos buffers). Or if someone wants to compile it in Plasma as a Relocatable module, be my guest.

Midi Format 0 player has 80 column display anomalies on Unenhanced //e

The COUT routine used to display the Karaoke text behaves weirdly - it looks like it just populates the even columns, and when it reaches the end of the line, some of the remaining text gets printed on lines above (where the music notes are being displayed). Find a way of replacing that routine with one that works on both the unenhanced and enhanced //e.

Disable interrupts during critical sections

For future use with applications that use interrupts for timing, this code should PHP and SEI before the critical section (when the MIDI data bytes are being sent over the wire), and re-enable them with a PLP at the end of that section.

Fix addresses in comment header

The QUIET routine entry point is above the TEST routines.
Add it to the comment header and adjust the addresses of the 2 test routines.

Conditional assembly to reduce size of driver

For special purpose applications, the unnecessary parts of the driver can be excluded from assembly, and variables in the makefile can control what gets assembled. I would like the following:

ANNUNCIATOR= <0 to 3> - assemble just the addresses for the selected annunciator
NEGATIVELOGIC = 0 or 1 - set to 1 to include the code that handles negative logic, and enable it by default.
If either of the above parameters are undefined, assemble the current source code without modifications.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.