forked from OldSkoolCoder/OSKBasic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathincSHAPECommand.asm
57 lines (47 loc) · 1.9 KB
/
incSHAPECommand.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
;*******************************************************************************
;* SHAPE Command *
;* This BASIC function to draw a polygon on the screen *
;* *****************************************************************************
;* Syntax : SHAPE or s Shifted H *
;* Inputs : X (0->319) and Y (0 ->199) *
;* : XRad (0->310) and YRad (0->199) *
;* : Start Angle (In Degrees) and the Finish Angle (In Degrees) *
;* : Increment Angle *
;*******************************************************************************
; shape : circle x, y, xrad, yrad, start, finish, inc
COM_SHAPE
jsr GetNo2 ; Get X
sta COMM_RXLO
sty COMM_RXHI
jsr bas_CHKCOM$ ; Checks For a Comma
jsr bas_GETBYTC$; Get Y
stx COMM_RY
jsr bas_CHKCOM$ ; Checks For a Comma
jsr GetNo2 ; Get XRad
sta COMM_XRLO
sty COMM_XRHI
jsr bas_CHKCOM$ ; Checks For a Comma
jsr bas_GETBYTC$; Get YRad
stx COMM_YR
jsr bas_CHKCOM$ ; Checks For a Comma
jsr GetNo2 ; Get Start Angle (In Degrees 0->360)
jsr RadianConverter ;(RADCON)
jsr WORKOUT_X_COSINE
sta COMM_AXLO
stx COMM_AXHI
jsr WORKOUT_Y_SINE
sty COMM_AY
jsr bas_CHKCOM$ ; Checks For a Comma
jsr GetNo2 ; Get Start Angle (In Degrees 0->360)
jsr RadianConverter
ldx #<COMM_FINISH
ldy #>COMM_FINISH
jsr bas_MOVEFP1M$
jsr bas_CHKCOM$ ; Checks For a Comma
jsr GetNo2 ; Get Increment Angle (In Degrees 0->360)
jsr RadianConverter
ldx #<COMM_INCR
ldy #>COMM_INCR
jsr bas_MOVEFP1M$
jsr CIRCLE_CALC_NEXT_DEGREE_POINT ;(Circle5)
jmp CIRCLE_START_DRAWING ; (Circle1)