Is it possible to use MSX2014 PPI and Omega keyboard with ROMWBW.

243 views
Skip to first unread message

Pax NL

unread,
Sep 14, 2024, 6:14:30 AM9/14/24
to RC2014-Z80
Hi,

I got ROMWBW working, see my thread about that journey :D

I have the PPI module from MSX2014 and an Omega MSX Keyboard. I was wondering if I could use this with ROMWBW.

When I plugin the module it is not shown in the overview of ROMWBW 3.4.1 as an installed module, but my TMS9918A is also not shown, so I need to configure this too.

But back to the main question, would this be possible and can somebody help me setup this up/get it working?

Regards, Pax.

Willy De la Court

unread,
Sep 14, 2024, 6:31:56 AM9/14/24
to RC2014-Z80
I think the minimum you should do is enable it in the ROM config. And rebuild the ROM

TMSENABLE   .SET    TRUE   ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)

Wayne Warthen

unread,
Sep 14, 2024, 10:18:20 AM9/14/24
to RC2014-Z80
On Saturday, September 14, 2024 at 3:31:56 AM UTC-7 Willy De la Court wrote:
I think the minimum you should do is enable it in the ROM config. And rebuild the ROM

TMSENABLE   .SET    TRUE   ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)

Yes, and to add the Omega keyboard support, you also need to set MKYENABLE to TRUE.

Thanks, Wayne 

Pax NL

unread,
Sep 17, 2024, 4:00:30 PM9/17/24
to RC2014-Z80
Hi Will and Wayne, 

Thank you for your replies, I tried several time to compile 3.4.1, with different config changes, but every time I enabled MKYENABLE I got an error during compiling.
I then found a thread with Les Bird that a 3.5 revision also had changes for this, I checked-out rev: v3.5.0-dev.9 and tried again:
Screenshot 2024-09-17 at 21.48.57.pngThis version compiles but at startup my TMS9918a module is not found. This module is configured for MSX and works in my MSX2014 and RC2014 Pro setup with CP/M, so not sure why it is not detected by ROMWBW.


Op zaterdag 14 september 2024 om 16:18:20 UTC+2 schreef Wayne Warthen:

dean.ne...@gmail.com

unread,
Sep 17, 2024, 6:11:42 PM9/17/24
to RC2014-Z80
The error during assembly?  What is it?  Something like :

mky.asm:23: unexpected character (!)

If thats the case, have a look at the line of code:

#IF (SYSTIM == TM_NONE)
        .ECHO   "*** ERROR: MKY REQUIRES SYSTEM TIMER -- NONE CONFIGURED!!!\n"
        !!!     ; FORCE AN ASSEMBLY ERROR
#ENDIF

If I recall, for the keyboard to work, it needs a timer tick event -- to run the code that scans the keyboard.  The PPI can not 'raise' any interrupts to the CPU.  so the cpu needs to periodically scan the keyboards.

I think the fix might be to enable the key TMSTIMENABLE also

Dean

Wayne Warthen

unread,
Sep 17, 2024, 8:31:11 PM9/17/24
to RC2014-Z80
Dean is exactly right.  I am very sorry, my instructions should have included that.

Your TMS9918 module must be configured to provide interrupts to the bus.

Thanks, Wayne

Pax NL

unread,
Sep 18, 2024, 4:49:06 AM9/18/24
to RC2014-Z80
Hi Dean,

Thanks for confirming the error. I also encountered it when using TMSTIMENABLE. Initially, I suspected it was due to Windows CRLF and used dos2unix, but that didn't resolve the issue. Further investigation led me to line 23, where I traced the error back to TMSTIMENABLE.

I'll revert to 3.4.1, make the necessary changes, compile, and provide some screenshots. I'll report back with my findings.

@Wayne, no problem at all—I'm already glad you provided a hint! I need to dive into the documentation and investigate further to understand what's happening.

I have one question: Even though I was able to compile 3.5.0, I expected some TMS-related messages on boot, such as "card not detected." However, there's no mention of TMS anywhere.

Op woensdag 18 september 2024 om 02:31:11 UTC+2 schreef Wayne Warthen:

Wayne Warthen

unread,
Sep 18, 2024, 1:32:52 PM9/18/24
to RC2014-Z80
Under 3.5.0, the settings changed slightly.  MKYENABLE is no longer available.  Instead, you should set TMSMODE to MSXMKY.  As long as TMSENABLE is TRUE, you should get a message of some kind at boot even if it is just reporting the device is not found.  Here are the critical settings you need under 3.5.0:

TMSENABLE       .SET    TRUE            ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE         .SET    TMSMODE_MSXMKY  ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU]
TMSTIMENABLE    .SET    TRUE            ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)


Can you confirm you have these set?

Thanks, Wayne

Pax NL

unread,
Sep 18, 2024, 5:28:54 PM9/18/24
to RC2014-Z80
Hi Wayne,

I changed the v3.5.0-dev.84 config:

Screenshot 2024-09-18 at 23.24.18.png

and it compiled and flashed successful: 

$ clear && reset && make clean && make ROM_PLATFORM=RCZ80 ROM_CONFIG=std
$ minipro -p SST39SF040 -w Binary/RCZ80_std.rom                        
Found TL866CS 03.2.86 (0x256)
Device code: 54417876
Serial code: C7B1D66DC146C23C67336807
Chip ID: 0xBFB7  OK
Erasing... 0.40Sec OK
Writing Code...  39.83Sec  OK
Reading Code...  6.60Sec  OK
Verification OK

but after starting, I do not see TMS in the bootscreen:

RomWBW HBIOS v3.5.0-dev.84, 2024-09-18

RCBus [RCZ80_std] Z80 @ 7.372MHz
0 MEM W/S, 1 I/O W/S, INT MODE 1, Z2 MMU
512KB ROM, 512KB RAM, HEAP=0x2F0E
ROM VERIFY: 00 00 00 00 PASS

CTC: IO=0x88 NOT PRESENT
LCD: IO=DA NOT PRESENT
SIO0: IO=0x80 SIO MODE=115200,8,N,1
SIO1: IO=0x82 SIO MODE=115200,8,N,1
DSRTC: MODE=STD IO=0xC0 NOT PRESENT
MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
FD: MODE=RCWDC IO=0x50 NOT PRESENT
IDE: IO=0x10 MODE=RC
IDE0: NO MEDIA
IDE1: NO MEDIA
PPIDE: IO=0x20 PPI NOT PRESENT
CH0: IO=0x3E NOT PRESENT
CH1: IO=0x3C NOT PRESENT
FP: IO=0x00 NOT PRESENT

Unit        Device      Type              Capacity/Mode
----------  ----------  ----------------  --------------------
Char 0      SIO0:       RS-232            115200,8,N,1
Char 1      SIO1:       RS-232            115200,8,N,1
Disk 0      MD0:        RAM Disk          256KB,LBA
Disk 1      MD1:        ROM Disk          384KB,LBA
Disk 2      IDE0:       Hard Disk         --
Disk 3      IDE1:       Hard Disk         --


RCBus [RCZ80_std] Boot Loader

Boot [H=Help]: 


Op woensdag 18 september 2024 om 19:32:52 UTC+2 schreef Wayne Warthen:

Wayne Warthen

unread,
Sep 18, 2024, 5:56:58 PM9/18/24
to rc201...@googlegroups.com
Ah, I see the issue.

You made the change in cfg_RCZ80.asm.  However, those settings are ultimately overridden by the settings in Config/RCZ80_std.asm.  Review the comments at the top of cfg_RCZ80.asm regarding the cascading configuration files.  Apply the changes to RCZ80_std.asm and rebuild.

Thanks, Wayne

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/d08f6e52-0dc0-4764-af6c-1acf37519ec8n%40googlegroups.com.

Pax NL

unread,
Sep 19, 2024, 2:19:40 AM9/19/24
to RC2014-Z80
@wayne, thank you for catching that. Your insight explains why the compilation issue was resolved after switching to the 3.5.x tags. I had inadvertently been using the correct file with the 3.4.1 version, leading to the compile error.

By performing a git reset and recompiling with the correct file and settings, I successfully resolved the issue. The code now compiles and functions as expected.

Here's the current output:
TMS: MODE=MSXMKY IO=0x98 INTERRUPT ENABLED 40X24
MSXKYB: IO=0xA8 US LAYOUT
Video 0 TMS0: CRT Text,40x24

Is it possible to utilize the keyboard in ROMWBW or CP/M for a standalone computer setup?

Op woensdag 18 september 2024 om 23:56:58 UTC+2 schreef Wayne Warthen:

Wayne Warthen

unread,
Sep 19, 2024, 12:22:27 PM9/19/24
to RC2014-Z80
Hi Pax,

Glad you got the build working.

Yes, you can certainly setup your system as standalone with the MSX keyboard/display as your console.

First, you should make sure that the MSX keyboard and display work as a console  To do that, start your system normally (using serial connection).  Then, from the Boot Loader prompt, enter "I n" where n is the Character Device Unit number of your MSX keyboard/display.  You determine the Character Unit number by looking at the device list at boot.  In your case, I think it is going to be Character Unit 2.  So, you would enter "I 2".  After pressing enter, your console should switch to the MSX keyboard/display.  You should now be able to use your system from the MSX keyboard/display to boot CP/M, etc.

By the way, there is another (easier) way to switch the console to your MSX keyboard/display.  After booting your system, without typing anything at the serial port, press the space key twice on the MSX keyboard/display.  The MSX keyboard/display should now activate just like when you used "I n" above.  Pressing the space key twice will work even if you have nothing attached to the serial port.  Oh, I forgot.  For this to work you must ensure that VDAEMU_SERKBD is set to $FF in your config file (RCZ80_std.asm):

VDAEMU_SERKBD   .SET    $FF             ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD

If you want your system to boot directly to the MSX keyboard display at boot, you can set CRTAC T to TRUE in your config file (RCZ80_std.asm):

CRTACT          .SET    TRUE            ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP

An even better way to do this is to add an RC2014 front panel kit.  The front panel switches can then be used to control a variety of startup options including selection of serial vs. CRT console.

Thanks,

Wayne

Pax NL

unread,
Sep 19, 2024, 4:13:09 PM9/19/24
to RC2014-Z80

Wow, thanks for the detailed explanation.. I can work on this coming weekend.. 
Op donderdag 19 september 2024 om 18:22:27 UTC+2 schreef Wayne Warthen:

Pax NL

unread,
Sep 23, 2024, 3:29:53 AM9/23/24
to RC2014-Z80
@wayne,

VDAEMU_SERKBD   .SET    $FF             ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD

This worked exactly as I need/hoped :D 

To all who helped in this thread, thank you very much! 

Op donderdag 19 september 2024 om 22:13:09 UTC+2 schreef Pax NL:

Wayne Warthen

unread,
Sep 23, 2024, 10:04:22 PM9/23/24
to RC2014-Z80
Great.  Glad it is all working for you.

-Wayne

Reply all
Reply to author
Forward
0 new messages