Skip to content

Interpreter does not reproduce typing behavior of existing implementations #2

Description

@dmoews

In IPL-V, the dominant data type is the symbol, i.e., cell address. Symbols have types, which can be regional, local or internal, but this information is not found in the address itself. Rather, it's in the P and Q octal digits. When you access a symbol via the SYMB field of a cell, the P and Q fields are associated with that so it has the type given by the stored values of these fields. However, these values can be changed as a result of running J136 (make local) and J138 (make internal.)

When you access a symbol in some other way though, e.g., via an immediate load (10xxx) in program code or via the LINK field (e.g. as an output of J60), these fields are not present. What values of P and Q do you get then? In the IBM 7094 implementation of IPL-V given in the simulator https://github.com/Bertoid1311/B7094, it seems that you get PQ = 04 as an output of J60 and PQ = 00 after an immediate load. Also, I found assembly language source code for an IBM 1620 implementation of IPL-V: https://purl.stanford.edu/hj487fn0811. Although I have not tried running this, it looks like it also gives PQ = 04 for J60 outputs and PQ = 00 on immediate loads (look at pages 31 and 41.)

This interpreter does not reproduce this behavior. I have attached an IPL-V program investigating this typing behavior and its output on the IBM 7094 as compared to this interpreter.

Program

IBM 7094 output

Output of this interpreter

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions