mirror of
https://github.com/cc65/cc65.git
synced 2026-03-11 23:42:18 +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.
39 lines
824 B
ArmAsm
39 lines
824 B
ArmAsm
;
|
|
; Ullrich von Bassewitz, 06.08.1998
|
|
;
|
|
; void __fastcall__ gotoxy (unsigned char x, unsigned char y);
|
|
; void __fastcall__ gotox (unsigned char x);
|
|
;
|
|
|
|
.export gotoxy, _gotoxy, _gotox
|
|
.import popa, VTABZ
|
|
|
|
.ifndef __APPLE2ENH__
|
|
.import machinetype
|
|
.endif
|
|
|
|
.include "apple2.inc"
|
|
|
|
gotoxy:
|
|
jsr popa ; Get Y
|
|
|
|
_gotoxy:
|
|
clc
|
|
adc WNDTOP
|
|
sta CV ; Store Y
|
|
jsr VTABZ
|
|
jsr popa ; Get X
|
|
|
|
_gotox:
|
|
sta CH ; Store X
|
|
|
|
.ifndef __APPLE2ENH__
|
|
bit machinetype
|
|
bpl :+
|
|
.endif
|
|
|
|
bit RD80VID ; In 80 column mode?
|
|
bpl :+
|
|
sta OURCH ; Store X
|
|
: rts
|