mirror of
https://github.com/open-simh/simtools.git
synced 2026-01-14 07:39:37 +00:00
Apart from the fact that instruction addresses must be even, this can't even be expressed since the branch offset is expressed in words.
133 lines
3.2 KiB
Plaintext
133 lines
3.2 KiB
Plaintext
;;;;;
|
|
;
|
|
; Test operand checking for various instructions and try to exercise
|
|
; all operand parsing error messages.
|
|
; Some cases are checked elsewhere (e.g. test-jmp.mac).
|
|
;
|
|
|
|
; OC_MARK
|
|
|
|
mark 0
|
|
mark 1
|
|
mark 77
|
|
mark 100 ; too large
|
|
mark . ; must be literal
|
|
mark 0,0 ; bad
|
|
|
|
emt 0
|
|
emt 1
|
|
emt 255.
|
|
emt 256. ; too large
|
|
emt . ; must be literal
|
|
|
|
trap 0
|
|
trap 1
|
|
trap 255.
|
|
trap 256. ; too large
|
|
trap . ; must be literal
|
|
|
|
; OC_1GEN
|
|
|
|
tst r0
|
|
tst r0,(r0) ; bad
|
|
tst @ ; bad
|
|
tst %77 ; bad
|
|
tst <> ; bad
|
|
|
|
; OC_2GEN
|
|
|
|
add r0,r1
|
|
add r0,r1,r2 ; bad
|
|
add @ ; bad
|
|
add r0 r1 ; bad
|
|
add r0,@ ; bad
|
|
|
|
; OC_BR
|
|
|
|
; branch offset is counted in words
|
|
; from the address after instruction (. + 2)
|
|
|
|
br .+2-258. ; bad
|
|
br .+2-256.
|
|
br .+2
|
|
br .+2+254.
|
|
br .+2+256. ; bad
|
|
br .+2+1 ; bad (odd)
|
|
|
|
; OC_SOB
|
|
|
|
sob r0,.
|
|
sob 0,. ; yes MACRO11 accepts this
|
|
sob r0,.,3 ; bad
|
|
sob ; bad
|
|
sob r0 ; bad
|
|
sob r0 . ; bad
|
|
sob 10,. ; bad
|
|
|
|
; OC_ASH
|
|
|
|
ash #3,r0
|
|
ash #3,0 ; yes MACRO11 accepts this
|
|
ash #3,r0,r1 ; bad
|
|
ash ; bad
|
|
ash #3 ; bad
|
|
ash #3 r0 ; bad
|
|
ash #3,#0 ; bad
|
|
|
|
; OC_JSR tested in test-jmp.mac
|
|
|
|
; OC_FPPGENAC
|
|
|
|
ac1 = %1
|
|
ac5 = %5
|
|
|
|
mulf (r1),ac1
|
|
mulf (r1),1
|
|
mulf (r1),ac1,ac1 ; bad
|
|
mulf ; bad
|
|
mulf ( ; bad
|
|
mulf (r1) ; bad
|
|
mulf (r1) ac1 ; bad
|
|
mulf (r1),ac5 ; bad
|
|
|
|
; OC_FPPACGEN
|
|
|
|
stf ac1,(r5)
|
|
stf 1,(r5)
|
|
stf ; bad
|
|
stf ac1 ; bad
|
|
stf ac1 (r5) ; bad
|
|
stf ac5,(r5) ; bad
|
|
|
|
; OC_CIS2 operands are optional and an extension
|
|
|
|
cmpni
|
|
cmpni 1,2
|
|
cmpni 1,2,3 ; bad
|
|
cmpni 3 ; bad
|
|
cmpni 4 5 ; bad
|
|
cmpni <>,<> ; bad
|
|
|
|
; OC_CIS3 operands are optional and an extension
|
|
|
|
addni
|
|
addni 1,2,3
|
|
addni 1,2,3,4 ; bad
|
|
addni 1 ; bad
|
|
addni 1,2 ; bad
|
|
addni 1 2 3 ; bad
|
|
addni <>,<>,<> ; bad
|
|
|
|
; OC_CIS4 operands are optional and an extension
|
|
|
|
movtci
|
|
movtci 1,2,3,4
|
|
movtci 1,2,3,4,5
|
|
movtci 1 ; bad
|
|
movtci 1,2 ; bad
|
|
movtci 1,2,3 ; bad
|
|
movtci 1 2 3 4 ; bad
|
|
movtci <>,<>,<>,<> ; bad
|
|
|
|
.end
|