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

heathkit/h89.cpp: Add software list for H88 cassette software #12019

Merged
merged 6 commits into from Feb 17, 2024

Conversation

mgarlanger
Copy link
Contributor

Added official Heath software programs for the H88 cassette interface. These programs were originally written for the H8 and it's cassette interface, but needed updating to support the H89's 8250 UART for the console, instead of the original 8251 used in the H8.

Copy link
Member

@cuavas cuavas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When there are different versions a piece of software in a software list, they should have parent/clone relationships.

Comment on lines 8 to 40
<software name="bug8_02_05_00">
<description>BUG-8 02.05.00</description>
<year>1978</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="Heath/Wintek Terminal Debugger"/>
<info name="developer" value="Heath Corp./Wintek Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197806xx"/>
<info name="version" value="02.05.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="5027">
<rom name="bug8_02_05_00.h8t" size="5027" crc="6013dd00" sha1="805f89fee7ade4cf9d2401b111006634d9239d92"/>
</dataarea>
</part>
</software>

<software name="bug8_02_06_00">
<description>BUG-8 02.06.00</description>
<year>1978</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="Heath/Wintek Terminal Debugger"/>
<info name="developer" value="Heath Corp./Wintek Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197806xx"/>
<info name="version" value="02.06.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="5143">
<rom name="bug8_02_06_00.h8t" size="5143" crc="63ab0c02" sha1="29c0b0242dca535eebc911288df40f34813cf08b"/>
</dataarea>
</part>
</software>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these different versions of the same software? If they are, the earlier version(s) should be marked as clones of the latest version.

Comment on lines 42 to 91
<software name="exbasic_10_05_00">
<description>Extended Benton Harbor Basic 10.05.00</description>
<year>1978</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="Extended Benton Harbor Basic"/>
<info name="developer" value="Heath Corp./Wintek Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197806xx"/>
<info name="version" value="10.05.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="12028">
<rom name="exbasic_10_05_00.h8t" size="12028" crc="f7ff8fcc" sha1="d1010ed4d3cb68a0fb4a3380bf3d5c31b72bf370"/>
</dataarea>
</part>
</software>

<software name="exbasic_10_05_01">
<description>Extended Benton Harbor Basic 10.05.01</description>
<year>1978</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="Extended Benton Harbor Basic"/>
<info name="developer" value="Heath Corp./Wintek Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197806xx"/>
<info name="version" value="10.05.01"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="12029">
<rom name="exbasic_10_05_01.h8t" size="12029" crc="ac6f60f2" sha1="59cf1d2077548ba14cc5b600f065f3147b87a9e3"/>
</dataarea>
</part>
</software>

<software name="exbasic_10_06_00">
<description>Extended Benton Harbor Basic 10.06.00</description>
<year>1979</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="Extended Benton Harbor Basic"/>
<info name="developer" value="Heath Corp./Wintek Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197905xx"/>
<info name="version" value="10.06.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="12188">
<rom name="exbasic_10_06_00.h8t" size="12188" crc="9fafdac1" sha1="f55bfab541640ac92e615e83eb2d705347d17510"/>
</dataarea>
</part>
</software>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These also appear to be different versions of the same software that should have parent/clone relationships.

Comment on lines 93 to 125
<software name="hasl8_04_05_00">
<description>Heath H8 Assembler 04.05.00</description>
<year>1978</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="Heath HASL"/>
<info name="developer" value="Heath Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197806xx"/>
<info name="version" value="04.05.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="7514">
<rom name="hasl8_04_05_00.h8t" size="7514" crc="2a67cc74" sha1="aa109a5cfc4e84d002c1f237e072524d7eb00cf9"/>
</dataarea>
</part>
</software>

<software name="hasl8_04_06_00">
<description>Heath H8 Assembler 04.06.00</description>
<year>1979</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="Heath HASL"/>
<info name="developer" value="Heath Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197905xx"/>
<info name="version" value="04.05.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="7656">
<rom name="hasl8_04_06_00.h8t" size="7656" crc="803261b4" sha1="475d2c9edd7d3b1e4e91e18265055747909882ff"/>
</dataarea>
</part>
</software>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also appears to be a set of versions of the same software.

Comment on lines 127 to 159
<software name="ted8_03_05_00">
<description>Heath/Wintek H8 Editor 03.05.00</description>
<year>1979</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="TED-8"/>
<info name="developer" value="Heath Corp./Wintek Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197803xx"/>
<info name="version" value="03.05.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="6975">
<rom name="ted8_03_05_00.h8t" size="6975" crc="b2f174ef" sha1="719305f2a431d77c8f77e49cf4d0f40765b59f0d"/>
</dataarea>
</part>
</software>

<software name="ted8_03_06_00">
<description>Heath/Wintek H8 Editor 03.06.00</description>
<year>1979</year>
<publisher>Heath Corp.</publisher>
<info name="alt_title" value="TED-8"/>
<info name="developer" value="Heath Corp./Wintek Corp."/>
<info name="distributor" value="Heath Corp."/>
<info name="release" value="197803xx"/>
<info name="version" value="03.05.00"/>

<part name="cass" interface="h88_cass_player">
<dataarea name="cass" size="7099">
<rom name="ted8_03_06_00.h8t" size="7099" crc="0e2d2186" sha1="a3df79d1629fc11864060e5858d554aa9b5963d1"/>
</dataarea>
</part>
</software>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This appears to be another set of versions of the same software.

Comment on lines 21 to 34
static const uint16_t WAVEENTRY_LOW = -32768;
static const uint16_t WAVEENTRY_HIGH = 32767;
static const uint16_t SILENCE = 0;

