Skip to content

lack of delay in setting done on LPCB in lpt647 (Was "Wrong PDP-7 line printer interface") #551

@Frodevan

Description

@Frodevan

When running the Digital 7-60-M Type 34 display maintenance tape, the light-pen test triggers an infinite interrupt-loop due to the PDP-7 emulator defaulting to the wrong interface for the line-printer.

This is due to the maintenance-tape interrupt handler clearing flags from various standard peripherals, and it's using the following instructions to clear the flags from the line printer:

  • 706602
  • 706502

According to the PDP-7 user handbook (https://bitsavers.org/pdf/dec/pdp7/F-75_PDP-7userHbk_Jun65.pdf page 199), these should be clear the Spacing and Done flag, respectively, and this meaning is in line with the context of the subroutine this code is located in.

However, it seems like the emulator uses the same line-printer interface as the PDP-9 emulator, where these two instructions have different meanings (see https://bitsavers.org/pdf/dec/pdp9/PDP-9_UsersManual.pdf page 4-18). Namely clear Done flag and Initialize cleaning-cycle respectively. As the cleaning-cycle immediately triggers a new interrupt, the end result is an infinite loop in this case.

Judging from this case, and the difference behaviour described in the two user handbooks, should the PDP-7 emulator really share the same line-printer interface as the PDP-9 one by default? I won't deny some PDP-7's might have had the later type printer interface fitted, and it's not unreasonable to have it as an option, but I would argue that it should be an active choice the user have to take. Having it enabled by default, at least, caused me a lot of headache debugging what actually went wrong when running the mentioned maintenance tape.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions