Added getTrapStatus() so that the Debugger can display trap information whenever a trap has just occurred, updated FileDump to store 'load' and 'exec' properties in MACRO-11 listing dumps (so that the individual machine files don't have to specify hard-coded 'load' and 'exec' values themselves), and added a new SerialPort parameter (upperCase) that can be used to force all received data to upper-case
This commit is contained in:
parent
5f05913036
commit
5808778351
24 changed files with 269 additions and 182 deletions
|
|
@ -1,4 +1,5 @@
|
|||
{"words":[
|
||||
{"load":0xC000 /*140000*/,"exec":0xC000 /*140000*/,
|
||||
"words":[
|
||||
0x0005 /*000005*/,0x0A1F /*005037*/,0xFFFE /*177776*/,0x15C6 /*012706*/,0xC000 /*140000*/,0x0A1F /*005037*/,0xFF74 /*177564*/,0x15C0 /*012700*/,
|
||||
0xC251 /*141121*/,0x09F7 /*004767*/,0x0052 /*000122*/,0x15DF /*012737*/,0xC054 /*140124*/,0x0040 /*000100*/,0x15DF /*012737*/,0x00E0 /*000340*/,
|
||||
0x0042 /*000102*/,0x55DF /*052737*/,0x0040 /*000100*/,0xFF66 /*177546*/,0x15C0 /*012700*/,0xC27B /*141173*/,0x09F7 /*004767*/,0x0038 /*000070*/,
|
||||
|
|
|
|||
|
|
@ -29,13 +29,12 @@ One of the first things I noticed when debugging PDP-11 BASIC was its heavy reli
|
|||
For example, `TRAP 000` is used to output the character in R2 to the terminal. Let's take a closer look at how
|
||||
its TRAP handler works.
|
||||
|
||||
First, if you check the table of PDP-11 trap vectors, you'll see that the vector for TRAP instructions is 000034.
|
||||
So let's dump the contents of the two-word vector at 000034:
|
||||
Since the trap vector for TRAP instructions is fixed at address 000034, we need to dump the contents of that vector:
|
||||
|
||||
>> dw 034 l2
|
||||
000034 000100 000000
|
||||
|
||||
The BASIC TRAP handler is at 000100, and here's that code:
|
||||
This tells us that the BASIC TRAP handler is at 000100:
|
||||
|
||||
>> u 000100
|
||||
000100: 011666 000002 MOV @SP,2(SP)
|
||||
|
|
@ -67,7 +66,7 @@ an *even* value) into a jump table index.
|
|||
The final instruction, `MOV @(SP)+,PC`, moves the address at the jump table index into PC, while also removing the TRAP
|
||||
instruction from the stack, leaving only the *previous PC* on the stack.
|
||||
|
||||
### Comparing to SIMH
|
||||
### The PDPjs Debugger vs. SIMH
|
||||
|
||||
How to set (and display) a breakpoint in PDPjs:
|
||||
|
||||
|
|
@ -81,4 +80,3 @@ How to set (and display) the same breakpoint in SIMH:
|
|||
sim> break -e 016220
|
||||
sim> show break
|
||||
16220: E
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue