1
0
mirror of https://github.com/simh/simh.git synced 2026-02-19 05:48:18 +00:00

i650: New IBM 650 Simulator

This commit is contained in:
Roberto Sancho Villa
2018-03-25 10:17:35 -07:00
committed by Mark Pizzolato
parent 94727159e8
commit 2eb49c13b7
26 changed files with 10772 additions and 1 deletions

View File

@@ -0,0 +1,101 @@
; set console -n log=log.txt
; set debug -n debug.txt
; set debug stdout
; set cpu debug=cmd;data;detail
; params: %1 %2 ... (case insensitive)
; possible values:
; Tr build include trace deck (deck number 10)
; Set_LoopBox build include set loopbox instruction deck (deck number 21)
; Load SOAP deck into core (1 word per card format), but does not execute it
set cpu 2k
att cdr1 -q soapII.dck
echo ***
echo *** load soap deck into drum
echo ***
d csw 7019519999
d ar 8000
go
; now put interpretive system loader source cards in reader and start SOAP assembler
att cdr1 is_sys_load_src.txt
set cdr1 wiring=soap
att cdp1 -n -q deck_out.dck
set cdp1 echo, print, wiring=soap
att cdp0 -n -q print.txt
echo ***
echo *** Assemble interpretive system loader
echo ***
d ar 1000
go
echo ***
echo *** load interpretive system loader into core
echo ***
det cdp1
att cdr1 deck_out.dck
d csw 7019519999
d ar 8000
go
; create is deck with main system and optional user selected extra decks
! copy is_main_src.txt deck_in.dck > nul
:add_extra_decks
if "%1" == "" goto run
set env deck="void"
if -i "%1" == "TR" set env deck="is_trace_src.txt"
if -i "%1" == "LBOX" set env deck="is_set_loopbox.txt"
if %deck == "void" goto next_extra
! copy deck_in.dck a.dck > nul
! copy a.dck + %deck deck_in.dck > nul
! del a.dck > nul
:next_extra
shift
goto add_extra_decks
:run
att cdr1 deck_in.dck
set cdr1 wiring=is
; execute the loader to create Interpretive system deck
echo ***
echo *** run system loader
echo ***
d ar 0880
go
; generate a 1-word load card deck with whole interpretive system, ready to run
echo ***
echo *** run is system generation to create
echo interpretive system (is) 1-word per card load deck
echo ***
att cdp1 -n -q is.dck
set cdp1 echo, print, wiring=is
d ar 0801
go
:end

View File

@@ -0,0 +1,28 @@
; set console -n log=log.txt
; set debug -n debug.txt
; set debug stdout
; set cpu debug=cmd;data;detail
set cpu 2k
set cdr1 wiring=soap
; prepare deck: SOAP (condensed deck as 7 word per card format) then SOAP source code to assemblre
! copy soapII_condensed_card.dck + soap_src.txt deck_in.dck > nul
att cdr1 deck_in.dck
att cdp1 -n -q deck_out.dck
set cdp1 echo, print, wiring=soap
att cdp0 -n -q print.txt
; load soap deck (condensed soap deck autostarts)
d csw 7019511951
d ar 8000
go
:end

