# Examples

Lots of eye candy here - we show examples of :-

- MTX BASIC
- Games supplied as .MTX files
- Games supplied as .RUN files
- Programs supplied as .BAS files
- Memotech specific CP/M games
- Memotech specific CP/M programs
- Generic CP/M programs

Where the examples show using `-vid-win`, you'll probably want to use `-vid-win-big` to get a bigger window.

The example command lines are written assuming you have MEMU on the PATH, and you're in the right directory to find the files.

Where I have had to repair the original game file, I mention the nature of the repair, and I include both the patched and original file in the MEMU distribution.

## MTX BASIC

To run MTX BASIC :-

    $ memu -vid-win -snd-portaudio

BASIC and PANEL

Another (longwinded) way to enter MTX BASIC, is through the CP/M `MTX.COM` program :-

    $ memu -vid-win -snd-portaudio MTX.COM

## Games supplied as .MTX files

In MEMU, tape files can be run using commands similar to :-

    $ memu -vid-win -snd-portaudio AGROVATA.mtx
    LOAD ""

Most autostart, but you'll need to `RUN` some of them.

If there are multiple alternative versions of a tape file, and you need to use a particular one, you'll see `[a1]` or similar in the Title column.

Here is a selection of those that work in MEMU. I remember seeing about half of these back in the day, the rest are new to me :-

