Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

#pragma disable_warning 85

//юяЁхфхыхэш  Єшяют яхЁхьхээ√ї

typedef unsigned char u8;
typedef   signed char i8;
typedef unsigned  int u16;
typedef   signed  int i16;
typedef unsigned long u32;
typedef   signed long i32;

#define TRUE    1
#define FALSE   0

//Їыруш ъэюяюъ фцющёЄшър

#define JOY_RIGHT       0x01
#define JOY_LEFT        0x02
#define JOY_DOWN        0x04
#define JOY_UP          0x08
#define JOY_FIRE        0x10

//ёьх∙хэш  т ьрёёштх ъыртш° фы  юяЁюёр ъыртшрЄєЁ√

#define KEY_SPACE       0x23
#define KEY_ENTER       0x1e
#define KEY_SYMBOL      0x24
#define KEY_CAPS        0x00

#define KEY_0           0x14
#define KEY_1           0x0f
#define KEY_2           0x10
#define KEY_3           0x11
#define KEY_4           0x12
#define KEY_5           0x13
#define KEY_6           0x18
#define KEY_7           0x17
#define KEY_8           0x16
#define KEY_9           0x15

#define KEY_A           0x05
#define KEY_B           0x27
#define KEY_C           0x03
#define KEY_D           0x07
#define KEY_E           0x0c
#define KEY_F           0x08
#define KEY_G           0x09
#define KEY_H           0x22
#define KEY_I           0x1b
#define KEY_J           0x21
#define KEY_K           0x20
#define KEY_L           0x1f
#define KEY_M           0x25
#define KEY_N           0x26
#define KEY_O           0x1a
#define KEY_P           0x19
#define KEY_Q           0x0a
#define KEY_R           0x0d
#define KEY_S           0x06
#define KEY_T           0x0e
#define KEY_U           0x1c
#define KEY_V           0x04
#define KEY_W           0x0b
#define KEY_X           0x02
#define KEY_Y           0x1d
#define KEY_Z           0x01

//Їыруш ёюёЄю эш  ъыртш°

#define KEY_DOWN        0x01    //ъэюяър єфхЁцштрхЄё 
#define KEY_PRESS       0x02    //ъэюяър эрцрЄр, Їыру ёсЁрё√трхЄё  яюёых т√чютр keyboard

//Їыруш ъэюяюъ ь√°ш

#define MOUSE_LBTN      0x01
#define MOUSE_RBTN      0x02
#define MOUSE_MBTN      0x04

//яюыєўхэшх ъюфр ЎтхЄр шч RGB ё фтєїсшЄэ√ьш чэрўхэш ьш ърэрыют

#define RGB222(r,g,b)   (((b)&3)|(((g)&3)<<2)|(((r)&3)<<4))

//ъЁрщэшх ш ёЁхфэшщ єЁютэш  ЁъюёЄш

#define BRIGHT_MIN      0
#define BRIGHT_MID      3
#define BRIGHT_MAX      6

//ъюф ъюэЎр ёяшёър ёяЁрщЄют

#define SPRITE_END      0xff00



//чряюыэхэшх ярь Єш чрфрээ√ь чэрўхэшхь

void memset(void* m,u8 b,u16 len) __naked;

//ъюяшЁютрэшх ярь Єш, юсырёЄш эх фюыцэ√ яхЁхёхърЄ№ё 

void memcpy(void* d,void* s,u16 len) __naked;

//ухэхЁрЎш  16-сшЄэюую яёхтфюёыєўрщэюую ўшёыр

u16 rand16(void) __naked;

//єёЄрэютър ЎтхЄр сюЁф■Ёр, 0..15

void border(u8 n) __naked;

//юцшфрэшх ёыхфє■∙хую ╥┬ ърфЁр

void vsync(void) __naked;

//юяЁюё kempston фцющёЄшър ш ъєЁёюЁэ√ї ъыртш° ё яЁюсхыюь
//фы  юяЁюёр ъэюяюъ хёЄ№ ъюэёЄрэЄ√ JOY_

