@@ -1584,32 +1584,9 @@ _ellipse_line_routine_2 := $-3
1584
1584
pop hl
1585
1585
pop hl
1586
1586
ret
1587
-
1588
1587
1589
1588
;-------------------------------------------------------------------------------
1590
- gfx_Circle:
1591
- ; Draws a clipped circle outline
1592
- ; Arguments:
1593
- ; arg0 : X coordinate
1594
- ; arg1 : Y coordinate
1595
- ; arg2 : Radius
1596
- ; Returns:
1597
- ; None
1598
- ld iy , 0
1599
- add iy , sp
1600
- lea hl , iy - 9
1601
- ld sp , hl
1602
- ld bc , (iy + 9 )
1603
- ld (iy - 6 ) , bc
1604
- sbc hl , hl
1605
- ld (iy - 3 ) , hl
1606
- adc hl , bc
1607
- jp z , .exit
1608
- ld hl , 1
1609
- or a , a
1610
- sbc hl , bc
1611
- call gfx_Wait
1612
- jp .next
1589
+ _Circle:
1613
1590
.sectors:
1614
1591
ld bc , (iy + 3 )
1615
1592
ld hl , (iy - 6 )
@@ -1718,31 +1695,32 @@ gfx_Circle:
1718
1695
.exit:
1719
1696
ld sp , iy
1720
1697
ret
1721
-
1722
- ;-------------------------------------------------------------------------------
1723
- gfx_FillCircle:
1724
- ; Draws an clipped circle
1698
+ gfx_Circle:
1699
+ ; Draws a clipped circle outline
1725
1700
; Arguments:
1726
1701
; arg0 : X coordinate
1727
1702
; arg1 : Y coordinate
1728
1703
; arg2 : Radius
1729
1704
; Returns:
1730
1705
; None
1731
- push ix
1732
- ld ix , 0
1733
- add ix , sp
1734
- lea hl , ix - 9
1735
- ld sp , hl
1736
- ld bc , (ix + 12 )
1737
- ld (ix - 6 ) , bc
1738
- sbc hl , hl
1739
- ld (ix - 3 ) , hl
1740
- adc hl , bc
1741
- jp z , _ResetStack
1742
- ld hl , 1
1743
- or a , a
1744
- sbc hl , bc
1745
- jp .cmp3
1706
+ ld iy , 0
1707
+ add iy , sp
1708
+ lea hl , iy - 9
1709
+ ld sp , hl
1710
+ ld bc , (iy + 9 )
1711
+ sbc hl , hl
1712
+ adc hl , bc ; carry won't be set since HL is zero here
1713
+ jr z , _Circle.exit
1714
+ ld (iy - 6 ) , bc
1715
+ sbc hl , hl
1716
+ ld (iy - 3 ) , hl
1717
+ inc hl
1718
+ sbc hl , bc ; HL = 1 - BC
1719
+ call gfx_Wait
1720
+ jr _Circle.next
1721
+
1722
+ ;-------------------------------------------------------------------------------
1723
+ _FillCircle:
1746
1724
.fillsectors:
1747
1725
ld hl , (ix - 3 )
1748
1726
add hl , hl
@@ -1844,35 +1822,36 @@ gfx_FillCircle:
1844
1822
ret
1845
1823
.check:
1846
1824
jp po , .fillsectors
1825
+ .ResetStack:
1847
1826
ld sp , ix
1848
1827
pop ix
1849
1828
ret
1850
-
1851
- ;-------------------------------------------------------------------------------
1852
- gfx_FillCircle_NoClip:
1853
- ; Draws an unclipped circle
1829
+ gfx_FillCircle:
1830
+ ; Draws an clipped circle
1854
1831
; Arguments:
1855
1832
; arg0 : X coordinate
1856
1833
; arg1 : Y coordinate
1857
1834
; arg2 : Radius
1858
1835
; Returns:
1859
1836
; None
1860
1837
push ix
1861
- ld ix , 0
1862
- add ix , sp
1863
- lea hl , ix - 9
1864
- ld sp , hl
1865
- ld bc , (ix + 12 )
1866
- ld (ix - 6 ) , bc
1867
- sbc hl , hl
1868
- ld (ix - 3 ) , hl
1869
- adc hl , bc
1870
- jp z , _ResetStack
1871
- ld hl , 1
1872
- or a , a
1873
- sbc hl , bc
1874
- call gfx_Wait
1875
- jp . loop
1838
+ ld ix , 0
1839
+ add ix , sp
1840
+ lea hl , ix - 9
1841
+ ld sp , hl
1842
+ ld bc , (ix + 12 )
1843
+ sbc hl , hl
1844
+ adc hl , bc ; carry won't be set since HL is zero here
1845
+ jr z , _FillCircle.ResetStack
1846
+ ld (ix - 6 ) , bc
1847
+ sbc hl , hl
1848
+ ld (ix - 3 ) , hl
1849
+ inc hl
1850
+ sbc hl , bc ; HL = 1 - BC
1851
+ jr _FillCircle.cmp3
1852
+
1853
+ ;-------------------------------------------------------------------------------
1854
+ _FillCircle_NoClip:
1876
1855
.fillsectors:
1877
1856
ld hl , (ix - 3 )
1878
1857
add hl , hl
@@ -1962,10 +1941,34 @@ gfx_FillCircle_NoClip:
1962
1941
or a , a
1963
1942
sbc hl , bc
1964
1943
jp nc , .fillsectors
1965
- _ResetStack :
1944
+ .ResetStack :
1966
1945
ld sp , ix
1967
1946
pop ix
1968
1947
ret
1948
+ gfx_FillCircle_NoClip:
1949
+ ; Draws an unclipped circle
1950
+ ; Arguments:
1951
+ ; arg0 : X coordinate
1952
+ ; arg1 : Y coordinate
1953
+ ; arg2 : Radius
1954
+ ; Returns:
1955
+ ; None
1956
+ push ix
1957
+ ld ix , 0
1958
+ add ix , sp
1959
+ lea hl , ix - 9
1960
+ ld sp , hl
1961
+ ld bc , (ix + 12 )
1962
+ sbc hl , hl
1963
+ adc hl , bc ; carry won't be set since HL is zero here
1964
+ jr z , _FillCircle_NoClip.ResetStack
1965
+ ld (ix - 6 ) , bc
1966
+ sbc hl , hl
1967
+ ld (ix - 3 ) , hl
1968
+ inc hl
1969
+ sbc hl , bc ; HL = 1 - BC
1970
+ call gfx_Wait
1971
+ jr _FillCircle_NoClip. loop
1969
1972
1970
1973
;-------------------------------------------------------------------------------
1971
1974
gfx_Line:
0 commit comments