1100
I650/sw/is.dck Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,68 @@
prime number generator using the sieve of eratosthenes
converted to ibm 650 floating poing interpretive system (is)
uses two extra o2 codes: o2=800 (set lbox) and o2=453 (tr zero)
warning: comments are allowed past column 28 but some characters
are forbidden: uppercase letters, question mark, exclamation, number char,
ampersand char. if these chars are used, the line (i.e. the card for this
line) will be interpreted as a load card, and program will crash on trying
to execute it.
100 -9 000 201 400 initp -move i1 prime initp: prime[c]=1
101 +0 001 050 100 loop c 050 initp c++; if c<50 goto initp
102 +9 000 201 300 move i1 num num=1
103 +1 300 201 300 loop1 add num i1 num loop1: num++
104 +2 300 203 000 sub num i50 last
105 +0 201 120 106 tr sgn loope cont if num >= 50 goto loope
106 +0 800 002 300 set lbox b num b=num
107 -9 000 400 000 -move prime last last=prime[b]
108 +0 453 103 110 tr zero loop1 cont if last = 0 goto loop1
110 +9 000 300 301 move num mult mult=num
111 +1 300 301 301 loop2 add num mult mult loop2: mult=mult+num
112 +2 301 203 000 sub mult i50 last
113 +0 201 103 114 tr sgn loop1 cont if mult >= 50 goto loop1 (go to b if +, go to c if -)
114 +0 800 003 301 set lbox c mult c=mult
115 -9 000 200 400 -move zero prime prime[c]=0
116 +0 203 000 111 tr loop2 goto loop2
120 +9 000 201 300 loope move i1 num loope: num=1
121 +0 800 002 202 set lbox b i2 b=2
122 +1 300 201 300 prt1 add num i1 num prt1: num++
123 -9 000 400 000 -move prime last last=prime[b]
124 +0 453 127 126 tr zero prt2 cont if last = 0 goto prt2
126 +0 410 300 300 pch num num punch num
127 +0 010 050 122 prt2 loop b 050 prt1 prt2: b++; if b<50 goto prt1
128 +0 000 000 000 unc stop end
constants
200 +0 0000000 50 zero
201 +1 0000000 50 i1
202 +2 0000000 50 i2
203 +5 0000000 51 i50
variables
300 +0 0000000 50 num current number to check for being prime
301 +0 0000000 50 mult multiple
400 +0 0000000 50 prime array of numbers 400-449
100 program start address

1145
I650/sw/is_main_src.txt Normal file

File diff suppressed because it is too large Load Diff

48
I650/sw/is_run.ini Normal file
View File

