Skip to content

i7010 - Card ASCII to BCD Translation #532

@cube1us

Description

@cube1us

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 +)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions