c64-livecoding/wip-hugo/routines/line/line_test.s
hugova 7f56f90613 Changed 16-bit value syntax from using > and < in addresses to using +1.
This was recomended by dicander and duunqnd because  A =$ABAC
looks like one address and not 2 zero-page addresses.
2025-04-28 12:56:52 +02:00

81 lines
1.6 KiB
ArmAsm

;;; -*- Mode: asm; indent-tabs-mode: t; tab-width: 8 -*-
.scope line_test
.include "line.inc"
;;for testing stuff
Y_pos_ = $0D
X_pos_ = $0E
Y_end_ = $10
X_end_ = $11
LDA #$d2
STA X_pos_
LDA #$62
STA Y_pos_
LDA #$ff
STA X_end
LDA #$0
STA Y_end
;; Short test for timing
@loop:
LDA Y_pos_
STA Y_pos
LDA X_pos_
STA X_pos
jsr line
INC Y_end
LDA Y_end
CMP #$bb
BEQ end__
jmp @loop
end__:
;; Full anfle test
@loop:
LDA Y_pos_
STA Y_pos
LDA X_pos_
STA X_pos
jsr line
INC Y_end
LDA Y_end
CMP #$bb
BEQ end
jmp @loop
end:
;;Long lines
;;Lets cleer bitmap
B_start = $FC ;16-bit value (uses FD)
B_end = $FE ;16-bit value (uses FF)
VIC_bank = $4000
VIC_bank_end = VIC_bank + $3FFF
;;Paint the bitmap black. More bitmap: https://www.c64-wiki.com/wiki/53272, https://www.c64-wiki.com/wiki/Screen_RAM#Moving_of_screen_RAM
Mov_16 B_start, B_start + 1, #<VIC_bank, #>VIC_bank
Mov_16 B_end, B_end + 1, #<$5f3f, #>$5f3f
LDA #$00
jsr memset
LDA #$00
STA X_pos_
LDA #$60
STA Y_pos_
LDA #$ff
STA X_end
LDA #$0
STA Y_end
@loop:
LDA Y_pos_
STA Y_pos
LDA X_pos_
STA X_pos
jsr line
INC Y_end
LDA Y_end
CMP #$bb
BEQ end_
jmp @loop
end_:
jmp exit
.endscope