Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
    About
    Library
    Manuals
    Options
    Photos
    Projects
    Repairs
    Software
    Tools
    User Groups
    Video Wall
Memotech CP/M
Atari ST
Commodore Amiga
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Memotech MTX Series

MEMU Launcher

by Bill Brendling

MEMU running CP/M started by one click from Launcher

Windows Usage Notes

Windows Test Environment : Windows 7, 64 Bit. Python for Windows Version 3.3.3

Prerequisites : Python

Python is an open source, high level programming language, maintained by The Python Software Foundation (PSF). Available for a number of platforms, including Linux and Windows, it can be downloaded from the PSF website here.

As part of the installation, a Windows file association is created between .py and .pyw file extensions and the Python executable, python.exe.

With the installation directory present in the PATH variable, the easiest way to use the launcher application is to place it in the same location as the MEMU executable and double click on Launch.pyw.

Note: When running Python under windows, a ".pyw" file extension runs the script without a command window and a ".py" file extension runs with a command window. To see the -debug output, Launch.pyw should be renamed to Launch.py.   
 


Default Configuration File

The first time that the launcher is run, if you have not renamed Launch.py to something else, it will create a file called Launch.cfg which will be used to save the launcher settings for reloading the next time that the script is run.

The default configuration file takes its name from the program name, so if you rename Launch.pyw to newname.pyw, then the default configuration file becomes newname.cfg.

Launch first looks in the current working directory for the configuration file, and if a file of the correct name is found then it uses that one both for loading and saving. Only if that does not exist does it look in the folder containing the Launch program.

Example Windows config files

NB : You will need to edit the pathnames as required to suit your MEMU file locations.

Check the ROMs and Disks paths!

Place the config file(s) in the same location as the Python file

Run a game (.mtx) file

Just specify the "Run File", e.g., "ca.mtx"

Run CP/M interactively

Loads Andy's System disk as "A" and his Games disk as "C"

Command Line Options

launch.py    [-debug]   [filename.cfg]   [runfile.ext]   [. . . "menu" . . .]

Option Description

-debug

The -debug switch does not launch MEMU, instead, it creates a launch.cfg file and outputs the MEMU command string to the console for diagnostic purposes.

filename.cfg Anything ending with ".cfg" is taken to be a configuration file and is loaded instead of the default config file
runfile.ext This one may not be useful to others, but Bill added it at my request. It allows me to have a config file setup to run games, then pass the name of the program to run on the command line. There are other ways to do the same thing, but this works for me.

Usage: launch.py   [games.cfg]   bakety.mtx will populate the Run File box with "bakery.mtx"

. . . "menu" . . . Anything else containing the string memu is taken to be the path to the memu executable. Just in case you have multiple copies of memu around, or memu is not on the default path and not in the same folder as Launch.



Currently supported MEMU options
 

Launch Config Option

Values

MEMU Configuration Option Values
Emulation

MTX Default : MTX -
SDX Include SDX support -sdx
CPM Emulate CP/M BIOS -cpm
FDXB FDXB CP/M support -fdxb
Speed  (MHz)
  Maximum

1 to 10

Fast

Set CPU speed in MHz

Don't limit speed, run as fast as possible

-speed hz

-fast
Memory (KB) 32k blocks Number of 16k memory blocks -mem-blocks n
Video Size (multiplier) 0 to 5 VDP window size -vid-win[-big]
Hardware Palette On / Off Use an alternate palette -vid-win-hw-palette
Monitor Size (multiplier) 0 to 5 80 Column card window size -mon-win[-big]
Mono Monitor On / Off Green screen monochrome -mon-win-mono
Ignore Init On / Off Ignore writes to non-emulated registers -mon-ignore-init
Text Monitor
TH 80 Column card - full screen text mode -mon-th
Console 80 Column card - using console only -mon-console
None 80 Column Card - no output (neither switch set)
No-key On / Off Keyboard status shows no keys pressed -mon-console-nokey
Sound On / Off Emulate the sound chip using portaudio -snd-portaudio
Latency < value > Instruct portaudio to use a given latency -snd-latency value
Keyboard Remap On / Off Remaps MTX keyboard -kbd-remap
Country 0 to 3 Sets country code switches to n (default 0) -kbd-country n
Joystick Enable
Centre
On / Off Enable joystick support -joy,-j
< value > Percentage off-centre to press direction -joy-central n
Tape Directory < path > Location of .mtx files -tape-dir
Tape Overwrite On / Off SAVE can overwrite an existing file -tape-overwrite
Tape Disable On / Off Don't patch INOUT to LOAD/SAVE/VERIFY .mtx files -tape-disable
ZX Spectrum Tape < path > Specify ZX tape file (default memu.tap) -tap-file fn
ZX Spectrum Snapshot < path > Specify ZX snapshot file (default memu.sna) -sna-file fn
Drive A Directory < path > Where CP/M DBOS finds A: -cpm-drive-a
Drive A Invert Case On / Off Invert between CP/M and host filenames -cpm-invert-case
Open Hack On / Off Don't insist on EX,S1,S2,RC being 0 -cpm-open-hack
 

Advanced Options

 

For a complete description of the "advanced" options, see the MEMU Emulation page on Andy's site.

Andy's page describes how the ROM selection and paging options work in a real MTX and as emulated in MEMU.

 

MEMU : Load ROM x from file (-ROMx file) MEMU : Set ROM subpage (-subpage subpage )

 

MEMU Values

 
-iobyte iobyte specify IOBYTE
     (initially 0x00)
   
-subpage subpage set ROM subpage
     (initially 0)
   
-addr addr set the address
     (initially 0x0000)
   
-mem file load file at address
   

MEMU Values

 
 Use MTX Emulation Mode
 
-sdx-tracks n -sdx-mfloppy file
 -sdx-tracks2 n -sdx-mfloppy2 file
-sidisc-file n file
 
 
 
 

MEMU Values

 
-joy-buttons string define left, right, up, down & fire buttons
-kbd-type-file fn auto type keys in this file
-prn-file file specify file to receive printer output
   
   
   
   
   
   
   
Run File < filename > LOAD/SAVE/VERIFY "" will use this file file(.mtx/.com/.run)
Command Tail < path > Construct CP/M command tail -cpm-tail tail
Configuration Load / Save / Reset MEMU Options n/a

 

 Launch Revision History

 MEMU Launcher GUI : launch.py, launch.pyw

 Date Ver. Comments
 WJB 30/01/14 - First draft.
 WJB 08/02/14 - Added configuration save/load to/from launch.cfg
WJB 15/02/14 0.03

More MEMU options included,  (fdxb, tape disable, cpm tail...)

-debug switch added.

The -debug switch does not launch MEMU, instead, it creates the launch.cfg file and outputs the MEMU command string to the console.

WJB 16/02/14

0.04 Bug fix on FDXB option.

WJB 23/02/14

0.05 Some consistency checks.

WJB 23/02/14

0.06 Correct stupid typo.
WJB 28/02/14 0.07

Trap insufficient memory for CP/M.

Added support for ROM loading and mfloppies

WJB 02/03/14 0.08 Added -mon-ignore-init and -cpm-open-hack
WJB 08/03/14 0.09

Added general memory initialisation (-iobyte, -subpage, -addr, -mem).

Tidied up window management and resizing.

Added -snd-latency and -kbd-country.

WJB 09/03/14 0.10 Added further options.
WJB 15/03/14 - Bug fix on memory initialisation. Added configuration load, save and reset.
WJB 22/03/14 0.11 Revised command line options
WJB 23/03/14 0.12 Added Dave's run command option

Back to the Emulation Page

 

mailto: Webmaster

 Terms & Conditions

Page last modified 27/04/2015