Added another PDP-10 diagnostic (DAKAJ), which in turn required some more MACRO-10 support (eg, macro parameters with backslashes)

This commit is contained in:
Jeff 2017-03-30 16:04:00 -07:00 committed by Jeff Parsons
commit 881da5b19c
8 changed files with 13273 additions and 15 deletions

View file

@ -135,8 +135,8 @@ E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
ER4 AC+1,T'01 ;RESULT IN AC+1 IS INCORRECT
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>
;EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE
; EXIT
EXIT: ;DROPDV ;CLOSE LOGICAL OUTPUT FILE
;EXIT
PGMNAM: ASCIZ/
PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC #9 SHIFT-ROTATE [DAKAI]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,135 @@
;DAKAJ
MCNVER==0
DECVER==2
XLIST
DEFINE NAME (MCNVER,DECVER)<
TITLE DAKAJ PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (10) MCNVER,DECVER
>
LIST
LALL
NAME \MCNVER,\DECVER
;(LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED)
;COPYRIGHT 1975,1977
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
LOC 137
MCNVER,,DECVER
NOSYM
SUBTTL DIAGNOSTIC PARAMETERS
;OPERATOR DEFINITIONS
OPDEF ER1 [1B8]
OPDEF ER2 [2B8]
OPDEF ER3 [3B8]
OPDEF ER4 [4B8]
OPDEF ER5 [5B8]
OPDEF ER6 [6B8]
OPDEF ER7 [7B8]
OPDEF ER10 [10B8]
OPDEF ER11 [11B8]
OPDEF ER12 [12B8]
OPDEF ER13 [13B8]
LUUO1=ERRMES
LUUO2=ERRMES
LUUO3=ERRMES
LUUO4=ERRMES
LUUO5=ERRMES
LUUO6=ERRMES
LUUO7=ERRMES
LUUO10=ERRMES
LUUO11=ERRMES
LUUO12=ERRMES
LUUO13=ERRMES
;SUBROUTINE ASSEMBLY DEFINITIONS
DEBUG=40
EXCASB=1
USRASB=1
KA10=1
KL10=1
KL10P0=1
PGMEND=1
ERDIAG=1
;SPECIAL FEATURE PARAMETERS
SADR1=START
SADR2=START
SADR3=START
SADR4=START
SADR5=JRST START
SADR6=JRST START
SADR7=JRST START
SADR8=JRST START
SADR9=JRST START
SADR10=JRST START
SADR11=JRST START
PAREA0=0
PAREA1=0
PAREA2=0
PAREA3=SIXBIT/DAKAJ/
PAREA4=SIXBIT/TMP/
PAREA5=0
PAREA6=0
ITERAT==1000
;MACROS
DEFINE SAVEAC (A,B)<
MOVEI AC+2,. ;SETUP TESTPC
MOVEM AC+2,TESTPC
MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
DEFINE SETACS (WW,XX)<
MOVEI AC-1,WW ;SETUP AC-1
HRLI AC-1,WW ;FOR COMPARISION
MOVE AC-2,<AC-1>&17 ;SETUP AC-2 FOR COMPARISON
MOVEI AC,XX ;SETUP AC RIGHT
HRLI AC,XX ;SETUP AC LEFT
MOVEM AC,<AC+1>&17 ;SETUP AC2>
;USER DEFINED MACROS
DEFINE SR1 (T,D1A,D1B,R1A,R1B,OP,S)<
;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD D1A,D1B] S BIT
;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD R1A,R1B]
;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE S BIT POSITIONS
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD 741703,607417]
ER4 AC+1,T'01 ;C(AC+1) WAS MODIFIED INCORRECTLY
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SR2 (T,D1A,D1B,D2A,D2B,R1A,R1B,R2A,R2B,OP,S)<
;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE
;DATA SPECIFIED IN [XWD D1A,D1B] AND [XWD D2A,D2B] S BIT POSITIONS AND
;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD R1A,R1B] AND
;[XWD R2A,R2B]
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD D2A,D2B] ;INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE COMBINED S PLACES
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD R2A,R2B] ;IS RESULT IN AC+1 CORRECT?
ER4 AC+1,T'01 ;RESULT IN AC+1 IS INCORRECT
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>

View file

@ -0,0 +1,60 @@
---
layout: page
title: PDP-10 KA10 Basic Instruction Diagnostic #10
permalink: /apps/pdp10/diags/klad/dakaj/
machines:
- id: testka10
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a DAKAJ.MAC
---
PDP-10 KA10 Basic Instruction Diagnostic #10
--------------------------------------------
The *PDP-10 KA10 Basic Instruction Diagnostic #10* (MAINDEC-10-DAKAJ) test code has been extracted from
[DAKAJM.MAC](DAKAJM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakajm.mac.html)] and
[DAKAJT.MAC](DAKAJT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakajt.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](#dakajtxt)
- [History](#dakajhst)
- [Source Code](#dakajmac)
- [MACRO-10 Listing](DAKAJ.LST.txt)
- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/dakaj/DAKAJ.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 DAKAJ.MAC
will automatically read the [DAKAJ.MAC](DAKAJ.MAC.txt) source file (a slightly modified copy of [DAKAJM.MAC](DAKAJM.MAC.txt)),
assemble it, and then load the binary image at the location specified in the file.
---
DAKAJ.TXT
---------
```
```
DAKAJ.HST
---------
DAKAJ.MAC
---------
[[Download](DAKAJ.MAC.txt)]
{% highlight text %}
{% include_relative DAKAJ.MAC.txt %}
{% endhighlight %}