ALTAIRZ80: Adds JAIR devices to simulator

Josh's Altair/IMSAI Replacement (JAIR) is a single board computer
(SBC) for the S100 bus. I created this device to assist a friend
with getting IMP and CBBS working on his JAIR. Without having a
JAIR myself, AltairZ80 to the rescue!

The following devices are added:

JAIR   - The main JAIR board I/O and ROM
JAIRS0 - Serial Port 0 (COM1)
JAIRS1 - Serial Port 1 (COM2)
JAIRP  - Parallel Port

This was a bit challenging because the JAIR uses an on-board SD
card with FAT file system to hold its BIOS and CP/M disk images.
The ATTACH command is used to mount SD card images to the
simulator. The simulator emulates the SD card interface for
read/writing SD card sectors. These images are easily mounted on
a Mac making moving files around easy. I do not know about Windows.
These same images can be written to an SD card and used with real
JAIR hardware, which may be useful for JAIR owners.

The serial and parallel ports fully support TMXR. Host serial ports
and sockets may be attached to these devices.

I am working on a GitHub repository containing an SD card image and
init script that will boot CP/M 2.2 on the JAIR simulator.

Is this device one that should be added to AltairZ80?
This commit is contained in:
Patrick Linstruth 2023-12-30 06:53:35 -05:00 committed by Paul Koning
parent 560f30d144
commit 3b4333dfcc
6 changed files with 1832 additions and 1 deletions

View file

@ -18,6 +18,7 @@ add_simulator(altairz80
SOURCES
altairz80_cpu.c
altairz80_cpu_nommu.c
s100_jair.c
sol20.c
s100_vdm1.c
mmd.c

View file

@ -79,6 +79,10 @@ extern DEVICE m2sio0_dev;
extern DEVICE m2sio1_dev;
extern DEVICE pmmi_dev;
extern DEVICE hayes_dev;
extern DEVICE jair_dev;
extern DEVICE jairs0_dev;
extern DEVICE jairs1_dev;
extern DEVICE jairp_dev;
extern DEVICE mmd_dev;
extern DEVICE mmdm_dev;
extern DEVICE sol20_dev;
@ -171,6 +175,11 @@ DEVICE *sim_devices[] = {
&pmmi_dev,
/* HAYES MODEM */
&hayes_dev,
/* JAIR SBC */
&jair_dev,
&jairs0_dev,
&jairs1_dev,
&jairp_dev,
/* Vector Graphic Devices */
&fw2_dev, &vfdhd_dev,
/* Single-Board Computers */

1815
AltairZ80/s100_jair.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -366,6 +366,10 @@
RelativePath="..\AltairZ80\s100_jadedd.c"
>
</File>
<File
RelativePath="..\AltairZ80\s100_jair.c"
>
</File>
<File
RelativePath="..\AltairZ80\s100_mdriveh.c"
>

View file

@ -281,6 +281,7 @@
<ClCompile Include="..\AltairZ80\s100_icom.c" />
<ClCompile Include="..\AltairZ80\s100_if3.c" />
<ClCompile Include="..\AltairZ80\s100_jadedd.c" />
<ClCompile Include="..\AltairZ80\s100_jair.c" />
<ClCompile Include="..\AltairZ80\s100_mdriveh.c" />
<ClCompile Include="..\AltairZ80\s100_mdsa.c" />
<ClCompile Include="..\AltairZ80\s100_mdsad.c" />
@ -349,4 +350,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View file

@ -1894,6 +1894,7 @@ ALTAIR_OPT = -I ${ALTAIRD}
ALTAIRZ80D = ${SIMHD}/AltairZ80
ALTAIRZ80 = ${ALTAIRZ80D}/altairz80_cpu.c ${ALTAIRZ80D}/altairz80_cpu_nommu.c \
${ALTAIRZ80D}/s100_jair.c \
${ALTAIRZ80D}/sol20.c \
${ALTAIRZ80D}/s100_vdm1.c \
${ALTAIRZ80D}/mmd.c \