u8 joystick(void) __naked;

//юяЁюё ъыртшрЄєЁ√, тючтЁр∙рхЄ ёюёЄю эшх ъыртш° т 40-срщЄэ√щ ьрёёшт
//фы  юяЁюёр ъыртш° хёЄ№ ъюэёЄрэЄ√ KEY_

void keyboard(u8* keys) __naked;

//яюыєўхэшх Єхъє∙хщ яючшЎшш єърчрЄхы  ь√°ш, ЁрчЁх°хэшх яю x яюэшцхэю тфтюх, ъръ фы  ёяЁрщЄют
//ь√°№ яхЁхьх∙рхЄё  т чрфрээющ чюэх ъышяяшэур

u8 mouse_pos(u8* x,u8* y) __naked;

//єёЄрэютър Єхъє∙хщ яючшЎшш єърчрЄхы  ь√°ш

void mouse_set(u8 x,u8 y) __naked;

//єёЄрэютър чюэ√ ъышяяшэур фы  єърчрЄхы  ь√°ш, яю єьюыўрэш■ 0..160, 0..200

void mouse_clip(u8 xmin,u8 ymin,u8 xmax,u8 ymax) __naked;

//яюыєўхэшх фхы№Є√ яхЁхьх∙хэш  ь√°ш, схч яюэшцхэш  ЁрчЁх°хэш  яю x

u8 mouse_delta(i8* x,i8* y) __naked;

//яЁюшуЁ√трэшх чтєъютюую ¤ЇЇхъЄр ё єърчрээ√ь эюьхЁюь ш юЄэюёшЄхы№эющ уЁюьъюёЄ№■ -8..8

void sfx_play(u8 sfx,i8 vol) __naked;

//юёЄрэют тёхї яЁюшуЁ√трхь√ї чтєъют√ї ¤ЇЇхъЄют

void sfx_stop(void) __naked;

//яЁюшуЁ√трэшх ьєч√ъш ё єърчрээ√ь эюьхЁюь

void music_play(u8 mus) __naked;

//яЁхъЁр∙хэшх яЁюшуЁ√трэш  ьєч√ъш

void music_stop(void) __naked;

//яЁюшуЁ√трэшх ё¤ьяыр ё єърчрээ√ь эюьхЁюь ўхЁхч Covox
//тю тЁхь  яЁюшуЁ√трэш  яЁюуЁрььр цф╕Є ш яЁхЁ√трэш  чряЁх∙хэ√

void sample_play(u8 sample) __naked;

//єёЄрэютър тёхї чэрўхэшщ т ярышЄЁх т 0 (ў╕Ёэ√щ ЎтхЄ)

void pal_clear(void) __naked;

//єёЄрэютър  ЁъюёЄш ¤ъЁрэр BRIGHT_MIN..BRIGHT_MID..BRIGHT_MAX (0..3..6)
//юЄ яюыэюёЄ№■ ў╕Ёэюую ¤ъЁрэр фю эюЁьры№эющ  ЁъюёЄш фю яюыэюёЄ№■ схыюую ¤ъЁрэр

void pal_bright(u8 bright) __naked;

//т√сюЁ яЁхфюяЁхфхы╕ээющ ярышЄЁ√ яю эюьхЁє

void pal_select(u8 id) __naked;

//ъюяшЁютрэшх яЁхфюяЁхфхы╕ээющ ярышЄЁ√ т ьрёёшт (16 срщЄ)

void pal_copy(u8 id,u8* pal) __naked;

//єёЄрэютър ЎтхЄр т ярышЄЁх, id 0..15, col т ЇюЁьрЄх R2G2B2

void pal_col(u8 id,u8 col) __naked;

//єёЄрэютър тёхї 16 ЎтхЄют т ярышЄЁх чэрўхэш ьш R2G2B2 шч ьрёёштр

