- Integration with updated sim_card API - Addition of MT (Mag Tape) device - Addition of DSK (Disk) device - Build time simulator test
249 lines
4.7 KiB
INI
249 lines
4.7 KiB
INI
|
|
; set console -n log=log.txt
|
|
; set debug -n debug.txt
|
|
; set debug stdout
|
|
; set cpu debug=cmd;data;detail
|
|
|
|
|
|
; params: %1 source program card deck to compile
|
|
; %2 input program data card deck (if empty, do not attach input card)
|
|
; %3 output program data card deck (if empty, attach deck_out.dck file)
|
|
|
|
set cpu 2k
|
|
set cpu StorageUnit
|
|
|
|
att cdp0 -n -q print.txt
|
|
|
|
; print FORTRANSIT source program
|
|
|
|
echo
|
|
carddeck -q print %1
|
|
|
|
; load FORTRANSIT translator but do not execute it
|
|
|
|
echo ***
|
|
echo *** Load FORTRANSIT translator deck into drum
|
|
echo ***
|
|
|
|
set cdr1 wiring=8word
|
|
att cdr1 -q -l fortransit/fortransit_translator.dck
|
|
|
|
d csw 70 1951 9999
|
|
d ar 8000
|
|
go
|
|
|
|
; attach and load reconstructed add function title deck
|
|
|
|
att cdr1 -q -l fortransit/fortransit_addfn.dck
|
|
|
|
d csw 70 1951 9999
|
|
d ar 8000
|
|
go
|
|
|
|
echo ***
|
|
echo *** Run FORTRANSIT translator
|
|
echo ***
|
|
|
|
; Now put source cards in reader and start translator (phase I)
|
|
|
|
att cdr1 -q %1
|
|
set cdr1 wiring=fortransit
|
|
|
|
att cdp1 -n -q deck_it.dck
|
|
set cdp1 echo, print, wiring=fortransit
|
|
|
|
d csw 00 0000 1999
|
|
d ar 8000
|
|
go
|
|
|
|
; check if programed stop because an error is detected
|
|
if not prop==01 goto translate_ok1;
|
|
|
|
echo
|
|
echo *** (translation error code in Address Register AR)
|
|
echo
|
|
|
|
ex ar
|
|
|
|
echo
|
|
echo *** (show last three source fortransit cards processed)
|
|
echo
|
|
carddeck -q echolast 3 cdr1
|
|
|
|
goto end
|
|
|
|
:translate_ok1
|
|
|
|
; check if programed stop because normal termination
|
|
if ((PROP==70) && (AR==1951)) goto translate_ok2;
|
|
goto end
|
|
|
|
:translate_ok2
|
|
|
|
; separate last card (header card), and put it in the
|
|
; top of deck
|
|
|
|
carddeck -q split -1 cdp1 deck_it.dck deck_it_header.dck
|
|
carddeck -q join deck_it_header.dck deck_it.dck as deck_it.dck
|
|
det cdr1
|
|
|
|
; load IT compiler but do not execute it
|
|
|
|
echo ***
|
|
echo *** Load IT compiler deck into drum
|
|
echo ***
|
|
|
|
att cdr1 -q -l fortransit/it_compiler.dck
|
|
|
|
d csw 70 1951 9999
|
|
d ar 8000
|
|
go
|
|
|
|
echo ***
|
|
echo *** Run IT compiler
|
|
echo ***
|
|
|
|
; Now put IT source cards in reader and start compiler (phase II)
|
|
|
|
att cdr1 -q deck_it.dck
|
|
att cdp1 -n -q deck_out.dck
|
|
|
|
d csw 00 0000 1999
|
|
d ar 8000
|
|
go
|
|
|
|
; check if programed stop because an error is detected
|
|
|
|
if not ar==1234 goto compile_ok1;
|
|
|
|
echo
|
|
echo *** (compilation error code in Upper ACC)
|
|
echo
|
|
|
|
ex accup
|
|
goto end
|
|
|
|
:compile_ok1
|
|
|
|
; check if programed stop because normal termination
|
|
if ((PROP==70) && (AR==1951)) goto compile_ok2;
|
|
goto end
|
|
|
|
:compile_ok2
|
|
|
|
; separate first card (reservation card), from
|
|
; generated soap source code deck
|
|
|
|
carddeck -q split 1 cdp1 deck_res.dck deck_soap.dck
|
|
det cdr1
|
|
|
|
; 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 fortransit/soapII.dck
|
|
|
|
d csw 7019519999
|
|
d ar 8000
|
|
go
|
|
|
|
; create the phase III deck with
|
|
; - entry point cards for subroutines
|
|
; - reservation cards from phase II
|
|
; - package reservation cards
|
|
; - subroutines in symbolic SOAP format (if any)
|
|
; - rest of compilation output from phase II
|
|
|
|
carddeck -q join fortransit/pack_entry_src.txt deck_res.dck fortransit/pack_res2.txt deck_soap.dck as deck_soap.dck
|
|
|
|
echo ***
|
|
echo *** Run SOAP assembler
|
|
echo ***
|
|
|
|
att cdr1 -q deck_soap.dck
|
|
set cdr1 wiring=soap
|
|
|
|
att cdp1 -n -q deck_out.dck
|
|
set cdp1 echo, print, wiring=soap
|
|
|
|
d ar 1000
|
|
go
|
|
|
|
; check if programed stop because an error is detected
|
|
if not prop==01 goto assemble_ok1;
|
|
|
|
echo
|
|
echo *** (assembling error code in AR)
|
|
echo
|
|
|
|
ex ar
|
|
goto end
|
|
|
|
:assemble_ok1
|
|
|
|
; check if programed stop because normal termination
|
|
if ((PROP==70) && (AR==1951)) goto assemble_ok2;
|
|
goto end
|
|
|
|
:assemble_ok2
|
|
|
|
det cdr1
|
|
det cdp1
|
|
|
|
; create object program deck with
|
|
; - package cards
|
|
; - assembled program cards from phase III
|
|
|
|
carddeck -q join fortransit/pack.dck deck_out.dck as deck_out.dck
|
|
|
|
echo ***
|
|
echo *** Read Object Program Deck
|
|
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 -q -l deck_out.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=fortransit
|
|
:run1
|
|
|
|
if "%3" != "" att cdp1 -n -q %3;
|
|
if "%3" == "" att cdp1 -n -q deck_out.dck;
|
|
set cdp1 echo, print, wiring=fortransit
|
|
|
|
; Now execute the loaded program object deck
|
|
|
|
echo ***
|
|
echo *** Run Program
|
|
echo ***
|
|
|
|
; set csw negative to activate conditional punch statement
|
|
; normal program termination will halt cpu at AR=9999
|
|
|
|
d csw -01 0000 9999
|
|
d ar 1999
|
|
go
|
|
|
|
; clean up
|
|
|
|
del deck_it_header.dck
|
|
del deck_it.dck
|
|
del deck_res.dck
|
|
del deck_soap.dck
|
|
|
|
:end
|