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, 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". > >
