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:
committed by
Mark Pizzolato
parent
94727159e8
commit
2eb49c13b7
101
I650/sw/Build_is_from_decks.ini
Normal file
101
I650/sw/Build_is_from_decks.ini
Normal 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
|
||||
|
||||
28
I650/sw/Build_soap_from_source.ini
Normal file
28
I650/sw/Build_soap_from_source.ini
Normal 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
1100
I650/sw/is.dck
Normal file
File diff suppressed because it is too large
Load Diff
68
I650/sw/is_example_1_src.txt
Normal file
68
I650/sw/is_example_1_src.txt
Normal 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
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
48
I650/sw/is_run.ini
Normal 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
|
||||
|
||||
77
I650/sw/is_set_loopbox.txt
Normal file
77
I650/sw/is_set_loopbox.txt
Normal 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
|
||||
97
I650/sw/is_sys_load_src.txt
Normal file
97
I650/sw/is_sys_load_src.txt
Normal 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
59
I650/sw/is_trace_src.txt
Normal 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
1400
I650/sw/soapII.dck
Normal file
File diff suppressed because it is too large
Load Diff
173
I650/sw/soapII_condensed_card.dck
Normal file
173
I650/sw/soapII_condensed_card.dck
Normal 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
78
I650/sw/soap_and_run.ini
Normal 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
|
||||
|
||||
39
I650/sw/soap_example_1_src.txt
Normal file
39
I650/sw/soap_example_1_src.txt
Normal 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
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
1399
I650/sw/soap_src.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user