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