1
0
mirror of https://github.com/cc65/cc65.git synced 2026-03-13 22:16:33 +00:00
Files
cc65/libsrc/apple2/dyncvline.s
Colin Leroy-Mira 816666615b Apple2: Make 80-columns support dynamic on apple2 target
Add a machinetype identifier to help us quickly identify
Apple //e (bit 7) and //e enhanced (bit 6).

Use it in conio functions for 80-columns code instead of
relying entirely on the __APPLE2ENH__ target.

Move videomode() to the apple2 target, and have it return
an error if 80-columns hardware is not available - this
is a lie for now, it is considered available on //e enhanced,
which may not be true, and not available on //e, which
may also be not true. An ulterior patch will make that
check correctly.

Adapt the box/line drawing characters so that one can use
MouseText on the apple2 target if it is available, by
defining DYN_DRAW_BOX. No change by default: MouseText is
considered available on apple2enh and not available on
apple2.
2025-05-27 19:03:20 +02:00

41 lines
1.2 KiB
ArmAsm

;
; Ullrich von Bassewitz, 08.08.1998
; Colin Leroy-Mira, 26.05.2025
;
; void __fastcall__ dyn_cvlinexy (unsigned char c, unsigned char x, unsigned char y, unsigned char length);
; void __fastcall__ dyn_cvline (unsigned char c, unsigned char length);
;
.ifndef __APPLE2ENH__
.export _dyn_cvlinexy, _dyn_cvline
.import gotoxy, putchar, newline, popa
.import machinetype
.include "zeropage.inc"
_dyn_cvlinexy:
pha ; Save the length
jsr gotoxy ; Call this one, will pop params
pla ; Restore the length and run into _cvline
_dyn_cvline:
pha
jsr popa ; Get the character to draw
eor #$80 ; Invert high bit
tax
pla
stx tmp1
cmp #$00 ; Is the length zero?
beq done ; Jump if done
sta tmp2
: lda tmp1 ; Screen code
jsr putchar ; Write, no cursor advance
jsr newline ; Advance cursor to next line
dec tmp2
bne :-
done: rts
.endif