Amiga Format
This article was originally written by Simon N Goodwin for Amiga Format magazine, and is used by permission of the joint copyright holders. It should not be copied any further without written permission. The free emulators mentioned were included on the accompanying CD with the magazine, and are generally available - often in updated form - from this site. The text is as originally submitted to the magazine - which means there are some differences, mostly extra text which was cut to fit into the pages available - with the addition of hyperlinks to new or updated information which has since become available. This approach has been taken to preserve the structure of the original series, while making new information readily available. Simon welcomes comments from readers, care of Tomas Amsrud, who has generously prepared the material for publication on the Internet.
PrevNext
Main

AER


Enter the Dragons

Simon Goodwin surveys emulators
for Motorola and Tandy micros


Before the IBM PC, long before the Amiga, three companies dominated personal computing. Commodore and Apple we've met here before but the third - Tandy - may come as a surprise. Tandy not only had their own best-selling machines, they were successfully cloned by other firms, with a little help from Microsoft. Today, these can be faithfully emulated by your Amiga.

This column examines Motorola's own contributions to the home computer market, and the Dragon range, among the best-selling British-made micros of the eighties. We focus on emulators that run code for the 6809, Motorola's ultimate eight bit processor, launched shortly before the 68000 which eclipsed it.

The 6809 outclassed earlier eight bit chips, but it arrived late and short of software to make really good use of it. Nonetheless it's a lovely chip to program, and Motorola released a freeware 6809 cross-assembler which runs on the Amiga. 6809 features which mark it out from the eight bit herd include hardware multiplication, position independent code, multiple stacks and index registers, and an orthogonal mix of eight and sixteen bit operations.

The 6809 was used on business systems running FLEX and home computers from Tandy and Dragon Data. Tandy's Color Computer or 'CoCo' range boasted colour graphics and sound from other Motorola chips. It was soon expanded from 4K to 16K and eventually 64K of memory.

CoCo graphics are unexceptional, with a top resolution of 256 by 192 in two colours - like a Spectrum - falling to a chunky 128 by 192 in four colours, chosen from two fixed palettes. The 32 by 16 character mode allows eight foreground colours on a two-by-two-block grid, but lacks lower case; shifted letters appear in reverse video.

The Dragon, made in Wales from similar Motorola blueprints, is much like the CoCo. It has a parallel rather than serial printer port, and a better-made keyboard. Introduced with 32K RAM, later boosted to 64K, it was a big hit in the UK when stocks of other micros ran short in the early '80s, but struggled later.

DRAGON

DREaM is an impressive first release from Sean Sifford. DREaM 1.0b is freeware, and runs on all 32 bit Amigas. It multi-tasks in about 300K of fast RAM and 50K of chip.

There are two versions of DREaM. One uses Copper List tricks to boost graphics speed; the other does things the hard way. You need the latter if you're running mode promotion or have no TV-style 15 KHz display.

DREaM was written on an A500 with an add-on 20 MHz 68020, and is said to run at full speed on that configuration, updating the screen at about 17 Hertz - a third of the full speed. You can adjust this, and the timing of interrupts and text updates, with Workbench sliders. On any A1200 with fast RAM DREaM comes close to full speed, indicating the quality of the hand -coded 6809 emulator and the family resemblance between 6809s and 68000s. On an A4000/040 with the screen update at a full 50 Hertz DREaM rates twice the speed of a real Dragon or Tandy Colour Computer, held back only by Commodore's slow motherboard RAM. On a Cyberstorm Mark 1 it manages eight times the speed of a real Dragon!

There's no way to slow DREaM 1.0b down; even on a quick 68030 some programs are too fast to be usable. You might also want some of your CPU time to be left to other tasks, rather than squandered in frantic 6809 emulation.

Buttons pause and re-start the emulator, or reset and rewind emulated 'tape' files. There's no adapter for real cassettes, but lots of files on the Web. This Dragon 32 emulator is also compatible with most files made on a Tandy Colour Computer and Dragon 64. The 16K system ROM is not included, but there's a converter for ROM files from other emulators.

Keyboard emulation is precise, right down to the annoying way a real Dragon 32 ignores certain combinations of keys if pressed together. You get LST instead of LIST if you type quickly. Real analogue joysticks - standard for Dragons and CoCos - are not supported, although DREaM emulates them with cursor keys and the Amiga digital joystick. This is not always good enough. This restriction stems from the old GamePort system - this emulator will run on Workbench 1.3, unlike most others which require Workbench 2 or 3, but it still needs a 68020 or better.

