mirror of
https://github.com/cc65/cc65.git
synced 2026-03-13 22:16:33 +00:00
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.
41 lines
1.2 KiB
ArmAsm
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
|