simh-testsetgenerator/I650/sw/run_supersoap.ini
Roberto Sancho Villa 08027162ca 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
2020-05-15 05:57:01 -07:00

134 lines
2.9 KiB
INI

; set console -n log=log.txt
; set debug -n debug.txt
; set debug stdout
; set cpu debug=cmd;data;detail
; set mt debug=cmd;data;detail;exp
; set dsk debug=cmd;data;detail;exp
; params: %1 source card deck to assemble with soap
; %2 start address to run program (If empty, program not run)
; %3 input card deck (if empty, do not attach input card)
; %4 input card deck wiring (if empty, uses 8WORD)
; %5 output card deck wiring (if empty, uses 8WORD)
; Assembles using SuperSoap card deck. Do not need ramac if only outputs 1-word
; format cards, and does not uses the following pseudo operatios:
; CDD, DSK, TAP, DEK, SKP, FIL, DON, FIV, PLR, PAL. PDL, LAT, SAT, LST, SST
set cpu 2k
set cpu soapmne
set cpu CntrlUnit
set cpu StorageUnit
; SuperSoap needed the Table lookup feature installed (to provide TLE opcode)
set cpu tle
at mt2 soaplib.tap
at dsk0 ramac0.dsk
; Load soap deck into drum (1 word per card format), but does not execute it
set cdr1 wiring=8word
att cdr1 -q -l supersoap/ssoap_main.dck
echo ***
echo *** Load SuperSoap main deck into drum
echo ***
d csw 7019518282
d ar 8000
go
; Now put source cards in reader and start soap assembler
att cdr1 -q %1
set cdr1 wiring=supersoap
att cdp1 -n -q deck_out.dck
set cdp1 echo, print, wiring=supersoap
att cdp0 -n -q print.txt
echo ***
echo *** Assemble source deck
echo ***
; uncomment this debug to get trace of how source deck is assembled
; set debug -n debug.txt
; use transfer card for main program (line 1552 of supersoap listing),
; RD1 1999 1998 8004 +70 1999 1998
; we store in distrib (addr 8001) and exec from it
dep dist 70 1999 1998
dep ar 8001
go
if ar==9898 goto noasmerr
echo *** Error in last read card:
carddeck -q echolast 1 cdr1
echo *** Error in PR register:
ex pr
goto end
:noasmerr
; separate 5 words per card deck if any generated
carddeck -q split 5cd cdp1 deck_out.dck deck_out_5cd.dck
; discard availability card generated if any
carddeck -q split pat deck_out.dck deck_out.dck deck_out_pat.dck
if "%2" == "" goto end
; Load assembled deck into drum
; -l switch allows to load the symbolic info so debug cmd info will show
; soap source code read from card.
set cdr1 wiring=8WORD
att cdr1 -q -l deck_out.dck
att cdp1 -n -q deck_out_run.dck
set cdp1 echo, print, wiring=8WORD
echo ***
echo *** Read assembled program deck
echo ***
d csw 7019519999
d ar 8000
go
; attach input deck
if "%3" == "" goto run1
if "%4" == "" goto run2
set cdr1 wiring=%4
:run2
if "%5" == "" goto run3
set cdp1 wiring=%5
:run3
att cdr1 -q %3
; Now execute the loaded deck
:run1
echo ***
echo *** Run assembled program
echo ***
; uncomment this debug to get trace of how assembled source deck is executed
; set debug -n debug.txt
d ar %2
go
:end