53 lines
1.1 KiB
Text
53 lines
1.1 KiB
Text
.TITLE SQRCUB
|
|
.MCALL .TTYOUT,.EXIT
|
|
|
|
SQRCUB::MOV #^D30,R5
|
|
JSR PC,NEXCUB
|
|
1$: JSR PC,NEXSQR
|
|
2$: CMP R4,R3
|
|
BLT 3$
|
|
BEQ 1$
|
|
MOV R3,R0
|
|
JSR PC,PR0
|
|
SOB R5,1$
|
|
.EXIT
|
|
3$: JSR PC,NEXCUB
|
|
BR 2$
|
|
|
|
; PUT SUCCESSIVE SQUARES IN R3
|
|
NEXSQR: MOV 1$,R3
|
|
ADD 2$,R3
|
|
MOV R3,1$
|
|
ADD #2,2$
|
|
RTS PC
|
|
1$: .WORD 0
|
|
2$: .WORD 1
|
|
|
|
; PUT SUCCESSIVE CUBES IN R4
|
|
NEXCUB: CLR R4
|
|
MOV 3$,R1
|
|
1$: ADD 2$,R4
|
|
ADD #2,2$
|
|
SOB R1,1$
|
|
INC 3$
|
|
RTS PC
|
|
2$: .WORD 1
|
|
3$: .WORD 1
|
|
|
|
; PRINT R0 AS DECIMAL WITH NEWLINE
|
|
PR0: MOV #4$,R2
|
|
1$: MOV #-1,R1
|
|
2$: INC R1
|
|
SUB #12,R0
|
|
BCC 2$
|
|
ADD #72,R0
|
|
MOVB R0,-(R2)
|
|
MOV R1,R0
|
|
BNE 1$
|
|
3$: MOVB (R2)+,R0
|
|
.TTYOUT
|
|
BNE 3$
|
|
RTS PC
|
|
.BLKB 5
|
|
4$: .BYTE 15,12,0
|
|
.END SQRCUB
|