There are differences between the i7010 emulator card codes and those of i1401 and (in the i1401 documentation) 7094.
I was in the process of keying in and assembling the 1410/7010 card reader/punch diagnostic RP01A (the tapes have RP01B, but we have no listings for that), and ran into the need for lots of "interesting" characters for the IBM 1410: record mark, group mark, segment mark among them - typically in instructions checking channel status. In so doing, I realized I wanted to make that more convenient, and looked at the code for i1401 as a guide.
I also looked at i7010, and noticed a significant number of differences. I suggest bringing the card code translation for i7010 in line with i1401. I denoted cases where there is a conflict (i.e., where it would not be possible to just add another input ASCII character) with an * - which is all but the word separator, since i7010 currently decodes ascii "~" as invalid BCD.
I also noticed discrepancies between the 8 year old i7010.doc and the current code.
(When I went through this with my 1410 emulator just today, I was able to just add the i1401 codes for input cards, except for a conflict between usage of '^' as I use that for an output code and changing will require me to change the font - which I will do some day. (I also have several special codes I use for output that are not listed in either of these -- but that's my problem - I will eventually wan to adjust my fonts so that I can output the same codes as i1401.)
NOTE: I relied on the documentation and github for the i7010 and looked at the doc from 2025/02/02 for i1401. I did not know for sure whether i7010 is using ascii_to_six from simh/sim_card.c or its own ascii_to_six table - but in a 5 minute compare they seemed to match.
Errors in the table below are quite possible. ;) Really, just wanted to bring this to your attention.
Current on github 2025/02/02
Character i7010 Doc simh/sim_card.c i1401 (Doc and code match)
*Tape Mark/Radical " %, } {
*Record Mark # # |
*Segment Mark { <none> "
*Group Mark | | }
Word Separator/Mark ` ` ~
*Alternate Blank _ _ ^
*Delta ^ {, ^ _ (underscore)
Hash / Equal = = = (and probably #)
Ampersand / Plus &, + &,+ & (and probably +)
There are differences between the i7010 emulator card codes and those of i1401 and (in the i1401 documentation) 7094.
I was in the process of keying in and assembling the 1410/7010 card reader/punch diagnostic RP01A (the tapes have RP01B, but we have no listings for that), and ran into the need for lots of "interesting" characters for the IBM 1410: record mark, group mark, segment mark among them - typically in instructions checking channel status. In so doing, I realized I wanted to make that more convenient, and looked at the code for i1401 as a guide.
I also looked at i7010, and noticed a significant number of differences. I suggest bringing the card code translation for i7010 in line with i1401. I denoted cases where there is a conflict (i.e., where it would not be possible to just add another input ASCII character) with an * - which is all but the word separator, since i7010 currently decodes ascii "~" as invalid BCD.
I also noticed discrepancies between the 8 year old i7010.doc and the current code.
(When I went through this with my 1410 emulator just today, I was able to just add the i1401 codes for input cards, except for a conflict between usage of '^' as I use that for an output code and changing will require me to change the font - which I will do some day. (I also have several special codes I use for output that are not listed in either of these -- but that's my problem - I will eventually wan to adjust my fonts so that I can output the same codes as i1401.)
NOTE: I relied on the documentation and github for the i7010 and looked at the doc from 2025/02/02 for i1401. I did not know for sure whether i7010 is using ascii_to_six from simh/sim_card.c or its own ascii_to_six table - but in a 5 minute compare they seemed to match.
Errors in the table below are quite possible. ;) Really, just wanted to bring this to your attention.