|
|
@ -14,6 +14,24 @@ |
|
|
; TMS DRIVER - CONSTANTS |
|
|
; TMS DRIVER - CONSTANTS |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
TMSCTRL1: .EQU 1 ; CONTROL BITS |
|
|
|
|
|
TMSINTEN: .EQU 5 ; INTERRUPT ENABLE BIT |
|
|
|
|
|
|
|
|
|
|
|
#IF TMSTIMENABLE |
|
|
|
|
|
.ECHO "TMS INTERRUPTS ENABLED" |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
|
|
|
|
|
|
#IF (TMSMODE == TMSMODE_RC2014) |
|
|
|
|
|
TMS_DATREG .EQU $BE ; READ/WRITE DATA |
|
|
|
|
|
TMS_CMDREG .EQU $BF ; READ STATUS / WRITE REG SEL |
|
|
|
|
|
TMS_PPIA .EQU 0 ; PPI PORT A |
|
|
|
|
|
TMS_PPIB .EQU 0 ; PPI PORT B |
|
|
|
|
|
TMS_PPIC .EQU 0 ; PPI PORT C |
|
|
|
|
|
TMS_PPIX .EQU 0 ; PPI CONTROL PORT |
|
|
|
|
|
|
|
|
|
|
|
#ENDIF |
|
|
|
|
|
|
|
|
#IF (TMSMODE == TMSMODE_N8) |
|
|
#IF (TMSMODE == TMSMODE_N8) |
|
|
|
|
|
|
|
|
TMS_DATREG .EQU $98 ; READ/WRITE DATA |
|
|
TMS_DATREG .EQU $98 ; READ/WRITE DATA |
|
|
@ -93,6 +111,17 @@ TMS_INIT1: |
|
|
#IF (TMSMODE == TMSMODE_N8) |
|
|
#IF (TMSMODE == TMSMODE_N8) |
|
|
CALL PPK_INIT ; INITIALIZE KEYBOARD DRIVER |
|
|
CALL PPK_INIT ; INITIALIZE KEYBOARD DRIVER |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
#IF (INTMODE == 1 & TMSTIMENABLE) |
|
|
|
|
|
; ADD IM1 INT CALL LIST ENTRY |
|
|
|
|
|
LD HL, TMS_TSTINT ; GET INT VECTOR |
|
|
|
|
|
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST |
|
|
|
|
|
|
|
|
|
|
|
LD A, (TMS_INIT9918_REG_1) |
|
|
|
|
|
SET TMSINTEN, A ; SET INTERRUPT ENABLE BIT |
|
|
|
|
|
LD (TMS_INIT9918_REG_1), A |
|
|
|
|
|
LD C, TMSCTRL1 |
|
|
|
|
|
CALL TMS_SET |
|
|
|
|
|
#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 |
|
|
@ -107,6 +136,23 @@ TMS_INIT1: |
|
|
; |
|
|
; |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
RET |
|
|
RET |
|
|
|
|
|
|
|
|
|
|
|
#IFDEF APPBOOT |
|
|
|
|
|
#IF TMSTIMENABLE |
|
|
|
|
|
; SPECIAL CASE FOR APPBOOT - NEEDING TO DISABLE INTERRUPT GENERATOR |
|
|
|
|
|
; ISSUE: |
|
|
|
|
|
; IF THE CURRENT ROMBOOT HAD LOADED THE TMS DRIVER |
|
|
|
|
|
; THEN THE ROMLOADER MAY START RECEIVING INTERRUPTS |
|
|
|
|
|
; FROM THE CHIP BEFORE THE TMS DRIVER HAS BEEN RE- |
|
|
|
|
|
; INITALISED, AND CAUSING BAD INT PANICS |
|
|
|
|
|
TMS_INT_DIS: |
|
|
|
|
|
LD A, (TMS_INIT9918_REG_1) |
|
|
|
|
|
RES TMSINTEN, A ; RESET INTERRUPT ENABLE BIT |
|
|
|
|
|
LD (TMS_INIT9918_REG_1), A |
|
|
|
|
|
LD C, TMSCTRL1 |
|
|
|
|
|
JP TMS_SET |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; TMS DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS |
|
|
; TMS DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS |
|
|
@ -745,6 +791,20 @@ TMS_Z180IOX: |
|
|
RET ; DONE |
|
|
RET ; DONE |
|
|
; |
|
|
; |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
|
|
|
|
|
|
#IF (INTMODE == 1 & TMSTIMENABLE) |
|
|
|
|
|
TMS_TSTINT: |
|
|
|
|
|
IN A, (TMS_CMDREG) ; TEST FOR INT FLAG |
|
|
|
|
|
AND $80 |
|
|
|
|
|
JR NZ, TMS_INTHNDL |
|
|
|
|
|
AND $00 ; RETURN Z - NOT HANDLED |
|
|
|
|
|
RET |
|
|
|
|
|
|
|
|
|
|
|
TMS_INTHNDL: |
|
|
|
|
|
CALL HB_TIMINT ; RETURN NZ - HANDLED |
|
|
|
|
|
OR $FF |
|
|
|
|
|
RET |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
;================================================================================================== |
|
|
;================================================================================================== |
|
|
; TMS DRIVER - DATA |
|
|
; TMS DRIVER - DATA |
|
|
@ -798,6 +858,7 @@ TMS_BUF .FILL 256,0 ; COPY BUFFER |
|
|
; |
|
|
; |
|
|
TMS_INIT9918: |
|
|
TMS_INIT9918: |
|
|
.DB $00 ; REG 0 - NO EXTERNAL VID |
|
|
.DB $00 ; REG 0 - NO EXTERNAL VID |
|
|
|
|
|
TMS_INIT9918_REG_1: |
|
|
.DB $50 ; REG 1 - ENABLE SCREEN, SET MODE 1 |
|
|
.DB $50 ; REG 1 - ENABLE SCREEN, SET MODE 1 |
|
|
.DB $00 ; REG 2 - PATTERN NAME TABLE := 0 |
|
|
.DB $00 ; REG 2 - PATTERN NAME TABLE := 0 |
|
|
.DB $00 ; REG 3 - NO COLOR TABLE |
|
|
.DB $00 ; REG 3 - NO COLOR TABLE |
|
|
|