Title | Picture | Video | Comments
--- | --- | --- | ---
Adventure Quest |  |  | A text adventure game.
Agrovata |  |  | A Pac-Man variant. Use `AGROVATA.mtx`. Doesn't load properly, must use `GOTO 10` to get it to run. Don't `RUN` it, as that will cause it to save a useless `AGROVATOR.mtx` to disk.
Arcazion `[a1]` `[a2]` |  |  | Like Space Invaders, by Chris Sawyer.
Astromilon |  | youtube | Like Space Invaders, by Andy Southgate. Uses the left joystick, so Z=Left, C=Right, T=Thrust, Space=Fire. So its a good idea to use the `-joy-buttons "ZCT_ "` option if you have a joystick. This game runs in VDP graphics mode 1, which is relatively rare. The original copy of this is corrupt, and as a result it programs illegal VDP register values, and as a result you can't see the lives, score, hi-score and game-over text. However, with a 3-byte patch to set correct VDP register values, it works fine.
Attack of the Killer Tomatoes |  |  | Like Sepulcri Scelerati. Strange keyboard controls - Z and X to turn, A to walk, Q to jump.
Backgammon `[a1]` `[a2]` |  |  | Sold by Continental Software.
Blitz |  |  | A game somewhat like Space Invaders. by R. D. Longshaw. It doesn't autostart, you must `RUN` after loading.
Bomber |  |  | Written by Martin Allcorn. This is also available in the form of an FDX Basic file, see below.
Boris and the Bats |  |  | A platform game, sold by Tricom Software.
Bouncing Bill |  |  | Another simple platform game, by Brian Rogers.
Chamberoids `[a1]` |  |  | A great game. By Chris Sawyer.
Chess |  |  | Chess, sold by Continental Software.
Cobra |  |  | A very simple Snakes game, by Xaviersine Audio Products The original file was too short, so I appended some padding to enable to be loaded.
Combat |  |  | A brick-out style game. Bounce the falling orange stars to break the white wall. Avoid or shoot the falling cyan bricks. Falling bricks which hit the green frog vanish. Get through the wall to win.
Comic Bakery |  | youtube | Ported from MSX to MTX by Claus Bækkel.
Cosmic Raiders |  | youtube | A variant of Space Invaders, by P. J. Green, for Continental Software. Seems to crash sometimes. Also seems to corrupt its font. Does this on real hardware as well as in MEMU.
Crystal |  |  | A Rogue like game, by Roope Kaivola.
Dennis and the Chickens |  |  | A platform game. Written by Anthony Ward, for Continental. Written in 40 column text mode, using Noddy for the levels. Left hand joystick or Z,C,B,M.
Dennis at the Circus |  |  | Another platform game. Written by Anthony Ward, for Continental.
Dennis Goes Bananas |  |  | Another platform game. Will need to RUN it after LOADing. Left hand joystick or Z,C,B,M.
Designer |  |  | A graphics designer tool.
Doodlebug Destroyer |  |  | A space shoot-em-up.
Downstream Danger |  |  | By A. Butterfield, for Megastar Games.
Dr. Frankie |  |  | A platform game by Paul M. Grant, for Syntaxsoft.
Dragons Ring |  |  | The copy of this game that I have assumes its running on an MTX500. So you must use PANEL to set LSTPG (=FA7A) to 0, then NEW, before loading it. Or, you can pass the `-mem-mtx500` command line argument. Swordfighting against various adversaries. Not sure who wrote this.
Drive the C5 |  |  | By Stephen Trinder, for Megastar Games.
Duckybod |  |  | The copy of this game that I have assumes its running on an MTX500. So you must use PANEL to set LSTPG (=FA7A) to 0, then NEW, before loading it. Or, you can pass the `-mem-mtx500` command line argument. The keys are strange also. You need to use BRK (=Pause) to get to the start screen, and once you're playing: Z=Left, X=Right, #=Up, /=Down and Return=Jump.
Electronics |  |  | A program to help teach you electronics, by G. Wills.
Fathoms Deep |  |  | A diver game, by Steve Trinder.
Felix in the Factory |  |  | A platform game by Micropower.
Firehouse Freddy |  | youtube | A platform game, by DGC.
First Letters |  |  | A game for preschool kids.
Flummox |  |  | Shoot ships approaching from either side. By Paul Johnson, for Syntax Software. This game writes illegal VDP register values.
Football Manager |  |  | By Addictive Games.
Forth |  |  | Fig Forth by Keith Jones.
Goldmine |  | youtube | A platform game, by Ed Hollingshead, for Continental Software. Similar look to my SMG, but very different to play.
Highway Encounter |  |  | A port of a similar game seen on the ZX Spectrum. By C.Panayi, for Vortex Software. Strange keys: O, P, I, Q, 1.
Hunchy |  |  | By P Wood. Walk along the wall, jumping over arrows, and ring the bell. The original version of this hangs at the introduction screens. It is storing keyboard state at (IY), and it hasn't set the IY register to any value. As it happens, IY=0x0000, ie: in ROM, so the value never changes. My patched version simply ignores keyboard state and skips those instruction screens.
Iceberg |  |  | Like Asteroids, but with the nautical theme, by Brian Rogers.
Jack Flash |  |  | Another simple platform game, like Bouncing Bill.
Jet Bikes |  |  | A TRON style game.
Jet Set Willy |  |  | Successor to Manic Miner, by Matthew Smith. The loader plays music as it (slowly) loads the title screen, even on MEMU, where cassette loads are instantaneous. I've made a patched copy of this with "Quick Load" in its filename that loads the title screen in a couple of seconds.
Johnny Rebel `[a1]` |  |  | A union verses confederates war game.
Karate King |  |  | A martial arts fighting game, by Mike and Chris Bayne, for Megastar Games.
Les Flics |  |  | You get to steal stuff. By M.C.Blyth of P.S.S. Once loaded, start this with `GOTO 3`. Don't `RUN` it, as that will cause it to save a useless file to disk.
Lords of Time |  |  | Text adventure, from Level 9.
MTX DEMO |  |  | The original demo tape.
Missile Kommand |  |  | Missile Kommand, by Chris Sawyer. Once loaded, start this with `GOTO 100`. Don't `RUN` it, as that will cause it to save a useless file to disk.
Manic Miner |  |  | A port of the classic ZX Spectrum game.
Marbles |  |  | Not sure how to play this.
Maxima |  |  | By D. Ritchie, for Personal Software Services. Strange controls: Esc=Left, 1=Right, F5=Fire.
Miner Dick |  |  | The copy of this game that I have doesn't seem to be reliably LOADable. I suspect this could be because the code `LDIR`s zeros over itself. A real Z80 is fine with this, but the Z80 emulation periodically suspends to check interrupts, and afterwards it re-reads the `LDIR` instruction to resume, and its not there any more. Another platform game, like Manic Miner, by Richard Aplin from Micro Power.
Ms Snapman |  |  | A variation on Pac-Man, by Johan Meiring.
Munch Mania |  |  | A Snake game, by Jim Wills.
Obliteration Zone |  |  | A bit like Bomber-Man, very good to play, by Andy Southgate. Plays Hawaii Five-O in the background. I used to play this a lot, and I can manage a score of around 18000. Somewhat embarassingly my teenage son can get over 32000.
Pac Manor |  |  | A platform game. Probably a Megastar game?
Phaid |  |  | A Space Invaders variant, by K.Hook.
Pontoon |  |  | Plays Pontoon, by Mike Major.
Pontoon Blackjack |  |  | Plays Pontoon and Blackjack, by Continental Software.
Pothole Pete |  |  | A platform game in the style of Manic Miner, written by A.Butterfield and J.Wills. Interestingly this game writes VDP register 3 without correctly setting the bottom 5 bits to 1's. This game relies on the fact IN (3) returns 3. There is nothing in the Memotech hardware that ensures explicitly ensures this. So MEMU (and REMEMOTECH and REMEMOrizer) have to ensure this occurs.
PowerPac |  |  | A PacMan variant. Ported from Sord M5 to MTX by Claus Bækkel.
Quantum |  |  | A bit like Brickout, sold by Syntaxsoft.
Quasimodo's Bells |  |  | By Liam Redmond.
Quazzia `[a1]` |  |  | A Scramble variant, by Chris Sawyer, for Megastar Games. Strange keys: Shift=Up, Ctrl=Down, Space=Fire.
Quest One |  |  | A text adventure game, for Megastar.
Qogo `[a1]` |  | youtube | A Q*Bert style game, by Chris Sawyer, for Megastar Games. Movement is diagonal, and you must therefore press two direction keys at once to move. Reveal (another isometric game shown later) had a better strategy for this - it also let you press the 7,9,1,3 keys for diagonal movement. Interestingly, Sepulcri Scelerati (also by Chris Sawyer) only lets you use 7,9,1,3, not 8,4,6,2.
Qogo 2 |  |  | By Chris Sawyer, for Megastar Games.
Return to Eden |  |  | Text adventure, from Level 9.
Revenge of the Chamberoids |  |  | A 3D isometric game, by Chris Sawyer, for Megastar Games. Use number pad 7,9,1,3 to move. Looks very similar to Sepulcri Scelerati, but borrows from the coloured rooms, doors and keys ideas of Chamberoids. To load this, copy `REVCHAMBER2.mtx` to `default.mtx` and then `LOAD "REVCHAMBER"` from within MEMU. It won't work specifying the `.mtx` on the command line, because the first part uses `LOAD ""` to load the second part.
Rolla Bearing |  |  | By A.Butterfield, for Megastar Games.
Salty Sam |  |  | Another platform game, by Dave M, for Syntaxsoft.
Sepulcri Scelerati |  |  | A 3D isometric game, by Chris Sawyer, for Megastar Games. Use number pad 7,9,1,3 to move. The original file is missing a few bytes at the end, so it is necessary to use the padded version I supply. Interestingly, this game runs partially in `RELCPMH=1` mode. Also, it has a VDP interrupt routine which doesn't read the VDP status register and clear the source of the interrupt.
Slither |  |  | Yet another Snakes game. Use `SLITHER.mtx`, which was made by joining the loader and game file into a single file.
Sloopys Christmas |  |  | A collection of games. Passwords for 2 and 3 are WE HATE SINCLAIR SPECTRUMS and THE RED BARON.
Snappo |  |  | Yet another Pac-Man variant, by DGC.
Snooker |  |  | A snooker program written by Godwin Graham of Magnificent 7 Software. The joystick seems to change where you hit the cue ball, the Q key makes the cue line up with different balls, and return seems to take the shot. Not sure how to select the amount of welly. You need `SNOOKER.mtx` and `S2.mtx` in the current directory to use this.
Snowball |  |  | Text adventure by Level 9.
Soldier Sam |  |  | By Liam Redmond. Need to run this with the `-mem-mtx500` option.
Son Of Pete |  |  | Successor to Pothole Pete, by A.Butterfield and J.Wills, for Megastar Games. This game also relies on the fact IN (3) returns 3. There is nothing in the Memotech hardware that ensures explicitly ensures this. So MEMU (and REMEMOTECH and REMEMOrizer) have to ensure this occurs.
Soul of a Robot |  |  | Soul of a Robot, by Masertronic.
Space Invasion |  |  | Another Space Invaders game, by John Dondzila for Coleco, converted to Memotech by Crazy Boss. Apparently the Coleco has similar hardware to the MTX.
Super Minefield `[a1]` |  |  | A minesweeper style game, by Ed Hollingshead, for Continental Software.
Tapeworm `[a]` |  | youtube | A snake program, by Keith Clatworthy for Continental Software.
Target Zone `[a1]` |  | youtube | A smooth sideways scrolling shoot em up, by Chris Sawyer. The non-`[a1]` file seems to be either missing the header, or not be a proper `.BAS` file. The original `[a1]` was a byte too short, so I simply appended a dummy byte.
Time Bandits |  | youtube | This game has some similarity with Defender and Surface Scanner. It has the nice smooth scrolling, and the bad guys (helicopters) to come and harass your men (in trucks). It gives the illusion of parallax scrolling by scrolling the middle third (with clouds) slower than the bottom third (with the land). By P.S.S. Note that you need to use the `TIMEBAND.mtx` file, as the other file doesn't seem to do anything when you to try to start the game.
The Key To Time |  |  | A Dr.Who themed text adventure game by P.J.R.Harkin and J.Mullins for Lumpsoft. If you type help, it says "Never eat anything bigger than your head". Sound advice.
Theseus and the Labyrinth |  |  | A 3D maze game by Francis Wallinger of Tri-Com Software.
Time Bomb |  |  | Collect all the dots before the time runs out. Like Pac Man without the ghosts.
TNT Tim |  |  | Collect all the dots before the time runs out.
Life the Universe and Everything |  |  | A text adventure game I wrote (originally for CP/M) that was ported to MTX. Has an awful colour scheme. I don't have the CP/M `UNCPM.COM` file. It appears to have been sold by Tricom Software.
Vortex |  |  | Looks like the vortex game from the Adventure game TV program. By Paul Daniels. Doogy Rev.
Words and Pictures |  |  | Preschool educational.
Escape from Zarcos `[a1]` |  |  | A Manic Miner style game, by Chris Sawyer, for Megastar Games.

