Leave the DATA display register alone on the 11/70 (making it more diagnostic-friendly)
This commit is contained in:
parent
ba0ca49854
commit
0370b81a69
16 changed files with 198 additions and 172 deletions
|
|
@ -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/)
|
||||
|
|
|
|||
|
|
@ -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/).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -8,3 +8,5 @@ DUMPAB (Paper Tape)
|
|||
-------------------
|
||||
|
||||
[](DEC-11-Y2PA-PB.json)
|
||||
|
||||
**TODO**: Add more information about **DUMPAB**.
|
||||
|
|
|
|||
|
|
@ -10,3 +10,5 @@ DUMPTT (Paper Tape)
|
|||
[](DEC-11-Y1PA-PO.json)
|
||||
|
||||
[](DEC-11-Y1PA-PB.json)
|
||||
|
||||
**TODO**: Add more information about **DUMPTT**.
|
||||
|
|
|
|||
|
|
@ -8,3 +8,5 @@ ED-11 (Paper Tape)
|
|||
------------------
|
||||
|
||||
[](DEC-11-E1PA-PB.json)
|
||||
|
||||
**TODO**: Add more information about **ED-11**.
|
||||
|
|
|
|||
|
|
@ -28,3 +28,5 @@ FPP-11 (Paper Tape)
|
|||
[](DEC-11-YQPB-PA10.json)
|
||||
|
||||
[](DEC-11-YQPB-PA11.json)
|
||||
|
||||
**TODO**: Add more information about **FPP-11**.
|
||||
|
|
|
|||
|
|
@ -12,3 +12,5 @@ IOX (Paper Tape)
|
|||
[](DEC-11-YIPA-PA2.json)
|
||||
|
||||
[](DEC-11-YIPA-PB.json)
|
||||
|
||||
**TODO**: Add more information about **IOX**.
|
||||
|
|
|
|||
|
|
@ -10,3 +10,5 @@ ODT-11 (Paper Tape)
|
|||
[](DEC-11-O1PA-PA.json)
|
||||
|
||||
[](DEC-11-O1PA-PB.json)
|
||||
|
||||
**TODO**: Add more information about **ODT-11**.
|
||||
|
|
|
|||
|
|
@ -10,3 +10,5 @@ ODT-11X (Paper Tape)
|
|||
[](DEC-11-O2PA-PA.json)
|
||||
|
||||
[](DEC-11-O2PA-PB.json)
|
||||
|
||||
**TODO**: Add more information about **ODT-11X**.
|
||||
|
|
|
|||
|
|
@ -10,3 +10,5 @@ PAL-11A Assembler (Paper Tape)
|
|||
[](DEC-11-ASPA-PB.json)
|
||||
|
||||
[](DEC-11-ASXA-PB.json)
|
||||
|
||||
**TODO**: Add more information about **PAL-11A**.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in a new issue