"Fossies" - the Fresh Open Source Software Archive 
Member "fasm/tools/libc/system.inc" (21 Feb 2022, 1508 Bytes) of package /linux/misc/fasm-1.73.30.tgz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) fasm source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1
2 extrn malloc
3 extrn getenv
4 extrn fopen
5 extrn fclose
6 extrn fread
7 extrn fwrite
8 extrn fseek
9 extrn ftell
10 extrn time
11 extrn exit
12 extrn 'free' as libc_free
13 extrn 'write' as libc_write
14
15 alloc:
16 ccall malloc,eax
17 test eax,eax
18 jz allocation_failed
19 clc
20 ret
21 allocation_failed:
22 stc
23 ret
24 free:
25 ccall libc_free,eax
26 ret
27 display_string:
28 lodsb
29 or al,al
30 jz string_displayed
31 mov dl,al
32 call display_character
33 jmp display_string
34 string_displayed:
35 ret
36 display_character:
37 mov [character],dl
38 ccall libc_write,[display_handle],character,1
39 ret
40 open:
41 push esi edi ebp
42 call adapt_path
43 ccall fopen,buffer,open_mode
44 pop ebp edi esi
45 or eax,eax
46 jz file_error
47 mov ebx,eax
48 clc
49 ret
50 adapt_path:
51 mov esi,edx
52 mov edi,buffer
53 copy_path:
54 lods byte [esi]
55 cmp al,'\'
56 jne path_char_ok
57 mov al,'/'
58 path_char_ok:
59 stos byte [edi]
60 or al,al
61 jnz copy_path
62 cmp edi,buffer+1000h
63 ja not_enough_memory
64 ret
65 create:
66 push esi edi ebp
67 call adapt_path
68 ccall fopen,buffer,create_mode
69 pop ebp edi esi
70 or eax,eax
71 jz file_error
72 mov ebx,eax
73 clc
74 ret
75 close:
76 ccall fclose,ebx
77 ret
78 read:
79 push ebx ecx edx esi edi
80 ccall fread,edx,1,ecx,ebx
81 pop edi esi edx ecx ebx
82 cmp eax,ecx
83 jne file_error
84 clc
85 ret
86 file_error:
87 stc
88 ret
89 write:
90 push ebx ecx edx esi edi
91 ccall fwrite,edx,1,ecx,ebx
92 pop edi esi edx ecx ebx
93 cmp eax,ecx
94 jne file_error
95 clc
96 ret
97 lseek:
98 push ebx
99 movzx eax,al
100 ccall fseek,ebx,edx,eax
101 mov ebx,[esp]
102 ccall ftell,ebx
103 pop ebx
104 ret
105
106 open_mode db 'r',0
107 create_mode db 'w',0