Printer output is re-directed to an Amiga file, and sound is optional. Dragons use a six bit digital to analogue converter timed by CPU loops, which sounds rough in emulation. You can save or load snapshots of memory contents in DREaM's own DSN format, incompatible with .PAK and D32..D96 files generated by other emulators. Cassette files use the standard .CAS format.

Software Tests

Android Attack loaded and ran fine. It's synchronised to the interrupt so it works at the right speed on fast machines. I had no trouble loading Microdeal's platformer Cuthbert Goes Digging, but it was far too fast to play. Crazy Painter needed an EXEC command after the CLOADM, to get it started. It got the wrong mode in some colour settings.

[MinedOut] Mined Out played perfectly on both 68040 and 68060, in terms of speed, graphics and sound. Moon Cresta was unbelievably, unplayably fast. The Dragon version is monochrome so this is little loss. Return of the Jet-I - a 3D dodger similar to Spectrum Deathchase - was exciting on the 68040 but too fast on the 68060.

Rommel 3D - a Battlezone clone - makes good use of the 6809 and simple but effective vector graphics. I had to disable CPU caches to slow it down to my pace. The platform game Bonka and the Galaxian clone Vultures have speed controls, but still ran much too fast on an unshackled 68060. All the files I found in an appropriate format loaded and ran, but some misjudged the graphics mode, using shaded monochrome in place of chunky colour.

[Bonka] Example files include a smooth starfield, simple BASIC displays of the graphics modes and joystick positions, and speed testers. These work well. Overall this is a fine emulator, well-programmed and documented, but DREaM would be better still if it could read more snapshot formats and allowed speed limiting, which should also improve the sound. Both these enhancements are promised for the next release - I can't wait!

Just before this column was finished Sean contacted me to say that the new version will support Tandy CoCo and Dragon 64 emulation, serial as well as parallel ports, and adjustable speed from 50 per cent to 500 per cent of normal. It should also come with a converter for PAK files.

D32

D32 is another Dragon emulator project, but this one concentrates on the 6809 processor to the exclusion of the rest of the Dragon system. Author Stephen Goodwin (no relation) plans to extend it into a full Dragon emulator, but after three years he's got a long way to go.

You get two programs - ASA, a cross-assembler to generate 6809 code on an Amiga, and the dual-screen 6809 emulator itself. One screen includes the Control Panel, with buttons in place of conventional menus; besides Load, Save, Preferences and About there's a Memory editor, Disassembler, and windows showing registers, stacks and breakpoints.

D32 comes with simple example programs which write text in Dragon style on the second screen. You can re-assemble these with ASA, then test them in the emulator. Documentation comprises short manuals for the assembler and emulator, and a 'Quick Start' text file.

D32 is well presented, as far as it goes, but it has bugs and design weaknesses. It falls over, complaining of an 'illegal function call', when more than five windows are open. The windows cannot be re-sized so it's hard to arrange them tidily on the preset PAL screen. D32 uses self -modifying code without flushing caches, so you must turn them off before running it on any 32 bit Amiga. It also uses the MOVE SR instruction, which processors after the 68000 have to emulate, and takes over the entire system unless you iconify it on the workbench.

Stephen needs to learn more about programming the Amiga processors, screens and windows before D32 can be wholeheartedly recommended. But if you're interested in learning 6809 assembler on an A500, D32 is a good place to start, and may yet develop into a full-blown emulator to rival DREaM.

FLEX

FLEX was the serious operating system on early Motorola-based micros, the counterpart of CP/M on Intel and Zilog systems. Ben Williams' Amiga FLEX emulator is complete and stable, but rather slow on anything less than a 68040 system. It emulates a system with 2K ROM and 62K RAM, and up to four virtual disks from 85K to 16 Megs in size.

The emulator comes with an assembler, disassembler, monitor and BASIC interpreter, plus a plethora of FLEX commands. It emulates a scrolling terminal, ACIA serial port and fast DMA disk controller, and redirects printer output to the Amiga. The documentation is good, although the files have no icons - if you dislike typing commands, FLEX is not the system for you!

If you know FLEX and own a fast Amiga, this is a great emulator. The scrolling green screen is authentic but unlike to attract new converts. FLEX is tough going for anyone brought up on mice and bitmapped graphics.

TRS-80

Contrary to past captions I cut my programming teeth on an Apple 2 and in 1980 I bought my own Video Genie - a Hong Kong clone of Tandy's first TRS -80. Even in those days, big manufacturers attracted clones, and there were several unlicensed versions of Tandy's first micros.

