blob: 8ad53247d52b6afe0277f65850b05760a0a049bf [file] [log] [blame]
/* MEA Tracker
* Copyright 2013, Adrien Destugues <pulkomandy@pulkomandy.tk>
*
* This file is distributed under the terms of the MIT licence.
*/
#include "display.h"
#include "input.h"
volatile unsigned char* MEA_DATA = (unsigned char*)0xA7CE;
extern unsigned char music[8][16];
uint8_t isplaying = 1;
int main(void)
{
asm(" ORCC #$50"); // Disable interrupts (cursor blink)
refreshchannels();
for(int frame = 0;;frame++)
{
if((frame & 0x3) == 0)
input();
if(isplaying)
{
/*
*MEA_DATA = music[0][frame & 0xF];
*MEA_DATA = music[1][frame & 0xF];
*MEA_DATA = music[2][frame & 0xF];
*MEA_DATA = music[3][frame & 0xF];
*/
*(MEA_DATA + 1) = 0x12;
*MEA_DATA = 110;
// BW
*MEA_DATA = (music[1][frame & 0xF] << 6) |
(music[3][frame & 0xF] << 4) |
(music[5][frame & 0xF] << 2) |
(music[7][frame & 0xF]);
// FREQ
*MEA_DATA = (music[2][frame & 0xF] << 5) |
(music[4][frame & 0xF]);
// FREQ / AMPL
*MEA_DATA = (music[0][frame & 0xF] << 3) | 0xF; // TODO AMPL
// AMPL / DUR / PERIODCHANGE
*MEA_DATA = 0xD1; // TODO AMPL / DUR / PERIODCHANGE
}
asm("\n"
"z TST 0xA7E7 \n"
" BMI z \n"
"bb TST 0xA7E7 \n"
" BPL bb \n"
);
}
return 0;
}