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
Conversation
There was a problem hiding this 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.
hash/h88_cass.xml
Outdated
<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> |
There was a problem hiding this comment.
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.
hash/h88_cass.xml
Outdated
<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> |
There was a problem hiding this comment.
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.
hash/h88_cass.xml
Outdated
<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> |
There was a problem hiding this comment.
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.
hash/h88_cass.xml
Outdated
<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> |
There was a problem hiding this comment.
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.
src/lib/formats/h8_cas.cpp
Outdated
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; |
There was a problem hiding this comment.
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?
src/lib/formats/h8_cas.cpp
Outdated
int loops = bit ? ONE_CYCLES : ZERO_CYCLES; | ||
int samplePerValue = SAMPLES_PER_HALF_WAVE / loops; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can these be const
?
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. |
You haven’t listed credits for the dumps. Are these dumped from your own tapes, or do they come from elsewhere? |
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 came from the sebhc group's library (which I'm a member) - https://sebhc.github.io/sebhc/software.html#Cassette_Tape_Images
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. |
It’s OK, the group can be credited.
Ideally the file names should roughly match the labels on the tapes. |
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]
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]
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.