User Tools

Site Tools


acsim_mios_h

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
acsim_mios_h [2006/08/09 11:19] – added toolbox header audiocommanderacsim_mios_h [2007/11/17 16:47] (current) – move acsim.zip to "acsim" namespace smashtv
Line 1: Line 1:
 +This page is part of the [[mios_c_simulator_-_debugger]]
 +
 +[[acsim_console_h|ACSim_console.h]]\\
 +[[acsim_console_c|ACSim_console.c]]\\
 +
 +**[[acsim_mios_h|ACSim_mios.h]]**\\
 +[[acsim_mios_c|ACSim_mios.c]]\\
 +
 +[[acsim_toolbox_h|ACSim_toolbox.h]]\\
 +[[acsim_toolbox_c|ACSim_toolbox.c]]\\
 +[[acmididefines|ACMidiDefines.h]]\\
 +\\
 +This code is for viewing only and may not be up to date. You can download the files in a zip file {{acsim:acsim.zip}}. If you make any updates, please send them to stryd_one and he will update the zip for you.
 +\\
 +\\
 +<code c>
 +/*
 +  ACSim_mios.h
 +  v 0.0.7
 + *
 +  2006 April 06 Created by Michael Markert, http://www.audiocommander.de
 +  mios simulator header for MIOS (c) by T. Klose, http://www.midibox.org
 + *
 + */
 +
 +/*
 + * Released under GNU General Public License
 + * http://www.gnu.org/licenses/gpl.html
 + 
 + * This program is free software; you can redistribute it and/or modify it under the terms
 + * of the GNU General Public License as published by the Free Software Foundation
 + *
 + * YOU ARE ALLOWED TO COPY AND CHANGE 
 + * BUT YOU MUST RELEASE THE SOURCE TOO (UNDER GNU GPL) IF YOU RELEASE YOUR PRODUCT 
 + * YOU ARE NOT ALLOWED TO USE IT WITHIN PROPRIETARY CLOSED-SOURCE PROJECTS
 + */
 +
 +
 +#ifndef _ACSIM_MIOS_H
 +#define _ACSIM_MIOS_H
 +
 +
 +
 +#import <Stdio.h>
 +
 +#import "ACSim_console.h"
 +
 +
 +
 +#define __wparam  
 +#define code const
 +
 +
 +
 +// MIOS definitions
 +#define MIOS_MIDI_INTERFACE_COMMON 0x00
 +#define MIOS_MIDI_INTERFACE_TO_HOST 0x01
 +
 +#define MIOS_MIDI_MERGER_DISABLED 0x00
 +#define MIOS_MIDI_MERGER_ENABLED 0x01
 +#define MIOS_MIDI_MERGER_MBLINK_EP 0x02
 +#define MIOS_MIDI_MERGER_MBLINK_FP 0x03
 +
 +#define MIOS_ENC_SPEED_SLOW 0x00
 +#define MIOS_ENC_SPEED_NORMAL 0x01
 +#define MIOS_ENC_SPEED_FAST 0x02
 +
 +#define MIOS_LCD_TYPE_CLCD 0x00
 +#define MIOS_LCD_TYPE_GLCD0 0x01
 +#define MIOS_LCD_TYPE_GLCD1 0x02
 +#define MIOS_LCD_TYPE_GLCD2 0x03
 +#define MIOS_LCD_TYPE_GLCD3 0x04
 +#define MIOS_LCD_TYPE_GLCD4 0x05
 +#define MIOS_LCD_TYPE_MLCD 0x06
 +#define MIOS_LCD_TYPE_GLCD_CUSTOM 0x07
 +
 +#define MIOS_GLCD_FONT 0x28fc
 +
 +
 +// structures of the CFG and STAT bytes
 +typedef union {
 + struct {
 + unsigned ALL:8;
 + };
 + struct {
 + unsigned LCD_TYPE:3;  // selects LCD type
 + unsigned USE_GLCD:1;  // if 1, graphical LCD is connected
 + unsigned MERGER:1;    // if 1, MIDI merger is enabled
 + unsigned MBLINK:1;    // if 1, MIDIbox Link is enabled
 + unsigned TO_HOST:1;   // if 1, MIDI interface will run with 38400 baud instead of 31250
 + unsigned FRQ_20MHz:1; // if 1, it is assumed that the bux is running with 20 MHz, else with 40 MHz
 + };
 +} mios_box_cfg0_t;
 +
 +typedef union {
 + struct {
 + unsigned ALL:8;
 + };
 + struct {
 + unsigned BS_A:3;            // A2..A0 of BankStick
 + unsigned BS_DIS_VERIFY:1;   // if 1, writes to the BankStick will not be verified
 + unsigned IIC_STRETCH_CLK:1; // if 1, IIC clock stretching enabled
 +unsigned :1;
 +unsigned :1;
 +unsigned :1;
 + };
 +} mios_box_cfg1_t;
 +
 +typedef union {
 + struct {
 + unsigned ALL:8;
 + };
 + struct {
 + unsigned BS_AVAILABLE:1;        // if 1, BankStick is available
 + unsigned MBLINK_TUNNEL_PASS:1;  // if 1, a MBLinked event will be tunnled
 + unsigned SUSPEND_ALL:1;         // if 1, all system and user tasks are suspended
 + unsigned SUSPEND_USER:1;        // if 1, all user tasks are suspended
 + unsigned AUTOREPEAT:1;          // if 1, start the auto-repeat handler
 + unsigned MLCD_TRANSFER:1;       // if 1, a transfer to the MLCD has been started
 +unsigned :1;
 +unsigned :1;
 + };
 +} mios_box_stat_t;
 +
 +// debug related structures
 +typedef union {
 + struct {
 + unsigned ALL:8;
 + };
 + struct {
 + unsigned TIMER_ENABLED:1;
 + unsigned free:7;
 + };
 +} debug_user_timer_t;
 +
 +// mios tables
 +extern const unsigned char MIOS_MPROC_EVENT_TABLE[2*128];
 +extern const unsigned char MIOS_ENC_PIN_TABLE[2*64];
 +
 +
 +
 +
 +#pragma mark pic18f typedefs
 +// "pic18f452.h" typedefs
 +typedef union {
 + struct {
 + unsigned RC0:1;
 + unsigned RC1:1;
 + unsigned RC2:1;
 + unsigned RC3:1;
 + unsigned RC4:1;
 + unsigned RC5:1;
 + unsigned RC6:1;
 + unsigned RC7:1;
 + };
 + struct {
 + unsigned T1OSO:1;
 + unsigned T1OSI:1;
 + unsigned :1;
 + unsigned SCK:1;
 + unsigned SDI:1;
 + unsigned SDO:1;
 + unsigned TX:1;
 + unsigned RX:1;
 + };
 + struct {
 + unsigned T1CKI:1;
 + unsigned CCP2:1;
 + unsigned CCP1:1;
 + unsigned SCL:1;
 + unsigned SDA:1;
 + unsigned :1;
 + unsigned CK:1;
 + unsigned DT:1;
 + };
 +} __PORTCbits_t;
 +
 +typedef union {
 + struct {
 + unsigned RD0:1;
 + unsigned RD1:1;
 + unsigned RD2:1;
 + unsigned RD3:1;
 + unsigned RD4:1;
 + unsigned RD5:1;
 + unsigned RD6:1;
 + unsigned RD7:1;
 + };
 + struct {
 + unsigned AD0:1;
 + unsigned AD1:1;
 + unsigned AD2:1;
 + unsigned AD3:1;
 + unsigned AD4:1;
 + unsigned AD5:1;
 + unsigned AD6:1;
 + unsigned AD7:1;
 + };
 +} __PORTDbits_t;
 +
 +typedef union {
 + struct {
 + unsigned RBIF:1;
 + unsigned INT0F:1;
 + unsigned T0IF:1;
 + unsigned RBIE:1;
 + unsigned INT0E:1;
 + unsigned T0IE:1;
 + unsigned PEIE:1;
 + unsigned GIE:1;
 + };
 +} __INTCONbits_t;
 +
 +
 +
 +#pragma mark debug typedefs
 +// bankstick
 +typedef struct {
 + unsigned char buffer[DEBUG_BANKSTICK_SIZE];
 +} debug_bankstick_t;
 +
 +
 +
 +#pragma mark mios globals
 +// mios globals
 +extern mios_box_stat_t MIOS_BOX_STAT;
 +// "pic18f452.h"
 +extern __PORTCbits_t PORTCbits;
 +extern __PORTDbits_t PORTDbits;
 +extern __INTCONbits_t INTCONbits;
 +// HLP
 +extern unsigned char MIOS_PARAMETER1;
 +extern unsigned char MIOS_PARAMETER2;
 +extern unsigned char MIOS_PARAMETER3;
 +
 +
 +#pragma mark debug globals
 +// export globals
 +extern debug_user_timer_t debug_user_timer;
 +
 +extern unsigned char debug_ain_lastPin;
 +extern unsigned int debug_ain_value[32];
 +extern unsigned char debug_din_lastPin;
 +extern unsigned char debug_din_value[32];
 +extern unsigned int debug_enc_value[32];
 +
 +extern unsigned char debug_bankstick_ctrl;
 +extern debug_bankstick_t debug_bankstick[DEBUG_BANKSTICK_NUM];
 +
 +extern unsigned int debug_MIDI_byteNum;
 +extern unsigned int debug_IIC_byteNum;
 +
 +
 +#endif /* _ACSIM_MIOS_H */
 +</code>