Skip to content
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
wants to merge 11 commits into
base: master
Choose a base branch
from
Draft

Conversation

Googulator
Copy link

No description provided.

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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant