Top secrets sources NedoPC pentevo

Rev

Rev 602 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

#ifndef _GLOBAL_H
#define _GLOBAL_H 1

#include <avr/io.h>

#define ENABLE_DIRECTUART       0b00000001
#define ENABLE_UART             0b00000010
#define ENABLE_SCR              0b00000100
#define ENABLE_SD_LOG           0b00001000
#define BIT_ENABLE_SD_LOG       3
#define RTSCTS_FLOWCTRL         0b00010000
//-----------------------------------------------------------------------------
//ॣ¨áâàë fpga
#define TEMP_REG        0xA0
#define SD_CS0          0xA1
#define SD_CS1          0xA2
#define FLASH_LOADDR    0xA3
#define FLASH_MIDADDR   0xA4
#define FLASH_HIADDR    0xA5
#define FLASH_DATA      0xA6
#define FLASH_CTRL      0xA7
#define SCR_LOADDR      0xA8    // ⥪ãé ï ¯®§¨æ¨ï ¯¥ç â¨
#define SCR_HIADDR      0xA9    //
#define SCR_ATTR        0xAA    // § ¯¨áì  âਡãâ  ¢ ATTR
#define SCR_FILL        0xAB    // ¯à¥¤¨­ªà¥¬¥­â  ¤à¥á  ¨ § ¯¨áì  âਡãâ  ¢ ATTR ¨ ¢ ¯ ¬ïâì
                                // (¥á«¨ ⮫쪮 ¤¥à£ âì spics_n, ¡ã¤¥â ¯¨á âìáï ¯à¥¤ë¤ã騩 ATTR)
#define SCR_CHAR        0xAC    // ¯à¥¤¨­ªà¥¬¥­â  ¤à¥á  ¨ § ¯¨áì ᨬ¢®«  ¢ ¯ ¬ïâì ¨ ATTR ¢ ¯ ¬ïâì
                                // (¥á«¨ ⮫쪮 ¤¥à£ âì spics_n, ¡ã¤¥â ¯¨á âìáï ¯à¥¤ë¤ã騩 ᨬ¢®«)
#define SCR_MOUSE_TEMP  TEMP_REG
#define SCR_MOUSE_X     0xAD
#define SCR_MOUSE_Y     0xAE
#define SCR_MODE        0xAF    // .7 - 0=VGAmode, 1=TVmode; .2.1.0 - ०¨¬ë;

#define MTST_CONTROL    0x50
#define MTST_PASS_CNT0  0x51
#define MTST_PASS_CNT1  TEMP_REG
#define MTST_FAIL_CNT0  0x52
#define MTST_FAIL_CNT1  TEMP_REG

#define COVOX           0x53

#define INT_CONTROL     0x54
//-----------------------------------------------------------------------------


#ifdef __ASSEMBLER__
/* ------------------------------------------------------------------------- */
#define xl r26
#define xh r27
#define yl r28
#define yh r29
#define zl r30
#define zh r31
/* seed (32bit) */
.extern _rnd
/* ¡ãä¥à ¢ RAM (à §¬¥à®¬ 2048 ¡ ©â) */
.extern megabuffer
/* (16bit) */
.extern mscounter

.extern flags1
.extern int6vect
.extern newframe
/* ------------------------------------------------------------------------- */
#else // #ifdef __ASSEMBLER__

#include "_types.h"
#include "_messages.h"
#include "_output.h"

//-----------------------------------------------------------------------------

#define GO_READKEY  0
#define GO_REPEAT   1
#define GO_REDRAW   2
#define GO_RESTART  3
#define GO_CONTINUE 4
#define GO_ERROR    5
#define GO_EXIT     6

//-----------------------------------------------------------------------------

#define SetSPICS()  PORTB|=(1<<PB0)
#define ClrSPICS()  PORTB&=~(1<<PB0)

//-----------------------------------------------------------------------------

#ifdef pgm_get_far_address
#define GET_FAR_ADDRESS pgm_get_far_address
#else
#define GET_FAR_ADDRESS(var)                                            \
 ({ uint_farptr_t tmp; __asm__ __volatile__(                            \
 "ldi %A0,lo8(%1)\n\tldi %B0,hi8(%1)\n\tldi %C0,hh8(%1)\n\tclr %D0\n\t" \
 :"=d"(tmp):"p"(&(var)) ); tmp;                                         \
 })

#endif

//-----------------------------------------------------------------------------
extern u8 mode1, lang, int6vect;
extern u8 flags1;
extern volatile u8 newframe;
extern u8 megabuffer[2048];
//-----------------------------------------------------------------------------
extern u8 ee_dummy[2] EEMEM;
extern u8 ee_mode1[1] EEMEM;
extern u8 ee_lang[1] EEMEM;
//-----------------------------------------------------------------------------
//¢ë¡®à ⥪ã饣® ॣ¨áâà  FPGA
void fpga_sel_reg(u8 reg);
//-----------------------------------------------------------------------------
//®¡¬¥­ á ॣ¨áâà ¬¨ ¢ FPGA
u8 fpga_reg(u8 reg, u8 data);
//-----------------------------------------------------------------------------
//®¡¬¥­ ¡¥§ ãáâ ­®¢ª¨ ॣ¨áâà 
u8 fpga_same_reg(u8 data);
//-----------------------------------------------------------------------------
// ¯.á«.ç¨á«®
u8 random8(void);
//-----------------------------------------------------------------------------
// 1) § ¯à¥â ¯à¥à뢠­¨©
// 2) ¨­¨æ¨ «¨§ æ¨ï SPI
// 3) à á¯ ª®¢ª  ¤ ­­ëå ¨ § £à㧪  FPGA
void load_fpga(uint_farptr_t confdata);
//-----------------------------------------------------------------------------
void timers_init(void);
//-----------------------------------------------------------------------------
// in: timeout - â ©¬ ©â, ¬á (1..16383)
void set_timeout_ms(u16 *storehere, u16 timeout);
//-----------------------------------------------------------------------------
u8 check_timeout_ms(u16 *storedhere);
//-----------------------------------------------------------------------------
void menu_help(void);
//-----------------------------------------------------------------------------
void toggle_vga(void);
//-----------------------------------------------------------------------------
void save_lang(void);
//-----------------------------------------------------------------------------

#endif // #ifdef __ASSEMBLER__

#endif // #ifndef _GLOBAL_H