mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-26 00:29:29 +00:00
hgr: circles: made it a bit smaller
This commit is contained in:
parent
3eee574bc1
commit
093e15268d
|
@ -9,7 +9,7 @@ all: circles.dsk
|
||||||
|
|
||||||
circles.dsk: HELLO CIRCLES ARCS WEB \
|
circles.dsk: HELLO CIRCLES ARCS WEB \
|
||||||
BRES.BAS BRESBOT.BAS BRESCOOL.BAS \
|
BRES.BAS BRESBOT.BAS BRESCOOL.BAS \
|
||||||
MID.BAS MIDBOT.BAS MIDCOOL.BAS
|
MID.BAS MIDBOT.BAS MIDCOOL.BAS BRESTEST.BAS
|
||||||
cp $(EMPTY_DISK)/empty.dsk circles.dsk
|
cp $(EMPTY_DISK)/empty.dsk circles.dsk
|
||||||
$(DOS33) -y circles.dsk SAVE A HELLO
|
$(DOS33) -y circles.dsk SAVE A HELLO
|
||||||
$(DOS33) -y circles.dsk SAVE A BRES.BAS
|
$(DOS33) -y circles.dsk SAVE A BRES.BAS
|
||||||
|
@ -18,6 +18,7 @@ circles.dsk: HELLO CIRCLES ARCS WEB \
|
||||||
$(DOS33) -y circles.dsk SAVE A MID.BAS
|
$(DOS33) -y circles.dsk SAVE A MID.BAS
|
||||||
$(DOS33) -y circles.dsk SAVE A MIDBOT.BAS
|
$(DOS33) -y circles.dsk SAVE A MIDBOT.BAS
|
||||||
$(DOS33) -y circles.dsk SAVE A MIDCOOL.BAS
|
$(DOS33) -y circles.dsk SAVE A MIDCOOL.BAS
|
||||||
|
$(DOS33) -y circles.dsk SAVE A BRESTEST.BAS
|
||||||
$(DOS33) -y circles.dsk BSAVE -a 0x0C00 CIRCLES
|
$(DOS33) -y circles.dsk BSAVE -a 0x0C00 CIRCLES
|
||||||
$(DOS33) -y circles.dsk BSAVE -a 0x0C00 ARCS
|
$(DOS33) -y circles.dsk BSAVE -a 0x0C00 ARCS
|
||||||
$(DOS33) -y circles.dsk BSAVE -a 0x0C00 WEB
|
$(DOS33) -y circles.dsk BSAVE -a 0x0C00 WEB
|
||||||
|
@ -58,6 +59,11 @@ BRESBOT.BAS: bresbot.bas
|
||||||
BRESCOOL.BAS: brescool.bas
|
BRESCOOL.BAS: brescool.bas
|
||||||
$(TOKENIZE) < brescool.bas > BRESCOOL.BAS
|
$(TOKENIZE) < brescool.bas > BRESCOOL.BAS
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
BRESTEST.BAS: brestest.bas
|
||||||
|
$(TOKENIZE) < brestest.bas > BRESTEST.BAS
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
@ -89,5 +95,5 @@ web.o: web.s
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *~ *.o *.lst CIRCLES ARCS WEB \
|
rm -f *~ *.o *.lst CIRCLES ARCS WEB \
|
||||||
BRES.BAS BRESBOT.BAS BRESCOOL.BAS \
|
BRES.BAS BRESBOT.BAS BRESCOOL.BAS BRESTEST.BAS \
|
||||||
MID.BAS MIDBOT.BAS MIDCOOL.BAS
|
MID.BAS MIDBOT.BAS MIDCOOL.BAS
|
||||||
|
|
19
graphics/hgr/circles/brestest.bas
Normal file
19
graphics/hgr/circles/brestest.bas
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
10 HCOLOR=3:R=0:XC=128:YC=96
|
||||||
|
20 GET A$:HGR
|
||||||
|
30 X=0:Y=R:D=3-2*R:GOSUB 100
|
||||||
|
40 X=X+1
|
||||||
|
50 IF D>0 THEN Y=Y-1:D=D+4*(X-Y)+10:GOTO 70
|
||||||
|
60 D=D+4*X+6
|
||||||
|
70 GOSUB 100
|
||||||
|
80 IF Y>=X THEN 40
|
||||||
|
90 R=R+1:GOTO 20
|
||||||
|
99 END
|
||||||
|
100 HPLOT XC+X,YC+Y
|
||||||
|
110 HPLOT XC-X,YC+Y
|
||||||
|
120 HPLOT XC+X,YC-Y
|
||||||
|
130 HPLOT XC-X,YC-Y
|
||||||
|
140 HPLOT XC+Y,YC+X
|
||||||
|
150 HPLOT XC-Y,YC+X
|
||||||
|
160 HPLOT XC+Y,YC-X
|
||||||
|
170 HPLOT XC-Y,YC-X
|
||||||
|
180 RETURN
|
|
@ -1,14 +1,28 @@
|
||||||
; circles tiny -- Apple II Hires
|
; circles tiny -- Apple II Hires
|
||||||
|
|
||||||
|
|
||||||
|
; 229 -- first
|
||||||
|
; 228 -- remove shift
|
||||||
|
; 190 -- move hplots into two loops
|
||||||
|
; 169 -- move hplots into one loop
|
||||||
|
; 166 -- small enough we can use bcs again
|
||||||
|
; 157 -- some more math
|
||||||
|
|
||||||
; D0+ used by HGR routines
|
; D0+ used by HGR routines
|
||||||
|
|
||||||
HGR_COLOR = $E4
|
HGR_COLOR = $E4
|
||||||
HGR_PAGE = $E6
|
HGR_PAGE = $E6
|
||||||
|
|
||||||
D = $F9
|
COUNT = $F6
|
||||||
XX = $FA
|
|
||||||
YY = $FB
|
|
||||||
|
|
||||||
|
XX = $F7
|
||||||
|
MINUSXX = $F8
|
||||||
|
YY = $F9
|
||||||
|
MINUSYY = $FA
|
||||||
|
|
||||||
|
D = $FB
|
||||||
R = $FC
|
R = $FC
|
||||||
CX = $FD
|
CX = $FD
|
||||||
CY = $FE
|
CY = $FE
|
||||||
|
@ -16,6 +30,9 @@ FRAME = $FF
|
||||||
|
|
||||||
; soft-switches
|
; soft-switches
|
||||||
|
|
||||||
|
KEYPRESS = $C000
|
||||||
|
KEYRESET = $C010
|
||||||
|
|
||||||
; ROM routines
|
; ROM routines
|
||||||
|
|
||||||
HGR2 = $F3D8 ; set hires page2 and clear $4000-$5fff
|
HGR2 = $F3D8 ; set hires page2 and clear $4000-$5fff
|
||||||
|
@ -32,12 +49,23 @@ WAIT = $FCA8 ; delay 1/2(26+27A+5A^2) us
|
||||||
|
|
||||||
circles:
|
circles:
|
||||||
|
|
||||||
jsr HGR2
|
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta R
|
sta R
|
||||||
|
|
||||||
draw_next:
|
draw_next:
|
||||||
|
|
||||||
|
lda KEYPRESS
|
||||||
|
bpl draw_next
|
||||||
|
|
||||||
|
bit KEYRESET
|
||||||
|
|
||||||
|
jsr HGR2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;draw_next:
|
||||||
.if 0
|
.if 0
|
||||||
inc FRAME
|
inc FRAME
|
||||||
ldy FRAME
|
ldy FRAME
|
||||||
|
@ -78,21 +106,27 @@ draw_next:
|
||||||
sta CY
|
sta CY
|
||||||
|
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
; draw circle
|
||||||
|
;===============================
|
||||||
|
; draw circle at (CX,CY) of radius R
|
||||||
|
; signed 8-bit math so problems if R > 64?
|
||||||
|
|
||||||
|
|
||||||
; XX=0 YY=R
|
; XX=0 YY=R
|
||||||
; D=3-2*R
|
; D=3-2*R
|
||||||
; GOTO6
|
; GOTO6
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta XX
|
sta XX
|
||||||
|
|
||||||
lda R
|
lda R
|
||||||
sta YY
|
sta YY
|
||||||
|
|
||||||
asl
|
|
||||||
sta D
|
|
||||||
lda #3
|
lda #3
|
||||||
sec
|
sec
|
||||||
sbc D
|
sbc R
|
||||||
|
sbc R
|
||||||
sta D
|
sta D
|
||||||
|
|
||||||
jmp do_plots
|
jmp do_plots
|
||||||
|
@ -130,124 +164,75 @@ store_D:
|
||||||
sta D
|
sta D
|
||||||
|
|
||||||
do_plots:
|
do_plots:
|
||||||
|
; setup constants
|
||||||
|
|
||||||
|
lda XX
|
||||||
|
eor #$FF
|
||||||
|
sta MINUSXX
|
||||||
|
inc MINUSXX
|
||||||
|
|
||||||
|
lda YY
|
||||||
|
eor #$FF
|
||||||
|
sta MINUSYY
|
||||||
|
inc MINUSYY
|
||||||
|
|
||||||
; HPLOT CX+X,CY+Y
|
; HPLOT CX+X,CY+Y
|
||||||
|
|
||||||
lda CX
|
|
||||||
clc
|
|
||||||
adc XX
|
|
||||||
tax
|
|
||||||
ldy #0
|
|
||||||
lda CY
|
|
||||||
clc
|
|
||||||
adc YY
|
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
||||||
|
|
||||||
; HPLOT CX-X,CY+Y
|
; HPLOT CX-X,CY+Y
|
||||||
|
|
||||||
lda CX
|
|
||||||
sec
|
|
||||||
sbc XX
|
|
||||||
tax
|
|
||||||
ldy #0
|
|
||||||
lda CY
|
|
||||||
clc
|
|
||||||
adc YY
|
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
||||||
|
|
||||||
; HPLOT CX+X,CY-Y
|
; HPLOT CX+X,CY-Y
|
||||||
|
|
||||||
lda CX
|
|
||||||
clc
|
|
||||||
adc XX
|
|
||||||
tax
|
|
||||||
ldy #0
|
|
||||||
lda CY
|
|
||||||
sec
|
|
||||||
sbc YY
|
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
||||||
|
|
||||||
|
|
||||||
; HPLOT CX-X,CY-Y
|
; HPLOT CX-X,CY-Y
|
||||||
|
|
||||||
lda CX
|
|
||||||
sec
|
|
||||||
sbc XX
|
|
||||||
tax
|
|
||||||
ldy #0
|
|
||||||
lda CY
|
|
||||||
sec
|
|
||||||
sbc YY
|
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
||||||
|
|
||||||
; HPLOT CX+Y,CY+X
|
; HPLOT CX+Y,CY+X
|
||||||
|
|
||||||
lda CX
|
|
||||||
clc
|
|
||||||
adc YY
|
|
||||||
tax
|
|
||||||
ldy #0
|
|
||||||
lda CY
|
|
||||||
clc
|
|
||||||
adc XX
|
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
||||||
|
|
||||||
|
|
||||||
; HPLOT CX-Y,CY+X
|
; HPLOT CX-Y,CY+X
|
||||||
|
|
||||||
lda CX
|
|
||||||
sec
|
|
||||||
sbc YY
|
|
||||||
tax
|
|
||||||
ldy #0
|
|
||||||
lda CY
|
|
||||||
clc
|
|
||||||
adc XX
|
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
||||||
|
|
||||||
; HPLOT CX+Y,CY-X
|
; HPLOT CX+Y,CY-X
|
||||||
|
|
||||||
lda CX
|
|
||||||
clc
|
|
||||||
adc YY
|
|
||||||
tax
|
|
||||||
ldy #0
|
|
||||||
lda CY
|
|
||||||
sec
|
|
||||||
sbc XX
|
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
||||||
|
|
||||||
; HPLOT CX-Y,CY-X
|
; HPLOT CX-Y,CY-X
|
||||||
|
|
||||||
|
; calc X co-ord
|
||||||
|
|
||||||
|
lda #7
|
||||||
|
sta COUNT
|
||||||
|
pos_loop:
|
||||||
|
lda COUNT
|
||||||
|
and #$4
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda COUNT
|
||||||
|
lsr
|
||||||
|
bcc xnoc
|
||||||
|
iny
|
||||||
|
xnoc:
|
||||||
lda CX
|
lda CX
|
||||||
sec
|
clc
|
||||||
sbc YY
|
adc XX,Y
|
||||||
tax
|
tax
|
||||||
ldy #0
|
|
||||||
|
; calc y co-ord
|
||||||
|
|
||||||
|
lda COUNT
|
||||||
|
lsr
|
||||||
|
eor #$2
|
||||||
|
tay
|
||||||
|
|
||||||
lda CY
|
lda CY
|
||||||
sec
|
clc
|
||||||
sbc XX
|
adc XX,Y
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
jsr HPLOT0 ; plot at (Y,X), (A)
|
||||||
|
|
||||||
|
dec COUNT
|
||||||
|
bpl pos_loop
|
||||||
|
|
||||||
|
|
||||||
; IFY>=XTHEN4
|
; IFY>=XTHEN4
|
||||||
lda YY
|
lda YY
|
||||||
cmp XX
|
cmp XX
|
||||||
; bcs circle_loop
|
bcs circle_loop
|
||||||
bcc done
|
|
||||||
|
|
||||||
jmp circle_loop
|
|
||||||
done:
|
done:
|
||||||
lda R
|
lda R
|
||||||
clc
|
clc
|
||||||
adc #3
|
adc #1
|
||||||
sta R
|
sta R
|
||||||
stop:
|
stop:
|
||||||
cmp #90
|
cmp #90
|
||||||
|
|
Loading…
Reference in New Issue
Block a user