Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 159 → Rev 158

/programs/develop/metcc/trunk/libc/mesys/file_58.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_read_file,20
public _msys_read_file
_msys_read_file:
;arg1 - file name
;arg2 - file offset
;arg3 - size to read
48,7 → 48,8
pop edi esi
ret
 
public_stdcall _msys_write_file,12
public _msys_write_file
_msys_write_file:
;arg1 - file name
;arg2 - size
;arg3 - data
73,7 → 74,8
pop ebp
ret 12
 
public_stdcall _msys_run_program,8
public _msys_run_program
_msys_run_program:
;arg1 - program name
;arg2 - parameters
push ebp
/programs/develop/metcc/trunk/libc/mesys/backgr.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_set_background_size,8
public _msys_set_background_size
_msys_set_background_size:
;arg1 - xsize
;arg2 - ysize
push ebx
12,7 → 12,8
int 0x40
pop ebx
ret 8
public_stdcall _msys_write_background_mem,8
public _msys_write_background_mem
_msys_write_background_mem:
;arg1 - pos
;arg2 - color
push ebx
23,7 → 24,8
int 0x40
pop ebx
ret 8
public_stdcall _msys_draw_background,0
public _msys_draw_background
_msys_draw_background:
mov edx,ebx
mov eax,15
mov ebx,3
30,7 → 32,8
int 0x40
mov ebx,edx
ret
public_stdcall _msys_set_background_draw_type,4
public _msys_set_background_draw_type
_msys_set_background_draw_type:
;arg1 - type
mov edx,ebx
mov eax,15
39,7 → 42,8
int 0x40
mov ebx,edx
ret 4
public_stdcall _msys_background_blockmove,12
public _msys_background_blockmove
_msys_background_blockmove:
;arg1 - source
;arg2 - position in dest
;arg3 - size
/programs/develop/metcc/trunk/libc/mesys/button.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_make_button,24
public _msys_make_button
_msys_make_button:
;arg1 - x
;arg2 - y
;arg3 - xsize
22,7 → 22,8
pop esi ebx
ret 24
public_stdcall _msys_get_button_id,0
public _msys_get_button_id
_msys_get_button_id:
mov eax,17
int 0x40
test al,al
/programs/develop/metcc/trunk/libc/mesys/clock.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_get_system_clock,0
public _msys_get_system_clock
_msys_get_system_clock:
mov eax,3
int 0x40
ret
/programs/develop/metcc/trunk/libc/mesys/date.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_get_date,0
public _msys_get_date
_msys_get_date:
mov eax,29
int 0x40
ret
/programs/develop/metcc/trunk/libc/mesys/debug_board.asm
1,7 → 1,8
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_debug_out,4
 
public _msys_debug_out
_msys_debug_out:
;arg1 - char to out
push ebx
mov ecx,[esp+8]
/programs/develop/metcc/trunk/libc/mesys/delay.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_delay,4
public _msys_delay
_msys_delay:
;arg1 - time
mov edx,ebx
mov eax,5
/programs/develop/metcc/trunk/libc/mesys/dga.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_dga_get_resolution,16
public _msys_dga_get_resolution
_msys_dga_get_resolution:
;arg1 - *xres
;arg2 - *yres
;arg3 - *bpp
/programs/develop/metcc/trunk/libc/mesys/draw_bar.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_draw_bar,20
public _msys_draw_bar
_msys_draw_bar:
;arg1 - x
;arg2 - y
;arg3 - xsize
/programs/develop/metcc/trunk/libc/mesys/draw_image.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_putimage,20
public _msys_putimage
_msys_putimage:
;arg1 - x
;arg2 - y
;arg3 - xsize
/programs/develop/metcc/trunk/libc/mesys/draw_window.asm
1,7 → 1,8
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_draw_window,36
 
