adapted SCREEN rioutine to MEGA65 native mode

This commit is contained in:
FeralChild64 committed 2020-08-23 17:44:39 +02:00
1 parent e2cf83489f
commit ad22140617
7 files changed
+67 -12

No files matched your search

+3
View File
@@ -34,6 +34,9 @@
.label wait_x_bars = KERNAL_0.wait_x_bars
.label viciv_unhide = KERNAL_0.viciv_unhide
.label m65_scrtab_txtwidth = KERNAL_0.m65_scrtab_txtwidth
.label m65_scrtab_txtheight = KERNAL_0.m65_scrtab_txtheight
#if CONFIG_IEC
.label iec_set_idle = KERNAL_0.iec_set_idle
+28
View File
@@ -15,6 +15,8 @@
SCREEN:
#if !ROM_LAYOUT_M65
// There are only 2 sane ways to implement this routine,
// I hope this one is different than what Commodore picked :)
@@ -22,3 +24,29 @@ SCREEN:
ldx #40 // 40 rows
rts
#else
php
jsr M65_ISMODE65
bcc !+
plp
ldy #25 // 25 columns
ldx #40 // 40 rows
rts
!:
plp
pha
ldy M65_SCRMODE
ldx m65_scrtab_txtwidth, y
lda m65_scrtab_txtheight, y
tay
pla
rts
#endif
@@ -0,0 +1,9 @@
// #LAYOUT# M65 KERNAL_0 #TAKE
// #LAYOUT# * * #IGNORE
m65_scrtab_txtheight: // height of the text screen
.byte 25
.byte 25
.byte 50
@@ -0,0 +1,9 @@
// #LAYOUT# M65 KERNAL_0 #TAKE
// #LAYOUT# * * #IGNORE
m65_scrtab_txtwidth: // width of the text screen (logical width is always set to 80)
.byte 40
.byte 80
.byte 80
@@ -8,18 +8,6 @@ m65_scrtab_vic_ctrlb: // parameters for VIC control register B
.byte %10100000 // 80x25 + extended attributes
.byte %10100100 // 80x50 + extended attributes
m65_scrtab_txtwidth: // width of the text screen (logical width is always set to 80)
.byte 40
.byte 80
.byte 80
m65_scrtab_txtheight: // height of the text screen
.byte 25
.byte 25
.byte 50
m65_scrtab_viewmax_lo: // maximum allowed viewport start - low byte
.byte $B0