tests
This commit is contained in:
parent
7eec8c3520
commit
1e5fa1b9ec
21 changed files with 300 additions and 1 deletions
2
cpu.cpp
2
cpu.cpp
|
@ -746,7 +746,7 @@ bool cpu::single_operand_instructions(const uint16_t instr)
|
||||||
uint16_t t = b -> read(a, word_mode);
|
uint16_t t = b -> read(a, word_mode);
|
||||||
bool new_carry = false;
|
bool new_carry = false;
|
||||||
|
|
||||||
uint16_t temp;
|
uint16_t temp = 0;
|
||||||
if (word_mode) {
|
if (word_mode) {
|
||||||
new_carry = t & 0x80;
|
new_carry = t & 0x80;
|
||||||
temp = ((t << 1) | getPSW_c()) & 0xff;
|
temp = ((t << 1) | getPSW_c()) & 0xff;
|
||||||
|
|
50
tests/test.mac
Normal file
50
tests/test.mac
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
; in simh:
|
||||||
|
; simh> set console telnet=3333
|
||||||
|
; then invoke telnet to port 3333 on the simh systm
|
||||||
|
; simh> load test.bin
|
||||||
|
; simh> run
|
||||||
|
|
||||||
|
|
||||||
|
; initialize stack pointer
|
||||||
|
start: MOV #1000, R6
|
||||||
|
|
||||||
|
; store pointer to text in R0
|
||||||
|
loop: MOV #text, R0
|
||||||
|
CALL printstart
|
||||||
|
JMP loop
|
||||||
|
|
||||||
|
; store copy of R0 on the stack
|
||||||
|
printstart: MOV R0,-(SP)
|
||||||
|
; store PSW (status register) on stack
|
||||||
|
MOV R1,-(SP)
|
||||||
|
MFPS R1
|
||||||
|
MOV R1,-(SP)
|
||||||
|
|
||||||
|
; string ends with 0x00
|
||||||
|
print: TSTB (R0)
|
||||||
|
BEQ pdone
|
||||||
|
|
||||||
|
; put character in tty buffer
|
||||||
|
MOVB (R0), @#TTYTX
|
||||||
|
|
||||||
|
; wait for it to be transmitted
|
||||||
|
waittx: TSTB @#TTYST
|
||||||
|
BPL waittx
|
||||||
|
|
||||||
|
INC R0
|
||||||
|
JMP print
|
||||||
|
|
||||||
|
; retrieve stored r0, r1 and psw from stack
|
||||||
|
pdone: MOV (SP)+,R1
|
||||||
|
MTPS R1
|
||||||
|
MOV (SP)+,R1
|
||||||
|
|
||||||
|
MOV (SP)+,R0
|
||||||
|
RET
|
||||||
|
|
||||||
|
make_raw
|
||||||
|
|
||||||
|
text: .ASCII "test\r\n\x00"
|
||||||
|
|
||||||
|
TTYST = 177564
|
||||||
|
TTYTX = 177566
|
33
tests/test1.mac
Normal file
33
tests/test1.mac
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
label: CLC
|
||||||
|
MOV #0.,R0
|
||||||
|
ASR R0 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #0,R1
|
||||||
|
ASRB R1 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #117400,R2
|
||||||
|
ASR R2 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #117400,R3
|
||||||
|
ASRB R3 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #77776,R4
|
||||||
|
ASR R4 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #77776,R5
|
||||||
|
ASRB R5 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
33
tests/test1l.mac
Normal file
33
tests/test1l.mac
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
label: CLC
|
||||||
|
MOV #0.,R0
|
||||||
|
ASL R0 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #0,R1
|
||||||
|
ASLB R1 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #117400,R2
|
||||||
|
ASL R2 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #117400,R3
|
||||||
|
ASLB R3 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #77776,R4
|
||||||
|
ASL R4 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
CLC
|
||||||
|
MOV #77776,R5
|
||||||
|
ASLB R5 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
16
tests/test2.mac
Normal file
16
tests/test2.mac
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
mov #1000,SP
|
||||||
|
|
||||||
|
mov #trapfunc, @#034
|
||||||
|
|
||||||
|
traploop: SEC
|
||||||
|
SEN
|
||||||
|
SEV
|
||||||
|
TRAP 0
|
||||||
|
JMP traploop
|
||||||
|
|
||||||
|
trapfunc:
|
||||||
|
NOP
|
||||||
|
NOP
|
||||||
|
RTT
|
||||||
|
|
||||||
|
make_raw
|
33
tests/test3.mac
Normal file
33
tests/test3.mac
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
label: SEC
|
||||||
|
MOV #0.,R0
|
||||||
|
ROR R0 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #0,R1
|
||||||
|
RORB R1 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #117400,R2
|
||||||
|
ROR R2 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #117400,R3
|
||||||
|
RORB R3 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #1,R4
|
||||||
|
ROR R4 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #1,R5
|
||||||
|
RORB R5 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
33
tests/test3l.mac
Normal file
33
tests/test3l.mac
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
label: SEC
|
||||||
|
MOV #0.,R0
|
||||||
|
ROL R0 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #0,R1
|
||||||
|
ROLB R1 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #117400,R2
|
||||||
|
ROL R2 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #117400,R3
|
||||||
|
ROLB R3 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #1,R4
|
||||||
|
ROL R4 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
SEC
|
||||||
|
MOV #1,R5
|
||||||
|
ROLB R5 ;
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
27
tests/test4.mac
Normal file
27
tests/test4.mac
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
label: MOV #0.,R0
|
||||||
|
NEG R0 ; 0
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #0,R1
|
||||||
|
NEGB R1 ; 0
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R2
|
||||||
|
NEG R2 ; 060400
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R3
|
||||||
|
NEGB R3 ; 117400
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #1,R4
|
||||||
|
NEG R4 ; 177777
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #1,R5
|
||||||
|
NEGB R5 ; 000377
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
19
tests/test5.mac
Normal file
19
tests/test5.mac
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
label: MOV #0.,R0
|
||||||
|
INC R0
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #0,R1
|
||||||
|
INCB R1
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R2
|
||||||
|
INC R2
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R3
|
||||||
|
INCB R3
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
19
tests/test5d.mac
Normal file
19
tests/test5d.mac
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
label: MOV #0.,R0
|
||||||
|
DEC R0
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #0,R1
|
||||||
|
DECB R1
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R2
|
||||||
|
DEC R2
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R3
|
||||||
|
DECB R3
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
19
tests/test6.mac
Normal file
19
tests/test6.mac
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
label: MOV #0.,R0
|
||||||
|
COM R0 ; 65535
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #0,R1
|
||||||
|
COMB R1 ; 255
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R2
|
||||||
|
COM R2 ; 24831
|
||||||
|
NOP
|
||||||
|
|
||||||
|
MOV #117400,R3
|
||||||
|
COMB R3 ; 40959
|
||||||
|
NOP
|
||||||
|
|
||||||
|
HALT
|
||||||
|
|
||||||
|
make_raw
|
8
tests/test7.mac
Normal file
8
tests/test7.mac
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
label: MOV #2000,SP
|
||||||
|
NOP
|
||||||
|
INC SP
|
||||||
|
NOP
|
||||||
|
DEC SP
|
||||||
|
NOP
|
||||||
|
|
||||||
|
make_raw
|
5
tests/test8.mac
Normal file
5
tests/test8.mac
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
NOP
|
||||||
|
label: .DW 077700
|
||||||
|
NOP
|
||||||
|
|
||||||
|
make_raw
|
4
tests/test9.mac
Normal file
4
tests/test9.mac
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
.DW 072527
|
||||||
|
.DW 000000
|
||||||
|
|
||||||
|
make_raw
|
Loading…
Add table
Reference in a new issue