-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IMDS2/IPB/IPC fixes #13419
Draft
Googulator
wants to merge
11
commits into
mamedev:master
Choose a base branch
from
Googulator:imds2_ipb_ipc_fixes
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
IMDS2/IPB/IPC fixes #13419
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IPC has only one 4KiB ROM chip, mapped in 2 segments to 0xE800:0xEFFF and 0xF800:0xFFFF. There is no second ROM chip, and no ROM is mapped to 0xF000:0xF7FF.
* Use correct clock rates for each board (4.0MHz for IPC, 2.6MHz for IPB) * Make IPB's CPU a 8080A * Remove bogus ROM range between 0xF000 and 0xF7FF * Correct board full names and release years * Only map 32KiB RAM on IPB (IPC has 64KiB, partially shadowed by ROM)
The ROM set used before is a modded version of v1.3 that runs uart1 at 9600 baud by default. It's not clear if an IPB ever shipped with a v1.3 monitor from the factory, although many IPBs were upgraded to this monitor version by their operators, so it's better to default to v1.2 - either way, reference the real, genuine ROMs. not some random modified one.
Personally verified with an actual IPB in hand, the crystal in question is clearly marked "23.400 Crystek". Official schematics also say 23.4MHz.
This ROM set was found in an IPB in my possession, programmed into a pair of Hitachi HN462716G EPROMs with 0J3 (September 1980) date code. The IPB in question has Siemens branding, which suggests that it was once part of a Siemens SME system (German OEM version of the Intellec Series II Microcomputer Development System AKA "imds2"). It's identical to the regular v1.2 in every way, except for serial channel A (TTY), which operates at 600 baud instead of the usual 110, and has an additional 400ms wait added after each line break. This seems to be an adaptation to a 600 baud teleprinter, perhaps a Telefunken Telestar 121/122.
8080 and 8085 require specifying their clocks differently: for 8080, the clock given is the internal core clock, while 8085 instead requires the crystal frequency to be given. This wrongly made IPC slightly slower than IPB; in reality, the IPC is significantly faster.
This driver emulates a Model 225 MDS in particular. Also, the proper full name used by Intel was "Intellec Series II Microcomputer Development System". During the Series II era, Intel carefully avoided using the abbreviation "MDS" outside of product codes, due to legal action by Mohawk Data Sciences Corporation.
Both the IPB and IPC have pull-up resistors on the output (system-facing) side of the system data bus transceiver(s). Since these are inverting transceivers, a pull-up on the output has equivalent effect to a pull-down on the input (CPU-facing) side. The data bus is shared between I/O and memory accesses, therefore both unmapped memory and unmapped I/O ports return all zeros, not all ones. This should fix the "DISK ERROR" message shown by both IPB and IPC on startup.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.