Create your own header file. It became compilable with only Wonx.

Since there is a possibility that the Error () function will collide with libwonx.a when linking,
It changed to Wonx_Error ().
Added bios_exit ().
sprite_set_char, sprite_get_char, palette number minus 8
Fixed bug that was not specified.
font_set_monodata (), font_set_colordata (), font_get_data (), disp.c,
The arguments of screen_set_char (), screen_get_char (), sprite_set_data ()
Changed from void * to appropriate type.
Sample program and attached SpeedMac.
I added a document.

Version 0.3 beta - from wonx-b03.tar.gz
This commit is contained in:
Hiroaki Sakai
2000-11-03 12:00:00 +09:00
committed by Godzil
parent 0f43e6d6ee
commit 5e1a9795b7
51 changed files with 1253 additions and 347 deletions

39
wonx_include/bank.h Normal file
View File

@@ -0,0 +1,39 @@
#ifndef _WONX_SYS_BANK_H_
#define _WONX_SYS_BANK_H_
#include "service.h"
/*****************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
#define BANK_SRAM 0
#define BANK_ROM0 1
#define BANK_ROM1 2
#define sram_get_map() bank_get_map(BANK_SRAM)
#define rom0_get_map() bank_get_map(BANK_ROM0)
#define rom1_get_map() bank_get_map(BANK_ROM1)
#define sram_set_map(bank) bank_set_map(BANK_SRAM, bank)
#define rom0_set_map(bank) bank_set_map(BANK_ROM0, bank)
#define rom1_set_map(bank) bank_set_map(BANK_ROM1, bank)
/*****************************************************************************/
/* <20>ߴ<EFBFBD><DFB4>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
void bank_set_map(int bank, int bank_num);
int bank_get_map(int bank);
unsigned char bank_read_byte(int bank, unsigned int off);
void bank_write_byte(int bank, unsigned int off, unsigned int data);
unsigned int bank_read_word(int bank, unsigned int off);
void bank_write_word(int bank, unsigned int off, unsigned int data);
void bank_read_block(int bank, unsigned int off,
void * buffer, unsigned int size);
void bank_write_block(int bank, unsigned int off,
void * buffer, unsigned int size);
void bank_fill_block(int bank, unsigned int off,
unsigned int size, unsigned int data);
void bank_erase_flash(int bank);
#endif

13
wonx_include/bios.h Normal file
View File

@@ -0,0 +1,13 @@
#ifndef _WONX_SYS_BIOS_H_
#define _WONX_SYS_BIOS_H_
#include "bank.h"
#include "comm.h"
#include "disp.h"
#include "key.h"
#include "sound.h"
#include "system.h"
#include "text.h"
#include "timer.h"
#endif

71
wonx_include/comm.h Normal file
View File

@@ -0,0 +1,71 @@
#ifndef _WONX_SYS_COMM_H_
#define _WONX_SYS_COMM_H_
#include "service.h"
/*****************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
#define COMM_SPEED_9600 0
#define COMM_SPEED_38400 1
#define XMODE_SEND 0
#define XMODE_RECEIVE 1
#define XMODE_SEND_ENCRYPTED 2
#define XMODE_RECEIVE_ENCRYPTED 3
#define XMODE_AUTO_ERASE 4
#define ERR_SIO_OK 0x0000
#define ERR_SIO_BUSY 0x8100
#define ERR_SIO_TIMEOUT 0x8101
#define ERR_SIO_OVERRUN 0x8102
#define ERR_SIO_CANCEL 0x8103
#define ERR_XM_STATECODE 0x8104
#define ERR_XM_CANCELED 0x8105
#define ERR_XM_BLOCK_LOST 0x8106
#define ERR_XM_TOO_LARGE 0x8107
enum {
XM_START = 1,
XM_NEGO,
XM_BLOCK,
XM_BLOCK_RETRY,
XM_CLOSE,
XM_ABORT,
XM_DONE,
XM_ERASE_BANK
};
typedef struct {
int state;
char mode;
char retry_c;
int block_c;
int block_max;
int block_size;
int bank;
int offset;
int timeout_c;
} xmodeminfo;
/*****************************************************************************/
/* <20>ߴ<EFBFBD><DFB4>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
void comm_open(void);
void comm_close(void);
int comm_send_char(unsigned char c);
int comm_receive_char(void);
int comm_receive_with_timeout(int timeout);
int comm_send_string(char * string);
int comm_send_block(void * buffer, int size);
int comm_receive_block(void * buffer, int size);
void comm_set_timeout(int recv_timeout, int send_timeout);
void comm_set_baudrate(int baudrate);
int comm_get_baudrate(void);
void comm_set_cancel_key(unsigned int pattern);
unsigned int comm_get_cancel_key(void);
int comm_xmodem(void * xmodem);
#endif

112
wonx_include/disp.h Normal file
View File

@@ -0,0 +1,112 @@
#ifndef _WONX_SYS_DISP_H_
#define _WONX_SYS_DISP_H_
#include "service.h"
/*****************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
#define SCREEN1 0
#define SCREEN2 1
#define LCD_PIXEL_WIDTH 224
#define LCD_PIXEL_HEIGHT 144
#define SCREEN_PIXEL_WIDTH 256
#define SCREEN_PIXEL_HEIGHT 256
#define SCREEN_CHAR_WIDTH 32
#define SCREEN_CHAR_HEIGHT 32
#define DCM_SCR1 (1 << 0)
#define DCM_SCR2 (1 << 1)
#define DCM_SPR (1 << 2)
#define DCM_SPR_WIN (1 << 3)
#define DCM_SCR2_WIN_INSIDE (1 << 5)
#define DCM_SCR2_WIN_OUTSIDE ((1 << 4) | (1 << 5))
#define DCM_BORDER_COLOR ((1 << 8) | (1 << 9) | (1 << 10))
/* SPRITE_SET_CHAR, SCREEN_SET_CHAR <20>ǻ<EFBFBD><C7BB><EFBFBD> */
#define CFM_FLIP_V (1 << 15)
#define CFM_FLIP_H (1 << 14)
#define CFM_FONT 0x01FF /* 0<><30>8<EFBFBD>ӥå<D3A5><C3A5><EFBFBD> */
/* SPRITE_SET_CHAR <20>ǻ<EFBFBD><C7BB><EFBFBD> */
#define CFM_SPR_UPPER (1 << 13)
#define CFM_SPRWIN_CLIP (1 << 12)
#define CFM_SPR_PALETTE ((1 << 9) | (1 << 10) | (1 << 11))
/* SCREEN_SET_CHAR <20>ǻ<EFBFBD><C7BB><EFBFBD> */
#define CFM_SCR_PALETTE ((1 << 9) | (1 << 10) | (1 << 11) | (1 << 12))
#define CFSFT_PALETTE 9
/* LCD_SET_SEGMENTS <20>ǻ<EFBFBD><C7BB><EFBFBD> */
#define LCDSEG_AUX3 (1 << 5) /* ͽ<><CDBD><EFBFBD>ޡ<EFBFBD><DEA1><EFBFBD><EFBFBD><EFBFBD> */
#define LCDSEG_AUX2 (1 << 4) /* ͽ<><CDBD><EFBFBD>ޡ<EFBFBD><DEA1><EFBFBD><EFBFBD><EFBFBD> */
#define LCDSEG_AUX1 (1 << 3) /* ͽ<><CDBD><EFBFBD>ޡ<EFBFBD><DEA1><EFBFBD><EFBFBD><EFBFBD> */
#define LCDSEG_HORIZONTAL (1 << 2) /* <20>ĥ⡼<C4A5>ɥޡ<C9A5><DEA1><EFBFBD> */
#define LCDSEG_VERTICAL (1 << 1) /* <20><><EFBFBD><EFBFBD>ɥޡ<C9A5><DEA1><EFBFBD> */
#define LCDSEG_SLEEP (1 << 0) /* <20><><EFBFBD><EFBFBD><EFBFBD>ϥޡ<CFA5><DEA1><EFBFBD> */
/* LCD_SET_SLEEP <20>ǻ<EFBFBD><C7BB><EFBFBD> */
#define LCD_SLEEP_ON 0
#define LCD_SLEEP_OFF 1
#define lcd_on() lcd_set_sleep(LCD_SLEEP_OFF)
#define lcd_off() lcd_set_sleep(LCD_SLEEP_ON)
/* ̤<><CCA4><EFBFBD><EFBFBD> */
void lcd_set_interrupt_line(unsigned char line);
unsigned char lcd_get_display_line();
/*****************************************************************************/
/* <20>ߴ<EFBFBD><DFB4>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
void display_control(unsigned int flags);
unsigned int display_status(void);
void font_set_monodata(unsigned int number, unsigned int count,
unsigned char * data);
void font_set_colordata(unsigned int number, unsigned int count,
unsigned char * data);
void font_get_data(unsigned int number, unsigned int count,
unsigned char * data);
void font_set_color(unsigned int colors);
unsigned int font_get_color(void);
void screen_set_char(int screen, int x, int y, int w, int h,
unsigned short int * data);
void screen_get_char(int screen, int x, int y, int w, int h,
unsigned short int * data);
unsigned int screen_get_char1(int screen, int x, int y);
void screen_fill_char(int screen, int x, int y, int w, int h,
unsigned int data);
void screen_fill_attr(int screen, int x, int y, int w, int h,
unsigned int data, unsigned int mask);
void sprite_set_range(unsigned int start, unsigned int number);
void sprite_set_char(unsigned int sprite_num, unsigned int data);
unsigned int sprite_get_char(unsigned int sprite_num);
void sprite_set_location(unsigned int sprite_num, int x, int y);
unsigned int sprite_get_location(unsigned int sprite_num);
void sprite_set_char_location(unsigned int sprite_num,
unsigned int data, int x, int y);
unsigned long int sprite_get_char_location(unsigned int sprite_num);
void sprite_set_data(unsigned int sprite_num, unsigned int count,
unsigned long int * data);
void screen_set_scroll(int screen, int x, int y);
unsigned int screen_get_scroll(int screen);
void screen2_set_window(int x, int y, int w, int h);
unsigned long int screen2_get_window(void);
void sprite_set_window(int x, int y, int w, int h);
unsigned long int sprite_get_window(void);
void palette_set_color(unsigned int palette_num, unsigned int colors);
unsigned int palette_get_color(unsigned int palette_num);
void lcd_set_color(unsigned int colors0, unsigned int colors1);
unsigned long int lcd_get_color(void);
void lcd_set_segments(unsigned int segments);
unsigned int lcd_get_segments(void);
void lcd_set_sleep(unsigned int slp);
unsigned int lcd_get_sleep(void);
void screen_set_vram(int screen, int location_id);
void sprite_set_vram(int location_id);
#endif

42
wonx_include/key.h Normal file
View File

@@ -0,0 +1,42 @@
#ifndef _WONX_SYS_KEY_H_
#define _WONX_SYS_KEY_H_
#include "service.h"
/*****************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
#define KEY_START (1 << 1)
#define KEY_A (1 << 2)
#define KEY_B (1 << 3)
#define KEY_UP1 (1 << 4)
#define KEY_RIGHT1 (1 << 5)
#define KEY_DOWN1 (1 << 6)
#define KEY_LEFT1 (1 << 7)
#define KEY_UP2 (1 << 8)
#define KEY_RIGHT2 (1 << 9)
#define KEY_DOWN2 (1 << 10)
#define KEY_LEFT2 (1 << 11)
#define KEY_X1 KEY_UP1
#define KEY_X2 KEY_RIGHT1
#define KEY_X3 KEY_DOWN1
#define KEY_X4 KEY_LEFT1
#define KEY_Y1 KEY_UP2
#define KEY_Y2 KEY_RIGHT2
#define KEY_Y3 KEY_DOWN2
#define KEY_Y4 KEY_LEFT2
/*****************************************************************************/
/* <20>ߴ<EFBFBD><DFB4>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
int key_press_check(void);
int key_hit_check(void);
int key_wait(void);
void key_set_repeat(int rate, int delay);
int key_get_repeat(void);
int key_hit_check_with_repeat(void);
#endif

14
wonx_include/service.h Normal file
View File

@@ -0,0 +1,14 @@
#ifndef _WONX_SYS_SERVICE_H_
#define _WONX_SYS_SERVICE_H_
#include "types.h"
#define MK_WORD(high,low) (((unsigned short int)(high) << 8) | ((unsigned short int)(low)))
#define MK_DWORD(high,low) (((unsigned long int)(high) << 16) | ((unsigned long int)(low)))
#define MK_FP(seg,off) ((void *)MK_DWORD(seg,off))
#define FP_OFF(p) ((unsigned short int)((unsigned long int)(p) & 0xffff))
#define FP_SEG(p) ((unsigned short int)((unsigned long int)(p) >> 16))
void bios_exit();
#endif

26
wonx_include/sound.h Normal file
View File

@@ -0,0 +1,26 @@
#ifndef _WONX_SYS_SOUND_H_
#define _WONX_SYS_SOUND_H_
#include "service.h"
/*****************************************************************************/
/* <20>ߴ<EFBFBD><DFB4>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
void sound_init(void);
void sound_set_channel(unsigned int flags);
unsigned int sound_get_channel(void);
void sound_set_output(unsigned int flags);
unsigned int sound_get_output(void);
void sound_set_wave(int channel, unsigned char * wave);
void sound_set_pitch(int channel, unsigned int frequency);
unsigned int sound_get_pitch(int channel);
void sound_set_volume(int channel, unsigned int volume);
unsigned int sound_get_volume(int channel);
void sound_set_sweep(int sweep, int step);
unsigned int sound_get_sweep(void);
void sound_set_noise(unsigned int flags);
unsigned int sound_get_noise(void);
unsigned int sound_get_random(void);
#endif

58
wonx_include/system.h Normal file
View File

@@ -0,0 +1,58 @@
#ifndef _WONX_SYS_SYSTEM_H_
#define _WONX_SYS_SYSTEM_H_
#include "service.h"
/*****************************************************************************/
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
enum {
SYS_INT_SENDREADY = 0,
SYS_INT_KEY,
SYS_INT_CASETTE,
SYS_INT_RECEIVEREADY,
SYS_INT_DISPLINE,
SYS_INT_TIMER_COUNTUP,
SYS_INT_VBLANK,
SYS_INT_HBLANK_COUNTUP
};
typedef struct {
void (*callback)(void);
int cs;
int ds;
int reserve;
} intvector_t;
/*****************************************************************************/
/* <20>ߴ<EFBFBD><DFB4>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*****************************************************************************/
void sys_interrupt_set_hook(int type, intvector_t * vector,
intvector_t * old_vector);
void sys_interrupt_reset_hook(int type, intvector_t * old_vector);
void sys_wait(unsigned int wait_time);
unsigned long int sys_get_tick_count(void);
void sys_sleep(void);
void sys_set_sleep_time(int sleep_time);
int sys_get_sleep_time(void);
void sys_set_awake_key(int pattern);
int sys_get_awake_key(void);
void sys_set_keepalive_int(int pattern);
void sys_get_ownerinfo(int size, char * buffer);
int sys_suspend(int core);
void sys_resume(int core);
void sys_set_remote(int remote);
unsigned int sys_get_remote(void);
void * sys_alloc_iram(void * p, unsigned int size);
void sys_free_iram(void * p);
void * sys_get_my_iram(void);
unsigned int sys_get_version(void);
int sys_swap(int core);
void sys_set_resume(unsigned int flags);
unsigned int sys_get_resume(void);
void bios_exit();
#endif

