Oh, I think maybe you read something into my message that I didn't intend.

I was more giving advice on the changes you would need to make to the existing code vs. offering up services.  VirtualT is open source such that anyone can make updates.  I don't have anywhere near the amount of time available it would take to implement and test T200 display features like the ones you described (though the last one about positioning any byte in RAM as the top is already there).

Ken

On 2/26/26 7:25 PM, B9 wrote:
Thanks, Ken! I can make a list of what I've noticed missing and include some programs to exercise the features.

Where should I file the bug report?

--b9


On February 26, 2026 5:00:23 AM PST, Kenneth Pettit <[email protected]> wrote:

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


Reply via email to