mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-08-14 10:29:46 +00:00
105 lines
1.3 KiB
ArmAsm
105 lines
1.3 KiB
ArmAsm
GBASL = $26
|
|
GBASH = $27
|
|
HGRPAGE = $E6
|
|
LINE = $FD
|
|
YPOS = $FE
|
|
COLOR = $FF
|
|
|
|
HGR = $F3E2
|
|
HGR2 = $F3D8
|
|
HPOSN = $F411
|
|
|
|
raster:
|
|
jsr HGR
|
|
jsr HGR2
|
|
sta $C05E ; set double hires
|
|
sta $C00D ; 80 column
|
|
sta $C001 ; 80 store
|
|
|
|
lda #$20
|
|
sta HGRPAGE
|
|
sta YPOS
|
|
|
|
line_loop:
|
|
lda #7
|
|
sta LINE
|
|
lda YPOS
|
|
bmi go_neg
|
|
cmp #64
|
|
bcs do_add
|
|
go_pos:
|
|
ldx #$1
|
|
.byte $2C ; bit trick
|
|
go_neg:
|
|
ldx #$ff
|
|
blah:
|
|
stx smc+1
|
|
do_add:
|
|
clc
|
|
smc:
|
|
adc #1
|
|
sta YPOS
|
|
|
|
color_loop:
|
|
ldx LINE
|
|
lda colors,X
|
|
beq no_add
|
|
ldx smc+1
|
|
bmi no_add
|
|
clc
|
|
adc #$33
|
|
no_add:
|
|
sta COLOR
|
|
lda YPOS
|
|
sec
|
|
sbc LINE
|
|
|
|
; jsr draw_line_color
|
|
|
|
; inline!
|
|
;=====================================
|
|
;=============================
|
|
; draw line of color in COLOR
|
|
;=============================
|
|
draw_line_color:
|
|
ldx #0
|
|
ldy #0
|
|
jsr HPOSN
|
|
|
|
ldy #39
|
|
loop_it:
|
|
; set page2
|
|
sta $C055
|
|
jsr next_pixel
|
|
|
|
; set page1
|
|
sta $C054
|
|
jsr next_pixel
|
|
dey
|
|
|
|
bpl loop_it
|
|
;====================================
|
|
; rts
|
|
|
|
|
|
dec LINE
|
|
bmi line_loop
|
|
bpl color_loop
|
|
|
|
|
|
|
|
|
|
next_pixel:
|
|
lda COLOR ; 2
|
|
sta (GBASL),Y ; 3
|
|
cmp #$80 ; 2
|
|
rol COLOR ; 2
|
|
rts ; 1
|
|
|
|
colors:
|
|
; .byte $00,$DD,$EE,$FF,$FF,$EE,$DD,$00 ; aqua lblue white
|
|
; .byte $00,$AA,$BB,$CC,$CC,$BB,$AA,$00 ; grey yellow mblue
|
|
; .byte $00,$77,$88,$99,$99,$88,$77,$00 ; ugly green
|
|
; .byte $00,$44,$55,$66,$66,$55,$44,$00 ; purple
|
|
.byte $00,$11,$22,$33,$33,$22,$11,$00 ; red
|