View File

@@ -0,0 +1,19 @@
/* configure.h for configuration of wonx */
#ifndef _WONX_system_configure_h_INCLUDED_
#define _WONX_system_configure_h_INCLUDED_
/*
* <20>ʲ<EFBFBD><CAB2><EFBFBD>ͭ<EFBFBD><CDAD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD><EFBFBD>ȡ<EFBFBD>ushort, ulong <20><> typedef <20><><EFBFBD><EFBFBD><EFBFBD>
*/
#if 0 /* ushort <20>ϡ<EFBFBD><CFA1><EFBFBD><EFBFBD>̤<EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD> /usr/include/sys/types.h <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD> */
#define TYPEDEF_USHORT
#endif
#if 1
#define TYPEDEF_ULONG
#endif
#endif /* _WONX_system_configure_h_INCLUDED_ */
/* End of system_configure.h */

46
wonx_include/text.h Normal file
View File

@@ -0,0 +1,46 @@
#ifndef _WONX_SYS_TEXT_H_
#define _WONX_SYS_TEXT_H_
#include "service.h"
#define NUM_PADSPACE 0
#define NUM_ALIGN_RIGHT 0
#define NUM_HEXA (1 << 0)
#define NUM_PADZERO (1 << 1)
#define NUM_ALIGN_LEFT (1 << 2)
#define NUM_SIGNED (1 << 3)
#define NUM_STORE (1 << 7)
#define TEXT_MODE_ANK 0
#define TEXT_MODE_ANK_SJIS 1
#define TEXT_MODE_SJIS 2
#define TEXT_SCREEN_WIDTH 28
#define TEXT_SCREEN_HEIGHT 18
void text_screen_init(void);
void text_window_init(int x, int y, int w, int h, unsigned int base);
void text_set_mode(int mode);
int text_get_mode(void);
void text_put_char(int x, int y, unsigned int c);
int text_put_string(int x, int y, char * string);
int text_put_substring(int x, int y, char * s, int length);
void text_put_numeric(int x, int y, int length, int format, int number);
void text_store_numeric(char * buffer, int length, int format, int number);
void text_fill_char(int x, int y, int length, int c);
void text_set_palette(int palette_num);
int text_get_palette(void);
void text_set_ank_font(int base, int color, int count, void * font);
void text_set_sjis_font(void * p);
void text_get_fontdata(int c, void * buffer);
void text_set_screen(int screen);
int text_get_screen(void);
void cursor_display(int flag);
int cursor_status(void);
void cursor_set_location(int x, int y, int w, int h);
unsigned long int cursor_get_location(void);
void cursor_set_type(int palette_num, int interval);
unsigned long int cursor_get_type(void);
int text_printf(int x, int y, const char *format, ...);
#endif

