ack/emtest/tests

3616 lines
29 KiB
Plaintext

TEST 000: empty
MAIN 0
TEST 001: OK
MAIN 0
OK
TEST 002: test loc, bne
MAIN 0
loc 0
loc 0
bne *1
OK
loc 1
loc 1
bne *1
OK
loc -1
loc -1
bne *1
OK
loc 127
loc 127
bne *1
OK
loc -127
loc -127
bne *1
OK
loc -128
loc -128
bne *1
OK
#if WS > 1
loc 255
loc 255
bne *1
OK
loc 256
loc 256
bne *1
OK
loc 257
loc 257
bne *1
OK
loc 32767
loc 32767
bne *1
OK
loc -32767
loc -32767
bne *1
OK
loc -32768
loc -32768
bne *1
OK
#endif WS > 1
#if WS > 2
loc 65535
loc 65535
bne *1
OK
loc 65536
loc 65536
bne *1
OK
loc 65537
loc 65537
bne *1
OK
loc 2147483647
loc 2147483647
bne *1
OK
loc -2147483647
loc -2147483647
bne *1
OK
loc -2147483648
loc -2147483648
bne *1
OK
#endif WS > 2
TEST 003: test signed and unsigned loc
MAIN 0
#if WS == 1
loc 128
loc -128
bne *1
OK
loc 129
loc -127
bne *1
OK
loc 255
loc -1
bne *1
OK
#endif
#if WS == 2
loc 32768
loc -32768
bne *1
OK
loc 32769
loc -32767
bne *1
OK
loc 65535
loc -1
bne *1
OK
#endif
#if WS == 4
loc 2147483648
loc -2147483648
bne *1
OK
loc 2147483649
loc -2147483647
bne *1
OK
loc 4294967295
loc -1
bne *1
OK
#endif
TEST 004: test lol, stl
MAIN 8
loc 95
stl -4
lol -4
loc 95
bne *1
OK
lol 0
stl -4
loc 125
stl -8
loc 125
lol -8
bne *1
OK
lol 0
lol -4
bne *1
OK
TEST 005: test loe, ste
HOL 8
MAIN 0
loc 95
ste 4
loe 4
loc 95
bne *1
OK
loc 125
ste 0
loc 125
loe 0
bne *1
OK
loc 95
ste 0
loe 4
loe 0
bne *1
OK
TEST 006: test named global data: con, rom, bss
a006
bss 4,0,0
b006
con 35
c006
bss 4,0,1
d006
bss 4,35,1
e006
rom 57
MAIN 0
loc 0
loe c006
bne *1
OK
loe b006
ste a006
loe d006
loe a006
bne *1
OK
loe e006
ste b006
loc 57
loe b006
bne *1
OK
TEST 007: test lal, lil
MAIN 12
lal -8
#if WS == PS
stl -4
#endif
#if WS*2 == PS
sdl -4
#endif
loc 117
stl -8
lil -4
loc 117
bne *1
OK
TEST 008: test sil
MAIN 12
loc 29
stl -8
lal -8
#if WS == PS
stl -4
#endif
#if WS*2 == PS
sdl -4
#endif
loc 110
sil -4
lol -8
loc 110
bne *1
OK
TEST 009: test lof
MAIN 20
lal -16
loc 120
stl -12
lof 4
loc 120
bne *1
OK
TEST 010: test stf
MAIN 20
loc 180
lal -16
stf 8
lol -8
loc 180
bne *1
OK
TEST 011: test loi WS
MAIN 20
loc 140
stl -12
lal -12
loi WS
loc 140
bne *1
OK
TEST 012: test loi 1, sti 1
MAIN 20
#if WS > 1
loc 519
lal -10
sti 1
lal -10
loi 1
loc 7
bne *1
OK
#endif
TEST 013: test loi 2*WS
MAIN 20
loc 77
stl -12
loc 119
stl -12+WS
lal -12
loi 2*WS
loc 77
bne *1
loc 119
bne *1
OK
TEST 014: test loi 4*WS
MAIN 20
loc 150
stl -16+(3*WS)
loc 152
stl -16+(2*WS)
loc 154
stl -16+WS
loc 156
stl -16
lal -16
loi 4*WS
loc 156
bne *1
loc 154
bne *1
loc 152
bne *1
loc 150
bne *1
OK
TEST 015: test los WS with 1
MAIN 20
loc 7
lal -10
sti 1
lal -10
loc 1
los WS
loc 7
bne *1
OK
TEST 016: test los WS with 2
MAIN 20
#if WS == 1
loc 77
loc 78
stl -12
stl -11
lal -12
loc 2
los WS
loc 78
bne *1
loc 77
bne *1
#endif
#if WS > 1
loc 777
stl -12
lal -12
loc 2
los WS
loc 777
bne *1
#endif
OK
TEST 017: test los WS with 4
MAIN 20
#if WS == 1
loc 14
loc 15
loc 16
loc 17
lal -12
sti 4
lal -12
loc 4
los WS
loc 17
bne *1
loc 16
bne *1
loc 15
bne *1
loc 14
bne *1
#endif
#if WS == 2
loc 3001
loc 3002
stl -12
stl -10
lal -12
loc 4
los WS
loc 3002
bne *1
loc 3001
bne *1
#endif
#if WS > 2
loc 123001
stl -12
lal -12
loc 4
los WS
loc 123001
bne *1
#endif
OK
TEST 018: test ldl
MAIN 20
loc 77
stl -12
loc 123
stl -12+WS
ldl -12
loc 77
bne *1
loc 123
bne *1
OK
TEST 019: test lde
HOL 20
MAIN 0
loc 70
ste 12
loc 71
ste 12+WS
lde 12
loc 70
bne *1
loc 71
bne *1
OK
TEST 020: test ldf
MAIN 20
loc 123
loc 77
sdl -4
lal -9
ldf 5
loc 77
bne *1
loc 123
bne *1
OK
TEST 021: test ldf
MAIN 20
loc 75
stl -12
loc 77
stl -12+WS
lal -20
ldf 8
loc 75
bne *1
loc 77
bne *1
OK
TEST 022: test sdl
MAIN 20
loc 30
loc 31
sdl -12
lol -12+WS
loc 30
bne *1
lol -12
loc 31
bne *1
OK
TEST 023: test sde
HOL 20
MAIN 0
loc 40
loc 41
sde 16
loe 16
loc 41
bne *1
loe 16+WS
loc 40
bne *1
OK
TEST 024: test sdf
HOL 20
MAIN 0
loc 51
loc 50
lae 6
sdf 10
loe 16
loc 50
bne *1
loc 51
loe 16+WS
bne *1
OK
TEST 025: test sti 1
MAIN 20
loc 4136
lal -11
sti 1
loc 1034
lal -10
sti 1
lal -10
loi 1
loc 10
bne *1
lal -11
loi 1
loc 40
bne *1
OK
TEST 026: test sti 1 and lol
MAIN 0
loc 257
stl -12+WS
loc 514
stl -12-WS
loc 50
lal -12
sti 1
#if WS > 1
loc -50
lal -11
sti 1
#endif
#if WS > 2
loc 49
lal -10
sti 1
loc -49
lal -9
sti 1
#endif
loc 257
lol -12+WS
bne *1
loc 514
lol -12-WS
bne *1
OK
TEST 027: test sti 2
MAIN 20
#if WS == 1
ldc 90
#else
loc 90
#endif
lal -12
sti 2
#if WS != 2
lal -12
loi 2
#else
lol -12
#endif
#if WS == 1
ldc 90
#else
loc 90
#endif
bne *1
OK
TEST 028: test sti 4
MAIN 20
#if WS == 1
loc 100
loc 101
#endif
#if WS <= 2
loc 102
#endif
loc 103
lal -14
sti 4
lol -14
loc 103
bne *1
OK
TEST 029: test sts WS with 1
MAIN 20
loc 57
lal -13
sti 1
loc 123
lal -11
sti 1
loc 20
lal -12
loc 1
sts WS
lal -12
loi 1
loc 20
bne *1
lal -11
loi 1
loc 123
bne *1
lal -13
loi 1
loc 57
bne *1
OK
TEST 030: test sts WS with WS
MAIN 20
loc 210
lal -12
loc WS
sts WS
lol -12
loc 210
bne *1
OK
TEST 031: test sts WS with 4
MAIN 20
#if WS == 1
loc 100
loc 101
#endif
#if WS <= 2
loc 102
#endif
loc 103
lal -14
loc 4
sts WS
lol -14
loc 103
bne *1
OK
TEST 032: test adi WS
MAIN 0
loc 1
loc 1
adi WS
loc 2
bne *1
OK
loc 5
loc -6
adi WS
loc -1
bne *1
OK
#if WS >= 2
loc -1007
loc +999
adi WS
loc -8
bne *1
OK
loc -1300
loc +1405
adi WS
loc 105
bne *1
OK
loc -30000
loc -20
adi WS
loc -30020
bne *1
OK
#endif
#if WS >= 4
loc -100007
loc +99999
adi WS
loc -8
bne *1
OK
loc -1300
loc +140567
adi WS
loc 139267
bne *1
OK
loc -30000000
loc -20
adi WS
loc -30000020
bne *1
OK
#endif
TEST 033: test sbi WS
MAIN 0
loc 1
loc 1
sbi WS
loc 0
bne *1
OK
loc 5
loc -6
sbi WS
loc +11
bne *1
OK
#if WS >= 2
loc -1007
loc +999
sbi WS
loc -2006
bne *1
OK
loc -1300
loc +1405
sbi WS
loc -2705
bne *1
OK
loc -30000
loc -20
sbi WS
loc -29980
bne *1
OK
#endif
#if WS >= 4
loc -100007
loc +99999
sbi WS
loc -200006
bne *1
OK
loc -1300
loc +140567
sbi WS
loc -141867
bne *1
OK
loc -30000000
loc -20
sbi WS
loc -29999980
bne *1
OK
#endif
TEST 034: test mli WS
MAIN 0
loc 5
loc 9
mli WS
loc 45
bne *1
OK
loc 0
loc 10
mli WS
loc 0
bne *1
OK
#if WS > 1
loc -99
loc 7
mli WS
loc -693
bne *1
OK
loc -100
loc -90
mli WS
loc 9000
bne *1
OK
#endif
#if WS > 2
loc 123456
loc 200
mli WS
loc 24691200
bne *1
OK
#endif
TEST 035: test dvi WS
MAIN 0
loc 15
loc 5
dvi WS
loc 3
bne *1
OK
loc 100
loc -7
dvi WS
loc -14
bne *1
OK
loc -100
loc 7
dvi WS
loc -14
bne *1
OK
#if WS >= 2
loc -1000
loc -201
dvi WS
loc 4
bne *1
OK
#endif
#if WS >= 4
loc 1234567
loc -100
dvi WS
loc -12345
bne *1
OK
#endif
TEST 036: test rmi WS
MAIN 0
loc 100
loc 7
rmi WS
loc 2
bne *1
OK
loc -100
loc 7
rmi WS
loc -2
bne *1
OK
loc 100
loc -7
rmi WS
loc 2
bne *1
OK
loc -100
loc -7
rmi WS
loc -2
bne *1
OK
#if WS >= 2
loc -1000
loc -201
rmi WS
loc -196
bne *1
OK
#endif
#if WS >= 4
loc 1234567
loc -100
rmi WS
loc 67
bne *1
OK
#endif
TEST 037: test ngi WS
MAIN 0
loc 100
ngi WS
loc -100
bne *1
OK
loc -100
ngi WS
loc 100
bne *1
OK
TEST 038: test sli,slu WS
MAIN 0
loc 5
loc 3
sli WS
loc 40
bne *1
OK
loc -2
loc 4
sli WS
loc -32
bne *1
OK
loc 5
loc 3
slu WS
loc 40
bne *1
OK
loc -2
loc 4
slu WS
loc -32
bne *1
OK
TEST 039: test sri,sru WS
MAIN 0
loc 64
loc 5
sri WS
loc 2
bne *1
OK
loc -3
loc 2
sri WS
loc -1
bne *1
OK
loc -16
loc 3
sri WS
loc -2
bne *1
OK
loc 64
loc 5
sru WS
loc 2
bne *1
OK
loc -3
loc 2
sru WS
#if WS == 1
loc 63
#endif
#if WS == 2
loc 16383
#endif
#if WS == 4
loc 1073741823
#endif
bne *1
OK
TEST 040: test rol WS
MAIN 0
loc 1
loc 3
rol WS
loc 8
bne *1
OK
#if WS > 1
loc 16384
loc WS * 8 - 1
rol WS
loc 8192
bne *1
OK
loc -2
loc WS * 8 - 1
rol WS
#if WS == 2
loc 32767
#endif
#if WS == 4
loc 2147483647
#endif
bne *1
OK
loc -28671
loc 0
rol WS
loc -28671
bne *1
OK
#endif
TEST 041: test ror WS
MAIN 0
loc 4
loc 5
ror WS
#if WS == 1
loc 32
#endif
#if WS == 2
loc 8192
#endif
#if WS == 4
loc 536870912
#endif
bne *1
OK
#if WS == 2
loc 32767
loc 15
ror WS
loc -2
bne *1
OK
#endif
loc -28
loc 0
ror WS
loc -28
bne *1
OK
TEST 042: test inc
MAIN 0
loc 20
inc
loc 21
bne *1
OK
loc -50
inc
loc -49
bne *1
OK
TEST 043: test dec
MAIN 0
loc 66
dec
loc 65
bne *1
OK
loc -44
dec
loc -45
bne *1
OK
TEST 044: test adp
MAIN 20
lal -10
adp -2
lal -12
cmp
zne *1
OK
loc 519
lal -11
sti 1
lal -12
adp 1
loi 1
loc 7
bne *1
OK
TEST 045: test inn WS
MAIN 0
loc 8
loc 3
inn WS
loc 1
bne *1
OK
loc 8
loc 4
inn WS
loc 0
bne *1
OK
loc 2
loc -5
inn WS
loc 0
bne *1
OK
loc -5
loc 3
inn WS
loc 1
bne *1
OK
TEST 046: test inn ?
MAIN 0
loc 8
loc 3
loc WS
inn ?
loc 1
bne *1
OK
loc 8
loc 4
loc WS
inn ?
loc 0
bne *1
OK
loc 2
loc -5
loc WS
inn ?
loc 0
bne *1
OK
loc -5
loc 3
loc WS
inn ?
loc 1
bne *1
OK
TEST 047: test set
MAIN 0
loc 3
set WS
loc 8
bne *1
OK
loc 6
set 2*WS
loc 64
bne *1
loc 0
bne *1
OK
loc 0
set 4*WS
loc 1
bne *1
loc 0
bne *1
loc 0
bne *1
loc 0
bne *1
OK
TEST 048: test set ?
MAIN 0
loc 3
loc WS
set ?
loc 8
bne *1
OK
loc 6
loc 2*WS
set ?
loc 64
bne *1
loc 0
bne *1
OK
loc 0
loc 4*WS
set ?
loc 1
bne *1
loc 0
bne *1
loc 0
bne *1
loc 0
bne *1
OK
TEST 049: test aar
a049
rom 5,2,4
b049
con 5,2,1
MAIN 20
lal -12
loc 5
lae a049
aar WS
lal -12
cmp
zne *1
OK
lal -11
loc 7
lae b049
aar WS
lal -9
cmp
zne *1
OK
TEST 050: test aar ?
a050
rom 5,2,4
b050
con 5,2,1
MAIN 20
lal -12
loc 5
lae a050
loc WS
aar ?
lal -12
cmp
zne *1
OK
lal -11
loc 7
lae b050
loc WS
aar ?
lal -9
cmp
zne *1
OK
TEST 051: test lar
a051
rom 5,2,2*WS
b051
con 5,2,1
MAIN 20
loc 40
loc 41
sdl -12+(2*WS)
lal -12
loc 6
lae a051
lar WS
loc 41
bne *1
loc 40
bne *1
OK
loc 42
lal -9
sti 1
lal -11
loc 7
lae b051
lar WS
lal -9
loi 1
bne *1
OK
TEST 052: test lar ?
a052
rom 5,2,2*WS
b052
con 5,2,1
MAIN 20
loc 40
loc 41
sdl -12+(2*WS)
lal -12
loc 6
lae a052
loc WS
lar ?
loc 41
bne *1
loc 40
bne *1
OK
loc 42
lal -9
sti 1
lal -11
loc 7
lae b052
loc WS
lar ?
lal -9
loi 1
bne *1
OK
TEST 053: test sar
a053
rom 5,2,3*WS
b053
con 5,2,1
MAIN 28 : assert WS <= 8
loc 39
loc 40
loc 41
lal -28
loc 6
lae a053
sar WS
lal -28+(3*WS)
loi 3*WS
loc 41
bne *1
loc 40
bne *1
loc 39
bne *1
OK
loc -2
lal -11
loc 7
lae b053
sar WS
lal -9
loi 1
loc 254
bne *1
OK
TEST 054: test sar ?
a054
rom 5,2,3*WS
b054
con 5,2,1
MAIN 28
loc 39
loc 40
loc 41
lal -28
loc 6
lae a054
loc WS
sar ?
lal -28+(3*WS)
loi 3*WS
loc 41
bne *1
loc 40
bne *1
loc 39
bne *1
OK
loc -2
lal -11
loc 7
lae b054
loc WS
sar ?
lal -9
loi 1
loc 254
bne *1
OK
TEST 055: test tlt
MAIN 0
loc 1
tlt
loc 0
bne *1
OK
loc 0
tlt
loc 0
bne *1
OK
loc -3
tlt
loc 1
bne *1
OK
TEST 056: test tle
MAIN 0
loc 8
tle
loc 0
bne *1
OK
loc 0
tle
loc 1
bne *1
OK
loc -19
tle
loc 1
bne *1
OK
TEST 057: test teq
MAIN 0
loc 17
teq
loc 0
bne *1
OK
loc 0
teq
loc 1
bne *1
OK
loc -100
teq
loc 0
bne *1
OK
TEST 058: test tne
MAIN 0
loc 76
tne
loc 1
bne *1
OK
loc 0
tne
loc 0
bne *1
OK
loc -99
tne
loc 1
bne *1
OK
TEST 059: test tge
MAIN 0
loc 14
tge
loc 1
bne *1
OK
loc 0
tge
loc 1
bne *1
OK
loc -76
tge
loc 0
bne *1
OK
TEST 060: test tgt
MAIN 0
loc 20
tgt
loc 1
bne *1
OK
loc 0
tgt
loc 0
bne *1
OK
loc -66
tgt
loc 0
bne *1
OK
TEST 061: test cmi WS
MAIN 0
loc 10
loc 20
cmi WS
tlt
loc 1
bne *1
OK
loc 20
loc 10
cmi WS
tgt
loc 1
bne *1
OK
loc 44
loc 44
cmi WS
loc 0
bne *1
OK
TEST 062: test cmp, adp, cmu
MAIN 20
lal -5
lal -2
cmp
tlt
loc 1
bne *1
OK
lal -2
lal -5
cmp
tle
loc 0
bne *1
OK
lal -2
lal -2
cmp
loc 0
bne *1
OK
lal -5
adp 3
lal -2
cmp
loc 0
bne *1
OK
lal -5
adp 4
lal -2
cmp
tge
loc 1
bne *1
OK
loc 6
loc 6
cmu WS
loc 0
bne *1
OK
loc 17
loc 27
cmu WS
tlt
loc 1
bne *1
OK
loc 17
loc 6
loc 27
loc 6
cmu 2*WS
tlt
loc 1
bne *1
OK
loc 6
loc 27
loc 6
loc 17
cmu 2*WS
tgt
loc 1
bne *1
OK
TEST 063: test cms
MAIN 0
loc 6
loc -10
loc -125
loc 30
loc 6
loc -10
loc -126
loc 30
loc 4*WS
cms
tne
loc 1
bne *1
OK
TEST 064: test blt
MAIN 0
loc 3
loc 4
blt *1064
bra *1
1064
loc 4
loc 3
blt *1
loc -5
loc -4
blt *2064
bra *1
2064
loc -4
loc -5
blt *1
loc 4
loc 4
blt *1
OK
TEST 065: test ble
MAIN 0
loc 3
loc 4
ble *1065
bra *1
1065
loc 4
loc 3
ble *1
loc -99
loc -5
ble *2065
bra *1
2065
loc -99
loc -99
ble *3065
bra *1
3065
loc 100
loc -100
ble *1
OK
TEST 066: test beq
MAIN 0
loc 3
loc 3
beq *1066
bra *1
1066
loc 3
loc 4
beq *1
loc -18
loc -17
beq *1
loc 0
loc 0
beq *2066
bra *1
2066
OK
TEST 067: test bne
MAIN 0
loc 50
loc 50
bne *1
loc 50
loc 51
bne *1067
bra *1
1067
loc 0
loc 0
bne *1
OK
TEST 068: test bge
MAIN 0
loc 100
loc 101
bge *1
loc 101
loc 100
bge *1068
bra *1
1068
loc -100
loc -99
bge *1
loc -100
loc 100
bge *1
loc 0
loc 0
bge *2068
bra *1
2068
loc 50
loc 50
bge *3068
bra *1
3068
OK
TEST 069: test bgt
MAIN 0
loc 3
loc 10
bgt *1
loc 10
loc 3
bgt *1069
bra *1
1069
loc -100
loc -50
bgt *1
loc -100
loc 50
bgt *1
loc 5
loc 5
bgt *1
OK
TEST 070: test zlt
MAIN 0
loc 4
zlt *1
loc -4
zlt *1070
bra *1
1070
loc 0
zlt *1
OK
TEST 071: test zle
MAIN 0
loc 4
zle *1
loc -4
zlt *1071
bra *1
1071
loc 0
zle *2071
bra *1
2071
OK
TEST 072: test zeq
MAIN 0
loc 4
zeq *1
loc -4
zeq *1
loc 0
zeq *1072
bra *1
1072
OK
TEST 073: test zne
MAIN 0
loc 4
zne *1073
bra *1
1073
loc -4
zne *2073
bra *1
2073
loc 0
zne *1
OK
TEST 074: test zge
MAIN 0
loc 4
zge *1074
bra *1
1074
loc -4
zge *1
loc 0
zge *2074
bra *1
2074
OK
TEST 075: test zgt
MAIN 0
loc 4
zgt *1075
bra *1
1075
loc -4
zgt *1
loc 0
zgt *1
OK
TEST 076: test asp
MAIN 12
loc 104
loc 4
loc 5
loc 6
asp 2*WS
stl -4
loc 104
bne *1
OK
TEST 077: test cal
HOL 12
MAIN 0
cal $p077
loe 4
loc 34
bne *1
OK
PROC
pro $p077,0
loc 34
ste 4
ret 0
end
TEST 078: test cai
HOL 12
MAIN 0
lpi $p078
cai
loe 4
loc 34
bne *1
OK
PROC
pro $p078,0
loc 34
ste 4
ret 0
end
TEST 079: test ads WS
MAIN 20
lal -6
loc -2
ads WS
lal -8
cmp
zne *1
OK
lal -6
loc 2
ads WS
lal -4
cmp
zne *1
OK
; test adp
lal -5
adp 1
lal -4
cmp
zne *1
OK
TEST 080: test sbs
HOL 12
MAIN 20
lal -4
lal -6
sbs WS
loc 2
bne *1
OK
lae 7
lae 10
sbs WS
loc -3
bne *1
OK
TEST 081: test lor
#define LB 0
#define SP 1
MAIN 20
lor LB
lxl 0
cmp
zne *1
OK
loc 31
lor SP
loi WS
bne *1
OK
lor SP
lal -12
sti PS
asp -4
lor SP
lal -8
sti PS
asp 4
lal -12
loi PS
lal -8
loi PS
sbs WS
loc 4
bne *1
OK
TEST 082: test ass WS
#define SP 1
MAIN 20
loc 104
loc 50
loc 60
loc 2*WS
ass WS
loc 104
bne *1
OK
lor SP
lal -8
sti PS
loc -18
ass WS
lor SP
lal -4
sti PS
loc 18
ass WS
lal -8
loi PS
lal -4
loi PS
sbs WS
loc 18
bne *1
OK
TEST 083: test blm
HOL 40
MAIN 32
loc 61
ste 12
loc 0
stl -4
lae 12
lal -4
blm WS
lol -4
loc 61
bne *1
OK
loc 44
loc 43
loc 42
loc 41
lal -20
sti 4*WS
lal -20
lae 8
blm 4*WS
loe 8
loc 41
bne *1
loe 8+WS
loc 42
bne *1
loe 8+(2*WS)
loc 43
bne *1
loe 8+(3*WS)
loc 44
bne *1
OK
TEST 084: test bls WS
HOL 40
MAIN 32
loc 20
stl -8
lal -8
lae 20
loc WS
bls WS
loe 20
loc 20
bne *1
OK
loc 55
stl -8+WS
loc 56
stl -8
lal -8
lae 20
loc 2*WS
bls WS
loe 20
loc 56
bne *1
loe 20+WS
loc 55
bne *1
OK
TEST 085: test dup
MAIN 0
loc 199
dup WS
bne *1
OK
loc 130
loc 150
dup 2*WS
loc 150
bne *1
loc 130
bne *1
loc 150
bne *1
loc 130
bne *1
OK
; test dus WS
loc 400
loc 399
loc 2*WS
dus WS
loc 399
bne *1
loc 400
bne *1
loc 399
bne *1
loc 400
bne *1
OK
TEST 087: test rck
a087
con 10,14
MAIN 12
loc 10
lae a087
rck WS
inc
lae a087
rck WS
inc
lae a087
rck WS
inc
lae a087
rck WS
inc
lae a087
rck WS
stl -4
OK
TEST 088: test csa
MAIN 20
a088
con *1088,4,2,*3088,*2088,*4088
zrl -8
loc 4
5088
inc
dup WS
lae a088
csa WS
bra *1
3088
bra *1
2088
lol -8
loc 3
adi WS
stl -8
bra *5088
1088
inl -8
bra *6088
4088
lol -8
loc 2
adi WS
stl -8
bra *5088
6088
loc 7
bne *1
OK
lol -8
loc 6
bne *1
OK
TEST 089: test csb
MAIN 20
b089
rom *1089,3,-1,*3089,0,*2089,1,*4089
loc -1
zrl -12
5089
inc
dup WS
lae b089
csb WS
bra *1
3089
bra *1
2089
lol -12
loc 3
adi WS
stl -12
bra *5089
1089
inl -12
bra *6089
4089
lol -12
loc 2
adi WS
stl -12
bra *5089
6089
loc 2
bne *1
OK
lol -12
loc 6
bne *1
OK
TEST 090: now test loi again, because it is so tricky
MAIN 20
loc 256
lal -3
sti 1
loc 1
lal -4
sti 1
loc 517
lal -5
sti 1
loc 2
lal -6
sti 1
loc 1030
lal -8
sti 2
loc 4
lal -9
sti 1
lal -3
loi 1
loc 0
bne *1
OK
lal -3
adp -1
loi 1
loc 1
bne *1
OK
lal -3
adp -2
loi 1
loc 5
bne *1
OK
lal -3
adp -3
loi 1
loc 2
bne *1
OK
lal -4
adp -4
loi 2
loc 1030
bne *1
OK
lal -6
adp -3
loi 1
loc 4
bne *1
OK
TEST 091: now test sti 1 again
MAIN 12
loc 3
loc 2
loc 1
loc 7
loc 8
loc 10
lal -4
sti 1
lal -4
adp -1
sti 1
lal -4
adp -2
sti 1
lal -4
adp -3
sti 1
lal -4
adp -4
sti 1
lal -4
adp -5
sti 1
lal -4
loi 1
loc 10
bne *1
OK
lal -6
loi 1
loc 7
bne *1
OK
lal -8
loi 1
loc 2
bne *1
OK
TEST 092: test ldc and cii
MAIN 0
#ifdef W2S
ldc 0
bne *1
OK
ldc 1
loc 1
loc WS
loc W2S
cii
cmi W2S
zne *1
OK
ldc -1
loc -1
loc WS
loc W2S
cii
cmi W2S
zne *1
OK
loc -1
ldc -1
loc W2S
loc WS
cii
cmi WS
zne *1
OK
#if WS == 1
ldc -128
loc -128
#endif
#if WS == 2
ldc -32768
loc -32768
#endif
#if WS == 4
ldc -2147483648
loc -2147483648
#endif
loc WS
loc W2S
cii
cmi W2S
zne *1
OK
ldc -1
loc -1
bne *1
OK
loc -1
bne *1
OK
ldc 1
zeq *1092
; low order part on top of stack
loc 0
bne *1
OK
bra *2092
; high order part on top of stack
1092
loc 1
bne *1
OK
2092
#endif
TEST 093: test cii
MAIN 0
loc 123
dup WS
loc WS
dup WS
cii
bne *1
OK
#ifdef W2S
loc 0
loc WS
loc W2S
cii
loc 0
bne *1
loc 0
bne *1
OK
; dynamically determine format of doubles
loc 1
loc WS
loc W2S
cii
zeq *1093
; low order part on top of stack
loc 0
bne *1
OK
loc -3
loc WS
loc W2S
cii
loc -3
bne *1
loc -1
bne *1
OK
bra *2093
; high order part on top of stack
1093
loc 1
bne *1
OK
loc -3
loc WS
loc W2S
cii
loc -1
bne *1
loc -3
bne *1
OK
2093
#endif
TEST 094: test adi W2S
MAIN 0
#ifdef W2S
ldc 1
ldc 1
adi W2S
ldc 2
cmi W2S
zne *1
OK
ldc 5
ldc -6
adi W2S
ldc -1
cmi W2S
zne *1
OK
ldc -1007
ldc +999
adi W2S
ldc -8
cmi W2S
zne *1
OK
ldc -1300
ldc +1405
adi W2S
ldc 105
cmi W2S
zne *1
OK
ldc -30000
ldc -20
adi W2S
ldc -30020
cmi W2S
zne *1
OK
#if WS >= 2
ldc -100007
ldc +99999
adi W2S
ldc -8
cmi W2S
zne *1
OK
ldc -1300
ldc +140567
adi W2S
ldc 139267
cmi W2S
zne *1
OK
ldc -30000000
ldc -20
adi W2S
ldc -30000020
cmi W2S
zne *1
OK
#endif
#endif
TEST 095: test sbi W2S
MAIN 0
#ifdef W2S
ldc 1
ldc 1
sbi W2S
ldc 0
cmi W2S
zne *1
OK
ldc 5
ldc -6
sbi W2S
ldc +11
cmi W2S
zne *1
OK
ldc -1007
ldc +999
sbi W2S
ldc -2006
cmi W2S
zne *1
OK
ldc -1300
ldc +1405
sbi W2S
ldc -2705
cmi W2S
zne *1
OK
ldc -30000
ldc -20
sbi W2S
ldc -29980
cmi W2S
zne *1
OK
#if WS >= 2
ldc -100007
ldc +99999
sbi W2S
ldc -200006
cmi W2S
zne *1
OK
ldc -1300
ldc +140567
sbi W2S
ldc -141867
cmi W2S
zne *1
OK
ldc -30000000
ldc -20
sbi W2S
ldc -29999980
cmi W2S
zne *1
OK
#endif
#endif
TEST 096: test mli W2S
MAIN 0
#ifdef W2S
ldc 5
ldc 9
mli W2S
ldc 45
cmi W2S
zne *1
OK
ldc 0
ldc 10
mli W2S
ldc 0
cmi W2S
zne *1
OK
ldc -99
ldc 7
mli W2S
ldc -693
cmi W2S
zne *1
OK
ldc -100
ldc -90
mli W2S
ldc 9000
cmi W2S
zne *1
OK
#if WS >= 2
ldc 123456
ldc 200
mli W2S
ldc 24691200
cmi W2S
zne *1
OK
#endif
#endif
TEST 097: test dvi W2S
MAIN 0
#ifdef W2S
ldc 15
ldc 5
dvi W2S
ldc 3
cmi W2S
zne *1
OK
ldc 100
ldc -7
dvi W2S
ldc -14
cmi W2S
zne *1
OK
ldc -100
ldc 7
dvi W2S
ldc -14
cmi W2S
zne *1
OK
ldc -1000
ldc -201
dvi W2S
ldc 4
cmi W2S
zne *1
OK
#if WS >= 2
ldc 1234567
ldc -100
dvi W2S
ldc -12345
cmi W2S
zne *1
OK
#endif
#endif
TEST 098: test rmi W2S
MAIN 0
#ifdef W2S
ldc 100
ldc 7
rmi W2S
ldc 2
cmi W2S
zne *1
OK
ldc -100
ldc 7
rmi W2S
ldc -2
cmi W2S
zne *1
OK
ldc 100
ldc -7
rmi W2S
ldc 2
cmi W2S
zne *1
OK
ldc -100
ldc -7
rmi W2S
ldc -2
cmi W2S
zne *1
OK
ldc -1000
ldc -201
rmi W2S
ldc -196
cmi W2S
zne *1
OK
#if WS >= 4
ldc 1234567
ldc -100
rmi W2S
ldc 67
cmi W2S
zne *1
OK
#endif
#endif
TEST 099: test and
MAIN 0
loc 68
loc 65
and WS
loc 64
bne *1
OK
loc 17
loc 34
loc 3
loc 36
and 2*WS
loc 32
bne *1
loc 1
bne *1
OK
loc 17
loc 34
loc 68
loc -120
loc 1
loc 37
loc 12
loc -127
and 4*WS
loc -128
bne *1
loc 4
bne *1
loc 32
bne *1
loc 1
bne *1
OK
TEST 100: test ior
MAIN 0
loc 68
loc 65
ior WS
loc 69
bne *1
OK
loc 17
loc 34
loc 3
loc 36
ior 2*WS
loc 38
bne *1
loc 19
bne *1
OK
loc 17
loc 34
loc 68
loc -120
loc 1
loc 37
loc 12
loc -127
ior 4*WS
loc -119
bne *1
loc 76
bne *1
loc 39
bne *1
loc 17
bne *1
OK
TEST 101: test xor
MAIN 0
loc 68
loc 65
xor WS
loc 5
bne *1
OK
loc 17
loc 34
loc 3
loc 36
xor 2*WS
loc 6
bne *1
loc 18
bne *1
OK
loc 17
loc 34
loc 68
loc -120
loc 1
loc 37
loc 12
loc -127
xor 4*WS
loc 9
bne *1
loc 72
bne *1
loc 7
bne *1
loc 16
bne *1
OK
TEST 102: test com
MAIN 0
loc 68
com WS
loc -69
bne *1
OK
loc 17
loc 34
com 2*WS
loc -35
bne *1
loc -18
bne *1
OK
loc 17
loc 34
loc 68
loc -120
com 4*WS
loc 119
bne *1
loc -69
bne *1
loc -35
bne *1
loc -18
bne *1
OK
TEST 103: test sli,slu W2S
MAIN 0
#ifdef W2S
ldc 5
loc 3
sli W2S
ldc 40
cmi W2S
zne *1
OK
ldc -2
loc 4
sli W2S
ldc -32
cmi W2S
zne *1
OK
ldc 5
loc 3
slu W2S
ldc 40
cmi W2S
zne *1
OK
ldc -2
loc 4
slu W2S
ldc -32
cmi W2S
zne *1
OK
#endif
TEST 104: test sri,sru W2S
MAIN 0
#ifdef W2S
ldc 64
loc 5
sri W2S
ldc 2
cmi W2S
zne *1
OK
ldc -3
loc 2
sri W2S
ldc -1
cmi W2S
zne *1
OK
ldc -16
loc 3
sri W2S
ldc -2
cmi W2S
zne *1
OK
ldc 64
loc 5
sru W2S
ldc 2
cmi W2S
zne *1
OK
ldc -3
loc 2
sru W2S
#if W2S == 2
ldc 16383
#endif
#if W2S == 4
ldc 1073741823
#endif
cmi W2S
zne *1
OK
#endif
TEST 105: common test of double arithmetic
MAIN 0
#ifdef W2S
ldc 1000
ldc 10
mli W2S
ldc 4
dvi W2S
ldc 1500
adi W2S
ldc 2856
sbi W2S
ldc 100
rmi W2S
ldc 44
cmi W2S
zne *1
OK
#endif
TEST 106: test cmi W2S
MAIN 0
#if W2S==2
ldc 64
ldc 4
mli W2S
ldc 63
ldc 4
mli W2S
cmi W2S
tge
loc 1
bne *1
OK
#endif
#if W2S==4
ldc 16384
ldc 4
mli W2S
ldc 16383
ldc 4
mli W2S
cmi W2S
tge
loc 1
bne *1
OK
#endif
TEST 107: test cii W2S -> WS
MAIN 0
#ifdef W2S
ldc 100
loc W2S
loc WS
cii
loc 100
bne *1
OK
ldc 5000
ldc -6
mli W2S
ldc 1000
dvi W2S
loc W2S
loc WS
cii
loc -30
bne *1
OK
#endif
TEST 108: test cif, cfi, adf FS
MAIN 0
#ifdef FS
loc 100
loc WS
loc FS
cif
loc 44
loc WS
loc FS
cif
adf FS
loc FS
loc WS
cfi
loc 144
bne *1
OK
loc 65
loc WS
loc FS
cif
loc -65
loc WS
loc FS
cif
adf FS
loc FS
loc WS
cfi
loc 0
bne *1
OK
#endif
TEST 109: test cdf, cfd
MAIN 0
#ifdef FS
#ifdef W2S
loc 55
loc WS
loc W2S
cii
loc W2S
loc FS
cif
loc 55
loc WS
loc FS
cif
cmf FS
zne *1
OK
loc 24
loc WS
loc FS
cif
loc FS
loc W2S
cfi
loc W2S
loc WS
cii
loc 24
bne *1
OK
loc 57
loc WS
loc FS
cif
loc FS
loc W2S
cfi
loc W2S
loc WS
cii
loc 57
bne *1
OK
loc 40
loc WS
loc W2S
cii
loc W2S
loc FS
cif
loc FS
loc WS
cfi
loc 40
bne *1
OK
#endif
#endif
TEST 110: test sbf FS
MAIN 0
#ifdef FS
loc 100
loc WS
loc FS
cif
loc 50
loc WS
loc FS
cif
sbf FS
loc FS
loc WS
cfi
loc 50
bne *1
OK
loc 32
loc WS
loc FS
cif
loc 101
loc WS
loc FS
cif
sbf FS
loc -69
loc WS
loc FS
cif
cmf FS
zne *1
OK
#endif
TEST 111: test mlf FS
MAIN 0
#ifdef FS
loc 4
loc WS
loc FS
cif
loc 20
loc WS
loc FS
cif
mlf FS
loc FS
loc WS
cfi
loc 80
bne *1
OK
loc -12
loc WS
loc FS
cif
loc -9
loc WS
loc FS
cif
mlf FS
loc FS
loc WS
cfi
loc 108
bne *1
OK
#endif
TEST 112: test dvf FS
MAIN 0
#ifdef FS
loc 45
loc WS
loc FS
cif
loc 9
loc WS
loc FS
cif
dvf FS
loc 5
loc WS
loc FS
cif
cmf FS
zne *1
OK
loc -60
loc WS
loc FS
cif
loc 7
loc WS
loc FS
cif
dvf FS
loc FS
loc WS
cfi
loc -8
bne *1
OK
#endif
TEST 113: test fractions using FS floating arithmetic
MAIN 0
#ifdef FS
loc 7
loc WS
loc FS
cif
loc 2
loc WS
loc FS
cif
dvf FS
loc FS
loc WS
cfi
loc 3
bne *1
OK
loc -7
loc WS
loc FS
cif
loc 2
loc WS
loc FS
cif
dvf FS
loc FS
loc WS
cfi
loc -3
bne *1
OK
loc 11
loc WS
loc FS
cif
loc 2
loc WS
loc FS
cif
dvf FS
loc 5
loc WS
loc FS
cif
mlf FS
loc 4
loc WS
loc FS
cif
mlf FS
loc 110
loc WS
loc FS
cif
cmf FS
zne *1
OK
#endif
TEST 114: test cif, cfi, adf F2S
MAIN 0
#ifdef F2S
loc 10
loc WS
loc F2S
cif
loc 44
loc WS
loc F2S
cif
adf F2S
loc F2S
loc WS
cfi
loc 54
bne *1
OK
loc 65
loc WS
loc F2S
cif
loc -65
loc WS
loc F2S
cif
adf F2S
loc F2S
loc WS
cfi
loc 0
bne *1
OK
#endif
TEST 115: test cif, cfi W2S F2S
MAIN 0
#ifdef F2S
#ifdef W2S
loc 55
loc WS
loc W2S
cii
loc W2S
loc F2S
cif
loc 55
loc WS
loc F2S
cif
cmf F2S
zne *1
OK
loc 24
loc WS
loc F2S
cif
loc F2S
loc W2S
cfi
loc W2S
loc WS
cii
loc 24
bne *1
OK
loc 57
loc WS
loc F2S
cif
loc F2S
loc W2S
cfi
loc W2S
loc WS
cii
loc 57
bne *1
OK
loc 41
loc WS
loc W2S
cii
loc W2S
loc F2S
cif
loc F2S
loc WS
cfi
loc 41
bne *1
OK
#endif
#endif
TEST 116: test sbf F2S
MAIN 0
#ifdef F2S
loc 100
loc WS
loc F2S
cif
loc 50
loc WS
loc F2S
cif
sbf F2S
loc F2S
loc WS
cfi
loc 50
bne *1
OK
loc 32
loc WS
loc F2S
cif
loc 101
loc WS
loc F2S
cif
sbf F2S
loc -69
loc WS
loc F2S
cif
cmf F2S
zne *1
OK
#endif
TEST 117: test fmu F2S
MAIN 0
#ifdef F2S
loc 4
loc WS
loc F2S
cif
loc 20
loc WS
loc F2S
cif
mlf F2S
loc F2S
loc WS
cfi
loc 80
bne *1
OK
loc -20
loc WS
loc F2S
cif
loc -6
loc WS
loc F2S
cif
mlf F2S
loc F2S
loc WS
cfi
loc 120
bne *1
OK
#endif
TEST 118: test dvf F2S
MAIN 0
#ifdef F2S
loc 45
loc WS
loc F2S
cif
loc 9
loc WS
loc F2S
cif
dvf F2S
loc 5
loc WS
loc F2S
cif
cmf F2S
zne *1
OK
loc -60
loc WS
loc F2S
cif
loc 7
loc WS
loc F2S
cif
dvf F2S
loc F2S
loc WS
cfi
loc -8
bne *1
OK
#endif
TEST 119: test fractions using F2S floating arithmetic
MAIN 0
#ifdef F2S
loc 7
loc WS
loc F2S
cif
loc 2
loc WS
loc F2S
cif
dvf F2S
loc F2S
loc WS
cfi
loc 3
bne *1
OK
loc -7
loc WS
loc F2S
cif
loc 2
loc WS
loc F2S
cif
dvf F2S
loc F2S
loc WS
cfi
loc -3
bne *1
OK
loc 11
loc WS
loc F2S
cif
loc 2
loc WS
loc F2S
cif
dvf F2S
loc 5
loc WS
loc F2S
cif
mlf F2S
loc 4
loc WS
loc F2S
cif
mlf F2S
loc 110
loc WS
loc F2S
cif
cmf F2S
zne *1
OK
#endif
TEST 120: test cal
HOL 12
MAIN 0
loc 0
ste 4
cal $p120
loe 4
loc 34
bne *1
OK
PROC
pro $p120,0
loc 34
ste 4
ret 0
end
TEST 121: test cal
MAIN 0
cal $p121
lfr WS
loc 7
bne *1
OK
PROC
pro $p121,0
loc 7
ret WS
end
TEST 122: test cal
MAIN 0
loc 7
cal $p122
asp WS
lfr WS
loc 7
bne *1
OK
PROC
pro $p122,0
lol 0
ret WS
end
TEST 123: test cal
MAIN 4
loc 7
stl -4
lor 0
cal $p123
asp PS
lfr WS
loc 7
bne *1
OK
lxl 0
cal $p123
asp PS
lfr WS
loc 7
bne *1
OK
PROC
pro $p123,0
lxl 1
lof -4
ret WS
end
TEST 124: test cal
MAIN 0
loc 7
cal $p124
asp WS
PROC
pro $p124,0
lol 0
loc 7
bne *1
OK
ret 0
ERRLAB
end
TEST 125: test cal
MAIN 4
loc 10
stl -WS
loc 90
lxl 0
cal $p1125
asp PS+WS
OK
PROC
pro $p1125,WS
lol PS
loc 90
bne *1
OK
loc 11
stl -WS
loc 21
loc 91
lxl 0
cal $p2125
asp PS+WS
lfr WS
OK
loc 82
bne *1
OK
loc 21
bne *1
OK
ret 0
ERRLAB
end
pro $p2125,0
lol PS
loc 91
bne *1
OK
loc 12
loc 92
lxl 0
cal $p3125
asp PS+WS
lfr WS+WS
OK
loc 86
bne *1
loc 83
bne *1
OK
loc 12
bne *1
OK
lal PS
loi WS
loc 91
bne *1
OK
loc 82
ret WS
ERRLAB
end
pro $p3125,WS
lol PS
loc 92
bne *1
OK
loc 13
stl -WS
lxa 0
adp PS
loi WS
loc 92
bne *1
OK
lxa 1
adp PS
loi WS
loc 91
bne *1
OK
lxa 2
adp PS
loi WS
loc 90
bne *1
OK
lxl 2
lof -WS
loc 11
bne *1
OK
lxl 3
adp -WS
loi WS
loc 10
bne *1
OK
loc 83
lxl 1
cal $p4125
asp PS
lxl 2
cal $p5125
asp PS
lxl 3
cal $p6125
asp PS
lfr WS
ret WS+WS
ERRLAB
end
pro $p4125,0
lxa 1
adp PS
loi WS
loc 91
bne *1
OK
ret 0
ERRLAB
end
pro $p5125,0
lxa 1
adp PS
loi WS
loc 90
bne *1
OK
ret 0
ERRLAB
end
pro $p6125,0
lxl 1
adp -WS
loi WS
loc 10
bne *1
OK
loc 86
ret WS
ERRLAB
end
TEST 126: test bra
MAIN 0
bra *0126
bra *1
9126
bra *8126
0126
bra *6126
bra *1
1126
bra *5126
bra *1
2126
bra *4126
bra *1
3126
bra *7126
bra *1
4126
bra *3126
bra *1
5126
bra *2126
bra *1
6126
bra *1126
bra *1
7126
bra *9126
bra *1
8126
OK
TEST 127: test ret and lfr
a127
bss 4,0,0
MAIN 0
; return nothing
loc 123
cal $retw0
loc 123
bne *1
OK
; return single word
cal $retw1
lfr WS
loc 45
bne *1
OK
; return single pointer
cal $retp1
lfr PS
lae a127
cmp
zne *1
OK
; return procedure instance identifier (two pointers)
; this value may not be disturbed by ASP
lxl 0
cal $retp2
asp PS
lfr 2*PS
lpi $retp2
cmp
zne *1
lxl 0
cmp
zne *1
OK
; same as above but with ASS instead of ASP
lxl 0
cal $retp2
loc PS
ass WS
lfr 2*PS
lpi $retp2
cmp
zne *1
lxl 0
cmp
zne *1
OK
PROC
pro $retw0,0
ret 0
end
pro $retw1,0
loc 45
ret WS
end
pro $retp1,0
lae a127
ret PS
end
pro $retp2,0
lxl 1
lpi $retp2
ret 2*PS
end