- Integration with updated sim_card API - Addition of MT (Mag Tape) device - Addition of DSK (Disk) device - Build time simulator test
134 lines
2.9 KiB
INI
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
|
|
|