29 lines
514 B
Tal
29 lines
514 B
Tal
@strcmp ( a* b* -- a-end* b-end* order nonzero if strings differ
|
|
OR a-end* b-end* 00 00 if strings match )
|
|
STH2
|
|
,&entry JMP
|
|
|
|
&loop ( a* a b / b* )
|
|
SUB ,&nomatch JCNk ( a* a-b nonzero / b* )
|
|
POP2 ( a* / b* )
|
|
INC2 INC2r
|
|
&entry ( a* / b* )
|
|
LDAk LDAkr STHr ( a* a b / b* )
|
|
ORAk ,&loop JCN
|
|
|
|
&nomatch ( a* a-b flag / b* )
|
|
STH2r SWP2 ( a* b* a-b flag )
|
|
JMP2r
|
|
|
|
@strlen ( string-ptr* -- length^ )
|
|
LIT2r 0000
|
|
,&entry JMP
|
|
|
|
&loop
|
|
INC2 INC2r
|
|
&entry
|
|
LDAk ,&loop JCN
|
|
POP2 STH2r
|
|
JMP2r
|
|
|