int main() { // Set up low level systems: bus_setup(); io_setup(); periods_setup(); memory_setup(); task_setup(); midi_io_setup(); apu_setup(); battery_setup(); assigner_setup(); sequencer_setup(); ui_sequencer_setup(); ui_programmer_setup(); // The task manager takes over from here task_manager(); }
int main(void) { system_cm3_setup(); log_setup(); queue_setup(); init_usart1 ( 38400 ); // initialize USART1 @ 9600 baud init_usart2 ( 38400 ); //USART_puts ( USART1, "Init usart1 complete! Hello World!\r\n" ); USART_puts ( USART2, "Init usart2 complete! Hello World!\r\n" ); fb_setup(); #ifdef VGA_DMA vga_setup ( VGA_USE_DMA ); #else vga_setup ( VGA_NO_DMA ); #endif #ifdef BUS_FRAMEBUFFER bus_setup(); #endif //fb_test_pattern ( fb_active, fbt_topbottom ); fb_test_pattern ( fb_active, fbt_offset_squares ); //fb_test_pattern ( fb_active, fbt_vlines ); //fb_test_pattern ( fb_active, fbt_v1lines ); //fb_test_pattern ( fb_active, fbt_onoff1 ); //fb_test_pattern ( fb_active, fbt_spriteram ); while ( 1 ) { // weeeeee! // any work for us to do? #ifdef RUNMODE_COMMAND_SERIAL if ( vblank ) { if ( queueready() ) { command_queue_run(); } } #endif #ifdef RUNMODE_FRAMEBUFFER_FOREVER if ( vblank ) { queueit ( "BD" ); command_queue_run(); } #endif // update framebuffers #if 0 if ( vblank ) { unsigned char i = 0; fb_clone ( fb_2, fb_active ); while ( vblank ) { __asm__("nop"); } fb_test_pattern ( fb_2, i & 0x03 ); i++; } #endif // check for external RAM updates? #ifdef zzBUS_FRAMEBUFFER static uint16_t _done = 0; _done++; if ( vblank && _done > 30 && _done < 40 ) { bus_grab_and_wait(); uint32_t addr = 0x1C0000; uint8_t v; uint8_t i; char b [ 2 ]; USART_puts_optional ( USART2, "+REM cart dump: " ); for ( i = 0; i < 20; i++ ) { v = bus_perform_read ( addr ); b [ 0 ] = v; b [ 1 ] = '\0'; USART_puts_optional ( USART2, b ); addr++; } USART_puts_optional ( USART2, "+++\n" ); bus_release(); } #endif // handle queued logs #if 0 if ( logready() ) { char *log; while ( ( log = logpull() ) ) { USART_puts ( USART2, log ); } } #endif __asm__("nop"); } } // main