Files
vt1200/dwt/notes/REAL_UNIT.md
T

3.2 KiB
Raw Blame History

First contact with the real VT1200

Date: 2026-10-18. Terminal at 100.103.100.103 (static IP, no BOOTP), reached from host 100.103.255.254 on enp197s0f3u1.

Read-only throughout this note — no poke, no jump.

Results

check result
TCP 771 open
opcode 7 challenge (flag 0x7F) sent, computed reply accepted, Done\n\0
peek 0x3F200000 (8 B) e9 7a e2 f5 aa aa 55 55 — matches vt1200_v22.bin
peek 0xAECE0 (1 B) bd — message classes 0,1,2 admitted (emulator: 05)
peek 0x1E8BA0 (4 B) 0x018BF1B0 bits = 3,251,638 bytes free in the heap
screenshot over peek dwt/evidence/real-unit-canvas.png

The screenshot shows the live Terminal Manager V2.2: Ethernet 08-00-2B-16-4B-5A, IP 100.103.100.103, LAT LAT_08002B164B5A, and five Debug connection from IP host 100.103.255.254 lines in Messages — one per connection made here. That is the read primitive working on real hardware.

Two differences from the emulator, worth knowing

  1. The real unit challenges opcode 7. The emulator only challenges opcodes ≥ 2. A plain liveness check therefore exercises the challenge too, and its success is additional evidence that dwt/challenge.py matches the shipped image.
  2. Message filter is 0xBD, not 0x05. Levels 0, 1 and 2 are admitted on the real unit; the emulator only admitted 0 and 3.

Geometry

The raw VRAM canvas is 1024×1024, captured correctly. The visible screen is 1280×1024, with the canvas at x=192; dwt/screenshot.py --screen uses the emulator's 1280×901/offset-192×36 defaults and will misplace the bottom on the real unit. The raw canvas is the authoritative artifact; for a faithful screen image use --screen-width 1280 --screen-height 1024 --offset-x 192 --offset-y 0 once the vertical origin is measured.

Next

The remaining unproven step on this unit is the write path: poke/jump and then the COFF loader + create_process. The loader already refuses a target outside a free-list block (status 8), so a first attempt with marker.coff will tell us whether the linked ranges are free before anything runs.

Display geometry and background (measured)

  • Framebuffer 1024×1024, 128 bytes/row, LSB-first. A 160-byte pitch shears; 128 bytes is coherent. The 160-byte figure is the total raster (1280/8), not the memory pitch (RENDER_REPORT.md).
  • Visible raster 1280×1024 (monitor OSD: 77.2 kHz / 73 Hz; Samsung SyncMaster 770 native 1280×1024). The 1024-wide canvas is displayed 5:4, so dwt/screenshot.py --stretch 1280x1024 matches the screen. --screen's emulator 1280×901 geometry pads/crops and looks line-doubled.
  • The 101010 background is real data, not a decode error. It is a 50% stipple: rows alternate 55 (01010101) and ff. The root background has a setting; setting it to 100% white changed the root to solid ff (verified by a fresh grab). The Terminal Manager window kept its own stipple, so its window background is a separate setting (or was taken at creation).
  • The bottom message box Ethernet Port Error - 24 is present in VRAM; it is a real terminal error, not a capture artifact.