Rev 657 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log
Rev 657 | Rev 1410 | ||
---|---|---|---|
Line 36... | Line 36... | ||
36 | 36 | ||
37 | palettey=workzoney |
37 | palettey=workzoney |
38 | palettex8=rightpanelx8 |
38 | palettex8=rightpanelx8 |
39 | 39 | ||
40 | navigatorx=rightpanelx8*8 |
40 | navigatorx=rightpanelx8*8 |
41 | navigatory=palettey+(8*4) |
41 | navigatory=palettey+(8*5) |
42 | navigatorhgt=31 ;лучше не увеличивать, чтобы не было переполнения при умножении на bitmapwid (max 2048) |
42 | navigatorhgt=31 ;лучше не увеличивать, чтобы не было переполнения при умножении на bitmapwid (max 2048) |
43 | navigatorwid=31 |
43 | navigatorwid=31 |
44 | 44 | ||
45 | coordsx=navigatorx |
45 | coordsx=navigatorx |
46 | coordsy=navigatory+navigatorhgt+1 |
46 | coordsy=navigatory+navigatorhgt+1 |
Line 95... | Line 95... | ||
95 | ;endm |
95 | ;endm |
96 | 96 | ||
97 | org PROGSTART |
97 | org PROGSTART |
98 | gfxeditor_begin |
98 | gfxeditor_begin |
99 | main_go |
99 | main_go |
100 | ; jp main_go2 |
100 | jp main_go2 |
101 | ; ds 256 |
101 | ds 256 |
102 | ;main_go2 |
102 | main_go2 |
103 | ld sp,0x4000 ;не должен опускаться ниже 0x3b00! иначе возможна порча OS |
103 | ld sp,0x4000 ;не должен опускаться ниже 0x3b00! иначе возможна порча OS |
104 | OS_HIDEFROMPARENT |
104 | OS_HIDEFROMPARENT |
105 | ld e,0 ;EGA |
105 | ld e,0 ;EGA |
106 | OS_SETGFX |
106 | OS_SETGFX |
107 | ;OS_GETSCREENPAGES |
107 | ;OS_GETSCREENPAGES |
Line 685... | Line 685... | ||
685 | jr z,$+5 |
685 | jr z,$+5 |
686 | ld de,curcolor2 |
686 | ld de,curcolor2 |
687 | call ahl_coords |
687 | call ahl_coords |
688 | sub palettey |
688 | sub palettey |
689 | rra |
689 | rra |
- | 690 | cp 0x10 |
|
- | 691 | jr c,$+4 |
|
- | 692 | ld a,0x10 ;transparent color 16 |
|
690 | and 0x0c |
693 | and 0x1c;0x0c |
691 | ld bc,-palettex8*8 |
694 | ld bc,-palettex8*8 |
692 | add hl,bc |
695 | add hl,bc |
693 | srl l |
696 | srl l |
694 | srl l |
697 | srl l |
695 | srl l |
698 | srl l |
Line 796... | Line 799... | ||
796 | call window_mainloop |
799 | call window_mainloop |
797 | ;restore screen: |
800 | ;restore screen: |
798 | call showworkscreen |
801 | call showworkscreen |
799 | ret |
802 | ret |
800 | |
803 | |
801 | getcontrastcolors |
804 | getcontrastcolors ;out: lx=background fill color byte 0bRLrrrlll, hx=brush color byte 0bRLrrrlll |
802 | push bc |
805 | push bc |
803 | push de |
806 | push de |
804 | push hl |
807 | push hl |
805 | ld hl,workpal |
808 | ld hl,workpal |
806 | ;DDp palette: %grbG11RB(low),%grbG11RB(high), инверсные |
809 | ;DDp palette: %grbG11RB(low),%grbG11RB(high), инверсные |
Line 860... | Line 863... | ||
860 | pop hl |
863 | pop hl |
861 | pop de |
864 | pop de |
862 | pop bc |
865 | pop bc |
863 | ret |
866 | ret |
864 | 867 | ||
865 | getgreycolor |
868 | getgreycolor ;TODO не самый яркий и не самый тёмный, если возможно |
866 | ld a,0b00111111 |
869 | ld a,0b00111111 |
867 | ret |
870 | ret |
868 | 871 | ||
869 | getblackongrey |
872 | getblackongrey |
870 | call getcontrastcolors |
873 | call getcontrastcolors |
Line 1289... | Line 1292... | ||
1289 | call setpgshapes |
1292 | call setpgshapes |
1290 | 1293 | ||
1291 | ld de,256*colorhgt+2 |
1294 | ld de,256*colorhgt+2 |
1292 | push de ;y |
1295 | push de ;y |
1293 | ld bc,256*colory+colorx8 |
1296 | ld bc,256*colory+colorx8 |
1294 | ld a,(curcolor1) |
1297 | ld hl,(curcolor1) |
- | 1298 | ld h,tpixelrecode/256 |
|
- | 1299 | ld a,(hl) |
|
1295 | call shapes_colortocolormask |
1300 | ;call shapes_colortocolormask |
1296 | call shapes_prbox |
1301 | call shapes_prbox |
1297 | ;ld de,256*colorhgt+2 |
1302 | ;ld de,256*colorhgt+2 |
1298 | pop de ;y |
1303 | pop de ;y |
1299 | ld bc,256*colory+colorx8+2 |
1304 | ld bc,256*colory+colorx8+2 |
1300 | ld a,(curcolor2) |
1305 | ld hl,(curcolor2) |
- | 1306 | ld h,tpixelrecode/256 |
|
- | 1307 | ld a,(hl) |
|
1301 | call shapes_colortocolormask |
1308 | ;call shapes_colortocolormask |
1302 | jp shapes_prbox |
1309 | jp shapes_prbox |
1303 | 1310 | ||
1304 | calccurtool |
1311 | calccurtool |
1305 | ;a=y |
1312 | ;a=y |
1306 | ;определяет номер тулзы по координатам стрелки |
1313 | ;определяет номер тулзы по координатам стрелки |
Line 1399... | Line 1406... | ||
1399 | prpal1 |
1406 | prpal1 |
1400 | push af |
1407 | push af |
1401 | push de |
1408 | push de |
1402 | ld de,0x0801 ;hgt, wid(chr) |
1409 | ld de,0x0801 ;hgt, wid(chr) |
1403 | push bc |
1410 | push bc |
- | 1411 | ld l,a |
|
- | 1412 | ld h,tpixelrecode/256 |
|
- | 1413 | ld a,(hl) |
|
1404 | call shapes_colortocolormask |
1414 | ;call shapes_colortocolormask |
1405 | call shapes_prbox |
1415 | call shapes_prbox |
1406 | pop bc |
1416 | pop bc |
1407 | pop de |
1417 | pop de |
1408 | pop af |
1418 | pop af |
1409 | inc c |
1419 | inc c |
Line 1476... | Line 1486... | ||
1476 | db " 50",0 |
1486 | db " 50",0 |
1477 | db "100",0 |
1487 | db "100",0 |
1478 | db "200",0 |
1488 | db "200",0 |
1479 | db "400",0 |
1489 | db "400",0 |
1480 | 1490 | ||
- | 1491 | setpal_de |
|
- | 1492 | OS_SETPAL |
|
- | 1493 | ret |
|
1481 | showbitmap |
1494 | showbitmap |
1482 | ld hl,workpal |
1495 | ld de,workpal |
1483 | call copytemp_setpal |
1496 | call setpal_de |
1484 | call setpgs_scr |
1497 | call setpgs_scr |
1485 | ld hl,(curbitmapwid_edit) |
1498 | ld hl,(curbitmapwid_edit) |
1486 | ld de,(curbitmaphgt) |
1499 | ld de,(curbitmaphgt) |
1487 | ld a,d |
1500 | ld a,d |
1488 | or e |
1501 | or e |
Line 1603... | Line 1616... | ||
1603 | 1616 | ||
1604 | setpgshapes |
1617 | setpgshapes |
1605 | push bc |
1618 | push bc |
1606 | curpgshapes=$+1 |
1619 | curpgshapes=$+1 |
1607 | ld a,0;pgshapes |
1620 | ld a,0;pgshapes |
1608 | SETPG16K |
1621 | SETPG4000 |
1609 | pop bc |
1622 | pop bc |
1610 | ret |
1623 | ret |
1611 | 1624 | ||
1612 | setpgpal |
1625 | setpgpal |
1613 | push bc |
1626 | push bc |
Line 1626... | Line 1639... | ||
1626 | ret |
1639 | ret |
1627 | 1640 | ||
1628 | include "window.asm" |
1641 | include "window.asm" |
1629 | include "navigator.asm" |
1642 | include "navigator.asm" |
1630 | 1643 | ||
1631 | include "pal.asm" |
1644 | ;include "pal.asm" |
1632 | 1645 | ||
1633 | include "bitmap.asm" |
1646 | include "bitmap.asm" |
1634 | 1647 | ||
1635 | include "prbitmap.asm" |
1648 | include "prbitmap.asm" |
1636 | 1649 | ||
Line 1688... | Line 1701... | ||
1688 | 1701 | ||
1689 | ;display "$ before align=",/h,$ |
1702 | ;display "$ before align=",/h,$ |
1690 | 1703 | ||
1691 | .align 256 |
1704 | .align 256 |
1692 | ;;;;;;;;;;;;;;;;;;; таблицы для prbitmap |
1705 | ;;;;;;;;;;;;;;;;;;; таблицы для prbitmap |
1693 | tpixelrecode |
- | |
- | 1706 | tpixelrecode ;для увеличенных масштабов (где оба пикселя в байте одинаковые) |
|
1694 | ;%00003210 => %33210210 |
1707 | ;%00003210 => %33210210 |
1695 | dup 256 |
1708 | dup 16 |
1696 | _3=$&8 |
1709 | _3=$&8 |
1697 | _210=$&7 |
1710 | _210=$&7 |
1698 | db (_3*0x18) + (_210*0x09) |
1711 | db (_3*0x18) + (_210*0x09) |
1699 | edup |
1712 | edup |
- | 1713 | dup 256-16 |
|
- | 1714 | db 0b10111000 ;TODO patched maxbrightL+minbrightR/minbrightL+maxbrightR |
|
- | 1715 | edup |
|
1700 | 1716 | ||
- | 1717 | ;эти две таблицы - для 100% и уменьшенных масштабов |
|
1701 | tpixelrecodeLEFT |
1718 | tpixelrecodeLEFT |
1702 | ;%00003210 => %.3...210 |
1719 | ;%00003210 => %.3...210 |
1703 | dup 256 |
1720 | dup 16 |
1704 | _3=$&8 |
1721 | _3=$&8 |
1705 | _210=$&7 |
1722 | _210=$&7 |
1706 | db (_3*0x08) + (_210*0x01) |
1723 | db (_3*0x08) + (_210*0x01) |
1707 | edup |
1724 | edup |
- | 1725 | dup 256-16 |
|
- | 1726 | db 0 ;TODO patched maxbrightL/minrightL |
|
- | 1727 | edup |
|
1708 | 1728 | ||
1709 | tpixelrecodeRIGHT |
1729 | tpixelrecodeRIGHT |
1710 | ;%00003210 => %3.210... |
1730 | ;%00003210 => %3.210... |
1711 | dup 256 |
1731 | dup 16 |
1712 | _3=$&8 |
1732 | _3=$&8 |
1713 | _210=$&7 |
1733 | _210=$&7 |
1714 | db (_3*0x10) + (_210*0x08) |
1734 | db (_3*0x10) + (_210*0x08) |
1715 | edup |
1735 | edup |
- | 1736 | dup 256-16 |
|
- | 1737 | db 0b10111000 ;TODO patched minbrightR/maxbrightR |
|
- | 1738 | edup |
|
1716 | 1739 | ||
- | 1740 | tbitmappages |
|
- | 1741 | ;display "tbitmappages=",tbitmappages |
|
- | 1742 | ds bmpmaxpages,0x7f |
|
- | 1743 | ||
- | 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 |
|
1717 | ;;;;;;;;;;;;;;;;;;; таблицы для палитры |
1753 | ;;;;;;;;;;;;;;;;;;; таблицы для палитры |
1718 | tsin |
1754 | tsin |
1719 | incbin "tsin200" |
1755 | incbin "tsin200" |
1720 | tarcsin |
1756 | tarcsin |
1721 | incbin "tarcsin" |
1757 | incbin "tarcsin" |
Line 1734... | Line 1770... | ||
1734 | edup |
1770 | edup |
1735 | tsqrt |
1771 | tsqrt |
1736 | ;аргумент 0..255 (соответствует 0..2) |
1772 | ;аргумент 0..255 (соответствует 0..2) |
1737 | ;результат 0..127 (соответствует 0..1) и выше |
1773 | ;результат 0..127 (соответствует 0..1) и выше |
1738 | incbin "sqrtmax2" |
1774 | incbin "sqrtmax2" |
1739 | tbitmappages |
- | |
1740 | ;display "tbitmappages=",tbitmappages |
- | |
1741 | ds bmpmaxpages,0x7f |
- | |
1742 | - | ||
1743 | activeend |
- | |
1744 | display "activeend=",activeend |
- | |
1745 | ds 0x4000-$ |
- | |
1746 | SHAPES_begin |
- | |
1747 | include "prshapes.asm" |
- | |
1748 | include "prarrow.asm" |
- | |
1749 | include "prtext.asm" |
- | |
1750 | .align 256 |
1775 | .align 256 |
1751 | font48 |
1776 | font48 |
1752 | incbin "64qua.fnt" |
1777 | incbin "64qua.fnt" |
1753 | SHAPES_sz=$-SHAPES_begin |
1778 | SHAPES_sz=$-SHAPES_begin |
1754 | display "Shapes size ",/d,SHAPES_sz," bytes" |
1779 | display "Shapes size ",/d,SHAPES_sz," bytes" |