Details of configuring the SIO port mappings #165
Replies: 4 comments 7 replies
-
A really nice summary how how CP/M 2.2 does logical to "physical" device mapping. I will write up the details of configuring the SIO port mappings with the HAL and post it here and add it to the website ensuring I answer the questions you've asked. Should be able to do that this weekend. |
Beta Was this translation helpful? Give feedback.
-
As noted above: there are only 4 (four) ports for the CP/M logical devices to be mapped via the CP/M "physical" level and these are the 4 serial ports of the emulated SIO communications cards each with 2 ports, designated:
The HAL then lets us map these 4 (four) ports to one or more of 8 (eight) actual end points for the emulation as follows:
This much is summarised in the Configuration guide
The remaining 2 (two) actual end points for the emulation are specific to the S-132 add-on:
Now that we understand the full list of endpoints, it is time to understand the operation of the HAL:
|
Beta Was this translation helpful? Give feedback.
-
Actually, there is still something missing from this story to complete the picture. But the answer is buried in the CP/M BDOS code and I've never fully understood it. It would be great if someone could conclusively complete the picture. The un-resolved link is how CP/M maps the 12 (twelve) CP/M "physical" devices to entry points in the CP/M BIOS. For me: |
Beta Was this translation helpful? Give feedback.
-
This simply is hardcoded in the STAT program, it has no informations about physical ports in a machine. The program sets two bits in the IOByte for a logical device, up to the BIOS to make something meaningful from the bits. The latest BIOS version B03 makes best use of this. |
Beta Was this translation helpful? Give feedback.
-
I've been trying to figure out how the multiple layers of mapping of character mode devices to the four (4) virtual SIO serial ports actually works on the IMSAI8080esp.
At the CP/M level, there are four logical devices that are mapped to "physical" devices - CON, RDR, PUN, and LST.
The CP/M "physical" devices to which these logical devices may be mapped (by default IOBYTE values or modified with the STAT command) are:
Not all CP/M physical devices may be attached to the logical devices, as only two bits per logical device or four possibilities are present in the IOBYTE for each logical device . What is possible, defined in CP/M BIOS, may be displayed by the "STAT VAL:" command. For example:
The actual devices attached to the IMSAI8080esp are driven by port definitions and subroutines in the BIOS portion of CP/M. Thus, the logical RDR: device, for example, could actually be a high speed reader, teletype reader, or cassette tape. The BIOS defines the mapping of the CP/M physical device names to specific SIO Z80 ports. An example of SIO emulated processor port definitions from the BIOS source code is here:
However, since we are dealing with an emulated Z80/8080 and SIO boards, there are lines in boot.conf and system.conf that define how the HAL or Hardware Abstraction Layer operates. These lines define how the emulated SIO board ports map to real ESP UARTS and other emulated devices, like the modem:
These mappings require modification if the S132 is installed. For example, my system (with S132 enabled) uses:
What I am unclear about (and seems not to be documented) is how these boot.conf lines work.
The configuration guides on Dave's web site for the IMSAI8080esp and S132 has some guidance, but details are lacking. Dave mentions "details of configuring the SIO port mappings will be published later". I'd be very interested in those details.
Regards,
Don
Beta Was this translation helpful? Give feedback.
All reactions