blob: 18ec092c3fdf8a4848e70b6dd9bf1df60daef178 [file] [log] [blame] [raw]
; set console -n log=log.txt
; set debug -n debug.txt
; set debug stdout
; set cpu debug=cmd;data;detail
; params: %1 source progrma card deck to compile with it
; %2 input program data card deck (if empty, do not attach input card)
; %3 output program data card deck (if empty, do not attach input card)
set cpu 2k
att cdp0 -n -q print.txt
; print IT source program
echo
carddeck -q print %1
; load IT compiler but do not execute it
echo ***
echo *** Load IT compiler deck into drum
echo ***
att cdr1 -q -l it_compiler.dck
d csw 70 1951 3000
d ar 8000
go
echo ***
echo *** Run IT compiler
echo ***
; Now put source cards in reader and start compiler
att cdr1 -q %1
set cdr1 wiring=it
att cdp1 -n -q deck_out.dck
set cdp1 echo, print, wiring=it
d csw 70 1999 3000
d ar 8000
go
; check if compilation ok
if accup=0 goto compile_ok
echo
echo *** (compilation error code in Upper ACC)
echo
ex accup
goto end
:compile_ok
; Prepare PIT deck (as compiled IT program)
; separate last 10 cards from compilation output deck (called reservation cards)
carddeck -q split -10 cdp1 deck_soap.dck deck_res.dck
det cdr1
; create the pit program deck with
; 1) reservation cards from compilation step
; 2) package used reservation deck
; 3) rest of compilation output
carddeck -q join deck_res.dck it_reservation_p1.dck deck_soap.dck as deck_pit.dck
; Load soap deck into drum (1 word per card format), but does not execute it
echo ***
echo *** Load soap deck into drum
echo ***
att cdr1 -q -l soapII.dck
d csw 7019519999
d ar 8000
go
echo ***
echo *** Apply IT modifications to soap deck
echo ***
att cdr1 -q -l it_soapII_patch.dck
d csw 7019519999
d ar 8000
go
; Now put source cards in reader and start soap assembler
echo ***
echo *** Assemble PIT deck
echo ***
att cdr1 deck_pit.dck
set cdr1 wiring=soap
att cdp1 -n -q deck_out.dck
set cdp1 echo, print, wiring=soap
d ar 1000
go
; Prepare SPIT deck (as assembled PIT program)
; create the spit program deck with
; 1) package cards
; 2) assembly output
det cdr1
det cdp1
carddeck -q join it_package_p1.dck deck_out.dck as deck_spit.dck
; Load deck into drum (1 word per card format), but does not execute it
echo ***
echo *** Read SPIT deck to run into drum
echo ***
; 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 -l deck_spit.dck
d csw 7019519999
d ar 8000
go
; attach input and output data deck
det cdr1
if "%2" == "" goto run1
att cdr1 -q %2
set cdr1 wiring=it
:run1
if "%3" == "" goto run2
att cdp1 -n -q %3
set cdp1 echo, print, wiring=it
:run2
; Now execute the loaded deck
echo ***
echo *** Run program
echo ***
; set csw to -1 to activate conditional type statement
d csw 0
d ar 1999
go
; clean up
del deck_pit.dck
del deck_spit.dck
del deck_soap.dck
del deck_res.dck
:end