Browse Source

tms: re-activated vram detection for V99x8 chips only

pull/656/head
Dean Netherton 4 days ago
parent
commit
6c0c59bdfd
  1. 8
      Source/HBIOS/std.asm
  2. 31
      Source/HBIOS/tms.asm

8
Source/HBIOS/std.asm

@ -315,6 +315,14 @@ TMSMODE_NABU .EQU 9 ; NABU
TMSMODE_MSXUKY .EQU 10 ; STD MSX PORTS + USB KEYBOARD TMSMODE_MSXUKY .EQU 10 ; STD MSX PORTS + USB KEYBOARD
TMSMODE_N8PC .EQU 11 ; N8 BUILT-IN VIDEO + PS2 KEYBOARD TMSMODE_N8PC .EQU 11 ; N8 BUILT-IN VIDEO + PS2 KEYBOARD
; ;
; TMS DRIVER VDP TYPES
;
TMSVDP_TMS9918 .EQU 0 ; TMS9918A
TMSVDP_V9938 .EQU 1 ; YAMAHA V9938 VDP (WITH 64K TO 192K VRAM)
TMSVDP_V9958 .EQU 2 ; YAMAHA V9958 VDP (WITH 64K TO 192K VRAM)
TMSVDP_SUPER .EQU 3 ; FPGA V9958 MODULE WITH EXTENSIONS
TMSVDP_F18A .EQU 4 ; MSX FPGA TMS9918 REPLACEMENT
;
; CVDU VIDEO MODE SELECTIONS ; CVDU VIDEO MODE SELECTIONS
; ;
CVDUMODE_NONE .EQU 0 CVDUMODE_NONE .EQU 0

31
Source/HBIOS/tms.asm

@ -357,11 +357,26 @@ TMS_INIT1:
CALL TMS_CRTINIT ; SETUP THE TMS/V99x8 CHIP REGISTERS CALL TMS_CRTINIT ; SETUP THE TMS/V99x8 CHIP REGISTERS
TMS_INIT2: TMS_INIT2:
JR TMS_INIT3 ; SKIPPING THIS FOR NOW...
; ONLY DO VRAM DETECTION FOR V99X8 (NOT THE TMS OR F18A)
CALL PRTSTRD
LD A, (TMS_ATTRIB)
OR A
JR Z, TMS_INIT3 ; SKIP VRAM PROBE FOR TMS9918x
CP TMSVDP_F18A
JR Z, TMS_INIT3 ; SKIP VRAM PROBE FOR F18A
CALL PRTSTRD
.TEXT " VRAM=$" .TEXT " VRAM=$"
CP TMSVDP_SUPER ; SUPER HAS 1MB OF VRAM, NO NEED TO PROBE IT
JR NZ, TMS_INIT2A
CALL PRTSTRD
.TEXT "1MB$"
JR TMS_INIT3
TMS_INIT2A:
CALL TMS_VRMPRB CALL TMS_VRMPRB
DEC A DEC A
@ -841,13 +856,13 @@ TMS_GETTYP:
; ;
; RETURN THE IDENTIFIED CHIP ID ; RETURN THE IDENTIFIED CHIP ID
JR Z, TMS_ISV9938 JR Z, TMS_ISV9938
CP 2
CP TMSVDP_V9958
RET Z ; RETURN 2 FOR V9958 RET Z ; RETURN 2 FOR V9958
LD A, 3
LD A, TMSVDP_SUPER
RET ; RETURN 3 FOR SUPER V9958 RET ; RETURN 3 FOR SUPER V9958
TMS_ISV9938: TMS_ISV9938:
INC A ; RETURN 1 FOR V9938
INC A ; RETURN 1 (TMSVDP_V9938)
RET RET
TMS_ISF18A: TMS_ISF18A:
@ -894,7 +909,7 @@ TMS_ISF18A:
; WE DON'T BOTHER TO RESET THE STATUS REGISTER SELECTION OR ; WE DON'T BOTHER TO RESET THE STATUS REGISTER SELECTION OR
; RELOCK BECAUSE THIS IS NOT AN F18A! ; RELOCK BECAUSE THIS IS NOT AN F18A!
XOR A ; CHIP ID FOR 9918A
XOR A ; CHIP ID FOR 9918A (TMSVDP_TMS9918)
RET ; NOT F18A: A=0 RET ; NOT F18A: A=0
TMS_ISF18A1: TMS_ISF18A1:
@ -914,7 +929,7 @@ TMS_ISF18A1:
EZ80_IO EZ80_IO
OUT (TMS_CMDREG),A OUT (TMS_CMDREG),A
; ;
LD A,4 ; F18A: A=4
LD A, TMSVDP_F18A ; F18A: A=4
RET RET
; ;
@ -1542,7 +1557,7 @@ TMS_STRF18A .TEXT "F18A$"
; ANSI-->TMS Color Conversion Table ; ANSI-->TMS Color Conversion Table
TMS_COLOR_TBL .DB $01,$08,$02,$0A,$04,$06,$0C,$0F,$0E,$09,$03,$0B,$05,$0D,$07,$0F TMS_COLOR_TBL .DB $01,$08,$02,$0A,$04,$06,$0C,$0F,$0E,$09,$03,$0B,$05,$0D,$07,$0F
; ;
TMS_ATTRIB .DW 0 ; VDA DEVICE ATTRIBUTES (VDP_ID,VRAM,FREQ)
TMS_ATTRIB .DW 0 ; VDA DEVICE ATTRIBUTES (VDP_ID,VRAM,FREQ) (TMSVDP_xxxx)
; ;
;================================================================================================== ;==================================================================================================
; TMS DRIVER - INSTANCE DATA ; TMS DRIVER - INSTANCE DATA

Loading…
Cancel
Save