phooky / VT100-Hax

DEC VT100 terminal ROM hacks for Retrocomp2014.
42 stars 5 forks source link

Some nice emulator patches #1

Closed rdebath closed 9 years ago

rdebath commented 9 years ago

Love your hardware "hax"; but I'm more interested in the software.

I Googled for a VT100 emulator using the original ROMs and this seems to be exactly what I want.

I started it up, (Hit the space bar to get it running, escape to start typing) forked off a shell onto the slave side of the PTY but the 8080 isn't listening. It seems to be stuck in loopback mode (local) ASCII and ^J working fine (No ^M, I might need that later).

After digging around in the source and online I was able to get into setup mode, and used the '4' key to switch it into 'online' mode.

It's working!

But it wasn't easy to startup, so I got the NVRAM routines working off a preconfigured setup. It now starts online, in VT100 mode with jump scroll.

The Online/Local 'LED's were flipped. -- fixed.

It didn't startup talking to anything, initially I put something on the pty from another session, but that's annoying too -- so it now starts up a shell on the slave side of the pty for itself.

The video memory can hold control characters, if you start using VT-Graphics it messes up the emulator display big time. Fixed this for the most part but the code is probably ncurses specific.

There was no flow control on the virtual serial line. Characters get lost if the PTY posts things too fast to the 8080. XON/XOFF didn't help presumably because the buffer is just too small. So I simulated an XON/XOFF controller in pusart.cpp.

The mapping for the keyboard characters was weird and there was no mapping for most of the keyboard control characters. I made quite a few changes here and mapped most of the keyboard to something reasonable.

I've slowed down the CPU emulation. It looks like the code built into the 8080 emulator was doing nothing so I added something that should be reasonably stable. Problem is I'm not sure what speed the CPU should be clocked at. It appears to be 1MHz, but you said 2.7MHz ?

Now, I've made these changes, but there's other things I like to see; specifically I would like to get an AVO version and possibly some way of dumping out a true bitmap image of the screen. These need ROM images, specifically the character generator ROM and (probably) the extension ROM on the AVO board. Do you have those ROM dumps ?

Anyway, it's lunch time, see ya.

phooky commented 9 years ago

Awesome! Thanks so much!