-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathincBOXCommand.asm
108 lines (87 loc) · 2.21 KB
/
incBOXCommand.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
;*******************************************************************************
;* BOX Command *
;* This BASIC function put a box on a Hi-Res Screen *
;* *****************************************************************************
;* Syntax : BOX or b Shifted O *
;* Inputs : X1 (0->319) and Y1 (0 ->199) *
;* : X2 (0->319) and Y2 (0 ->199) *
;*******************************************************************************
; box : box x1,y1 to x2,y2
COM_BOX
jsr GetNo2 ; Get X1
sta COMM_AXLO
sty COMM_AXHI
jsr bas_CHKCOM$ ; Checks For a Comma
jsr bas_GETBYTC$; Get Y1
stx COMM_AY
lda #164
jsr bas_SYNCHR$ ; Check For the BASIC Command 'TO'
jsr GetNo2 ; Get X2
sta COMM_RXLO
sty COMM_RXHI
jsr bas_CHKCOM$ ; Checks For a Comma
jsr bas_GETBYTC$; Get Y2
stx COMM_RY
; X1 = AX, Y1 = AY
; X2 = RX, Y2 = RY
; Bottom Line of Box
; X1,Y1 -> X2,Y1
lda COMM_AXLO
sta COMM_X1LO
lda COMM_AXHI
sta COMM_X1HI
lda COMM_AY
sta COMM_Y1
lda COMM_RXLO
sta COMM_X2LO
lda COMM_RXHI
sta COMM_X2HI
lda COMM_AY
sta COMM_Y2
jsr DRAW_LINE_START
; Right Side Line of Box
; X2,Y1 -> X2,Y2
lda COMM_RXLO
sta COMM_X1LO
lda COMM_RXHI
sta COMM_X1HI
lda COMM_AY
sta COMM_Y1
lda COMM_RXLO
sta COMM_X2LO
lda COMM_RXHI
sta COMM_X2HI
lda COMM_RY
sta COMM_Y2
jsr DRAW_LINE_START
; Top Line of Box
; X2,Y2 -> X1,Y2
lda COMM_RXLO
sta COMM_X1LO
lda COMM_RXHI
sta COMM_X1HI
lda COMM_RY
sta COMM_Y1
lda COMM_AXLO
sta COMM_X2LO
lda COMM_AXHI
sta COMM_X2HI
lda COMM_RY
sta COMM_Y2
jsr DRAW_LINE_START
; Left Side Line of Box
; X1,Y2 -> X1,Y1
lda COMM_AXLO
sta COMM_X1LO
lda COMM_AXHI
sta COMM_X1HI
lda COMM_RY
sta COMM_Y1
lda COMM_AXLO
sta COMM_X2LO
lda COMM_AXHI
sta COMM_X2HI
lda COMM_AY
sta COMM_Y2
jsr DRAW_LINE_START
rts