STEM - Stream Terminal Emulator for the BBC Micro B, B+ and Master computers ============================================================================ STEM is a ROM-based emulator for the DEC VT102 and VT52 terminals. Unlike many other terminal emulators, it is not intended for use with a serial connection to a remote system; instead, it intercepts the operating system vectors to provide terminal emulation for programs running locally. This works for programs running under the native Acorn operating system (referred to as 'MOS' from here on) - the demonstration and test suite is an example of this - but this is not generally useful, as programs written to run under MOS naturally use the MOS VDU sequences to control the display. STEM is mainly useful with second processors running non-Acorn-specific applications. For example, a CP/M application may offer the ability to run using a variety of different terminal types as standard, but it is unlikely to support the MOS VDU sequences. By using STEM to provide a VT102 or VT52 emulation, the application can be run using the Acorn Z80 second processor without needing to be patched. STEM may also be useful for applications ported from other systems running on second processors such as the 32016 and ARM. A simple demonstration can be seen at https://youtu.be/t572FRaA0UI. STEM is open source software; see LICENCE.txt for more information. The source code can be downloaded from https://github.com/ZornsLemma/STEM. For binary downloads, as well as any discussion related to STEM, have a look at this thread on the stardot.org.uk forums: http://www.stardot.org.uk/forums/viewtopic.php?f=2&t=10534&p=127899&hilit=ansi+vt102#p127899 Getting started --------------- STEM is provided as a ROM image (filename "STEM") on a DFS disc image (a file with a '.ssd' extension). You can insert this disc image into a virtual drive under any BBC emulator, or you can transfer it on to suitable media for use with a real machine. The disc image contains a number of test and demonstration programs, but none of these are necessary for using STEM. STEM will run from sideways ROM or sideways RAM. The simplest option is to run it from sideways RAM, if you have it. How to load a ROM image into sideways RAM varies with different third-party sideways RAM add ons; on many machines a command such as the following will work: *SRLOAD STEM 8000 Z Press CTRL-BREAK after doing this and then try executing: *HELP You should see an entry like this among the other output: STEM 0.02 STEM Executing: *HELP STEM will produce a list of the * commands supported and their arguments. Most of the time you won't need to give any arguments; you can enable the emulation simply by issuing a *VT102 or *VT52 command. If the ROM needs to claim workspace by raising PAGE, it will tell you to execute the *STEM command - do this, and then retry the *VT102 or *VT52 command. STEM only works in 80 column modes (modes 0 and 3). It supports shadow RAM on the BBC B and Master, but not (yet) on the BBC B+. On the BBC B shadow RAM slows down the emulation noticeably. I recommend that you avoid the use of shadow RAM unless you have a good reason for needing it; if you are using STEM with a second processor the memory taken up in the host by the non-shadow screen is probably not going to be a problem. To see STEM working under MOS, you can try something like this from the BASIC prompt: MODE 0 *VT102 PRINT CHR$(27);"[1;4mThis is bold underlined text.";CHR$(27);"[m" To use STEM with a second processor, you need to execute the *VT102 or *VT52 command with the second processor active - pressing BREAK will disable STEM. With the Acorn Z80 second processor, the easiest way to do this is to press BREAK - this will give you a '*' command prompt, at which you can enter: *VT102 *CPM to enter CP/M with STEM enabled. Alternatively you can use the STAR.COM utility to execute *VT102 from within CP/M. Demonstration/test suite ------------------------ The disc image containing the ROM is bootable and contains a number of demonstrations and test programs. The test programs are only likely to be of interest if you plan to make changes to STEM yourself. Additional documentation ------------------------ More information about STEM can be found in the 'doc' directory: credits.txt lists the various people and programs who provided help during development. function-key-strip.* is a function key strip you can print and cut out; it shows how the red function keys are used to emulate keys missing on the BBC keyboard compared to the real VT102 keyboard. building.txt contains some notes on how to build STEM from source. coding-conventions.txt contains some notes on the coding style used. todo.txt contains some ideas for future enhancements. Contact details --------------- STEM was written by Steven Flintham; you can e-mail me at stem@lemma.co.uk, although general questions and comments should probably go to the stardot thread mentioned above. vi: tw=79