.TITLE ABC .MCALL .TTYOUT,.EXIT ABC:: JMP DEMO ; SEE IF R0 CAN BE MADE WITH THE BLOCKS BLOCKS: MOV #7$,R1 MOV #6$,R2 1$: MOVB (R1)+,(R2)+ ; INITIALIZE BLOCKS BNE 1$ BR 4$ 2$: BIC #40,R1 ; MAKE UPPERCASE MOV #6$,R2 3$: MOVB (R2)+,R3 ; GET BLOCK BEQ 5$ ; OUT OF BLOCKS: NO MATCH CMP R1,R3 ; MATCHING BLOCK? BNE 3$ ; NO: CHECK NEXT BLOCK DEC R2 ; FOUND BLOCK: CLEAR BLOCK BIC #1,R2 MOV #-1,(R2) 4$: MOVB (R0)+,R1 BNE 2$ RTS PC ; END OF STRING: RETURN WITH Z SET 5$: CCC ; FAIL: RETURN WITH Z CLEAR RTS PC 6$: .ASCIZ / / 7$: .ASCIZ /BOXKDQCPNAGTRETGQDFSJWHUVIANOBERFSLYPCZM/ DEMO: MOV #WORDS,R4 1$: MOV (R4)+,R5 BEQ 4$ MOV R5,R1 JSR PC,5$ MOV R5,R0 JSR PC,BLOCKS BNE 2$ MOV #6$,R1 BR 3$ 2$: MOV #7$,R1 3$: JSR PC,5$ BR 1$ 4$: .EXIT 5$: MOVB (R1)+,R0 .TTYOUT BNE 5$ RTS PC 6$: .ASCIZ /: YES/<15><12> 7$: .ASCIZ /: NO/<15><12> .EVEN WORDS: .WORD 1$,2$,3$,4$,5$,6$,7$,0 1$: .ASCIZ /A/ 2$: .ASCIZ /BARK/ 3$: .ASCIZ /book/ 4$: .ASCIZ /TREAT/ 5$: .ASCIZ /common/ 6$: .ASCIZ /SqUaD/ 7$: .ASCIZ /cOnFuSe/ .END ABC