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.
This commit is contained in:
committed by
Oliver Schmidt
parent
cd92e4f0af
commit
816666615b
36
libsrc/apple2/mtchline.s
Normal file
36
libsrc/apple2/mtchline.s
Normal file
@@ -0,0 +1,36 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 08.08.1998
|
||||
; Colin Leroy-Mira, 26.05.2025
|
||||
;
|
||||
; void __fastcall__ mt_chlinexy (unsigned char x, unsigned char y, unsigned char length);
|
||||
; void __fastcall__ mt_chline (unsigned char length);
|
||||
;
|
||||
|
||||
.ifdef __APPLE2ENH__
|
||||
|
||||
.export _mt_chlinexy, _mt_chline, chlinedirect
|
||||
.import gotoxy, cputdirect
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "apple2.inc"
|
||||
|
||||
_mt_chlinexy:
|
||||
pha ; Save the length
|
||||
jsr gotoxy ; Call this one, will pop params
|
||||
pla ; Restore the length and run into _chline
|
||||
|
||||
_mt_chline:
|
||||
ldx #'_' | $80 ; Underscore, screen code
|
||||
|
||||
chlinedirect:
|
||||
stx tmp1
|
||||
cmp #$00 ; Is the length zero?
|
||||
beq done ; Jump if done
|
||||
sta tmp2
|
||||
: lda tmp1 ; Screen code
|
||||
jsr cputdirect ; Direct output
|
||||
dec tmp2
|
||||
bne :-
|
||||
done: rts
|
||||
|
||||
.endif
|
||||
Reference in New Issue
Block a user