Fixed parsing of expressions with spaces
This commit is contained in:
parent
e3428dd36c
commit
b2a6a06908
11 changed files with 11503 additions and 13 deletions
|
|
@ -10,7 +10,8 @@ PDP-10 KLAD Diagnostics
|
|||
PCjs has archived selected files from
|
||||
[PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html), including:
|
||||
|
||||
- [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA-B-D)](dakaa/)
|
||||
- [KA10 Basic Instruction Diagnostic #2 (MAINDEC-10-DAKAB-B-D)](dakab/)
|
||||
- [KA10 Basic Instruction Diagnostic #3 (MAINDEC-10-DAKAC-B-D)](dakac/)
|
||||
- [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD-B-D)](dakad/)
|
||||
- [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA)](dakaa/)
|
||||
- [KA10 Basic Instruction Diagnostic #2 (MAINDEC-10-DAKAB)](dakab/)
|
||||
- [KA10 Basic Instruction Diagnostic #3 (MAINDEC-10-DAKAC)](dakac/)
|
||||
- [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD)](dakad/)
|
||||
- [KA10 Basic Instruction Diagnostic #5 (MAINDEC-10-DAKAE)](dakae/)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ machines:
|
|||
PDP-10 KA10 Basic Instruction Diagnostic #1
|
||||
-------------------------------------------
|
||||
|
||||
The *PDP-10 KA10 Basic Instruction Diagnostic #1* (MAINDEC-10-DAKAA-B-D) test code has been extracted from
|
||||
The *PDP-10 KA10 Basic Instruction Diagnostic #1* (MAINDEC-10-DAKAA) test code has been extracted from
|
||||
[DAKAAM.MAC](DAKAAM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaam.mac.html)]
|
||||
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
|
||||
|
||||
|
|
|
|||
|
|
@ -1714,7 +1714,7 @@ B35000: SETZ ;PRELOAD AC,E WITH 0
|
|||
B35500: SETZ ;PRELOAD AC WITH 0
|
||||
SETO 1, ;PRELOAD E WITH -1,,-1
|
||||
HLLM 1 ;*HLLM SHOULD PLACE 0,,-1 INTO E
|
||||
CAIE 1,- 1 ;PASS IF C(E) =0,,-1
|
||||
CAIE 1,-1 ;PASS IF C(E) =0,,-1
|
||||
STOP
|
||||
|
||||
;***** FAILURE ANALYSIS *****
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ EXIOT=4000 ;USER PRIV I/O FLAG
|
|||
FXU=100 ;FLOATING UNDERFLOW
|
||||
DCK=40 ;DIVIDE CHECK
|
||||
|
||||
|
||||
;MACROS
|
||||
|
||||
; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1)
|
||||
|
|
@ -33,6 +32,7 @@ DEFINE SFLAG (A)<
|
|||
MOVSI 1,A
|
||||
JFCL 17,.+1 ;RESET ALL FLAGS
|
||||
JRST 2,.+1(1) ;SET A FLAG>
|
||||
|
||||
SUBTTL DIAGNOSTIC SECTION
|
||||
|
||||
START: ;SETZM USER# ;CLEAR USER CONTROL WORD
|
||||
|
|
|
|||
5687
apps/pdp10/diags/klad/dakae/DAKAE.LST.txt
Normal file
5687
apps/pdp10/diags/klad/dakae/DAKAE.LST.txt
Normal file
File diff suppressed because it is too large
Load diff
2772
apps/pdp10/diags/klad/dakae/DAKAE.MAC.txt
Normal file
2772
apps/pdp10/diags/klad/dakae/DAKAE.MAC.txt
Normal file
File diff suppressed because it is too large
Load diff
2739
apps/pdp10/diags/klad/dakae/DAKAEM.MAC.txt
Normal file
2739
apps/pdp10/diags/klad/dakae/DAKAEM.MAC.txt
Normal file
File diff suppressed because it is too large
Load diff
286
apps/pdp10/diags/klad/dakae/README.md
Normal file
286
apps/pdp10/diags/klad/dakae/README.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
layout: page
|
||||
title: PDP-10 KA10 Basic Instruction Diagnostic #5
|
||||
permalink: /apps/pdp10/diags/klad/dakae/
|
||||
machines:
|
||||
- id: testka10
|
||||
type: pdp10
|
||||
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
|
||||
debugger: true
|
||||
commands: a 30724 DAKAE.MAC
|
||||
---
|
||||
|
||||
PDP-10 KA10 Basic Instruction Diagnostic #5
|
||||
-------------------------------------------
|
||||
|
||||
The *PDP-10 KA10 Basic Instruction Diagnostic #5* (MAINDEC-10-DAKAE) test code has been extracted from
|
||||
[DAKAEM.MAC](DAKAEM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakaem.mac.html)]
|
||||
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
|
||||
|
||||
Resources for this test include:
|
||||
|
||||
- [Instructions](#dakaetxt)
|
||||
- [History](#dakaehst)
|
||||
- [Source Code](#dakaemac)
|
||||
- [MACRO-10 Listing](DAKAE.LST.txt)
|
||||
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/dakae/DAKAE.SEQ.txt)
|
||||
|
||||
{% include machine.html id="testka10" %}
|
||||
|
||||
The Debugger's assemble ("a") command can be used to test the new built-in
|
||||
[MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js), which supports a subset
|
||||
of the [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) assembly language.
|
||||
This command:
|
||||
|
||||
a 30724 DAKAE.MAC
|
||||
|
||||
will automatically read the [DAKAE.MAC](DAKAE.MAC.txt) source file (a slightly modified copy of [DAKAEM.MAC](DAKAEM.MAC.txt)),
|
||||
assemble it, and then load the binary output at the specified address.
|
||||
|
||||
---
|
||||
|
||||
DAKAE.TXT
|
||||
---------
|
||||
|
||||
```
|
||||
IDENTIFICATION
|
||||
--------------
|
||||
|
||||
PRODUCT CODE: AH-6859C-DD
|
||||
|
||||
DIAGNOSTIC CODE: DAKAE
|
||||
|
||||
PRODUCT NAME: DAKAEC0 DECSYSTEM10 PDP-10 KA10 BASIC
|
||||
INSTRUCTION DIAGNOSTIC (5)
|
||||
|
||||
VERSION: 0.3
|
||||
|
||||
DATE RELEASED: JANUARY 1979
|
||||
|
||||
MAINTAINED BY: DIAGNOSTIC ENGINEERING
|
||||
|
||||
AUTHOR: BILL SCORZELLI
|
||||
|
||||
COPYRIGHT (C) 1967, 1979
|
||||
|
||||
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
|
||||
|
||||
THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
|
||||
SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION
|
||||
OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER
|
||||
COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE
|
||||
TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
|
||||
AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE
|
||||
SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL EQUIPMENT
|
||||
CORPORATION.
|
||||
|
||||
THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
|
||||
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
|
||||
EQUIPMENT CORPORATION.
|
||||
|
||||
DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
|
||||
USE OR RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
|
||||
SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
|
||||
MAINDEC-10-DAKAE.TXT
|
||||
PAGE 2
|
||||
|
||||
|
||||
TABLE OF CONTENTS
|
||||
-----------------
|
||||
|
||||
1.0 ABSTRACT
|
||||
|
||||
2.0 REQUIREMENTS
|
||||
|
||||
2.1 EQUIPMENT
|
||||
|
||||
2.2 STORAGE
|
||||
|
||||
2.3 PRELIMINARY PROGRAMS
|
||||
|
||||
3.0 PROGRAM PROCEDURES
|
||||
|
||||
3.1 LOADING PROCEDURE
|
||||
|
||||
3.2 STARTING PROCEDURE
|
||||
|
||||
3.3 OPERATING PROCEDURE
|
||||
|
||||
4.0 ERRORS
|
||||
|
||||
5.0 ITERATION COUNTER
|
||||
|
||||
6.0 CYCLE TIME
|
||||
|
||||
7.0 OPERATIONAL VARIATIONS
|
||||
|
||||
8.0 MISCELLANEOUS
|
||||
|
||||
9.0 LISTING
|
||||
MAINDEC-10-DAKAE.TXT
|
||||
PAGE 3
|
||||
|
||||
|
||||
1.0 ABSTRACT
|
||||
|
||||
THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
|
||||
FIFTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
|
||||
THE DIAGNOSTIC TESTS THE FWT, ADD/SUB, PC CHANGE
|
||||
AND COMPARE INSTRUCTIONS.
|
||||
|
||||
2.0 REQUIREMENTS
|
||||
|
||||
2.1 EQUIPMENT
|
||||
|
||||
A PDP-10 KA10 WITH A MINIMUM OF 32K OF MEMORY
|
||||
|
||||
PAPER TAPE READER
|
||||
DECTAPE (OPTIONAL)
|
||||
CONSOLE TELETYPE
|
||||
|
||||
2.2 STORAGE
|
||||
|
||||
THE PROGRAM RUNS WITHIN 32K OF MEMORY.
|
||||
|
||||
2.3 PRELIMINARY PROGRAMS
|
||||
|
||||
CONSOLE FUNCTIONS WORKING PROPERLY
|
||||
PAPER-TAPE OR DECTAPE READ-IN WORKING PROPERLY
|
||||
PREVIOUS PROCESSOR DIAGNOSTICS
|
||||
MAINDEC-10-DAKAE.TXT
|
||||
PAGE 4
|
||||
|
||||
|
||||
3.0 PROGRAM PROCEDURES
|
||||
|
||||
3.1 LOADING PROCEDURE
|
||||
|
||||
PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104)
|
||||
DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320)
|
||||
|
||||
3.2 STARTING PROCEDURE
|
||||
|
||||
STAND-ALONE STARTING ADDRESS IS 30000.
|
||||
|
||||
IF THE DIAGNOSTIC FAILS TO START CORRECTLY TRY STARTING AT THE
|
||||
FIRST TEST INSTEAD OF AT THE BEGINNING OF THE CONTROL SEQUENCE.
|
||||
(SEE LISTING).
|
||||
|
||||
3.3 OPERATING PROCEDURE
|
||||
|
||||
ONCE STARTED THE PROGRAM WILL CYCLE CONTINUALLY UNTIL STOPPED
|
||||
OR AN ERROR OCCURS.
|
||||
|
||||
4.0 ERRORS
|
||||
|
||||
ERRORS ARE IN THE FORM OF HALT INSTRUCTIONS. THE LISTING
|
||||
SHOULD BE CONSULTED TO DETERMINE THE CAUSE OF THE ERROR. A
|
||||
NO OPERATION (JUMP) INSTRUCTION FOLLOWS EACH HALT. THIS
|
||||
MAY BE USEFUL IN CONSTRUCTING A SCOPE LOOP TO CYCLE ON THE
|
||||
FAILING INSTRUCTION.
|
||||
|
||||
5.0 ITERATION COUNTER
|
||||
|
||||
THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEM-
|
||||
ORY INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND
|
||||
INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION.
|
||||
|
||||
6.0 CYCLE TIME
|
||||
|
||||
THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND
|
||||
IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS, ETC.
|
||||
|
||||
MAINDEC-10-DAKAE.TXT
|
||||
PAGE 5
|
||||
|
||||
|
||||
7.0 OPERATIONAL VARIATIONS
|
||||
|
||||
A. DIAGNOSTIC MONITOR
|
||||
|
||||
THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PRO-
|
||||
VIDE RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PRO-
|
||||
VIDE A QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR
|
||||
AREA OF THE PROCESSOR. CERTAIN PROCEDURES ARE USED WHEN
|
||||
THE PROGRAM IS USED IN THIS MANNER. THEY ARE:
|
||||
|
||||
1. THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PRO-
|
||||
GRAM AND STARTS IT AT LOCATION 30002.
|
||||
|
||||
2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MON-
|
||||
ITOR CONTROL FLAG WORD.
|
||||
|
||||
B. USER MODE
|
||||
|
||||
THE PROGRAM WILL OPERATE IN USER MODE AND AS SUCH PROVIDES
|
||||
ASSURANCE THAT THE PROCESSOR IS PERFORMING ALL FUNCTIONS
|
||||
CORRECTLY. USER MODE STARTING ADDRESS IS 30000.
|
||||
|
||||
C. SYSTEM EXERCISER
|
||||
|
||||
STARTING ADDRESS IS 30003. NO DATA SWITCHES ARE USED BY
|
||||
THIS PROGRAM.
|
||||
|
||||
8.0 MISCELLANEOUS
|
||||
|
||||
NONE
|
||||
|
||||
9.0 LISTING
|
||||
```
|
||||
|
||||
DAKAE.HST
|
||||
---------
|
||||
|
||||
THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAE
|
||||
|
||||
************************************************************************
|
||||
|
||||
ORIGINAL VERSION: 0.1
|
||||
|
||||
ORIGINAL AUTHOR: RICHARD MALISKA
|
||||
|
||||
ORIGINAL RELEASE: 16-MAR-72
|
||||
|
||||
************************************************************************
|
||||
|
||||
PRODUCT CODE: MAINDEC-10-DAKAE
|
||||
|
||||
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #5
|
||||
|
||||
DATE RELEASED: JANUARY 1977
|
||||
|
||||
VERSION: 0.2
|
||||
|
||||
UPDATE AUTHOR: JOHN R. KIRCHOFF
|
||||
|
||||
CHANGES MADE:
|
||||
|
||||
1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.
|
||||
************************************************************************
|
||||
|
||||
PRODUCT CODE: MAINDEC-10-DAKAE
|
||||
|
||||
PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #5
|
||||
|
||||
DATE RELEASED: JANUARY 1979
|
||||
|
||||
VERSION: 0.3
|
||||
|
||||
UPDATE AUTHOR: BILL SCORZELLI
|
||||
|
||||
CHANGES MADE:
|
||||
|
||||
1. THE COMPARE INSTRUCTION TESTS DID NOT CHECK THE COMPARE OF 2
|
||||
NEGATIVE NUMBERS WITH THE CONTENTS OF THE (AC) BEING LARGER
|
||||
THAN THE CONTENTS OF (E). ADDED TEST C52205.
|
||||
|
||||
************************************************************************
|
||||
|
||||
DAKAE.MAC
|
||||
---------
|
||||
|
||||
[[Download](DAKAE.MAC.txt)]
|
||||
|
||||
{% highlight text %}
|
||||
{% include_relative DAKAE.MAC.txt %}
|
||||
{% endhighlight %}
|
||||
|
|
@ -720,9 +720,9 @@ function Wx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)
|
|||
function Xx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
|
||||
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Wx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Wx(e))}return!0}
|
||||
function Yx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.F;for(a.F=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Zx(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Yx(a,b,p,c-1,a.F,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("^B"==k){a.F=2;continue}if("^O"==k){a.F=8;continue}if("^D"==k){a.F=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==k){p=
|
||||
p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(!k)break;u.length&&$x[k]<$x[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
|
||||
p<<2|3;continue}}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Wx(p));if(!k)break;if(" "==k){m=!0;break}u.length&&$x[k]<$x[u[u.length-1]]&&Xx(v,u,1);u.push(k);a.F="^_"==k?10:e;p=0}if(m||!Xx(v,u)||1!=v.length)m=!0;m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.F=E;return g}
|
||||
function ay(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,m=e;k<b.length;){var p=b[k++];if(p==c){m=-1;break}if(!m)break;m--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Wx(h*Math.pow(2,d)+p,d*e,!0)}if(0<=m){!1===f&&a.P("parse error ("+b+")");break}else b=b.substr(0,g)+by(a,h,-1)+b.substr(k)}return b}
|
||||
function cy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}"));b=ay(a,b,'"',7,5,c);if(!b)return d;b=ay(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_");b=b.split(/(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&dy(a,null,d)}return d}
|
||||
function cy(a,b,c){var d=void 0;a.Ha=null;if(b){"{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}"));b=ay(a,b,'"',7,5,c);if(!b)return d;b=ay(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/);d=Yx(a,b,0,b.length,a.F,c);void 0!==d&&!1===c&&dy(a,null,d)}return d}
|
||||
function ey(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=cy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?by(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.ha}if(null==
|
||||
e)break;b=b.replace(d[0],e.toString())}return b}function Zx(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(b,1<b.length?a.F:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Wx(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=Wx(f)}else d||a.P("invalid "+(c?c:"value")+": "+b);else d||a.P("missing "+(c||"value"));return f}
|
||||
function dy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.F?by(a,c,32,8,1)+" "+c+".":by(a,c,32,16,1)+" "+by(a,c,32,8,1)+" "+by(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function fy(a,b){if(b)return dy(a,b,a.ga[b]);var c=0;for(b in a.ga)dy(a,b,a.ga[b]),c++;return 0<c}
|
||||
|
|
|
|||
|
|
@ -1704,9 +1704,9 @@ class DebuggerPDP10 extends Debugger {
|
|||
}
|
||||
/*
|
||||
* MACRO-10 also allows instructions to be assembled without an opcode (ie, just an address reference),
|
||||
* so we'll give that a try next.
|
||||
* so we'll give that a try next (as long as we're not mashing two symbols together).
|
||||
*/
|
||||
if (opCode < 0) {
|
||||
if (opCode < 0 && sOperands && !sOperands.match(/^[0-9A-Z$%.?]/i)) {
|
||||
sOperands = sOpcode + sOperands;
|
||||
sOpcode = "";
|
||||
opCode = 0;
|
||||
|
|
|
|||
|
|
@ -708,6 +708,11 @@ class Debugger extends Component
|
|||
aVals.push(this.truncate(v));
|
||||
if (!sOp) break;
|
||||
|
||||
if (sOp == ' ') {
|
||||
fError = true;
|
||||
break;
|
||||
}
|
||||
|
||||
this.assert(Debugger.aBinOpPrecedence[sOp] != null);
|
||||
if (aOps.length && Debugger.aBinOpPrecedence[sOp] < Debugger.aBinOpPrecedence[aOps[aOps.length - 1]]) {
|
||||
this.evalOps(aVals, aOps, 1);
|
||||
|
|
@ -865,8 +870,8 @@ class Debugger extends Component
|
|||
*
|
||||
* WARNING: Whenever you make changes to this RegExp, make sure you update aBinOpPrecedence as needed, too.
|
||||
*/
|
||||
var regExp = /(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/;
|
||||
sExp = sExp.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/, "$1$2^_");
|
||||
var regExp = /(\{|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*| )/;
|
||||
sExp = sExp.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/, "$1$2^_").replace(/\s+/g, ' ');
|
||||
var asValues = sExp.split(regExp);
|
||||
value = this.parseArray(asValues, 0, asValues.length, this.nBase, fQuiet);
|
||||
if (value !== undefined && fQuiet === false) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue