Rev 1510 | Details | Compare with Previous | Last modification | View Log
Rev | Author | Line No. | Line |
---|---|---|---|
68 | Alone | 1 | DEVICE ZXSPECTRUM128 |
14 | dimkam | 2 | include "../_sdk/sys_h.asm" |
3 | |||
73 | Alone | 4 | WGETBUF=0x0800 |
5 | ;WGETBUFSZ=0x0400 |
||
6 | ;WGETBEGINADDR=WGETBUF+WGETBUFSZ |
||
7 | ;WGETENDADDR=WGETBEGINADDR+2 |
||
8 | |||
59 | Alone | 9 | end1=0x3500 |
10 | |||
11 | DISKBUF=0x3500;0xb000 |
||
12 | DISKBUFsz=0x800;0x1000 |
||
13 | |||
344 | alone | 14 | LINEPIXELS=0x3d00 ;,wid8*2 (. ࠧ = 512 wid=2048) ;TODO ࠭ LINEGIF (⮡ pixels 諨 ࠭, attr ࠫ ᨨ) |
59 | Alone | 15 | |
344 | alone | 16 | SPOIL4B=0x4000 ;⥪ 4 , 0x3b00 ;࠭ 뫮 ࠭ ࠭, ᥩ ४砥 ࠭ ⨬ ⥪ |
668 | alone | 17 | INTSTACK=0x3ffc |
18 | STACK=0x3fc0 |
||
40 | alone | 19 | |
59 | Alone | 20 | end2=0x7e00 |
21 | |||
344 | alone | 22 | depkbuf=0x7e00 ;32K+ for zip (match length of 3-258 bytes) |
59 | Alone | 23 | buf64k=0 |
24 | |||
344 | alone | 25 | FREE=0x8000 ;᪠ jpeg, ப gif |
26 | LINE1=0x9400 ; ப 0x400*3? jpeg |
||
40 | alone | 27 | LINE1_sz=0x0c00 |
18 | dimkam | 28 | |
16 | dimkam | 29 | |
14 | dimkam | 30 | COLOR=7 |
32 | Alone | 31 | STATUSCOLOR=0x38 |
14 | dimkam | 32 | |
16 | dimkam | 33 | GIF_PIXELSIZE=0 |
34 | |||
28 | Alone | 35 | HTMLTOPY=0 |
31 | Alone | 36 | HTMLHGT=24 |
59 | Alone | 37 | SCROLLHGT=HTMLHGT*8;192;200 |
28 | Alone | 38 | |
344 | alone | 39 | BACKGROUNDCOLORLEVEL=0 ; ⪥ ப ( ࠢ쭮 ࠢ ⪥ ) |
40 | alone | 40 | |
447 | alone | 41 | MAXLINKSZ=256+256-1-2 ; ନ Yy |
59 | Alone | 42 | |
43 | EDITLINEY=192 |
||
44 | EDITLINEMAXVISIBLEX=72 |
||
45 | |||
444 | alone | 46 | key_up_scroll=key_ssup ;=F7! |
47 | key_down_scroll=key_ssdown ;=F6! |
||
59 | Alone | 48 | |
23 | dimkam | 49 | MACRO rdbyte |
50 | INC LY |
||
51 | LD A,(IY) |
||
52 | CALL Z,RDBYH |
||
18 | dimkam | 53 | ENDM |
54 | |||
59 | Alone | 55 | MACRO ziprdbyte |
56 | INC LY |
||
57 | LD A,(IY) |
||
58 | CALL Z,ZIPRDBYH |
||
59 | ENDM |
||
60 | |||
14 | dimkam | 61 | ;b=R/G/Bmin |
344 | alone | 62 | ;de 砫 R/G/B |
16 | dimkam | 63 | ;h=maxdistdiv |
344 | alone | 64 | ; ਭ 室 ⮫쪮 ⠢饩, ⠫ ⠥: |
14 | dimkam | 65 | macro DITHERMC1B ch0,ch1,ch2,ch3 |
16 | dimkam | 66 | ld a,(de) ;R(pixel) |
67 | inc e |
||
14 | dimkam | 68 | sub b ;Rmin |
69 | rra ;maybe<0 |
||
16 | dimkam | 70 | ld l,a ;h=maxdistdiv |
71 | ld a,(hl) ;inklevel |
||
14 | dimkam | 72 | cp ch0 ;chunklevel[x%4][y%4] |
73 | rl c ;bits |
||
16 | dimkam | 74 | ld a,(de) ;R(pixel) |
75 | inc e |
||
14 | dimkam | 76 | sub b ;Rmin |
77 | rra ;maybe<0 |
||
16 | dimkam | 78 | ld l,a ;h=maxdistdiv |
79 | ld a,(hl) ;inklevel |
||
14 | dimkam | 80 | cp ch1 ;chunklevel[x%4][y%4] |
81 | rl c ;bits |
||
16 | dimkam | 82 | ld a,(de) ;R(pixel) |
83 | inc e |
||
14 | dimkam | 84 | sub b ;Rmin |
85 | rra ;maybe<0 |
||
16 | dimkam | 86 | ld l,a ;h=maxdistdiv |
87 | ld a,(hl) ;inklevel |
||
14 | dimkam | 88 | cp ch2 ;chunklevel[x%4][y%4] |
89 | rl c ;bits |
||
16 | dimkam | 90 | ld a,(de) ;R(pixel) |
91 | inc e |
||
14 | dimkam | 92 | sub b ;Rmin |
93 | rra ;maybe<0 |
||
16 | dimkam | 94 | ld l,a ;h=maxdistdiv |
95 | ld a,(hl) ;inklevel |
||
14 | dimkam | 96 | cp ch3 ;chunklevel[x%4][y%4] |
97 | rl c ;bits |
||
98 | |||
16 | dimkam | 99 | ld a,(de) ;R(pixel) |
100 | inc e |
||
14 | dimkam | 101 | sub b ;Rmin |
102 | rra ;maybe<0 |
||
16 | dimkam | 103 | ld l,a ;h=maxdistdiv |
104 | ld a,(hl) ;inklevel |
||
14 | dimkam | 105 | cp ch0 ;chunklevel[x%4][y%4] |
106 | rl c ;bits |
||
16 | dimkam | 107 | ld a,(de) ;R(pixel) |
108 | inc e |
||
14 | dimkam | 109 | sub b ;Rmin |
110 | rra ;maybe<0 |
||
16 | dimkam | 111 | ld l,a ;h=maxdistdiv |
112 | ld a,(hl) ;inklevel |
||
14 | dimkam | 113 | cp ch1 ;chunklevel[x%4][y%4] |
114 | rl c ;bits |
||
16 | dimkam | 115 | ld a,(de) ;R(pixel) |
116 | inc e |
||
14 | dimkam | 117 | sub b ;Rmin |
118 | rra ;maybe<0 |
||
16 | dimkam | 119 | ld l,a ;h=maxdistdiv |
120 | ld a,(hl) ;inklevel |
||
14 | dimkam | 121 | cp ch2 ;chunklevel[x%4][y%4] |
122 | rl c ;bits |
||
16 | dimkam | 123 | ld a,(de) ;R(pixel) |
124 | inc e |
||
14 | dimkam | 125 | sub b ;Rmin |
126 | rra ;maybe<0 |
||
16 | dimkam | 127 | ld l,a ;h=maxdistdiv |
128 | ld a,(hl) ;inklevel |
||
14 | dimkam | 129 | cp ch3 ;chunklevel[x%4][y%4] |
130 | ld a,c |
||
131 | rla ;bits |
||
16 | dimkam | 132 | exx |
344 | alone | 133 | ld (de),a ; bits |
40 | alone | 134 | ;exx |
14 | dimkam | 135 | endm |
136 | |||
137 | org PROGSTART |
||
138 | cmd_begin |
||
344 | alone | 139 | ld sp,STACK ; ᪠ #3b00! OS |
668 | alone | 140 | call init |
141 | |||
344 | alone | 142 | ;curfulllink 㦥 ࠭ ਨ ᯮ짮 ⭮⥫ 뫮 |
143 | ;linkbuf ᮤন 뫪 ( ⭮⥫쭠) |
||
32 | Alone | 144 | if 1==0 |
145 | call setpgs_scr |
||
146 | call setpgcode4000 |
||
147 | ld de,0xc000;0x0801 |
||
148 | call setxymc |
||
149 | ld de,curfulllink;COMMANDLINE |
||
59 | Alone | 150 | call prtextmc |
32 | Alone | 151 | call setpgtemp8000 |
152 | endif |
||
31 | Alone | 153 | |
34 | Alone | 154 | ;call keepcurlink |
155 | |||
68 | Alone | 156 | jp browser_go_curfulllink |
32 | Alone | 157 | |
31 | Alone | 158 | browser_godownload |
159 | ld a,1 |
||
160 | ld (downloadflag),a |
||
28 | Alone | 161 | browser_go |
344 | alone | 162 | ;curfulllink ᮤন ⥪ 뫪 ( ), http://ser.ver 㦥 |
163 | ; linkbuf 뫪 ( 쭠) |
||
164 | ;TODO ४ ᪨ 㪢 뫪 %? ⮫쪮 ࠭ ? |
||
68 | Alone | 165 | ld hl,linkbuf |
166 | push hl |
||
167 | push hl |
||
168 | call strlen |
||
169 | inc hl |
||
170 | ;move block to end of buf: |
||
171 | pop de;ld de,linkbuf |
||
172 | ld b,h |
||
173 | ld c,l ;size |
||
174 | dec de ;linkbuf-1 |
||
175 | add hl,de ;end of data |
||
176 | ld de,linkbuf+(MAXLINKSZ+1)-1 |
||
177 | lddr |
||
178 | inc de ;begin of data |
||
179 | ex de,hl |
||
180 | pop de;ld de,linkbuf |
||
181 | recodelinkamp0 |
||
182 | ld a,(hl) |
||
183 | inc hl |
||
184 | ld (de),a |
||
185 | inc de |
||
186 | or a |
||
187 | jr z,recodelinkamp0q |
||
188 | cp '&' |
||
189 | jr nz,recodelinkamp0 |
||
190 | ld a,(hl) |
||
191 | cp 'a' |
||
192 | jr nz,recodelinkamp0 |
||
193 | inc hl |
||
194 | ld a,(hl) |
||
195 | cp 'm' |
||
196 | jr nz,recodelinkamp0dec1 |
||
197 | inc hl |
||
198 | ld a,(hl) |
||
199 | cp 'p' |
||
200 | jr nz,recodelinkamp0dec2 |
||
201 | inc hl |
||
202 | ld a,(hl) |
||
203 | cp ';' |
||
204 | inc hl |
||
205 | jr z,recodelinkamp0 |
||
206 | dec hl |
||
207 | dec hl |
||
208 | recodelinkamp0dec2 |
||
209 | dec hl |
||
210 | recodelinkamp0dec1 |
||
211 | dec hl |
||
212 | jr recodelinkamp0 |
||
213 | recodelinkamp0q |
||
214 | |||
34 | Alone | 215 | call keepcurlink |
668 | alone | 216 | |
73 | Alone | 217 | call makefulllink |
344 | alone | 218 | ;curfulllink ᮤন url, ᮡ࠭ ண curfullink 뫪 linkbuf |
32 | Alone | 219 | |
220 | if 1==0 |
||
221 | call setpgs_scr |
||
222 | call setpgcode4000 |
||
223 | ld de,0x0000 |
||
224 | call setxymc |
||
225 | ld de,curfulllink;COMMANDLINE |
||
226 | call prtextmc |
||
227 | call setpgtemp8000 |
||
228 | endif |
||
668 | alone | 229 | |
32 | Alone | 230 | browser_go_curfulllink |
668 | alone | 231 | |
34 | Alone | 232 | jr browser_backspaceq |
233 | keepcurlink |
||
344 | alone | 234 | ; backspace: ⮪ |
235 | ;histaddr 㪠뢠 ਨ |
||
31 | Alone | 236 | call setpghist |
237 | histaddr=$+1 |
||
34 | Alone | 238 | ld de,0xc000 |
239 | ld a,d |
||
447 | alone | 240 | cp -2 ;inc a |
31 | Alone | 241 | jr nz,keeptohist_nooverflow |
447 | alone | 242 | ld hl,0xc100+256 |
31 | Alone | 243 | ld de,0xc000 |
447 | alone | 244 | ld bc,0x3f00-256 |
31 | Alone | 245 | ldir ;forget oldest link |
246 | keeptohist_nooverflow |
||
32 | Alone | 247 | ld hl,curfulllink;linkbuf |
447 | alone | 248 | ld bc,254+256 |
31 | Alone | 249 | ldir |
34 | Alone | 250 | ld hl,html_curtopy |
40 | alone | 251 | ld c,2 |
252 | ldir |
||
34 | Alone | 253 | ld (histaddr),de |
40 | alone | 254 | ld (html_curtopy),bc ;0 |
34 | Alone | 255 | ret |
14 | dimkam | 256 | |
73 | Alone | 257 | remembercurlink |
31 | Alone | 258 | ld hl,(histaddr) |
259 | ld a,h |
||
260 | cp 0xc0 |
||
73 | Alone | 261 | ret z ;jr z,browser_reload ;no history |
31 | Alone | 262 | dec h |
447 | alone | 263 | dec h |
31 | Alone | 264 | ld (histaddr),hl |
265 | call setpghist |
||
32 | Alone | 266 | ld de,curfulllink;linkbuf |
447 | alone | 267 | ld bc,256+254 |
34 | Alone | 268 | ldir |
269 | ld de,html_curtopy |
||
270 | ldi |
||
271 | ldi |
||
73 | Alone | 272 | ret |
14 | dimkam | 273 | |
73 | Alone | 274 | browser_downloadthis |
275 | ld a,1 |
||
276 | ld (downloadflag),a |
||
277 | browser_reload |
||
344 | alone | 278 | ;histaddr 㪠뢠 ਨ |
73 | Alone | 279 | ;ld hl,(histaddr) |
280 | ;call setpghist |
||
281 | ;ld de,curfulllink;linkbuf |
||
282 | ;call strcopy |
||
283 | jr browser_backspaceq |
||
284 | |||
285 | browser_backspace |
||
344 | alone | 286 | ;ᯮ ⮪ , curfulllink |
287 | ;ᥩ histaddr 㪠뢠 ਨ. 㪠⥫ |
||
73 | Alone | 288 | call remembercurlink |
289 | |||
28 | Alone | 290 | browser_backspaceq |
344 | alone | 291 | ;curfulllink ᮤন url, ᮡ࠭ ண curfullink 뫪 linkbuf |
292 | ld sp,STACK ; ᪠ #3b00! OS |
||
14 | dimkam | 293 | |
31 | Alone | 294 | call unreservepages |
295 | xor a |
||
296 | ld h,a |
||
297 | ld l,a |
||
298 | ld (freemem_hl),hl |
||
299 | ld (freemem_a),a |
||
300 | |||
59 | Alone | 301 | call cleanstatusline |
302 | call browser_editline_print |
||
447 | alone | 303 | ;call setpgcode4000 ;ᠬ ⠭ |
23 | dimkam | 304 | call setpgtemp8000 |
18 | dimkam | 305 | |
1510 | alone | 306 | OS_GETTIMER ;dehl=timer |
307 | ld (timebegin),hl |
||
28 | Alone | 308 | |
32 | Alone | 309 | ld hl,curfulllink |
310 | call isprotocolpresent |
||
303 | alone | 311 | ;a=protocol (0=file, 1=http, 2=gopher, 3=https), hl=after "//" |
261 | alone | 312 | ld (curprotocol),a |
32 | Alone | 313 | push hl ;hl=after "//" |
28 | Alone | 314 | |
344 | alone | 315 | ; 㦭 ⮪ |
28 | Alone | 316 | ld bc,readstream_file |
317 | ld de,closestream_file |
||
318 | ld hl,openstream_file |
||
319 | or a |
||
320 | jr z,browser_go_changeprotocol_nohttp |
||
321 | ld bc,readstream_http |
||
322 | ld de,closestream_http |
||
323 | ld hl,openstream_http |
||
324 | browser_go_changeprotocol_nohttp |
||
325 | ld (openstream_patch),hl |
||
326 | ld (readstream_patch),bc |
||
327 | ld (closestream_patch),de |
||
32 | Alone | 328 | |
28 | Alone | 329 | pop hl |
330 | |||
344 | alone | 331 | ;hl=砫 path ⮪ |
447 | alone | 332 | ;모뢠 #... (TODO ࠭ ᯮ짮 室 类) |
333 | push hl |
||
334 | call strlen_tobc_keephl |
||
335 | jr z,browser_open_skip |
||
336 | ld a,'#' |
||
337 | cpir |
||
338 | jr nz,browser_open_skip |
||
339 | dec hl |
||
340 | ld (hl),0 |
||
341 | browser_open_skip |
||
342 | pop hl |
||
28 | Alone | 343 | |
344 | ex de,hl ;de=filename |
||
345 | openstream_patch=$+1 |
||
346 | call openstream_file |
||
31 | Alone | 347 | or a |
32 | Alone | 348 | jp nz,LOADERROR |
14 | dimkam | 349 | |
32 | Alone | 350 | xor a |
31 | Alone | 351 | downloadflag=$+1 |
32 | Alone | 352 | cp 0 |
31 | Alone | 353 | ld (downloadflag),a |
354 | jp nz,downloadfile |
||
355 | |||
42 | DimkaM | 356 | call initframes_time_scroll |
668 | alone | 357 | |
23 | dimkam | 358 | LD IY,DISKBUF+DISKBUFsz-1 |
16 | dimkam | 359 | |
28 | Alone | 360 | call RDBYTE |
32 | Alone | 361 | ;cp '<' |
362 | ;jp z,loadhtml |
||
363 | ;cp 0x0a ;speccy.info |
||
364 | ;jp z,loadhtml |
||
16 | dimkam | 365 | cp 'G' |
366 | jp z,loadgif |
||
59 | Alone | 367 | cp 0x89 |
368 | jp z,loadpng |
||
16 | dimkam | 369 | cp 0xff |
370 | jp z,loadjpeg |
||
371 | cp 'B' |
||
403 | alone | 372 | jr z,loadbmp |
373 | ld a,(DISKBUF+1) |
||
374 | cp '?' ;<?xml |
||
406 | alone | 375 | ld a,(DISKBUF) |
447 | alone | 376 | jp z,loadxml;svg ; ᪠ !DOCTYPE HTML svg |
32 | Alone | 377 | jp nz,loadhtml;loadbmp_fail |
28 | Alone | 378 | call RDBYTE |
16 | dimkam | 379 | cp 'M' |
32 | Alone | 380 | jp nz,loadhtml;loadbmp_fail |
403 | alone | 381 | loadbmp |
344 | alone | 382 | ; I 1 0 2 ਧ -䠩 - ᨬ 'BM' (+) |
383 | ; 2 2 4 -䠩 () ( , ) |
||
384 | ; 3 6 4 (=0) ( ) |
||
385 | ; 4 10 4 饭 砫 䠩 |
||
386 | ; 砫 ᠭ ࠦ ( , 118) |
||
16 | dimkam | 387 | |
460 | alone | 388 | ; II 5 14 4 ᠭ ࠦ (=40 WINDOWS) ( , ᥣ 40 - Linux !) |
344 | alone | 389 | ; 6 18 4 ਭ ࠦ ( ᥫ) (+) |
390 | ; 7 22 4 ࠦ ( ᥫ) (+) |
||
391 | ; 8 26 2 ⢮ 梥⮢ ⥩ (=1) ( , ᥣ 1) |
||
392 | ; 9 28 2 ⢮ ᥫ (+ 4, 8, 24 , 1) |
||
393 | ; 10 30 4 ᦠ ଠ樨 (0,1 2) ( ) |
||
394 | ; 11 34 4 ࠧ ࠦ ( , ) |
||
395 | ; 12 38 4 㥬 ਧ- ࠧ襭 ( ) |
||
396 | ; 13 42 4 㥬 ⨪쭮 ࠧ襭 ( ) |
||
397 | ; 14 46 4 ⢮ 梥⮢ (+) |
||
398 | ; 15 50 4 ⢮ 梥⮢ ( ) |
||
16 | dimkam | 399 | |
344 | alone | 400 | ; (B, G, R, 0) |
16 | dimkam | 401 | |
344 | alone | 402 | ; ⨭ ( ப 4) |
16 | dimkam | 403 | |
460 | alone | 404 | ld b,18-2 -4+1 |
405 | ;loadbmp_skipheader0 |
||
406 | ; call RDBYTE |
||
407 | ; djnz loadbmp_skipheader0 |
||
408 | call read_b_bytes |
||
409 | call GETDWORD_slow |
||
410 | push de |
||
411 | |||
16 | dimkam | 412 | call GETDWORD_slow |
460 | alone | 413 | ex de,hl ;hl=wid ;TODO |
23 | dimkam | 414 | call setpicwid |
16 | dimkam | 415 | call GETDWORD_slow |
40 | alone | 416 | ;ld (curpichgt),de |
460 | alone | 417 | ex de,hl ;TODO |
40 | alone | 418 | call setpichgt |
16 | dimkam | 419 | |
460 | alone | 420 | pop hl |
421 | ld a,l |
||
422 | sub 12 |
||
423 | ld b,a |
||
424 | ;ld b,54-26 |
||
59 | Alone | 425 | call read_b_bytes |
16 | dimkam | 426 | |
28 | Alone | 427 | ;ld de,0 |
428 | ;ld hl,0 ;dehl=shift in file |
||
429 | ;ld a,(filehandle) |
||
430 | ;ld b,a |
||
431 | ;OS_SEEKHANDLE |
||
40 | alone | 432 | |
344 | alone | 433 | ;TODO 㧨 ( 㧨 , 窨 , ⮣ bmp 㦥) |
18 | dimkam | 434 | |
28 | Alone | 435 | call reservepage |
436 | ret nz ;no memory |
||
437 | ld hl,DISKBUF |
||
438 | ld de,0xc000 |
||
439 | ld bc,DISKBUFsz |
||
440 | ldir ;beginning of file is already read |
||
441 | ld hl,0x4000-DISKBUFsz |
||
42 | DimkaM | 442 | jr nvview_loadbmp0go |
28 | Alone | 443 | |
42 | DimkaM | 444 | nvview_loadbmp0 |
14 | dimkam | 445 | call reservepage |
446 | ret nz ;no memory |
||
447 | |||
448 | ld de,0xc000 |
||
449 | ld hl,0x4000 |
||
42 | DimkaM | 450 | nvview_loadbmp0go |
31 | Alone | 451 | ;DE = Buffer address, HL = Number of bytes to read |
28 | Alone | 452 | push hl |
453 | call readstream |
||
61 | Alone | 454 | ;HL = Number of bytes actually read |
14 | dimkam | 455 | ld b,h |
456 | ld c,l |
||
28 | Alone | 457 | pop hl |
447 | alone | 458 | xor a |
14 | dimkam | 459 | sbc hl,bc ;NZ = bytes to read != bytes actually read |
42 | DimkaM | 460 | jr z,nvview_loadbmp0 |
668 | alone | 461 | |
447 | alone | 462 | ld h,a |
463 | ld l,a ;0 |
||
42 | DimkaM | 464 | ld a,(npages) |
465 | srl a |
||
466 | rr h |
||
467 | srl a |
||
468 | rr h |
||
469 | ld (freemem_hl),hl |
||
344 | alone | 470 | ld (freemem_a),a ; (TODO 뢠 bmp ଠ쭮) |
668 | alone | 471 | |
42 | DimkaM | 472 | call reservefirstframeaddr |
344 | alone | 473 | call initframe ; ࠧ ⨭ setpicwid, setpichgt ⠭ gifframetime ;뢠 祭 |
474 | ;ahl= 祭 |
||
42 | DimkaM | 475 | |
344 | alone | 476 | ld hl,54 ;TODO ⭮⥫쭮 砫 bmp |
42 | DimkaM | 477 | xor a |
344 | alone | 478 | ;३ (⮡ ᮢ ᭨ , 㦭 drawscreenline_frombuf): |
42 | DimkaM | 479 | if GIF_PIXELSIZE |
480 | ld de,(curpicwid) |
||
481 | else |
||
482 | ld de,(curpicwidx3) |
||
483 | endif |
||
484 | dec de |
||
485 | set 1,e |
||
486 | set 0,e |
||
344 | alone | 487 | inc de ;㣫 ࠧ ப 4 : 0=>0, 1..3=>4, 4=>4... |
42 | DimkaM | 488 | ld (bmplinestep),de |
489 | ld bc,(curpichgt) |
||
490 | bmpfindlastline0 |
||
491 | add hl,de |
||
492 | adc a,0 |
||
493 | dec hl |
||
494 | cpi |
||
495 | jp pe,bmpfindlastline0 |
||
496 | ld (putchar_hl),hl |
||
497 | ld (putchar_a),a |
||
498 | |||
499 | call setpgtemp8000 |
||
500 | |||
501 | ld bc,(curpichgt) |
||
502 | fill0 |
||
503 | push bc |
||
504 | |||
505 | ld hl,(putchar_hl) |
||
506 | ld a,(putchar_a) |
||
507 | bmplinestep=$+1 |
||
508 | ld bc,0 |
||
509 | or a |
||
510 | sbc hl,bc |
||
511 | sbc a,0 |
||
512 | ld (putchar_hl),hl |
||
513 | ld (putchar_a),a |
||
514 | |||
515 | call islinevisible ;CY=invisible |
||
516 | jr c,bmpgetline_ifvisibleq |
||
517 | ld hl,(putchar_hl) |
||
518 | ld a,(putchar_a) |
||
519 | ld bc,(bmplinestep) |
||
520 | ld de,LINEGIF |
||
521 | call getfrommem |
||
522 | ld hl,LINEGIF |
||
523 | call drawscreenline_frombuf |
||
344 | alone | 524 | call keepconvertedline ; 祭 ப LINEPIXELS |
42 | DimkaM | 525 | bmpgetline_ifvisibleq |
526 | call inccury |
||
527 | |||
528 | pop bc |
||
529 | cpi |
||
530 | jp pe,fill0 |
||
531 | jp showgif ;jp closequit |
||
668 | alone | 532 | |
31 | Alone | 533 | downloadfile |
534 | call reservepage |
||
535 | ret nz ;no memory |
||
668 | alone | 536 | |
344 | alone | 537 | ld de,downloadfilename ;TODO ᣥ ૠ HTTP ⢥ + । |
31 | Alone | 538 | ;de=filename |
539 | OS_CREATEHANDLE |
||
540 | ;b=new file handle |
||
541 | ld a,b |
||
542 | ld (downloadfilehandle),a |
||
668 | alone | 543 | |
31 | Alone | 544 | downloadfile0 |
545 | ld de,0xc000 |
||
546 | ld hl,0x4000 |
||
547 | ;DE = Buffer address, HL = Number of bytes to read |
||
548 | push hl |
||
549 | call readstream |
||
550 | ;HL = Number of bytes actually read, A=error |
||
551 | |||
552 | push hl |
||
553 | ld de,0xc000 |
||
554 | downloadfilehandle=$+1 |
||
555 | ld b,0 |
||
556 | OS_WRITEHANDLE |
||
557 | pop hl |
||
558 | |||
559 | ld b,h |
||
560 | ld c,l |
||
561 | pop hl |
||
562 | or a |
||
563 | sbc hl,bc ;NZ = bytes to read != bytes actually read |
||
564 | jr z,downloadfile0 |
||
668 | alone | 565 | |
31 | Alone | 566 | ld a,(downloadfilehandle) |
567 | ld b,a |
||
568 | OS_CLOSEHANDLE |
||
668 | alone | 569 | |
31 | Alone | 570 | ld hl,downloadfilename |
344 | alone | 571 | inc (hl) ;TODO |
31 | Alone | 572 | jp closequit |
573 | |||
447 | alone | 574 | DOCTYPEsz=9 |
575 | loadxml;svg |
||
576 | ; ᪠ !DOCTYPE HTML svg |
||
577 | ;a=first char |
||
578 | ld e,a |
||
579 | ld hl,DISKBUF |
||
580 | ld bc,DISKBUFsz-DOCTYPEsz |
||
581 | ld a,'!' |
||
582 | cpir ;! |
||
555 | alone | 583 | ld bc,DOCTYPEsz-1 |
447 | alone | 584 | add hl,bc |
585 | ld a,(hl) |
||
586 | or 0x20 |
||
587 | cp 's' |
||
588 | ld a,e ;ld a,(iy) ;first char |
||
589 | jp nz,loadhtml |
||
668 | alone | 590 | |
447 | alone | 591 | push af |
406 | alone | 592 | push iy |
403 | alone | 593 | ld e,3 ;6912 |
594 | OS_SETGFX |
||
406 | alone | 595 | call setpgscr4000 |
596 | call setpgtemp8000 |
||
597 | call setpgsvgc000 |
||
403 | alone | 598 | LD HL,#4000 |
599 | LD DE,#4001 |
||
600 | LD BC,#1800 |
||
601 | LD (HL),L |
||
602 | LDIR |
||
603 | LD (HL),7 |
||
604 | LD BC,#2FF |
||
605 | LDIR |
||
406 | alone | 606 | pop iy |
447 | alone | 607 | pop af ;a=(iy)=first char |
403 | alone | 608 | call readsvg |
407 | alone | 609 | call setpgcode4000 |
610 | loadsvgq0 |
||
611 | call yieldgetkeynolang ;z=nokey |
||
612 | jr z,loadsvgq0 |
||
555 | alone | 613 | cp key_enter |
614 | jr nz,loadsvgq0 |
||
407 | alone | 615 | ld e,2 ;MC hires mode |
616 | OS_SETGFX |
||
555 | alone | 617 | ld e,0 |
618 | OS_CLS |
||
619 | loadsvgq1 |
||
620 | call yieldgetkeynolang |
||
407 | alone | 621 | call globalbuttons |
555 | alone | 622 | ;jp browser_backspace |
623 | jr loadsvgq1 |
||
407 | alone | 624 | ;jr showgif |
403 | alone | 625 | |
59 | Alone | 626 | loadpng |
627 | call setpgtemp8000 |
||
628 | call readpng |
||
629 | jr showgif |
||
630 | |||
16 | dimkam | 631 | loadjpeg |
42 | DimkaM | 632 | ;call initframes_time_scroll |
16 | dimkam | 633 | call readjpeg |
59 | Alone | 634 | jr showgif |
16 | dimkam | 635 | |
636 | loadgif |
||
42 | DimkaM | 637 | ;call initframes_time_scroll |
16 | dimkam | 638 | call readgif |
639 | |||
32 | Alone | 640 | showgif |
42 | DimkaM | 641 | call showtime |
642 | |||
40 | alone | 643 | showgif_firstframe |
34 | Alone | 644 | ;jr $ |
645 | nframes=$+1 |
||
344 | alone | 646 | ld bc,0 ;0 1 몫 ࠢ |
40 | alone | 647 | dec bc |
648 | |||
649 | ld hl,(curpichgt_visible) |
||
650 | ld de,SCROLLHGT+1 |
||
651 | or a |
||
652 | sbc hl,de |
||
653 | jr nc,showgif_drawevenifoneframe |
||
654 | ld hl,(keepframe_linesize) |
||
655 | ld de,80+1 |
||
656 | or a |
||
657 | sbc hl,de |
||
658 | jr nc,showgif_drawevenifoneframe |
||
659 | dec bc |
||
660 | bit 7,b |
||
661 | inc bc |
||
344 | alone | 662 | jp nz,closequit;showgifq ; 0 1 |
40 | alone | 663 | showgif_drawevenifoneframe |
664 | |||
32 | Alone | 665 | firstframeaddr=$+1 |
666 | ld hl,0 |
||
667 | firstframeaddrHSB=$+1 |
||
668 | ld a,0 |
||
344 | alone | 669 | ;bc= -1 |
32 | Alone | 670 | showgif_frames0 |
671 | push bc |
||
668 | alone | 672 | |
32 | Alone | 673 | push hl |
674 | push af |
||
1510 | alone | 675 | OS_GETTIMER ;dehl=timer |
32 | Alone | 676 | pop af |
677 | ex (sp),hl |
||
344 | alone | 678 | call showframe ;⠥ showframetime |
668 | alone | 679 | |
32 | Alone | 680 | pop de ;timer |
668 | alone | 681 | |
32 | Alone | 682 | push af |
683 | push hl |
||
668 | alone | 684 | |
32 | Alone | 685 | showframetime=$+1 |
686 | ld hl,0 ;in 1/100 s |
||
687 | inc hl |
||
688 | srl h |
||
689 | rr l |
||
690 | add hl,de ;max timer for this frame |
||
691 | ld (showframemaxtimer),hl |
||
692 | |||
40 | alone | 693 | showframe_delay0 |
59 | Alone | 694 | call yieldgetkeynolang ;z=nokey |
116 | alone | 695 | ;cp key_enter |
42 | DimkaM | 696 | ;jp z,closequit ;TODO restore stack |
697 | ;cp 'z' |
||
698 | ;jr z,showframe_setzoom |
||
699 | call globalbuttons |
||
40 | alone | 700 | ld hl,(xscroll) |
116 | alone | 701 | cp key_left |
40 | alone | 702 | jr z,showframe_left |
116 | alone | 703 | cp key_right |
40 | alone | 704 | jr z,showframe_right |
705 | ld hl,(yscroll) |
||
116 | alone | 706 | cp key_down |
40 | alone | 707 | jr z,showframe_down |
116 | alone | 708 | cp key_up |
40 | alone | 709 | jr z,showframe_up |
710 | showframe_nokey |
||
1510 | alone | 711 | OS_GETTIMER ;dehl=timer |
32 | Alone | 712 | showframemaxtimer=$+1 |
713 | ld bc,0 ;max timer for this frame |
||
714 | or a |
||
715 | sbc hl,bc |
||
40 | alone | 716 | jp m,showframe_delay0 ;timer<maxtimer |
717 | |||
32 | Alone | 718 | pop hl |
719 | pop af |
||
116 | alone | 720 | |
32 | Alone | 721 | pop bc |
40 | alone | 722 | dec bc |
723 | bit 7,b |
||
724 | jr z,showgif_frames0 |
||
32 | Alone | 725 | |
42 | DimkaM | 726 | jp showgif_firstframe |
32 | Alone | 727 | |
42 | DimkaM | 728 | showframe_setzoom |
729 | ld hl,setzoom_patch |
||
730 | ld a,(hl) |
||
731 | xor 0x80 |
||
732 | ld (hl),a |
||
733 | jp browser_reload |
||
734 | |||
344 | alone | 735 | ;TODO , প 誮 쪠, ᯥ ⮫쪮 ࠧ |
32 | Alone | 736 | |
40 | alone | 737 | showframe_left |
738 | ;hl=xscroll |
||
739 | dec hl |
||
42 | DimkaM | 740 | res 0,l |
40 | alone | 741 | bit 7,h |
742 | jr nz,showframe_nokey |
||
743 | jr showframe_leftrightq |
||
32 | Alone | 744 | |
40 | alone | 745 | showframe_right |
746 | ;hl=xscroll |
||
344 | alone | 747 | ; xscroll, ࠢ ࠭ (=keepframe_linesize-xscroll) 砥 <80 |
40 | alone | 748 | inc hl |
42 | DimkaM | 749 | inc hl |
40 | alone | 750 | ex de,hl |
751 | ld hl,(keepframe_linesize) |
||
752 | or a |
||
753 | sbc hl,de |
||
754 | ld bc,80 |
||
755 | or a |
||
756 | sbc hl,bc |
||
757 | ex de,hl |
||
42 | DimkaM | 758 | jr nc,showframe_leftrightq |
344 | alone | 759 | ;। : xscroll=keepframe_linesize-80 >=0 |
42 | DimkaM | 760 | ld hl,(keepframe_linesize) |
761 | or a |
||
762 | sbc hl,bc |
||
40 | alone | 763 | jr c,showframe_nokey |
764 | showframe_leftrightq |
||
765 | ld (xscroll),hl |
||
766 | jr showframe_nokey |
||
32 | Alone | 767 | |
40 | alone | 768 | showframe_up |
769 | ;hl=yscroll |
||
42 | DimkaM | 770 | ld bc,8 |
771 | xor a |
||
772 | sbc hl,bc |
||
773 | jr nc,showframe_updownq |
||
774 | ld h,a |
||
775 | ld l,a |
||
40 | alone | 776 | jr showframe_updownq |
777 | |||
778 | showframe_down |
||
779 | ;hl=yscroll |
||
344 | alone | 780 | ; yscroll, ࠭ (=curpichgt_visible-yscroll) 砥 <SCROLLHGT(200) |
42 | DimkaM | 781 | ld bc,8 |
782 | add hl,bc |
||
40 | alone | 783 | ex de,hl |
784 | ld hl,(curpichgt_visible) |
||
785 | or a |
||
786 | sbc hl,de |
||
787 | ld bc,SCROLLHGT;200 |
||
788 | or a |
||
789 | sbc hl,bc |
||
790 | ex de,hl |
||
42 | DimkaM | 791 | jr nc,showframe_updownq |
344 | alone | 792 | ;। : yscroll=curpichgt_visible-SCROLLHGT >=0 |
42 | DimkaM | 793 | ld hl,(curpichgt_visible) |
794 | or a |
||
795 | sbc hl,bc |
||
40 | alone | 796 | jr c,showframe_nokey |
797 | showframe_updownq |
||
798 | ld (yscroll),hl |
||
799 | jr showframe_nokey |
||
800 | |||
28 | Alone | 801 | loadbmp_fail |
23 | dimkam | 802 | closequit |
31 | Alone | 803 | call closestream |
42 | DimkaM | 804 | jr getkeyquit |
14 | dimkam | 805 | |
32 | Alone | 806 | LOADERROR |
807 | call closestream |
||
808 | ld de,tloaderr |
||
809 | jr TYPE_ERROR |
||
28 | Alone | 810 | CONNECTIONERROR |
32 | Alone | 811 | ld de,tconnerr |
812 | TYPE_ERROR |
||
813 | push de |
||
814 | call setpgs_scr |
||
815 | call setpgcode4000 |
||
816 | ld a,STATUSCOLOR |
||
817 | call initprcharmc |
||
59 | Alone | 818 | ld de,0xc048 |
32 | Alone | 819 | call setxymc |
820 | pop de |
||
821 | call prtextmc |
||
822 | |||
16 | dimkam | 823 | ERROR ;for jpeg |
824 | ERROR2 |
||
825 | ERROR4 |
||
31 | Alone | 826 | getkeyquit |
32 | Alone | 827 | getkeyquit0 |
344 | alone | 828 | ;YIELD ;halt ; ᤥ di:rst #38, 1.ᤢ ⠩ 2. 뢠, ei, |
32 | Alone | 829 | ;GET_KEY ;OS_GETKEYNOLANG |
830 | ;ld a,c ;keynolang |
||
831 | call yieldgetkeynolang |
||
42 | DimkaM | 832 | call globalbuttons |
833 | jr getkeyquit0 |
||
834 | |||
835 | globalbuttons |
||
116 | alone | 836 | cp key_backspace |
31 | Alone | 837 | jp z,browser_backspace |
838 | cp '5' |
||
839 | jp z,browser_reload |
||
42 | DimkaM | 840 | cp 'z' |
841 | jp z,showframe_setzoom |
||
31 | Alone | 842 | cp 's' |
843 | jp z,browser_downloadthis |
||
59 | Alone | 844 | cp 'e' |
845 | jp z,browser_editline |
||
116 | alone | 846 | cp key_esc |
42 | DimkaM | 847 | ret nz |
31 | Alone | 848 | browser_quit |
74 | Alone | 849 | ld a,(wgetloaded_pid) |
850 | or a |
||
851 | jr z,browser_quitq |
||
852 | |||
344 | alone | 853 | ;TODO , wget : |
74 | Alone | 854 | ld e,a |
875 | alone | 855 | OS_CHECKPID |
74 | Alone | 856 | or a |
875 | alone | 857 | jr z,browser_quitq ;dead |
74 | Alone | 858 | |
859 | ld a,(wgetmainpg) |
||
860 | SETPG32KHIGH |
||
861 | ld a,0xff |
||
862 | ld (0xc000+COMMANDLINE+2),a |
||
863 | browser_quitq |
||
16 | dimkam | 864 | QUIT |
31 | Alone | 865 | |
501 | alone | 866 | oraret |
503 | alone | 867 | or a |
501 | alone | 868 | ret |
32 | Alone | 869 | yieldgetkeynolang |
444 | alone | 870 | ;out: z=no key, no action |
871 | YIELD ;halt ; ᤥ di:rst 0x38, 1.ᤢ ⠩ 2. 뢠, ei, |
||
872 | GET_KEY |
||
873 | ld lx,a ;keylang |
||
503 | alone | 874 | jr nz,oraret ;no focus (a=0, nz) => ret with Z |
875 | ;jr z,yieldgetkeynolang_focus |
||
876 | ;;ld de,(control_imer_oldmousecoords) ;no focus |
||
877 | ;xor a |
||
878 | ;ret |
||
879 | ;yieldgetkeynolang_focus |
||
501 | alone | 880 | cp key_redraw ;!=0 |
503 | alone | 881 | jr z,oraret ;a!=0 => ret with NZ ; , ࠭ (NZ!) |
444 | alone | 882 | ;hl=(sysmousebuttons) |
883 | ld a,l |
||
884 | and 0xf0 |
||
885 | control_imer_oldmousewheel=$+2 |
||
886 | ld hx,0 |
||
887 | ld (control_imer_oldmousewheel),a |
||
888 | sub hx |
||
889 | ld (mouse_scrollvalue),a |
||
890 | jr z,yieldgetkeynolang_key |
||
891 | ;jp p,yieldgetkeynolang_scrollup |
||
892 | ;neg |
||
893 | ;ld (mouse_scrollvalue),a |
||
894 | ld a,key_down_scroll |
||
1135 | alone | 895 | ret p;m ;nz |
444 | alone | 896 | ;yieldgetkeynolang_scrollup |
897 | ld a,key_up_scroll |
||
898 | ret ;nz |
||
899 | yieldgetkeynolang_key |
||
900 | ld a,0 |
||
901 | ld (mouse_scrollvalue),a ;default scrollvalue |
||
902 | ld a,l |
||
903 | cpl |
||
904 | ld l,a |
||
905 | bit 0,l ;LMB |
||
906 | ld a,key_enter |
||
907 | ret nz |
||
908 | bit 1,l ;RMB |
||
909 | ld a,key_backspace |
||
910 | ret nz |
||
911 | ld a,lx ;keylang |
||
912 | or a ;cp NOKEY ;keylang==0? |
||
913 | ret nz ;jr nz,$+3 |
||
914 | cp c ;keynolang==0? |
||
915 | ret nz |
||
916 | ;no action? mouse coords change is also an action |
||
917 | push bc |
||
918 | control_imer_oldmousecoords=$+1 |
||
919 | ld bc,0 |
||
920 | ld (control_imer_oldmousecoords),de |
||
921 | ld a,b |
||
922 | sub d |
||
923 | ld d,a |
||
924 | ld a,e |
||
925 | sub c |
||
926 | ld e,a |
||
927 | ld (control_imer_mousecoordsdelta),de |
||
928 | ld a,d |
||
929 | or e |
||
930 | ld a,0 |
||
931 | pop bc |
||
932 | ret ;z/nz |
||
32 | Alone | 933 | |
31 | Alone | 934 | closestream |
935 | closestream_patch=$+1 |
||
936 | jp closestream_file |
||
16 | dimkam | 937 | |
32 | Alone | 938 | tconnerr |
939 | db "conn.err",0 |
||
940 | tloaderr |
||
941 | db "load err",0 |
||
668 | alone | 942 | |
42 | DimkaM | 943 | showtime |
944 | call setpgcode4000 |
||
945 | ld a,STATUSCOLOR |
||
946 | call initprcharmc |
||
947 | |||
1510 | alone | 948 | OS_GETTIMER ;dehl=timer |
42 | DimkaM | 949 | timebegin=$+1 |
950 | ld de,0 |
||
951 | or a |
||
952 | sbc hl,de |
||
953 | ld de,0xc04a |
||
954 | ;d=y, e=x8 |
||
955 | ;hl=time (frames) |
||
956 | jp prnumfrac |
||
668 | alone | 957 | |
42 | DimkaM | 958 | showmem |
959 | ld a,(npages) |
||
960 | npages_old=$+1 |
||
961 | cp -1 |
||
962 | ret z |
||
963 | ld (npages_old),a |
||
964 | ld l,a |
||
965 | ld h,0 |
||
966 | push hl |
||
967 | call setpgcode4000 |
||
968 | ld a,STATUSCOLOR |
||
969 | call initprcharmc |
||
970 | pop hl |
||
971 | ld de,0xc046 |
||
972 | jp prnum123 |
||
668 | alone | 973 | |
59 | Alone | 974 | cleanstatusline |
975 | call setpgs_scr |
||
976 | call setpgcode4000 |
||
977 | xor a |
||
978 | ld (browser_editline_scroll),a |
||
979 | ld hl,EDITLINEY*256+(40*192) |
||
980 | ld a,STATUSCOLOR |
||
981 | call cleanlinemc |
||
982 | ;ld a,STATUSCOLOR |
||
983 | jp initprcharmc |
||
668 | alone | 984 | |
28 | Alone | 985 | ;hl = poi to filename in string |
986 | ;out: de = after last slash |
||
987 | findlastslash. |
||
988 | nfopenfnslash. |
||
989 | ld d,h |
||
990 | ld e,l ;de = after last slash |
||
991 | nfopenfnslash0. |
||
992 | ld a,[hl] |
||
993 | inc hl |
||
994 | or a |
||
32 | Alone | 995 | ret z |
28 | Alone | 996 | cp '/' |
997 | jr nz,nfopenfnslash0. |
||
998 | jr nfopenfnslash. |
||
16 | dimkam | 999 | |
1656 | dimkam | 1000 | |
1001 | |||
28 | Alone | 1002 | strcopy |
1003 | ;hl->de |
||
668 | alone | 1004 | ;out: hl,de after terminator |
1005 | xor a |
||
28 | Alone | 1006 | strcopy0 |
668 | alone | 1007 | cp (hl) |
28 | Alone | 1008 | ldi |
1009 | jr nz,strcopy0 |
||
16 | dimkam | 1010 | ret |
1656 | dimkam | 1011 | |
73 | Alone | 1012 | makefulllink |
1013 | ;curfulllink = curfulllink+linkbuf |
||
1014 | ld hl,linkbuf |
||
344 | alone | 1015 | ; 뫪 稭 , १ , ࢥ |
73 | Alone | 1016 | ld a,(hl) |
1017 | cp '/' |
||
1018 | jr z,browser_go_rootlink ;"/Timex" |
||
668 | alone | 1019 | |
73 | Alone | 1020 | call isprotocolpresent |
1021 | ;nz=protocol absent (hl=link), z=protocol present (a=protocol (0=file, 1=http), hl=after "//") |
||
344 | alone | 1022 | jr z,browser_go_protocolpresent ;⮪ - linkbuf ᮤন 뫪 ( ⮫쪮 / 砥 http://ser.ver) |
73 | Alone | 1023 | ld a,(linkbuf+1) |
1024 | sub ':' |
||
1025 | jr z,browser_go_defaultprotocolpresent ;1:/file... => file://1:/file... |
||
344 | alone | 1026 | ; ⮪ - ⥪騩 curfulllink (.. १ ) ਪ 뫪 ( ⮬ ../) |
1027 | ; http://ser.ver 㦥 ? ᥣ! , |
||
73 | Alone | 1028 | ld hl,curfulllink |
1029 | call isprotocolpresent |
||
1030 | ;a=protocol (0=file, 1=http), hl=after "//" |
||
250 | alone | 1031 | push hl |
1032 | call findlastslash. ;out: de = after last slash or beginning |
||
1033 | pop hl |
||
1034 | or a |
||
1035 | sbc hl,de |
||
1036 | jr nz,browser_go_noaddslashafterserver |
||
1037 | add hl,de |
||
1038 | push hl ;after "//" |
||
1039 | call addslashafterserver |
||
1040 | pop hl |
||
1041 | call findlastslash. ;out: de = after last slash |
||
1042 | browser_go_noaddslashafterserver |
||
1043 | ;de=curfulllink+...=end of curdir (after slash) |
||
73 | Alone | 1044 | ld hl,linkbuf |
1045 | browser_go_chdir |
||
1046 | ld a,'.' |
||
1047 | cp (hl) |
||
1048 | jr nz,browser_go_chdirq |
||
1049 | inc hl ;skip dot |
||
1050 | ld a,(hl) |
||
1051 | cp '/' |
||
1052 | inc hl ;if nz,skip another dot supposed |
||
1053 | jr z,browser_go_dotslash |
||
1054 | ld a,(hl) |
||
1055 | or a |
||
1056 | jr z,$+3 |
||
1057 | inc hl ;skip / supposed |
||
1058 | ;hl=linkbuf+... (path/file without ../) |
||
1059 | ;de=curfulllink+...=end of curdir (after slash) |
||
1060 | ;remove last element of curdir = move de to previous slash |
||
1061 | dec de ;at slash |
||
1062 | dec de |
||
1063 | ld a,(de) |
||
1064 | inc de |
||
1065 | inc de ;after slash |
||
1066 | cp '/' ;is it "//"? |
||
1067 | jr z,browser_go_chdir_error |
||
1068 | dec de ;at slash |
||
1069 | ex de,hl ;hl=at slash |
||
1070 | dec hl |
||
1071 | ld a,'/' |
||
1072 | ld b,-1 |
||
1073 | cpdr |
||
1074 | inc hl ;at previous slash (might be last slash of "//") |
||
1075 | inc hl ;after slash |
||
1076 | ex de,hl ;de=curfulllink+...=end of curdir (after slash) |
||
1077 | jr browser_go_chdir |
||
1078 | browser_go_chdir_error |
||
1079 | browser_go_chdirq |
||
1080 | ;hl=linkbuf+... (path/file without ../) |
||
1081 | ;de=curfulllink+...=end of curdir (after slash) |
||
1082 | call strcopy |
||
1083 | jr browser_go_protocolpresentq |
||
1084 | browser_go_defaultprotocolpresent |
||
1085 | ;1:/file... => file://1:/file... |
||
1086 | ;a=0 |
||
1087 | call adddefaultprotocol |
||
1088 | jr browser_go_protocolpresentq |
||
1089 | browser_go_dotslash=browser_go_chdir ;"./Timex" |
||
1090 | |||
1091 | browser_go_rootlink |
||
1092 | ;"/Timex" |
||
1093 | ;hl=linkbuf+... at slash |
||
447 | alone | 1094 | ; 뫪 稭 //, १ , ⮪ |
1095 | inc hl |
||
1096 | ld a,(hl) |
||
1097 | cp '/' |
||
1098 | jr z,browser_go_rootprotocol |
||
1099 | dec hl |
||
73 | Alone | 1100 | push hl |
1101 | ld hl,curfulllink |
||
1102 | call isprotocolpresent |
||
1103 | ;a=protocol (0=file, 1=http), hl=after "//" |
||
1104 | call findslash |
||
1105 | dec hl ;at slash |
||
1106 | ex de,hl ;de=curfulllink+ after server (at slash) |
||
1107 | pop hl |
||
1108 | jr browser_go_copyto;linkbuf |
||
447 | alone | 1109 | |
73 | Alone | 1110 | browser_go_protocolpresent |
1111 | ;a=protocol (0=file, 1=http), hl=after "//" |
||
1112 | call addslashafterserver ;add / after http://ser.ver |
||
1113 | ld de,curfulllink |
||
1114 | ;browser_go_copytolinkbuf |
||
1115 | ld hl,linkbuf |
||
1116 | browser_go_copyto |
||
1117 | call strcopy |
||
1118 | browser_go_protocolpresentq |
||
344 | alone | 1119 | ;curfulllink ᮤন url, ᮡ࠭ ண curfullink 뫪 linkbuf |
73 | Alone | 1120 | ret |
1121 | |||
447 | alone | 1122 | browser_go_rootprotocol |
1123 | inc hl |
||
1124 | ;hl=linkbuf+... after "//" |
||
1125 | push hl |
||
1126 | ld hl,curfulllink |
||
1127 | call isprotocolpresent |
||
1128 | ;a=protocol (0=file, 1=http), hl=after "//" |
||
1129 | ex de,hl ;de=curfulllink+ after protocol:// |
||
1130 | pop hl |
||
1131 | jr browser_go_copyto;linkbuf |
||
1132 | |||
32 | Alone | 1133 | adddefaultprotocol |
1134 | ;1:/file... => file://1:/file... |
||
1135 | ;ser.ver... => http://ser.ver... |
||
1136 | ;a=protocol (0=file, 1=http) |
||
1137 | push af ;a=protocol (0=file, 1=http) |
||
1138 | or a |
||
1139 | ld hl,tfileprotocol |
||
1140 | jr z,$+5 |
||
668 | alone | 1141 | ld hl,thttpprotocol |
32 | Alone | 1142 | ld de,curfulllink |
1143 | call strcopy |
||
1144 | dec de |
||
1145 | push de |
||
1146 | ld hl,linkbuf |
||
1147 | call strcopy |
||
1148 | pop hl |
||
1149 | pop af ;a=protocol (0=file, 1=http) |
||
1150 | ret |
||
1151 | |||
1152 | addslashafterserver |
||
1153 | ;add / after http://ser.ver |
||
1154 | ;hl=after "//" |
||
1155 | call findslash |
||
344 | alone | 1156 | ret z ; 㦥 |
32 | Alone | 1157 | ld (hl),c;0 |
1158 | dec hl |
||
1159 | ld (hl),a ;add / after http://ser.ver |
||
1160 | ret |
||
1161 | |||
1162 | findslash |
||
668 | alone | 1163 | call strlen_tobc_keephl ;out: bc=len (Z: len==0) |
447 | alone | 1164 | ret z |
32 | Alone | 1165 | ld a,'/' |
1166 | cpir |
||
1167 | ret |
||
1168 | |||
1169 | strlen_tobc_keephl |
||
1170 | ;hl=string |
||
668 | alone | 1171 | ;out: bc=len (Z: len==0) |
32 | Alone | 1172 | push hl |
1173 | xor a |
||
1174 | ld b,-1 |
||
1175 | cpir |
||
1176 | pop de |
||
1177 | sbc hl,de |
||
1178 | ld b,h |
||
1179 | ld c,l ;bc=strlen |
||
1180 | ex de,hl ;hl=string |
||
1181 | ret |
||
1182 | |||
1183 | isprotocolpresent |
||
1184 | ;hl=link string |
||
1185 | ;out: nz=protocol absent (hl=link), z=protocol present (a=protocol (0=file, 1=http), hl=after "//") |
||
1186 | ld de,tfileprotocol |
||
1187 | push hl |
||
1188 | call strcp_tillde0 ;if found, hl=after "//" |
||
1189 | pop de |
||
1190 | ld a,0 |
||
1191 | ret z |
||
1192 | ex de,hl |
||
1193 | ld de,thttpprotocol |
||
1194 | push hl |
||
1195 | call strcp_tillde0 ;if found, hl=after "//" |
||
1196 | pop de |
||
1197 | ld a,1 |
||
1198 | ret z |
||
1199 | ex de,hl |
||
261 | alone | 1200 | ld de,tgopherprotocol |
1201 | push hl |
||
1202 | call strcp_tillde0 ;if found, hl=after "//" |
||
1203 | pop de |
||
1204 | ld a,2 |
||
1205 | ret z |
||
1206 | ex de,hl |
||
303 | alone | 1207 | ld de,thttpsprotocol |
1208 | push hl |
||
1209 | call strcp_tillde0 ;if found, hl=after "//" |
||
1210 | pop de |
||
1211 | ld a,3 |
||
1212 | ret z |
||
1213 | ex de,hl |
||
32 | Alone | 1214 | ret ;nz=protocol absent (hl=start) |
1215 | |||
1216 | nextscreenline |
||
344 | alone | 1217 | ;out: de= ப, nc=out of screen |
28 | Alone | 1218 | drawscreenline_frombuf_scr=$+1 |
40 | alone | 1219 | ld de,0 |
28 | Alone | 1220 | ld hl,40 |
1221 | add hl,de ;next line on screen |
||
42 | DimkaM | 1222 | ;push bc |
59 | Alone | 1223 | ld bc,40*(SCROLLHGT+1)+0x4000 |
42 | DimkaM | 1224 | or a |
1225 | sbc hl,bc |
||
1226 | add hl,bc |
||
1227 | ;pop bc |
||
1228 | ret nc |
||
1229 | ;bit 5,h |
||
1230 | ;ret nz ;jr nz,drawscreenline_frombufq ;end of screen, current line doesn't fit |
||
28 | Alone | 1231 | ld (drawscreenline_frombuf_scr),hl |
32 | Alone | 1232 | ret |
668 | alone | 1233 | |
32 | Alone | 1234 | drawscreenline_frombuf |
1235 | ;hl=from |
||
28 | Alone | 1236 | exx |
32 | Alone | 1237 | call nextscreenline |
40 | alone | 1238 | ;exx |
42 | DimkaM | 1239 | ;ret nc ;end of screen, current line doesn't fit |
28 | Alone | 1240 | |
31 | Alone | 1241 | push ix |
23 | dimkam | 1242 | push iy |
16 | dimkam | 1243 | |
23 | dimkam | 1244 | drawscreenline_frombuf_ixaddr=$+2 |
1245 | ld ix,(dithermcy0-2) |
||
1246 | drawscreenline_frombuf_iyaddr=$+2 |
||
1247 | ld iy,(colorlace0-2) |
||
40 | alone | 1248 | |
1249 | ;exx |
||
42 | DimkaM | 1250 | push af ;nc=out of screen |
40 | alone | 1251 | push de ;screen |
1252 | ld de,LINEPIXELS;-0x4000 |
||
1253 | ld hl,(keepframe_linesize) |
||
1254 | ld b,h |
||
1255 | ld c,l |
||
1256 | add hl,de |
||
1257 | exx |
||
1258 | call setpgdiv4000 |
||
344 | alone | 1259 | call setpgtemp8000 ;⠪ |
40 | alone | 1260 | jr drawscreenline_frombuf0go |
23 | dimkam | 1261 | drawscreenline_frombuf0 |
40 | alone | 1262 | exx |
1263 | pop hl |
||
1264 | drawscreenline_frombuf0go |
||
42 | DimkaM | 1265 | readchr_patch=$+1 |
23 | dimkam | 1266 | call readchrlomem |
1267 | push hl |
||
344 | alone | 1268 | call convertchr ;jp=1980t ( exx , 㤮⢠) |
23 | dimkam | 1269 | inc de |
344 | alone | 1270 | cpi ; inc hl |
40 | alone | 1271 | jp pe,drawscreenline_frombuf0 |
1272 | pop af |
||
668 | alone | 1273 | |
23 | dimkam | 1274 | dec ix |
1275 | dec ix |
||
1276 | ld (drawscreenline_frombuf_ixaddr),ix |
||
1277 | dec iy |
||
1278 | dec iy |
||
1279 | ld (drawscreenline_frombuf_iyaddr),iy |
||
668 | alone | 1280 | |
40 | alone | 1281 | ;call setpgs_scr |
1282 | exx |
||
1283 | pop bc ;screen |
||
42 | DimkaM | 1284 | pop af ;nc=out of screen |
40 | alone | 1285 | ld hl,LINEPIXELS;-0x4000 |
1286 | ;hl=data |
||
1287 | ;bc=screen=0xc000+ |
||
42 | DimkaM | 1288 | call c,prlinefast |
40 | alone | 1289 | |
1290 | call setpgtemp8000 |
||
34 | Alone | 1291 | call setpgcode4000 |
23 | dimkam | 1292 | |
1293 | pop iy |
||
31 | Alone | 1294 | pop ix |
28 | Alone | 1295 | ret;jp setpgtemp8000 |
668 | alone | 1296 | |
59 | Alone | 1297 | read_b_bytes |
1298 | read_b_bytes0 |
||
1299 | call RDBYTE |
||
1300 | djnz read_b_bytes0 |
||
1301 | ret |
||
1302 | |||
23 | dimkam | 1303 | RDBYTE |
1304 | INC LY |
||
18 | dimkam | 1305 | LD A,(IY) |
23 | dimkam | 1306 | RET NZ |
1307 | RDBYH |
||
403 | alone | 1308 | ;TODO ઠ 䠩 a=0, 䫠 CY=1? |
23 | dimkam | 1309 | INC HY |
1310 | LD A,HY |
||
1311 | CP DISKBUF/256+(DISKBUFsz/256) |
||
1312 | LD A,(IY) |
||
1313 | ccf ;CY=0: OK |
||
1314 | RET nz |
||
1315 | PUSH HL |
||
1316 | PUSH DE |
||
18 | dimkam | 1317 | PUSH BC |
23 | dimkam | 1318 | push IX |
1319 | CALL rdCS |
||
28 | Alone | 1320 | ex af,af' |
23 | dimkam | 1321 | PUSH AF |
18 | dimkam | 1322 | exx |
1323 | push bc |
||
1324 | push de |
||
1325 | push hl |
||
1326 | ld de,DISKBUF |
||
1327 | ld hl,DISKBUFsz |
||
28 | Alone | 1328 | call readstream |
403 | alone | 1329 | ;hl=actual size (TODO if 0 then exit? ᥩ ⮣ ﬨ, 㦭 html) |
28 | Alone | 1330 | ;fill the rest of buffer with zeros |
1331 | ld de,DISKBUF |
||
1332 | add hl,de |
||
1333 | ex de,hl ;de=start of zeros |
||
1334 | ld hl,DISKBUF+DISKBUFsz |
||
1335 | xor a |
||
1336 | sbc hl,de |
||
1337 | ld b,h |
||
1338 | ld c,l ;bc=length of zeros (Z=no zeros) |
||
1339 | jr z,readdiskbuf_nozeros |
||
1340 | ld h,d |
||
1341 | ld l,e ;start of zeros |
||
1342 | ld (hl),a;0 |
||
1343 | inc de |
||
1344 | dec bc |
||
1345 | ld a,b |
||
1346 | or c |
||
1347 | jr z,readdiskbuf_nozeros |
||
1348 | ldir |
||
1349 | readdiskbuf_nozeros |
||
18 | dimkam | 1350 | pop hl |
1351 | pop de |
||
1352 | pop bc |
||
1353 | exx |
||
23 | dimkam | 1354 | POP AF |
28 | Alone | 1355 | ex af,af' |
18 | dimkam | 1356 | POP IX |
23 | dimkam | 1357 | pop BC |
18 | dimkam | 1358 | POP DE |
23 | dimkam | 1359 | pop hl |
1360 | ld iy,DISKBUF |
||
18 | dimkam | 1361 | LD A,(IY) |
23 | dimkam | 1362 | or a ;CY=0: OK |
1363 | RET |
||
18 | dimkam | 1364 | |
59 | Alone | 1365 | ZIPRDBYH |
344 | alone | 1366 | ;TODO ⮫쪮, 쪮 ⠫ IDAT ( DISKBUFsz), ⮬ ᪠ 騩 IDAT |
59 | Alone | 1367 | INC HY |
1368 | LD A,HY |
||
1369 | CP DISKBUF/256+(DISKBUFsz/256) |
||
1370 | LD A,(IY) |
||
1371 | ccf ;CY=0: OK |
||
1372 | RET nz |
||
1373 | |||
1374 | PUSH HL |
||
1375 | PUSH DE |
||
1376 | PUSH BC |
||
1377 | push IX |
||
1378 | ;CALL rdCS |
||
1379 | ex af,af' |
||
1380 | PUSH AF |
||
1381 | exx |
||
1382 | push bc |
||
1383 | push de |
||
1384 | push hl |
||
668 | alone | 1385 | |
59 | Alone | 1386 | pngIDATremainedHSW=$+1 |
1387 | ld de,0 |
||
1388 | pngIDATremained=$+1 |
||
1389 | ld hl,0 |
||
1390 | ZIPRDBYH0read |
||
1391 | ld a,d |
||
1392 | or e |
||
1393 | ld bc,DISKBUFsz |
||
1394 | call z,minhl_bc_tobc ;keeps hl |
||
1395 | ;bc=size |
||
1396 | ;jr $ |
||
1397 | ld a,b |
||
1398 | or c |
||
1399 | jr nz,ZIPRDBYHn0 |
||
344 | alone | 1400 | ; CRC |
1401 | ; chunksize |
||
1402 | ; "IDAT" |
||
59 | Alone | 1403 | ld de,DISKBUF |
1404 | ld hl,12 |
||
1405 | call readstream |
||
344 | alone | 1406 | ; remained: |
59 | Alone | 1407 | ld hl,DISKBUF+4 |
1408 | ld d,(hl) |
||
1409 | inc hl |
||
1410 | ld e,(hl) |
||
1411 | inc hl |
||
1412 | ld a,(hl) |
||
1413 | inc hl |
||
1414 | ld l,(hl) |
||
1415 | ld h,a |
||
344 | alone | 1416 | ;᭮ ࠧ ⥪饣 |
59 | Alone | 1417 | jr ZIPRDBYH0read |
1418 | ZIPRDBYHn0 |
||
1419 | ;bc=size |
||
1420 | or a |
||
1421 | sbc hl,bc |
||
1422 | ld (pngIDATremained),hl |
||
1423 | jr nc,$+3 |
||
1424 | dec de |
||
1425 | ld (pngIDATremainedHSW),de |
||
1426 | ld d,b |
||
1427 | ld e,c |
||
1428 | ;de=size |
||
1429 | ld hl,DISKBUF+DISKBUFsz |
||
1430 | or a |
||
1431 | sbc hl,de ;size |
||
1432 | ex de,hl ;de=addr = DISKBUF+; hl=size |
||
1433 | push de |
||
1434 | call readstream |
||
1435 | pop de |
||
1436 | push de ;addr |
||
1437 | ;hl=actual size |
||
1438 | ld a,h |
||
1439 | or l |
||
1440 | jr z,ZIPRDBYHq;readerror |
||
1441 | ;move block to end of buf: |
||
1442 | ld b,h |
||
1443 | ld c,l |
||
1444 | dec de ;ld de,DISKBUF-1 |
||
1445 | add hl,de ;end of data |
||
1446 | ld de,DISKBUF+DISKBUFsz-1 |
||
1447 | sbc hl,de |
||
1448 | add hl,de |
||
1449 | jr z,ZIPRDBYHq |
||
1450 | pop af |
||
1451 | lddr |
||
1452 | inc de ;begin of data |
||
1453 | push de |
||
1454 | ZIPRDBYHq |
||
1455 | pop iy ;addr = DISKBUF+ |
||
668 | alone | 1456 | |
59 | Alone | 1457 | pop hl |
1458 | pop de |
||
1459 | pop bc |
||
1460 | exx |
||
1461 | POP AF |
||
1462 | ex af,af' |
||
1463 | POP IX |
||
1464 | pop BC |
||
1465 | POP DE |
||
1466 | pop hl |
||
1467 | LD A,(IY) |
||
1468 | or a ;CY=0: OK |
||
1469 | ret |
||
668 | alone | 1470 | |
28 | Alone | 1471 | readstream |
1472 | readstream_patch=$+1 |
||
1473 | jp readstream_file |
||
1474 | |||
40 | alone | 1475 | rdCS |
1476 | LD A,0 |
||
1477 | OR A |
||
1478 | RET Z |
||
1479 | rdCSU |
||
1480 | LD A,0xfe |
||
1481 | IN A,(0xfe) |
||
1482 | LD (getCS+1),A |
||
1483 | getCS |
||
1484 | LD A,0xff |
||
1485 | RRA |
||
1486 | RET |
||
1487 | |||
16 | dimkam | 1488 | GETDWORD_slow |
1489 | ;hlde |
||
32 | Alone | 1490 | ;call RDBYTE |
1491 | ;ld e,a |
||
1492 | ;call RDBYTE |
||
1493 | ;ld d,a |
||
1494 | call GETWORD_slowhl |
||
1495 | ex de,hl |
||
1496 | GETWORD_slowhl |
||
28 | Alone | 1497 | call RDBYTE |
16 | dimkam | 1498 | ld l,a |
28 | Alone | 1499 | call RDBYTE |
16 | dimkam | 1500 | ld h,a |
1501 | ret |
||
14 | dimkam | 1502 | |
28 | Alone | 1503 | RDWORDHSBLSBtohl |
1504 | CALL RDBYTE |
||
1505 | LD H,A |
||
1506 | CALL RDBYTE |
||
1507 | LD L,A |
||
1508 | RET |
||
1509 | |||
23 | dimkam | 1510 | readchrlomem |
1511 | ;hl=from (BRG) |
||
16 | dimkam | 1512 | ld d,chrbuf/256 |
1513 | _=0 |
||
1514 | if GIF_PIXELSIZE |
||
1515 | dup 8 |
||
1516 | ld a,(hl) |
||
1517 | inc hl |
||
1518 | ld (chrbuf+16+_),a |
||
1519 | ld (chrbuf+8+_),a |
||
1520 | ld (chrbuf+0+_),a |
||
1521 | _=_+1 |
||
1522 | edup |
||
1523 | else |
||
1524 | dup 8 |
||
1525 | ld e,0xff&(chrbuf+16+_) |
||
1526 | ldi ;b |
||
1527 | ld e,0xff&(chrbuf+8+_) |
||
1528 | ldi ;g |
||
1529 | ld e,0xff&(chrbuf+0+_) |
||
1530 | ldi ;r |
||
1531 | _=_+1 |
||
1532 | edup |
||
668 | alone | 1533 | |
16 | dimkam | 1534 | endif |
42 | DimkaM | 1535 | ret |
1536 | |||
1537 | readchrlomemx2 |
||
1538 | ld d,chrbuf/256 |
||
1539 | _=0 |
||
1540 | if GIF_PIXELSIZE |
||
1541 | dup 4 |
||
1542 | ld a,(hl) |
||
1543 | inc hl |
||
1544 | ld (chrbuf+16+_),a |
||
1545 | ld (chrbuf+8+_),a |
||
1546 | ld (chrbuf+0+_),a |
||
1547 | _=_+1 |
||
1548 | ld (chrbuf+16+_),a |
||
1549 | ld (chrbuf+8+_),a |
||
1550 | ld (chrbuf+0+_),a |
||
1551 | _=_+1 |
||
1552 | edup |
||
1553 | else |
||
1554 | dup 4 |
||
1555 | ld e,0xff&(chrbuf+16+_) |
||
1556 | ld a,(hl) |
||
1557 | ld (de),a |
||
1558 | inc e |
||
1559 | ldi ;b |
||
1560 | ld e,0xff&(chrbuf+8+_) |
||
1561 | ld a,(hl) |
||
1562 | ld (de),a |
||
1563 | inc e |
||
1564 | ldi ;g |
||
1565 | ld e,0xff&(chrbuf+0+_) |
||
1566 | ld a,(hl) |
||
1567 | ld (de),a |
||
1568 | inc e |
||
1569 | ldi ;r |
||
1570 | _=_+2 |
||
1571 | edup |
||
668 | alone | 1572 | |
40 | alone | 1573 | endif |
14 | dimkam | 1574 | ret |
1575 | |||
1576 | convertchr |
||
16 | dimkam | 1577 | |
14 | dimkam | 1578 | chrbufG=64+8 |
344 | alone | 1579 | ; 2 梥⮢ ( ४भ 梥⮢, ⮡ ⮬ ): |
14 | dimkam | 1580 | ld hl,chrbuf |
1581 | _=chrbufG |
||
1582 | ld de,_*257 |
||
1583 | ld c,(hl) ;Rmin |
||
1584 | ld b,c ;Rmax |
||
1585 | _=_+1 |
||
1586 | dup 7 |
||
1587 | inc l |
||
1588 | ld a,(hl) ;R(pixel) |
||
1589 | cp c ;Rmin |
||
1590 | jr nc,$+2+1+2 |
||
1591 | ld c,a ;Rmin |
||
344 | alone | 1592 | ld e,_ ;Rmincolor = ⥪饣 梥 |
14 | dimkam | 1593 | cp b ;Rmax |
1594 | jr c,$+2+1+2 |
||
1595 | ld b,a ;Rmax |
||
344 | alone | 1596 | ld d,_ ;Rmaxcolor = ⥪饣 梥 |
14 | dimkam | 1597 | _=_+1 |
1598 | edup |
||
1599 | push de ;ld (Rminmaxcolor),de |
||
1600 | ld a,b |
||
1601 | sub c |
||
1602 | push af ;Rmax-Rmin |
||
1603 | |||
1604 | inc l ;ld hl,chrbuf+8 |
||
1605 | _=chrbufG |
||
1606 | ld de,_*257 |
||
1607 | ld c,(hl) ;Gmin |
||
1608 | ld b,c ;Gmax |
||
1609 | _=_+1 |
||
1610 | dup 7 |
||
1611 | inc l |
||
1612 | ld a,(hl) ;G(pixel) |
||
1613 | cp c ;Gmin |
||
1614 | jr nc,$+2+1+2 |
||
1615 | ld c,a ;Gmin |
||
344 | alone | 1616 | ld e,_ ;Gmincolor = ⥪饣 梥 |
14 | dimkam | 1617 | cp b ;Gmax |
1618 | jr c,$+2+1+2 |
||
1619 | ld b,a ;Gmax |
||
344 | alone | 1620 | ld d,_ ;Gmaxcolor = ⥪饣 梥 |
14 | dimkam | 1621 | _=_+1 |
1622 | edup |
||
1623 | push de ;ld (Gminmaxcolor),de |
||
1624 | ld a,b |
||
1625 | sub c |
||
1626 | push af ;Gmax-Gmin |
||
1627 | |||
1628 | inc l ;ld hl,chrbuf+16 |
||
1629 | _=chrbufG |
||
1630 | ld de,_*257 |
||
1631 | ld c,(hl) ;Bmin |
||
1632 | ld b,c ;Bmax |
||
1633 | _=_+1 |
||
1634 | dup 7 |
||
1635 | inc l |
||
1636 | ld a,(hl) ;B(pixel) |
||
1637 | cp c ;Bmin |
||
1638 | jr nc,$+2+1+2 |
||
1639 | ld c,a ;Bmin |
||
344 | alone | 1640 | ld e,_ ;Bmincolor = ⥪饣 梥 |
14 | dimkam | 1641 | cp b ;Bmax |
1642 | jr c,$+2+1+2 |
||
1643 | ld b,a ;Bmax |
||
344 | alone | 1644 | ld d,_ ;Bmaxcolor = ⥪饣 梥 |
14 | dimkam | 1645 | _=_+1 |
1646 | edup |
||
1647 | ld a,b |
||
1648 | sub c ;Bmax-Bmin |
||
1649 | |||
344 | alone | 1650 | ;롨ࠥ minmaxcolor: |
14 | dimkam | 1651 | ld c,a ;maxdist |
1652 | pop af ;Gmax-Gmin |
||
1653 | pop hl ;Gminmaxcolor |
||
1654 | cp c ;>=maxdist? |
||
1655 | jr c,$+2+1+1 |
||
1656 | ld c,a ;maxdist |
||
1657 | ex de,hl |
||
1658 | pop af ;Rmax-Rmin |
||
1659 | pop hl ;Rminmaxcolor |
||
1660 | cp c ;>=maxdist? |
||
1661 | jr c,$+2+1 |
||
1662 | ex de,hl |
||
1663 | |||
1664 | ;d=maxcolor |
||
1665 | ;e=mincolor |
||
344 | alone | 1666 | ; ४भ 梥 ( color16): |
1667 | ;⮡ color16, ᭠砫 color64(=BBGGRR), ⮬ ⠡ |
||
18 | dimkam | 1668 | jp (iy) ;colorlace0 ;/1 |
1669 | |||
1670 | ROUNDUP=32 |
||
1671 | ROUNDDOWN=32 |
||
31 | Alone | 1672 | macro DOROUNDDOWN |
1673 | sub ROUNDDOWN |
||
1674 | jr nc,$+3 |
||
1675 | xor a |
||
1676 | endm |
||
18 | dimkam | 1677 | |
31 | Alone | 1678 | macro DOROUNDUP |
1679 | add a,d;ROUNDUP;d |
||
1680 | jr nc,$+3 |
||
1681 | sbc a,a |
||
1682 | endm |
||
1683 | |||
18 | dimkam | 1684 | dw colorlace1 |
1685 | colorlace0 |
||
1686 | ;d=maxcolor |
||
1687 | ;e=mincolor |
||
344 | alone | 1688 | ; ४भ 梥 ( color16): |
1689 | ;⮡ color16, ᭠砫 color64(=BBGGRR), ⮬ ⠡ |
||
14 | dimkam | 1690 | ld h,chrbuf/256 |
1691 | ld l,d ;maxcolor |
||
18 | dimkam | 1692 | ld c,(hl) ;G |
1693 | res 3,l |
||
1694 | ld b,(hl) ;R |
||
1695 | set 4,l |
||
1696 | ld a,(hl) ;B |
||
1697 | rlca |
||
1698 | rlca |
||
1699 | rl c |
||
1700 | rla |
||
1701 | rl c ;g |
||
1702 | rla |
||
1703 | rl b |
||
1704 | rla |
||
1705 | rl b ;r |
||
1706 | rla ;BBGGRR |
||
1707 | or 0xc0 |
||
1708 | ld l,a |
||
31 | Alone | 1709 | ld d,h ;e=mincolor |
18 | dimkam | 1710 | ld a,(de);(hl) ;G |
31 | Alone | 1711 | DOROUNDDOWN |
18 | dimkam | 1712 | ld c,a |
40 | alone | 1713 | res 3,e |
18 | dimkam | 1714 | ld a,(de);(hl) ;R |
31 | Alone | 1715 | DOROUNDDOWN |
18 | dimkam | 1716 | ld b,a |
40 | alone | 1717 | set 4,e |
18 | dimkam | 1718 | ld a,(de);(hl) ;B |
31 | Alone | 1719 | DOROUNDDOWN |
18 | dimkam | 1720 | rlca |
1721 | rlca |
||
1722 | rl c |
||
1723 | rla |
||
1724 | rl c ;g |
||
1725 | rla |
||
1726 | rl b |
||
1727 | rla |
||
1728 | rl b ;r |
||
1729 | rla ;BBGGRR |
||
1730 | and 0x3f |
||
1731 | ld e,a;l,a |
||
31 | Alone | 1732 | ld a,(de) ;paper(maxcolor) |
1733 | or (hl) ;ink(mincolor) |
||
18 | dimkam | 1734 | ;a=attr |
1735 | exx |
||
344 | alone | 1736 | ld (hl),a ; attr |
18 | dimkam | 1737 | exx |
344 | alone | 1738 | ; ॠ ਡ⠬ maxaxis, min, maxdist! (७, ⮣ 砥 ⭨): |
18 | dimkam | 1739 | ld d,h |
1740 | dec h ;ld h,tmaxaxis/256+2 |
||
344 | alone | 1741 | ld l,a ;㤥 室 ⮩ 梥⮢ ⠢饩 |
18 | dimkam | 1742 | ld e,(hl) ;maxaxis*8 |
1743 | dec h |
||
1744 | ld b,(hl) ;min |
||
1745 | dec h |
||
1746 | ld h,(hl) ;maxdistdiv |
||
1747 | ;b=R/G/Bmin |
||
344 | alone | 1748 | ;de 砫 R/G/B |
18 | dimkam | 1749 | ;h=maxdistdiv |
344 | alone | 1750 | ; ਭ 室 ⮫쪮 ⠢饩, ⠫ ⠥: |
18 | dimkam | 1751 | jp (ix) ;dithermcy0/1/2/3 |
1752 | |||
1753 | dw colorlace0 |
||
1754 | colorlace1 |
||
1755 | ;d=maxcolor |
||
1756 | ;e=mincolor |
||
344 | alone | 1757 | ; ४भ 梥 ( color16): |
1758 | ;⮡ color16, ᭠砫 color64(=BBGGRR), ⮬ ⠡ |
||
18 | dimkam | 1759 | ld h,chrbuf/256 |
1760 | ld l,d ;maxcolor |
||
1761 | ld d,ROUNDUP |
||
14 | dimkam | 1762 | ld a,(hl) ;G |
31 | Alone | 1763 | DOROUNDUP |
14 | dimkam | 1764 | ld c,a |
1765 | res 3,l |
||
1766 | ld a,(hl) ;R |
||
31 | Alone | 1767 | DOROUNDUP |
14 | dimkam | 1768 | ld b,a |
1769 | set 4,l |
||
1770 | ld a,(hl) ;B |
||
31 | Alone | 1771 | DOROUNDUP |
14 | dimkam | 1772 | rlca |
1773 | rlca |
||
1774 | rl c |
||
1775 | rla |
||
1776 | rl c ;g |
||
1777 | rla |
||
1778 | rl b |
||
1779 | rla |
||
1780 | rl b ;r |
||
1781 | rla ;BBGGRR |
||
1782 | or 0xc0 |
||
1783 | ld l,a |
||
31 | Alone | 1784 | ld d,(hl) ;paper(maxcolor) |
14 | dimkam | 1785 | ld l,e ;mincolor |
16 | dimkam | 1786 | ld c,(hl) ;G |
1787 | res 3,l |
||
1788 | ld b,(hl) ;R |
||
1789 | set 4,l |
||
1790 | ld a,(hl) ;B |
||
14 | dimkam | 1791 | rlca |
1792 | rlca |
||
1793 | rl c |
||
1794 | rla |
||
1795 | rl c ;g |
||
1796 | rla |
||
1797 | rl b |
||
1798 | rla |
||
1799 | rl b ;r |
||
1800 | rla ;BBGGRR |
||
1801 | and 0x3f |
||
1802 | ld l,a |
||
31 | Alone | 1803 | ld a,(hl) ;ink(mincolor) |
1804 | or d ;paper(maxcolor) |
||
14 | dimkam | 1805 | exx |
344 | alone | 1806 | ld (hl),a ; attr |
14 | dimkam | 1807 | exx |
344 | alone | 1808 | ; ॠ ਡ⠬ maxaxis, min, maxdist! (७, ⮣ 砥 ⭨): |
16 | dimkam | 1809 | ld d,h |
1810 | dec h ;ld h,tmaxaxis/256+2 |
||
344 | alone | 1811 | ld l,a ;㤥 室 ⮩ 梥⮢ ⠢饩 |
16 | dimkam | 1812 | ld e,(hl) ;maxaxis*8 |
1813 | dec h |
||
14 | dimkam | 1814 | ld b,(hl) ;min |
16 | dimkam | 1815 | dec h |
1816 | ld h,(hl) ;maxdistdiv |
||
14 | dimkam | 1817 | ;b=R/G/Bmin |
344 | alone | 1818 | ;de 砫 R/G/B |
16 | dimkam | 1819 | ;h=maxdistdiv |
344 | alone | 1820 | ; ਭ 室 ⮫쪮 ⠢饩, ⠫ ⠥: |
18 | dimkam | 1821 | jp (ix) ;dithermcy0/1/2/3 |
668 | alone | 1822 | |
344 | alone | 1823 | ;0 (ᥣ NC), ⮬ 祭 㢥祭 1: |
18 | dimkam | 1824 | dw dithermcy2 |
16 | dimkam | 1825 | dithermcy3 |
14 | dimkam | 1826 | DITHERMC1B 0x1, 0xd, 0x3, 0xf |
23 | dimkam | 1827 | ret;jp convertchrq |
668 | alone | 1828 | |
18 | dimkam | 1829 | dw dithermcy1 |
16 | dimkam | 1830 | dithermcy2 |
14 | dimkam | 1831 | DITHERMC1B 0x9, 0x5, 0xb, 0x7 |
23 | dimkam | 1832 | ret;jp convertchrq |
668 | alone | 1833 | |
18 | dimkam | 1834 | dw dithermcy0 |
16 | dimkam | 1835 | dithermcy1 |
14 | dimkam | 1836 | DITHERMC1B 0x4, 0x10, 0x2, 0xe |
23 | dimkam | 1837 | ret;jp convertchrq |
668 | alone | 1838 | |
18 | dimkam | 1839 | dw dithermcy3 |
16 | dimkam | 1840 | dithermcy0 |
14 | dimkam | 1841 | DITHERMC1B 0xc, 0x8, 0xa, 0x6 |
23 | dimkam | 1842 | ret;jp convertchrq |
668 | alone | 1843 | |
14 | dimkam | 1844 | skipword |
1845 | ;hl=string |
||
1846 | ;out: hl=terminator/space addr |
||
1847 | getword0 |
||
1848 | ld a,(hl) |
||
1849 | or a |
||
1850 | ret z |
||
1851 | cp ' ' |
||
1852 | ret z |
||
1853 | inc hl |
||
1854 | jr getword0 |
||
1855 | |||
1856 | skipspaces |
||
1857 | ;hl=string |
||
1858 | ;out: hl=after last space |
||
1859 | ld a,(hl) |
||
1860 | cp ' ' |
||
1861 | ret nz |
||
1862 | inc hl |
||
1863 | jr skipspaces |
||
1864 | |||
1865 | minhl_bc_tobc |
||
1866 | or a |
||
1867 | sbc hl,bc |
||
1868 | add hl,bc |
||
1869 | ret nc ;bc<=hl |
||
1870 | ld b,h |
||
1871 | ld c,l |
||
1872 | ret |
||
1873 | |||
18 | dimkam | 1874 | MULWORD |
1875 | ;out: HLBC=DE*BC |
||
1876 | LD HL,0 |
||
1877 | LD A,17 |
||
1878 | MULWOR0 RR B |
||
1879 | RR C |
||
1880 | DEC A |
||
1881 | RET Z |
||
1882 | JR NC,$+3 |
||
1883 | ADD HL,DE |
||
1884 | RR H |
||
1885 | RR L |
||
1886 | JR MULWOR0 |
||
1887 | |||
16 | dimkam | 1888 | putline |
344 | alone | 1889 | ;hl=㤠 㥬 ப |
1890 | ;bc=쪮 㥬 |
||
1891 | ; 室 ᤢ 㪠⥫, 㤠 㥬 (putchar_hl, putchar_a) |
||
32 | Alone | 1892 | ex de,hl |
16 | dimkam | 1893 | putchar_hl=$+1 |
1894 | ld hl,0 |
||
1895 | putchar_a=$+1 |
||
1896 | ld a,0 |
||
28 | Alone | 1897 | ;de=from |
1898 | ;ahl=to |
||
1899 | ;bc=size |
||
1900 | call puttomem |
||
42 | DimkaM | 1901 | nextputlineaddr |
1902 | ;keeps bc |
||
16 | dimkam | 1903 | ld a,(putchar_a) |
1904 | ld hl,(putchar_hl) |
||
28 | Alone | 1905 | curpicwidx3=$+1 |
42 | DimkaM | 1906 | ld de,0 |
1907 | add hl,de |
||
16 | dimkam | 1908 | adc a,0 |
42 | DimkaM | 1909 | setputlineaddr |
16 | dimkam | 1910 | ld (putchar_hl),hl |
1911 | ld (putchar_a),a |
||
1912 | ret |
||
1913 | |||
32 | Alone | 1914 | getline |
344 | alone | 1915 | ;de=㤠 ப |
1916 | ;bc=쪮 |
||
40 | alone | 1917 | gifwasdisposalmethod=$+1 |
34 | Alone | 1918 | ld a,0 ;bit0 = transparent color present, bit4..2 = disposal method (0=not specified(?), 1=do not dispose(?), 2=overwrite with bg color, 3=overwrite with prev frame(?)) |
1919 | and 0x1c |
||
1920 | cp 8 |
||
1921 | jr z,getline_fill |
||
1922 | ld hl,(nframes) |
||
1923 | ld a,h |
||
1924 | or l |
||
1925 | jr nz,getline_frommem |
||
1926 | getline_fill |
||
344 | alone | 1927 | ;䮭 ࢮ - |
34 | Alone | 1928 | push de |
1929 | gifbgcolor=$+1 |
||
1930 | ld hl,PAL_GLOB |
||
1931 | ldi |
||
1932 | dec hl |
||
1933 | inc h |
||
1934 | ldi |
||
1935 | dec hl |
||
1936 | inc h |
||
344 | alone | 1937 | ldi ;TODO 冷 ! |
34 | Alone | 1938 | pop hl |
1939 | ret po ;bc=0 |
||
1940 | ldir |
||
1941 | ret |
||
1942 | |||
1943 | getline_frommem |
||
32 | Alone | 1944 | ld hl,(putchar_hl) |
1945 | ld a,(putchar_a) |
||
1946 | jp getfrommem |
||
668 | alone | 1947 | |
1948 | swapimer |
||
1949 | di |
||
1950 | ld de,0x0038 |
||
1951 | ld hl,oldimer |
||
1952 | ld bc,3 |
||
1953 | swapimer0 |
||
1954 | ld a,(de) |
||
1955 | ldi ;[oldimer] -> [0x0038] |
||
1956 | dec hl |
||
1957 | ld (hl),a ;[0x0038] -> [oldimer] |
||
1958 | inc hl |
||
1959 | jp pe,swapimer0 |
||
1960 | ei |
||
1961 | ret |
||
1962 | oldimer |
||
1963 | jp on_int ; 0x0038 |
||
1964 | jp 0x0038+3 |
||
1965 | |||
1966 | on_int |
||
1967 | ;restore stack with de |
||
1968 | EX DE,HL |
||
1969 | EX (SP),HL ;de="hl", ⥪ "de" |
||
1970 | LD (on_int_jp),HL |
||
1971 | LD (on_int_sp),SP |
||
1972 | LD SP,INTSTACK |
||
1973 | ex de,hl ;hl="hl" |
||
1974 | |||
1975 | call oldimer ;ei |
||
1976 | |||
1977 | on_int_sp=$+1 |
||
1978 | ld sp,0 |
||
1979 | pop de |
||
1980 | ;ei |
||
1981 | on_int_jp=$+1 |
||
1982 | jp 0 |
||
1983 | |||
16 | dimkam | 1984 | curpicwid |
1985 | dw 0 |
||
1986 | curpichgt |
||
1987 | dw 0 |
||
40 | alone | 1988 | curpichgt_visible |
1989 | dw 0 |
||
16 | dimkam | 1990 | |
31 | Alone | 1991 | downloadfilename |
1992 | db "download.fil",0 |
||
1993 | |||
28 | Alone | 1994 | tfileprotocol |
1995 | db "file://",0 |
||
1996 | thttpprotocol |
||
1997 | db "http://",0 |
||
261 | alone | 1998 | tgopherprotocol |
1999 | db "gopher://",0 |
||
303 | alone | 2000 | thttpsprotocol |
305 | alone | 2001 | db "https://",0 |
14 | dimkam | 2002 | |
28 | Alone | 2003 | linkbuf |
68 | Alone | 2004 | ds MAXLINKSZ+1 |
32 | Alone | 2005 | curfulllink |
68 | Alone | 2006 | ds MAXLINKSZ+1 |
32 | Alone | 2007 | |
31 | Alone | 2008 | include "htmlview.asm" |
23 | dimkam | 2009 | include "html.asm" |
31 | Alone | 2010 | include "prvirt.asm" |
2011 | include "mempgs.asm" |
||
28 | Alone | 2012 | include "dynmem.asm" |
59 | Alone | 2013 | include "../_sdk/file.asm" |
34 | Alone | 2014 | include "gif.asm" |
40 | alone | 2015 | include "drawmc.asm" |
59 | Alone | 2016 | include "editline.asm" |
668 | alone | 2017 | |
14 | dimkam | 2018 | align 256 |
18 | dimkam | 2019 | textpages |
2020 | ds 256 |
||
344 | alone | 2021 | ;TODO ⤥쭮 gfxpages (⮡ 뫮 㤠 RGB ᨨ) |
18 | dimkam | 2022 | |
2023 | align 256 |
||
16 | dimkam | 2024 | tmaxaxis ;maxdistdiv_fromattr[256], min_fromattr[256], maxaxis_fromattr[256] |
2025 | incbin "tmaxaxis" |
||
668 | alone | 2026 | |
344 | alone | 2027 | ;align 256 ;।⢥ tmaxaxis |
14 | dimkam | 2028 | t64to16ink |
2029 | incbin "t64to16i" |
||
2030 | chrbuf |
||
2031 | ds 8 ;R |
||
2032 | chrbufG=$&0xff |
||
2033 | ds 8 ;G |
||
2034 | ds 8 ;B |
||
2035 | ds 256-64-24-64 |
||
2036 | t64to16paper |
||
2037 | incbin "t64to16p" |
||
28 | Alone | 2038 | |
2039 | twinto866 |
||
470 | baho | 2040 | incbin "../_sdk/codepage/winto866" |
668 | alone | 2041 | |
16 | dimkam | 2042 | endcode=$ |
668 | alone | 2043 | |
59 | Alone | 2044 | ds end1-$ |
460 | alone | 2045 | display "free for code=",$-endcode |
16 | dimkam | 2046 | |
2047 | ds 0x4000-$ ;stack |
||
447 | alone | 2048 | align 256 |
2049 | fnt |
||
2050 | incbin "1125vert.fnt" |
||
2051 | include "http.asm" |
||
31 | Alone | 2052 | include "prmc.asm" |
34 | Alone | 2053 | include "jpeg.asm" |
59 | Alone | 2054 | include "png.asm" |
2055 | depkbeg=$ |
||
2056 | initCRC |
||
2057 | CRC32_ |
||
2058 | ret |
||
2059 | saveblock |
||
2060 | savelastblock |
||
2061 | push af |
||
2062 | push bc |
||
2063 | push de |
||
2064 | push hl |
||
344 | alone | 2065 | ;TODO |
59 | Alone | 2066 | ld de,depkbuf |
2067 | pngdepktoaddr=$+1 |
||
2068 | ld hl,0 |
||
2069 | pngdepktoaddrHSB=$+1 |
||
2070 | ld a,0 |
||
344 | alone | 2071 | ld bc,(Z6546) ;쪮 ࠭ |
2072 | ld (TD198),bc ;쪮 ࠭ |
||
18 | dimkam | 2073 | |
59 | Alone | 2074 | inc bc |
2075 | jr saveblock0_go |
||
344 | alone | 2076 | ; 0x7e00..0xffff |
59 | Alone | 2077 | saveblock0 |
2078 | push bc |
||
2079 | push af |
||
2080 | call gifsetpgLZW |
||
2081 | pop af |
||
2082 | ex de,hl |
||
2083 | ld c,(hl) |
||
2084 | inc hl |
||
2085 | ex de,hl |
||
2086 | call writebyte |
||
2087 | pop bc |
||
2088 | saveblock0_go |
||
2089 | dec hl |
||
2090 | cpi |
||
2091 | jp pe,saveblock0 |
||
2092 | ld (pngdepktoaddr),hl |
||
2093 | ld (pngdepktoaddrHSB),a |
||
2094 | call gifsetpgLZW |
||
668 | alone | 2095 | |
59 | Alone | 2096 | ld hl,0 |
2097 | ld (Z6546),hl |
||
2098 | pop hl |
||
2099 | pop de |
||
2100 | pop bc |
||
2101 | pop af |
||
2102 | ret |
||
2103 | depkqerror=ERROR |
||
2104 | ziptrees |
||
2105 | ds 0xa60 + 2*288 |
||
2106 | include "../pkunzip/depk.asm" |
||
668 | alone | 2107 | |
289 | dimkam | 2108 | ;display "depk size=",$-depkbeg |
59 | Alone | 2109 | |
73 | Alone | 2110 | wgetfilename |
2111 | db "wget.com",0 |
||
2112 | |||
403 | alone | 2113 | include "init.asm" |
32 | Alone | 2114 | |
59 | Alone | 2115 | free2=end2-$;0x8000-$ |
303 | alone | 2116 | display "free for code in 0x4000=",free2 |
18 | dimkam | 2117 | ds 0x8000-$ |
668 | alone | 2118 | |
14 | dimkam | 2119 | incbin "tdiv" |
403 | alone | 2120 | ;0xc000 |
2121 | include "svg.asm" |
||
2122 | display "end=",$ |
||
668 | alone | 2123 | |
14 | dimkam | 2124 | cmd_end |
55 | Alone | 2125 | ;display "Size ",/d,cmd_end-cmd_begin," bytes" |
14 | dimkam | 2126 | |
2127 | savebin "browser.com",cmd_begin,cmd_end-cmd_begin |
||
668 | alone | 2128 | |
555 | alone | 2129 | LABELSLIST "../../us/user.l" |