mirror of
https://github.com/simh/simh.git
synced 2026-02-07 00:38:04 +00:00
I650: Update IBM 650 simulator to Release 4
- Integration with updated sim_card API - Addition of MT (Mag Tape) device - Addition of DSK (Disk) device - Build time simulator test
This commit is contained in:
committed by
Mark Pizzolato
parent
275cc417fe
commit
08027162ca
98
I650/tests/i650_test.ini
Normal file
98
I650/tests/i650_test.ini
Normal file
@@ -0,0 +1,98 @@
|
||||
:: i650_test.ini
|
||||
::
|
||||
:: there are not know diagnostic program for ibm 650.
|
||||
:: so sanity check of simulator is done by executing some programs
|
||||
::
|
||||
|
||||
cd %~p0
|
||||
cd ../sw
|
||||
|
||||
set console -n log=console.txt
|
||||
set debug -q -n debug.txt
|
||||
set cpu debug=cmd;data;detail
|
||||
set mt debug=cmd;data;detail;exp
|
||||
set dsk debug=cmd;data;detail;exp
|
||||
|
||||
:: Limit maximum diagnostic execution time
|
||||
runlimit 2 minutes
|
||||
set on
|
||||
on error ignore
|
||||
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\r\n"; exit 1
|
||||
|
||||
:: Basic Opcodes test
|
||||
|
||||
echof
|
||||
echof
|
||||
echof "** IBM 650: Basic Instruction Test: "
|
||||
|
||||
do run_fds.ini fds/example.txt
|
||||
|
||||
if ar!=9999 echof "FDS failed (bad ar)";exit 1
|
||||
|
||||
:: checks mem contents
|
||||
if 0977!=0000000009 echof "FDS failed (bad 0977)";exit 1
|
||||
if 0978!=5090000000 echof "FDS failed (bad 0978)";exit 1
|
||||
if 0979!=5030000000 echof "FDS failed (bad 0979)";exit 1
|
||||
echof "FDS Ok"
|
||||
echof "** Test: passed."
|
||||
|
||||
|
||||
echof
|
||||
echof
|
||||
echof "** IBM 650: Floating Point Instruction Test: "
|
||||
|
||||
do run_fortransit.ini fortransit/fortransit_example_2_src.txt fortransit/fortransit_example_2_data.txt
|
||||
|
||||
if -f not "deck_out.dck" == "../tests/testmm.dck" echof "FORTANSIT Mat Mult failed"; exit 1
|
||||
|
||||
echof "FORTRANSIT Ok"
|
||||
echof "** Test: passed."
|
||||
|
||||
echof
|
||||
echof
|
||||
echof "** IBM 650: Index, IAS and RAMAC: "
|
||||
|
||||
do run_supersoap_ramac.ini supersoap/ssoap_example_src.txt
|
||||
|
||||
if ar!=9898 echof "SuperSoap failed (bad ar)";exit 1
|
||||
if -f not "deck_out.dck" == "../tests/ssoapexpl.dck" echof "SuperSoap Example failed"; exit 1
|
||||
|
||||
echof "SuperSoap Ok"
|
||||
echof "** Test: passed."
|
||||
|
||||
echof
|
||||
echof
|
||||
echof "** IBM 650: 4k Drum and Tape: "
|
||||
|
||||
do build_soap4_tap_lib.ini
|
||||
if ar!=0002 echof "Soap4 failed (bad ar)";exit 1
|
||||
if -f not "deck_out.dck" == "../tests/soap4tap.dck" echof "Soap4 tap lib failed"; exit 1
|
||||
|
||||
echof "Soap4 Ok"
|
||||
echof "** Test: passed."
|
||||
|
||||
echof
|
||||
echof
|
||||
echof "** clean up temp files generated during tests "
|
||||
|
||||
det all
|
||||
set -q nodebug
|
||||
set -q console nolog
|
||||
|
||||
del -q debug.txt
|
||||
del -q print.txt
|
||||
del -q console.txt
|
||||
del -q deck_out_run.dck
|
||||
del -q deck_out_pat.dck
|
||||
del -q deck_out_5cd.dck
|
||||
del -q deck_out.dck
|
||||
del -q deck_in.dck
|
||||
|
||||
echof
|
||||
echof
|
||||
echof "!! All Tests Passed !!"
|
||||
echof
|
||||
|
||||
exit 0
|
||||
|
||||
:end
|
||||
13
I650/tests/soap4tap.dck
Normal file
13
I650/tests/soap4tap.dck
Normal file
@@ -0,0 +1,13 @@
|
||||
0?0000800? 0001 1 soap test tap
|
||||
0?0000800? 0002 1
|
||||
0?0000800? 0003 equsub1 1000
|
||||
0?0000800? 0004 1
|
||||
6I1954195C 0005241000800?000000000D sub1 nop 0000 sub2 commen
|
||||
0?0000800? 0006 1 sub2 tap
|
||||
6I1954195C 0007240004800?000002000H sub2 nop 0002 comment
|
||||
6I1954195C 0008240008800?010002001B hlt 0002
|
||||
0?0000800? 0009 1
|
||||
6I1954195C 0010240012800?010001001F hlt 0001
|
||||
0?0000800? 0011 pst
|
||||
0?0000800? 0000 equsub1 1000
|
||||
0?0000800? 0000 equsub2 0004
|
||||
22
I650/tests/ssoapexpl.dck
Normal file
22
I650/tests/ssoapexpl.dck
Normal file
@@ -0,0 +1,22 @@
|
||||
?000008000 0001 1 example calculate f of x
|
||||
?000008000 0002
|
||||
?000008000 0003 blr 1951 1960 read area
|
||||
?000008000 0004 p0001blr 27 p0002 punch area
|
||||
F919541953 0005240004800?600007001A startrauone 1f set x
|
||||
F919541953 0006240011800?210027003? 1 stup0001 to 1
|
||||
F919541953 0007240030800?190033000C mpya calculate
|
||||
F919541953 0008240003800?150006006A alob f
|
||||
F919541953 0009240061800?608002001I rau 8002
|
||||
F919541953 0010240019800?190027004G mpyp0001
|
||||
F919541953 0011240047800?150000000E aloc
|
||||
F919541953 0012240005800?200028003A stlp0002
|
||||
F919541953 0013240031800?710027003G wr1p0001 punch
|
||||
F919541953 0014240037800?600027008A raup0001
|
||||
F919541953 0015240081800?110034003I supxmax is x max
|
||||
F919541953 0016240039800?440043987F nzu 9876
|
||||
F919541953 0017240043800?100046001A aup101 1b increase x
|
||||
?000008000 0018
|
||||
F919541953 0019240007800?000000000A one 00 0000 0001 constants
|
||||
F919541953 0020240034800?000000010? xmax 00 0000 0100
|
||||
F919541953 0021240046800?000000010A 101 00 0000 0101
|
||||
?000008000 0022 end
|
||||
12
I650/tests/testmm.dck
Normal file
12
I650/tests/testmm.dck
Normal file
@@ -0,0 +1,12 @@
|
||||
48000000520000000001000000000100000000000000000000000000000000000000000000010004
|
||||
110000005L0000000002000000000100000000000000000000000000000000000000000000020004
|
||||
30300000530000000003000000000100000000000000000000000000000000000000000000030004
|
||||
166000005L0000000004000000000100000000000000000000000000000000000000000000040004
|
||||
100000005L0000000001000000000200000000000000000000000000000000000000000000050004
|
||||
69000000520000000002000000000200000000000000000000000000000000000000000000060004
|
||||
262000005L0000000003000000000200000000000000000000000000000000000000000000070004
|
||||
19200000530000000004000000000200000000000000000000000000000000000000000000080004
|
||||
13900000530000000001000000000300000000000000000000000000000000000000000000090004
|
||||
80000000510000000002000000000300000000000000000000000000000000000000000000100004
|
||||
32400000530000000003000000000300000000000000000000000000000000000000000000110004
|
||||
16900000530000000004000000000300000000000000000000000000000000000000000000120004
|
||||
Reference in New Issue
Block a user