c64-livecoding/wip-hugo/routines/line/line_test_extensive.s
2025-07-26 15:55:57 +02:00

116 lines
2 KiB
ArmAsm

;;; -*- Mode: asm; indent-tabs-mode: t; tab-width: 8 -*-
.scope line_test_extensive
;; Program for testing of line-drawing. It draws a bunch of lines
;;Start line-timer-here
.include "line.inc"
.include "../memory/mem.inc"
Y_pos_ = $0D
X_pos_ = $0E
Y_end_ = $0F
X_end_ = $0C
LDA #$d2
STA X_pos_
LDA #$62
STA Y_pos_
LDA #$ff
STA X_end_
LDA #$0
STA Y_end_
;; Full angle test
@loop:
LDA Y_pos_
STA Y_pos
LDA X_pos_
STA X_pos
LDA X_end_
STA X_end
LDA Y_end_
STA Y_end
jsr line
INC Y_end_
LDA Y_end_
CMP #$ff
bne @loop
jsr clear_screen
long_line_test_a:
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
LDA X_end_
STA X_end
LDA Y_end_
STA Y_end
jsr line
INC Y_end_
LDA Y_end_
CMP #$ff
BNE @loop
jsr clear_screen
long_line_test_b:
LDA #$00
STA X_pos_
LDA #$00
STA Y_pos_
LDA #$ff
STA X_end_
LDA #$60
STA Y_end_
@loop:
LDA Y_pos_
STA Y_pos
LDA X_pos_
STA X_pos
LDA X_end_
STA X_end
LDA Y_end_
STA Y_end
jsr line
INC Y_pos_
LDA Y_pos_
CMP #$ff
BNE @loop
jsr clear_screen
long_line_test_b_pos_end_swapped:
LDA #$00
STA X_end_
LDA #$00
STA Y_end_
LDA #$ff
STA X_pos_
LDA #$60
STA Y_pos_
@loop:
LDA Y_end_
STA Y_end
LDA X_end_
STA X_end
LDA X_pos_
STA X_pos
LDA Y_pos_
STA Y_pos
jsr line
INC Y_end_
LDA Y_end_
CMP #$ff
BNE @loop
.endscope