jhallen / exorsim

Motorola M6800 (6800) Exorciser / SWTPC emulator
Other
43 stars 10 forks source link

EXORsim - Motorola EXORciser Simulator

Introduction

EXORsim is a Linux/Cygwin program that simulates a Motorola EXORciser, which was a development system that Motorola introduced in 1975 based on their 8-bit 6800 and 6809 microprocessors. They are analogous to Intel's Intellec development system for their own microprocessors.

http://computermuseum.informatik.uni-stuttgart.de/pics/exor/gesamt.jpg

Image from Computermuseum der Stuttgarter Informatik. Some more pictures of this development system can be found at Pekka Tanskanen's website here.

The EXORciser was influential in the M6800 world:

Documentation for the EXORciser can be found here:

http://www.bitsavers.org/components/motorola/6800/exorciser/

Disk images for the EXORciser can be found here:

http://www.bitsavers.org/bits/Motorola/Exorcisor/

You need to use ImageDisk to extract the binary data from from the .IMD files (requires MS-DOS).

imdu disk.imd disk.dsk /b

Or you can use "imdx" provided in this repository:

./imdx disk.imd

The EXORciser was designed primarily to help you write assembly language programs for Motorola's 8-bit microprocessors, including 6800, 6801, 6805 and

  1. But it also supported some high level language compilers including BASIC, FORTRAN, COBOL, MPL and PASCAL.

The EXORciser could be used without any disk drives. In this case, you would use either a paper tape punch and reader, usually as part of an ASR33 Teletype, or cassette tape storage, for example as included with a TI ASR 733. But it was much more pleasant if you did have floppy drives, such as the EXORdisk-I,-II, or -III. In this case, there were a number of available operating systems:

There was an all-in-one follow-on system called EXORset available in the early 1980s. This system had a built-in terminal, used 5 1/4" mini-floppies and ran "XDOS". XDOS is nearly identical to the 6809 version of MDOS, but with mini-floppy support.

New! EXORsim can now simulate a 6809-based EXORciser as well as the original 6800-based one. It can run both MDOS and MDOS09.

SWTPC

EXORsim also simulates a SWTPC 6800 Computer System, which allows you to run the TSC FLEX operating system.

SWTPC-6800-01)

EXORsim

EXORsim is a terminal program- it's invoked at the UNIX shell and runs in the user's ANSI terminal emulator (such as XTerm). This allows you to use terminal emulator features such as scroll-back. I find this to be more useful than some emulators which run under MS-Windows, but provide only a very rudimentary terimnal.

EXORsim Simulates 6800 CPU and the following peripherals:

Example session

Right now the exbug.bin (or swtbug.bin for SWTPC) files must be in the current directory.

'=' is the MDOS command prompt.


~/exor-1.0$ ./exor
Load facts file 'facts'
'exbug.bin' loaded.
'mdos.dsk' opened for drive 0 (double sided)

Hit Ctrl-C for simulator command line. Starting simulation...

MDOS 3.05 =

=DIR DRIVE : 0 DISK I.D. : SYSTEM ECUSTOM .CF
MDOSMODE.CF NEWS .SA EDITINFO.SA TOTAL DIRECTORY ENTRIES SHOWN : 004/$04 =

=DIR;S Include hidden system files DRIVE : 0 DISK I.D. : SYSTEM BINEX .CM
LIST .CM MDOSOV0 .SY DIR .CM MERGE .CM RLOAD .CM

. . . etc . . .

TOTAL DIRECTORY ENTRIES SHOWN : 058/$3A

=BASIC FRED Try BASIC interpreter- it requires a filename

MDOS BASIC 2.01 COPYRIGHT(C)- 1977

READY

PRINT "HELLO, WORLD!"

HELLO, WORLD!

READY

EXIT

SAVE(Y/N) N

=RASM MDOS MACROASSEMBLER 3.01 COPYRIGHT BY MOTOROLA 1977

** 02 NAME REQUIRED

=RASM09 M6809 MACROASSEMBLER 02.00 COPYRIGHT BY MOTOROLA 1978

** 02 NAME REQUIRED

=ASM09

AUSTIN,TEXAS--MICROCOMPUTER CAPITAL OF THE WORLD! M6800-M6809 CROSS-ASSEMBLER 2.2 MOTOROLA-AUSTIN INTERNAL USE ONLY COPYRIGHT MOTOROLA 1978

**UNIF. I/O ERROR-STATUS=00 AT 2971

=

You can also emulate a 6809-based EXORciser:

~/exorsim$ ./exor09 Load facts file 'facts09' 'exbug09.bin' loaded. EXBUG09-2.1 detected 'mdos09.dsk' opened for drive 0 (double sided)

OSLOAD...

Hit Ctrl-C for simulator command line. Starting simulation...

MDOS09 3.04 =DIR DRIVE : 0 DISK I.D. : TEST RASM09 .CM XASM .CM PROMPROG.CM EDIT .CM E .CM NEWS .SA TOTAL DIRECTORY ENTRIES SHOWN : 006/$06

Hit Ctrl-C once to access the simulator's debugger prompt.

Hit Ctrl-C again to exit EXORsim, or use the 'c' command to continue simulating.

See the MDOS quick start to see how to use MDOS editors and write simple assembly langauge programs.

Also see EXORsim usage guide for more usage information.

SWTPC FLEX

To simulate SWTPC instead, run with the --swtpc option:


~/exor-1.0$ ./exor --swtpc
Load facts file 'facts'
'swtbug.bin' loaded.
'flex.dsk' opened for drive 0 (tracks=80 sectors=72)

Hit Ctrl-C for simulator command line. Starting simulation...

FLEX 2.0

DATE (MM,DD,YY)? 02,07,11

+++

You can get FLEX2 disk images here:

http://www.flexusergroup.com/flexusergroup/fugdflx2.htm

https://deramp.com/downloads/swtpc/software/FLEX/FLEX%202.0%20and%203.0%20Disk%20Images/

Build instructions

  1. Make a clone of this repository

  2. (Linux)

    sudo make install

  3. (Cygwin) "run as administrator" the Cygwin terminal, then:

    make install

This will install the binaries in /usr/local/bin and install the data files in /usr/local/share/exorsim. When you run exor or exor09, the default drive 0 disk image is copied to $HOME/.exorsim.

The search order for data files is:

  1. Current directory
  2. $HOME/.exorsim
  3. /usr/local/share/exorsim

Utilities

A number of utilities are built in addition to "exor":

mdos    This provides file access to MDOS diskette images

edos    This provides read-only file access to EDOS-II diskette images

unasm   This is a stand-alone 6800 disassember

imdx    Utility to extract disk images from .imd files
    (so that you don't have to run MS-DOS)

lpf Convert ASCII line printer output (66 lines per page) to
    PostScript.  Then use ps2pdf to generate a .PDF file.

Blank disks

sblank.dsk  Single sided blank disk with filesystem installed (DOSGEN ;U)

dblank.dsk  Double sided blank disk with filesystem installed (DOSGEN ;U)

Links

MDOS quick start
MDOS reference
MDOS technical information
EXORsim usage guide
MPL language
EXORterm info
Notes