52
wonx_include/timer.h Normal file
View File

@@ -0,0 +1,52 @@
#ifndef _WONX_SYS_TIMER_H_
#define _WONX_SYS_TIMER_H_
#include "service.h"
enum {
RTC_YEAR = 0,
RTC_MONTH,
RTC_DATE,
RTC_DAY_OF_WEEK,
RTC_HOUR,
RTC_MIN,
RTC_SEC
};
enum timer_type {
TIMER_HBLANK = 0,
TIMER_VBLANK
};
enum timer_preset_type {
TIMER_ONESHOT = 0,
TIMER_AUTOPRESET
};
#define rtc_set_year(year) rtc_set_datetime(RTC_YEAR, year)
#define rtc_set_month(month) rtc_set_datetime(RTC_MONTH, month)
#define rtc_set_date(date) rtc_set_datetime(RTC_DATE, date)
#define rtc_set_day_of_week(week) rtc_set_datetime(RTC_DAY_OF_WEEK, week)
#define rtc_set_hour(hour) rtc_set_datetime(RTC_HOUR, hour)
#define rtc_set_minute(min) rtc_set_datetime(RTC_MIN, min)
#define rtc_set_second(sec) rtc_set_datetime(RTC_SEC, sec)
#define rtc_get_year() rtc_get_datetime(RTC_YEAR)
#define rtc_get_month() rtc_get_datetime(RTC_MONTH)
#define rtc_get_date() rtc_get_datetime(RTC_DATE)
#define rtc_get_day_of_week() rtc_get_datetime(RTC_DAY_OF_WEEK)
#define rtc_get_hour() rtc_get_datetime(RTC_HOUR)
#define rtc_get_minute() rtc_get_datetime(RTC_MIN)
#define rtc_get_second() rtc_get_datetime(RTC_SEC)
void rtc_set_datetime(int type, unsigned int value);
unsigned int rtc_get_datetime(int type);
void rtc_set_datetime_struct(datetime_t * d);
void rtc_get_datetime_struct(datetime_t * d);
void rtc_enable_alarm(int hour, int minute);
void rtc_disable_alarm(void);
void timer_enable(int type, unsigned int auto_preset, unsigned int count);
void timer_disable(int type);
unsigned int timer_get_count(int type);
#endif

46
wonx_include/types.h Normal file
View File

@@ -0,0 +1,46 @@
#ifndef _WONX_SYS_TYPES_H_
#define _WONX_SYS_TYPES_H_
#include "system_configure.h"
#include <stdlib.h> /* for NULL definition */
#ifdef TYPEDEF_USHORT
typedef unsigned short int ushort;
#endif
#ifdef TYPEDEF_ULONG
typedef unsigned long int ulong;
#endif
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef int BOOL;
#ifndef far
#define far /* None */
#endif
#ifndef near
#define near /* None */
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
typedef struct {
BYTE year;
BYTE month;
BYTE date;
BYTE day_of_week;
BYTE hour;
BYTE minute;
BYTE second;
} datetime_t;
#endif