Leave the DATA display register alone on the 11/70 (making it more diagnostic-friendly)

This commit is contained in:
Jeff 2016-11-14 15:27:55 -08:00 • committed by Jeff Parsons
commit 0370b81a69
16 changed files with 198 additions and 172 deletions

View file

@ -10,4 +10,4 @@ PDP-11 Software
We have archived the following selected PDP-11 software:
- [Boot Software](boot/)
- [DEC PDP-11 Tapes](tapes/), including [Diagnostic Tapes](tapes/diags/)
- [DEC PDP-11 Tapes](tapes/), including [Paper Tape Diagnostics](tapes/diags/)

View file

@ -20,8 +20,13 @@ This was the real-world process. Fortunately, PDPjs machines include features t
For starters, any "Absolute Format" tape (which should include all the tapes listed below) can be loaded directly
into RAM using the machine's "Load" button instead of "Attach". In most cases, this eliminates the first two steps.
DEC Paper Tape Software (circa 1970)
------------------------------------
Paper Tape Diagnostics
----------------------
We have archived an assortment of [DEC Paper Tape Diagnostics](diags/).
Paper Tape Software (circa 1970)
--------------------------------
As documented in the [PDP-11/20 Handbook (1971)](http://archive.pcjs.org/pubs/dec/pdp11/1120/PDP1120_Handbook_1971.pdf),
p. 155, "PAPER TAPE SOFTWARE", the following software was available on paper tape:
@ -43,37 +48,7 @@ that described all of the above software in greater detail, and it included some
- LINK-11S LINKER
Thanks to the [iamvirtual.ca](http://iamvirtual.ca/PDP-11/PTS-11/PTS-11.htm) website, most of the above programs are
available as paper tape image files, with the exception of PAL-11S and LINK-11S:
- [ED-11-V004A SA=12430 RA=3746](ed11/DEC-11-E1PA-PB.json)
- [PAL-11A (4K)-V002A SA=1410 RA=1410](pal11a/DEC-11-ASPA-PB.json)
- [PAL-11A (8K)-V002A SA=1410 RA=1410](pal11a/DEC-11-ASXA-PB.json)
- [ODT-11](odt11/DEC-11-O1PA-PA.json)
- [ODT-11 SA=13060](odt11/DEC-11-O1PA-PB.json)
- [ODT-11X](odt11x/DEC-11-O2PA-PA.json)
- [ODT-11X-V004A SA=12220 RA=12220](odt11x/DEC-11-O2PA-PB.json)
- [IOX TAPE 1 OF 2](iox/DEC-11-YIPA-PA1.json)
- [IOX TAPE 2 OF 2](iox/DEC-11-YIPA-PA2.json)
- [IOX-V004A LOAD ADDRESS=15100](iox/DEC-11-YIPA-PB.json)
- [FPP-11 V005A TAPE 1 OF 11](fpp11/DEC-11-YQPB-PA1.json)
- [FPP-11 V005A TAPE 2 OF 11](fpp11/DEC-11-YQPB-PA2.json)
- [FPP-11 V005A TAPE 3 OF 11](fpp11/DEC-11-YQPB-PA3.json)
- [FPP-11 V005A TAPE 4 OF 11](fpp11/DEC-11-YQPB-PA4.json)
- [FPP-11 V005A TAPE 5 OF 11](fpp11/DEC-11-YQPB-PA5.json)
- [FPP-11 V005A TAPE 6 OF 11](fpp11/DEC-11-YQPB-PA6.json)
- [FPP-11 V005A TAPE 7 OF 11](fpp11/DEC-11-YQPB-PA7.json)
- [FPP-11 V005A TAPE 8 OF 11](fpp11/DEC-11-YQPB-PA8.json)
- [FPP-11 V005A TAPE 9 OF 11](fpp11/DEC-11-YQPB-PA9.json)
- [FPP-11 V005A TAPE 10 OF 11](fpp11/DEC-11-YQPB-PA10.json)
- [FPP-11 V005A TAPE 11 OF 11](fpp11/DEC-11-YQPB-PA11.json)
- [DUMPTT-V001A SA=XX7440 RA=XX7440](dumptt/DEC-11-Y1PA-PO.json)
- [DUMPTT-V001A SA=LOAD ADDRESS RA=LOAD ADDRESS](dumptt/DEC-11-Y1PA-PB.json)
- [DUMPAB-V001A SA=LOAD ADDRESS RA=LOAD ADDRESS](dumpab/DEC-11-Y2PA-PB.json)
- [DEC-11-AJPB-PB BASIC-11 v007A SA=16104 RA=0](basic/DEC-11-AJPB-PB.json)
available as paper tape image files and are included in our "Default" [PC11 High-Speed Paper Tape Reader/Punch](/devices/pdp11/pc11/)
configuration.
Some additional information on DEC's Paper Tape Software is available at [retrotechnology.com](http://retrotechnology.com/pdp11/11_20_PTS.html).
Diagnostic Paper Tape Images
----------------------------
We have also archived a collection of [Diagnostic Paper Tape Images](diags/).

View file

@ -1,11 +1,11 @@
---
layout: page
title: Diagnostic Paper Tape Images
title: DEC Paper Tape Diagnostics
permalink: /apps/pdp11/tapes/diags/
---
Diagnostic Paper Tape Images
----------------------------
Paper Tape Diagnostics
----------------------
Thanks to the [iamvirtual.ca](http://iamvirtual.ca/collection/systems/mediadoc/mediadoc.html#papertape)
website, we have archived the PDP-11 diagnostics shown below. The tapes have been added to the

View file

@ -8,3 +8,5 @@ DUMPAB (Paper Tape)
-------------------
[![DEC-11-Y2PA-PB](DEC-11-Y2PA-PB.jpg)](DEC-11-Y2PA-PB.json)
**TODO**: Add more information about **DUMPAB**.

View file

@ -10,3 +10,5 @@ DUMPTT (Paper Tape)
[![DEC-11-Y1PA-PO](DEC-11-Y1PA-PO.jpg)](DEC-11-Y1PA-PO.json)
[![DEC-11-Y1PA-PB](DEC-11-Y1PA-PB.jpg)](DEC-11-Y1PA-PB.json)
**TODO**: Add more information about **DUMPTT**.

View file

@ -8,3 +8,5 @@ ED-11 (Paper Tape)
------------------
[![DEC-11-E1PA-PB](DEC-11-E1PA-PB.jpg)](DEC-11-E1PA-PB.json)
**TODO**: Add more information about **ED-11**.

View file

@ -28,3 +28,5 @@ FPP-11 (Paper Tape)
[![DEC-11-YQPB-PA10](DEC-11-YQPB-PA10.jpg)](DEC-11-YQPB-PA10.json)
[![DEC-11-YQPB-PA11](DEC-11-YQPB-PA11.jpg)](DEC-11-YQPB-PA11.json)
**TODO**: Add more information about **FPP-11**.

View file

@ -12,3 +12,5 @@ IOX (Paper Tape)
[![DEC-11-YIPA-PA2](DEC-11-YIPA-PA2.jpg)](DEC-11-YIPA-PA2.json)
[![DEC-11-YIPA-PB](DEC-11-YIPA-PB.jpg)](DEC-11-YIPA-PB.json)
**TODO**: Add more information about **IOX**.

View file

@ -10,3 +10,5 @@ ODT-11 (Paper Tape)
[![DEC-11-O1PA-PA](DEC-11-O1PA-PA.jpg)](DEC-11-O1PA-PA.json)
[![DEC-11-O1PA-PB](DEC-11-O1PA-PB.jpg)](DEC-11-O1PA-PB.json)
**TODO**: Add more information about **ODT-11**.

View file

@ -10,3 +10,5 @@ ODT-11X (Paper Tape)
[![DEC-11-O2PA-PA](DEC-11-O2PA-PA.jpg)](DEC-11-O2PA-PA.json)
[![DEC-11-O2PA-PB](DEC-11-O2PA-PB.jpg)](DEC-11-O2PA-PB.json)
**TODO**: Add more information about **ODT-11X**.

View file

@ -10,3 +10,5 @@ PAL-11A Assembler (Paper Tape)
[![DEC-11-ASPA-PB](DEC-11-ASPA-PB.jpg)](DEC-11-ASPA-PB.json)
[![DEC-11-ASPA-PB](DEC-11-ASXA-PB.jpg)](DEC-11-ASXA-PB.json)
**TODO**: Add more information about **PAL-11A**.

View file

@ -1122,8 +1122,35 @@ PDP11.opHALT = function(opCode)
this.trap(PDP11.TRAP.BUS, 0, PDP11.REASON.HALT);
} else {
if (this.panel) {
/*
* The PDP-11/20 Handbook (1971) says that HALT does the following:
*
* Causes the processor operation to cease. The console is given control of the bus.
* The console data lights display the contents of RO; the console address lights display
* the address after the halt instruction. Transfers on the UNIBUS are terminated immediately.
* The PC points to the next instruction to be executed. Pressing the continue key on the
* console causes processor operation to resume. No INIT signal is given.
*
* However, the PDP-11/70 Handbook (1979) suggests some slight differences:
*
* Causes the processor operation to cease. The console is given control of the processor.
* The data lights display the contents of the PC (which is the address of the HALT instruction
* plus 2). Transfers on the UNIBUS are terminated immediately. Pressing the continue key on
* the console causes processor operation to resume.
*
* Given that the 11/70 doesn't saying anything about displaying R0 on a HALT, and also given that
* the 11/70 CPU EXERCISER diagnostic writes a value to the Console Switch/Display Register immediately
* before HALT'ing, I'm going to assume that updating the data display with R0 is unique to the 11/20.
*
* Also, I'm a little suspicious of the 11/70 comment that the "data lights display the contents of
* the PC," since previous models display the PC on the ADDRESS lights, not the DATA lights. And as
* I already explained, doing anything to the data lights at this point would undo what the 11/70
* diagnostics do.
*/
if (this.model == PDP11.MODEL_1120) {
this.panel.setData(this.regsGen[0], true);
}
}
if (!this.dbg) {
/*
* This will leave the PC exactly where it's supposed to be: at the address of the HALT + 2.
@ -1443,8 +1470,7 @@ PDP11.opNOP = function(opCode)
PDP11.opRESET = function(opCode)
{
if (!(this.regPSW & PDP11.PSW.CMODE)) {
this.bus.reset();
this.resetRegs();
this.resetCPU();
}
this.nStepCycles -= 667; // TODO: Review (but it's definitely a big number)
};

View file

@ -225,6 +225,17 @@ CPUStatePDP11.prototype.initRegs = function()
this.resetRegs();
};
/**
* resetCPU()
*
* @this {CPUStatePDP11}
*/
CPUStatePDP11.prototype.resetCPU = function()
{
this.bus.reset();
this.resetRegs();
};
/**
* resetRegs()
*
@ -395,9 +406,7 @@ CPUStatePDP11.prototype.setReset = function(addr, fReset)
{
this.addrReset = addr;
/*
* If we're going to slam this new address straight into PC, then it seems wise to reset the PSW as well.
*/
this.resetCPU();
this.setPC(addr);
this.setPSW(0);

View file

@ -459,7 +459,7 @@ var PDP11 = {
XCSR: 0o177564, // Display Terminal: Transmitter Status Register
XBUF: 0o177566, // Display Terminal: Transmitter Data Buffer Register
CNSW: 0o177570, // Console (Front Panel) Switch Register
CNSW: 0o177570, // Console (Front Panel) Switch/Display Register
MMR0: 0o177572, // 777572 17777572
MMR1: 0o177574, // 777574 17777574

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long