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.
25 lines
527 B
ArmAsm
25 lines
527 B
ArmAsm
.ifndef __APPLE2ENH__
|
|
|
|
.constructor initmachinetype, 8
|
|
|
|
.import ostype
|
|
.export machinetype
|
|
|
|
.segment "ONCE"
|
|
|
|
initmachinetype:
|
|
ldx ostype
|
|
cpx #$31 ; Apple //e enhanced?
|
|
ror machinetype ; Carry to high bit
|
|
cpx #$30 ; Apple //e?
|
|
ror machinetype
|
|
rts
|
|
|
|
.data
|
|
|
|
; bit 7: Machine is a //e or newer
|
|
; bit 6: Machine is a //e enhanced or newer
|
|
machinetype: .byte 0
|
|
|
|
.endif
|