## Games supplied as .RUN files

In MEMU, RUN files can be run using commands similar to :-

    $ memu -vid-win -snd-portaudio TOADO.RUN

Or, exploiting MEMUs SDX support :-

    $ memu -vid-win -snd-portaudio -sdx
    USER RUN "TOADO.RUN"

Title/File | Picture | Video | Comments
--- | --- | --- | ---
Blobbo `BLOBBO.RUN` |  | youtube MTX youtube ZX | A Pac-Man style game, written by Ed Hollingshead, for Continental Software. The cassette tape inlay doesn't really give any clue as to what the game is. Aside: I wrote a clone of this for the ZX Spectrum, and the second image and video link shows my version running.
Draughts `MTXDRAG.RUN` |  |  | Draughts.
Hawk Wars `HAWKWARS.RUN` |  | youtube | A space shoot em up, by Chris Bayne. Insanely fast. Flashes the screen a lot when you die, and you will die a lot.
Kilopede `KILO.RUN` |  |  | A Centipede variant, from Continental Software. Was one of the very first arcade style games for the MTX. I think its filename may originally have been NCENT. Interestingly this game doesn't initially set the frequency of tone channel 1, and yet varies its volume to produce the background pulsing sound effect. You get a low note because the initial 0 value in the sound chip is treated as 0x400. After the first face falls from the sky, the frequency is set.
Knuckles `KNUCKLES.RUN` |  | youtube | Another game, written by Ed Hollingshead, for Continental Software.
Little Devils `DEVILS.RUN` |  |  | A game somewhat like Knuckles, by Mark Lawrence, for Syntax Software.
Mission Omega `OMEGA.RUN` |  | youtube | Chris Sawyers scramble variant. Perhaps he named it that way to contrast with my Mission Alphatron.
Murder `MURDER.RUN` |  |  | A text mode adventure game. Use delete not backspace to correct typing mistakes.
Old Mac Farmer `OLDMAC.RUN` |  |  | A bit like Pacman. Ported from MSX to MTX by Claus Bækkel.
Pacman `PACMAN.RUN` |  | youtube | The real thing, by Namcot. Ported from MSX to MTX by Claus Bækkel.
Reversi `REVERSI.RUN` |  |  | Classic Othello style game. Sold by Continental Software. The original file on disk appears to have a 1 byte corruption preventing correct keyboard operation, which I have patched. I have the assembler source for the keyboard reader that it uses, which is how I am confident of this. The file also has the word "HORIJONTALLY" (sic) in its help text.
Spectron `SPECTRON.RUN` |  | youtube | Space Invaders style of game. Published by Spectravideo. Ported from ColecoVision to MTX in 2013 by Claus Bækkel. Load from BASIC with SDX support, USER RUN "SPECTRON.RUN".
Telebunny `TBUNNY.RUN` |  | youtube | Telebunny. Published Mass Tael in 1983. Ported from MSX to MTX in 2013 by Claus Bækkel. Load from BASIC with SDX support, USER RUN "TBUNNY.RUN".
Text Mode Invaders `TMINVADE.RUN` |  |  | Martin Allcorn's bit of fun to show at Memofest 2014.
Toado `TOADO.RUN` |  | youtube | A Frogger style game, written by Ed Hollingshead, for Continental Software. The sound isn't quite right at the moment, probably due to the way in which the sound chip is emulated.

