|
|
@ -179,10 +179,8 @@ NABUKBENABLE .SET TRUE ; INCLUDE NABU KEYBOARD SUPPORT |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
TMS_PREINIT: |
|
|
TMS_PREINIT: |
|
|
#IF (NABUKBENABLE == TRUE) |
|
|
|
|
|
CALL NABUKB_PREINIT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; DISABLE INTERRUPT GENERATION |
|
|
|
|
|
|
|
|
; DISABLE INTERRUPT GENERATION UNTIL AFTER INTERRUPT HANDLER |
|
|
|
|
|
; HAS BEEN INSTALLED. |
|
|
LD A, (TMS_INITVDU_REG_1) |
|
|
LD A, (TMS_INITVDU_REG_1) |
|
|
RES TMSINTEN, A ; RESET INTERRUPT ENABLE BIT |
|
|
RES TMSINTEN, A ; RESET INTERRUPT ENABLE BIT |
|
|
LD (TMS_INITVDU_REG_1), A |
|
|
LD (TMS_INITVDU_REG_1), A |
|
|
@ -228,10 +226,10 @@ TMS_INIT: |
|
|
PRTS("COLECO$") |
|
|
PRTS("COLECO$") |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF (TMSMODE == TMSMODE_MSXKBD) |
|
|
#IF (TMSMODE == TMSMODE_MSXKBD) |
|
|
PRTS("RCKBD$") |
|
|
|
|
|
|
|
|
PRTS("MSXKBD$") |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF (TMSMODE == TMSMODE_MSX9958) |
|
|
#IF (TMSMODE == TMSMODE_MSX9958) |
|
|
PRTS("RC_V9958$") |
|
|
|
|
|
|
|
|
PRTS("MSXV9958$") |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF (TMSMODE == TMSMODE_NABU40) |
|
|
#IF (TMSMODE == TMSMODE_NABU40) |
|
|
PRTS("NABU-40$") |
|
|
PRTS("NABU-40$") |
|
|
@ -255,16 +253,16 @@ TMS_INIT1: |
|
|
CALL TMS_CRTINIT ; SETUP THE TMS CHIP REGISTERS |
|
|
CALL TMS_CRTINIT ; SETUP THE TMS CHIP REGISTERS |
|
|
CALL TMS_LOADFONT ; LOAD FONT DATA FROM ROM TO TMS STRORAGE |
|
|
CALL TMS_LOADFONT ; LOAD FONT DATA FROM ROM TO TMS STRORAGE |
|
|
CALL TMS_CLEAR ; CLEAR SCREEN, HOME CURSOR |
|
|
CALL TMS_CLEAR ; CLEAR SCREEN, HOME CURSOR |
|
|
#IF (TMSMODE == TMSMODE_N8) |
|
|
|
|
|
|
|
|
#IF (PPKENABLE) |
|
|
CALL PPK_INIT ; INITIALIZE PPI KEYBOARD DRIVER |
|
|
CALL PPK_INIT ; INITIALIZE PPI KEYBOARD DRIVER |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) |
|
|
|
|
|
|
|
|
#IF (KBDENABLE) |
|
|
CALL KBD_INIT ; INITIALIZE 8242 KEYBOARD DRIVER |
|
|
CALL KBD_INIT ; INITIALIZE 8242 KEYBOARD DRIVER |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF MKYENABLE |
|
|
|
|
|
|
|
|
#IF (MKYENABLE) |
|
|
CALL MKY_INIT ; INITIALIZE MKY KEYBOARD DRIVER |
|
|
CALL MKY_INIT ; INITIALIZE MKY KEYBOARD DRIVER |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF ((TMSMODE == TMSMODE_NABU40) | (TMSMODE == TMSMODE_NABU80)) |
|
|
|
|
|
|
|
|
#IF (NABUKBENABLE) |
|
|
CALL NABUKB_INIT ; INITIALIZE NABU KEYBOARD DRIVER |
|
|
CALL NABUKB_INIT ; INITIALIZE NABU KEYBOARD DRIVER |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
|
|
|
@ -280,14 +278,24 @@ TMS_INIT1: |
|
|
LD (IVT(INT_VDP)),HL ; IVT INDEX |
|
|
LD (IVT(INT_VDP)),HL ; IVT INDEX |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
|
|
|
; ENABLE VDP INTERRUPTS NOW |
|
|
LD A, (TMS_INITVDU_REG_1) |
|
|
LD A, (TMS_INITVDU_REG_1) |
|
|
SET TMSINTEN,A ; SET INTERRUPT ENABLE BIT |
|
|
SET TMSINTEN,A ; SET INTERRUPT ENABLE BIT |
|
|
LD (TMS_INITVDU_REG_1),A |
|
|
LD (TMS_INITVDU_REG_1),A |
|
|
LD C, TMSCTRL1 |
|
|
LD C, TMSCTRL1 |
|
|
CALL TMS_SET |
|
|
CALL TMS_SET |
|
|
|
|
|
; |
|
|
|
|
|
#IF ((TMSMODE == TMSMODE_NABU40) | (TMSMODE == TMSMODE_NABU80)) |
|
|
|
|
|
; ENABLE VDP INTERRUPTS ON NABU INTERRUPT CONTROLLER |
|
|
|
|
|
LD A,14 ; PSG R14 (PORT A DATA) |
|
|
|
|
|
OUT (NABU_RSEL),A ; SELECT IT |
|
|
|
|
|
LD A,(NABU_CTLVAL) ; GET NABU CTL PORT SHADOW REG |
|
|
|
|
|
SET 4,A ; ENABLE VDP INTERRUPTS |
|
|
|
|
|
LD (NABU_CTLVAL),A ; UPDATE SHADOW REG |
|
|
|
|
|
OUT (NABU_RDAT),A ; WRITE TO HARDWARE |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
|
|
|
; |
|
|
; |
|
|
; ADD OURSELVES TO VDA DISPATCH TABLE |
|
|
; ADD OURSELVES TO VDA DISPATCH TABLE |
|
|
LD BC,TMS_FNTBL ; BC := FUNCTION TABLE ADDRESS |
|
|
LD BC,TMS_FNTBL ; BC := FUNCTION TABLE ADDRESS |
|
|
@ -320,38 +328,37 @@ TMS_FNTBL: |
|
|
.DW TMS_VDAFIL |
|
|
.DW TMS_VDAFIL |
|
|
.DW TMS_VDACPY |
|
|
.DW TMS_VDACPY |
|
|
.DW TMS_VDASCR |
|
|
.DW TMS_VDASCR |
|
|
#IF (TMSMODE == TMSMODE_N8) |
|
|
|
|
|
|
|
|
#IF (PPKENABLE) |
|
|
.DW PPK_STAT |
|
|
.DW PPK_STAT |
|
|
.DW PPK_FLUSH |
|
|
.DW PPK_FLUSH |
|
|
.DW PPK_READ |
|
|
.DW PPK_READ |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) |
|
|
|
|
|
|
|
|
#IF (KBDENABLE) |
|
|
.DW KBD_STAT |
|
|
.DW KBD_STAT |
|
|
.DW KBD_FLUSH |
|
|
.DW KBD_FLUSH |
|
|
.DW KBD_READ |
|
|
.DW KBD_READ |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF ((TMSMODE == TMSMODE_NABU40) | (TMSMODE == TMSMODE_NABU80)) |
|
|
|
|
|
|
|
|
#IF (MKYENABLE) |
|
|
|
|
|
.DW MKY_STAT |
|
|
|
|
|
.DW MKY_FLUSH |
|
|
|
|
|
.DW MKY_READ |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#IF (NABUKBENABLE) |
|
|
.DW NABUKB_STAT |
|
|
.DW NABUKB_STAT |
|
|
.DW NABUKB_FLUSH |
|
|
.DW NABUKB_FLUSH |
|
|
.DW NABUKB_READ |
|
|
.DW NABUKB_READ |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF ((TMSMODE == TMSMODE_MSX) | (TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_SCG) | (TMSMODE == TMSMODE_COLECO)) |
|
|
|
|
|
#IF MKYENABLE |
|
|
|
|
|
.DW MKY_STAT |
|
|
|
|
|
.DW MKY_FLUSH |
|
|
|
|
|
.DW MKY_READ |
|
|
|
|
|
#ELSE |
|
|
|
|
|
|
|
|
#IF ((!PPKENABLE) & (!KBDENABLE) & (!NABUKBENABLE) & (!MKYENABLE)) |
|
|
.DW TMS_STAT |
|
|
.DW TMS_STAT |
|
|
.DW TMS_FLUSH |
|
|
.DW TMS_FLUSH |
|
|
.DW TMS_READ |
|
|
.DW TMS_READ |
|
|
#ENDIF |
|
|
|
|
|
#ENDIF |
|
|
#ENDIF |
|
|
.DW TMS_VDARDC |
|
|
.DW TMS_VDARDC |
|
|
#IF (($ - TMS_FNTBL) != (VDA_FNCNT * 2)) |
|
|
#IF (($ - TMS_FNTBL) != (VDA_FNCNT * 2)) |
|
|
.ECHO "*** INVALID TMS FUNCTION TABLE ***\n" |
|
|
.ECHO "*** INVALID TMS FUNCTION TABLE ***\n" |
|
|
!!!!! |
|
|
!!!!! |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
TMS_VDAINI: |
|
|
TMS_VDAINI: |
|
|
; RESET VDA |
|
|
; RESET VDA |
|
|
; CURRENTLY IGNORES VIDEO MODE AND BITMAP DATA |
|
|
; CURRENTLY IGNORES VIDEO MODE AND BITMAP DATA |
|
|
@ -359,7 +366,7 @@ TMS_VDAINI: |
|
|
CALL TMS_CLEAR ; CLEAR SCREEN |
|
|
CALL TMS_CLEAR ; CLEAR SCREEN |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
RET |
|
|
RET |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
TMS_VDAQRY: |
|
|
TMS_VDAQRY: |
|
|
LD C,$00 ; MODE ZERO IS ALL WE KNOW |
|
|
LD C,$00 ; MODE ZERO IS ALL WE KNOW |
|
|
LD D,TMS_ROWS ; ROWS |
|
|
LD D,TMS_ROWS ; ROWS |
|
|
@ -367,7 +374,7 @@ TMS_VDAQRY: |
|
|
LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED YET |
|
|
LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED YET |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
RET |
|
|
RET |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
TMS_VDARES: |
|
|
TMS_VDARES: |
|
|
#IF (CPUFAM == CPU_Z180) |
|
|
#IF (CPUFAM == CPU_Z180) |
|
|
CALL TMS_Z180IO |
|
|
CALL TMS_Z180IO |
|
|
|