ABC problem: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add Miranda) |
Not a robot (talk | contribs) (Add MACRO-11) |
||
Line 5,923: | Line 5,923: | ||
CONFUSE True |
CONFUSE True |
||
</pre > |
</pre > |
||
=={{header|MACRO-11}}== |
|||
<syntaxhighlight lang="macro11"> .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</syntaxhighlight> |
|||
{{out}} |
|||
<pre>A: YES |
|||
BARK: YES |
|||
book: NO |
|||
TREAT: YES |
|||
common: NO |
|||
SqUaD: YES |
|||
cOnFuSe: YES</pre> |
|||
=={{header|Maple}}== |
=={{header|Maple}}== |