First Steps in using the DCJ11 SBC


Test Programs

Now you can start to write small test programs. As we lack an assembler the only thing you can do is entering the instruction via the ODT in octal.

The following program shows the byte write support of the glue logic

00140000/012700 	;	MOV	#0, R0
00140002/000000 
00140004/012701  	;	MOV	#0, R1
00140006/000000 
00140010/012702  	;	MOV	#400, R2
00140012/000400 
00140014/110021 	;	MOVB	R0, (R1)+
00140016/005200 	;	INC	R0
00140020/077203 	;	SOB	R2, 140014
00140022/000000 	;	HALT
00140024/000765 	;	BR	140000		; restart test using p(roceed)

This will fill the first 256 bytes with increasing values for the bytes

@0/000400 
00000002/001402 
00000004/002404 
00000006/003406 
00000010/004410 
00000012/005412 

You could also write something like this

00140000/012700 	;	MOV	#40000, R0
00140002/040000 
00140004/012701 	;	MOV	#0, R1
00140006/000000 
00140010/012702 	;	MOV	#0, R2
00140012/000000 
00140014/010122 	;	MOV	R1, (R2)+
00140016/005201 	;	INC	R1
00140020/077003 	; 	SOB	R0, PC-6
00140022/000000 	;	HALT

This copies the values 0..37777 to the locations 0..77776.

Of course instead moving zero to a register you also could just clear it using instruction code 0055xx. But by using a MOV instruction you can change easily the start address and start value and run the program again, of course only if you do not accidentely overwrite your program.


00140000/005004 	;	CLR	R4
00140002/012700 	;	MOV	#0, R0
00140004/000000 
00140006/012701 	;	MOV	#0, R1
00140010/000000 
00140012/012702 	;	MOV	#20000, R2
00140014/020000 
00140016/010021 	;	MOV	R0, (R1)+
00140020/005200 	;	INC	R0
00140022/005200 	;	INC	R0
00140024/077204 	;	SOB	R2, 140016
00140026/005204 	;	INC	R4
00140030/032737 	;	BIT	#200, 177560
00140032/000200 
00140034/177560 
00140036/001761 	;	BREQ	140002
00140040/000000 	;	HALT

The next program will write 128 times the character ‘C’ to the console and then HALT.

00140100/012700 	;	MOV	#200, R0
00140102/000200 
00140104/032737 	;	BIT	#200, @#177564
00140106/000200 
00140110/177564 
00140112/001774 	;	BEQ	140104
00140114/012737 	;	MOV	#103, @#177566
00140116/000103 	;	
00140120/177566 
00140122/077010 	;	SOB	R0, 140104
00140124/000000 	;	HALT
00140126/000764		;	BR	140100

I included a BR to the start so you can repeat the test be just entering the ODT proceed (p) command.

Using PDP11GUI

Jörg Hoppe has written a very nice tool that connects to the console of a PDP-11 and of course also to the DCJ11 SBC

https://www.retrocmp.com/tools/pdp11gui