Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
114
Task/N-queens-problem/PDP-11-Assembly/n-queens-problem.pdp11
Normal file
114
Task/N-queens-problem/PDP-11-Assembly/n-queens-problem.pdp11
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
; "eight queens problem" benchmark test
|
||||
|
||||
.radix 16
|
||||
|
||||
.loc 0
|
||||
|
||||
nop ;
|
||||
mov #scr,@#E800
|
||||
mov #88C6,@#E802
|
||||
; clear the display RAM
|
||||
mov #scr,r0
|
||||
mov #1E0,r1
|
||||
cls: clr (r0)+
|
||||
sob r1,cls
|
||||
; display the initial counter value
|
||||
clr r3
|
||||
mov #scr,r0
|
||||
jsr pc,number
|
||||
; perform the test
|
||||
jsr pc,queens
|
||||
; display the counter
|
||||
mov #scr,r0
|
||||
jsr pc,number
|
||||
finish: br finish
|
||||
|
||||
; display the character R1 at the screen address R0,
|
||||
; advance the pointer R0 to the next column
|
||||
putc: mov r2,-(sp)
|
||||
; R1 <- 6 * R1
|
||||
asl r1 ;* 2
|
||||
mov r1,-(sp)
|
||||
asl r1 ;* 4
|
||||
add (sp)+,r1 ;* 6
|
||||
add #chars,r1
|
||||
mov #6,r2
|
||||
putc1: movb (r1)+,(r0)
|
||||
add #1E,r0
|
||||
sob r2,putc1
|
||||
sub #B2,r0 ;6 * 1E - 2 = B2
|
||||
mov (sp)+,r2
|
||||
rts pc
|
||||
|
||||
print1: jsr pc,putc
|
||||
; print a string pointed to by R2 at the screen address R0,
|
||||
; advance the pointer R0 to the next column,
|
||||
; the string should be terminated by a negative byte
|
||||
print: movb (r2)+,r1
|
||||
bpl print1
|
||||
rts pc
|
||||
|
||||
; display the word R3 decimal at the screen address R0
|
||||
number: mov sp,r1
|
||||
mov #A0A,-(sp)
|
||||
mov (sp),-(sp)
|
||||
mov (sp),-(sp)
|
||||
movb #80,-(r1)
|
||||
numb1: clr r2
|
||||
div #A,r2
|
||||
movb r3,-(r1)
|
||||
mov r2,r3
|
||||
bne numb1
|
||||
mov sp,r2
|
||||
jsr pc,print
|
||||
add #6,sp
|
||||
rts pc
|
||||
|
||||
queens: mov #64,r5 ;100
|
||||
l06: clr r3
|
||||
clr r0
|
||||
l00: cmp #8,r0
|
||||
beq l05
|
||||
inc r0
|
||||
movb #8,ary(r0)
|
||||
l01: inc r3
|
||||
mov r0,r1
|
||||
l02: dec r1
|
||||
beq l00
|
||||
movb ary(r0),r2
|
||||
movb ary(r1),r4
|
||||
sub r2,r4
|
||||
beq l04
|
||||
bcc l03
|
||||
neg r4
|
||||
l03: add r1,r4
|
||||
sub r0,r4
|
||||
bne l02
|
||||
l04: decb ary(r0)
|
||||
bne l01
|
||||
sob r0,l04
|
||||
l05: sob r5,l06
|
||||
mov r3,cnt
|
||||
rts pc
|
||||
|
||||
; characters, width = 8 pixels, height = 6 pixels
|
||||
chars: .byte 3C, 46, 4A, 52, 62, 3C ;digit '0'
|
||||
.byte 18, 28, 8, 8, 8, 3E ;digit '1'
|
||||
.byte 3C, 42, 2, 3C, 40, 7E ;digit '2'
|
||||
.byte 3C, 42, C, 2, 42, 3C ;digit '3'
|
||||
.byte 8, 18, 28, 48, 7E, 8 ;digit '4'
|
||||
.byte 7E, 40, 7C, 2, 42, 3C ;digit '5'
|
||||
.byte 3C, 40, 7C, 42, 42, 3C ;digit '6'
|
||||
.byte 7E, 2, 4, 8, 10, 10 ;digit '7'
|
||||
.byte 3C, 42, 3C, 42, 42, 3C ;digit '8'
|
||||
.byte 3C, 42, 42, 3E, 2, 3C ;digit '9'
|
||||
.byte 0, 0, 0, 0, 0, 0 ;space
|
||||
|
||||
.even
|
||||
|
||||
cnt: .blkw 1
|
||||
ary: .blkb 9
|
||||
|
||||
.loc 200
|
||||
|
||||
scr: ;display RAM
|
||||
Loading…
Add table
Add a link
Reference in a new issue