public _msys_draw_window
_msys_draw_window:
;arg1 - xcoord
;arg2 - ycoord
;arg3 - xsize
/programs/develop/metcc/trunk/libc/mesys/event.asm
1,17 → 1,19
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_wait_for_event_infinite,0
public _msys_wait_for_event_infinite
_msys_wait_for_event_infinite:
mov eax,10
int 0x40
ret
public_stdcall _msys_check_for_event,0
public _msys_check_for_event
_msys_check_for_event:
mov eax,11
int 0x40
ret
public_stdcall _msys_wait_for_event,4
public _msys_wait_for_event
_msys_wait_for_event:
;arg1 - time
mov edx,ebx
mov eax,23
20,7 → 22,8
mov ebx,edx
ret 4
public_stdcall _msys_set_wanted_events,4
public _msys_set_wanted_events
_msys_set_wanted_events:
;arg1 - flags
mov edx,ebx
mov eax,40
/programs/develop/metcc/trunk/libc/mesys/exit.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_exit,0
public _msys_exit
_msys_exit:
xor eax,eax
dec eax
int 0x40
/programs/develop/metcc/trunk/libc/mesys/ipc.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_send_message,12
public _msys_send_message
_msys_send_message:
;arg1 - pid
;arg2 - msg
;arg3 - size
15,7 → 15,8
pop esi ebx
ret 12
public_stdcall _msys_define_receive_area,8
public _msys_define_receive_area
_msys_define_receive_area:
;arg1 - area
;arg2 - size
push ebx
/programs/develop/metcc/trunk/libc/mesys/irq.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_get_irq_owner,4
public _msys_get_irq_owner
_msys_get_irq_owner:
;arg1 - irq
mov edx,ebx
mov eax,41
10,7 → 10,8
mov ebx,edx
ret 4
public_stdcall _msys_get_data_read_by_irq,12
public _msys_get_data_read_by_irq
_msys_get_data_read_by_irq:
;arg1 - irq
;arg2 - *size
;arg3 - data
36,7 → 37,8
mov ebx,edx
ret
public_stdcall _msys_send_data_to_device,8
public _msys_send_data_to_device
_msys_send_data_to_device:
;arg1 - port
;arg2 - data
mov edx,ebx
47,7 → 49,8
mov ebx,edx
ret 8
public_stdcall _msys_receive_data_from_device,8
public _msys_receive_data_from_device
_msys_receive_data_from_device:
;arg1 - port
;arg2 - data
mov edx,ebx
60,7 → 63,8
mov ebx,edx
ret 8
public_stdcall _msys_program_irq,8
public _msys_program_irq
_msys_program_irq:
;arg1 - intrtable
;arg2 - irq
mov edx,ebx
71,7 → 75,8
mov ebx,edx
ret 8
public_stdcall _msys_reserve_irq,4
public _msys_reserve_irq
_msys_reserve_irq:
;arg1 - irq
mov edx,ebx
mov eax,45
81,7 → 86,8
mov ebx,edx
ret 4
public_stdcall _msys_free_irq,4
public _msys_free_irq
_msys_free_irq:
;arg1 - irq
mov edx,ebx
mov eax,45
92,7 → 98,8
mov ebx,edx
ret 4
public_stdcall _msys_reserve_port_area,8
public _msys_reserve_port_area
_msys_reserve_port_area:
;arg1 - start
;arg2 - end
push ebx
104,7 → 111,8
pop ebx
ret 8
public_stdcall _msys_free_port_area,8
public _msys_free_port_area
_msys_free_port_area:
;arg1 - start
;arg2 - end
push ebx
/programs/develop/metcc/trunk/libc/mesys/keyboard.asm
1,12 → 1,13
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_get_key,0
public _msys_get_key
_msys_get_key:
mov eax,2
int 0x40
ret
public_stdcall _msys_set_keyboard_mode,4
public _msys_set_keyboard_mode
_msys_set_keyboard_mode:
;arg1 - mode
mov edx,ebx
mov eax,66
/programs/develop/metcc/trunk/libc/mesys/line.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_line,20
public _msys_line
_msys_line:
;arg1 - x1
;arg2 - y1
;arg3 - x2
/programs/develop/metcc/trunk/libc/mesys/midi.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_midi_reset,0
public _msys_midi_reset
_msys_midi_reset:
mov edx,ebx
mov eax,20
xor ebx,ebx
10,7 → 10,8
mov ebx,edx
ret
public_stdcall _msys_midi_send,4
public _msys_midi_send
_msys_midi_send:
;arg1 - data
mov edx,ebx
mov eax,20
/programs/develop/metcc/trunk/libc/mesys/pci.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_get_pci_version,0
public _msys_get_pci_version
_msys_get_pci_version:
mov edx,ebx
mov eax,62
xor ebx,ebx
10,7 → 10,8
mov ebx,edx
ret
public_stdcall _msys_get_last_pci_bus,0
public _msys_get_last_pci_bus
_msys_get_last_pci_bus:
mov edx,ebx
mov eax,62
xor ebx,ebx
20,7 → 21,8
mov ebx,edx
ret
public_stdcall _msys_get_pci_access_mechanism,0
public _msys_get_pci_access_mechanism
_msys_get_pci_access_mechanism:
mov edx,ebx
mov eax,62
mov ebx,2
29,7 → 31,8
mov ebx,edx
ret
public_stdcall _msys_pci_read_config_byte,16
public _msys_pci_read_config_byte
_msys_pci_read_config_byte:
;arg1 - bus
;arg2 - dev
;arg3 - fn
46,7 → 49,8
mov ebx,edx
ret 16
public_stdcall _msys_pci_read_config_word,16
public _msys_pci_read_config_word
_msys_pci_read_config_word:
;arg1 - bus
;arg2 - dev
;arg3 - fn
63,7 → 67,8
mov ebx,edx
ret 16
public_stdcall _msys_pci_read_config_dword,16
public _msys_pci_read_config_dword
_msys_pci_read_config_dword:
;arg1 - bus
;arg2 - dev
;arg3 - fn
80,7 → 85,8
mov ebx,edx
ret 16
public_stdcall _msys_pci_write_config_byte,20
public _msys_pci_write_config_byte
_msys_pci_write_config_byte:
;arg1 - bus
;arg2 - dev
;arg3 - fn
99,7 → 105,8
pop ebx
ret 20
public_stdcall _msys_pci_write_config_word,20
public _msys_pci_write_config_word
_msys_pci_write_config_word:
;arg1 - bus
;arg2 - dev
;arg3 - fn
118,7 → 125,8
pop ebx
ret 20
public_stdcall _msys_pci_write_config_dword,20
public _msys_pci_write_config_dword
_msys_pci_write_config_dword:
;arg1 - bus
;arg2 - dev
;arg3 - fn
/programs/develop/metcc/trunk/libc/mesys/pixel.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_putpixel,12
public _msys_putpixel
_msys_putpixel:
;arg1 - x
;arg2 - y
;arg3 - color
/programs/develop/metcc/trunk/libc/mesys/process.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_get_process_table,8
public _msys_get_process_table
_msys_get_process_table:
;arg1 - pointer to information
;arg2 - pid
mov edx,ebx
/programs/develop/metcc/trunk/libc/mesys/screen.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_get_screen_size,8
public _msys_get_screen_size
_msys_get_screen_size:
;arg1 - x
;arg2 - y
mov eax,14
/programs/develop/metcc/trunk/libc/mesys/sound.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_sound_load_block,4
public _msys_sound_load_block
_msys_sound_load_block:
;arg1 - blockptr
mov edx,ebx
mov eax,55
11,7 → 11,8
mov ebx,edx
ret 4
public_stdcall _msys_sound_play_block,0
public _msys_sound_play_block
_msys_sound_play_block:
mov edx,ebx
mov eax,55
xor ebx,ebx
20,7 → 21,8
mov ebx,edx
ret
public_stdcall _msys_sound_set_channels,4
public _msys_sound_set_channels
_msys_sound_set_channels:
;arg1 - channels
push ebx
mov eax,55
31,7 → 33,8
pop ebx
ret 4
public_stdcall _msys_sound_set_data_size,4
public _msys_sound_set_data_size
_msys_sound_set_data_size:
;arg1 - data size
push ebx
mov eax,55
43,7 → 46,8
pop ebx
ret 4
public_stdcall _msys_sound_set_frequency,4
public _msys_sound_set_frequency
_msys_sound_set_frequency:
;arg1 - frequency
push ebx
mov eax,55
54,7 → 58,8
pop ebx
ret 4
public_stdcall _msys_sound_speaker_play,4
public _msys_sound_speaker_play
_msys_sound_speaker_play:
;arg1 - data
mov edx,ebx
mov eax,55
/programs/develop/metcc/trunk/libc/mesys/thread.asm
1,8 → 1,8
format ELF
include "public_stdcall.inc"
section '.text' executable
extrn malloc
public_stdcall _msys_start_thread,12
public _msys_start_thread
_msys_start_thread:
;arg1 - proc
;arg2 - stacksize
;arg3 - pid
/programs/develop/metcc/trunk/libc/mesys/window_redraw.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_window_redraw,4
public _msys_window_redraw
_msys_window_redraw:
;arg1 - status
mov edx,ebx
mov eax,12
/programs/develop/metcc/trunk/libc/mesys/write_text.asm
1,7 → 1,7
format ELF
include "public_stdcall.inc"
section '.text' executable
public_stdcall _msys_write_text,20
public _msys_write_text
_msys_write_text:
;arg1 - x
;arg2 - y
;arg3 - color
/programs/develop/metcc/trunk/libc/include/mesys.h
82,7 → 82,7
extern void stdcall _msys_write_text(int x,int y,int color,char* text,int len);
extern void* stdcall _msys_start_thread(void (* func_ptr)(void),int stack_size,int* pid);
extern void stdcall _msys_window_redraw(int status);
extern void* malloc(int);
extern void free(void*);
extern void* realloc(void*,int);
extern void* stdcall malloc(int);
extern void stdcall free(void*);
extern void* stdcall realloc(void*,int);
#endif
/programs/develop/metcc/trunk/source/tccmeos.c
96,12 → 96,11
Elf32_Sym* esym = ((Elf32_Sym *)symtab_section->data)+sym;
int sect=esym->st_shndx;
ss=findsection(me,sect);
if (ss==0)
ss=me->bss_sections;
if (ss==0) continue;
if (rel->r_offset>s->data_size)
continue;
if (type==R_386_PC32)
*(int*)(rel->r_offset+s->data)=ss->sh_addr+esym->st_value-rel->r_offset-s->sh_addr-4;
*(int*)(rel->r_offset+s->data)+=ss->sh_addr+esym->st_value-rel->r_offset-s->sh_addr;
else if (type==R_386_32)
*(int*)(rel->r_offset+s->data)+=ss->sh_addr+esym->st_value;
}