All VAX: Extend tests to include available DEC instruction diagnostics
- Diagnostic execution happens as a normal part of the makefile build. - Diagnostic execution can be suppressed by invoking make with TESTS=0 on the command line - Diagnostic execution during build is produced in summary form.
This commit is contained in:
parent
be52190067
commit
6747c7fdc2
13 changed files with 721 additions and 17 deletions
2
.gitattributes
vendored
2
.gitattributes
vendored
|
@ -8,5 +8,7 @@
|
||||||
*.imd binary
|
*.imd binary
|
||||||
*.rim binary
|
*.rim binary
|
||||||
*.tap binary
|
*.tap binary
|
||||||
|
*.dsk binary
|
||||||
|
*.vhd binary
|
||||||
sim_rev.h export-subst
|
sim_rev.h export-subst
|
||||||
|
|
||||||
|
|
BIN
VAX/tests/VAX_MINIMUM_DIAGS.dsk
Normal file
BIN
VAX/tests/VAX_MINIMUM_DIAGS.dsk
Normal file
Binary file not shown.
224
VAX/tests/diag780/EVKAB.HLP
Normal file
224
VAX/tests/diag780/EVKAB.HLP
Normal file
|
@ -0,0 +1,224 @@
|
||||||
|
1 TESTS
|
||||||
|
TEST INST | TEST INST | TEST INST
|
||||||
|
---- ---- | ---- ---- | ---- ----
|
||||||
|
1 BRB | 2 BRW | 3 BBC
|
||||||
|
4 BBS | 5 MOVB | 6 MOVW
|
||||||
|
7 MOVL | 8 MOVQ | 9 CLRB
|
||||||
|
10 CLRW | 11 CLRL | 12 CLRQ
|
||||||
|
13 MNEGB | 14 MNEGW | 15 MNEGL
|
||||||
|
16 MCOMB | 17 MCOMW | 18 MCOML
|
||||||
|
19 MOVZBW | 20 MOVZBL | 21 MOVZWL
|
||||||
|
22 CVTBW | 23 CVTBL | 24 CVTWB
|
||||||
|
25 CVTWL | 26 CVTLB | 27 CVTLW
|
||||||
|
28 CMPB | 29 CMPW | 30 CMPL
|
||||||
|
31 TSTB | 32 TSTW | 33 TSTL
|
||||||
|
34 ADDB2 | 35 ADDB3 | 36 ADDW2
|
||||||
|
37 ADDW3 | 38 ADDL2 | 39 ADDL3
|
||||||
|
40 ADAWI | 41 INCB | 42 INCW
|
||||||
|
43 INCL | 44 ADWC | 45 SUBB2
|
||||||
|
46 SUBB3 | 47 SUBW2 | 48 SUBW3
|
||||||
|
49 SUBL2 | 50 SUBL3 | 51 DECB
|
||||||
|
52 DECW | 53 DECL | 54 SBWC
|
||||||
|
55 MULB2 | 56 MULB3 | 57 MULW2
|
||||||
|
58 MULW3 | 59 MULL2 | 60 MULL3
|
||||||
|
61 EMUL | 62 DIVB2 | 63 DIVB3
|
||||||
|
64 DIVW2 | 65 DIVW3 | 66 DIVL2
|
||||||
|
67 DIVL3 | 68 EDIV | 69 ASHL
|
||||||
|
70 ASHQ | 71 BITB | 72 BITW
|
||||||
|
73 BITL | 74 BISB2 | 75 BISB3
|
||||||
|
76 BISW2 | 77 BISW3 | 78 BISL2
|
||||||
|
79 BISL3 | 80 BICB2 | 81 BICB3
|
||||||
|
82 BICW2 | 83 BICW3 | 84 BICL2
|
||||||
|
85 BICL3 | 86 XORB2 | 87 XORB3
|
||||||
|
88 XORW2 | 89 XORW3 | 90 XORL2
|
||||||
|
91 XORL3 | 92 ROTL | 93 FFC
|
||||||
|
94 FFS | 95 INSV | 96 EXTV
|
||||||
|
97 EXTZV | 98 CMPV | 99 CMPZV
|
||||||
|
100 BNEQ | 101 BEQL | 102 BGTR
|
||||||
|
103 BLEQ | 104 BGEQ | 105 BLSS
|
||||||
|
106 BGTRU | 107 BLEQU | 108 BVC
|
||||||
|
109 BVS | 110 BCC | 111 BCS
|
||||||
|
112 BLBC | 113 BLBS | 114 BBCC
|
||||||
|
115 BBCS | 116 BBSC | 117 BBSS
|
||||||
|
118 BBCCI | 119 BBSSI | 120 ACBB
|
||||||
|
121 ACBW | 122 ACBL | 123 AOBLEQ
|
||||||
|
124 AOBLSS | 125 SOBGEQ | 126 SOBGTR
|
||||||
|
127 INDEX | 128 INSQUE | 129 INSQHI
|
||||||
|
130 INSQTI | 131 REMQUE | 132 REMQHI
|
||||||
|
133 REMQTI | 134 MOVC3 | 135 MOVC5
|
||||||
|
136 MOVTC | 137 MOVTUC | 138 CMPC3
|
||||||
|
139 CMPC5 | 140 SPANC | 141 SCANC
|
||||||
|
142 SKPC | 143 LOCC | 144 MATCHC
|
||||||
|
145 MOVP | 146 CMPP3 | 147 CMPP4
|
||||||
|
148 ADDP4 | 149 ADDP6 | 150 SUBP4
|
||||||
|
151 SUBP6 | 152 MULP | 153 DIVP
|
||||||
|
154 CVTLP | 155 CVTPL | 156 CVTPT
|
||||||
|
157 CVTTP | 158 CVTPS | 159 CVTSP
|
||||||
|
160 ASHP | 161 EDITPC
|
||||||
|
1 ATTACH
|
||||||
|
The CPU must be attached. A VAX-11/730 CPU is a KA730, etc.
|
||||||
|
|
||||||
|
2 KA730
|
||||||
|
DS> ATT KA730 HUB KAn (1) (2) (3) (4) (5) (6)
|
||||||
|
(1) Time-of-year clock (YES or NO)
|
||||||
|
(2) WCS last address
|
||||||
|
(3) Accelerator type (0 = FPA absent, 1 = FPA present)
|
||||||
|
(4) K-bytes of Main Memory
|
||||||
|
(5) User WCS loaded (YES or NO)
|
||||||
|
(6) SB errors (YES or NO)
|
||||||
|
|
||||||
|
2 KA750
|
||||||
|
DS> ATT KA750 CMI KAn (1) (2) (3) (4) (5)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) Time-of-year clock (YES or NO)
|
||||||
|
(4) WCS Last Address, Hex
|
||||||
|
(5) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
2 KA780
|
||||||
|
DS> ATTACH KA780 SBI KAn (1) (2) (3) (4)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) WCS Last Address, Hex
|
||||||
|
(4) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
1 HELP
|
||||||
|
This program exercises most of the VAX native mode instruction
|
||||||
|
set that can be executed in any mode, i.e., non-priviledged
|
||||||
|
instructions. It does not include the Floating Point
|
||||||
|
instructions that are in EVKAC. The program is capable of
|
||||||
|
running under the Diagnostic Supervisor in either the
|
||||||
|
standalone environment or as a user task under VMS. It is also
|
||||||
|
designed to run on any member of the VAX family of computers.
|
||||||
|
|
||||||
|
1 SECTION
|
||||||
|
|
||||||
|
2 INTEGER
|
||||||
|
Integer Arithmetic and Logical Instructions:
|
||||||
|
|
||||||
|
MOVB, MOVW, MOVL, MOVQ, CLRB, CLRW, CLRL, CLRQ, MNEGB,
|
||||||
|
MNEGW, MNEGL, MCOMB, MCOMW, MCOML, MOVZBW, MOVZBL, MOVZWL,
|
||||||
|
CVTBW, CVTBL, CVTWB, CVTWL, CVTLB, CVTLW, CMPB, CMPW, CMPL,
|
||||||
|
TSTB, TSTW, TSTL, ADDB2, ADDB3, ADDW2, ADDW3, ADDL2, ADDL3,
|
||||||
|
ADAWI, INCB, INCW, INCL, ADWC, SUBB2, SUBB3, SUBW2, SUBW3,
|
||||||
|
SUBL2, SUBL3, INCB, INCW, INCL, SBWC, MULB2, MULB3, MULW2,
|
||||||
|
MULW3, MULL2, MULL3, EMUL, DIVB2, DIVB3, DIVW2, DIVW3,
|
||||||
|
DIVL2, DIVL3, EDIV, ASHL, ASHQ, BITB, BITW, BITL, BISB2,
|
||||||
|
BISB3, BISW2, BISW3, BISL2, BISL3, BICB2, BICB3, BICW2,
|
||||||
|
BICW3, BICL2, BICL3, XORB2, XORB3, XORW2, XORW3, XORL2,
|
||||||
|
XORL3, and ROTL.
|
||||||
|
|
||||||
|
Integer Arithmetic Control Instructions: ACBB, ACBW, ACBL,
|
||||||
|
AOBLEQ, AOBLSS, SOBGEQ, and SOBGTR.
|
||||||
|
|
||||||
|
2 FIELD
|
||||||
|
Variable Length Bit Field Instructions:
|
||||||
|
|
||||||
|
EXTV, EXTV, INSV, CMPV, CMPZV, FFC, and FFS.
|
||||||
|
|
||||||
|
Single Bit Field Control Instructions: BBS, BBC, BBSS,
|
||||||
|
BBCS, BBSC, BBCC, BBSSI, BBCCI, BLBS, BLBC
|
||||||
|
|
||||||
|
2 CONTROL
|
||||||
|
Basic Control Instructions:
|
||||||
|
|
||||||
|
BRB, BRW, BNEQ, BEQL, BGTR, BLEQ, BGEQ, BLSS, BGTRU, BLEQU,
|
||||||
|
BVC, BVS, BGEQU, and BLSSU.
|
||||||
|
|
||||||
|
Single Bit Field Control Instructions:
|
||||||
|
|
||||||
|
BBS, BBC, BBSS, BBCS, BBSC, BBCC, BBSSI, BBCCI, BLBS, BLBC
|
||||||
|
|
||||||
|
Integer Arithmetic Control Instructions:
|
||||||
|
|
||||||
|
ACBB, ACBW, ACBL, AOBLEQ, AOBLSS, SOBGEQ, and SOBGTR.
|
||||||
|
|
||||||
|
2 QUEUE
|
||||||
|
Queue Instructions:
|
||||||
|
|
||||||
|
INSQUE, REMQUE, INSQHI, INSQTI, REMQHI, and REMQTI.
|
||||||
|
|
||||||
|
2 CHARACTER
|
||||||
|
Character String Instructions:
|
||||||
|
|
||||||
|
MOVC3, MOVC5, MOVTC, MOVTUC, CMPC, SCANC, SPANC, LOCC,
|
||||||
|
SKPC, and MATCHC.
|
||||||
|
|
||||||
|
2 DECIMAL
|
||||||
|
Decimal String Instructions:
|
||||||
|
|
||||||
|
MOVP, CMPP3, CMPP4, ADDP4, ADDP6, SUBP4, SUBP6, MULP, DIVP,
|
||||||
|
CVTLP, CVTPL, CVTPT, CVTTP, CVTPS, CVTSP, and ASHP.
|
||||||
|
|
||||||
|
2 MOVXMNEGX
|
||||||
|
All MOVX, MOVCn, MCOMX, MOVTXX, MNEG Instructions:
|
||||||
|
|
||||||
|
MOVB, MOVW, MOVL, MOVQ, MNEGB, MNEGW, MNEGL, MCOMB, MCOMW,
|
||||||
|
MCOML, MOVZBW, MOVZBL, MOVZWL, MOVC3, MOVC5, MOVTC, MOVTUC,
|
||||||
|
and MOVP.
|
||||||
|
|
||||||
|
2 CMPXX
|
||||||
|
All CMPX and CMPXX Instructions:
|
||||||
|
|
||||||
|
CMPB, CMPW, CMPL, CMPP3, CMPP4, CMPC3, CMPC5, CMPV, and
|
||||||
|
CMPZV.
|
||||||
|
|
||||||
|
2 CVTXX
|
||||||
|
All CVTXX Instructions:
|
||||||
|
|
||||||
|
CVTLP, CVTPL, CVTPT, CVTTP, CVTPS, and CVTSP.
|
||||||
|
|
||||||
|
2 ADDSUBMULDIV
|
||||||
|
All ADDxx, SUBxx, MULxx, and DIVxx Instructions.
|
||||||
|
|
||||||
|
ADDB2, ADDB3, ADDW2, ADDW3, ADDL2, ADDL3, SUBB2, SUBB3,
|
||||||
|
SUBW2, SUBW3, SUBL2, SUBL3, MULB2, MULB3, MULW2, MULW3,
|
||||||
|
MULL2, MULL3, DIVB2, DIVB3, DIVW2, DIVW3, DIVL2, and DIVL3.
|
||||||
|
|
||||||
|
2 ASHX
|
||||||
|
All ASHX Instructions:
|
||||||
|
|
||||||
|
ASHL, ASHQ, and ASHP.
|
||||||
|
|
||||||
|
1 EVENT
|
||||||
|
Event flags 2 through 6 are active with this program.
|
||||||
|
|
||||||
|
2 FLAG2
|
||||||
|
Disables the interval timer interrupting during instruction
|
||||||
|
execution.
|
||||||
|
|
||||||
|
2 FLAG3
|
||||||
|
Enables the interval timer interrupting while page faulting is
|
||||||
|
also enabled.
|
||||||
|
|
||||||
|
2 FLAG4
|
||||||
|
Enables the continuation of a subtest after an error (normally
|
||||||
|
the subtest is aborted).
|
||||||
|
|
||||||
|
2 FLAG5
|
||||||
|
Disables the DIVP instruction execution during interval timer
|
||||||
|
interrupting.
|
||||||
|
|
||||||
|
2 FLAG6
|
||||||
|
Enables the user to create their own custom section of tests by
|
||||||
|
asking what tests are to be executed. If this flag is found
|
||||||
|
set, the diagnostic prompts the user for test numbers the user
|
||||||
|
wants executed. When done entering, hit Carriage Return to the
|
||||||
|
response for a test number, and the diagnostic will begin. You
|
||||||
|
may input any number of test numbers. IMPORTANT: If you
|
||||||
|
select a particular section and that test number is NOT in the
|
||||||
|
section, THE TEST WILL NOT EXECUTE. i.e. SECTION takes
|
||||||
|
priority over FLAG6 selections. To obtain a list of the
|
||||||
|
instructions and test numbers that execute those instructions,
|
||||||
|
type HELP EVKAB TESTS.
|
||||||
|
|
||||||
|
****** THIS FLAG DOES NOT WORK IF THE OPERATOR FLAG BIT IS CLEAR ******
|
||||||
|
|
||||||
|
1 QUICK
|
||||||
|
The QUICK flag disables the execution of the instructions with
|
||||||
|
page faulting so that each instruction test case is only
|
||||||
|
executed once for each addressing mode combination.
|
||||||
|
|
||||||
|
1 SUMMARY
|
||||||
|
The summary report gives an error count by test number. No
|
||||||
|
report is generated if there were no errors.
|
230
VAX/tests/diag780/EVKAC.HLP
Normal file
230
VAX/tests/diag780/EVKAC.HLP
Normal file
|
@ -0,0 +1,230 @@
|
||||||
|
1 TESTS
|
||||||
|
TEST INST | TEST INST | TEST INST
|
||||||
|
---- ---- | ---- ---- | ---- ----
|
||||||
|
1 MOVF | 2 MNEGF | 3 TSTF
|
||||||
|
4 CVTBF | 5 CVTWF | 6 CVTLF
|
||||||
|
7 CVTFB | 8 CVTFW | 9 CVTFL
|
||||||
|
10 CVTRFL | 11 CMPF | 12 ADDF2
|
||||||
|
13 ADDF3 | 14 SUBF2 | 15 SUBF3
|
||||||
|
16 MULF2 | 17 MULF3 | 18 DIVF2
|
||||||
|
19 DIVF3 | 20 EMODF | 21 POLYF
|
||||||
|
22 ACBF | 23 MNEGD | 24 MOVD
|
||||||
|
25 TSTD | 26 CVTBD | 27 CVTWD
|
||||||
|
28 CVTLD | 29 CVTDB | 30 CVTDW
|
||||||
|
31 CVTDL | 32 CVTFD | 33 CVTDF
|
||||||
|
34 CVTRDL | 35 CMPD | 36 ADDD2
|
||||||
|
37 ADDD3 | 38 SUBD2 | 39 SUBD3
|
||||||
|
40 MULD2 | 41 MULD3 | 42 DIVD2
|
||||||
|
43 DIVD3 | 44 EMODD | 45 POLYD
|
||||||
|
46 ACBD | 47 MOVG | 48 MNEGG
|
||||||
|
49 CVTGB | 50 CVTGW | 51 CVTGL
|
||||||
|
52 CVTRGL | 53 CVTBG | 54 CVTWG
|
||||||
|
55 CVTLG | 56 CVTFG | 57 CVTGF
|
||||||
|
58 CMPG | 59 TSTG | 60 ADDG2
|
||||||
|
61 ADDG3 | 62 SUBG2 | 63 SUBG3
|
||||||
|
64 MULG2 | 65 MULG3 | 66 DIVG2
|
||||||
|
67 DIVG3 | 68 EMODG | 69 POLYG
|
||||||
|
70 ACBG | 71 MOVH | 72 MNEGH
|
||||||
|
73 CVTHB | 74 CVTHW | 75 CVTHL
|
||||||
|
76 CVTRHL | 77 CVTBH | 78 CVTWH
|
||||||
|
79 CVTLH | 80 CVTFH | 81 CVTDH
|
||||||
|
82 CVTGH | 83 CVTHF | 84 CVTHD
|
||||||
|
85 CVTHG | 86 CMPH | 87 TSTH
|
||||||
|
88 ADDH2 | 89 ADDH3 | 90 SUBH2
|
||||||
|
91 SUBH3 | 92 MULH2 | 93 MULH3
|
||||||
|
94 DIVH2 | 95 DIVH3 | 96 EMODH
|
||||||
|
97 POLYH | 98 ACBH
|
||||||
|
|
||||||
|
1 ATTACH
|
||||||
|
The CPU must be attached. A VAX-11/730 CPU is a KA730, etc.
|
||||||
|
|
||||||
|
2 KA730
|
||||||
|
DS> ATT KA730 HUB KAn (1) (2) (3) (4) (5) (6)
|
||||||
|
(1) Time-of-year clock (YES or NO)
|
||||||
|
(2) WCS last address
|
||||||
|
(3) Accelerator type (0 = FPA absent, 1 = FPA present)
|
||||||
|
(4) K-bytes of Main Memory
|
||||||
|
(5) User WCS loaded (YES or NO)
|
||||||
|
(6) SB errors (YES or NO)
|
||||||
|
|
||||||
|
2 KA750
|
||||||
|
DS> ATT KA750 CMI KAn (1) (2) (3) (4) (5)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) Time-of-year clock (YES or NO)
|
||||||
|
(4) WCS Last Address, Hex
|
||||||
|
(5) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
2 KA780
|
||||||
|
DS> ATTACH KA780 SBI KAn (1) (2) (3) (4)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) WCS Last Address, Hex
|
||||||
|
(4) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
1 HELP
|
||||||
|
This program exercises the floating point instructions that can
|
||||||
|
be executed in any mode, i.e., non-priviledged instructions.
|
||||||
|
The program is capable of running under the Diagnostic
|
||||||
|
Supervisor in either the standalone environment or as a user
|
||||||
|
task under VMS. It is also designed to run on any member of
|
||||||
|
the VAX family of computers.
|
||||||
|
|
||||||
|
1 SECTION
|
||||||
|
Sections have been allocated to test certain groups of
|
||||||
|
instructions. For more information, type HELP EVKAC SECTION
|
||||||
|
(section name).
|
||||||
|
|
||||||
|
2 F_FLOATING
|
||||||
|
|
||||||
|
Single Precision Floating Point Instructions:
|
||||||
|
|
||||||
|
MOVF, MNEGF, TSTF, CVTBF, CVTWF, CVTLF, CVTFB, CVTFW,
|
||||||
|
CVTFL, CVTRFL, CMPF, ADDFn, SUBFn, MULF, DIVFn, EMODF,
|
||||||
|
POLYF, ACBF.
|
||||||
|
|
||||||
|
2 DOUBLE
|
||||||
|
|
||||||
|
Double Precision and Extended Range Double Precision
|
||||||
|
Floating Point Instructions:
|
||||||
|
|
||||||
|
MNEGD, MOVD, TSTx, CVTBD, CVTWD, CVTLD, CVTDB, CVTDW,
|
||||||
|
CVTDL, CVTFD, CVTDF, CVTRDL, CMPx, ADDDn, SUBDn, MULDn,
|
||||||
|
DIVDn, EMODx, POLYD, ACBD, MOVG, MNEGG, CVTGB, CMPG, TSTG,
|
||||||
|
ADDGx, SUBGx, MULGx, DIVGx, EMODG, POLYG, ACBG.
|
||||||
|
|
||||||
|
2 D_FLOATING
|
||||||
|
|
||||||
|
Double Precision Floating Point Instructions:
|
||||||
|
|
||||||
|
MNEGD, MOVD, TSTx, CVTBD, CVTWD, CVTLD, CVTDB, CVTDW,
|
||||||
|
CVTDL, CVTFD, CVTDF, CVTRDL, CMPx, ADDDn, SUBDn, MULDn,
|
||||||
|
DIVxn, EMODx, POLYD, ACBD.
|
||||||
|
|
||||||
|
2 EXTENDED
|
||||||
|
|
||||||
|
Extended Range Double and Quadruple Precision Floating
|
||||||
|
Point Instructions:
|
||||||
|
|
||||||
|
MOVG, MNEGG, CVTGB, CMPG, TSTG, ADDGx, SUBGx, MULGx, DIVGx,
|
||||||
|
EMODG, POLYG, ACBG, MOVH, MNEGH, CVTHB, CMPH, TSTH, ADDHx,
|
||||||
|
SUBHx, MULHx, DIVHx, EMODH, POLYH, ACBH.
|
||||||
|
|
||||||
|
2 G_FLOATING
|
||||||
|
|
||||||
|
Extended Range Double Precision Floating Point
|
||||||
|
Instructions:
|
||||||
|
|
||||||
|
MOVG, MNEGG, CVTGB, CMPG, TSTG, ADDGx, SUBGx, MULGx, DIVGx,
|
||||||
|
EMODG, POLYG, ACBG.
|
||||||
|
|
||||||
|
2 H_FLOATING
|
||||||
|
|
||||||
|
Extended Range Quadruple Precision Floating Point
|
||||||
|
Instructions:
|
||||||
|
|
||||||
|
MOVH, MNEGH, CVTHB, CMPH, TSTH, ADDHx, SUBHx, MULHx, DIVHx,
|
||||||
|
EMODH, POLYH, ACBH.
|
||||||
|
|
||||||
|
2 MOVXMNEGX
|
||||||
|
|
||||||
|
All MOVx and MNEGx Single, Double, Double Extended and
|
||||||
|
Quadruple Extended Floating Point Instructions:
|
||||||
|
|
||||||
|
MOVF, MNEGF, MNEGD, MOVD, MOVG, MNEGG, MOVH, MNEGH.
|
||||||
|
|
||||||
|
2 TSTX
|
||||||
|
|
||||||
|
All TSTx Single, Double, Double Extended and Quadruple
|
||||||
|
Extended Floating Point Instructions:
|
||||||
|
|
||||||
|
TSTF, TSTD, TSTG, TSTH.
|
||||||
|
|
||||||
|
2 CVTXX
|
||||||
|
|
||||||
|
All CVTxy and CVTxyz Single, Double, Double Extended and
|
||||||
|
Quadruple Extended Floating Point Instructions:
|
||||||
|
|
||||||
|
CVTBF, CVTWF, CVTLF, CVTFB, CVTFW, CVTFL, CVTRFL, CVTBD,
|
||||||
|
CVTWD, CVTLD, CVTDB, CVTDW, CVTDL, CVTFD, CVTDF, CVTRDL,
|
||||||
|
CVTGB, CVTHB.
|
||||||
|
|
||||||
|
2 CMPX
|
||||||
|
|
||||||
|
All CMPx Single, Double, Double Extended and Quadruple
|
||||||
|
Extended Floating Point Instructions:
|
||||||
|
|
||||||
|
CMPF, CMPD, CMPG, CMPH.
|
||||||
|
|
||||||
|
2 ADDSUBMULDIV
|
||||||
|
|
||||||
|
All ADDxn, SUBxn, MULxn and DIVxn Single, Double, Double
|
||||||
|
Extended and Quadruple Extended Floating Point
|
||||||
|
Instructions:
|
||||||
|
|
||||||
|
ADDFn, SUBFn, MULF, DIVFn, ADDDn, SUBDn, MULDn, DIVDn,
|
||||||
|
ADDGx, SUBGx, MULGx, DIVGx, ADDHx, SUBHx, MULHx, DIVHx.
|
||||||
|
|
||||||
|
2 EMODX
|
||||||
|
|
||||||
|
All EMODx Single, Double, Double Extended and Quadruple
|
||||||
|
Extended Floating Point Instructions:
|
||||||
|
|
||||||
|
EMODF, EMODD, EMODG, EMODH.
|
||||||
|
|
||||||
|
2 POLYX
|
||||||
|
|
||||||
|
All POLYx Single, Double, Double Extended and Quadruple
|
||||||
|
Extended Floating Point Instructions:
|
||||||
|
|
||||||
|
POLYF, POLYD, POLYG, POLYH.
|
||||||
|
|
||||||
|
2 ACBX
|
||||||
|
|
||||||
|
All ACBDx Single, Double, and Extended Range Floating Point
|
||||||
|
Instructions:
|
||||||
|
|
||||||
|
ACBF, ACBD, ACBG, ACBH.
|
||||||
|
|
||||||
|
1 EVENT
|
||||||
|
Event flags 2 through 6 are active with this program.
|
||||||
|
|
||||||
|
2 FLAG2
|
||||||
|
Disables the interval timer interrupting during instruction
|
||||||
|
execution.
|
||||||
|
|
||||||
|
2 FLAG3
|
||||||
|
Enables the interval timer interrupting while page faulting is
|
||||||
|
also enabled.
|
||||||
|
|
||||||
|
2 FLAG4
|
||||||
|
Enables the continuation of a subtest after an error (normally
|
||||||
|
the subtest is aborted).
|
||||||
|
|
||||||
|
2 FLAG5
|
||||||
|
Disables the DIVP instruction execution during interval timer
|
||||||
|
interrupting.
|
||||||
|
|
||||||
|
2 FLAG6
|
||||||
|
Enables the user to create their own custom section of tests by
|
||||||
|
asking what tests are to be executed. If this flag is found
|
||||||
|
set, the diagnostic prompts the user for test numbers the user
|
||||||
|
wants executed. When done entering, hit Carriage Return to the
|
||||||
|
response for a test number, and the diagnostic will begin. You
|
||||||
|
may input any number of test numbers. IMPORTANT: If you
|
||||||
|
select a particular section and that test number is NOT in the
|
||||||
|
section, THE TEST WILL NOT EXECUTE. i.e. SECTION takes
|
||||||
|
priority over FLAG6 selections. To obtain a list of the
|
||||||
|
instructions and what test executes that instruction, type HELP
|
||||||
|
EVKAC TESTS.
|
||||||
|
|
||||||
|
****** THIS FLAG DOES NOT WORK IF THE OPERATOR FLAG BIT IS CLEAR ******
|
||||||
|
|
||||||
|
1 QUICK
|
||||||
|
The QUICK flag disables the execution of the instructions with
|
||||||
|
page faulting so that each instruction test case is only
|
||||||
|
executed once for each addressing mode combination.
|
||||||
|
|
||||||
|
1 SUMMARY
|
||||||
|
The summary report gives an error count by test number. No
|
||||||
|
report is generated if there were no errors.
|
54
VAX/tests/diag780/EVKAD.HLP
Normal file
54
VAX/tests/diag780/EVKAD.HLP
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
1 ATTACH
|
||||||
|
The CPU must be attached. A VAX-11/730 CPU is a KA730, etc.
|
||||||
|
|
||||||
|
2 KA730
|
||||||
|
DS> ATT KA730 HUB KAn (1) (2) (3) (4) (5) (6)
|
||||||
|
(1) Time-of-year clock (YES or NO)
|
||||||
|
(2) WCS last address
|
||||||
|
(3) Accelerator type (0 = FPA absent, 1 = FPA present)
|
||||||
|
(4) K-bytes of Main Memory
|
||||||
|
(5) User WCS loaded (YES or NO)
|
||||||
|
(6) SB errors (YES or NO)
|
||||||
|
|
||||||
|
2 KA750
|
||||||
|
DS> ATT KA750 CMI KAn (1) (2) (3) (4) (5)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) Time-of-year clock (YES or NO)
|
||||||
|
(4) WCS Last Address, Hex
|
||||||
|
(5) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
2 KA780
|
||||||
|
DS> ATTACH KA780 SBI KAn (1) (2) (3) (4)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) WCS Last Address, Hex
|
||||||
|
(4) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
1 HELP
|
||||||
|
This program exercises all of the VAX compatibility mode
|
||||||
|
instruction set.
|
||||||
|
|
||||||
|
1 SECTION
|
||||||
|
|
||||||
|
2 EXCEPTIONS
|
||||||
|
Tests the various compatibility mode exceptions by verifying
|
||||||
|
the mechanisms used by the VAX architecture to change to and
|
||||||
|
from PDP-11 compatibility mode.
|
||||||
|
|
||||||
|
2 INSTRUCTIONS
|
||||||
|
Tests compatibility mode Single, Double, and Program Control
|
||||||
|
instructions.
|
||||||
|
|
||||||
|
1 EVENT
|
||||||
|
Event Flag 1 (set) - Accelerator testing (standalone only) is
|
||||||
|
inhibited. Event Flag 1 (clear) - Accelerator testing provided
|
||||||
|
: if Accelerator is present, the entire EVKAD test sequences
|
||||||
|
are run twice for each test pass, once with Accelerator
|
||||||
|
disabled, and once with Accelerator enabled.
|
||||||
|
|
||||||
|
1 QUICK
|
||||||
|
The QUICK flag has no effect on this program.
|
||||||
|
|
||||||
|
1 SUMMARY
|
||||||
|
This program does not provide a summary report.
|
60
VAX/tests/diag780/EVKAE.HLP
Normal file
60
VAX/tests/diag780/EVKAE.HLP
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
1 ATTACH
|
||||||
|
The CPU must be attached. A VAX-11/730 CPU is a KA730, etc.
|
||||||
|
|
||||||
|
2 KA730
|
||||||
|
DS> ATT KA730 HUB KAn (1) (2) (3) (4) (5) (6)
|
||||||
|
(1) Time-of-year clock (YES or NO)
|
||||||
|
(2) WCS last address
|
||||||
|
(3) Accelerator type (0 = FPA absent, 1 = FPA present)
|
||||||
|
(4) K-bytes of Main Memory
|
||||||
|
(5) User WCS loaded (YES or NO)
|
||||||
|
(6) SB errors (YES or NO)
|
||||||
|
|
||||||
|
2 KA750
|
||||||
|
DS> ATT KA750 CMI KAn (1) (2) (3) (4) (5)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) Time-of-year clock (YES or NO)
|
||||||
|
(4) WCS Last Address, Hex
|
||||||
|
(5) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
2 KA780
|
||||||
|
DS> ATTACH KA780 SBI KAn (1) (2) (3) (4)
|
||||||
|
(1) G-Floating Instructions (YES or NO)
|
||||||
|
(2) H-Floating Instructions (YES or NO)
|
||||||
|
(3) WCS Last Address, Hex
|
||||||
|
(4) Accelerator Type (0 = FPA absent, 1 = FPA present)
|
||||||
|
|
||||||
|
1 HELP
|
||||||
|
This program tests the major portion of the VAX architecture
|
||||||
|
that requires privileges above and beyond those available to a
|
||||||
|
user program running in user mode under VMS.
|
||||||
|
|
||||||
|
1 SECTION
|
||||||
|
|
||||||
|
2 MEMMGT
|
||||||
|
Tests for the memory management portion of the VAX
|
||||||
|
architecture. This includes the special exceptions that only
|
||||||
|
occur as a result of memory access protection.
|
||||||
|
|
||||||
|
2 EXCEPTIONS
|
||||||
|
Tests various types of exceptions and interrupts.
|
||||||
|
|
||||||
|
2 REGISTERS
|
||||||
|
Tests of the various Internal Processor Registers.
|
||||||
|
|
||||||
|
2 CHANGEMODE
|
||||||
|
Tests of the change mode instructions and the special
|
||||||
|
exceptions associated to them.
|
||||||
|
|
||||||
|
2 TIMERS
|
||||||
|
Tests of the interval timer and the time-of-year clock.
|
||||||
|
|
||||||
|
1 EVENT
|
||||||
|
This program does not use any event flags.
|
||||||
|
|
||||||
|
1 QUICK
|
||||||
|
The QUICK flag has no effect on this program.
|
||||||
|
|
||||||
|
1 SUMMARY
|
||||||
|
This program does not provide a summay report.
|
|
@ -1,2 +1,2 @@
|
||||||
cd VAX/tests
|
cd VAX/tests
|
||||||
do EHKAA.ini
|
do VAX-DIAG.ini %1
|
||||||
|
|
113
VAX/tests/vax-diag.ini
Normal file
113
VAX/tests/vax-diag.ini
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
:: vax-diag.ini
|
||||||
|
:: This script will run the available CPU instruction and core
|
||||||
|
:: functional diagnostics for the different VAX simulators.
|
||||||
|
::
|
||||||
|
:: Default output summarizes success or failure.
|
||||||
|
:: if the script is invoked with -v as a parameter, verbose
|
||||||
|
:: diagnostic output will be produced.
|
||||||
|
::
|
||||||
|
#echof "%%0=%0\n"
|
||||||
|
#set clock async
|
||||||
|
#set debug -ntp todr.dbg
|
||||||
|
#set todr debug
|
||||||
|
#set tmr debug
|
||||||
|
#set int-clock debug=calib
|
||||||
|
#set int-clock nodebug=queue;gettime;check
|
||||||
|
#set cpu hist=20000
|
||||||
|
#break A3B4 SHOW HIST=40
|
||||||
|
set env DIAG_QUIET_MODE=0
|
||||||
|
if ("%1" == "-v") set console notelnet
|
||||||
|
else set -qu console telnet=65432,telnet=buffered; set env -a DIAG_QUIET_MODE=1
|
||||||
|
goto DIAG_%SIM_BIN_NAME%
|
||||||
|
|
||||||
|
echof "No diagnostics are available for the %SIM_NAME% Simulator\n"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
:DIAG_VAX
|
||||||
|
:DIAG_MICROVAX3900
|
||||||
|
echo Running Harware Core Test (EHKAA)
|
||||||
|
if not exist ehkaa.exe echof "\r\nMISSING - Diagnostic ehkaa.exe is missing\n"; exit 1
|
||||||
|
load ehkaa.exe
|
||||||
|
go -q 200
|
||||||
|
if (PC != 0x80018AD1) echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 1
|
||||||
|
else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 0
|
||||||
|
|
||||||
|
:DIAG_VAX730
|
||||||
|
:DIAG_VAX750
|
||||||
|
:DIAG_VAX780
|
||||||
|
:DIAG_VAX8600
|
||||||
|
echo Running Harware Core Test (EVKAA)
|
||||||
|
if not exist evkaa.exe echof "\r\nMISSING - Diagnostic evkaa.exe is missing\n"; exit 1
|
||||||
|
load evkaa.exe
|
||||||
|
expect "Hit any key to continue" send "\r"; go -q
|
||||||
|
expect [2] "done!" echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EVKAA\n"; goto extended_tests
|
||||||
|
go -q 200
|
||||||
|
echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EVKAA\n"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
:extended_tests
|
||||||
|
reset -p
|
||||||
|
if (DIAG_QUIET_MODE) echof "\nStarting VAX Diagnostic Supervisor\n"
|
||||||
|
if not exist VAX_MINIMUM_DIAGS.dsk echof "\r\nMISSING - Diagnostic disk image VAX_MINIMUM_DIAGS.dsk is missing\n"; exit 1
|
||||||
|
attach -rq rq0 VAX_MINIMUM_DIAGS.dsk
|
||||||
|
goto %SIM_BIN_NAME%
|
||||||
|
|
||||||
|
:VAX730
|
||||||
|
# VAX 11/730 Diagnostic Supervisor Setup for EVKAB/C/D/E
|
||||||
|
expect "DS> " send "ATTACH KA730 HUB KA0 no 0 0 2048 no no\r"; go -q
|
||||||
|
expect "DS> " send "ATTACH DW730 HUB DW0\r"; go -q
|
||||||
|
goto Common
|
||||||
|
|
||||||
|
:VAX750
|
||||||
|
# VAX 11/750 Diagnostic Supervisor Setup for EVKAB/C/D/E
|
||||||
|
expect "DS> " send "ATTACH KA750 CMI KA0 yes yes yes 0 0\r"; go -q
|
||||||
|
expect "DS> " send "ATTACH DW750 CMI DW0 8\r"; go -q
|
||||||
|
goto Common
|
||||||
|
|
||||||
|
:VAX780
|
||||||
|
# VAX 11/780 Diagnostic Supervisor Setup for EVKAB/C/D/E
|
||||||
|
expect "DS> " send "ATTACH KA780 SBI KA0 yes yes 0 0\r"; go -q
|
||||||
|
expect "DS> " send "ATTACH DW780 SBI DW0 3 5\r"; go -q
|
||||||
|
goto Common
|
||||||
|
|
||||||
|
:VAX8600
|
||||||
|
# VAX 11/8600 Diagnostic Supervisor Setup for EVKAB/C/D/E
|
||||||
|
expect "DS> " send "ATTACH KA780 ABUS KA0 yes yes 0 0\r"; go -q
|
||||||
|
expect "DS> " send "ATTACH DW780 ABUS DW0 3 5\r"; go -q
|
||||||
|
goto Common
|
||||||
|
|
||||||
|
:Common
|
||||||
|
expect "DS> " send "ATTACH UDA50 DW0 DUA 772150 154 5 10\r"; go -q
|
||||||
|
expect "DS> " send "ATTACH RA81 DUA DUA0\r"; go -q
|
||||||
|
expect "DS> " send "SET LOAD DUA0:[SYSMAINT]\r"; go -q
|
||||||
|
expect "DS> " send "SELECT KA0\r"; go -q
|
||||||
|
expect "DS> "
|
||||||
|
boot -q RQ0 /R5:10
|
||||||
|
#set todr debug
|
||||||
|
#set tmr debug
|
||||||
|
#set int-clock debug=calib
|
||||||
|
#set int-clock nodebug=queue;gettime;check
|
||||||
|
#set nodebug
|
||||||
|
call do_test EVKAB "VAX Basic Instructions Exerciser"
|
||||||
|
call do_test EVKAC "VAX Floating Point Instructions Exerciser"
|
||||||
|
call do_test EVKAD "VAX Compatibility Mode Instructions Exerciser"
|
||||||
|
#call do_test EVKAE "VAX Privileged Architecture Exerciser"
|
||||||
|
echof "\n*** All Diagnostic Supervisor tests PASSED ***\n"
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
:do_test
|
||||||
|
set env DIAG_TEST=%1
|
||||||
|
set env DIAG_DESC=%2
|
||||||
|
set env -a DIAG_ERRORS=1
|
||||||
|
noexpect
|
||||||
|
expect -r "Hard error" go -q
|
||||||
|
expect -r "Pass \d+, test (\d+), subtest (\d+), error (\d+)," set env -a DIAG_ERRORS=_EXPECT_MATCH_GROUP_3; return
|
||||||
|
expect -r "System fatal error while testing" go -q
|
||||||
|
expect -r "\.\. End of run, (\d+) (error|errors) detected, pass count is \d+," set env -a DIAG_ERRORS=_EXPECT_MATCH_GROUP_1; go -q
|
||||||
|
expect "DS> "
|
||||||
|
if (DIAG_QUIET_MODE) echof "\nRunning - %DIAG_DESC% %DIAG_TEST%\n"
|
||||||
|
send "RUN %DIAG_TEST%\r"
|
||||||
|
go -q
|
||||||
|
if (DIAG_ERRORS > 0) echof "\n*** FAILED - %DIAG_DESC% %DIAG_TEST%\n"; exit 1
|
||||||
|
if (DIAG_QUIET_MODE) echof "\n*** PASSED - %DIAG_DESC% %DIAG_TEST%\n"
|
||||||
|
return
|
|
@ -1,2 +1,2 @@
|
||||||
cd VAX/tests
|
cd VAX/tests
|
||||||
do EVKAA.ini
|
do VAX-DIAG.ini %1
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
cd VAX/tests
|
cd VAX/tests
|
||||||
do EVKAA.ini
|
do VAX-DIAG.ini %1
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
cd VAX/tests
|
cd VAX/tests
|
||||||
do EVKAA.ini
|
do VAX-DIAG.ini %1
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
cd VAX/tests
|
cd VAX/tests
|
||||||
do EVKAA.ini
|
do VAX-DIAG.ini %1
|
||||||
|
|
43
makefile
43
makefile
|
@ -36,6 +36,15 @@
|
||||||
# If debugging is desired, then GNU make can be invoked with
|
# If debugging is desired, then GNU make can be invoked with
|
||||||
# DEBUG=1 on the command line.
|
# DEBUG=1 on the command line.
|
||||||
#
|
#
|
||||||
|
# The default build will run per simulator tests if they are
|
||||||
|
# available. If building without running tests is desired,
|
||||||
|
# then GNU make should be invoked with TESTS=0 on the command
|
||||||
|
# line.
|
||||||
|
#
|
||||||
|
# Default test execution will produce summary output. Detailed
|
||||||
|
# test output can be produced if GNU make is invoked with
|
||||||
|
# TEST_ARG=-v on the command line.
|
||||||
|
#
|
||||||
# simh project support is provided for simulators that are built with
|
# simh project support is provided for simulators that are built with
|
||||||
# dependent packages provided with the or by the operating system
|
# dependent packages provided with the or by the operating system
|
||||||
# distribution OR for platforms where that isn't directly available
|
# distribution OR for platforms where that isn't directly available
|
||||||
|
@ -88,6 +97,7 @@ ifeq (old,$(shell gmake --version /dev/null 2>&1 | grep 'GNU Make' | awk '{ if (
|
||||||
$(warning *** Warning *** fully process this makefile)
|
$(warning *** Warning *** fully process this makefile)
|
||||||
endif
|
endif
|
||||||
BUILD_SINGLE := $(MAKECMDGOALS) $(BLANK_SUFFIX)
|
BUILD_SINGLE := $(MAKECMDGOALS) $(BLANK_SUFFIX)
|
||||||
|
BUILD_MULTIPLE_VERB = is
|
||||||
# building the pdp1, pdp11, tx-0, or any microvax simulator could use video support
|
# building the pdp1, pdp11, tx-0, or any microvax simulator could use video support
|
||||||
ifneq (,$(or $(findstring XXpdp1XX,$(addsuffix XX,$(addprefix XX,$(MAKECMDGOALS)))),$(findstring pdp11,$(MAKECMDGOALS)),$(findstring tx-0,$(MAKECMDGOALS)),$(findstring microvax1,$(MAKECMDGOALS)),$(findstring microvax2,$(MAKECMDGOALS)),$(findstring microvax3900,$(MAKECMDGOALS)),$(findstring XXvaxXX,$(addsuffix XX,$(addprefix XX,$(MAKECMDGOALS))))))
|
ifneq (,$(or $(findstring XXpdp1XX,$(addsuffix XX,$(addprefix XX,$(MAKECMDGOALS)))),$(findstring pdp11,$(MAKECMDGOALS)),$(findstring tx-0,$(MAKECMDGOALS)),$(findstring microvax1,$(MAKECMDGOALS)),$(findstring microvax2,$(MAKECMDGOALS)),$(findstring microvax3900,$(MAKECMDGOALS)),$(findstring XXvaxXX,$(addsuffix XX,$(addprefix XX,$(MAKECMDGOALS))))))
|
||||||
VIDEO_USEFUL = true
|
VIDEO_USEFUL = true
|
||||||
|
@ -102,11 +112,13 @@ ifneq (,$(or $(findstring pdp11,$(MAKECMDGOALS)),$(findstring pdp10,$(MAKECMDGOA
|
||||||
NETWORK_USEFUL = true
|
NETWORK_USEFUL = true
|
||||||
ifneq (,$(findstring all,$(MAKECMDGOALS)))
|
ifneq (,$(findstring all,$(MAKECMDGOALS)))
|
||||||
BUILD_MULTIPLE = s
|
BUILD_MULTIPLE = s
|
||||||
|
BUILD_MULTIPLE_VERB = are
|
||||||
VIDEO_USEFUL = true
|
VIDEO_USEFUL = true
|
||||||
BESM6_BUILD = true
|
BESM6_BUILD = true
|
||||||
endif
|
endif
|
||||||
ifneq (,$(word 2,$(MAKECMDGOALS)))
|
ifneq (,$(word 2,$(MAKECMDGOALS)))
|
||||||
BUILD_MULTIPLE = s
|
BUILD_MULTIPLE = s
|
||||||
|
BUILD_MULTIPLE_VERB = are
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
ifeq ($(MAKECMDGOALS),)
|
ifeq ($(MAKECMDGOALS),)
|
||||||
|
@ -114,6 +126,7 @@ else
|
||||||
NETWORK_USEFUL = true
|
NETWORK_USEFUL = true
|
||||||
VIDEO_USEFUL = true
|
VIDEO_USEFUL = true
|
||||||
BUILD_MULTIPLE = s
|
BUILD_MULTIPLE = s
|
||||||
|
BUILD_MULTIPLE_VERB = are
|
||||||
BUILD_SINGLE := all $(BUILD_SINGLE)
|
BUILD_SINGLE := all $(BUILD_SINGLE)
|
||||||
BESM6_BUILD = true
|
BESM6_BUILD = true
|
||||||
endif
|
endif
|
||||||
|
@ -121,7 +134,12 @@ endif
|
||||||
find_exe = $(abspath $(strip $(firstword $(foreach dir,$(strip $(subst :, ,$(PATH))),$(wildcard $(dir)/$(1))))))
|
find_exe = $(abspath $(strip $(firstword $(foreach dir,$(strip $(subst :, ,$(PATH))),$(wildcard $(dir)/$(1))))))
|
||||||
find_lib = $(abspath $(strip $(firstword $(foreach dir,$(strip $(LIBPATH)),$(wildcard $(dir)/lib$(1).$(LIBEXT))))))
|
find_lib = $(abspath $(strip $(firstword $(foreach dir,$(strip $(LIBPATH)),$(wildcard $(dir)/lib$(1).$(LIBEXT))))))
|
||||||
find_include = $(abspath $(strip $(firstword $(foreach dir,$(strip $(INCPATH)),$(wildcard $(dir)/$(1).h)))))
|
find_include = $(abspath $(strip $(firstword $(foreach dir,$(strip $(INCPATH)),$(wildcard $(dir)/$(1).h)))))
|
||||||
|
ifneq (0,$(TESTS))
|
||||||
find_test = $(abspath $(wildcard $(1)/tests/$(2)_test.ini))
|
find_test = $(abspath $(wildcard $(1)/tests/$(2)_test.ini))
|
||||||
|
TESTING_FEATURES = - Per simulator tests will be run
|
||||||
|
else
|
||||||
|
TESTING_FEATURES = - Per simulator tests will be skipped
|
||||||
|
endif
|
||||||
ifneq ($(findstring Windows,$(OS)),)
|
ifneq ($(findstring Windows,$(OS)),)
|
||||||
ifeq ($(findstring .exe,$(SHELL)),.exe)
|
ifeq ($(findstring .exe,$(SHELL)),.exe)
|
||||||
# MinGW
|
# MinGW
|
||||||
|
@ -741,7 +759,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
else
|
else
|
||||||
INCPATH = $(INCPATHSAVE)
|
INCPATH = $(INCPATHSAVE)
|
||||||
$(info *** Warning ***)
|
$(info *** Warning ***)
|
||||||
$(info *** Warning *** $(BUILD_SINGLE)Simulator$(BUILD_MULTIPLE) are being built WITHOUT)
|
$(info *** Warning *** $(BUILD_SINGLE)Simulator$(BUILD_MULTIPLE) $(BUILD_MULTIPLE_VERB) being built WITHOUT)
|
||||||
$(info *** Warning *** libpcap networking support)
|
$(info *** Warning *** libpcap networking support)
|
||||||
$(info *** Warning ***)
|
$(info *** Warning ***)
|
||||||
$(info *** Warning *** To build simulator(s) with libpcap networking support you)
|
$(info *** Warning *** To build simulator(s) with libpcap networking support you)
|
||||||
|
@ -782,7 +800,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
ifneq (,$(findstring Linux,$(OSTYPE))$(findstring Darwin,$(OSTYPE)))
|
ifneq (,$(findstring Linux,$(OSTYPE))$(findstring Darwin,$(OSTYPE)))
|
||||||
ifneq (,$(findstring USE_NETWORK,$(NETWORK_CCDEFS))$(findstring USE_SHARED,$(NETWORK_CCDEFS)))
|
ifneq (,$(findstring USE_NETWORK,$(NETWORK_CCDEFS))$(findstring USE_SHARED,$(NETWORK_CCDEFS)))
|
||||||
$(info *** Info ***)
|
$(info *** Info ***)
|
||||||
$(info *** Info *** $(BUILD_SINGLE)Simulator$(BUILD_MULTIPLE) are being built with)
|
$(info *** Info *** $(BUILD_SINGLE)Simulator$(BUILD_MULTIPLE) $(BUILD_MULTIPLE_VERB) being built with)
|
||||||
$(info *** Info *** minimal libpcap networking support)
|
$(info *** Info *** minimal libpcap networking support)
|
||||||
$(info *** Info ***)
|
$(info *** Info ***)
|
||||||
endif
|
endif
|
||||||
|
@ -845,7 +863,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
NETWORK_CCDEFS += -DUSE_NETWORK
|
NETWORK_CCDEFS += -DUSE_NETWORK
|
||||||
NETWORK_FEATURES = - WITHOUT Local LAN networking support
|
NETWORK_FEATURES = - WITHOUT Local LAN networking support
|
||||||
$(info *** Warning ***)
|
$(info *** Warning ***)
|
||||||
$(info *** Warning *** $(BUILD_SINGLE)Simulator$(BUILD_MULTIPLE) are being built WITHOUT LAN networking support)
|
$(info *** Warning *** $(BUILD_SINGLE)Simulator$(BUILD_MULTIPLE) $(BUILD_MULTIPLE_VERB) being built WITHOUT LAN networking support)
|
||||||
$(info *** Warning ***)
|
$(info *** Warning ***)
|
||||||
$(info *** Warning *** To build simulator(s) with networking support you should read)
|
$(info *** Warning *** To build simulator(s) with networking support you should read)
|
||||||
$(info *** Warning *** 0readme_ethernet.txt and follow the instructions regarding the)
|
$(info *** Warning *** 0readme_ethernet.txt and follow the instructions regarding the)
|
||||||
|
@ -1115,6 +1133,9 @@ ifneq (clean,$(MAKECMDGOALS))
|
||||||
ifneq (,$(VIDEO_FEATURES))
|
ifneq (,$(VIDEO_FEATURES))
|
||||||
$(info *** $(VIDEO_FEATURES).)
|
$(info *** $(VIDEO_FEATURES).)
|
||||||
endif
|
endif
|
||||||
|
ifneq (,$(TESTING_FEATURES))
|
||||||
|
$(info *** $(TESTING_FEATURES).)
|
||||||
|
endif
|
||||||
ifneq (,$(GIT_COMMIT_ID))
|
ifneq (,$(GIT_COMMIT_ID))
|
||||||
$(info ***)
|
$(info ***)
|
||||||
$(info *** git commit id is $(GIT_COMMIT_ID).)
|
$(info *** git commit id is $(GIT_COMMIT_ID).)
|
||||||
|
@ -1878,7 +1899,7 @@ else
|
||||||
copy $(@D)\microvax3900${EXE} $(@D)\vax${EXE}
|
copy $(@D)\microvax3900${EXE} $(@D)\vax${EXE}
|
||||||
endif
|
endif
|
||||||
ifneq (,$(call find_test,$(VAXD),microvax3900))
|
ifneq (,$(call find_test,$(VAXD),microvax3900))
|
||||||
$@ $(call find_test,$(VAXD),microvax3900)
|
$@ $(call find_test,$(VAXD),microvax3900) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
microvax1 : ${BIN}BuildROMs${EXE} ${BIN}microvax1${EXE}
|
microvax1 : ${BIN}BuildROMs${EXE} ${BIN}microvax1${EXE}
|
||||||
|
@ -1887,7 +1908,7 @@ ${BIN}microvax1${EXE} : ${VAX610} ${SIM} ${BUILD_ROMS}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
${CC} ${VAX610} ${SIM} ${VAX610_OPT} -o $@ ${LDFLAGS}
|
${CC} ${VAX610} ${SIM} ${VAX610_OPT} -o $@ ${LDFLAGS}
|
||||||
ifneq (,$(call find_test,$(VAXD),microvax1))
|
ifneq (,$(call find_test,$(VAXD),microvax1))
|
||||||
$@ $(call find_test,$(VAXD),microvax1)
|
$@ $(call find_test,$(VAXD),microvax1) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
rtvax1000 : ${BIN}BuildROMs${EXE} ${BIN}rtvax1000${EXE}
|
rtvax1000 : ${BIN}BuildROMs${EXE} ${BIN}rtvax1000${EXE}
|
||||||
|
@ -1896,7 +1917,7 @@ ${BIN}rtvax1000${EXE} : ${VAX630} ${SIM} ${BUILD_ROMS}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
${CC} ${VAX630} ${SIM} ${VAX620_OPT} -o $@ ${LDFLAGS}
|
${CC} ${VAX630} ${SIM} ${VAX620_OPT} -o $@ ${LDFLAGS}
|
||||||
ifneq (,$(call find_test,$(VAXD),rtvax1000))
|
ifneq (,$(call find_test,$(VAXD),rtvax1000))
|
||||||
$@ $(call find_test,$(VAXD),rtvax1000)
|
$@ $(call find_test,$(VAXD),rtvax1000) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
microvax2 : ${BIN}BuildROMs${EXE} ${BIN}microvax2${EXE}
|
microvax2 : ${BIN}BuildROMs${EXE} ${BIN}microvax2${EXE}
|
||||||
|
@ -1905,7 +1926,7 @@ ${BIN}microvax2${EXE} : ${VAX630} ${SIM} ${BUILD_ROMS}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
${CC} ${VAX630} ${SIM} ${VAX630_OPT} -o $@ ${LDFLAGS}
|
${CC} ${VAX630} ${SIM} ${VAX630_OPT} -o $@ ${LDFLAGS}
|
||||||
ifneq (,$(call find_test,$(VAXD),microvax2))
|
ifneq (,$(call find_test,$(VAXD),microvax2))
|
||||||
$@ $(call find_test,$(VAXD),microvax2)
|
$@ $(call find_test,$(VAXD),microvax2) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
vax730 : ${BIN}BuildROMs${EXE} ${BIN}vax730${EXE}
|
vax730 : ${BIN}BuildROMs${EXE} ${BIN}vax730${EXE}
|
||||||
|
@ -1914,7 +1935,7 @@ ${BIN}vax730${EXE} : ${VAX730} ${SIM} ${BUILD_ROMS}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
${CC} ${VAX730} ${SIM} ${VAX730_OPT} -o $@ ${LDFLAGS}
|
${CC} ${VAX730} ${SIM} ${VAX730_OPT} -o $@ ${LDFLAGS}
|
||||||
ifneq (,$(call find_test,$(VAXD),vax730))
|
ifneq (,$(call find_test,$(VAXD),vax730))
|
||||||
$@ $(call find_test,$(VAXD),vax730)
|
$@ $(call find_test,$(VAXD),vax730) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
vax750 : ${BIN}BuildROMs${EXE} ${BIN}vax750${EXE}
|
vax750 : ${BIN}BuildROMs${EXE} ${BIN}vax750${EXE}
|
||||||
|
@ -1923,7 +1944,7 @@ ${BIN}vax750${EXE} : ${VAX750} ${SIM} ${BUILD_ROMS}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
${CC} ${VAX750} ${SIM} ${VAX750_OPT} -o $@ ${LDFLAGS}
|
${CC} ${VAX750} ${SIM} ${VAX750_OPT} -o $@ ${LDFLAGS}
|
||||||
ifneq (,$(call find_test,$(VAXD),vax750))
|
ifneq (,$(call find_test,$(VAXD),vax750))
|
||||||
$@ $(call find_test,$(VAXD),vax750)
|
$@ $(call find_test,$(VAXD),vax750) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
vax780 : ${BIN}BuildROMs${EXE} ${BIN}vax780${EXE}
|
vax780 : ${BIN}BuildROMs${EXE} ${BIN}vax780${EXE}
|
||||||
|
@ -1932,7 +1953,7 @@ ${BIN}vax780${EXE} : ${VAX780} ${SIM} ${BUILD_ROMS}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
${CC} ${VAX780} ${SIM} ${VAX780_OPT} $(CC_OUTSPEC) ${LDFLAGS}
|
${CC} ${VAX780} ${SIM} ${VAX780_OPT} $(CC_OUTSPEC) ${LDFLAGS}
|
||||||
ifneq (,$(call find_test,$(VAXD),vax780))
|
ifneq (,$(call find_test,$(VAXD),vax780))
|
||||||
$@ $(call find_test,$(VAXD),vax780)
|
$@ $(call find_test,$(VAXD),vax780) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
vax8600 : ${BIN}BuildROMs${EXE} ${BIN}vax8600${EXE}
|
vax8600 : ${BIN}BuildROMs${EXE} ${BIN}vax8600${EXE}
|
||||||
|
@ -1941,7 +1962,7 @@ ${BIN}vax8600${EXE} : ${VAX8600} ${SIM} ${BUILD_ROMS}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
${CC} ${VAX8600} ${SIM} ${VAX8600_OPT} $(CC_OUTSPEC) ${LDFLAGS}
|
${CC} ${VAX8600} ${SIM} ${VAX8600_OPT} $(CC_OUTSPEC) ${LDFLAGS}
|
||||||
ifneq (,$(call find_test,$(VAXD),vax8600))
|
ifneq (,$(call find_test,$(VAXD),vax8600))
|
||||||
$@ $(call find_test,$(VAXD),vax8600)
|
$@ $(call find_test,$(VAXD),vax8600) $(TEST_ARG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
nova : ${BIN}nova${EXE}
|
nova : ${BIN}nova${EXE}
|
||||||
|
|
Loading…
Add table
Reference in a new issue