TMS9918A Video Driver in ROMWBW

173 views
Skip to first unread message

andy....@googlemail.com

unread,
Jul 6, 2024, 12:10:11 PMJul 6
to RC2014-Z80
Hi,

Just built my TMS9918A, and I see that it’s supported in ROMWBW.  Can anyone help me with these questions?

What the best memory address to use?
Do I need to use NMI / IRQ?
How do I see if the card is being detected?

I have the original Z80 board
MC68B50 Serial board
512 ROM / RAM
Compact flash card
USB storage
Clock
LCD
Front Panel
Plus a host of other cards

Wayne Warthen

unread,
Jul 6, 2024, 5:36:54 PMJul 6
to RC2014-Z80
Hi,

On Saturday, July 6, 2024 at 9:10:11 AM UTC-7 andy....@googlemail.com wrote:
What the best memory address to use?

I believe it is normal to use 0x98 as the base I/O address.
 
Do I need to use NMI / IRQ?

No.  It is possible to use IRQ to drive a RomWBW 50 Hz system timer, but that is not needed to use the card.
 
How do I see if the card is being detected?

RomWBW will display a line at boot that starts with "TMS:".  If the card is NOT detected, it will include the message "NOT PRESENT".  Otherwise, it was found.

The TMS9918 driver is not enabled in the standard RCZ80 build.  To enable it, change the TMSENABLE config setting to TRUE in your RCZ80_std.asm config file (example below).  Then build a new ROM image using the build process described in Source/ReadMe.txt.

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

Thanks,

Wayne

andy....@googlemail.com

unread,
Jul 7, 2024, 3:24:18 AMJul 7
to RC2014-Z80
Thanks Wayne, guess the answer to the last question was the important bit :-)

Number of the Beast

unread,
Jul 7, 2024, 1:00:17 PMJul 7
to rc201...@googlegroups.com
Sorry for “high jacking” your question, but what did you use for the Ferrite capacitor, the one on the BOM is no longer available , and for me the 16pf capacitor is hard to find, can you point me in the right direction to source them?

Op zaterdag 6 juli 2024 schreef 'andy....@googlemail.com' via RC2014-Z80 <rc201...@googlegroups.com>:
--
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+unsubscribe@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/960a40a4-10bb-4026-8ad0-e49a7a4a5710n%40googlegroups.com.
Message has been deleted
Message has been deleted
Message has been deleted

Kevin Buhr

unread,
Jul 8, 2024, 1:15:02 PMJul 8
to RC2014-Z80
Hi, NotB,

The ferrite bead isn't too critical, so any cheap part should do. Aim for around 40 ohms (or more) at 5MHz to match the original part. I used a Fair-Rite 2773004111 from DigiKey which is about 70 ohms at 5MHz. It was a little too big for the footprint, so I had to mount it elevated at one end, but it's in a crowded part of the PCB, so even cosmetically it's barely noticeable, though you might want to find something that fits better.

Using modestly different values for C1 and C2 should be okay. (The datasheet suggests typical values of 15-39pF.) In an ideal world, the capacitors C1 and C2 are selected based on the crystal's rated load capacitance -- it should match the *series* capacitance of C1 and C2 combined with the parallel stray capacitance of the in-chip oscillator. The relevant formula is CL=C1*C2/(C1+C2)+CS where CL is the load capacitance of the crystal and CS is the stray capacitance of the oscillator, usually assumed to be 5-10pF.  For example, the original crystal had CL=16pF. The original values C1=C2=16pF give 8pF of series capacitance plus the parallel stray CS of 5-10pF, for a total of 13-18pF. Substitute in C1=C2=10pF, and you've got 10-15pF, and C1=C2=20pF gives 15-20pF. These are all close enough that the substitutions should be pretty safe. If your crystal has a lower (or higher) CL than the original, choose the lower (or higher) substitution, and you should be fine.

MartinR

unread,
Jul 9, 2024, 2:17:23 AMJul 9
to RC2014-Z80
Thanks for posting - likely to be very useful to me also. I had been wondering about sourcing the correct ferrite and 16pF capacitors as stated in the BOM, but you've shown there's a degree of flexibility.

MartinR

Number of the Beast

unread,
Jul 9, 2024, 6:14:05 AMJul 9
to rc201...@googlegroups.com
Thank you very much, nice detailed explanation..

Op maandag 8 juli 2024 schreef Kevin Buhr <kab...@gmail.com>:
--
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+unsubscribe@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/5e6d9660-2305-4b72-9f31-537452e7a35dn%40googlegroups.com.
Message has been deleted

andy....@googlemail.com

unread,
Jul 9, 2024, 6:14:05 AMJul 9
to RC2014-Z80

My kit has been sitting in the //TODO pile for a while (years!)
On Sunday 7 July 2024 at 18:00:17 UTC+1 Number of the Beast wrote:
Sorry for “high jacking” your question, but what did you use for the Ferrite capacitor, the one on the BOM is no longer available , and for me the 16pf capacitor is hard to find, can you point me in the right direction to source them?

Op zaterdag 6 juli 2024 schreef 'andy....@googlemail.com' via RC2014-Z80 <rc201...@googlegroups.com>:
Hi,

Just built my TMS9918A, and I see that it’s supported in ROMWBW.  Can anyone help me with these questions?

What the best memory address to use?
Do I need to use NMI / IRQ?
How do I see if the card is being detected?

I have the original Z80 board
MC68B50 Serial board
512 ROM / RAM
Compact flash card
USB storage
Clock
LCD
Front Panel
Plus a host of other cards

--
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.
Message has been deleted

Spencer Owen

unread,
Jul 9, 2024, 6:19:52 AMJul 9
to rc201...@googlegroups.com
On Tue, 9 Jul 2024 at 11:14, Kevin Buhr <kab...@gmail.com> wrote:
Google Groups is acting a little weird, so my previous message got lost. I hope this doesn't end up being a duplicate.

Google Groups has been flagging a lot of posts recently as spam without anything obviously looking like spam about them. I have to approve these posts manually - however, Google will often wait a day or two (sometimes 3 days!) before telling me that there is potential spam to be moderated.  So apologies for the short flurry of posts that have suddenly appeared.

If anybody notices that their message or reply isn't showing up, please feel free to drop me an email and I can take a look and release it before waiting for Google to tell me it is there.

Spencer
Reply all
Reply to author
Forward
0 new messages