Browse Source

eZ80: tms.asm interrupt handling activated - with appropriate delegation from the eZ80 firmware

pull/424/head
Dean Netherton 2 years ago
parent
commit
20bdb78084
  1. 2
      Source/HBIOS/Config/RCEZ80_std.asm
  2. 2
      Source/HBIOS/cfg_rcez80.asm
  3. 18
      Source/HBIOS/hbios.asm

2
Source/HBIOS/Config/RCEZ80_std.asm

@ -45,7 +45,7 @@ EZ80UARTENABLE .SET TRUE ; EZ80UART: ENABLE EZ80 UART DRIVER (EZ80UART.ASM)
LPTENABLE .SET FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) LPTENABLE .SET FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
; ;
TMSENABLE .SET TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .SET TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSTIMENABLE .SET TRUE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_MSX9958 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] TMSMODE .SET TMSMODE_MSX9958 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER) MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)

2
Source/HBIOS/cfg_rcez80.asm

@ -31,7 +31,7 @@ AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)

18
Source/HBIOS/hbios.asm

@ -357,6 +357,9 @@ RTCDEF .SET RTCDEF | %00001000 ; INITIAL SPEED LOW
#DEFINE EZ80_IO .DB $49, $CF ; RST.L $08 #DEFINE EZ80_IO .DB $49, $CF ; RST.L $08
#DEFINE EZ80_FN .DB $49, $D7 ; RST.L $10 #DEFINE EZ80_FN .DB $49, $D7 ; RST.L $10
#DEFINE EZ80_BNKSEL .DB $49, $DF ; RST.L $18 #DEFINE EZ80_BNKSEL .DB $49, $DF ; RST.L $18
#DEFINE RET.L .DB $49 \ RET
#ELSE #ELSE
#DEFINE EZ80_IO #DEFINE EZ80_IO
#ENDIF #ENDIF
@ -1178,7 +1181,7 @@ HBX_INT: ; COMMON INTERRUPT ROUTING CODE
HBX_RETI: HBX_RETI:
RETI RETI
; ;
#ELSE
#ELSE ; (MEMMGR == MM_Z280)
; ;
; COMMON INTERRUPT DISPATCHING CODE ; COMMON INTERRUPT DISPATCHING CODE
; SETUP AND CALL HANDLER IN BIOS BANK ; SETUP AND CALL HANDLER IN BIOS BANK
@ -1216,16 +1219,23 @@ HBX_INT_SP .EQU $ - 2
; ;
POP HL ; RESTORE HL POP HL ; RESTORE HL
; ;
#IF (CPUFAM == CPU_EZ80)
RET.L ; INTERRUPTS WILL BE ENABLED BY BY EZ80 FIRMWARE
; CAN THEY BE ENABLED HERE - DOES THAT RISK RE-ENTRANT OF THE HANDLER?
#ELSE
HB_EI ; ENABLE INTERRUPTS HB_EI ; ENABLE INTERRUPTS
RETI ; AND RETURN RETI ; AND RETURN
#ENDIF
; ;
#ENDIF
#ENDIF ; END ELSE IF (MEMMGR == MM_Z280)
; ;
#ELSE
#ELSE ; #IF (INTMODE > 0)
; ;
RET RET
; ;
#ENDIF
#ENDIF ; #END ELSE IF (INTMODE > 0)
; ;
; SMALL TEMPORARY STACK FOR USE BY HBX_BNKCPY ; SMALL TEMPORARY STACK FOR USE BY HBX_BNKCPY
; ;

Loading…
Cancel
Save