@@ -0,0 +1,48 @@
; set console -n log=log.txt
; set debug -n debug.txt
; set debug stdout
; set cpu debug=cmd;data;detail
; params: %1 source card deck to run with Floating Point Interpretive System (IS)
; %2 input card deck (if empty, do not attach input card
; Load IS deck into (1 word per card format), but does not execute it
set cpu 2k
echo ***
echo *** load is deck into drum
echo ***
att cdr1 -q is.dck
d csw 7019519999
d ar 8000
go
; now put IS program cards in reader and load them
! copy %1 deck_in.dck > nul
if "%2" == "" goto run
! copy %1 + %2 deck_in.dck > nul
:run
att cdr1 deck_in.dck
set cdr1 wiring=is
att cdp1 -n -q deck_out_run.dck
set cdp1 echo, print, wiring=is
att cdp0 -n -q print.txt
echo ***
echo *** load and run IS program
echo ***
d csw 7019511333
d ar 8000
go
:end

View File

@@ -0,0 +1,77 @@
deck 21. extra instr for general computing
set loopbox O2=800
tr zero O2=453
21 1 1800 00 0000 0970 set loopbox: 0 800 00r nnn
if r=0 resets loopbox (= 000 000 000)
if r=1 sets loopbox for a-param, with value 0-999 from float
contents of register nnn. clears loobox value
for b and c. if float value at register is outside
range 0-999 program stops at 2222
if r=2 sets loobox for b
if r=3 sets loobox for c
21 2 0998 00 1000 0000 param1m (const to decrement param)
21 3 0997 35 0006 0987 bxa slt 0006 svlb
21 4 0996 35 0003 0987 bxb slt 0003 svlb
21 5 0995 00 0000 0987 bxc nop svlb
21 6 0994 60 0000 0950 fldc rau 0000 setb1
21 7 0993 00 0000 0000 shbx
21 8 0992 00 0000 0000 svfc
21 9 0991 01 0000 0000 hi01
21 10 0990 50 0000 0000 hi50
21 11 0970 65 1045 0971 ral paramb is nnn0000000
21 12 0971 45 0972 0987 brnz (cont) svlb
21 13 0972 16 0998 0973 sl param1m
21 14 0973 45 0975 0977 brnz (cont) seta
21 15 0975 16 0998 0976 sl param1m
21 16 0976 45 0979 0978 brnz setc setb
21 17 0977 69 0997 0980 seta ld bxa setbx
21 18 0978 69 0996 0980 setb ld bxb setbx
21 19 0979 69 0995 0980 setc ld bxc setbx
21 20 0980 24 0993 0981 setbx std shbx
21 21 0981 65 1023 0982 ral paramc lower acc is nnn0000000
21 22 0982 30 0003 0983 srt 3 00 0nnn 000
21 23 0983 15 0994 8002 al fldc 8002
8002 rau [c] setb1 read float value at [c] as nnnxxxxxee
21 24 0984 35 0003 0985 setb2 slt 3 upper acc is 000000nnn
21 25 0985 16 8002 0986 setb3 sl 8002 clear lower acc
21 26 0986 69 0993 8001 ld shbx 8001
8001 slt [0,3,6] upper acc is 000 000 nnn, 000 nnn 000, or nnn 000 000
21 27 0987 21 1017 1095 svlb stu lbox 1095 save loopbox
21 28 0950 21 0992 0951 setb1 stu svfc save [c] float value
21 29 0951 44 0952 0987 brnzu svlb if [c] is zero go to save loopbox
21 30 0952 46 1315 0953 brmin 1315 if [c] is <0 go to 2222 stop
21 31 0953 35 0008 0954 slt 8 upper acc is ee00000000
21 32 0954 11 0990 0955 su hi50
21 33 0955 44 0956 0962 brnzu i00n jump if [c] is in range 0-9
21 34 0956 11 0991 0957 su hi01
21 35 0957 44 0958 0961 brnzu i0nn jump if [c] is in range 10-99
21 36 0958 11 0991 0959 su hi01
21 37 0959 44 1315 0960 brnzu 1315 innn jump if [c] is in range 100-999, else go to 2222 stop
21 38 0960 69 0969 0963 innn ld stnnn ixxx
21 39 0961 69 0968 0963 i0nn ld stn0n ixxx
21 40 0962 69 0967 0963 i00n ld st00n ixxx
21 41 0963 24 0984 0964 ixxx std setb2
21 42 0964 65 0992 0984 ral svfc setb2
21 43 1453 60 1009 0965 rau last get last result
tr zero: 0 453 bbb ccc
goto b if last result is zero
goto c if last result is non zero
21 44 0965 30 0002 0966 srt 2
21 45 0966 44 1120 0974 brnzu gotoc gotob
21 46 0974 60 1045 1027 gotob rau paramb goto
21 47 0967 35 0001 0985 st00n slt 1 setb3
21 48 0968 35 0002 0985 st0nn slt 2 setb3
21 49 0969 35 0003 0985 stnnn slt 3 setb3
21 50 0988 00 0000 0000 vacant location
21 51 0989 00 0000 0000 vacant location

View File

@@ -0,0 +1,97 @@
1
1 interpretive system (is) loader
1 creates a 1-word load cards
1 deck by reading cards as
1 writen in manual
1
1 this program is manually
1 assembled (just using soap to
1 load it) as is (1956) predates
1 soap (1957)
1
0880 70 1951 0881 rdcrd rd loc read card
0881 60 1951 0892 rau loc lbl1 prepare accumulator for move
0882 10 0870 0883 lbl2 au stw
0883 15 0871 0884 al ldw
0884 10 1952 0885 au wc
0885 21 0874 0886 stu nwc
0886 11 1952 8002 su wc
8002 69 1953 8003 ld w move one word form card read area
8003 24 0000 0887 std
0887 15 0872 0888 nxt al iaddr increase address by 1
0888 10 8001 0889 au 8001
0889 11 0874 0890 su nwc test for end of moving
0890 44 0891 0880 brnzu lbl3 rdcrd
0891 10 0874 8002 lbl3 au nwc nxt return to move another word
0892 44 0893 0880 lbl1 brnzu rdcrd if loc is zero read next card
0893 11 0873 0894 su i2000
0894 46 0895 0880 brmin rdcrd if loc >= 2000 read next card
0895 10 0873 0882 au i2000 lbl2
1
1 constants
1
0870 24 0000 0887 stw std 0000 nxt store word
0871 69 1953 8003 ldw ld w load word from card read
0872 00 0001 0000 iaddr
0873 00 2000 0000 i2000
0874 00 0000 0000 nwc temp variable
1
1 card read area
1
1 1951 00 1002 0000 loc location
1 1952 00 0002 0000 wc word count
1 1953 00 3333 4444 W word1
1 1954 00 5555 6666 word2
1 1955 00 0000 0000 word3
1 1956 00 0000 0000 word4
1 1957 00 0000 0007 word5
1 1958 00 0000 0008 word6
1
1
1 generate system
1 punch the whole is system on a 1
1 word per card format
1 from 0900 to 1999
1
0801 65 0852 0802 lblw ral loc1 prepare accumulator for move
0802 10 0850 0803 au stw2
0803 15 0851 8002 al ldw2
8002 69 0000 8003 ld move one word to card punch area
8003 24 0000 0804 std ww
0804 65 0852 0805 p1w ral loc1 set word loc in card punch area
0805 15 0854 0806 al wloc0
0806 20 1979 0807 stl wloc
0807 10 1978 0808 au cnum set card number in card punch area
0808 10 0855 0809 au icard
0809 21 1978 0810 stu cnum
0810 71 1977 0811 pch1w pch 1977 punch 1w card
0811 65 0852 0812 ral loc1
0812 16 0853 0813 sl loc2
0813 46 0814 9999 brmin 9999 if loc1 >= loc2 terminate
0814 15 0853 0815 al loc2
0815 15 0872 0816 al iaddr increment loc1
0816 20 0852 0801 stl loc1 lblw go punch next word
1
1 constants
1
0850 24 1980 0804 stw2 std wdata p1w store word for punch
0851 69 0000 8003 ldw2 ld 0000 load word
0852 00 0900 0000 loc1 first location to punch
0853 00 1999 0000 loc2 last location to punch
0854 24 0000 8000 wloc0 word location on 1e load card format
0855 00 0000 0001 icard just one
1
1 card punch area (1 word per card load card)
1 make first word negative so is control panel
1 punchs a load card with y(12) hi punch set
1
- 1977 69 1954 1953
1978 00 0000 0000 cnum card number
1979 24 0000 8000 wloc word location
1980 00 0000 0000 wdata word data in load card
1981 00 0000 0000
1982 00 0000 0000
1983 00 0000 0000
1984 00 0000 0000
1985 00 0000 0000
1986 00 0000 0000

59
I650/sw/is_trace_src.txt Normal file
View File

@@ -0,0 +1,59 @@
10 1 1061 21 1980 1386
10 2 1386 30 0003 1946
10 3 1946 20 1023 1947
10 4 1947 60 8003 1948
10 5 1948 30 0003 1949
10 6 1949 20 1045 1950
10 7 1950 60 8003 1961
10 8 1961 24 1260 1962
10 9 1962 30 0003 1963
10 10 1963 44 1965 1968
10 11 1965 65 8002 1966
10 12 1966 30 0003 1967
10 13 1967 15 1998 8002
10 14 8002 60 1968
10 15 1968 21 1982 1969
10 16 1969 65 1045 1970
10 17 1970 30 0003 1971
10 18 1971 15 1999 8002
10 19 8002 69 1972
10 20 1972 24 1983 1973
10 21 1973 69 1974
10 22 1974 24 1984 1975
10 23 1975 69 1017 1987
10 24 1987 24 1981 1988
10 25 1988 65 1098 1989
10 26 1989 24 1977 1990
10 27 1990 15 1997 8002
10 28 8002 69
10 29 1991 24 1979 1992
10 30 1992 65 1986 1993
10 31 1993 15 1024 1994
10 32 1994 20 1986 1995
10 33 1995 71 1977 1996
10 34 1996 60 1260 1105
10 35 1450 69 1976 1331
10 36 1331 24 1061 1095
10 37 1451 69 1154 1358
10 38 1358 24 1061 1095
10 39 1452 69 1976 1332
10 40 1332 24 1061 1091
10 41 1091 65 1098 1165
10 42 1165 16 1173 1334
10 43 1334 69 1141 8002
10 44 8002 24 1095
10 45 1997 09 0884
10 46 1998 60 1968
10 47 1999 69 1972
10 48 1141 04 5400
10 49 1173 36 0012
10 50 1154 30 0003 1019
10 51 1978 00 0006 0008
10 52 1964 00 1095
10 53 1976 21 1980 1386
10 54 1024 00 0001
10 55 1958 44 1965 1968

1400
I650/sw/soapII.dck Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,173 @@
6I195219536919521951241995195469195519566919541953241996195769195880006919561955
2D19971952691953195469195819572419981955691957195624199919997019950000
2D000019967000489999240048199765000100302400301998690034003924003919992200440047
2D004719963500040025240025199715800100312400311998220036003224003219996500350040
2D004019961000448002240020199710002300272400271998158001003324003319991100360041
2D004119964400450000240045199710800180022400341998240000002024003519996900028003
2D002300000000010000
0?080000070004040998000404099833232209990005050998000505099800050509980005050998
0?080700070005050998331212099933020209993305040999330504099999999999999999999999
0?081400073311100999330504099933050409993305040999330504099933212009995403030999
0?082100074503030999340303099934030309993303030999440505099800050509980005050998
0?082800073312120999330202099900000009880000000888332726099933272609993300000999
0?083500070000000988000000098833272609993327260999330000099933040409983304040998
0?084200073304040998330404099834040509984305040998330404099833050509983304040998
0?084900073304040998000000089800000008980000000898000000089844050509980005050998
0?085600070005050998000505099800000008980000000898330504099933050409999999999999
0?086300079999999999331110099933050409993305040999330504099933050409993303030999
0?087000070000000999000000099900000009990000000999000000099900000009990000000999
0?087700070000000999000000099900050509990000000898000000089800000008980000000898
0?088400073305060999000606099800060609980006060998000000089800000008984405050998
0?089100073305050998330505099833050509983305050998330505099833050509983305050998
0?089800073305050998440505099865165313080100000901651958126330000812210000000943
0?090500076519591313300008117500000009576519511455000000101315151912731515191273
0?091200076519861191691016096900000080032015191322651986119165195909156913711174
0?091900076913721275651223091565198611916519861191201872162860158518396519570931
0?092600076917801174691830127565122309316516821801601585183969178417506015851839
0?093300072018721927101688174369173814426015851839201492095260154213982017931696
0?094000076015421398651958094469164511746916461275691448175060154213986512230944
0?094700076518821801601542139869182818263500041878691928182635000419302014920968
0?095400076519861742651959096069183511746918851275691983154065198617426919351750
0?096100076519861742651223096065149018016519861742691736182669198317866918361826
0?096800076919831886241196189960151913232119840987241196194965195713110000001500
0?097500070100000975691262136546118011830000001504211961121469195213556919531356
0?098200076919541357691955120869195612096519850989151189124310099009956019601015
0?098900071509920997000000199015198618910000000001000000091324060012472019868003
0?099600072411961349201985098860196117656019521407691950135369140413536519591363
0?100300076914061309651952150769140613596912161359691460096960151114056519521757
0?101000076519521807691406140960097512296519861441000000200030000209716910190972
0?101700042419791350151771142569135014530000010000
0?105000076173661007617376001561747300176184770010618761005061876200526187630058
0?105700076264760090626491009162649200926264930093626494009462649500956264960096
0?106400076264970097626498009862649900996269750026627361100362737910026274610041
0?107100076274620043627463004962746900466276771001627685004762828300576469850014
0?107800076485790064657884100566616400326661740037666485003466747700396682620033
0?108500076682740038686564100968738300017364640069736469000973696200087477880019
0?109200077565660054757677000075838200257589610040758962004275896300481616011756
0?109900076019531457758965004575898400447761831008776368007179616100807961620082
0?110600077961630088796173006579617400677961840060796279101279636400707963910072
0?111300077963920075796393007879648200867964910070796492007379649300767965671004
0?112000077965731010796578101179778800797982610081798262008379826300897982730066
0?112700077982740068798284006179836100057983630003798375000479866400558263830036
0?113400078264610022826482008582658300278269610023826962002882737600168273830035
0?114100078274730018827964003182798300308283640024828369002982837300208283840021
0?114800073500041809101352800382847700118287610051828762005382876300598288751006
0?115500078373840084846661000286648200878679910071867992007486799300778683610007
0?116200078683740056868375000699999900016019571261601957136115102080031610201525
0?116900074611720973221217122069198411871080010979651957141124141616701009788003
0?117600070100001176350006149100000000904611821183158001131122196215151010140979
0?118300076012370991601401175565800212936519531707221984123730000914010000000029
0?119000076913501553151500150516134514492411960999000000000800000009080100001196
0?119700073500041557350006196621196113640019990000007999000300800300010080040003
0?120400070080070001008999000300905900029999990003241981098424198209850000000902
0?121100074411651166011212800!24141619196914501503651959146390000000002099981402
0?121800076919711224461222117335000411811009748003100975117901000012232416641971
0?122500071611781233221962800145128013316519531857151959136301000012300100001231
0?123200073500041493460986100260140118051611881343300004139769119011936580021547
0?123900071516061711600600157915099411495505050999461002119735000419113500011451
0?124600070100001246111550165520196116683000101401002322252410070607062007060908
0?125300073009081110401110131250131215146015141716701716191880191821209021202322
0?126000070000000905111014116901000012621610141319010000126410195816131017191423
0?126700074414711196161020177516127209771615731227691400150300000090606909761279
0?127400073500041947241416132020143114841417711332101601141624141615201515331487
0?128100071012841239678001148915800212410100001284141288114810133913931180011245
0?128800070000020000691242139960060115792212311334690600800310124613512215751328
0?129500073500031803151249170369150615596080011813201653155619990606007999070700
0?130200078000080800800106060080020908008003080900905908080099990909004513621813
0?130900072412121215211021100235000411716919608002161014141982766177926019531607
0?131600076917691472651231123569121618704615641563211601165469140016036019521657
0?13230007691400150300000004502013291400651575153414138013906580011285011329800!
0?133000073000011587691434153760800316894414371416101337142315133880031511891443
0?133700072006000900000500050010000000001580031897300002134769080080034512961297
0?134400070008000000909000000035000117532019611414608001181865195416597119771950
0?135100073000011907691952800224181318682419770980241978098124197909822419800983
0?135800072007960900241262131500000009171110141219161565166916195814136912171170
0?136500079014000970691565147235000214732419861739151958094465161414200000890915
0?137200070000000920151264161944137715281580021283151958156210143013354414811282
0?137900071010208003000000005024153416372019771702471286128635000113911513888002
0?138600076517891643441341119200000100004416731244658003141644129513462119861927
0?139300074713960998600799157945109815493500021853151650800210198615922414521196
0?140000076019501405010000140111196212672411961849601950140515198616418000000000
0?140700076912101213000196000024126214156917131275151264126915186514871080011271
0?1414000716800116716519591763011416800!1611781433651324182946156815671614671921
0?142100071519618003150975161921140116042419781752211230171519167915521014801385
0?142800071519591562350001118520198517020100001431691485160046133609986516141800
0?143500074514381196221983148621196216651513421248698003149669184319641511941499
0?144200072418721839460998144765168716919016491701690400138965099214970000000949
0?14490007350002190565196113112116061609011452800!241196183320123111843500021211
0?145600076014011705691260121330000014011013121167691952155569131410176904001378
0?146300071619581513300008133335000413756517251820650000139520198317021519590960
0?147000076912781381108001137924124612991080031281441427157816800214838413001912
0?147700071615301435961531163321128412872419861752678001143944153513868412001656
0?148400071680011591651538159330000414982016148001241329143230000414390000890958
0?149100073000061706011492800!15144616513000001722201915126823122313261019611715
0?149800071018811902201986128900880000001619611615151906161224181313166914581661
0?150500072019861350350000152130000812250001950000220901145465195815616919501403
0?151200076509601445108001132135000414756012171421118003187310010010016014241879
0?151900070100001519691623122621117614293500061387101178138300149914992019031487
0?152600072118131576010111121820196215184410131384690799800369163417873500021680
0?153300076504001395010000153465158816432219831586241610171400060007996580031697
0?154000072319831590118001159900000008004412981348219999182530000417101111111111
0?154700073500031806691782196465141618716919588002150992800215800317602411961099
0?155400076911881291241983118616800119131513101265450000000124090115046519591611
0?156100072009751228160992174765126413696509751369000000000165195809446512641469
0?156800076509751469461422137365195909603000031479151771800265039913953500081543
0?157500070100001575201962162600102110497119771477441583158424166417241580011639
0?158200073000011730360000166060168716910000008000300004154835000415970000008002
0?158900077119778003101230164015196114312119861196101546180200000080002419611418
0?15960007011596800!1518501856011598800!2019611814241196119901000016016580011810
0?16030007241813136610155880033000041465011606800!691360121365000015011180011367
0?161000070100001610201264140020168780011012168002010000161435000615290000000004
0?161700072399841416241984175215101409152216731276151506176115099280022199871541
0?162400070000000599141771123269196119642419611526101230163515168718416519611813
0?163100071014061774691212187765800317410000001851151575188022198316866980031294
0?16380007221984119630000319471515751690151344169969198315361619621726011644800!
0?16450007000088094400000009462014161370011648800!651416162269080013996917041808
0?165200070000800000010000165369175818614414591950151709800269141016636519621417
0?165900073000041819350001171724123112341519151612241813176801011112186080021523
0?166600076519831887300001172365196217182016531456300008153984105018551580021741
0?167300070100001673691527158015195715621417711482951680153244183117320000000500
0?168000073000091727651961177600009009231080011791691813177700008809373000041728
0?168700070100001687000008000015196118166919361279161394174900008909536918131677
0?16940007011694800!000000008010123017353500041858011698800!20198615891000000000
0?170100073500011908111468137469150615092299851416111358186310141618214513501461
0?170800074514121664600000117714161614263500041621241584173700000009106514671487
0?171500071514161721931772182230000118231615241829200800090096177316751680028001
0?172200076080031629691416172065157716310100001725451630168119101416846914521778
0?172900076580021972151961181369173412136516851801161240154500000009251515751932
0?1736000700008909686512401612011738800!6912921595201738193669144417971516951934
0?174300076915961442011744800!2418721196011746800!4616491416011748800!4515021754
0?175000072414161969161804185911161814742019831236691909171211140814234516101811
0?175700073000081325651614127000000000041180011767200901155415800216721610141569
0?176400071915171238691018166365187212771019621817698003157400000000002017251478
0?177100070000000002651983193795137614286918131600201804161215099218139617301582
0?177800079111961783691452186200009009316518721927000008183220187211960000000933
0?1785000765179309522319831889221961196469179212130000008003011790800!1514948002
0?1792000700000009550100001793011794800!011795800!011796800!2415841837011798800!
0?179900072019868003161903170869121219656919181600151196155101000018041115081423
0?180600071917591330451510156122191118641514628002011810800!65161414701518668002
0?181300070100001813300004162511800380014419221972191920134010132918134515221013
0?182000071509928002151961181535000219472019621516011824800!11800117332418131876
0?182700074417311632000088093710138280010000000928691834121320173817286019531883
0?18340007000000094100008909600000991939151290149560195219331019861392011840800!
0?18410007691544184720159619360000091740011844800!011845800!011846800!2219018001
0?18480007011848800!691652136865000113953500041762961824187444128616586919741627
0?185500071516088002201865116845156016111515128002451662191435000118672416101764
0?18620007931916194746126613176916171620011865800!650000197316800219256516241929
0?18690007158001175324121214661509921647011872800!3500041683011874800!6514521910
0?187600072019611926901781092469198314361519618002691781127920159617280000880939
0?188300074417881838901988095900000009622319831936300004199765169218011018421854
0?18900007011890800!1515941799011892800!011893800!011894800!011895800!011896800!
0?189700071180011725011898800!60195118276919501403011901800!69192416270100001903
0?190400072019611676168002196360080015791011761231658002166765168717519216661716
0?191100070100001911151967800210800315710102221318010000191535000419471680021975
0?191800076914061968211961146400000000502015751278350002172965145218600000081904
0?192500073500011581601954197635000419870000981931211985148869198316363500041642
0?193200076917851279441888193820198611960000000965691492174530000411986912121884
0?193900076919831989011940800!1518721327011942800!011943800!011944800!011945800!
0?19460005011946800!2019611766011948800!60195216787019991998
0?196300073000011869241416197090177018201680021476650000127424121216742019611514
0?197000079519231875651416157230000819413500021779000009190484125018123500071693
0?19870007691984163865149209682319831440690993099660195014056911950996011993800!
0?19940006011994800!011995800!011996800!350009191769195113546519511605
0?000000010000001000

78
I650/sw/soap_and_run.ini Normal file
View File

@@ -0,0 +1,78 @@
; set console -n log=log.txt
; set debug -n debug.txt
; set debug stdout
; set cpu debug=cmd;data;detail
; 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
set cpu 2k
; Load SOAP deck into core (1 word per card format), but does not execute it
att cdr1 -q soapII.dck
echo ***
echo *** load soap deck into drum
echo ***
d csw 7019519999
d ar 8000
go
; now put source cards in reader and start SOAP assembler
att cdr1 %1
set cdr1 wiring=soap
att cdp1 -n -q deck_out.dck
set cdp1 echo, print, wiring=soap
att cdp0 -n -q print.txt
echo ***
echo *** run soap
echo ***
d ar 1000
go
if "%2" == "" goto end
; load assembled deck into core
det cdp1
set cdr1 wiring=8WORD
att cdr1 deck_out.dck
att cdp1 -n -q deck_out_run.dck
set cdp1 echo, print, wiring=8WORD
echo ***
echo *** load assembled program
echo ***
d csw 7019519999
d ar 8000
go
; attach input deck
if "%3" == "" goto run
att cdr1 %3
; now execute the loaded deck
:run
echo ***
echo *** run assembled program
echo ***
d ar %2
go
:end

View File

@@ -0,0 +1,39 @@
1
1 example 1 calculate f of x
1
1 f(x) = a*x*x+b*x+c
1
1 card output
1 word1 word2
1 x f(x)
1
blr 1951 1960 read area
regp0027 0028 punch area
1
synstart 1000 prgm start
1
startnop 0000 setx
setx rauone stx set x
stx stup0001 to 1
mpya calculate
alob f
rau 8002
mpyp0001
aloc
stlp0002
pchp0001 punch
raup0001 is x max
supxmax
nzu 9999
aupi01 stx step x
1
one 00 0000 0001 constants
xmax 00 0000 0100
i01 00 0000 0101
1
a 00 0000 0002 params
b 00 0000 0003 for f(x)
c 00 0000 0004
1
-neg 00 0000 0006
-negz 00 0000 0000

1449
I650/sw/soap_listing.txt Normal file

File diff suppressed because it is too large Load Diff

1399
I650/sw/soap_src.txt Normal file

File diff suppressed because it is too large Load Diff