⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osddrv.h

📁 以ST公司CPU为核心的彩色电视机的完整源程序。
💻 H
字号:
#ifndef _osddrvhead_
#define _osddrvhead_

/***** FOR OSD *****/
#define SRAM_LINE_BUFFER_SIZE  ((unsigned int)130) /* size of 1 block corresponding to 1 line in OSD SRAM buffer */
#define SRAM_BUFFER_START ((unsigned int)0xF700)/* define start of the buffer for OSDRAM in SRAM segment 20 */
			   /* 2 Kbytes are reserved for OSDRAM buffer in SRAM (from 20 F700 to 20 FE9E) plus 0x20FEAE (see below) */

#define OSDRAM_START ((unsigned int)0x8000)    /* Start address if 0x0000, but to force the linker to use
						   DPR2 and point to the OSDRAM, need to modify the 2 MSB
						   of OSDRAM_START */
/* NOTE */
#define OSDRAM_BUFFER1 ((unsigned int)0x8090)  /* Start address of the first row buffer in OSDRAM 120 bytes length */
#define OSDRAM_BUFFER2 ((unsigned int)0x8108)  /* Start address of the next row buffer in OSDRAM 120 bytes length */
#define OSDRAM_BUFFDRV1 ((unsigned int)0x0090)  /* must change with OSDRAM_BUFFER1 */
#define OSDRAM_BUFFDRV2 ((unsigned int)0x0108)  /* must change with OSDRAM_BUFFER2 */
#define BUFFDRV1HIGH    ((unsigned char)0x00)   /* must change with OSDRAM_BUFFER1 */
#define BUFFDRV1LOW    ((unsigned char)0x90)   /* must change with OSDRAM_BUFFER1 */
#define BUFFDRV2HIGH    ((unsigned char)0x01)   /* must change with OSDRAM_BUFFER2 */
#define BUFFDRV2LOW    ((unsigned char)0x08)   /* must change with OSDRAM_BUFFER2*/


/* here define the row parameter  feman add*/
/* mode define */
#define EXT_PARALLE_MODE ((unsigned char)0x02)
#define PARALLE_MODE     ((unsigned char)0x01)
#define SERIAL_MODE      ((unsigned char)0x00)
/* row attributes */
#define FONT18           ((unsigned char)0x80)
#define FONT9            ((unsigned char)0x00)
#define UPPERHALF        ((unsigned char)0x40)
#define FONT2Y           ((unsigned char)0x10)
#define FONT2X           ((unsigned char)0x08)
#define FLASHEN          ((unsigned char)0x04)
#define ROUNDEN          ((unsigned char)0x02)
#define FRINGEN          ((unsigned char)0x01)
/* active range */
#define ACTIVEDIS        ((unsigned char)0x0D)

#define CHNULL      0x00

struct BUFFER_START_ADR {
unsigned char mode : 2;
unsigned int  next_buffer_address : 14; 
};

struct SCREEN_HEADER {
unsigned int underline_color1;
unsigned int underline_color2;
unsigned int mouse_coding_data;
unsigned int mouse_y_pos;
unsigned int mouse_x_pos;
unsigned int reserved;
unsigned int basic_fore_palette[16];
unsigned int basic_back_palette[16];
unsigned int extend_fore_palette[16];
unsigned int extend_back_palette[16];

};

struct ROW_HEADER {
unsigned int  event_line;
unsigned char char_number : 6 ;
unsigned int  horiz_shift : 10 ;
unsigned char mode;
unsigned char row_attr;
unsigned char active;
};

struct ROW_STRUCT {
    const struct ROW_HEADER * row_header;
    const unsigned char * row_data;
    const unsigned char start_num_char;
    const unsigned char number; 
};


extern unsigned char back_row_number;
extern unsigned char fore_row_number;

/* Here declare function */

void init_osd(void);
//void blank_screen(void);
void Clear_OSDRAM(void);
void osd_enabled(void);
void osd_disabled(void);
void fill_osdram_buffer(unsigned char , unsigned int);

//void transfer_screen_in_sram(const unsigned char *, unsigned char );
void fill_color_in_line(unsigned char , unsigned char , unsigned char ,unsigned char );
//void move_zoom_line(unsigned char ,unsigned char );
void fill_string_in_line(unsigned char , unsigned char , unsigned char * );
void fill_char_in_line(unsigned char , unsigned char , unsigned char ,unsigned char );
void reset_current_screen(void);
void set_current_screen(void);
void transfer_screan_header(const struct SCREEN_HEADER *);
void append_line_to_buffer(const struct ROW_STRUCT *);
void set_row_header(char ,struct ROW_HEADER * );
void get_row_header(char ,struct ROW_HEADER * );

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -