***NOTICE: this is preliminary work ***
MUZ is a Z-80 development workshop for MacOS with sub components aimed at all OS-es, inspired by the Small Computer Monitor Workshop from Steven Cousins.
MUZ C++ code is C++ 11 compliant. Its heart is a static library with an internal Z-80 assembler and a computer model. For the initial Z-80 version, MUZ computer model is integrating the YAZE Z-80 emulator as virtual CPU and implements classes for the RC2014 computer.
-
MUZ-Computer has been designed to emulate the RC2014 built with a Backplane Pro and Z-80 CPU, Clock, Pageable ROM, 64KB RAM and SIO/2 Serial modules. This is work in progress and is not available yet.
-
MUZ-Assembler is designed to be compatible with Small Computer Workshop outputs, and will compile the SC Monitor sources with no modification. MUZ-Assembler features a lot of helps for the programmer, like cross-references, label listings and warnings. See more details in MUZ-Assembler documentation.
-
MUZ-Workshop is an EDI project in Swift for MacOS XCode. It links with the C++ MUZ library into a multi editor / debugguer / assembler development system, trying to bring to the Mac the same services as Steve Cousins SCWorkshop on Windows. This is work in progress and is not available yet. A Windows and Linux version might be done later, but Steve Cousins' own Workshop is the reference on Windows and there's no real need for another one.
At the time of this writing the only available executable is asmuz
, a command-line utility around MUZ-Assembler which allows you to build HEX files and listings for Steve Cousins Small Computer Monitor. This tool can be built with XCode 10 on MacOS, Visual Studio 2017 on Windows 10, you will find the workspaces/solution under the Platform
directory. It builds on Debian using Eclipse + CDT too and could be done using simple makefiles but this is not available in the Git deposit yet.
What you will find in directories:
-
MUZ
: This is the main directory for the C++ code base and associated filesasmuz
: main source directory forasmuz
command-line tool sourcesDocumentation
: holds various documents in Markdown formats, most are work docs and should not be considered as final specificationsmuzlib
: main source directory formuzlib
libraryMUZ-Assembler
: source files related to theAssembler
classMUZ-Common
: source files common to all parts of MUZMUZ-Computer
: source files related to the computer model classes (memory modules, port modus, computer, cpu ...)Tests
: source files for testing programs, they feature a main which must be linked tomuzlib
TestSources
: Z-80 assembler source files for unit-testsYAZE
: YAZE emulator source files integrated for MUZ
-
Platform
: Main directory for OS specific filesMacOS
: directory for MacOSasmuz
: directory for the XCode project for command-line utilityMUZ-Workshop
: directory for the MacOS workshop sourcesMUZ-WorkshopTests
: directory for the MacOS unit testsmuzlib
: directory for the MacOS projectMUZ-Workshop.xcworkspace
: XCode 10 workspace for the Workshop application, themuzlib
Win
: directory for Windowsasmuz
: directory for the Visual Studio 2017 project for command-line utilityMUZ-Workshop
: directory for the workshop project and sourcesmuzlib
: directory for the Visual Studio 2017 projectMUZ-Workshop.sln
: Visual Studio 2017 Solution for the Workshop application, themuzlib
library and theasmuz
command-line tool.
December 2018
Francis Piérot