Whoa, that's cool! The telnet daemon runs automatically with Virtual-T? 

For the threads/deadlock issue, does it work reliably as long as no operator is 
at the graphical console? 

--b9


On December 22, 2025 7:15:30 PM PST, Kenneth Pettit <[email protected]> wrote:
>Seems my VirtualT socket interface issue was mostly just \r\n line ending 
>issues (though "telnet mode" still not working for some reason).  But there 
>also seems to be some tread dealock issues lurking somewhere because sometimes 
>the LCD gets some junk on it and X prints errors like below, and then VirtualT 
>hangs (most likely on a semaphore wait that's in a deadlock)
>
>X_ChangeGC: BadPixmap (invalid Pixmap parameter) 0x0
>X_GetWindowAttributes: BadLength (poly request too large or internal Xlib 
>length error) 0x0
>X_GetInputFocus: BadLength (poly request too large or internal Xlib length 
>error) 0x0
>X_GetWindowAttributes: BadLength (poly request too large or internal Xlib 
>length error) 0x0
>
>
>==================================
>Example run (this could be turned into an agentic workflow once deadlock is 
>resolved)
>==================================
>
>(Launch VirtualT in another Linux terminal)...
>
>ken@andromeda# telnet localhost 2023
>Trying 127.0.0.1...
>Connected to localhost.
>Escape character is '^]'.
>help
>Help
>====
>  bye
>  clear_break(cb) address
>  cold_boot
>  debug_isr(isr) [on off]
>  dis address [lines]
>  exit
>  flags [all S Z ac P=1 s=0 ...]
>  halt
>  in port
>  key(k) [enter cr f1 esc ctrl+c shift+code+a "Text" ...]
>  kill filename
>  lcd_ignore(li) [none (row,col)-(row,col)]
>  lcd_mon(lm) [on off]
>  list_break(lb)
>  load filename
>  model [m10 m102 t200 pc8201 m10 kc85]
>  optrom [unload, filename]
>  out port, value
>  radix [10 or 16]
>  read_mem(rm) address [count]
>  read_reg(rr) [all A B h m DE ...]
>  read_rex
>  reset
>  run
>  screen_dump(sd)
>  set_break(sb) address [main opt mplan ram ram2 ram3 read write]
>  speed [2.4 friendly max]
>  status
>  step(s) [count]
>  step_over(so) [count]
>  string address
>  terminate
>  write_mem(wm) address [data data data ...]
>  write_reg(wr) [A=xx B=xx hl=xx ...]
>  x [lines] (short for "dis pc")
>Ok> speed
>2.4
>Ok> speed max
>Ok> speed
>max (484.971 Mhz)
>Ok> screen_dump
>Dec 22,2025 Mon 19:02:21   VirtualT 1.8
> BASIC     TEXT      TELCOM    ADDRSS
> SCHEDL    TRIANG.DO TRIANG.BA MIAM.BA
> ASCPIX.CO -.-       -.-       -.-
> -.-       -.-       -.-       -.-
> -.-       -.-       -.-       -.-
> -.-       -.-       -.-       -.-
>Select: _              10670 Bytes free
>Ok> key enter
>Ok> screen_dump
>TRS-80 Model 100 Software
>Copr. 1983 Microsoft
>10414 Bytes free
>Ok
>
>
>
>
>Ok> lcd_mon on
>Ok> key "list" enter
>event, lcdwrite, (8,1),list
>event, lcdwrite, (8,1),10 FOR X=1TO5:PRINTX:NEXT
>event, lcdwrite, (8,1),Ok
>key "run" enter
>event, lcdwrite, (8,1),run
>event, lcdwrite, (8,1), 1
>event, lcdwrite, (8,1), 2
>event, lcdwrite, (8,1), 3
>event, lcdwrite, (8,1), 4
>Ok> event, lcdwrite, (8,1), 5
>event, lcdwrite, (8,1),Ok
>Ok> read_reg all
>A=1 F=68 B=0 C=0 D=1 E=6 H=117 L=81 M=1 PC=30014 SP=57418
>Ok> radix 16
>Ok> read_mem 0 32
>C3 33 7D 4D 45 4E 55 00 7E E3 BE C2 46 04 23 E3 C3 58 08 EB 2A EB F6 EB 7C 92 
>C0 7D 93 C9 3E 20
>Ok>

Reply via email to