Search This Blog

Sunday, July 29, 2018

ChibiTest - VT100 - Testing with Linux utils

Projects / ChibiTerm  Original post date: 05/29/2016

There are bugs that vttest doesn't catch. Errata so far:

  • top works now - with some weird behaviour on scrolling up on the dockstar
  • vi sort of work now. still some weird stuff
  • nano has messed up scrolling.

Linux: top command 
top seems to work now with full 80x40 screen. The screen get messed up sometimes on scrolling up when I hold down the cursor key. I don't know if my not implementing XON/XOFF on my transmit side might be messing it up. It works fine for Linux running in a VM on a PC.

Found a bug in the cursor positioning code. Somehow I didn't pass the parameter correctly. nano looks less messed up.


Test Setup

I am running my test on Arch Linux on my Dockstar set up to test out the VT100 implementation.

To set terminal type and use 40 rows:

export TERM = vt100

stty rows 40

What I have done is to split off the serial RxD signal to the RxD on my PC. I can use and compare the results inside a terminal program or log the raw control codes to a file.

Programmer's Notepad does a good job formatting the control codes in the log files. I can use copy/paste to send the control codes to the VGA terminal.

Raw Escape code
I can compare the results side by side. This would let me look at the individual escape sequences and see which one(s) I didn't code correctly.

PC terminal on left, ChibiTerm on right
I have notice that my new code starts to miss characters at the edges during scrolls. Increasing the RxD FIFO or decreasing it doesn't seem to be an effect.

Right now the blinking cursor and the position of where the next character are tied together, so there is some last minute patches to get the cursor to stay on column 80. Given that the blinking cursor is actually another task that only get run when cursor changes, it might be better to move that messy code there and not waste CPU cycles.

Right now the priority is to make sure that the control code are handled correctly, so I'll need to come back to this as part of the code clean up.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.