mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:33:12 -06:00
hbios/tms: fix for tms9918 and added detection for 'Super V9958' fpga module
This commit is contained in:
@@ -321,22 +321,25 @@ TMS_INIT:
|
||||
RET
|
||||
;
|
||||
TMS_INIT1:
|
||||
CALL TMS_CRTINIT ; SETUP THE TMS/V99x8 CHIP REGISTERS
|
||||
; THIS IS BEST DONE BEFORE DETECTION OF TYPE
|
||||
; AND VRAM SIZE
|
||||
|
||||
CALL PRTSTRD
|
||||
.TEXT " VDP=$"
|
||||
|
||||
CALL TMS_GETTYP ; A <- 0: TMS9918A, 1: V9938, 2: V9958, x: VDP ID
|
||||
|
||||
PUSH AF
|
||||
CALL TMS_CRTINIT ; SETUP THE TMS/V99x8 CHIP REGISTERS
|
||||
; THIS IS BEST DONE BEFORE DETECTION OF TYPE
|
||||
; AND VRAM SIZE
|
||||
POP AF
|
||||
|
||||
|
||||
INC A
|
||||
DEC A
|
||||
JR NZ, TMS_NOT9918
|
||||
|
||||
CALL PRTSTRD
|
||||
.TEXT "TMS9918 VRAM=16KB INTERRUPT=60HZ$"
|
||||
JR TMS_INIT3
|
||||
JR TMS_INIT4
|
||||
|
||||
TMS_NOT9918:
|
||||
DEC A
|
||||
@@ -347,9 +350,18 @@ TMS_NOT9918:
|
||||
JR TMS_INIT2
|
||||
|
||||
TMS_NOT9938:
|
||||
; ASSUME V9958
|
||||
DEC A
|
||||
JR NZ, TMS_NOTV9958
|
||||
|
||||
CALL PRTSTRD
|
||||
.TEXT "V9958$"
|
||||
JR TMS_INIT2
|
||||
|
||||
TMS_NOTV9958:
|
||||
; ASSUME SUPER V9958
|
||||
CALL PRTSTRD
|
||||
.TEXT "SUPER V9958 VRAM=8MB$"
|
||||
JR TMS_INIT3
|
||||
|
||||
TMS_INIT2:
|
||||
CALL PRTSTRD
|
||||
@@ -361,18 +373,19 @@ TMS_INIT2:
|
||||
JR NZ, NOT_64K
|
||||
|
||||
PRTS("64KB$")
|
||||
JR TMS_INIT3
|
||||
JR TMS_INIT4
|
||||
|
||||
NOT_64K:
|
||||
DEC A
|
||||
JR NZ, NOT_128K
|
||||
|
||||
PRTS("128KB$")
|
||||
JR TMS_INIT3
|
||||
JR TMS_INIT4
|
||||
|
||||
NOT_128K:
|
||||
PRTS("192KB$")
|
||||
|
||||
TMS_INIT3:
|
||||
#IF (TMSTIMENABLE)
|
||||
CALL PRTSTRD
|
||||
#IF (TICKFREQ == 50)
|
||||
@@ -382,7 +395,7 @@ NOT_128K:
|
||||
#ENDIF
|
||||
|
||||
#ENDIF
|
||||
TMS_INIT3:
|
||||
TMS_INIT4:
|
||||
CALL PC_SPACE
|
||||
LD A,TMS_COLS
|
||||
CALL PRTDEC8
|
||||
@@ -799,7 +812,7 @@ TMS_PROBE:
|
||||
;
|
||||
; ASSUMES INTERRUPTS ARE DISABLED (DI)
|
||||
;
|
||||
; A <- 0: TMS9918A, 1: V9938, 2: V9958, x: VDP ID
|
||||
; A <- 0: TMS9918A, 1: V9938, 2: V9958, 3: Super V9958
|
||||
; F <- z: TMS9918A, nz: other
|
||||
;
|
||||
TMS_GETTYP:
|
||||
@@ -815,7 +828,9 @@ TMS_GETTYP:
|
||||
EZ80_IO
|
||||
IN A,(TMS_CMDREG) ; READ S#1
|
||||
AND 00111110B ; GET VDP ID
|
||||
RRCA
|
||||
RRCA ; 00000 - V9938 1
|
||||
; 00010 - V9958 2
|
||||
; 10010 - v9958 3
|
||||
|
||||
EX AF,AF'
|
||||
XOR A ; RESTORE SELECT REGISTER TO S#0 FOR INT HANDLER
|
||||
@@ -826,7 +841,14 @@ TMS_GETTYP:
|
||||
OUT (TMS_CMDREG),A
|
||||
EX AF,AF'
|
||||
|
||||
RET NZ ; RETURN VDP ID FOR V9958 OR HIGHER
|
||||
JR Z, TMS_ISV9938
|
||||
CP 2
|
||||
RET Z ; RETURN 2 FOR V9958
|
||||
|
||||
LD A, 3
|
||||
RET ; RETURN 3 FOR SUPER V9958
|
||||
|
||||
TMS_ISV9938:
|
||||
INC A ; RETURN 1 FOR V9938
|
||||
RET
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user