mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-20 17:29:28 +00:00
second: fix off-by-one error in box/vlin drawing
This commit is contained in:
parent
fb33832144
commit
e3769421bb
|
@ -8,7 +8,7 @@
|
||||||
; BOX x1,y1 to x2,y2
|
; BOX x1,y1 to x2,y2
|
||||||
; CLEAR -
|
; CLEAR -
|
||||||
|
|
||||||
num_scenes=5
|
num_scenes=8
|
||||||
|
|
||||||
frame15:
|
frame15:
|
||||||
.byte SET_COLOR | BLACK
|
.byte SET_COLOR | BLACK
|
||||||
|
@ -26,6 +26,19 @@ frame15:
|
||||||
; .byte SET_COLOR | DARK_BLUE
|
; .byte SET_COLOR | DARK_BLUE
|
||||||
; .byte HLIN,0,39,13
|
; .byte HLIN,0,39,13
|
||||||
|
|
||||||
|
; .byte SET_COLOR | GREEN
|
||||||
|
; .byte BOX, 2,2,3,3 ; goes to 6 only top
|
||||||
|
; .byte BOX, 4,3,5,4
|
||||||
|
; .byte BOX, 6,4,7,5
|
||||||
|
; .byte BOX, 8,5,9,6
|
||||||
|
|
||||||
|
; .byte SET_COLOR | GREEN
|
||||||
|
; .byte VLIN, 2,3,2 ; goes to 6 only top
|
||||||
|
; .byte VLIN, 3,4,4
|
||||||
|
; .byte VLIN, 4,5,6
|
||||||
|
; .byte VLIN, 5,6,8
|
||||||
|
|
||||||
|
|
||||||
; .byte SET_COLOR | GREEN
|
; .byte SET_COLOR | GREEN
|
||||||
; .byte BOX, 2,2,10,12 ; goes to 6 only top
|
; .byte BOX, 2,2,10,12 ; goes to 6 only top
|
||||||
; .byte BOX, 12,3,20,12
|
; .byte BOX, 12,3,20,12
|
||||||
|
@ -126,3 +139,98 @@ frame19:
|
||||||
.byte HLIN, 30, 35, 28
|
.byte HLIN, 30, 35, 28
|
||||||
.byte VLIN, 21, 26, 28
|
.byte VLIN, 21, 26, 28
|
||||||
.byte END
|
.byte END
|
||||||
|
|
||||||
|
frame20:
|
||||||
|
.byte SET_COLOR | BLACK
|
||||||
|
.byte CLEAR
|
||||||
|
.byte SET_COLOR | BROWN
|
||||||
|
.byte BOX, 4, 6, 35,41
|
||||||
|
.byte SET_COLOR | MEDIUM_BLUE
|
||||||
|
.byte BOX, 18, 9, 21, 17
|
||||||
|
.byte BOX, 26, 10, 29, 17
|
||||||
|
.byte BOX, 34, 10, 35, 17
|
||||||
|
.byte BOX, 18, 26, 21, 33
|
||||||
|
.byte BOX, 25, 26, 29, 33
|
||||||
|
.byte BOX, 34, 30, 35, 34
|
||||||
|
.byte SET_COLOR | LIGHT_BLUE
|
||||||
|
.byte BOX, 31, 21, 35, 27
|
||||||
|
.byte HLIN, 32, 35, 20
|
||||||
|
.byte HLIN, 34, 35, 29
|
||||||
|
.byte SET_COLOR | GREY1
|
||||||
|
.byte BOX, 34, 22, 35, 28
|
||||||
|
.byte HLIN, 32, 35, 24
|
||||||
|
.byte HLIN, 4,6,39
|
||||||
|
.byte HLIN, 4,19,40
|
||||||
|
.byte HLIN, 4,29,41
|
||||||
|
.byte SET_COLOR | RED
|
||||||
|
.byte HLIN, 34, 35, 26
|
||||||
|
.byte SET_COLOR | ORANGE
|
||||||
|
.byte PLOT, 33, 25
|
||||||
|
.byte END
|
||||||
|
|
||||||
|
frame21:
|
||||||
|
.byte SET_COLOR | BLACK
|
||||||
|
.byte CLEAR
|
||||||
|
.byte SET_COLOR | BROWN
|
||||||
|
.byte BOX, 4, 6, 35, 41
|
||||||
|
.byte SET_COLOR | MEDIUM_BLUE
|
||||||
|
.byte BOX, 7, 7, 11, 16
|
||||||
|
.byte BOX, 16, 8, 20, 16
|
||||||
|
.byte BOX, 25, 9, 28, 17
|
||||||
|
.byte BOX, 33, 9, 35, 17
|
||||||
|
.byte BOX, 7, 25, 11, 34
|
||||||
|
.byte BOX, 16,26, 20, 34
|
||||||
|
.byte BOX, 25,26, 28, 34
|
||||||
|
.byte BOX, 33,28, 35, 33
|
||||||
|
.byte SET_COLOR | GREY1
|
||||||
|
.byte BOX, 32,20,35,21
|
||||||
|
.byte SET_COLOR | LIGHT_BLUE
|
||||||
|
.byte BOX, 31, 22, 35,26
|
||||||
|
.byte HLIN, 33, 35, 21
|
||||||
|
.byte HLIN, 32, 35, 27
|
||||||
|
.byte SET_COLOR | GREY1
|
||||||
|
.byte BOX, 33,23,35,24
|
||||||
|
.byte SET_COLOR | ORANGE
|
||||||
|
.byte VLIN, 24,26,35
|
||||||
|
.byte END
|
||||||
|
|
||||||
|
frame22:
|
||||||
|
.byte SET_COLOR | BLACK
|
||||||
|
.byte CLEAR
|
||||||
|
.byte SET_COLOR | GREY1
|
||||||
|
.byte BOX, 4,6,31,41
|
||||||
|
.byte SET_COLOR | BROWN
|
||||||
|
.byte BOX, 32, 6, 35, 32
|
||||||
|
.byte SET_COLOR | MEDIUM_BLUE
|
||||||
|
.byte BOX, 4, 6, 5, 14
|
||||||
|
.byte BOX, 12, 7, 15, 15
|
||||||
|
.byte BOX, 20, 8, 23, 16
|
||||||
|
.byte BOX, 4, 25, 5, 35
|
||||||
|
.byte BOX, 11,25, 15, 34
|
||||||
|
.byte BOX, 20,25, 22, 33
|
||||||
|
.byte SET_COLOR | GREY1
|
||||||
|
.byte BOX, 32,22,35,25
|
||||||
|
.byte BOX, 32,32,33,41
|
||||||
|
.byte BOX, 34,33,35,41
|
||||||
|
.byte SET_COLOR | LIGHT_BLUE
|
||||||
|
.byte BOX, 30,20,33,21
|
||||||
|
.byte HLIN, 30,31,19
|
||||||
|
.byte BOX, 30,24,31,26
|
||||||
|
.byte PLOT, 32,25
|
||||||
|
.byte SET_COLOR | ORANGE
|
||||||
|
.byte HLIN, 33,34,24
|
||||||
|
.byte PLOT, 33,23
|
||||||
|
.byte SET_COLOR | DARK_BLUE
|
||||||
|
.byte VLIN, 19,26,29
|
||||||
|
.byte HLIN, 30,32,22
|
||||||
|
.byte HLIN, 30,31,23
|
||||||
|
.byte SET_COLOR | LIGHT_BLUE
|
||||||
|
.byte PLOT, 31,22
|
||||||
|
.byte SET_COLOR | BLACK
|
||||||
|
.byte BOX, 31,34, 33,35
|
||||||
|
.byte BOX, 32,35, 35,36
|
||||||
|
.byte HLIN, 34,35,37
|
||||||
|
.byte END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ CLEAR = $01
|
||||||
BOX = $02
|
BOX = $02
|
||||||
HLIN = $03
|
HLIN = $03
|
||||||
VLIN = $04
|
VLIN = $04
|
||||||
|
PLOT = $05
|
||||||
|
|
||||||
BLACK = $00
|
BLACK = $00
|
||||||
RED = $01
|
RED = $01
|
||||||
|
@ -111,6 +112,17 @@ clear_screen:
|
||||||
; draw box
|
; draw box
|
||||||
;=================================
|
;=================================
|
||||||
;=================================
|
;=================================
|
||||||
|
|
||||||
|
; blurgh. Cases
|
||||||
|
; Y1=EVEN, Y2=ODD -> loop Y1/2 to Y2/2, inclusive
|
||||||
|
; Y1=ODD, Y2=ODD -> HLIN, loop (Y1/2)+1 to Y2/2 inclusive
|
||||||
|
; Y1=EVEN, Y2=EVEN-> loop Y1/2 to (Y2/2)-1, HLIN
|
||||||
|
; Y1=ODD, Y2=EVEN -> HLIN, loop (Y1/2)+1 to (Y2/2)-1, HLIN
|
||||||
|
; 2/3 case, 1 to 1
|
||||||
|
; 3/5 case, (>1) 2 to 2
|
||||||
|
; 2/4 case, 1 to 1 (<2)
|
||||||
|
; 3/4 case, 2 to 1 (!)
|
||||||
|
; 3/6 case, 2 to 2
|
||||||
draw_box:
|
draw_box:
|
||||||
iny
|
iny
|
||||||
lda (INL),Y
|
lda (INL),Y
|
||||||
|
@ -154,6 +166,14 @@ odd_bottom_draw_box:
|
||||||
even_draw_box_start:
|
even_draw_box_start:
|
||||||
|
|
||||||
draw_box_yloop:
|
draw_box_yloop:
|
||||||
|
|
||||||
|
draw_box_yend_smc:
|
||||||
|
cpy #0
|
||||||
|
bcc bbbb
|
||||||
|
beq bbbb
|
||||||
|
jmp done_draw_box_yloop ; bge
|
||||||
|
|
||||||
|
bbbb:
|
||||||
lda gr_offsets_l,Y
|
lda gr_offsets_l,Y
|
||||||
sta draw_box_xloop_smc+1
|
sta draw_box_xloop_smc+1
|
||||||
|
|
||||||
|
@ -172,11 +192,14 @@ draw_box_xloop_smc:
|
||||||
bcs draw_box_xloop ; bge
|
bcs draw_box_xloop ; bge
|
||||||
|
|
||||||
iny
|
iny
|
||||||
draw_box_yend_smc:
|
;draw_box_yend_smc:
|
||||||
cpy #0
|
; cpy #0
|
||||||
bcc draw_box_yloop ; less than
|
; bcc draw_box_yloop ; less than
|
||||||
beq draw_box_yloop ; equal
|
; beq draw_box_yloop ; equal
|
||||||
|
|
||||||
|
jmp draw_box_yloop
|
||||||
|
|
||||||
|
done_draw_box_yloop:
|
||||||
; done
|
; done
|
||||||
|
|
||||||
; if Y2 was even we need to fixup and draw one more line
|
; if Y2 was even we need to fixup and draw one more line
|
||||||
|
@ -272,6 +295,14 @@ odd_bottom_vlin:
|
||||||
even_vlin_start:
|
even_vlin_start:
|
||||||
|
|
||||||
vlin_yloop:
|
vlin_yloop:
|
||||||
|
vlin_yend_smc:
|
||||||
|
cpy #0
|
||||||
|
bcc cccc
|
||||||
|
beq cccc
|
||||||
|
jmp done_vlin_yloop ;
|
||||||
|
|
||||||
|
cccc:
|
||||||
|
|
||||||
lda gr_offsets_l,Y
|
lda gr_offsets_l,Y
|
||||||
sta vlin_xloop_smc+1
|
sta vlin_xloop_smc+1
|
||||||
|
|
||||||
|
@ -287,12 +318,15 @@ vlin_xloop_smc:
|
||||||
sta $400,X
|
sta $400,X
|
||||||
|
|
||||||
iny
|
iny
|
||||||
vlin_yend_smc:
|
;vlin_yend_smc:
|
||||||
cpy #0
|
; cpy #0
|
||||||
bcc vlin_yloop ; less than
|
; bcc vlin_yloop ; less than
|
||||||
beq vlin_yloop ; equal
|
; beq vlin_yloop ; equal
|
||||||
|
|
||||||
|
jmp vlin_yloop
|
||||||
|
|
||||||
; done
|
; done
|
||||||
|
done_vlin_yloop:
|
||||||
|
|
||||||
; if Y2 was even we need to fixup and draw one more line
|
; if Y2 was even we need to fixup and draw one more line
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user