00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _M68HC11_ARCH_CME11_GDM_H
00023 #define _M68HC11_ARCH_CME11_GDM_H
00024
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028
00029 #include <sys/ports.h>
00030
00041 extern volatile unsigned char _gdm_lcd_cmd;
00042 extern volatile unsigned char _gdm_lcd_data;
00043
00044 #define M6811_PA4 (1 << 4)
00045 #define M6811_PA5 (1 << 5)
00046
00055 extern inline void _gdm_hw_set_side (gdm_display* dp, unsigned short side)
00056 {
00057 _io_ports[M6811_PORTA] &= ~(M6811_PA5 | M6811_PA4);
00058 if (side)
00059 _io_ports[M6811_PORTA] |= M6811_PA4;
00060 else
00061 _io_ports[M6811_PORTA] |= M6811_PA5;
00062 }
00063
00073 extern inline void _gdm_hw_set_y (gdm_display* dp, unsigned short y)
00074 {
00075
00076 _gdm_lcd_cmd = 0x40 | y;
00077 }
00078
00087 extern inline void _gdm_hw_set_x (gdm_display* dp, unsigned short x)
00088 {
00089
00090 _gdm_lcd_cmd = 0xB8 | x;
00091 }
00092
00102 extern inline void _gdm_hw_set_data (gdm_display* dp, unsigned char data)
00103 {
00104 _gdm_lcd_data = data;
00105 }
00106
00114 extern inline void _gdm_hw_set_line (gdm_display* dp, unsigned short line)
00115 {
00116
00117 _gdm_lcd_cmd = 0xC0 | line;
00118 }
00119
00131 extern inline void _gdm_hw_set_mode (gdm_display* dp, unsigned short mode)
00132 {
00133 if (mode & GDM_DISPLAY_ON)
00134 _gdm_lcd_cmd = 0x3F;
00135 else
00136 _gdm_lcd_cmd = 0x3E;
00137 }
00138
00141 #ifdef __cplusplus
00142 };
00143 #endif
00144 #endif