Hi b9,
No, I'm sure when I added T200 emulation mode, I only implemented the
subset of commands from the HD61830 controller chip that were actually
being used by the ROM. Those other features would need to be added
specifically (i.e. any addiitonal I/O ports added (there probably aren't
any) and then code to detect and implement the command sequences.
Would also need code to test those additions.
Ken
On 2/25/26 8:59 PM, B 9 wrote:
I just found out that James Yi at one point documented some of the
things he figured out about the HD61830 LCD Controller in the file
LCDIO.200
<https://github.com/LivingM100SIG/Living_M100SIG/blob/main/M100SIG/Lib-10-TANDY200/LCDIO.200>.
Is Virtual T supposed to be able to do things like:
* Change how many pixels wide each character is.
* Change font to double-height or half-height.
* Adjust the screen darkness programmatically.
* Position any arbitrary byte in the LCD’s 8K of RAM as the top-left
character on screen.
Thanks,
—b9
On Tue, Feb 24, 2026 at 7:54 AM B 9 [email protected]
<https://mailto:[email protected]> wrote:
On Sat, 21 Feb 2026 at 10:46, B9 <[email protected]> wrote:
(Note: I may ALSO be confused about how the Hitachi LCD works!)
On February 21, 2026 11:08:41 AM PST, Peter Vollan
<[email protected]> wrote:
If you think there is a processor chip built into the LCD,
then, yes, you are.
Thanks for the clarification, Peter! You are correct, the HD61830B
<https://www.displayfuture.com/Display/datasheet/controller/hd61830b.pdf>
LCD controller is not a programmable processor. Still, it is a
pretty nifty chip with a rich instruction set
<https://www.delta-components.de/products/infos/lcd-graphic/HD61830/8.htm>.
It can access up to 64K of RAM, generate characters (from internal
or external ROM) for a super-fast text-only mode, scroll the
entire screen horizontally or vertically at the pixel level, and
set dots using xor
<https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/xor/https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/xor/>
for Qix lines.¹
If I understood Ken correctly, Virtual-T does implement the LCD
controller chip at a low-level, so now I am wondering why these
programs by James Yi — which access the HD61830 chip using OUT 254
and OUT 255 — don't work:
1. LCDTXT.200
<http://LCDhttps://github.com/LivingM100SIG/Living_M100SIG/blob/main/M100SIG/Lib-10-TANDY200/LCDTXT.200TXT.200>:
Demo
of Tandy 200's "text" mode
Uses the text mode of the 200's LCD driver chip to display
its internal
character set. T200 normally runs in graphics mode all the
time. When you
run LCDTXT.CO <http://LCDTXT.CO>, created by this Basic
loader, it displays the character set.
Then press SHIFT to display a text file in memory. Then
release SHIFT to
display them alternately - that shows how fast the whole
screen can be
updated. Finally press SHIFT again to exit.
2. EFFECT.LCD
<https://github.com/LivingM100SIG/Living_M100SIG/blob/main/M100SIG/Lib-10-TANDY200/EFFECT.LCD>:
Display double-height characters and scroll left.
By using out 255 and out 254, James Yi found some
interesting screen effects.
Program includes two examples. By assigning #0-16 to out 255
and #0-127 to out 254,
LCD can be controlled. It might or might not work on M100.
3. SCROLL.200
<https://github.com/LivingM100SIG/Living_M100SIG/blob/main/M100SIG/Lib-10-TANDY200/SCROLL.200>:
This program uses OUT to achieve a smoothly scrolling effect.
Do these work for other folks under Virtual-T? Is my version too
old? Did I compile it incorrectly?
Thanks,
—b9
Footnote 1: Actually, I didn't see XOR mentioned in the
documentation, but that seems to be what Google Translate says for
this blog post
<https://pocketgriffon-hatenablog-com.translate.goog/entry/2021/07/08/081305?_x_tr_sl=ja&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp>
from "Pocket Griffon".