Rev 657 | Details | Compare with Previous | Last modification | View Log
Rev | Author | Line No. | Line |
---|---|---|---|
68 | Alone | 1 | DEVICE ZXSPECTRUM128 |
76 | Alone | 2 | ;device pentagon1024 |
3 | |||
40 | alone | 4 | include "../_sdk/sys_h.asm" |
5 | |||
344 | alone | 6 | MAXCMDSZ=COMMANDLINE_sz-1 ; ନ |
40 | alone | 7 | |
518 | alone | 8 | include "windowsh.asm" |
9 | |||
40 | alone | 10 | scrwid=320 |
11 | scrwid8=scrwid/8 |
||
12 | scrhgt=200 |
||
13 | |||
14 | scrbase=0x8000 |
||
15 | scrbase16k=0x4000 |
||
16 | |||
344 | alone | 17 | tempc000=0x4000 ;㣫! |
40 | alone | 18 | tempe000=0x6000 |
19 | |||
20 | editpal_c0=0x80 |
||
21 | editpal_e0=editpal_c0+0x20 |
||
22 | tabclippal=0xc000 |
||
23 | |||
24 | titlehgt=8 |
||
25 | |||
26 | workzonex8=4 |
||
27 | workzoney=8 |
||
28 | workzonewid8=scrwid/8-workzonex8-4 |
||
29 | workzonehgt=scrhgt-workzoney |
||
30 | |||
31 | rightpanelx8=workzonex8+workzonewid8 |
||
32 | |||
33 | colorx8=0 |
||
34 | colory=scrhgt-16 |
||
35 | colorhgt=16 |
||
36 | |||
37 | palettey=workzoney |
||
38 | palettex8=rightpanelx8 |
||
39 | |||
40 | navigatorx=rightpanelx8*8 |
||
1410 | alone | 41 | navigatory=palettey+(8*5) |
344 | alone | 42 | navigatorhgt=31 ; 㢥稢, ⮡ 뫮 ९ 㬭 bitmapwid (max 2048) |
40 | alone | 43 | navigatorwid=31 |
44 | |||
45 | coordsx=navigatorx |
||
46 | coordsy=navigatory+navigatorhgt+1 |
||
47 | coordswindowx=coordsx |
||
48 | coordswindowy=coordsy+16 |
||
49 | coordswindowwid=32 |
||
50 | coordswindowhgt=32 |
||
51 | |||
52 | ZONE_NO=0 |
||
53 | ZONE_TOP=1 |
||
54 | ZONE_LEFT=2 |
||
55 | ZONE_RIGHT=3 |
||
56 | ZONE_WORK=4 |
||
57 | ZONE_PAL=5 |
||
58 | ZONE_NAVIGATOR=6 |
||
59 | |||
60 | TOOL_WINDOW=0 |
||
61 | TOOL_PENCIL=1 |
||
62 | TOOL_BRUSH=2 |
||
63 | TOOL_LINE=3 |
||
64 | TOOL_FILL=4 |
||
65 | TOOL_TEXT=5 |
||
66 | NTOOLS=6 |
||
67 | |||
657 | alone | 68 | ;backcolor=0x3f;%00111111 |
40 | alone | 69 | |
70 | bmpmaxpages=251 |
||
71 | maxbitmaps=4 |
||
72 | |||
500 | alone | 73 | nofocuskey=0xff |
74 | |||
40 | alone | 75 | macro SHAPESPROC name |
76 | ;_=$ |
||
77 | ;org _curorg |
||
78 | name |
||
79 | ;call setpgshapes |
||
80 | ;jp _ |
||
81 | ;_curorg=$ |
||
82 | ;org _ |
||
83 | endm |
||
84 | |||
85 | macro SETPGBITMAPLOW |
||
86 | ld ($+4),a |
||
87 | ld a,(tbitmappages) |
||
88 | SETPG32KLOW |
||
89 | endm |
||
90 | |||
91 | ;macro SETPGBITMAPHIGH |
||
92 | ;ld ($+4),a |
||
93 | ;ld a,(tbitmappages) |
||
94 | ;SETPG32KHIGH |
||
95 | ;endm |
||
96 | |||
97 | org PROGSTART |
||
98 | gfxeditor_begin |
||
99 | main_go |
||
1410 | alone | 100 | jp main_go2 |
101 | ds 256 |
||
102 | main_go2 |
||
344 | alone | 103 | ld sp,0x4000 ; ᪠ 0x3b00! OS |
576 | alone | 104 | OS_HIDEFROMPARENT |
40 | alone | 105 | ld e,0 ;EGA |
106 | OS_SETGFX |
||
505 | alone | 107 | ;OS_GETSCREENPAGES |
344 | alone | 108 | ;de=࠭ 0- ࠭ (d=), hl=࠭ 1- ࠭ (h=) |
505 | alone | 109 | ;ld a,e |
110 | ;ld (setpgs_scr_low),a |
||
111 | ;ld a,d |
||
112 | ;ld (setpgs_scr_high),a |
||
40 | alone | 113 | |
114 | OS_GETMAINPAGES |
||
344 | alone | 115 | ;dehl= ࠭ 0000,4000,8000,c000 |
40 | alone | 116 | ld a,e |
117 | ld (curpgshapes),a |
||
118 | ld a,h |
||
119 | ld (curpgpal),a |
||
120 | ld a,l |
||
121 | ld (curpgtemp),a |
||
122 | |||
657 | alone | 123 | call cls |
124 | ;call setpgs_scr |
||
125 | ;call setpgshapes |
||
126 | ;xor a |
||
127 | ;call shapes_cls |
||
40 | alone | 128 | |
129 | ld hl,COMMANDLINE ;command line |
||
130 | call skipword |
||
131 | call skipspaces |
||
132 | ld a,(hl) |
||
133 | or a |
||
134 | jr z,noautoload |
||
135 | ;command line = "scratch <file to load>" |
||
136 | push hl |
||
137 | call findlastslash. ;de=after last slash or beginning of path |
||
138 | pop hl |
||
139 | push de |
||
140 | dec de |
||
141 | ld a,(de) |
||
142 | cp '/' |
||
143 | jr nz,$+4 |
||
144 | xor a |
||
344 | alone | 145 | ld (de),a ;१ 䠩 |
40 | alone | 146 | inc de |
344 | alone | 147 | ex de,hl;ld de,wordbuf ;ASCIIZ string for parsing ( 0xc000...) |
40 | alone | 148 | ;push de |
149 | jr nz,autoload_nopath |
||
150 | OS_CHDIR |
||
151 | autoload_nopath |
||
152 | ;pop hl |
||
153 | ;call findlastslash. |
||
154 | pop de ;de=after last slash |
||
155 | |||
156 | ld hl,fcb_filename ;Pointer to 11 byte buffer |
||
157 | OS_PARSEFNAME |
||
631 | alone | 158 | call fcbtoname_temppicname ;de=temppicname |
159 | ;ld de,fcb |
||
160 | ;OS_FOPEN |
||
161 | OS_OPENHANDLE |
||
40 | alone | 162 | or a |
163 | jr nz,noautoload;error |
||
631 | alone | 164 | ld a,b |
165 | ld (curhandle),a |
||
344 | alone | 166 | call readbmp ;nz=訡 (⮣ 䠩) |
62 | Alone | 167 | jr nz,autoloaderror |
168 | |||
169 | ld hl,fcb_filename ;Pointer to 11 byte buffer |
||
170 | ld de,curpicname |
||
171 | call cpmname_to_dotname |
||
172 | |||
173 | autoloaderror |
||
40 | alone | 174 | ld de,fcb |
175 | OS_FCLOSE |
||
176 | jr autoloadq |
||
177 | noautoload |
||
178 | ld bc,320 ;wid |
||
179 | ld de,200 ;hgt |
||
180 | xor a ;color |
||
181 | call newbitmap |
||
182 | autoloadq |
||
183 | |||
55 | Alone | 184 | ld de,pathbuf_forBDOS ;de=pointer to 64 byte (MAXPATH_sz!) buf |
40 | alone | 185 | OS_GETPATH |
186 | ld a,(de) |
||
187 | sub '0' |
||
188 | ld (curdrive),a |
||
189 | |||
190 | ;call initcontrol |
||
191 | |||
192 | call showworkscreen |
||
193 | |||
194 | mainloop |
||
505 | alone | 195 | call setpgs_scr |
344 | alone | 196 | ;1. 뢮 |
197 | ;2. ᮡ⨥ |
||
198 | ;3. ࠥ |
||
199 | ;4. ࠡ뢠 ᮡ⨥ |
||
40 | alone | 200 | call ahl_coords |
344 | alone | 201 | call invarrzone ;㥬 㭪 ५ |
40 | alone | 202 | call ahl_coords |
344 | alone | 203 | call showline ;㥬 |
40 | alone | 204 | call ahl_coords |
344 | alone | 205 | call showwindow ;㥬 |
40 | alone | 206 | call ahl_coords |
344 | alone | 207 | call showcopywindow ;㥬 |
40 | alone | 208 | call ahl_coords |
209 | call checkfirezone |
||
210 | ld (prarr_zone),a |
||
211 | |||
212 | call setpgshapes |
||
213 | |||
214 | call ahl_coords |
||
215 | call showbitmapcoords |
||
216 | call ahl_coords |
||
217 | call shapes_memorizearr |
||
218 | call ahl_coords |
||
344 | alone | 219 | call shapes_prarr ;㥬 ५ |
40 | alone | 220 | |
344 | alone | 221 | call waitsomething ; ६ ५ |
222 | ;- - ࠥ ५ , ५, 㥬 ५ |
||
40 | alone | 223 | |
224 | call setpgshapes |
||
225 | |||
226 | call ahl_oldcoords |
||
344 | alone | 227 | call shapes_rearr ;ࠥ ५ |
40 | alone | 228 | call ahl_oldcoords |
344 | alone | 229 | call showcopywindow ;ࠥ |
40 | alone | 230 | call ahl_oldcoords |
344 | alone | 231 | call showwindow ;ࠥ |
40 | alone | 232 | call ahl_oldcoords |
344 | alone | 233 | call showline ;ࠥ |
40 | alone | 234 | call ahl_oldcoords |
344 | alone | 235 | call invarrzone ;⠭ (㥬) 㭪 ५ |
516 | alone | 236 | |
237 | ;call window_messages ;TODO |
||
40 | alone | 238 | call control_mousebuttons |
239 | call control_keys |
||
240 | |||
241 | jp mainloop |
||
657 | alone | 242 | |
40 | alone | 243 | ahl_coords |
244 | ld a,(arry) |
||
245 | ld hl,(arrx) |
||
246 | ret |
||
247 | ahl_oldcoords |
||
248 | ld a,(oldarry) |
||
249 | ld hl,(oldarrx) |
||
250 | ret |
||
251 | |||
252 | showline |
||
344 | alone | 253 | ;hl=x ࠭ |
254 | ;a=y ࠭ |
||
40 | alone | 255 | curlinestate=$+1 |
256 | ld c,0 |
||
257 | dec c |
||
258 | ret nz |
||
259 | call checkfirezone |
||
260 | cp ZONE_WORK |
||
261 | ret nz |
||
344 | alone | 262 | ;out: bc=x cur, de=y cur ( workzone) |
40 | alone | 263 | ;push bc |
264 | ;push de |
||
265 | ld (curlinex2),bc |
||
266 | ld (curliney2),de |
||
267 | |||
268 | curlinex=$+1 |
||
344 | alone | 269 | ld bc,-1 ; 㬮砭 १ shift 㯭 |
40 | alone | 270 | curliney=$+1 |
271 | ld de,0 |
||
344 | alone | 272 | ;bc=x bitmap |
273 | ;de=y bitmap |
||
40 | alone | 274 | call calccoords_frombitmapcoords_noclip ;hl=x, de=y |
275 | |||
276 | push hl ;x |
||
277 | push de ;y |
||
278 | |||
279 | curlinex2=$+1 |
||
280 | ld bc,0 |
||
281 | curliney2=$+1 |
||
282 | ld de,0 |
||
283 | call calccoords_frombitmapcoords_noclip ;hl=x2, de=y2 |
||
284 | ex de,hl ;hl=y2 |
||
285 | push de |
||
286 | pop ix ;iy=x2 |
||
287 | |||
288 | pop de ;y |
||
289 | pop bc ;x |
||
290 | |||
291 | call setpgshapes |
||
344 | alone | 292 | ;bc=x ( ࠭, ⥫) |
293 | ;de=y ( ࠭, ⥫) |
||
40 | alone | 294 | ;ix=x2 |
295 | ;hl=y2 |
||
296 | jp shapes_line |
||
1410 | alone | 297 | |
40 | alone | 298 | invarrzone |
344 | alone | 299 | ; 㭪 ५ |
300 | ;hl=x ࠭ |
||
301 | ;a=y ࠭ |
||
40 | alone | 302 | push af ;y |
303 | call checkfirezone |
||
304 | pop bc ;b=y |
||
305 | cp ZONE_LEFT |
||
306 | ret nz |
||
307 | ld a,b;(arry) |
||
308 | call calccurtool |
||
344 | alone | 309 | ret nc ; ⠪ 㫧 |
40 | alone | 310 | add a,a |
311 | add a,a |
||
312 | add a,a |
||
313 | add a,a |
||
314 | add a,workzoney |
||
315 | ld b,a ;y |
||
316 | ld c,0 ;x/8 |
||
147 | alone | 317 | ld de,0x1004 ;d=hgt ;e=wid |
40 | alone | 318 | call setpgshapes |
657 | alone | 319 | call getcontrastcolors |
40 | alone | 320 | jp shapes_invbox |
321 | |||
322 | control_mousebuttons |
||
323 | ld a,(mousebuttons) |
||
324 | cpl |
||
325 | and 7 |
||
326 | cp 3 |
||
344 | alone | 327 | jr nc,mmb ;LMB+RMB MMB |
40 | alone | 328 | rra |
329 | jp c,fire |
||
330 | rra |
||
331 | jr c,rmb |
||
344 | alone | 332 | ret ; |
40 | alone | 333 | |
334 | isitclick |
||
335 | ld a,(oldmousebuttons) |
||
336 | cpl |
||
337 | and 7 |
||
344 | alone | 338 | ret ;nz= 㦥 ঠ |
40 | alone | 339 | |
340 | mmb |
||
341 | call ahl_coords |
||
344 | alone | 342 | call checkfirezone ;out: a= |
40 | alone | 343 | cp ZONE_WORK |
344 | jr z,mmb_work |
||
345 | cp ZONE_PAL |
||
344 | alone | 346 | ret nz ; |
40 | alone | 347 | call ahl_coords |
348 | sub palettey |
||
349 | cp 4*8 |
||
344 | alone | 350 | ret nc ; |
40 | alone | 351 | rra |
147 | alone | 352 | and 0x0c |
40 | alone | 353 | ld c,a |
354 | ld a,l |
||
355 | srl h |
||
356 | rra |
||
357 | srl h |
||
358 | rra |
||
359 | srl h |
||
360 | rra |
||
361 | sub palettex8 |
||
344 | alone | 362 | ret c ; |
40 | alone | 363 | ;a=x8-palettex8 |
364 | add a,c |
||
365 | add a,a |
||
366 | ld l,a |
||
367 | ld h,0 |
||
368 | ld bc,workpal |
||
344 | alone | 369 | add hl,bc ;hl=㪠⥫ ⥪騩 梥 |
40 | alone | 370 | ld (mmb_setpal_coloraddr),hl |
371 | ld a,(hl) |
||
372 | inc hl |
||
373 | ld h,(hl) |
||
374 | ld l,a |
||
375 | call editpal |
||
376 | mmb_setpal_coloraddr=$+1 |
||
377 | ld (0),hl |
||
657 | alone | 378 | jp showworkscreen |
40 | alone | 379 | mmb_work |
344 | alone | 380 | ;ᮢ ⪮ |
381 | ;bc=x bitmap, de=y bitmap |
||
40 | alone | 382 | ld a,(curcolor1) |
383 | ld (curcolorA),a |
||
384 | ld a,(curcolor2) |
||
385 | ld (curcolorB),a |
||
386 | ld a,(curtool1) |
||
387 | ld (curtool),a |
||
388 | xor a |
||
389 | ld (curmousebutton),a |
||
390 | jr fire_or_rmb_action_ |
||
391 | |||
392 | rmb |
||
393 | ld a,(curcolor2) |
||
394 | ld (curcolorA),a |
||
395 | ld (curcolorB),a |
||
396 | ld a,(curtool2) |
||
397 | ld (curtool),a |
||
398 | ld a,1 |
||
399 | ld (curmousebutton),a |
||
400 | |||
401 | fire_or_rmb_action_ |
||
402 | call ahl_coords |
||
344 | alone | 403 | call checkfirezone ;out: a= |
40 | alone | 404 | cp ZONE_LEFT |
405 | jp z,setcurtool |
||
406 | cp ZONE_PAL |
||
407 | jp z,setcurcolor |
||
408 | cp ZONE_NAVIGATOR |
||
409 | jp z,fire_or_rmb_navigator |
||
410 | cp ZONE_TOP |
||
411 | jp z,filemenu |
||
412 | cp ZONE_WORK |
||
413 | ret nz |
||
414 | xor a |
||
344 | alone | 415 | ld (windowcopymode),a ;塞 ⨭ - 몫砥 ० |
416 | ;bc=x bitmap, de=y bitmap |
||
40 | alone | 417 | ld a,(curtool) |
418 | cp TOOL_PENCIL |
||
419 | jp z,fire_or_rmb_pencil |
||
420 | cp TOOL_LINE |
||
421 | jp z,fire_or_rmb_line |
||
422 | cp TOOL_FILL |
||
423 | jp z,fire_or_rmb_fill |
||
424 | cp TOOL_WINDOW |
||
425 | jp z,fire_or_rmb_window |
||
426 | cp TOOL_BRUSH |
||
427 | jp z,fire_or_rmb_brush |
||
428 | ret |
||
429 | |||
430 | fire_or_rmb_fill |
||
431 | ld a,(curcolorA) |
||
432 | ex af,af' |
||
433 | ld a,(curcolorB) |
||
434 | call fillbitmap |
||
435 | call setpgs_scr |
||
436 | jp showbitmap |
||
437 | |||
438 | fire |
||
439 | ld a,(curcolor1) |
||
440 | ld (curcolorA),a |
||
441 | ld (curcolorB),a |
||
442 | ld a,(curtool1) |
||
443 | ld (curtool),a |
||
444 | xor a |
||
445 | ld (curmousebutton),a |
||
446 | jr fire_or_rmb_action_ |
||
447 | |||
448 | fire_or_rmb_line |
||
344 | alone | 449 | ;bc=x bitmap, de=y bitmap |
40 | alone | 450 | call isitclick |
1410 | alone | 451 | ret nz ; 㦥 ঠ |
40 | alone | 452 | ld hl,(curlinestate) |
453 | dec l |
||
454 | jr z,fire_or_rmb_line_finish |
||
455 | ld a,1 |
||
456 | ld (curlinestate),a |
||
457 | ld (curlinex),bc |
||
458 | ld (curliney),de |
||
459 | ret |
||
460 | fire_or_rmb_line_finish |
||
461 | ld hl,(curliney) |
||
462 | ld ix,(curlinex) |
||
463 | ld a,(curcolorA) |
||
464 | ex af,af' |
||
465 | ld a,(curcolorB) |
||
466 | call prlinebitmap |
||
467 | xor a |
||
468 | ld (curlinestate),a |
||
469 | jp showbitmap |
||
470 | |||
471 | fire_or_rmb_brush |
||
344 | alone | 472 | ;bc=x bitmap, de=y bitmap |
40 | alone | 473 | ld (minx),bc |
474 | ld (maxx),bc |
||
475 | ld (miny),de |
||
476 | ld (maxy),de |
||
477 | |||
478 | ;call ahl_oldcoords |
||
344 | alone | 479 | ;call checkfirezone ;out: a= |
40 | alone | 480 | ;cp ZONE_WORK |
344 | alone | 481 | ;jr nz,firebrushpixel ; 뫮 ࠡ祩 - (TODO ) |
40 | alone | 482 | |
483 | call ahl_oldcoords |
||
344 | alone | 484 | call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
40 | alone | 485 | push bc ;x2 |
486 | push de ;y2 |
||
487 | call ahl_coords |
||
344 | alone | 488 | call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
40 | alone | 489 | ld (curlinex),bc |
490 | ld (curliney),de |
||
491 | pop hl ;y2 |
||
492 | or a |
||
493 | sbc hl,de |
||
494 | ld (brushlinedy),hl |
||
495 | pop hl ;x2 |
||
496 | or a |
||
497 | sbc hl,bc |
||
498 | ld (brushlinedx),hl |
||
499 | |||
500 | ;firebrushpixel |
||
501 | ;call ahl_coords |
||
344 | alone | 502 | ;call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
503 | ;bc=x bitmap, de=y bitmap |
||
40 | alone | 504 | call firepixelpp |
505 | dec bc |
||
506 | call firepixelpp |
||
507 | dec de |
||
508 | call firepixelpp |
||
509 | inc bc |
||
510 | call firepixelpp |
||
511 | inc bc |
||
512 | call firepixelpp |
||
513 | inc de |
||
514 | call firepixelpp |
||
515 | inc de |
||
516 | call firepixelpp |
||
517 | dec bc |
||
518 | call firepixelpp |
||
519 | dec bc |
||
520 | call firepixelpp |
||
521 | |||
522 | jp fire_scrupdate |
||
523 | |||
524 | firepixelpp |
||
525 | call checkminmaxxy |
||
344 | alone | 526 | ;bc=x bitmap ( ) |
527 | ;de=y bitmap ( ) |
||
40 | alone | 528 | ;jr $ |
529 | push bc |
||
530 | push de |
||
531 | brushlinedx=$+2 |
||
532 | ld ix,0 |
||
533 | add ix,bc |
||
534 | brushlinedy=$+1 |
||
535 | ld hl,0 |
||
536 | add hl,de |
||
537 | |||
538 | push bc |
||
539 | push de |
||
540 | push ix |
||
541 | pop bc |
||
542 | ex de,hl |
||
344 | alone | 543 | call checkminmaxxy ; hl |
40 | alone | 544 | ex de,hl |
545 | pop de |
||
546 | pop bc |
||
547 | |||
548 | ld a,(curcolorA) |
||
549 | ex af,af' |
||
550 | ld a,(curcolorB) |
||
551 | ;call setpixel_fast_coloraa |
||
552 | call prlinebitmap |
||
553 | |||
554 | pop de |
||
555 | pop bc |
||
556 | ret |
||
557 | |||
558 | fire_or_rmb_pencil |
||
344 | alone | 559 | ;bc=x bitmap, de=y bitmap (ᥣ ⥫, .. workzone - TODO 㤥ঠ ० ᮢ ⥫) |
40 | alone | 560 | ld (minx),bc |
561 | ld (maxx),bc |
||
562 | ld (miny),de |
||
563 | ld (maxy),de |
||
564 | |||
565 | ;call ahl_oldcoords |
||
344 | alone | 566 | ;call checkfirezone ;out: a= |
40 | alone | 567 | ;cp ZONE_WORK |
344 | alone | 568 | ;jr nz,firepixel ; 뫮 ࠡ祩 - |
40 | alone | 569 | fireline |
147 | alone | 570 | ;ld a,0xfe |
571 | ;in a,(0xfe) |
||
40 | alone | 572 | ld a,(cur_cs_halfrow) |
573 | rra ;Caps Shift |
||
574 | jr c,fireline_noshift |
||
575 | ld bc,(curlinex) |
||
576 | ld a,b |
||
577 | inc a |
||
344 | alone | 578 | ret z ;0xffxx - ।饩 窨 |
40 | alone | 579 | ld de,(curliney) |
580 | jr fireline_noshiftq |
||
581 | fireline_noshift |
||
582 | call ahl_oldcoords |
||
344 | alone | 583 | call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
40 | alone | 584 | fireline_noshiftq |
585 | call checkminmaxxy |
||
586 | push bc ;x2 |
||
587 | push de ;y2 |
||
588 | call ahl_coords |
||
344 | alone | 589 | call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
40 | alone | 590 | ld (curlinex),bc |
591 | ld (curliney),de |
||
592 | call checkminmaxxy |
||
593 | pop hl ;y2 |
||
594 | pop ix ;x2 |
||
595 | ld a,(curcolorA) |
||
596 | ex af,af' |
||
597 | ld a,(curcolorB) |
||
598 | call prlinebitmap |
||
599 | |||
600 | if 1==0 |
||
601 | |||
602 | jr fire_scrupdate |
||
603 | |||
604 | firepixel |
||
605 | call ahl_coords |
||
344 | alone | 606 | call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
40 | alone | 607 | call checkminmaxxy |
344 | alone | 608 | ;bc=x bitmap ( ) |
609 | ;de=y bitmap ( ) |
||
40 | alone | 610 | ld a,(curcolorA) |
611 | ex af,af' |
||
612 | ld a,(curcolorB) |
||
613 | call setpixel_fast_coloraa |
||
614 | |||
615 | endif |
||
616 | |||
617 | fire_scrupdate |
||
344 | alone | 618 | ; ࠭ |
40 | alone | 619 | ;bc=minx |
620 | ;de=miny |
||
621 | ;hl=maxx, maxy |
||
622 | call setpgs_scr |
||
623 | minx=$+1 |
||
624 | ld bc,0 |
||
625 | miny=$+1 |
||
626 | ld de,0 |
||
627 | call calccoords_frombitmapcoords ;hl=x,a=y(min) |
||
628 | dup 3 |
||
629 | srl h |
||
630 | rr l |
||
631 | edup |
||
632 | push af |
||
633 | push hl ;x/8(min) |
||
634 | maxx=$+1 |
||
635 | ld bc,0 |
||
636 | maxy=$+1 |
||
637 | ld de,0 |
||
344 | alone | 638 | ;ᥪ न ᢥ, ⮡ ࠧ checkminmaxxy |
40 | alone | 639 | ld hl,(curbitmapwid_edit) |
640 | dec hl |
||
641 | call minhl_bc_tobc |
||
642 | ld hl,(curbitmaphgt) |
||
643 | dec hl |
||
644 | or a |
||
645 | sbc hl,de |
||
646 | add hl,de |
||
647 | jr nc,$+3 ;de<=hl |
||
648 | ex de,hl |
||
649 | call calccoords_frombitmapcoords ;hl=x,a=y(max) |
||
650 | dup 3 |
||
651 | srl h |
||
652 | rr l |
||
653 | edup |
||
344 | alone | 654 | inc hl ;hl=x/8(max) 㣫 |
40 | alone | 655 | pop de ;x/8(min) |
656 | pop bc ;y(min) |
||
344 | alone | 657 | inc a ;y(max) 㣫 |
40 | alone | 658 | sub b ;y(max)-y(min) |
659 | ;jr z,$ ;ret z |
||
660 | ld hy,a ;hy=hgt |
||
344 | alone | 661 | ld a,l ;x/8(max) 㣫 |
40 | alone | 662 | sub e ;x/8(min) |
663 | ;jr z,$ ;ret z |
||
664 | ld lx,a ;lx=wid(chr) |
||
665 | ld l,e |
||
666 | ld h,b |
||
344 | alone | 667 | push hl ;h=y ࠭, l=x ࠭ |
40 | alone | 668 | ex de,hl |
669 | add hl,hl |
||
670 | add hl,hl |
||
671 | add hl,hl ;hl=x(min) |
||
672 | ld a,b ;a=y(min) |
||
673 | call calcbitmapcoords |
||
674 | ld h,b |
||
344 | alone | 675 | ld l,c ;hl=x bitmap ;de=y bitmap |
676 | pop bc ;b=y ࠭, c=x ࠭ |
||
40 | alone | 677 | jp prbitmapbox |
678 | |||
679 | setcurcolor |
||
680 | call isitclick |
||
1410 | alone | 681 | ret nz ; 㦥 ঠ |
40 | alone | 682 | ld a,(curmousebutton) |
683 | or a |
||
684 | ld de,curcolor1 |
||
685 | jr z,$+5 |
||
686 | ld de,curcolor2 |
||
687 | call ahl_coords |
||
688 | sub palettey |
||
689 | rra |
||
1410 | alone | 690 | cp 0x10 |
691 | jr c,$+4 |
||
692 | ld a,0x10 ;transparent color 16 |
||
693 | and 0x1c;0x0c |
||
40 | alone | 694 | ld bc,-palettex8*8 |
695 | add hl,bc |
||
696 | srl l |
||
697 | srl l |
||
698 | srl l |
||
699 | add a,l |
||
700 | ld (de),a |
||
701 | jp showcurcolor |
||
702 | |||
703 | checkfirecoords |
||
344 | alone | 704 | ;hl=x ࠭, a=y ࠭ |
705 | ;out: CY= |
||
706 | ;bc=x bitmap, de=y bitmap |
||
707 | call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
||
40 | alone | 708 | ld hl,(curbitmapwid_edit) |
709 | scf |
||
710 | sbc hl,bc |
||
711 | ret c ;x>(bitmapwid-1) => x>=bitmapwid |
||
712 | ld hl,(curbitmaphgt) |
||
713 | scf |
||
714 | sbc hl,de |
||
715 | ret ;CY: y>(bitmaphgt-1) => y>=bitmaphgt |
||
716 | |||
717 | checkminmaxxy |
||
344 | alone | 718 | ;bc=x, de=y ( ⥫) ( ) |
40 | alone | 719 | bit 7,b |
720 | jr nz,checkminmaxxy_nox |
||
721 | ld hl,(maxx) |
||
722 | or a |
||
723 | sbc hl,bc |
||
724 | jr nc,$+6 |
||
725 | ld (maxx),bc |
||
726 | ld hl,(minx) |
||
727 | or a |
||
728 | sbc hl,bc |
||
729 | jr c,$+6 |
||
730 | ld (minx),bc |
||
731 | jr checkminmaxxy_xq |
||
732 | checkminmaxxy_nox |
||
733 | ld hl,0 |
||
734 | ld (minx),hl |
||
735 | checkminmaxxy_xq |
||
736 | bit 7,d |
||
737 | jr nz,checkminmaxxy_noy |
||
738 | ld hl,(maxy) |
||
739 | or a |
||
740 | sbc hl,de |
||
741 | jr nc,$+6 |
||
742 | ld (maxy),de |
||
743 | ld hl,(miny) |
||
744 | or a |
||
745 | sbc hl,de |
||
746 | ret c |
||
747 | ld (miny),de |
||
748 | ret |
||
749 | checkminmaxxy_noy |
||
750 | ld hl,0 |
||
751 | ld (miny),hl |
||
752 | ret |
||
753 | |||
754 | control_keys |
||
755 | key=$+1 |
||
756 | ld a,0 |
||
116 | alone | 757 | cp key_left |
40 | alone | 758 | jp z,control_keys_left |
116 | alone | 759 | cp key_down |
40 | alone | 760 | jp z,control_keys_down |
116 | alone | 761 | cp key_up |
40 | alone | 762 | jp z,control_keys_up |
116 | alone | 763 | cp key_right |
40 | alone | 764 | jp z,control_keys_right |
765 | cp '+' |
||
766 | jp z,control_keys_plus |
||
767 | cp '-' |
||
768 | jp z,control_keys_minus |
||
516 | alone | 769 | cp 'n' |
770 | jp z,control_keys_new |
||
40 | alone | 771 | cp 'c' |
772 | jp z,control_keys_clear |
||
773 | cp 'w' |
||
774 | jp z,window_allpicture |
||
775 | cp 'v' |
||
776 | jp z,window_copy |
||
777 | cp 'V' |
||
778 | jp z,window_copy |
||
779 | cp 'z' |
||
780 | jp z,control_keys_swapcolors |
||
781 | cp 'x' |
||
782 | jp z,window_mirrhor |
||
783 | cp 'y' |
||
784 | jp z,window_mirrver |
||
785 | cp key_redraw |
||
786 | jp z,showworkscreen |
||
787 | sub '1' |
||
788 | cp 4 |
||
516 | alone | 789 | jp c,control_keys_selectbmp |
40 | alone | 790 | |
791 | ret |
||
792 | |||
516 | alone | 793 | control_keys_new |
529 | alone | 794 | ;ld lx,0b00111111 ;background fill color byte 0bRLrrrlll |
795 | ;ld hx,0b00000000 ;11111111 ;brush color byte 0bRLrrrlll |
||
796 | call getcontrastcolors |
||
516 | alone | 797 | ld iy,win_new |
798 | call window_start |
||
518 | alone | 799 | call window_mainloop |
800 | ;restore screen: |
||
801 | call showworkscreen |
||
516 | alone | 802 | ret |
803 | |||
1410 | alone | 804 | getcontrastcolors ;out: lx=background fill color byte 0bRLrrrlll, hx=brush color byte 0bRLrrrlll |
657 | alone | 805 | push bc |
806 | push de |
||
807 | push hl |
||
529 | alone | 808 | ld hl,workpal |
809 | ;DDp palette: %grbG11RB(low),%grbG11RB(high), |
||
810 | ;high B, high b, low B, low b |
||
811 | ld ix,0x00ff ;hx=current max, lx=current min |
||
812 | ;ld iy,0x0000 ;hy=current max index, ly=current min index |
||
813 | ld c,16 |
||
814 | getcontrastcolors0 |
||
815 | ld e,(hl) |
||
816 | inc hl |
||
817 | ld d,(hl) |
||
818 | inc hl |
||
819 | push hl |
||
820 | ex de,hl |
||
821 | call calchexcolor |
||
822 | ;b=0xBB |
||
823 | ;d=0xRR |
||
824 | ;e=0xGG |
||
825 | ld a,b |
||
657 | alone | 826 | and 0x0f |
827 | ld b,a |
||
529 | alone | 828 | ld a,d |
657 | alone | 829 | and 0x0f |
830 | ld d,a |
||
529 | alone | 831 | ld a,e |
657 | alone | 832 | and 0x0f |
833 | ld e,a |
||
834 | add a,b |
||
835 | add a,d |
||
529 | alone | 836 | cp hx ;current max |
837 | jr c,getcontrastcolors_nmax |
||
838 | ld hx,a |
||
839 | ld hy,c |
||
840 | getcontrastcolors_nmax |
||
841 | cp lx ;current min |
||
842 | jr nc,getcontrastcolors_nmin |
||
843 | ld lx,a |
||
844 | ld ly,c |
||
845 | getcontrastcolors_nmin |
||
846 | pop hl |
||
847 | dec c |
||
848 | jr nz,getcontrastcolors0 |
||
849 | ;hy=current max index (for background), ly=current min index (for brush) |
||
850 | ld h,tpixelrecode/256 |
||
851 | ld a,16 |
||
852 | sub hy |
||
853 | ld l,a |
||
854 | ld a,(hl) |
||
855 | ld lx,a |
||
856 | ld a,16 |
||
857 | sub ly |
||
858 | ld l,a |
||
859 | ld a,(hl) |
||
860 | ld hx,a |
||
861 | ;ld lx,0b00111111 ;background fill color byte 0bRLrrrlll |
||
862 | ;ld hx,0b00000000 ;11111111 ;brush color byte 0bRLrrrlll |
||
657 | alone | 863 | pop hl |
864 | pop de |
||
865 | pop bc |
||
529 | alone | 866 | ret |
657 | alone | 867 | |
1410 | alone | 868 | getgreycolor ;TODO ᠬ ન ᠬ , |
657 | alone | 869 | ld a,0b00111111 |
870 | ret |
||
871 | |||
872 | getblackongrey |
||
873 | call getcontrastcolors |
||
874 | call getgreycolor |
||
875 | ld lx,a |
||
876 | ret |
||
877 | |||
526 | alone | 878 | buttoncancel_unclick |
518 | alone | 879 | jp window_close |
526 | alone | 880 | buttonok_unclick |
881 | ;TODO check sizes |
||
882 | ld hl,win_new_twid |
||
883 | call strtoint |
||
884 | dec hl |
||
885 | ld bc,2048 |
||
886 | or a |
||
887 | sbc hl,bc |
||
888 | add hl,bc |
||
889 | inc hl |
||
890 | ret nc ;wrong number |
||
891 | ld (buttonok_wid),hl |
||
892 | ld hl,win_new_thgt |
||
893 | call strtoint |
||
894 | dec hl |
||
895 | ld bc,2048 |
||
896 | or a |
||
897 | sbc hl,bc |
||
898 | add hl,bc |
||
899 | inc hl |
||
900 | ret nc ;wrong number |
||
901 | ;new image: |
||
902 | push hl |
||
903 | call delbitmap ;㤠 ⥪ ⨭ ࠭窨 |
||
904 | buttonok_wid=$+1 |
||
905 | ld hl,0 |
||
906 | ld (curbitmapwid_edit),hl |
||
907 | pop hl |
||
908 | ld (curbitmaphgt),hl |
||
909 | call reserve_bmp_pages ;⠬ genmuldewid_ahl |
||
910 | |||
911 | ld bc,0 ;bc=x in bitmap |
||
912 | ld de,0 ;de=y in bitmap |
||
913 | ld hl,(curbitmapwid_edit) ;hl=wid |
||
914 | ld ix,(curbitmaphgt) ;ix=hgt |
||
529 | alone | 915 | |
535 | alone | 916 | ld a,(win_new_flag0color_flags) |
529 | alone | 917 | bit WINELEMENT_FLAG_CHECKED,a |
535 | alone | 918 | ld a,0 |
919 | jr nz,newimage_q |
||
920 | ld a,(win_new_flagbrushcolor_flags) |
||
921 | bit WINELEMENT_FLAG_CHECKED,a |
||
529 | alone | 922 | ld a,(curcolor1) ;a=color1 |
923 | jr nz,$+5 |
||
526 | alone | 924 | ld a,(curcolor2) ;a=color1 |
535 | alone | 925 | newimage_q |
526 | alone | 926 | call bitmap_fillbox |
927 | |||
928 | jp window_close |
||
516 | alone | 929 | reter |
930 | ret |
||
931 | |||
932 | win_new |
||
933 | ;x/2,y,wid/2,hgt |
||
526 | alone | 934 | db 52,10,64,64 |
518 | alone | 935 | db 0b1000 ;flags |
936 | ; Bit 0 - ࠬ (don't draw frame) |
||
937 | ; Bit 1 - reserved |
||
938 | ; Bit 2 - ᪠ ࠭ (movable window) |
||
939 | ; Bit 3 - 室 -⪭ ⮫쪮 । (CANCEL by clicking outside the window) |
||
940 | |||
516 | alone | 941 | ;;window elements (linked list) |
942 | ;link16 ;0=end of list |
||
943 | ;x/2,y,wid/2,hgt |
||
944 | ;type |
||
945 | ;checked |
||
946 | ;hidden |
||
947 | ;disabled |
||
948 | ;onclick16 |
||
949 | ;onunclick16 |
||
950 | ;onmove16 |
||
526 | alone | 951 | win_new_title |
518 | alone | 952 | STARTWINELEMENT |
535 | alone | 953 | dw win_new_flagbgcolor ;0=end of list |
526 | alone | 954 | db 24,3,9*2,8 |
955 | db T_LABEL |
||
956 | db 0b0000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
||
957 | db 0 ;hotkey |
||
958 | dw reter ;onclick16 |
||
959 | dw reter ;onunclick16 |
||
960 | dw reter ;onmove16 |
||
961 | PADWINELEMENT |
||
962 | db "New image",0 |
||
963 | |||
535 | alone | 964 | win_new_flagbgcolor |
529 | alone | 965 | STARTWINELEMENT |
535 | alone | 966 | dw win_new_flagbrushcolor ;0=end of list |
967 | db 24,14,4,8 |
||
968 | db T_RADIO |
||
969 | win_new_flagbgcolor_flags |
||
529 | alone | 970 | db 0b1001 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
971 | db 0 ;hotkey |
||
972 | dw reter ;onclick16 |
||
973 | dw reter ;onunclick16 |
||
974 | dw reter ;onmove16 |
||
975 | PADWINELEMENT |
||
535 | alone | 976 | db "Background color",0 |
977 | |||
978 | win_new_flagbrushcolor |
||
979 | STARTWINELEMENT |
||
980 | dw win_new_flag0color ;0=end of list |
||
981 | db 24,22,4,8 |
||
982 | db T_RADIO |
||
983 | win_new_flagbrushcolor_flags |
||
984 | db 0b1000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
||
985 | db 0 ;hotkey |
||
986 | dw reter ;onclick16 |
||
987 | dw reter ;onunclick16 |
||
988 | dw reter ;onmove16 |
||
989 | PADWINELEMENT |
||
529 | alone | 990 | db "Brush color",0 |
991 | |||
535 | alone | 992 | win_new_flag0color |
993 | STARTWINELEMENT |
||
994 | dw win_new_labelhgt ;0=end of list |
||
995 | db 24,30,4,8 |
||
996 | db T_RADIO |
||
997 | win_new_flag0color_flags |
||
998 | db 0b1000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
||
999 | db 0 ;hotkey |
||
1000 | dw reter ;onclick16 |
||
1001 | dw reter ;onunclick16 |
||
1002 | dw reter ;onmove16 |
||
1003 | PADWINELEMENT |
||
1004 | db "Color 0",0 |
||
1005 | |||
526 | alone | 1006 | win_new_labelhgt |
1007 | STARTWINELEMENT |
||
1008 | dw win_new_edithgt ;0=end of list |
||
1009 | db 8,14,8,8 |
||
1010 | db T_LABEL |
||
1011 | db 0b0000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
||
1012 | db 0 ;hotkey |
||
1013 | dw reter ;onclick16 |
||
1014 | dw reter ;onunclick16 |
||
1015 | dw reter ;onmove16 |
||
1016 | PADWINELEMENT |
||
1017 | db "Hgt=",0 |
||
1018 | |||
1019 | win_new_edithgt |
||
1020 | STARTWINELEMENT |
||
1021 | dw win_new_labelwid ;0=end of list |
||
1022 | db 16,14,8,8 |
||
1023 | db T_EDIT |
||
521 | alone | 1024 | db 0b1000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
518 | alone | 1025 | db 0 ;hotkey |
526 | alone | 1026 | dw reter ;onclick16 |
1027 | dw reter ;onunclick16 |
||
516 | alone | 1028 | dw reter ;onmove16 |
518 | alone | 1029 | PADWINELEMENT |
526 | alone | 1030 | win_new_thgt |
535 | alone | 1031 | db "192 ",0 |
526 | alone | 1032 | |
1033 | win_new_labelwid |
||
1034 | STARTWINELEMENT |
||
1035 | dw win_new_editwid ;0=end of list |
||
1036 | db 8,24,8,8 |
||
1037 | db T_LABEL |
||
1038 | db 0b0000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
||
1039 | db 0 ;hotkey |
||
1040 | dw reter ;onclick16 |
||
1041 | dw reter ;onunclick16 |
||
1042 | dw reter ;onmove16 |
||
1043 | PADWINELEMENT |
||
1044 | db "Wid=",0 |
||
1045 | |||
1046 | win_new_editwid |
||
1047 | STARTWINELEMENT |
||
1048 | dw win_new_buttonok ;0=end of list |
||
1049 | db 16,24,8,8 |
||
1050 | db T_EDIT |
||
1051 | db 0b1000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
||
1052 | db 0 ;hotkey |
||
1053 | dw reter ;onclick16 |
||
1054 | dw reter ;onunclick16 |
||
1055 | dw reter ;onmove16 |
||
1056 | PADWINELEMENT |
||
1057 | win_new_twid |
||
535 | alone | 1058 | db "256 ",0 |
526 | alone | 1059 | |
1060 | win_new_buttonok |
||
1061 | STARTWINELEMENT |
||
1062 | dw win_new_buttoncancel ;0=end of list |
||
1063 | db 8,40,20,16 |
||
1064 | db T_BUTTON |
||
1065 | db 0b0000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
||
1066 | db 0 ;hotkey |
||
1067 | dw reter ;onclick16 |
||
1068 | dw buttonok_unclick ;onunclick16 |
||
1069 | dw reter ;onmove16 |
||
1070 | PADWINELEMENT |
||
518 | alone | 1071 | db "OK",0 |
1072 | |||
526 | alone | 1073 | win_new_buttoncancel |
518 | alone | 1074 | STARTWINELEMENT |
516 | alone | 1075 | dw 0 ;0=end of list |
526 | alone | 1076 | db 36,40,20,16 |
1077 | db T_BUTTON |
||
521 | alone | 1078 | db 0b0000 ;b0:checked, b1:hidden, b2:disabled, b3:invertible |
518 | alone | 1079 | db 0 ;hotkey |
526 | alone | 1080 | dw reter ;onclick16 |
1081 | dw buttoncancel_unclick ;onunclick16 |
||
516 | alone | 1082 | dw reter ;onmove16 |
518 | alone | 1083 | PADWINELEMENT |
1084 | db "Cancel",0 |
||
516 | alone | 1085 | |
1086 | |||
1087 | |||
40 | alone | 1088 | control_keys_swapcolors |
1089 | ld hl,(curcolor1) ;1, 2 |
||
1090 | ld a,l |
||
1091 | ld l,h |
||
1092 | ld h,a |
||
1093 | ld (curcolor1),hl |
||
1094 | jp showworkscreen |
||
1095 | |||
1096 | control_keys_selectbmp |
||
1097 | call selectbmp |
||
1098 | call kill_unfinished_shapes |
||
1099 | jp showworkscreen ;control_scale_checksize |
||
1100 | |||
1101 | kill_unfinished_shapes |
||
1102 | xor a |
||
344 | alone | 1103 | ld (curlinestate),a ;㡨 । |
40 | alone | 1104 | dec a |
344 | alone | 1105 | ld (curlinex+1),a ;⬥塞 砫 १ shift |
40 | alone | 1106 | ld a,(curwindowstate) |
1107 | dec a |
||
344 | alone | 1108 | call z,clearwindowstate ;㡨 । |
40 | alone | 1109 | ret |
1110 | |||
1111 | findcurbitmap |
||
344 | alone | 1112 | ;a= |
40 | alone | 1113 | ld c,a |
1114 | ld b,0 |
||
1115 | ld de,bitmapstruct_sz |
||
1116 | call mulbcde_ahl |
||
1117 | ld bc,bitmaps |
||
1118 | add hl,bc |
||
1119 | ret |
||
1120 | |||
1121 | control_keys_right |
||
1122 | call control_getscrollvalue ;de=scrollvalue |
||
1123 | ld hl,(curbitmapxscroll) |
||
1124 | add hl,de |
||
1125 | control_keys_setxscroll |
||
1126 | ld (curbitmapxscroll),hl |
||
302 | alone | 1127 | control_scroll_emptyqueue_checksize |
1128 | ;call emptykeyqueue |
||
1129 | emptykeyqueue0 |
||
1130 | GET_KEY |
||
1131 | or a |
||
1132 | jr nz,emptykeyqueue0 |
||
40 | alone | 1133 | control_scroll_checksize |
1134 | call control_scroll_checksizepp |
||
1135 | call shownavigator |
||
1136 | call showtitle |
||
1137 | jp showbitmap |
||
1138 | control_scroll_checksizepp |
||
1139 | ld hl,+(workzonex8+workzonewid8)*8 ;hl=x |
||
1140 | ld a,workzoney+workzonehgt ;a=y |
||
344 | alone | 1141 | call calcbitmapcoords ;out: bc=x bitmap, de=y bitmap |
40 | alone | 1142 | |
1143 | ld hl,(curbitmaphgt) |
||
1144 | or a |
||
1145 | sbc hl,de |
||
1146 | jr nc,control_scroll_nocorrecty ;hgt>=y |
||
344 | alone | 1147 | ;hl<0 (쪮 譨 ᥫ bitmap y) |
1148 | ; bitmaphgt-(workzonehgt/scale) = bitmaphgt+hl |
||
40 | alone | 1149 | ld de,workzonehgt |
1150 | call scalescrcoords |
||
1151 | ld hl,(curbitmaphgt) |
||
1152 | call subhldecheck0 |
||
1153 | ld (curbitmapyscroll),hl |
||
1154 | control_scroll_nocorrecty |
||
1155 | ld hl,(curbitmapwid_edit) |
||
1156 | or a |
||
1157 | sbc hl,bc |
||
1158 | ret nc ;wid>=x |
||
344 | alone | 1159 | ;hl<0 (쪮 譨 ᥫ bitmap x) |
1160 | ; bitmapwid-(workzonewid/scale) = bitmapwid+hl |
||
40 | alone | 1161 | ld de,workzonewid8*8 |
1162 | call scalescrcoords |
||
1163 | ld hl,(curbitmapwid_edit) |
||
1164 | call subhldecheck0 |
||
1165 | ld (curbitmapxscroll),hl |
||
1166 | ret |
||
1167 | |||
1168 | control_keys_left |
||
1169 | call control_getscrollvalue ;de=scrollvalue |
||
1170 | ld hl,(curbitmapxscroll) |
||
1171 | ;or a |
||
1172 | ;sbc hl,de |
||
1173 | ;jr nc,$+5 |
||
1174 | ;ld hl,0 |
||
1175 | call subhldecheck0 |
||
1176 | jr control_keys_setxscroll |
||
1177 | |||
1178 | control_keys_down |
||
1179 | call control_getscrollvalue ;de=scrollvalue |
||
1180 | ld hl,(curbitmapyscroll) |
||
1181 | add hl,de |
||
1182 | control_keys_setyscroll |
||
1183 | ld (curbitmapyscroll),hl |
||
302 | alone | 1184 | jr control_scroll_emptyqueue_checksize |
40 | alone | 1185 | |
1186 | control_keys_up |
||
1187 | call control_getscrollvalue ;de=scrollvalue |
||
1188 | ld hl,(curbitmapyscroll) |
||
1189 | ;or a |
||
1190 | ;sbc hl,de |
||
1191 | ;jr nc,$+5 |
||
1192 | ;ld hl,0 |
||
1193 | call subhldecheck0 |
||
1194 | jr control_keys_setyscroll |
||
1195 | |||
1196 | control_getscrollvalue |
||
1197 | ld de,64 |
||
1198 | jp scalescrcoords |
||
1199 | |||
1200 | control_scale_checksize |
||
1201 | call control_scroll_checksizepp |
||
1202 | |||
1203 | call setpgshapes |
||
1204 | |||
1205 | ld bc,workzoney*256 + workzonex8 ;b=y ;c=x/8 |
||
1206 | ld de,workzonehgt*256 + workzonewid8 ;d=hgt ;e=wid8 |
||
147 | alone | 1207 | ld a,0x3f;%00111111 ;a=%33210210 |
40 | alone | 1208 | call shapes_fillbox |
1209 | jp control_scroll_checksize;showworkscreen |
||
1210 | control_keys_plus |
||
1211 | ld a,(curbitmapscale) |
||
1212 | inc a |
||
1213 | cp 5+1 |
||
1214 | jr c,$+3 |
||
1215 | dec a |
||
1216 | ld (curbitmapscale),a |
||
344 | alone | 1217 | jp control_scroll_checksize ; 㦭 ९뢠 ⮥ |
40 | alone | 1218 | control_keys_minus |
1219 | ld a,(curbitmapscale) |
||
1220 | dec a |
||
1221 | jr nz,$+3 |
||
1222 | inc a |
||
1223 | ld (curbitmapscale),a |
||
1224 | jp control_scale_checksize |
||
1225 | |||
1226 | control_keys_clear |
||
1227 | ld a,(curwindowstate) |
||
1228 | cp 2 |
||
1229 | ret nz |
||
344 | alone | 1230 | ld bc,(curwindowx) ;bc=x bitmap |
1231 | ld de,(curwindowy) ;de=y bitmap |
||
40 | alone | 1232 | ld hl,(curwindowwid) ;hl=wid |
1233 | ld ix,(curwindowhgt) ;ix=hgt |
||
1234 | ld a,(curcolor2) |
||
1235 | ex af,af' |
||
1236 | ld a,(curcolor2) |
||
1237 | ;a=color1 |
||
1238 | ;a'=color2 |
||
1239 | call bitmap_fillbox |
||
1240 | jp showbitmap |
||
1241 | |||
1242 | checkfirezone |
||
1243 | ;hl=x |
||
1244 | ;a=y |
||
344 | alone | 1245 | ;out: a= ZONE_WORK: bc=x bitmap, de=y bitmap |
40 | alone | 1246 | ld c,a |
1247 | cp workzoney |
||
1248 | ld a,ZONE_TOP |
||
1249 | ret c ;top |
||
1250 | ld a,ZONE_LEFT |
||
1251 | ld de,workzonex8*8 |
||
1252 | ;or a |
||
1253 | sbc hl,de |
||
1254 | add hl,de |
||
1255 | ret c ;left |
||
1256 | ld de,+(workzonex8+workzonewid8)*8 |
||
1257 | ;or a |
||
1258 | sbc hl,de |
||
1259 | add hl,de |
||
1260 | ld a,c |
||
1261 | jr nc,checkfirezone_right ;right |
||
344 | alone | 1262 | call checkfirecoords ;CY= |
40 | alone | 1263 | ld a,ZONE_NO |
344 | alone | 1264 | ret c ;bc=x bitmap, de=y bitmap |
40 | alone | 1265 | ld a,ZONE_WORK |
1266 | ret |
||
1267 | checkfirezone_right |
||
1268 | cp navigatory |
||
1269 | ld a,ZONE_PAL |
||
1270 | ret c ;pal |
||
1271 | cp navigatory+navigatorhgt |
||
1272 | ld a,ZONE_NAVIGATOR |
||
1273 | ret c ;navigator |
||
1274 | ld a,ZONE_RIGHT |
||
1275 | ret ;right |
||
1276 | |||
1277 | showworkscreen |
||
1278 | call setpgs_scr |
||
1279 | call setpgshapes |
||
657 | alone | 1280 | call getgreycolor ;ld a,backcolor |
40 | alone | 1281 | call shapes_cls |
1282 | |||
1283 | call showtitle |
||
1284 | call showbitmap |
||
1285 | call showtools |
||
1286 | call showcurcolor |
||
1287 | call showpalette |
||
1288 | |||
1289 | jp shownavigator |
||
1290 | |||
1291 | showcurcolor |
||
1292 | call setpgshapes |
||
1293 | |||
1294 | ld de,256*colorhgt+2 |
||
1295 | push de ;y |
||
1296 | ld bc,256*colory+colorx8 |
||
1410 | alone | 1297 | ld hl,(curcolor1) |
1298 | ld h,tpixelrecode/256 |
||
1299 | ld a,(hl) |
||
1300 | ;call shapes_colortocolormask |
||
40 | alone | 1301 | call shapes_prbox |
1302 | ;ld de,256*colorhgt+2 |
||
1303 | pop de ;y |
||
1304 | ld bc,256*colory+colorx8+2 |
||
1410 | alone | 1305 | ld hl,(curcolor2) |
1306 | ld h,tpixelrecode/256 |
||
1307 | ld a,(hl) |
||
1308 | ;call shapes_colortocolormask |
||
40 | alone | 1309 | jp shapes_prbox |
1310 | |||
1311 | calccurtool |
||
1312 | ;a=y |
||
344 | alone | 1313 | ;। 㫧 न⠬ ५ |
40 | alone | 1314 | ;out: a=tool, NC: a>=NTOOLS |
1315 | sub 8 |
||
1316 | rra |
||
1317 | rra |
||
1318 | rra |
||
1319 | rra |
||
147 | alone | 1320 | and 0x0f |
40 | alone | 1321 | cp NTOOLS |
1322 | ret |
||
1323 | |||
1324 | setcurtool |
||
1325 | call isitclick |
||
657 | alone | 1326 | ret nz ; 㦥 ঠ |
40 | alone | 1327 | xor a |
344 | alone | 1328 | ld (curlinestate),a ;⬥ । |
40 | alone | 1329 | curmousebutton=$+1 ;0=LMB |
1330 | or 0 |
||
1331 | ld hl,curtool1 |
||
1332 | jr z,$+5 |
||
1333 | ld hl,curtool2 |
||
1334 | ld a,(arry) |
||
1335 | call calccurtool |
||
1336 | ret nc ;>=NTOOLS |
||
1337 | ld (hl),a |
||
1338 | cp TOOL_WINDOW |
||
1339 | jr nz,showcurtool |
||
1340 | ld a,1 |
||
1341 | ld (windowcopymode),a |
||
1342 | ;jp showcurtool |
||
1343 | showcurtool |
||
1344 | call setpgshapes |
||
1345 | |||
1346 | ld bc,256*(colory-10)+colorx8+1 |
||
1347 | call calcscr_from_xchr_y |
||
1348 | ld de,text_ntool |
||
1349 | ld a,(curtool1) |
||
1350 | add a,'0' |
||
1351 | ld (de),a |
||
1352 | inc de |
||
1353 | inc de |
||
1354 | ld a,(curtool2) |
||
1355 | add a,'0' |
||
1356 | ld (de),a |
||
1357 | dec de |
||
1358 | dec de |
||
657 | alone | 1359 | call getcontrastcolors ;ld ix,0xff00+backcolor |
516 | alone | 1360 | jp shapes_prtext48ega;_oncolor |
40 | alone | 1361 | |
1362 | text_ntool |
||
1363 | db "0 0",0 |
||
1364 | |||
1365 | showtools |
||
1366 | call setpgshapes |
||
657 | alone | 1367 | call getcontrastcolors ;ld ix,0x0000+backcolor |
1368 | call getgreycolor ;ld a,backcolor |
||
1369 | ld lx,a |
||
40 | alone | 1370 | ld de,ttools |
1371 | ld bc,256*workzoney+0 |
||
1372 | showtools0 |
||
1373 | push bc |
||
1374 | push de |
||
147 | alone | 1375 | ld de,0x1004 |
657 | alone | 1376 | call getgreycolor ;ld a,backcolor |
40 | alone | 1377 | call shapes_prbox |
1378 | pop de |
||
1379 | pop bc |
||
1380 | push bc |
||
1381 | ld a,b |
||
1382 | add a,4 |
||
1383 | ld b,a |
||
1384 | call calcscr_from_xchr_y |
||
344 | alone | 1385 | set 5,h ; 4 ᥫ ࠢ |
516 | alone | 1386 | call shapes_prtext48ega;_black |
40 | alone | 1387 | pop bc |
1388 | ld a,b |
||
147 | alone | 1389 | add a,0x10 |
40 | alone | 1390 | ld b,a |
1391 | inc de |
||
1392 | ld a,(de) |
||
1393 | inc a |
||
1394 | jr nz,showtools0 |
||
1395 | ret |
||
1396 | |||
1397 | showpalette |
||
1398 | call setpgshapes |
||
1399 | |||
1400 | xor a |
||
1401 | ld b,workzoney ;b |
||
1402 | ld e,4 |
||
1403 | prpal0 |
||
1404 | ld c,palettex8 |
||
1405 | ld d,4 |
||
1406 | prpal1 |
||
1407 | push af |
||
1408 | push de |
||
147 | alone | 1409 | ld de,0x0801 ;hgt, wid(chr) |
40 | alone | 1410 | push bc |
1410 | alone | 1411 | ld l,a |
1412 | ld h,tpixelrecode/256 |
||
1413 | ld a,(hl) |
||
1414 | ;call shapes_colortocolormask |
||
40 | alone | 1415 | call shapes_prbox |
1416 | pop bc |
||
1417 | pop de |
||
1418 | pop af |
||
1419 | inc c |
||
1420 | inc a |
||
1421 | dec d |
||
1422 | jr nz,prpal1 |
||
1423 | push af |
||
1424 | ld a,b |
||
1425 | add a,8 |
||
1426 | ld b,a ;y |
||
1427 | pop af |
||
1428 | dec e |
||
1429 | jr nz,prpal0 |
||
1430 | ret |
||
1431 | |||
1432 | showtitle |
||
1433 | call setpgshapes |
||
1434 | |||
1435 | ld bc,0 ;b=y ;c=x/8 |
||
1436 | ld de,titlehgt*256 + scrwid8 ;d=hgt ;e=wid8 |
||
657 | alone | 1437 | ;xor a ;a=%33210210 |
1438 | call getcontrastcolors |
||
1439 | ld a,hx |
||
40 | alone | 1440 | call shapes_fillbox |
516 | alone | 1441 | ;ld hl,prchar48ega_whiteoncolor |
1442 | ;ld (prchar48ega_colorproc),hl |
||
657 | alone | 1443 | ;call getcontrastcolors ;ld ix,0xff00 ;lx=䮭 梥 |
1444 | ld a,lx |
||
1445 | ld lx,hx |
||
1446 | ld hx,a |
||
40 | alone | 1447 | ld hl,scrbase ;scr |
1448 | ld a,(curbmp) |
||
1449 | add a,'1' |
||
516 | alone | 1450 | call shapes_prchar48ega;_oncolor |
40 | alone | 1451 | ld a,':' |
516 | alone | 1452 | call shapes_prchar48ega;_oncolor |
40 | alone | 1453 | ld de,curpicname |
516 | alone | 1454 | call shapes_prtext48ega;_oncolor |
40 | alone | 1455 | ld a,' ' |
516 | alone | 1456 | call shapes_prchar48ega;_oncolor |
40 | alone | 1457 | ex de,hl |
1458 | ld hl,(curbitmapwid_edit) |
||
516 | alone | 1459 | call shapes_prnum;_oncolor |
40 | alone | 1460 | ex de,hl |
1461 | ld a,'x' |
||
516 | alone | 1462 | call shapes_prchar48ega;_oncolor |
40 | alone | 1463 | ex de,hl |
1464 | ld hl,(curbitmaphgt) |
||
516 | alone | 1465 | call shapes_prnum;_oncolor |
40 | alone | 1466 | ex de,hl |
1467 | ld a,' ' |
||
516 | alone | 1468 | call shapes_prchar48ega;_oncolor |
40 | alone | 1469 | ex de,hl |
1470 | ld a,(curbitmapscale) |
||
1471 | ld l,a |
||
1472 | ld h,0 |
||
1473 | add hl,hl |
||
1474 | add hl,hl |
||
1475 | ld bc,tscalesnames-4 |
||
1476 | add hl,bc |
||
1477 | ex de,hl |
||
516 | alone | 1478 | call shapes_prtext48ega;_oncolor |
40 | alone | 1479 | |
1480 | ld a,'%' |
||
516 | alone | 1481 | jp shapes_prchar48ega;_oncolor |
40 | alone | 1482 | |
1483 | |||
1484 | tscalesnames |
||
1485 | db " 25",0 |
||
1486 | db " 50",0 |
||
1487 | db "100",0 |
||
1488 | db "200",0 |
||
1489 | db "400",0 |
||
1490 | |||
1410 | alone | 1491 | setpal_de |
1492 | OS_SETPAL |
||
1493 | ret |
||
40 | alone | 1494 | showbitmap |
1410 | alone | 1495 | ld de,workpal |
1496 | call setpal_de |
||
40 | alone | 1497 | call setpgs_scr |
1498 | ld hl,(curbitmapwid_edit) |
||
1499 | ld de,(curbitmaphgt) |
||
1500 | ld a,d |
||
1501 | or e |
||
344 | alone | 1502 | ret z ;⮩ |
40 | alone | 1503 | call scalebitmapcoords ;hl=wid, de=hgt |
1504 | inc hl |
||
1505 | srl h |
||
1506 | rr l |
||
1507 | inc hl |
||
1508 | srl h |
||
1509 | rr l |
||
1510 | inc hl |
||
1511 | srl h |
||
1512 | rr l ;wid(chr) |
||
1513 | ld bc,workzonewid8 |
||
1514 | or a |
||
1515 | sbc hl,bc |
||
1516 | add hl,bc |
||
344 | alone | 1517 | jr nc,$+3 ;wid>=workzonewid => ਭ ࠡ祩 |
1518 | ld c,l ;wid<workzonewid => wid |
||
40 | alone | 1519 | ld lx,c;workzonewid8 ;lx=wid(chr) |
1520 | ex de,hl |
||
1521 | ld bc,workzonehgt |
||
1522 | or a |
||
1523 | sbc hl,bc |
||
1524 | add hl,bc |
||
344 | alone | 1525 | jr nc,$+3 ;hgt>=workzonehgt => ਭ ࠡ祩 |
1526 | ld c,l ;hgt<workzonehgt => hgt |
||
40 | alone | 1527 | ld hy,c;workzonehgt ;hy=hgt |
1528 | |||
344 | alone | 1529 | ld hl,(curbitmapxscroll) ;hl=x bitmap |
1530 | ld de,(curbitmapyscroll) ;de=y bitmap |
||
1531 | ld bc,workzoney*256+workzonex8 ;c=x/8 ࠭, b=y ࠭ |
||
40 | alone | 1532 | jp prbitmapbox |
1533 | |||
1534 | calcscr_from_xchr_y |
||
1535 | ;b=y |
||
1536 | ;c=x/8 |
||
1537 | ;out: hl=scraddr |
||
344 | alone | 1538 | ; de |
40 | alone | 1539 | ld a,c |
1540 | calcscr_from_xchr_ya |
||
1541 | ld l,b |
||
1542 | ld h,0 |
||
1543 | ld b,scrbase/256/8 |
||
1544 | ld c,l |
||
1545 | add hl,hl |
||
1546 | add hl,hl |
||
1547 | add hl,bc;de ;y*5 |
||
1548 | add hl,hl |
||
1549 | add hl,hl |
||
1550 | add hl,hl ;y*40 + scrbase |
||
1551 | add a,l |
||
1552 | ld l,a |
||
1553 | ret nc |
||
1554 | inc h |
||
1555 | ret |
||
1556 | |||
1557 | cls |
||
1558 | call setpgs_scr |
||
1559 | call setpgshapes |
||
1560 | xor a |
||
1561 | jp shapes_cls |
||
1562 | |||
1563 | align 256 |
||
1564 | tmirror |
||
1565 | _=0 |
||
1566 | dup 256 |
||
1567 | _0=_&1 |
||
1568 | _1=_>>1&1 |
||
1569 | _2=_>>2&1 |
||
1570 | _3=_>>3&1 |
||
1571 | _4=_>>4&1 |
||
1572 | _5=_>>5&1 |
||
1573 | _6=_>>6&1 |
||
1574 | _7=_>>7&1 |
||
1575 | db (_0<<7)+(_1<<6)+(_2<<5)+(_3<<4)+(_4<<3)+(_5<<2)+(_6<<1)+(_7) |
||
1576 | _=_+1 |
||
1577 | edup |
||
1578 | |||
1579 | ttools |
||
1580 | db "Window",0 |
||
1581 | db "Pencil",0 |
||
1582 | db "Brush",0 |
||
1583 | db "Line",0 |
||
1584 | db "Fill",0 |
||
1585 | db "Text",0 |
||
1586 | db -1 |
||
1587 | |||
1588 | curtool |
||
1589 | db 0 |
||
1590 | curtool1 |
||
1591 | db 1 |
||
1592 | curtool2 |
||
1593 | db 0 |
||
1594 | curcolorA |
||
1595 | db 0 |
||
1596 | curcolorB |
||
1597 | db 0 |
||
1598 | curcolor1 |
||
1599 | db 15 |
||
1600 | curcolor2 |
||
1601 | db 0 |
||
1602 | |||
1603 | prarr_zone |
||
1604 | db 0 |
||
1605 | |||
1606 | setpgs_scr |
||
505 | alone | 1607 | ;setpgs_scr_low=$+1 |
1608 | ; ld a,0;pgscr0_0 ;scr0_0 |
||
1609 | ld a,(user_scr0_low) |
||
40 | alone | 1610 | SETPG32KLOW |
505 | alone | 1611 | ;setpgs_scr_high=$+1 |
1612 | ; ld a,0;pgscr0_1 ;scr0_1 |
||
1613 | ld a,(user_scr0_high) |
||
40 | alone | 1614 | SETPG32KHIGH |
1615 | ret |
||
1616 | |||
1617 | setpgshapes |
||
1618 | push bc |
||
1619 | curpgshapes=$+1 |
||
1620 | ld a,0;pgshapes |
||
1410 | alone | 1621 | SETPG4000 |
40 | alone | 1622 | pop bc |
1623 | ret |
||
1624 | |||
1625 | setpgpal |
||
1626 | push bc |
||
1627 | curpgpal=$+1 |
||
1628 | ld a,0;pgshapes |
||
1629 | SETPG32KLOW |
||
1630 | pop bc |
||
1631 | ret |
||
1632 | |||
1633 | setpgtemp |
||
1634 | push bc |
||
1635 | curpgtemp=$+1 |
||
1636 | ld a,0;pgshapes |
||
1637 | SETPG32KHIGH |
||
1638 | pop bc |
||
1639 | ret |
||
1640 | |||
1641 | include "window.asm" |
||
1642 | include "navigator.asm" |
||
1643 | |||
1410 | alone | 1644 | ;include "pal.asm" |
40 | alone | 1645 | |
1646 | include "bitmap.asm" |
||
1647 | |||
1648 | include "prbitmap.asm" |
||
1649 | |||
1650 | include "control.asm" |
||
1651 | include "math.asm" |
||
1652 | |||
1653 | include "files.asm" |
||
1654 | |||
518 | alone | 1655 | include "windows.asm" |
1656 | |||
40 | alone | 1657 | skipword |
1658 | ;hl=string |
||
1659 | ;out: hl=terminator/space addr |
||
1660 | getword0 |
||
1661 | ld a,(hl) |
||
1662 | or a |
||
1663 | ret z |
||
1664 | cp ' ' |
||
1665 | ret z |
||
1666 | inc hl |
||
1667 | jr getword0 |
||
1668 | |||
1669 | skipspaces |
||
1670 | ;hl=string |
||
1671 | ;out: hl=after last space |
||
1672 | ld a,(hl) |
||
1673 | cp ' ' |
||
1674 | ret nz |
||
1675 | inc hl |
||
1676 | jr skipspaces |
||
1677 | |||
1678 | ;hl = poi to filename in string |
||
1679 | findlastslash. |
||
1680 | nfopenfnslash. |
||
1681 | ld d,h |
||
1682 | ld e,l ;de = after last slash |
||
1683 | ;find last slash |
||
1684 | nfopenfnslash0. |
||
1685 | ld a,[hl] |
||
1686 | inc hl |
||
1687 | or a |
||
1688 | jr z,nfopenfnslashq. |
||
1689 | cp '/' |
||
1690 | jr nz,nfopenfnslash0. |
||
1691 | jr nfopenfnslash. |
||
1692 | nfopenfnslashq. |
||
1693 | ;de = after last slash or beginning of path |
||
1694 | ret |
||
1695 | |||
1696 | wordbuf |
||
1697 | ds MAXCMDSZ+1 |
||
1698 | |||
1699 | pathbuf_forBDOS |
||
344 | alone | 1700 | ds MAXPATH_sz ;ᥩ ᯮ ⮫쪮 樠樨 ( ⥪騩 ࠩ) |
40 | alone | 1701 | |
289 | dimkam | 1702 | ;display "$ before align=",/h,$ |
40 | alone | 1703 | |
1704 | .align 256 |
||
344 | alone | 1705 | ;;;;;;;;;;;;;;;;;;; ⠡ prbitmap |
1410 | alone | 1706 | tpixelrecode ; 㢥祭 ⠡ ( ᥫ ) |
40 | alone | 1707 | ;%00003210 => %33210210 |
1410 | alone | 1708 | dup 16 |
40 | alone | 1709 | _3=$&8 |
1710 | _210=$&7 |
||
147 | alone | 1711 | db (_3*0x18) + (_210*0x09) |
40 | alone | 1712 | edup |
1410 | alone | 1713 | dup 256-16 |
1714 | db 0b10111000 ;TODO patched maxbrightL+minbrightR/minbrightL+maxbrightR |
||
1715 | edup |
||
1716 | |||
1717 | ; ⠡ - 100% 㬥襭 ⠡ |
||
40 | alone | 1718 | tpixelrecodeLEFT |
1719 | ;%00003210 => %.3...210 |
||
1410 | alone | 1720 | dup 16 |
40 | alone | 1721 | _3=$&8 |
1722 | _210=$&7 |
||
147 | alone | 1723 | db (_3*0x08) + (_210*0x01) |
40 | alone | 1724 | edup |
1410 | alone | 1725 | dup 256-16 |
1726 | db 0 ;TODO patched maxbrightL/minrightL |
||
1727 | edup |
||
1728 | |||
40 | alone | 1729 | tpixelrecodeRIGHT |
1730 | ;%00003210 => %3.210... |
||
1410 | alone | 1731 | dup 16 |
40 | alone | 1732 | _3=$&8 |
1733 | _210=$&7 |
||
147 | alone | 1734 | db (_3*0x10) + (_210*0x08) |
40 | alone | 1735 | edup |
1410 | alone | 1736 | dup 256-16 |
1737 | db 0b10111000 ;TODO patched minbrightR/maxbrightR |
||
1738 | edup |
||
1739 | |||
1740 | tbitmappages |
||
1741 | ;display "tbitmappages=",tbitmappages |
||
1742 | ds bmpmaxpages,0x7f |
||
40 | alone | 1743 | |
1410 | alone | 1744 | activeend |
1745 | display "activeend=",activeend |
||
1746 | ds 0x4000-$ |
||
1747 | SHAPES_begin |
||
1748 | include "prshapes.asm" |
||
1749 | include "prarrow.asm" |
||
1750 | include "prtext.asm" |
||
1751 | include "pal.asm" |
||
1752 | .align 256 |
||
344 | alone | 1753 | ;;;;;;;;;;;;;;;;;;; ⠡ |
40 | alone | 1754 | tsin |
1755 | incbin "tsin200" |
||
1756 | tarcsin |
||
1757 | incbin "tarcsin" |
||
1758 | tsqr |
||
344 | alone | 1759 | ;㬥 +-0..127 (ᮮ⢥ -1..+1) |
1760 | ;१ 0..127 (ᮮ⢥ -1..+1) |
||
40 | alone | 1761 | _=0 |
1762 | dup 128 |
||
1763 | db (_*_)/128 |
||
1764 | _=_+1 |
||
1765 | edup |
||
1766 | _=128 |
||
1767 | dup 128 |
||
1768 | db (_*_)/128 |
||
1769 | _=_-1 |
||
1770 | edup |
||
1771 | tsqrt |
||
344 | alone | 1772 | ;㬥 0..255 (ᮮ⢥ 0..2) |
1773 | ;१ 0..127 (ᮮ⢥ 0..1) |
||
64 | Alone | 1774 | incbin "sqrtmax2" |
40 | alone | 1775 | .align 256 |
1776 | font48 |
||
55 | Alone | 1777 | incbin "64qua.fnt" |
40 | alone | 1778 | SHAPES_sz=$-SHAPES_begin |
516 | alone | 1779 | display "Shapes size ",/d,SHAPES_sz," bytes" |
40 | alone | 1780 | |
1781 | gfxeditor_end |
||
1782 | |||
1783 | display "Size ",/d,gfxeditor_end-gfxeditor_begin," bytes" |
||
289 | dimkam | 1784 | ;display "Free (incl. stack) ",/d,0x4000-activeend," bytes" |
40 | alone | 1785 | |
1786 | savebin "scratch.com",gfxeditor_begin,gfxeditor_end-gfxeditor_begin |
||
1787 | |||
657 | alone | 1788 | LABELSLIST "../../us/user.l" |