1
0
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:
Roberto Sancho Villa
2020-05-15 05:57:01 -07:00
committed by Mark Pizzolato
parent 275cc417fe
commit 08027162ca
69 changed files with 22549 additions and 441 deletions

98
I650/tests/i650_test.ini Normal file
View 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
View 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
View 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
View File

@@ -0,0 +1,12 @@
48000000520000000001000000000100000000000000000000000000000000000000000000010004
110000005L0000000002000000000100000000000000000000000000000000000000000000020004
30300000530000000003000000000100000000000000000000000000000000000000000000030004
166000005L0000000004000000000100000000000000000000000000000000000000000000040004
100000005L0000000001000000000200000000000000000000000000000000000000000000050004
69000000520000000002000000000200000000000000000000000000000000000000000000060004
262000005L0000000003000000000200000000000000000000000000000000000000000000070004
19200000530000000004000000000200000000000000000000000000000000000000000000080004
13900000530000000001000000000300000000000000000000000000000000000000000000090004
80000000510000000002000000000300000000000000000000000000000000000000000000100004
32400000530000000003000000000300000000000000000000000000000000000000000000110004
16900000530000000004000000000300000000000000000000000000000000000000000000120004