// using a multiple of 4800 will ensure an integer multiple of samples for each wave.
static const uint16_t H8_WAV_FREQUENCY = 9600;
static const uint16_t TAPE_BAUD_RATE = 300;
static const uint16_t SAMPLES_PER_BIT = H8_WAV_FREQUENCY / TAPE_BAUD_RATE;
static const uint16_t SAMPLES_PER_HALF_WAVE = SAMPLES_PER_BIT / 2;

#define H8_WAV_FREQUENCY 9600
static const uint16_t ONE_FREQ = 1200;
static const uint16_t ZERO_FREQ = 2400;
static const uint16_t ONE_CYCLES = H8_WAV_FREQUENCY / ONE_FREQ;
static const uint16_t ZERO_CYCLES = H8_WAV_FREQUENCY / ZERO_FREQ;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you use constexpr for these?

Comment on lines 53 to 54
int loops = bit ? ONE_CYCLES : ZERO_CYCLES;
int samplePerValue = SAMPLES_PER_HALF_WAVE / loops;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can these be const?

@cuavas
Copy link
Member

cuavas commented Feb 16, 2024

Also, we tend to not include version information in the short name for the latest version of a piece of software in a software list so that using the unadorned name gets you the latest version (e.g. name="bug8" for the latest version of BUG-8, name="ted8" for the latest version of the editor, etc.).

@cuavas
Copy link
Member

cuavas commented Feb 17, 2024

You haven’t listed credits for the dumps. Are these dumped from your own tapes, or do they come from elsewhere?

@cuavas
Copy link
Member

cuavas commented Feb 17, 2024

Also, what does, “These programs were originally written for the H8 and it's cassette interface, but needed updating to support the H89's 8250 UART for the console, instead of the original 8251 used in the H8,” mean? Were the programs officially updated, or do you mean they were modified by users to work with the H89’s 8250?

@mgarlanger
Copy link
Contributor Author

You haven’t listed credits for the dumps. Are these dumped from your own tapes, or do they come from elsewhere?

These came from the sebhc group's library (which I'm a member) - https://sebhc.github.io/sebhc/software.html#Cassette_Tape_Images
These images have been in the library for many years (15+). I'm not sure who originally imaged them and not sure I'd be able to determine who did. I could ask the group if that is critical, but it wasn't done specifically for mame or this software list.

Also, what does, “These programs were originally written for the H8 and it's cassette interface, but needed updating to support the H89's 8250 UART for the console, instead of the original 8251 used in the H8,” mean? Were the programs officially updated, or do you mean they were modified by users to work with the H89’s 8250?

These were officially updated by Heath and offered for sale as shown in their catalog - https://heathkit.garlanger.com/catalogs/1980/Heathkit_Catalog_849.pdf, see page 5 of the scan(p. 75 of the catalog).

Note: I tried all the images in the zip file, and only the ones which worked on the H88 were included in this list. I also renamed the files to show the version number.

@cuavas
Copy link
Member

cuavas commented Feb 17, 2024

These came from the sebhc group's library (which I'm a member) - https://sebhc.github.io/sebhc/software.html#Cassette_Tape_Images
These images have been in the library for many years (15+). I'm not sure who originally imaged them and not sure I'd be able to determine who did. I could ask the group if that is critical, but it wasn't done specifically for mame or this software list.

It’s OK, the group can be credited.

Note: I tried all the images in the zip file, and only the ones which worked on the H88 were included in this list. I also renamed the files to show the version number.

Ideally the file names should roughly match the labels on the tapes.

@cuavas cuavas merged commit 6685636 into mamedev:master Feb 17, 2024
6 checks passed
Mokona pushed a commit to Mokona/mame that referenced this pull request Feb 28, 2024
New working software list items (h88_cass.xml)
------------------------
BUG-8 02.05.00 [Society of Eight-Bit Heathkit Computerists]
BUG-8 02.06.00 [Society of Eight-Bit Heathkit Computerists]
Extended Benton Harbor Basic 10.05.00 [Society of Eight-Bit Heathkit Computerists]
Extended Benton Harbor Basic 10.05.01 [Society of Eight-Bit Heathkit Computerists]
Extended Benton Harbor Basic 10.06.00 [Society of Eight-Bit Heathkit Computerists]
Heath H8 Assembler 04.05.00 [Society of Eight-Bit Heathkit Computerists]
Heath H8 Assembler 04.06.00 [Society of Eight-Bit Heathkit Computerists]
Heath/Wintek H8 Editor 03.05.00 [Society of Eight-Bit Heathkit Computerists]
Heath/Wintek H8 Editor 03.06.00 [Society of Eight-Bit Heathkit Computerists]
stonedDiscord pushed a commit to stonedDiscord/mame that referenced this pull request Apr 8, 2024
New working software list items (h88_cass.xml)
------------------------
BUG-8 02.05.00 [Society of Eight-Bit Heathkit Computerists]
BUG-8 02.06.00 [Society of Eight-Bit Heathkit Computerists]
Extended Benton Harbor Basic 10.05.00 [Society of Eight-Bit Heathkit Computerists]
Extended Benton Harbor Basic 10.05.01 [Society of Eight-Bit Heathkit Computerists]
Extended Benton Harbor Basic 10.06.00 [Society of Eight-Bit Heathkit Computerists]
Heath H8 Assembler 04.05.00 [Society of Eight-Bit Heathkit Computerists]
Heath H8 Assembler 04.06.00 [Society of Eight-Bit Heathkit Computerists]
Heath/Wintek H8 Editor 03.05.00 [Society of Eight-Bit Heathkit Computerists]
Heath/Wintek H8 Editor 03.06.00 [Society of Eight-Bit Heathkit Computerists]
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.

None yet

2 participants