+==========================================================================+ | Calc Mod 2.0 | +==========================================================================+ Contents: *==========================================================================* 1. What's New in CalcMod 1.0 2. Operation of CalcMod 3. Developer Info 4. Known Bugs 5. Special Thanks 1. What's New in CalcMod 1.0 *=====================================* Added support for a _new_ STEREO format. Yes, your eyes aren't playing tricks on you, your calculator can now play stereo MOD files. This version is completely backwards compatable with the old MONO format, but the new stereo format makes it so the old version won't mistakenly play these files. 2. Operation of CalcMod *=====================================* Keys: Y= - Plays the currently selected song Window - Searches for the next song, and returns to the first one if there isn't another Graph - Quits CalcMod or stops the playing of a song, whichever it displays :) o In case you forget the keys, they're labeled on the calculator as to what they do. 3. Developer Info *=====================================* CalcMod has relatively strange formats: Mono Format: *==================* The header is about the only consistent thing. There are no specific note values in the mono format. In the mean time, here is the header format: #define tempo xxxx ;where xxxx is a tempo value >= ;60 BPM #include "tempo.inc" #include "notes.inc" ret .db "Calcmod",0 .db "Description",0 The rest of the program consists of a series of data values, and here is what they stand for: note(pitch,length) The first number, "pitch" is the pitch of the note, and the second number, "length" is the duration of which it will be played. And there is no legnth words, but to distingush the end of the song, the LAST line is: note(1,0) It doesn't matter where that is in the song, but it will consider that the last pitch and stop playing. Stereo Format: *==================* Here is the header, and everything makes much more sense now: #define tempo xxxx ;where xxxx is a tempo value >= ;60 BPM
#include "tempo2.inc" #include "notes2.inc" ret .db "Calcmod",0 .db "Description",0 .dw 1,0 ;so the old CalcMod doesn't play ;this stereo format (it would ;sound awful and crash). That is the header, and then the rest of the program is a series of data values, made easier to understand with a #define macro i have in the notes2.inc file. Here is how it works: note(left,right,lenghth) The first part, "left", is the note that will be heard in the left channel. The next value, "right", is the note that will be heard in the right channel. And the third value, "length", is how long those 2 pitches will be played. Then to distingush the end of the song, this needs to be the last "note": note($FF,$FF,$FFFF) And it is useless to put any information past that, because the player will stop dead in its tracks. 4. Known Bugs *=====================================* None that I know of... that does NOT mean, though, that there are none. I have not found any, but if you find one, email me at pmarks@employees.org . I am also not responsible for anything that this program may consequentially do to your calculator. 5. Special Thanks *=====================================* Special thanks to: - Dhordain Florent* - For his wonderful MOD routine that I took from his "Song Player" for the TI-83. - You! For downloading this program! *: I wrote the stereo routine from scratch!