void pal_custom(u8* pal) __naked;

//т√сюЁ шчюсЁрцхэш  фы  ЇєэъЎшщ draw_tile

void select_image(u8 id) __naked;

//т√сюЁ яЁючЁрўэюую ЎтхЄр 0..15 фы  ЇєэъЎшш draw_tile_key

void color_key(u8 col) __naked;

//юЄЁшёютър Єрщыр шч Єхъє∙хую т√сЁрээюую шчюсЁрцхэш 
//т юфэюь шчюсЁрцхэшш ьюцхЄ с√Є№ фю 65536 Єрщыют

void draw_tile(u8 x,u8 y,u16 tile) __naked;

//юЄЁшёютър Єрщыр ё ьрёъющ, чрфрээющ эюьхЁюь яЁючЁрўэюую ЎтхЄр

void draw_tile_key(u8 x,u8 y,u16 tile) __naked;

//юЄЁшёютър шчюсЁрцхэш  Ўхышъюь

void draw_image(u8 x,u8 y,u8 id) __naked;
void draw_image_extra(u8 x,u8 y,u8 id,u8 width,u8 begx) __naked;

//юўшёЄър Єхэхтюую ¤ъЁрэр эєцэ√ь ЎтхЄюь 0..15

void clear_screen(u8 color) __naked;

//яхЁхъы■ўхэшх ¤ъЁрэют, Єхэхтющ ёЄрэютшЄё  тшфшь√ь
//юцшфрэшх ърфЁр т√яюыэ хЄё  ртЄюьрЄшўхёъш, vsync яхЁхф т√чютюь ¤Єющ ЇєэъЎшш эх эєцхэ
//ЇєэъЎш  Єръцх юсэюты хЄ ёяЁрщЄ√, хёыш юэш тъы■ўхэ√

void swap_screen(void) __naked;

//чряєёъ ёшёЄхь√ т√тюфр ёяЁрщЄют
//эр тшфшьюь ¤ъЁрэх фюыцэю с√Є№ шчюсЁрцхэшх, яютхЁї ъюЄюЁюую сєфєЄ т√тхфхэ√ ёяЁрщЄ√
//¤Єр ЇєэъЎш  т√яюыэ хЄё  ьхфыхээю, яЁюшёїюфшЄ ъюяшЁютрэшх сюы№°юую юс·╕ьр фрээ√ї
//яюёых Єюую ъръ ёяЁрщЄ√ ЁрчЁх°хэ√, юэш сєфєЄ ртЄюьрЄшўхёъш т√тюфшЄ№ё  яЁш swap_screen

void sprites_start(void) __naked;

//юёЄрэют ёшёЄхь√ т√тюфр ёяЁрщЄют

void sprites_stop(void) __naked;

//єёЄрэютър яюыюцхэш  ёяЁрщЄр
//id эюьхЁ т ёяшёъх 0..63
//x ъююЁфшэрЄр 0..152 (ЄюўэюёЄ№ т√тюфр яю уюЁшчюэЄрыш фтр ¤ъЁрээ√ї яшъёхы )
//y ъююЁфшэрЄр 0..184
//spr эюьхЁ шчюсЁрцхэш  ёяЁрщЄр, хёыш SPRITE_END, Єю т√тюф ёяшёър яЁхъЁр∙рхЄё 
//тэшьрэшх: ъышяяшэу яЁш т√тюфх юЄёєЄёЄтєхЄ, ёяЁрщЄ эх ьюцхЄ ўрёЄшўэю чрїюфшЄ№
//чр уЁрэшЎє ¤ъЁрэр

void set_sprite(u8 id,u8 x,u8 y,u16 spr) __naked;

//тЁхь  ё ьюьхэЄр чряєёър яЁюуЁрьь√ т ърфЁрї

u32 time(void) __naked;

//чрфхЁцър, чэрўхэшх т ърфЁрї (1/50 ёхъєэф√)

void delay(u16 time) __naked;