Browse Source

ez80: ported msx keyboard driver (mky.asm)

master
Dean Netherton 1 year ago
parent
commit
141c79ef90
  1. 4
      Source/HBIOS/Config/RCEZ80_std.asm
  2. 9
      Source/HBIOS/mky.asm
  3. 7
      Source/HBIOS/tms.asm

4
Source/HBIOS/Config/RCEZ80_std.asm

@ -43,10 +43,10 @@ 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 FALSE ; 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 TRUE ; 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)
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
; ;
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC] AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]

9
Source/HBIOS/mky.asm

@ -211,8 +211,10 @@ MKY_INIT:
; C - OUTPUT (ROW LINE SELECTION) ; C - OUTPUT (ROW LINE SELECTION)
LD A, PPICMD_COMMAND | PPICMD_GA_MODE_0 | PPICMD_GB_MODE_0 | PPICMD_A_IN | PPICMD_B_IN | PPICMD_CLOW_OUT | PPICMD_CHIGH_OUT LD A, PPICMD_COMMAND | PPICMD_GA_MODE_0 | PPICMD_GB_MODE_0 | PPICMD_A_IN | PPICMD_B_IN | PPICMD_CLOW_OUT | PPICMD_CHIGH_OUT
EZ80_IO
OUT (MKY_REGCMD), A OUT (MKY_REGCMD), A
LD A, 64 ; CAPS OFF LD A, 64 ; CAPS OFF
EZ80_IO
OUT (MKY_REGC), A OUT (MKY_REGC), A
RET RET
; ;
@ -368,8 +370,10 @@ MKY_SETLEDS:
; TURN THE CAPS LED LIGHT ON ; TURN THE CAPS LED LIGHT ON
; ;
MKY_LEDCAPSON: MKY_LEDCAPSON:
EZ80_IO
IN A, (MKY_REGC) IN A, (MKY_REGC)
RES 6, A RES 6, A
EZ80_IO
OUT (MKY_REGC), A OUT (MKY_REGC), A
RET RET
; ;
@ -378,8 +382,10 @@ MKY_LEDCAPSON:
; TURN THE CAPS LED LIGHT OFF ; TURN THE CAPS LED LIGHT OFF
; ;
MKY_LEDCAPSOFF: MKY_LEDCAPSOFF:
EZ80_IO
IN A, (MKY_REGC) IN A, (MKY_REGC)
SET 6, A SET 6, A
EZ80_IO
OUT (MKY_REGC), A OUT (MKY_REGC), A
RET RET
@ -740,6 +746,7 @@ MKY_INTSCAN1:
; SCAN KEYBOARD AND STORE ALL COLUMN RESULTS PER ROW AT MKY_NEWKEY ; SCAN KEYBOARD AND STORE ALL COLUMN RESULTS PER ROW AT MKY_NEWKEY
; ;
EZ80_IO
IN A, (MKY_REGC) ; READ AND MASK THE CURRENT STATE OF PPI PORT C IN A, (MKY_REGC) ; READ AND MASK THE CURRENT STATE OF PPI PORT C
AND $F0 AND $F0
LD D, A LD D, A
@ -747,7 +754,9 @@ MKY_INTSCAN1:
LD HL, MKY_NEWKEY LD HL, MKY_NEWKEY
LD C, MKY_REGC LD C, MKY_REGC
MKY_SCAN_LP: MKY_SCAN_LP:
EZ80_IO
OUT (C), D ; SET ACTIVE ROW OUT (C), D ; SET ACTIVE ROW
EZ80_IO
IN A, (MKY_REGB) ; READ ACTIVE COLUMN DATA IN A, (MKY_REGB) ; READ ACTIVE COLUMN DATA
LD (HL), A ; STORE COLUMN READ VALUE LD (HL), A ; STORE COLUMN READ VALUE
INC HL INC HL

7
Source/HBIOS/tms.asm

@ -253,8 +253,6 @@ TMS_INIT:
; ;
TMS_INIT1: TMS_INIT1:
#IF (TMSTIMENABLE) #IF (TMSTIMENABLE)
EZ80_UTIL_DEBUG
PRTS(" INTERRUPT ENABLED$") PRTS(" INTERRUPT ENABLED$")
#ENDIF #ENDIF
@ -1111,11 +1109,6 @@ TMS_TSTINT:
RET RET
TMS_INTHNDL: TMS_INTHNDL:
;#IF MKYENABLE
; CALL MKY_INT
;#ENDIF
CALL HB_TIMINT ; RETURN NZ - HANDLED CALL HB_TIMINT ; RETURN NZ - HANDLED
OR $FF OR $FF
RET RET

Loading…
Cancel
Save