Rev 7106 | Rev 7835 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7106 | Rev 7785 | ||
---|---|---|---|
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
2 | ;; ;; |
3 | ;; Copyright (C) KolibriOS team 2017. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2017. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;; netsurf-installer - Set up Netsurf Browser on KolibriOS ;; |
6 | ;; netsurf-installer - Set up Netsurf Browser on KolibriOS ;; |
7 | ;; Author: ashmew2. ;; |
7 | ;; Author: ashmew2. ;; |
8 | ;; ;; |
8 | ;; ;; |
9 | ;; Inspired from downloader.asm by hidnplayr@kolibrios.org ;; |
9 | ;; Inspired from downloader.asm by hidnplayr@kolibrios.org ;; |
10 | ;; GENERAL PUBLIC LICENSE ;; |
10 | ;; GENERAL PUBLIC LICENSE ;; |
11 | ;; Version 2, June 1991 ;; |
11 | ;; Version 2, June 1991 ;; |
12 | ;; ;; |
12 | ;; ;; |
13 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
13 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
14 | 14 | ||
15 | URLMAXLEN = 65535 |
15 | URLMAXLEN = 65535 |
16 | FILENAMEMAXLEN = 1024 |
16 | FILENAMEMAXLEN = 1024 |
17 | __DEBUG_LEVEL__ = 2 |
17 | __DEBUG_LEVEL__ = 2 |
18 | __DEBUG__ = 1 |
18 | __DEBUG__ = 1 |
19 | 19 | ||
20 | format binary as "" |
20 | format binary as "" |
21 | use32 |
21 | use32 |
22 | org 0x0 |
22 | org 0x0 |
23 | db 'MENUET01' ; header |
23 | db 'MENUET01' ; header |
24 | dd 0x01 ; header version |
24 | dd 0x01 ; header version |
25 | dd START ; entry point |
25 | dd START ; entry point |
26 | dd I_END ; image size |
26 | dd I_END ; image size |
27 | dd I_END+0x1000 ; required memory |
27 | dd I_END+0x1000 ; required memory |
28 | dd I_END+0x1000 ; esp |
28 | dd I_END+0x1000 ; esp |
29 | dd 0x0 ; I_Path |
29 | dd 0x0 ; I_Path |
30 | dd 0x0 ; I_Path |
30 | dd 0x0 ; I_Path |
31 | 31 | ||
32 | include '../../macros.inc' |
32 | include '../../macros.inc' |
33 | include '../../proc32.inc' |
33 | include '../../proc32.inc' |
34 | include '../../dll.inc' |
34 | include '../../dll.inc' |
35 | include '../../debug-fdo.inc' |
35 | include '../../debug-fdo.inc' |
36 | include '../../develop/libraries/http/http.inc' |
36 | include '../../develop/libraries/http/http.inc' |
37 | include '../../notify.inc' |
- | |
38 | include '../../string.inc' |
37 | include '../../string.inc' |
- | 38 | ||
- | 39 | include '../../system/notify3/notify.inc' |
|
39 | 40 | ||
40 | include 'notify.asm' |
41 | include 'notify.asm' |
41 | 42 | ||
42 | virtual at 0 |
43 | virtual at 0 |
43 | http_msg http_msg |
44 | http_msg http_msg |
44 | end virtual |
45 | end virtual |
45 | 46 | ||
46 | ;; Parameters |
47 | ;; Parameters |
47 | ;; HTTP URL to download |
48 | ;; HTTP URL to download |
48 | ;; Target filename |
49 | ;; Target filename |
49 | proc get_file_over_http targeturl, targetfilename |
50 | proc get_file_over_http targeturl, targetfilename |
50 | pusha |
51 | pusha |
51 | xor eax, eax |
52 | xor eax, eax |
52 | mov [write_to_file.current_offset], eax |
53 | mov [write_to_file.current_offset], eax |
53 | mov [write_to_file.bufsize], eax |
54 | mov [write_to_file.bufsize], eax |
54 | mov [write_to_file.bufptr], eax |
55 | mov [write_to_file.bufptr], eax |
55 | 56 | ||
56 | DEBUGF 1, "---- HTTP : Getting %s\n", [targeturl] |
57 | DEBUGF 1, "---- HTTP : Getting %s\n", [targeturl] |
57 | invoke HTTP_get, [targeturl], 0, FLAG_KEEPALIVE or FLAG_BLOCK, 0 |
58 | invoke HTTP_get, [targeturl], 0, FLAG_KEEPALIVE or FLAG_BLOCK, 0 |
58 | cmp eax, 0 |
59 | cmp eax, 0 |
59 | je .http_error |
60 | je .http_error |
60 | mov [httpstruct], eax |
61 | mov [httpstruct], eax |
61 | 62 | ||
62 | ;; No HTTP errors, create a new file for the download. |
63 | ;; No HTTP errors, create a new file for the download. |
63 | DEBUGF 1, "---- Creating new file : %s\n", [targetfilename] |
64 | DEBUGF 1, "---- Creating new file : %s\n", [targetfilename] |
64 | mcall 70, create_new_file |
65 | mcall 70, create_new_file |
65 | cmp eax, 0 |
66 | cmp eax, 0 |
66 | jne .file_error |
67 | jne .file_error |
67 | 68 | ||
68 | .http_receive_loop: |
69 | .http_receive_loop: |
69 | DEBUGF 1, "---- Receiving over http.\n" |
70 | DEBUGF 1, "---- Receiving over http.\n" |
70 | invoke HTTP_receive, [httpstruct] |
71 | invoke HTTP_receive, [httpstruct] |
71 | 72 | ||
72 | cmp eax, 0 |
73 | cmp eax, 0 |
73 | je .http_transfer_done |
74 | je .http_transfer_done |
74 | 75 | ||
75 | 76 | ||
76 | mov ebp, [httpstruct] |
77 | mov ebp, [httpstruct] |
77 | DEBUGF 1, "---- http flags = 0x%x.\n", [ebp + http_msg.flags] |
78 | DEBUGF 1, "---- http flags = 0x%x.\n", [ebp + http_msg.flags] |
78 | test [ebp + http_msg.flags], 0xffff0000 |
79 | test [ebp + http_msg.flags], 0xffff0000 |
79 | jnz .http_error |
80 | jnz .http_error |
80 | 81 | ||
81 | mov ebp, [ebp + http_msg.content_received] |
82 | mov ebp, [ebp + http_msg.content_received] |
82 | cmp ebp, [write_to_file.current_offset] |
83 | cmp ebp, [write_to_file.current_offset] |
83 | jle .http_receive_loop |
84 | jle .http_receive_loop |
84 | ;; Only proceed if we have more data in HTTP buffer than we have written to file. |
85 | ;; Only proceed if we have more data in HTTP buffer than we have written to file. |
85 | 86 | ||
86 | ;; Process data we got (write it to the file) |
87 | ;; Process data we got (write it to the file) |
87 | mov ebp, [httpstruct] |
88 | mov ebp, [httpstruct] |
88 | mov ecx, [ebp + http_msg.content_length] |
89 | mov ecx, [ebp + http_msg.content_length] |
89 | mov edx, [ebp + http_msg.content_received] |
90 | mov edx, [ebp + http_msg.content_received] |
90 | 91 | ||
91 | DEBUGF 1, "---- Current file write offset : %u (http got : %u / %u)\n", [write_to_file.current_offset], edx, ecx |
92 | DEBUGF 1, "---- Current file write offset : %u (http got : %u / %u)\n", [write_to_file.current_offset], edx, ecx |
92 | sub edx, [write_to_file.current_offset] |
93 | sub edx, [write_to_file.current_offset] |
93 | mov [write_to_file.bufsize], edx |
94 | mov [write_to_file.bufsize], edx |
94 | 95 | ||
95 | mov ecx, [ebp + http_msg.content_ptr] |
96 | mov ecx, [ebp + http_msg.content_ptr] |
96 | add ecx, [write_to_file.current_offset] |
97 | add ecx, [write_to_file.current_offset] |
97 | mov [write_to_file.bufptr], ecx |
98 | mov [write_to_file.bufptr], ecx |
98 | 99 | ||
99 | DEBUGF 1, "---- ecx + offset = 0x%x\n", ecx |
100 | DEBUGF 1, "---- ecx + offset = 0x%x\n", ecx |
100 | DEBUGF 1, "---- Writing to file %u bytes at 0x%x to %s\n", [write_to_file.bufsize], [write_to_file.bufptr], current_filename |
101 | DEBUGF 1, "---- Writing to file %u bytes at 0x%x to %s\n", [write_to_file.bufsize], [write_to_file.bufptr], current_filename |
101 | mcall 70, write_to_file |
102 | mcall 70, write_to_file |
102 | cmp eax, 0 |
103 | cmp eax, 0 |
103 | jne .file_error |
104 | jne .file_error |
104 | 105 | ||
105 | DEBUGF 1, "---- Wrote to file %u bytes.\n", ebx |
106 | DEBUGF 1, "---- Wrote to file %u bytes.\n", ebx |
106 | add [write_to_file.current_offset], ebx |
107 | add [write_to_file.current_offset], ebx |
107 | DEBUGF 1, "---- File offset updated to : %u\n", [write_to_file.current_offset] |
108 | DEBUGF 1, "---- File offset updated to : %u\n", [write_to_file.current_offset] |
108 | 109 | ||
109 | jmp .http_receive_loop |
110 | jmp .http_receive_loop |
110 | 111 | ||
111 | .file_error: |
112 | .file_error: |
112 | DEBUGF 1, "file_erroR with eax = %u!", eax |
113 | DEBUGF 1, "file_erroR with eax = %u!", eax |
113 | call EXIT |
114 | call EXIT |
114 | 115 | ||
115 | .http_error: |
116 | .http_error: |
116 | DEBUGF 1, "http_erroR!" |
117 | DEBUGF 1, "http_erroR!" |
117 | call EXIT |
118 | call EXIT |
118 | 119 | ||
119 | .http_transfer_done: |
120 | .http_transfer_done: |
120 | ;; Write any remaining bytes from the http buffer into the file |
121 | ;; Write any remaining bytes from the http buffer into the file |
121 | DEBUGF 1, "---- http flags = 0x%x.\n", [httpstruct + http_msg.flags] |
122 | DEBUGF 1, "---- http flags = 0x%x.\n", [httpstruct + http_msg.flags] |
122 | DEBUGF 1, "Got %u bytes in total\n", [httpstruct + http_msg.content_length] |
123 | DEBUGF 1, "Got %u bytes in total\n", [httpstruct + http_msg.content_length] |
123 | 124 | ||
124 | mov ebp, [httpstruct] |
125 | mov ebp, [httpstruct] |
125 | mov edx, [ebp + http_msg.content_length] |
126 | mov edx, [ebp + http_msg.content_length] |
126 | 127 | ||
127 | sub edx, [write_to_file.current_offset] |
128 | sub edx, [write_to_file.current_offset] |
128 | mov [write_to_file.bufsize], edx |
129 | mov [write_to_file.bufsize], edx |
129 | 130 | ||
130 | mov ecx, [ebp + http_msg.content_ptr] |
131 | mov ecx, [ebp + http_msg.content_ptr] |
131 | add ecx, [write_to_file.current_offset] |
132 | add ecx, [write_to_file.current_offset] |
132 | mov [write_to_file.bufptr], ecx |
133 | mov [write_to_file.bufptr], ecx |
133 | 134 | ||
134 | DEBUGF 1, "---- Final ecx + offset = 0x%x\n", ecx |
135 | DEBUGF 1, "---- Final ecx + offset = 0x%x\n", ecx |
135 | DEBUGF 1, "-- Writing to file %u bytes at 0x%x to %s\n", [write_to_file.bufsize], [write_to_file.bufptr], current_filename |
136 | DEBUGF 1, "-- Writing to file %u bytes at 0x%x to %s\n", [write_to_file.bufsize], [write_to_file.bufptr], current_filename |
136 | 137 | ||
137 | mcall 70, write_to_file |
138 | mcall 70, write_to_file |
138 | cmp eax, 0 |
139 | cmp eax, 0 |
139 | jne .file_error |
140 | jne .file_error |
140 | 141 | ||
141 | DEBUGF 1, "-- Wrote to file %u bytes.\n", ebx |
142 | DEBUGF 1, "-- Wrote to file %u bytes.\n", ebx |
142 | add [write_to_file.current_offset], ebx |
143 | add [write_to_file.current_offset], ebx |
143 | DEBUGF 1, "-- File offset updated to : %u\n", [write_to_file.current_offset] |
144 | DEBUGF 1, "-- File offset updated to : %u\n", [write_to_file.current_offset] |
144 | mov ebp, [httpstruct] |
145 | mov ebp, [httpstruct] |
145 | mov edx, [ebp + http_msg.content_length] |
146 | mov edx, [ebp + http_msg.content_length] |
146 | cmp [write_to_file.current_offset], edx |
147 | cmp [write_to_file.current_offset], edx |
147 | jne .http_transfer_done |
148 | jne .http_transfer_done |
148 | 149 | ||
149 | invoke HTTP_free, [httpstruct] |
150 | invoke HTTP_free, [httpstruct] |
150 | 151 | ||
151 | popa |
152 | popa |
152 | ret |
153 | ret |
153 | endp |
154 | endp |
154 | 155 | ||
155 | proc make_new_folder newfolder |
156 | proc make_new_folder newfolder |
156 | pusha |
157 | pusha |
157 | 158 | ||
158 | mov eax, [newfolder] |
159 | mov eax, [newfolder] |
159 | mov [create_new_folder.foldername], eax |
160 | mov [create_new_folder.foldername], eax |
160 | mcall 70, create_new_folder |
161 | mcall 70, create_new_folder |
161 | test eax, eax |
162 | test eax, eax |
162 | jz .success |
163 | jz .success |
163 | 164 | ||
164 | DEBUGF 1, "Failed to create folder: %s\n", [newfolder] |
165 | DEBUGF 1, "Failed to create folder: %s\n", [newfolder] |
165 | call EXIT |
166 | call EXIT |
166 | 167 | ||
167 | .success: |
168 | .success: |
168 | popa |
169 | popa |
169 | ret |
170 | ret |
170 | endp |
171 | endp |
171 | 172 | ||
172 | START: |
173 | START: |
173 | mcall 68, 11 ; init heap |
174 | mcall 68, 11 ; init heap |
174 | call NOTIFY_RUN |
175 | call NOTIFY_RUN |
175 | 176 | ||
176 | ; load libraries |
177 | ; load libraries |
177 | stdcall dll.Load, @IMPORT |
178 | stdcall dll.Load, @IMPORT |
178 | test eax, eax |
179 | test eax, eax |
179 | jnz .all_files_done_error |
180 | jnz .all_files_done_error |
180 | 181 | ||
181 | DEBUGF 2, "-------------------------\n" |
182 | DEBUGF 2, "-------------------------\n" |
182 | DEBUGF 2, "NETSURF INSTALLER.\n" |
183 | DEBUGF 2, "NETSURF INSTALLER.\n" |
183 | 184 | ||
184 | stdcall make_new_folder, dirname_res |
185 | stdcall make_new_folder, dirname_res |
185 | stdcall make_new_folder, dirname_res_pointers |
186 | stdcall make_new_folder, dirname_res_pointers |
186 | stdcall make_new_folder, dirname_res_throbber |
187 | stdcall make_new_folder, dirname_res_throbber |
187 | stdcall make_new_folder, dirname_res_icons |
188 | stdcall make_new_folder, dirname_res_icons |
188 | 189 | ||
189 | 190 | ||
190 | .get_next_file: |
191 | .get_next_file: |
191 | mov edi, current_url |
192 | mov edi, current_url |
192 | mov esi, url |
193 | mov esi, url |
193 | 194 | ||
194 | @@: |
195 | @@: |
195 | movsb |
196 | movsb |
196 | cmp byte[esi], 0 |
197 | cmp byte[esi], 0 |
197 | jne @b |
198 | jne @b |
198 | ;; Loaded the base URL into current URL |
199 | ;; Loaded the base URL into current URL |
199 | 200 | ||
200 | ;; Move onto the subsequent file. |
201 | ;; Move onto the subsequent file. |
201 | mov esi, [filelistoffset] |
202 | mov esi, [filelistoffset] |
202 | cmp byte[esi], 0 |
203 | cmp byte[esi], 0 |
203 | je .all_files_done |
204 | je .all_files_done |
204 | 205 | ||
205 | @@: |
206 | @@: |
206 | movsb |
207 | movsb |
207 | cmp byte[esi], 0 |
208 | cmp byte[esi], 0 |
208 | jne @b |
209 | jne @b |
209 | movsb |
210 | movsb |
210 | 211 | ||
211 | ;; DEBUGF 1, "-- Current URL with filename is : %s\n", current_url |
212 | ;; DEBUGF 1, "-- Current URL with filename is : %s\n", current_url |
212 | 213 | ||
213 | ; Create name of file we will download to |
214 | ; Create name of file we will download to |
214 | mov esi, download_file_path |
215 | mov esi, download_file_path |
215 | mov edi, current_filename |
216 | mov edi, current_filename |
216 | 217 | ||
217 | @@: |
218 | @@: |
218 | movsb |
219 | movsb |
219 | cmp byte[esi], 0 |
220 | cmp byte[esi], 0 |
220 | jne @b |
221 | jne @b |
221 | 222 | ||
222 | mov esi, [filelistoffset] |
223 | mov esi, [filelistoffset] |
223 | @@: |
224 | @@: |
224 | movsb |
225 | movsb |
225 | cmp byte[esi], 0 |
226 | cmp byte[esi], 0 |
226 | jne @b |
227 | jne @b |
227 | movsb |
228 | movsb |
228 | mov [filelistoffset], esi |
229 | mov [filelistoffset], esi |
229 | 230 | ||
230 | ;; current_filename is now set to the name of the file |
231 | ;; current_filename is now set to the name of the file |
231 | ;; current_url is now set to the name of the file we will get after download |
232 | ;; current_url is now set to the name of the file we will get after download |
232 | DEBUGF 2, "Fetching : %s", current_filename |
233 | DEBUGF 2, "Fetching : %s", current_filename |
233 | pusha |
234 | pusha |
234 | call NOTIFY_CHANGE |
235 | call NOTIFY_CHANGE |
235 | popa |
236 | popa |
236 | stdcall get_file_over_http, current_url, current_filename |
237 | stdcall get_file_over_http, current_url, current_filename |
237 | DEBUGF 2, "...DONE!\n" |
238 | DEBUGF 2, "...DONE!\n" |
238 | jmp .get_next_file |
239 | jmp .get_next_file |
239 | 240 | ||
240 | .all_files_done: |
241 | .all_files_done: |
241 | DEBUGF 2, "-------------------------\n" |
242 | DEBUGF 2, "-------------------------\n" |
242 | DEBUGF 2, "NETSURF INSTALLED. Enjoy!\n" |
243 | DEBUGF 2, "NETSURF INSTALLED. Enjoy!\n" |
243 | DEBUGF 2, "-------------------------\n" |
244 | DEBUGF 2, "-------------------------\n" |
244 | call EXIT |
245 | call EXIT |
245 | ;; Inform user that all files are done |
246 | ;; Inform user that all files are done |
246 | 247 | ||
247 | .all_files_done_error: |
248 | .all_files_done_error: |
248 | DEBUGF 1, "FATAL ERROR: FAILED.\n", eax |
249 | DEBUGF 1, "FATAL ERROR: FAILED.\n", eax |
249 | call EXIT |
250 | call EXIT |
250 | 251 | ||
251 | ;--------------------------------------------------------------------- |
252 | ;--------------------------------------------------------------------- |
252 | ; Data area |
253 | ; Data area |
253 | ;----------------------------------------------------------------------------- |
254 | ;----------------------------------------------------------------------------- |
254 | align 4 |
255 | align 4 |
255 | @IMPORT: |
256 | @IMPORT: |
256 | 257 | ||
257 | library lib_http, 'http.obj' |
258 | library lib_http, 'http.obj' |
258 | import lib_http, \ |
259 | import lib_http, \ |
259 | HTTP_get, 'get', \ |
260 | HTTP_get, 'get', \ |
260 | HTTP_receive, 'receive', \ |
261 | HTTP_receive, 'receive', \ |
261 | HTTP_free, 'free' |
262 | HTTP_free, 'free' |
262 | 263 | ||
263 | include_debug_strings |
264 | include_debug_strings |
264 | 265 | ||
265 | download_file_path db '/tmp0/1/', 0 |
266 | download_file_path db '/tmp0/1/', 0 |
266 | dirname_res db '/tmp0/1/res', 0 |
267 | dirname_res db '/tmp0/1/res', 0 |
267 | dirname_res_pointers db '/tmp0/1/res/pointers', 0 |
268 | dirname_res_pointers db '/tmp0/1/res/pointers', 0 |
268 | dirname_res_throbber db '/tmp0/1/res/throbber', 0 |
269 | dirname_res_throbber db '/tmp0/1/res/throbber', 0 |
269 | dirname_res_icons db '/tmp0/1/res/icons', 0 |
270 | dirname_res_icons db '/tmp0/1/res/icons', 0 |
270 | 271 | ||
271 | url db 'www.ashmew2.me/',0 |
272 | url db 'www.ashmew2.me/',0 |
272 | 273 | ||
273 | ; I don't know why NOTIFY_CHANGE doesn't work for the first file |
274 | ; I don't know why NOTIFY_CHANGE doesn't work for the first file |
274 | ; so I use this small shit to fix it at NOTIFY_RUN phase |
275 | ; so I use this small shit to fix it at NOTIFY_RUN phase |
275 | filelist_first db '/tmp0/1/netsurf-kolibrios', 0 |
276 | filelist_first db '/tmp0/1/netsurf-kolibrios', 0 |
276 | 277 | ||
277 | filelist db 'netsurf-kolibrios', 0 |
278 | filelist db 'netsurf-kolibrios', 0 |
278 | db 'netsurf-kolibrios.map', 0 |
279 | db 'netsurf-kolibrios.map', 0 |
279 | db 'res/adblock.css', 0 |
280 | db 'res/adblock.css', 0 |
280 | db 'res/quirks.css', 0 |
281 | db 'res/quirks.css', 0 |
281 | db 'res/Messages', 0 |
282 | db 'res/Messages', 0 |
282 | db 'res/licence.html', 0 |
283 | db 'res/licence.html', 0 |
283 | db 'res/default.css', 0 |
284 | db 'res/default.css', 0 |
284 | db 'res/netsurf.png', 0 |
285 | db 'res/netsurf.png', 0 |
285 | db 'res/sans.ttf', 0 |
286 | db 'res/sans.ttf', 0 |
286 | db 'res/welcome.html', 0 |
287 | db 'res/welcome.html', 0 |
287 | db 'res/internal.css', 0 |
288 | db 'res/internal.css', 0 |
288 | db 'res/maps.html', 0 |
289 | db 'res/maps.html', 0 |
289 | db 'res/favicon.png', 0 |
290 | db 'res/favicon.png', 0 |
290 | db 'res/credits.html', 0 |
291 | db 'res/credits.html', 0 |
291 | db 'res/throbber/throbber8.png', 0 |
292 | db 'res/throbber/throbber8.png', 0 |
292 | db 'res/throbber/throbber3.png', 0 |
293 | db 'res/throbber/throbber3.png', 0 |
293 | db 'res/throbber/throbber4.png', 0 |
294 | db 'res/throbber/throbber4.png', 0 |
294 | db 'res/throbber/throbber0.png', 0 |
295 | db 'res/throbber/throbber0.png', 0 |
295 | db 'res/throbber/throbber6.png', 0 |
296 | db 'res/throbber/throbber6.png', 0 |
296 | db 'res/throbber/throbber2.png', 0 |
297 | db 'res/throbber/throbber2.png', 0 |
297 | db 'res/throbber/throbber1.png', 0 |
298 | db 'res/throbber/throbber1.png', 0 |
298 | db 'res/throbber/throbber7.png', 0 |
299 | db 'res/throbber/throbber7.png', 0 |
299 | db 'res/throbber/throbber5.png', 0 |
300 | db 'res/throbber/throbber5.png', 0 |
300 | db 'res/pointers/point.png', 0 |
301 | db 'res/pointers/point.png', 0 |
301 | db 'res/pointers/no_drop.png', 0 |
302 | db 'res/pointers/no_drop.png', 0 |
302 | db 'res/pointers/wait.png', 0 |
303 | db 'res/pointers/wait.png', 0 |
303 | db 'res/pointers/up-down.png', 0 |
304 | db 'res/pointers/up-down.png', 0 |
304 | db 'res/pointers/help.png', 0 |
305 | db 'res/pointers/help.png', 0 |
305 | db 'res/pointers/ru-ld.png', 0 |
306 | db 'res/pointers/ru-ld.png', 0 |
306 | db 'res/pointers/menu.png', 0 |
307 | db 'res/pointers/menu.png', 0 |
307 | db 'res/pointers/not_allowed.png', 0 |
308 | db 'res/pointers/not_allowed.png', 0 |
308 | db 'res/pointers/cross.png', 0 |
309 | db 'res/pointers/cross.png', 0 |
309 | db 'res/pointers/default.png', 0 |
310 | db 'res/pointers/default.png', 0 |
310 | db 'res/pointers/caret.png', 0 |
311 | db 'res/pointers/caret.png', 0 |
311 | db 'res/pointers/left-right.png', 0 |
312 | db 'res/pointers/left-right.png', 0 |
312 | db 'res/pointers/lu-rd.png', 0 |
313 | db 'res/pointers/lu-rd.png', 0 |
313 | db 'res/pointers/progress.png', 0 |
314 | db 'res/pointers/progress.png', 0 |
314 | db 'res/pointers/move.png', 0 |
315 | db 'res/pointers/move.png', 0 |
315 | db 'res/icons/back.png', 0 |
316 | db 'res/icons/back.png', 0 |
316 | db 'res/icons/back_g.png', 0 |
317 | db 'res/icons/back_g.png', 0 |
317 | db 'res/icons/scrollr.png', 0 |
318 | db 'res/icons/scrollr.png', 0 |
318 | db 'res/icons/osk.png', 0 |
319 | db 'res/icons/osk.png', 0 |
319 | db 'res/icons/forward_g.png', 0 |
320 | db 'res/icons/forward_g.png', 0 |
320 | db 'res/icons/scrolll.png', 0 |
321 | db 'res/icons/scrolll.png', 0 |
321 | db 'res/icons/history.png', 0 |
322 | db 'res/icons/history.png', 0 |
322 | db 'res/icons/forward.png', 0 |
323 | db 'res/icons/forward.png', 0 |
323 | db 'res/icons/home_g.png', 0 |
324 | db 'res/icons/home_g.png', 0 |
324 | db 'res/icons/history_g.png', 0 |
325 | db 'res/icons/history_g.png', 0 |
325 | db 'res/icons/reload_g.png', 0 |
326 | db 'res/icons/reload_g.png', 0 |
326 | db 'res/icons/scrollu.png', 0 |
327 | db 'res/icons/scrollu.png', 0 |
327 | db 'res/icons/stop.png', 0 |
328 | db 'res/icons/stop.png', 0 |
328 | db 'res/icons/scrolld.png', 0 |
329 | db 'res/icons/scrolld.png', 0 |
329 | db 'res/icons/stop_g.png', 0 |
330 | db 'res/icons/stop_g.png', 0 |
330 | db 'res/icons/home.png', 0 |
331 | db 'res/icons/home.png', 0 |
331 | db 'res/icons/reload.png', 0 |
332 | db 'res/icons/reload.png', 0 |
332 | db 0 |
333 | db 0 |
333 | 334 | ||
334 | filelistoffset dd filelist |
335 | filelistoffset dd filelist |
335 | httpstruct dd 0 |
336 | httpstruct dd 0 |
336 | 337 | ||
337 | create_new_file dd 2, 0, 0, 0, 0 |
338 | create_new_file dd 2, 0, 0, 0, 0 |
338 | db 0 |
339 | db 0 |
339 | dd current_filename |
340 | dd current_filename |
340 | 341 | ||
341 | create_new_folder dd 9, 0, 0, 0, 0 |
342 | create_new_folder dd 9, 0, 0, 0, 0 |
342 | db 0 |
343 | db 0 |
343 | .foldername dd 0 |
344 | .foldername dd 0 |
344 | 345 | ||
345 | write_to_file dd 3 |
346 | write_to_file dd 3 |
346 | .current_offset dd 0, 0 |
347 | .current_offset dd 0, 0 |
347 | .bufsize dd 0 |
348 | .bufsize dd 0 |
348 | .bufptr dd 0 |
349 | .bufptr dd 0 |
349 | db 0 |
350 | db 0 |
350 | dd current_filename |
351 | dd current_filename |
351 | 352 | ||
352 | socketdata rb 4096 |
353 | socketdata rb 4096 |
353 | current_url rb URLMAXLEN |
354 | current_url rb URLMAXLEN |
354 | current_filename rb FILENAMEMAXLEN |
355 | current_filename rb FILENAMEMAXLEN |
355 | 356 | ||
356 | ;===================================================================== |
357 | ;===================================================================== |
357 | ; NOTIFY DATA |
358 | ; NOTIFY DATA |
358 | timer dd 0 |
359 | timer dd 0 |
359 | params rb 256 |
360 | params rb 256 |
360 | ctrl: |
361 | ctrl: |
361 | .name rb 32 |
362 | .name rb 32 |
362 | .addr rd 1 |
363 | .addr rd 1 |
363 | rb 2048 |
364 | rb 2048 |
364 | 365 | ||
365 | sz_text: |
366 | sz_text: |
366 | db "Netsurf installer ", 0 |
367 | db "Netsurf installer ", 0 |
367 | sz_quote: |
368 | sz_quote: |
368 | db "'", 0 |
369 | db "'", 0 |
369 | sz_sec_line_start: |
370 | sz_sec_line_start: |
370 | db 10, "Fetching:",10, 0 |
371 | db 10, "Fetching:",10, 0 |
371 | sz_flags: |
372 | sz_flags: |
372 | db "Ddcpt", 0 |
373 | db "Ddcpt", 0 |
373 | 374 | ||
374 | sz_final_text: |
375 | sz_final_text: |
375 | db "Netsurf installer",10,"Download complete.",10,"Enjoy!",0 |
376 | db "Netsurf installer",10,"Download complete.",10,"Enjoy!",0 |
376 | 377 | ||
377 | fi_launch: |
378 | fi_launch: |
378 | dd 7, 0, params, 0, 0 |
379 | dd 7, 0, params, 0, 0 |
379 | db "@notify", 0 |
380 | db "@notify", 0 |
380 | 381 | ||
381 | fileopen dd 7 |
382 | fileopen dd 7 |
382 | dd 0 ; flags |
383 | dd 0 ; flags |
383 | dd 0 ; parameters |
384 | dd 0 ; parameters |
384 | dd 0 ; reserved |
385 | dd 0 ; reserved |
385 | dd 0 ; reserved |
386 | dd 0 ; reserved |
386 | db "/tmp0/1/netsurf-kolibrios", 0 ; path |
387 | db "/tmp0/1/netsurf-kolibrios", 0 ; path |
387 | ;===================================================================== |
388 | ;===================================================================== |
388 | 389 | ||
389 | I_END: |
390 | I_END: |