From 3533f63a40975894ade3c46529a408891f56c40b Mon Sep 17 00:00:00 2001 From: Philip Smart <28005720+pdsmart@users.noreply.github.com> Date: Fri, 28 Sep 2018 17:24:40 +0100 Subject: [PATCH] Delete ReadMe.html --- ReadMe.html | 5436 --------------------------------------------------- 1 file changed, 5436 deletions(-) delete mode 100644 ReadMe.html diff --git a/ReadMe.html b/ReadMe.html deleted file mode 100644 index 37a9708..0000000 --- a/ReadMe.html +++ /dev/null @@ -1,5436 +0,0 @@ - - -
- - - - - - - - - - - - - - - -Sharp MZ Series
-Personal and Business Computer Emulation
Written by Philip
-Smart, 2018 for the Terasic DE10 Nano board under the
-MiSTer framework.
This project aims to
-provide full emulation (along with extensions) of the Sharp MZ Series
-Computers.
The following
-emulations have been
-written: ..and the following are under development:
- -MZ80K - - -MZ800
- -- -MZ80C - - -MZ80B
- --
-MZ1200
- -
-MZ2000
- MZ80A
- MZ700
The current emulations provide:-
- -· -48K RAM for -MZ80K,C,1200,A
- -·
-64K RAM for
-MZ700
·
-Hardware
-Tape Read/Write with selectable 1x - 32x Fast Mode
·
-Turbo Mode
-1x - 32x (ie. 112MHz for MZ700)
·
-Programmable
-Character Generator (PCG-8000/PCG-1200)
·
-40x25,
-80x25 Mono and Colour Display Modes
·
-320x200,
-640x200 8 Colour Bit addressed Graphics
·
-Updateable
-Monitor Rom, CGRom, Keymap, User Rom, FDC Rom per
-Emulation type.
·
-i8253 mono
-audio
Enhancements in
-test/under development:
·
-Floppy Disk
-Drive/Controller 5.25"
·
-Quick Disk
-Controller
· -Dual -digital Joystick Input (MZ700)
- -Known Issues
·
-Tape Write
-isn’t working correctly, I made some structural changes resulting in it no
-longer working, so this needs to be resolved.
·
-Keyboard
-mappings could be better, especially for the MZ1200 which is the Japanese
-version of the MZ80A.
·
-HDMI needs
-to be re-enabled in the design.
·
-The Aspect
-Ratio/Scandoubler options aren’t working on the VGA
-output.
Installation
1. -Follow the Setup Guide to -create a new SD boot disk. https://github.com/MiSTer-devel/Main_MiSTer/wiki/Setup-Guide
- -2. -Copy across to the SD (via scp or mount the SD under Windows/Linux and use local copy -commands) the latest RBF file from the releases folder, ie:-
- -scp SharpMZ_MiSTer/releases/SharpMZ_<data>.rbf -root@<de10 ip address>/media/fat/SharpMZ.rbf # -Target name can be anything you like ending with .rbf
- -3. -Make a SharpMZ -directory on the SD card, ie:
- -ssh root@<de10 ip -address>
- -mkdir /media/fat/SharpMZ
- -4. -Copy any Rom Files, MZF Tape -Files, DSK files across to the new directory, ie:
- -scp *.mzf -root@<de10 ip address>:/media/fat/SharpMZ/
- -5. -Start the MiSTer -menu (ie. press the DE10 reset button if it is not -showing).
- -6. -Select the SharpMZ -core (or whatever name you called it).
- -7. -The emulator will boot into an -MZ80K model with the SP-1002 monitor.
- -8. -Press F12 to change the -configuration, select Save Config to store it.
- -Design Summary
The idea of this design -is to keep the emulation as independent of the HPS as possible (so it works -standalone), only needing the HPS to set control registers,
- -read/write tape/floppy
-cache ram with complete images and overlay the menu control system. The MiSTer/HPS system is an excellent base on which to host
-emulations, but there may be someone wanting to port this emulator to another
-target such as the Xilinx Zynq 7000 (which I have also been playing with). This
-in theory should allow easier porting if someone wants to port this emulator to
-another platform and control it with a PC (parallel port), HPS or instantiate
-another CPU as the menu control system.
As the Cyclone V SE on
-the Terasic DE10 has 5.5Mbits of memory, nearly all
-the RAM used by the emulation is on the FPGA. The Floppy Disk Controller may
-use HPS memory/external SDRAM depending on whether I decide to cache entire
-Floppy Disks as per the CMT unit or use the secondary SD card.
Menu
-System
The MiSTer menu -system is used extensively on this design as the Front End -control. It allows for loading/saving of cassettes and floppy disks, setting -the machine parameters, the display parameters, debugging and access to the MiSTer control menu.
- -Tape Storage
In order to use -the emulation seriously, you need to be able to load and save existing -programs. Initially this was via a CMT (tape) unit and later moved on to -Floppy/Quick Disks.
- -This menu -controls the hardware CMT unit and has the following choices:
- -· -Load direct to RAM
- -This option -allows you to load an MZF format tape file (ie. 128 -bytes header + code) directly into RAM. It uses the Load Address and Size -stored in the header in order to correctly locate the code and also stores the -header in the Cassette Work area at 10F0H. After load is completed and warm -reset is made. The details of the tape are displayed on-screen and in order to -run the program, simply issue the correct monitor command, ie. -J1200 (Jump to 1200H).
- -· -Queue Tape
- -A real cassette -has 1 or more programs stored on it sequentially. The emulation cache only -stores 1 full program so this is a mechanism to line up multiple programs and -they will be fed into the emulation cache as it becomes empty, thus simulating -a real cassette.
- -Selecting this -option presents you with a directory listing of all MZF files. Choose one per -selection and it will be added to the Queue. The programs queued will be -displayed on the menu.
- -· -Clear Queue
- -This option -allows you to purge all queue entries.
- -· -Save Tape
- -This option -allows you to save a program to the MiSTer SD card -which is in the emulation cache. Normally the emulation would have written a -program/data to tape (ie. via the BASIC ‘SAVE’ -command) which in reality is stored in the emulation cache.
- -The tape is -saved under the name given in the emulation save command (ie. -in BASIC ‘SAVE “myfile”’ would result in a file -called myfile.mzf being saved).
- -· -Auto Save Tape
- -This option -allows you to auto save the emulation cache. Ie. when -an emulation save completes, a flag is raised which is seen by the MiSTer program and the emulation cache is saved to SD under -the name given in the emulation.
- -· -Tape Buttons
- -This option -allows you to set the active Tape buttons, ie. Play, -Record or Auto. Auto is a hardware mechanism to detect if the emulation is -reading or writing to tape and process accordingly.
- -· -Fast Tape Load
- -This option -allows you to set the speed of the tape drive. On the original machines, the -tape runs at 1200baud which is quite slow, so use of this option is -recommended.
- -You can select -one of: "Off", "2x", "4x", "8x", -"16x", "32x"
- -Selecting “Off” -runs the tape drive at the original speed.
- -Machine
The emulation -emulates several Sharp MZ computers and this menu allows you to make selections -accordingly.
- -· -Machine Mode
- -This option -allows you to choose which Sharp MZ computer is emulated. Currently the choices -are:
- -"MZ80K", -"MZ80C", "MZ1200", "MZ80A", "MZ700" -with "MZ800", "MZ80B", "MZ2000" in the pipeline.
- -· -CPU Speed
- -This option -allows you to set the speed at which the emulation runs. Generally speaking, -higher speeds can be beneficial in non-graphics based -applications although some games benefit from a small speed boost. The choices -are:
- -MZ80K/C/1200/A => "2MHz", "4MHz", "8MHz", "16MHz", "32MHz", -"64MHz"
- -MZ700 => "3.5MHz", -"7MHz", "14MHz", "28MHz", "56MHz", -"112MHz"
- -· -Audio Source
- -This option -allows you to choose what is played through the audio output. The choices are:
- -"Sound" => The mono audio generated by the -emulation output on L/R channels.
- -"Tape" => The CMT signals, Playback on Right -channel, Record on Left channel. In theory you should be able to connect the -right channel to an external tape drive and record to physical tape.
- -· -Audio Volume
- -This option -allows you to set the output volume. There are 16 possible steps from Min .. Max.
- -· -Audio Mute
- -This option -allows you to Mute the output.
- -· -Rom Management
- -The emulation -comes with the Monitor, Character Generator and Key Mapping Roms -built-in for each machine emulated. This option selects a sub-menu which allows -you to upload non-standard Roms when the emulation is -started (ie. the Core is selected).
- -o -Machine Model
- -This option -allows you to select the emulated Sharp MZ computer to which the custom rom -images will affect. The choices are:
- -"MZ80K", -"MZ80C", "MZ1200", "MZ80A", "MZ700" -with "MZ800", "MZ80B", "MZ2000" in the pipeline.
- -o -User ROM
- -On some machine -models (ie. MZ80A) there exists a socket to place a -User ROM, which will have control passed to it should the first byte be 0 and -non-writeable. Although this option only exists on certain models, it is a nice -to have feature it is available for all machine models.
- -This option -allows you to enable or disable the User ROM (NB. If you enable this option, it -only enables hardware select, you still need to upload a ROM which has the -first byte set to 0).
- -o -Floppy Disk ROM
- -A Floppy Disk -drive was an expansion option for the Sharp MZ computers, and with the advent -of the MZ700, a Quick Disk drive was also an option. These options typically -held control software in a ROM at location F000H. This option allows you to -enable this feature, albeit you still need to upload a ROM.
- -o -Enable Custom Rom
- -This section -allows you to enable custom Roms and select the image -which will be uploaded. For each Rom, you can enable or disable. If enabled, -you can choose the required file. The Roms which can -be customized are:
- -§ -Monitor (40x25)
- -§ -Monitor (80x25)
- -§ -Char Generator
- -§ -Key Mapping
- -§ -User Rom
- -§ -Floppy Disk
- -The Monitor Rom -is a special case. Most of the Personal Sharp MZ Computers were only able to -display 40x25 characters so the Rom hardcodes these parameters. Some people -required wider screens for use with CPM, so hardware modifications were made to -create an 80x25 display. The emulation is capable of both modes but in order to -run correctly, a different Monitor Rom for 80x25 display is needed.
- -Display
The display on -the Sharp MZ computers was originally quite simplistic. In order to cater for -enhancements made in each model and by external vendors, the emulation has -several configurable parameters which are grouped under this menu.
- -· -Display Type
- -This option -allows you to select the display used. Normally, when a machine model is -chosen, it defaults to the original display, this option allows you to override -the default. The choices are:
- -"Mono -40x25", "Mono 80x25 ", "Colour -40x25", "Colour 80x25"
- -· -Video
- -An extension to -the original design was the addition of a graphics frame buffer. It is possible -to blend the original display video with the graphics frame buffer. This option -allows you to enable or disable the original display video (ie. -if you only want graphics).
- -· -Graphics
- -There were -various add-on boards made available in order to display bit addressable pixel -graphics. This is my extension to the original design and as I gather -information on other add-on boards, I will adapt the hardware interface so it -accommodates these options. Please see the section below on the graphics frame -buffer details if needed. This option allows you to enable or disable the -display of the graphics frame buffer (which is blended with the original character based video output).
- -· -VRAM CPU Wait
- -I deviated from -the original design by adding a pixel based display -buffer. During the Vertical Blanking period, I expand the character -based VRAM and Attribute RAM into pixels and store them in the display -buffer (a double buffer technique). This consequently means that no snow/tearing -will occur if the CPU accesses the VRAM/Attribute RAM during the visible -display period. The original design added software waits (MZ80K) and hardware -CPU wait states (MZ80A/700) to eliminate snow/tearing and due to the addition -of double buffering, this is no longer needed. You can thus disable the wait -states with this option and gain some speed or enable them to keep -compatibility.
- -· -PCG Mode
- -All of the Sharp -MZ computers used character generators which were hard coded in a ROM. External vendors offered add-ons to allow for a -Programmable Character Generator based in RAM. This option enables the -Programmable Character Generator which is compatible with the HAL PCG-8000/PCG-1200 add-ons.
- -· -Aspect Ratio
- -This option is a -MiSTer framework extension which converts the Aspect -Ratio from 4:3 to 16:9. It doesn’t work at the moment with VGA output but -should work on HDMI. Use this option to choose the desired format.
- -· -Scandoubler
- -This option is a -MiSTer framework extension which doubles the scan -lines to widen/improve the image of older computer displays. It doesn’t work -correctly with VGA output at the moment but should work on HDMI. The choices -are: "None", "HQ2x", "CRT 25%", "CRT -50%", "CRT 75%"
- -System
This is the MiSTer main control menu which allows you to select a core, -map keys etc.
- -Debugging
As you cannot -easily get out a trusty Oscilloscope or write breakpoint/debug messages with an -FPGA, I’ve added a debugging mode which can be used at any time without -affecting the emulation (unless you choose a debug frequency in which case the -emulation will run at the selected frequency).
- -Basically, the 8 -LED’s on the main DE10 main board can display a selectable set of signals, -either in auto mode (move from set to set after a fixed period) or a static -set. The sample rate of the signals displayed on the LED’s is selectable from -the Z80 CPU frequency down to 1Hz. You can also attach an oscilloscope onto the -LED’s and thus see the waveform if a simple flicker is not sufficient. In -addition, you can slow the CPU frequency down in steps from 1MHz to 1/10Hz so -you have a good chance of seeing what is happening internally.
- -This debugging -addition is also a great method of understanding the internals of a computer -and seeing the Z80 in action.
- -To use the debug -mode, press F12 to enter the MiSTer menu, then select -Debug and you are offered the following choices:
- -· -Select Memory Bank
- -This option -allows you to select one of the memory banks so it can be written to a local -(DE10 SD Card) file.
- -"SysROM" = System ROM. This is -the complete concatenated set of Monitor ROM’s for all the emulations.
- -"SysRAM" = System RAM. This is -the 64K Main RAM.
- -"KeyMap" = Key Mapping ROM. -This is the complete concatenated set of Key Mapping’s for all the emulations.
- -"VRAM" - = Video RAM. This is the 2K Video RAM concatenated with -the 2K Attribute RAM.
- -"CMTHDR" -= Cassette Header. This is the 128 byte memory holding -the last loaded or saved tape header.
- -"CMTDATA" = Cassette Data. This is the 64K memory holding -the last loaded or saved tape data.
- -"CGROM" -= Character Generator ROM. This is the complete concatenated set of CGROM’s for -all the emulations.
- -"CGRAM" -= Character Generator RAM. This is the 2K contents of the Programmable -Character Generator RAM.
- -"All" -= This is the complete memory set as one file.
- -· -Dump To <memory bank -name>
- -Dump the -selected memory bank. The system will show the file name used for the dump.
- -· -Debug Mode
- -Select to Enable -or Disable
- -o -CPU Frequency
- -Select the CPU -Frequency which can be one of:
- -"CPU/CMT", -"1MHz", "100KHz", "10KHz", "5KHz", -"1KHz", "500Hz", "100Hz", "50Hz", -"10Hz", "5Hz", "2Hz", "1Hz", -"0.5Hz", "0.2Hz", "0.1Hz"
- -o -Debug LEDS
- -Select to -Enable or Disable
- -§ -Sample Freq
- -This is the -sampling frequency used to sample the displayed signals. It can be one of:
- -"CPU/CMT", -"1MHz", "100KHz", "10KHz", "5KHz", "1KHz", -"500Hz", "100Hz", "50Hz", "10Hz", -"5Hz", "2Hz", "1Hz", "0.5Hz", -"0.2Hz", "0.1Hz"
- -§ -Signal Block
- -This is the -signal block for display. It can be one of:
- -"T80" => CPU Address/Data Bus -and associated signals.
- -"I/O" => Video, Keyboard and Select signals.
- -"IOCTL" => External I/O Control. -Address/Data and Select signals.
- -"Config" => Register configuration -signals.
- -"MZ80C -I" => 5 sets of signals -relating to the MZ80K/C/1200/A/700/800.
- -"MZ80C -II" => An additional 5 -sets of signals.
- -”MZ80B I" => 5 sets of signals relating to -the MZ80B/MZ2000.
- -"MZ80B -II" => An additional 5 -sets of signals.
- -§ -Bank
- -This is the -Bank within the Block to be displayed on the LED’s. It can be one of:
- -"T80"
- => "Auto", "A7-0",
-"A15-8",
-"DI", "Signals"
"I/O" - => "Auto", "Video", -"PS2Key", "Signals"
- -"IOCTL” -=> "Auto", "A23-16", -"A15-8", "A7-0", -"Signals"
- -"Config" - => "Auto", "Config -1", "Config 2", "Config 3", "Config 4", -"Config 5"
- -"MZ80C -I" => "Auto", "CS -1", "CS 2", -"CS 3", "INT/RE", -"Clk"
- -"MZ80C -II" => "Auto", - "CMT 1", "CMT -2", "CMT 3"
- -"MZ80B -I" => Not yet defined.
- -"MZ80B -II" => Not yet defined.
- -Graphics
-Frame Buffer
An addition to the original design is a -640x200/320x200 8 colour Graphics frame buffer. There -were many additions to the Sharp MZ series to allow graphics (ie. MZ80B comes with standard mono graphics) display and as -I don’t have detailed information of these to date, I designed my own extension -with the intention of adding hardware abstraction layers at a later date to add -compatibility to external vendor add-ons.
- -This frame buffer is made up of 3x16K RAM -blocks, 1 per colour with a resolution of 640x200 -which matches the output display buffer bit for bit. If the display is working -at 40x25 characters then the resolution is 320x200, otherwise for 80x25 it is -640x200.
- -The RAM for the Graphics frame buffer can -be switched into the main CPU address range C000H – FFFFH by programmable -registers, 1 bank at a time (ie. Red, Green, Blue -banks). This allows for direct CPU addressable pixels to be read and/or written. -Each pixel is stored in groups of 8 (1 byte in RAM) scanning from right to left -per byte, left to right per row, top to bottom. Ie. -if the Red bank is mapped into CPU address space, the byte at C000H represents -pixels 7 - 0 of 320/640 (X) at pixel 0 of 200 (Y). Thus 01H written to C000H -would set Pixel 7 (X) on Row 0 (Y). This applies for Green and Blue banks when -mapped into CPU address space.
- -In order to speed up display, there is a Colour Write register, so that a write to the graphics RAM -will update all 3 banks at the same time.
- -The programmable registers are as follows:
- -Graphics Bank Switch Set Register: I/O -Address: E8H (232 decimal)
- -Switches in 1 of -the 16Kb Graphics RAM pages (of the 3 pages) to C000 - FFFF. The bank which is -switched in is set in the Control Register by bits 1/0 for Read operations and -3/2 for Write operations. This bank switch overrides all MZ80A/MZ700 page -switching functions.
- -Graphics Bank Switch Reset Register: I/O -Address: E9H (233 decimal)
- -Switches out the -Graphics RAM and returns to previous state.
- -Control Register: I/O Address: EAH (234 -decimal)
- -|
- 7 - |
-
- 6 - |
-
- 5 - |
-
- 4 - |
-
- 3 - |
-
- 2 - |
-
- 1 - |
-
- 0 - |
-
- |
-
|
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- < |
-
- Read mode (00=Red Bank, 01=Green Bank, - 10=Blue Bank, 11=Not used). -Select which bank to be read when enabled - in CPU address space. - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
- |
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- Write mode (00=Red Bank, 01=Green Bank, - 10=Blue Bank, 11=Indirect). -Select which bank to be written to when enabled - in CPU address space. - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
- |
|
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- VRAM Output. 0=Enable, 1=Disable. Output - Character RAM to the display. - |
-
|
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- GRAM Output. 0=Enable, 1=Disable. Output - Graphics RAM to the display. - |
-
|
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- Blend Operator (00=OR ,01=AND, 10=NAND, - 11=XOR). -Operator to blend Character display with - Graphics Display. - |
-
|
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
Red Colour Writer -Register: I/O Address: EBH (235 decimal)
- -|
- 7 - |
-
- 6 - |
-
- 5 - |
-
- 4 - |
-
- 3 - |
-
- 2 - |
-
- 1 - |
-
- 0 - |
-
- |
-
|
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- < |
-
- Pixel 7 Set to Red during indirect write. - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- - 6 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- - 5 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- - 4 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- - 3 - |
-
|
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- - 2 - |
-
|
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- - 1 - |
-
|
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- Pixel 0 Set to Red during indirect write. - |
-
Green Colour -Writer Register: I/O Address: ECH (236 decimal)
- -|
- 7 - |
-
- 6 - |
-
- 5 - |
-
- 4 - |
-
- 3 - |
-
- 2 - |
-
- 1 - |
-
- 0 - |
-
- |
-
|
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- < |
-
- Pixel 7 Set to Green during indirect - write. - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- - 6 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- - 5 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- - 4 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- - 3 - |
-
|
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- - 2 - |
-
|
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- - 1 - |
-
|
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- Pixel 0 Set to Green during indirect - write. - |
-
Blue Colour -Writer Register: I/O Address: EDH (237 decimal)
- -|
- 7 - |
-
- 6 - |
-
- 5 - |
-
- 4 - |
-
- 3 - |
-
- 2 - |
-
- 1 - |
-
- 0 - |
-
- |
-
|
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- ^ - |
-
- < |
-
- Pixel 7 Set to Blue during indirect write. - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- - 6 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- - 5 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- - 4 - |
-
|
- | - |
-
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- - 3 - |
-
|
- | - |
-
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- - 2 - |
-
|
- | - |
-
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- - 1 - |
-
|
- < |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- |
-
- Pixel 0 Set to Blue during indirect - write. - |
-
For Indirect mode (Control Register bits -3/2 set to 11), a write to the Graphics RAM when mapped into CPU address space -C000H – FFFFH will see the byte masked by the Red Colour -Writer Register and written to the Red Bank with the same operation for Green and -Blue. This allows rapid setting of a colour across -the 3 banks.
- -Credits
My original intention was to port the MZ80C -Emulator written by Nibbles Lab https://github.com/NibblesLab/mz80c_de0 -to the Terasic DE10 Nano. After spending some time -analyzing it and trying to remove the NIOSII dependency, I discovered the MISTer project, at that point I decided upon writing my own -emulation. Consequently some ideas in this code will -have originated from Nibbles Lab and the i8253/Keymatrix -modules were adapted to work in this implementation. Thus -due credit to Nibbles Lab and his excellent work.
- -Also credit to Sorgelig -for his hard work in creating the MiSTer framework -and design of some excellent hardware add-ons. The MiSTer -framework makes it significantly easier to design/port emulations.
- -Links
The Sharp MZ Series Computers were not as -wide spread as Commodore, Atari or Sinclair but they had a dedicated following. -Given their open design it was very easy to modify and extend applications such -as the BASIC interpreters and likewise easy to add hardware extension. As such, -a look round the web finds some very comprehensive User Groups with invaluable -resources. If you need manuals, programs, information then please look (for -starters) at the following sites:-
- - - -https://www.sharpmz.no/
- - - -http://www.sharpusersclub.org/
- -http://www.scav.cz/uvod.htm (use chrome to auto translate Czech)
- -