diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 1120cebe..865e2005 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -1255,9 +1255,6 @@ HB_CPU2: ; #ENDIF ; -#IF (TMSENABLE) - CALL TMS_PREINIT -#ENDIF ; ; INITIALIZE HEAP STORAGE ; @@ -1658,6 +1655,9 @@ HB_PCINITTBL: #IF (UFENABLE) .DW UF_PREINIT #ENDIF +#IF (TMSENABLE) + .DW TMS_PREINIT +#ENDIF HB_PCINITTBLLEN .EQU (($ - HB_PCINITTBL) / 2) ;================================================================================================== diff --git a/Source/HBIOS/tms.asm b/Source/HBIOS/tms.asm index b802d569..fb594f93 100644 --- a/Source/HBIOS/tms.asm +++ b/Source/HBIOS/tms.asm @@ -81,11 +81,12 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER ;====================================================================== ; TMS_PREINIT: -#IF (TMSTIMENABLE) - CALL TMS_INT_DIS ; SPECIAL CASE - NEED TO STOP TMS9918 FROM FIRING INTERRUPTS -#ENDIF ; WHEN DRIVER IS LOADED - IT WILL BE RELOADED - - RET + ; DISABLE INTERRUPT GENERATION + 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 ; TMS_INIT: #IF (CPUFAM == CPU_Z180) @@ -144,21 +145,10 @@ TMS_INIT1: XOR A ; SIGNAL SUCCESS 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 + ; DISABLE INTERRUPT 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 ; ;======================================================================