## Programs supplied as .BAS files

MEMU includes some SDX Basic `.BAS` files. These can run using commands similar to :-

    $ memu -vid-win -snd-portaudio -sdx
    USER LOAD "BANANA.BAS"

`BANANA.BAS` and `TEDDY.BAS` play music, and almost all of the other Basic files are available in other formats, so no need for lots of pictures here.

Title/File | Picture | Video | Comments
--- | --- | --- | ---
Demo `START` |  |  | A shop demo, advertising the MTX. Shows off the graphics and sound. Even includes animated simian procreation! In the `basic/demo` sub-directory. For some reason the basic program doesn't have `.BAS` file extension, so use `USER LOAD "START"`
F1 Simulator |  |  | Much better than Turbo. Thought to be a Syntaxsoft port of a Masertronic game. The sound doesn't match the original. The version bundled with MEMU is slightly patched to change the file extension from `M/C` to `M_C`.

MEMU also includes some FDX Basic `.BAS` files :-

Title/File | Picture | Video | Comments
--- | --- | --- | ---
Bomber |  |  | Although this is already listed above as supplied in `.MTX` form, its listed again here because we also have it in what we think is in FDX Basic format. As these are very rare, its worth describing how it can be loaded. Unsurprisingly, it doesn't seem to load properly from SDX Basic. However, you can do something like this :-
    $ cp mfloppy/andys_sys.mfloppy mfloppy/fdxbgame.mfloppy
    $ cpmcp -f memotech-type07 mfloppy/fdxbgame.mfloppy \
            basic/BOMBER.BAS 0:
    $ ./memu -rom4 roms/boot-type07.rom -mon-ignore-init \
             -sdx-mfloppy mfloppy/fdxbgame.mfloppy -mw -v -s
    A>FDXB
    DISC LOAD "BOMBER.BAS"
Alternatively, you can :-
    $ cd basic
    $ ../memu -mw -v -s -fdxb FDXB.COM BOMBER.BAS
which loads using MEMUs CP/M emulation (even though FXDB.COM replaces CP/M, CBIOS and drivers).
Wall |  |  | A brickout game, by Frederik Lundkvist. I think this is an FDX Basic program as it came from an FDX system. But it can't be loaded from SDX Basic or FDX Basic. The only way to load it is to use MTXL :-
    $ cd mtxl
    $ ../memu -v -s MTXL.COM WALL.BAF
    GOTO 10
See the MTXL.COM section of the Formats page further details on MTXL.

## Memotech specific CP/M games

In MEMU, CP/M games can be run using commands similar to :-

    $ memu -vid-win -snd-portaudio QUASAR.COM

First, my games (most also available as `.mtx` and/or `.RUN` files) :-

Title/File | Picture | Video | Comments
--- | --- | --- | ---
Quasar `QUASAR.COM` |  |  | A variant on Jeff Minters Matrix game. I saw this in a computer show and thought it was so good I wrote a version for the MTX computer. It was too close to the original, and was never sold.
Nemo `NEMO.COM` |  | youtube | A Quasar variant, with a nautical theme. The snake became sharks, the X-Y zappers became electric eels, falling bombs became mines. The land was added, along with crabs on it. This version was sold by Continental Software.
Mission Alphatron `ALPHA.COM` |  | youtube | A scramble variant. This was one of my favorites, and a favorite of my friends. Since ported to 16-bit Windows 3.1, 32-bit Windows, and iPhone 1.x. There is an `ALPHA.RUN` file also, but I suspect this is corrupt as there are occasional screen corruptions.
Turbo `TURBO.COM` |  | youtube | A racing game. Developed while working for Continental Software. Not my finest hour. Unlike the game tape, this file has a cheat whereby pressing Space advances you to the next level (presumably for testing).
Astropac `ASTROPAC.COM` |  | youtube | Based on the similar Jet-Pac game for the Sinclair Spectrum. This game has a cheat, press Space to advance to the next level. The game also slows up depending on the number of bad guys on the screen. It does this on a real MTX too, although it may be more so on MEMU. You could try using the `-speed` option to run with a faster virtual Z80 processor.
Star Command `STAR.COM` |  |  | There was a game a little like this for the TI-99/4A. Internally, this had sin and cos tables, small angle rotation matrices, and divisions done by lookup-tables.
Obloids `OBLOIDS.COM` |  |  | This was a game I made up completely from scratch. The basic idea was the cells on the screen could be rotated by kicking them.
Tachyon Fighter `BUCK.COM` |  | youtube youtube youtube TI-99/4A youtube MSX | This was based on the Buck Rodgers game in the TI-99/4A. Like the game tape, this file has cheat-codes, such as typing DELTA5 taking you to level 5. Unlike the game tape, this file has a cheat whereby pressing Space advances you to the next level (presumably for testing). This game probably was one of the ones which I ported from MTX to MSX, shown to a distributor, but was never sold. The MSX link shows the Sega Buck Rogers for MSX. Its interesting to note that this is one of the Memotech games that someone took, patched, and sold for the Tatung Einstein! The screenshots are identical, and the disk image contains the same code, but patched to change the name, to remove my copyright, remove the reference to Continental Software, and to change the cheat-codes. Some of the ripped-off Memotech games have been renamed, some even retain their original name. The person that did this would need to be adept at disassembling games for one platform and splicing in equivalent code suitable for the other platform, and they'd also need to know the Memotech and Tatung hardware well. Hmmm....
Surface Scanner `DEFENDER.COM` |  | youtube | This was a Defender clone. It was my only game not to use VDP graphics mode 2, it used mode 1. The clever thing about this was how the smooth scrolling landscape was coded. In short, there was 8 different characters making up the landscape, each of which could have one of 8 characters to its right, and could have the character to the right scrolled into it by 4 2 pixel amounts (0, 2, 4 or 6 pixels). Sold by Megastar Games.
SMG `SMG.COM``SMG2M.COM````` |  |  | Scrolling Maze Game. One of my favorites, and a favorite of my friends. A miner would run around an underground maze of tunnels, collecting 90 pots of gold, avoiding ghosts, avoiding spikes and falling to his death. A classic platform game. There was SMG with 3 mazes, and also another variant called SMG2M, which had 6 mazes. You could only see a small scrolling window over the overal maze at any one time. There were ghosts which moved on fixed tracks. There were also little flashing circular ghosts which would hunt you down. This was possible because wherever your character went, he left a trail behind him, and when the ghosts saw the trail, they would follow it. When they were in this mode they would make a ticking noise (a bit like the crocodile in Peter Pan). The trail was of a fixed length, so one trick you could do would be to reel it in by running around in circles! SMG was sold by Megastar games. I'm not sure SMG2M was, as its got "MOC" on the title screen, which stands for "Memotech Owners Club". There are also `.mtx` file versions of `SMG.COM` which also show the loading screen.
Reveal `REV.COM` |  |  | A game in which by moving your character over an invisible isometric surface, the surface is revealed, hence the name. When the surface is fully revealed, the level is complete. Of course, lots of bad guys moving about to avoid. I finished the game, but it was never commercially published to my knowledge. Ian Heath prepared the music. The initial names in the hi-score table are the names of students I went to university with. This was right at the end of my MTX games writing career, and I think Megastar may have folded around this time. Reveal also has "MOC" on its title screen.

