[HN Gopher] VT100 Machine Emulator in JavaScript
       ___________________________________________________________________
        
       VT100 Machine Emulator in JavaScript
        
       Author : DiabloD3
       Score  : 72 points
       Date   : 2022-01-31 13:10 UTC (9 hours ago)
        
 (HTM) web link (www.pcjs.org)
 (TXT) w3m dump (www.pcjs.org)
        
       | Beki23 wrote:
        
       | krallja wrote:
       | - F9 to enter setup
       | 
       | - 4 to switch to Local mode
       | 
       | - Shift+S to save setup
       | 
       | - F9 to exit setup
       | 
       | - Type something. Say hello!
       | 
       | - Ctrl+H for backspace, Ctrl+J for a linefeed, Ctrl+N or Enter
       | for a newline
       | 
       | Also, the "VT100 connected to an IBM PC AT" link above is pretty
       | remarkable, to me - I always used PC-DOS via the default
       | framebuffer, so I didn't know this was possible!
        
         | gpvos wrote:
         | On Firefox, F9 switches to reader mode. To disable, go to
         | about:config and set reader.parse-on-load.enabled to false.
         | Reload the page.
        
         | billforsternz wrote:
         | Ctrl+M (not Ctrl+N) for a newline surely. 0x0a is line feed,
         | 0x0d is carriage return, J is the 10th letter of the alphabet,
         | M is the 13th.
        
         | tiborsaas wrote:
         | How can you make it do anything with the "VT100 connected to an
         | IBM PC AT" mode?
        
           | tyingq wrote:
           | _" The DOS command CTTY COM2 uses the VT100 for console
           | operations"_
           | 
           | Or you might have some other DOS software listening on the
           | serial port. Kermit, some BBS, etc.
        
             | tiborsaas wrote:
             | I should have added that I never used terminals before, so
             | that little hint is unfortunately is not that helpful for
             | me.
             | 
             | Edit: nevermind, I got it, it's like SSH-ing to a server.
        
               | anthk wrote:
               | More like a physical and real terminal instead of a
               | terminal emulator, displaying up a shell once the
               | computer sends you the connection bits here and there.
               | 
               | Also you could interface modems by serial and you could
               | send commands over the wire. More like telnet than ssh.
        
           | blueflow wrote:
           | Setup that i use for a vt520 on com1, 9600 baud, 8 bits, no
           | parity:
           | 
           | C>MODE COM1:9600,N,8,2
           | 
           | C>CTTY COM1
           | 
           | You can also do it from the autoexec.bat if you want to.
        
         | jsmith45 wrote:
         | > Ctrl+H for backspace, Ctrl+J for a linefeed, Ctrl+N or Enter
         | for a newline
         | 
         | It is also worth pointing out that having the enter key send a
         | CR+LF pair instead of just a CR is a setup option in the
         | terminal.
         | 
         | > Also, the "VT100 connected to an IBM PC AT" link above is
         | pretty remarkable, to me - I always used PC-DOS via the default
         | framebuffer, so I didn't know this was possible!
         | 
         | I'm not terribly surprised that DOS can interface with a serial
         | console, although I was not specifically aware of the feature.
         | 
         | One thing that is rather interesting about this is that you can
         | easily tell if an application is using the DOS IO routines for
         | IO (because those get sent to the COM port), vs interfacing
         | with the VGA hardware directly since that appears in the VGA
         | framebuffer.
         | 
         | For example, I tried installing windows 1.0 in the emulator,
         | and all the setup screens bypassed the COM port for both input
         | and output until it reached the very end, and then it output a
         | few final messages via DOS IO commands (so they went to the
         | terminal).
        
         | bitwize wrote:
         | Oh yes, DOS could redirect to a serial link using the CTTY
         | command, like CTTY COM1 or CTTY AUX.
         | 
         | Many DOS applications, however, wrote directly to text video
         | memory at b0000h. Those... wouldn't work over serial link. You
         | might be able to get WordStar to work using its ANSI.SYS
         | display installation.
        
           | ddalex wrote:
           | as I just discovered running fdisk on the default disk a>
        
       | musicale wrote:
       | I didn't realize that the famous VT100 terminal actually had a
       | full 8080 microcontroller.
       | 
       | Has anyone tried adding extra hardware to a VT100 to enable it to
       | run CP/M using the terminal's own 8080 CPU? ;-)
       | 
       | Then again you could add a Raspberry Pi inside it that would
       | emulate most systems of that era faster than the original
       | hardware - not to mention being able to run BSD or Linux natively
       | and fairly capably.
       | 
       | edit: apparently the VT100 has an internal "Standard Terminal
       | Port" connector which you could plug expansion hardware into,
       | like a PDP-8 or CP/M board... or a modern microcontroller board
       | like a Pi or a BeagleBone:
       | 
       | https://www.brendanp.com/vt100-beaglebone-mod/
        
         | GekkePrutser wrote:
         | It did, the earlier ones like the VT05 (and perhaps the
         | VT50/52) didn't as far as I recall. They had a ton of boards
         | with a whole lot of discrete logic! A bit like the early
         | computers where the 'processor' was not a chip but also several
         | boards with discrete logic chips.
         | 
         | As a result, those earlier terminals are even harder to emulate
         | as there wasn't really much 'firmware' and definitely no
         | standard CPU architecture. However those were pretty barebones
         | anyway in terms of control codes.
         | 
         | I loved the VT05's design though. It looks really star trek. It
         | won't fit on a modern desk because of the depth (all those
         | custom boards take up a ton of space) but it looks so cool.
         | 
         | http://www.columbia.edu/cu/computinghistory/decvt05.jpg
        
         | msgilligan wrote:
         | When I was a high school senior in the 1980s I worked for a
         | company making a VT100 clone (it also emulated several other
         | popular terminals) The processor was a 6502. I can't remember
         | how much RAM it had, but it had an 8k ROM.
         | 
         | When I started on the project we were using 12k of EEPROM. The
         | lead developer and I spent about a week optimizing the firmware
         | to reduce the ROM requirements to 8k. For debugging we used
         | logic analyzer traces. Fun times!
         | 
         | I remember that we called this a "smart terminal" because it
         | had so many functions.
        
       | aap_ wrote:
       | check https://github.com/larsbrinkhoff/terminal-simulator for a
       | similar thing.
        
       | ape4 wrote:
       | There was a VT320 which was more advanced - might as well emulate
       | that. https://en.wikipedia.org/wiki/VT320
        
         | dboreham wrote:
         | This isn't an emulation. They're running the original firmware
         | on an emulated 8080.
        
           | monocasa wrote:
           | That's like saying Dolphin isn't an emulator as it runs the
           | original firmware on an emulated PowerPC.
        
           | GekkePrutser wrote:
           | Yeah it would be great to see that done for a more modern VT
           | too though!
           | 
           | Especially because a 100% perfect emulator doesn't really
           | exist.
        
           | anthk wrote:
           | It is. Emulators emulate the CPU everywhere.
        
           | blueflow wrote:
           | I think you meant something like "This isn't an
           | communication-level VT emulation".
        
       | buttocks wrote:
       | Fun with terminals for those who have never experienced them:
       | 
       | Run Sim390[1] with MUSIC/SP. Then get a TN3270 virtual terminal
       | software to connect to it.
       | 
       | 3270 is screen-based--think of it like filling out web forms and
       | submitting, then receiving the results. This is far different
       | than line-based terminals (e.g. your typical *nix TTY).
       | 
       | Compared to IBM's terminals, DEC's terminals seem completely
       | unremarkable.
       | 
       | [1] https://www.canpub.com/teammpg/de/sim390/index.htm
        
         | TedDoesntTalk wrote:
         | In the 90s , I wrote Windows C++ software that talked to
         | hundreds of different 3270 applications in a very difficult
         | attempt to screen-scrape them and display the data in a modern
         | windows UI. It was difficult. Then take user input and submit
         | it as a form back to the 3270 application.
         | 
         | It would have much easier if the applications were TTY line-
         | based.
        
           | throwanem wrote:
           | In 2000 and 2001, I used software like that ("TSS") as a
           | customer service rep for MBNA, which has since been bought
           | out by Bank of America.
           | 
           | It was incomplete, as anything offering a WinForms GUI over a
           | 3270 client would necessarily be, but still very useful. A
           | 3270 terminal emulator was also available; most folks quickly
           | learned to use it for tasks the GUI didn't support, and some
           | of us ended up preferring it for some tasks the GUI _did_
           | support since it tended to be much more accommodating of
           | muscle memory.
           | 
           | In retrospect, it must've been a real engineering challenge
           | to integrate with a 3270 client whether via screen-scraping
           | or the wire protocol. Like HTML, but with structural
           | information only designed to be parsed by the terminal, or in
           | the screen-scraping case with no structural information at
           | all.
        
       | brian_herman wrote:
       | https://bellard.org/jslinux/vm.html?cpu=riscv64&url=fedora33...
       | 
       | Also try this fedora 33 running with XWindows running under
       | riscv64 by the famous Fabrice Bellard.
        
       | Mizza wrote:
       | Rogue in the browser!
       | https://www.pcjs.org/software/pcx86/game/other/1985/rogue/
       | 
       | This is awesome, I've played Roguelikes but never the original.
       | Cool art and transitions, feels really similar to Brogue(CE),
       | which is still being maintained!
        
       | mikewarot wrote:
       | I long to run my own emulated VAX/VMS system, but the hobby
       | licensing system is no more.
       | 
       | VT100 connected to a VAX would be amazing.
        
         | slavapestov wrote:
         | > I long to run my own emulated VAX/VMS system, but the hobby
         | licensing system is no more.
         | 
         | You can set the clock back to the time when the license was
         | valid and it all works. There is also a key generator floating
         | around.
        
       ___________________________________________________________________
       (page generated 2022-01-31 23:02 UTC)