Browse Source

hbios/tms: fix for tms9918 and added detection for 'Super V9958' fpga module

pull/644/head
Dean Netherton 3 weeks ago
parent
commit
096bbf4ee6
  1. 46
      Source/HBIOS/tms.asm

46
Source/HBIOS/tms.asm

@ -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
;

Loading…
Cancel
Save