Now some games written by others :-

Title/File | Picture | Video | Comments
--- | --- | --- | ---
Angle Ball `ANGLE.COM` |  |  | A hexagonal pool game, written by Ian Heath. Uses Q=Up, A=Down, O=Left, P=Right.
Icicle Works `DT.COM` `TLOAD.COM` `TV.COM` |  | youtube CP4 | A boulderdash style game, by Statesoft. `DT.COM` loads the title page into VDP memory. `TLOAD.COM` loads graphics into memory, as used by `TV.COM`, which is the main game code. To run it, I therefore have to use :-
    $ memu -iobyte 0x80 \
           -addr 0x9c29 -mem TLOAD.COM \
           -addr 0x0100 -mem TV.COM \
           -vid-win -snd-portaudio
On real MTX hardware, with a 59K CP/M boot disk, it hangs when the man moves far enough for the screen to scroll. Using a 54K CP/M boot disk seems to be fine. This is hard to debug. It is interesting to note that this game appears to have been written as a hybrid of some high level language and assembler. The video link is to the Commodore Plus/4 version. Coincidentally, I knew the author at university and in my early career! The Memotech version is somewhat similar, but not exactly.

## Memotech specific CP/M programs

Here is the NewWord word processor, a deriviative of WordStar, shown editing `VDEB.DOC` as a non-document :-

    $ memu -mon-win-big N.COM

