64 lines
1.3 KiB
Plaintext
64 lines
1.3 KiB
Plaintext
.TITLE VANECK
|
|
.MCALL .TTYOUT,.EXIT
|
|
|
|
; CALCULATE VAN ECK SEQUENCE
|
|
VANECK::MOV #ECKBUF,R5
|
|
MOV R5,R0
|
|
CLR (R0)
|
|
1$: MOV R0,R1
|
|
BR 3$
|
|
2$: CMP (R0),(R1)
|
|
BEQ 4$
|
|
3$: SUB #2,R1
|
|
CMP R1,R5
|
|
BGE 2$
|
|
CLR R3
|
|
BR 5$
|
|
4$: MOV R0,R3
|
|
SUB R1,R3
|
|
ASR R3
|
|
5$: ADD #2,R0
|
|
MOV R3,(R0)
|
|
CMP R0,#BUFEND
|
|
BLE 1$
|
|
|
|
; PRINT VALUES
|
|
MOV #ECKBUF,R3
|
|
JSR PC,PR10
|
|
MOV #ECKBUF+<2*^D990>,R3
|
|
JSR PC,PR10
|
|
.EXIT
|
|
|
|
; PRINT 10 VALUES STARTING AT R3
|
|
PR10: MOV #^D10,R4
|
|
1$: MOV (R3)+,R0
|
|
JSR PC,PR0
|
|
SOB R4,1$
|
|
MOV #15,R0
|
|
.TTYOUT
|
|
MOV #12,R0
|
|
.TTYOUT
|
|
RTS PC
|
|
|
|
; PRINT NUMBER IN R0 AS DECIMAL
|
|
PR0: MOV #4$,R1
|
|
1$: MOV #-1,R2
|
|
2$: INC R2
|
|
SUB #12,R0
|
|
BCC 2$
|
|
ADD #72,R0
|
|
MOVB R0,-(R1)
|
|
MOV R2,R0
|
|
BNE 1$
|
|
3$: MOVB (R1)+,R0
|
|
.TTYOUT
|
|
BNE 3$
|
|
RTS PC
|
|
.ASCII /...../
|
|
4$: .ASCIZ / /
|
|
.EVEN
|
|
|
|
ECKBUF: .BLKW ^D1000
|
|
BUFEND = .
|
|
.END VANECK
|