[TRS80 Model1] The Amiga TRS-80 emulator is nominally for a Model 3, but this is essentially a cosmetic distinction - it will run almost all Model 1 programs. The original was written in compiled C and hence slow, so Canadian John Fehr re-wrote it in assembler, boosting it to full TRS-80 'speed' on most Amigas with 32 bit fast memory.

TRS-80 displays show 16 lines of 64 characters, or 128 by 48 graphic blocks. The emulator pads this with a panel at the right hand side, allowing you to save and load 48K memory snapshots, assign up to four files for disk emulation, pause or quit.

If you liked the original TRS-80 you'll like this emulator. It's reliable, small, fast and easy to use, although short of documentation. There are lots of compatible files on the Net, and it ran everything I threw at it.

ROM VARIANTS

TRS-80 and Dragon emulators are not shipped with ROMs, for understandable reasons - much of the code is copyright by Microsoft, a company with a thriving legal department... You need the ROM files to run the emulators, and luckily it's not too hard to get hold of them, in one of three ways. ROMs appear on Emulator Web pages and CD compilations, or can be transferred from a real Tandy or Dragon to your Amiga. This is straightforward if your old machine has a serial port or floppy disk drive, though it requires programming at the 6809 end.

Ready-converted ROM files are easier to use, but there are many variants and you need to know which you've got. Tandy's original CoCo had an 8K BASIC, soon augmented with sorely-needed graphics commands. Emulators expect the 16K Extended version. Dragon ROMs are the same size but with routines logically arranged rather than split into two 8K chunks.

The Dragon uses the same keyboard ports as the CoCo, but wires them differently so key codes come out in scrambled order. A table on the CD (dragon.hardware.text) explains the difference. You can usually play games that expect a different mapping, but the key positions may be irritating (e.g. the 'down' key above the 'up' one) so joystick control is preferred. If you want to enter messages or programs you really need the right ROM for your emulator.

The new DREaM supports both Tandy and Dragon key mapping, and can run the Dragon 64 ROM. That's preferable for keyboard entry as it has auto-repeat and full key rollover, unlike earlier ROMs which ignored certain key-press sequences. However the D64 serial port is not yet emulated.

The Z80-based TRS-80s were shipped with two versions of Microsoft BASIC - the trivial 4K 'Level 1 BASIC' and the much-improved 12K 'Level 2' version. A Level 1 ROM image should work with a TRS-80 emulator, as it expects the same hardware, but in practice it's not much use as there's little Level 1 software around and the language is a subset of the much improved Level 2. Error messages in Level 1 are neat, though: all possible problems are boiled down to one of three reports: WHAT?, HOW? and SORRY!

12K ROM images could come from either a TRS-80 Model 1 or Model 3; the Model 2 was a CP/M system without ROM BASIC. Clones like the Video Genie and PMC-80 used slightly-patched Model 1 ROMs. The differences are slight, and the Amiga TRS-80 emulator comes with software to patch old ROMs to the Model 3 standard.

The all-in-one Model 3 arrived when Tandy's original sprawling system flunked US FCC (Federal Communications Commission) interference tests - no surprise as it loudly broadcasts on most bands from Medium Wave upwards - I used a portable radio to check if mine had crashed during intensive number -crunching sessions!

Tandy added a hap'orth of tar, in the form of 128 bytes of video memory, to implement a lower case display - in a cent-saving measure, the original Model 1 had 1K of seven bit RAM for its all-capitals display. This confuses some old programs, but most work with seven and eight bit video RAM.

Places to go, things to see
TRS-80 emulators - ftp://ftp.amigalib.com/pub/be/misc/
TRS-80 programs - ftp://ftp.kjsl.com/tandy (11pm to 6am GMT)


On AFCD 17
This month's AF Cover CD contains ready-to run Flex and D32 emulators, the latest DREaM and TRS-80 Level 3 emulators (without ROMs), PD Dragon software, a freeware 6809 Amiga cross-assembler from Motorola, and lots of 6809, CoCo and Dragon documentation. The update files for PC-Task and PCX can also be found in the emulation drawer.
PC EMULATION NEWS
Both PC-Task and PCX have been improved, as predicted in our recent review. The changes bring the emulators closer together - PCX gains a 'VGA_Direct driver' for graphics cards, while PC-Task 4.2 adds maths coprocessor support. Both require an expanded Amiga with appropriate hardware for you to see any benefit. The updates are available free from the suppliers, Aminet and on the AF cover CD.

Web page design Copyright © Tomas Amsrud
Articles Copyright © 1996-2002 Simon Goodwin