It is Memotech FDX/SDX specific because it bypasses CP/M BDOS and uses driver entrypoints for keyboard and screen access, and variables in high memory unique to the FDX/SDX. When saving a file, it also specifically does a case insensitive search for the word MEMOTECH between the start of CBIOS and the top of memory, and bombs out if it doesn't find it.

The FDX specific `VDEB.COM` Visual Debugger (also calling itself PANEL in red text), as run using :-

    $ memu -vid-win -mon-win-big VDEB.COM

The original Memotech Videowall control progam, which ran on SDX under CP/M (using the SCPM ROM), and which used MTX graphics and the centronics port to control the wall (which we disable by passing the `-` command line argument). Alternatively we could use the `-prn-file` command line option. It also uses CP/M BDOS to load and save "program sequences" :-

    $ memu -vid-win VW10D4.COM -

Interestingly, when you exit this program, it doesn't attempt to go back to the CP/M prompt. Instead it boots the MTX into MTX BASIC. Not sure why I made it do this.

Geoff Boyd has slides showing Videowalls.

## Generic CP/M programs

We shouldn't forget that the FDX was a good CP/M machine in general. MEMU makes a good emulation environment for CP/M programs in general.

The Caves of the Orb text mode adventure, which is a standard CP/M program, as run using :-

    $ memu -mon-th ORBCPM.COM

A Level 9 Collosal Cave adventure is included too.

The standard CP/M `ZSID.COM` Z80 Symbolic Instruction Debugger, as run using :-

    $ memu -mon-win-big ZSID.COM

`CRCK44.COM` is a program which calculates CRCs of files. Note the use of `-mon-console` (as the output from `-mon-win` or `-mon-th` would disappear after execution is complete) and the use of `-mon-console-nokey` as unfortunately this program keeps polling the keyboard as it runs (and with `-mon-console` this suspends the emulation). eg:

    $ memu -mon-console -mon-console-nokey -fast CRCK44.COM '*.OVR'

    CRCK version 4.4 of 10/17/82
    (Ctl-C aborts, Ctl-S pauses)

    ---> NWMSGS  .OVR     CRC  =  DB 9D
    ---> NWPRINT .OVR     CRC  =  E1 49
    ---> NW      .OVR     CRC  =  6F 7A

    Done

Another good example of using MEMU is to use the Microsoft M80 Macro Assembler and L80 Link Editor to compile `PROGRAM.MAC` to make `PROGRAM.REL` and then link it to make `PROGRAM.COM` :-

    $ memu -mon-console -fast M80.COM =PROGRAM
    $ memu -mon-console -fast L80.COM PROGRAM,PROGRAM/N/E

So far, I seem to be able to use MEMU instead of the `ZEM.EXE` Z80 and CP/M emulator. This emulates CP/M and runs on DOS, but this obliges me to fire up a DOS VMware virtual machine and to struggle to get files in and out of it. MEMU allows me to invoke CP/M programs from shell scripts and `makefile`s, and to easily access files directly on the host system.

See the CP/M section of the Emulation page for important information about how text files are handled in CP/M.