59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
.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
|