.TITLE ACKRMN .MCALL .TTYOUT,.EXIT ACKRMN::JMP MKTBL ; R0 = ACK(R0,R1) ACK: MOV SP,R2 ; KEEP OLD STACK PTR MOV #ASTK,SP ; USE PRIVATE STACK JSR PC,1$ MOV R2,SP ; RESTORE STACK PTR RTS PC 1$: TST R0 BNE 2$ INC R1 MOV R1,R0 RTS PC 2$: TST R1 BNE 3$ DEC R0 INC R1 BR 1$ 3$: MOV R0,-(SP) DEC R1 JSR PC,1$ MOV R0,R1 MOV (SP)+,R0 DEC R0 BR 1$ .BLKB 4000 ; BIG STACK ASTK = . ; PRINT TABLE MMAX = 4 NMAX = 7 MKTBL: CLR R3 1$: CLR R4 2$: MOV R3,R0 MOV R4,R1 JSR PC,ACK JSR PC,PR0 INC R4 CMP R4,#NMAX BLT 2$ MOV #15,R0 .TTYOUT MOV #12,R0 .TTYOUT INC R3 CMP R3,#MMAX BLT 1$ .EXIT ; 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$: .BYTE 11,0 .END ACKRMN