Created
May 6, 2017 10:19
-
-
Save abenkovskii/53ae64af9a0c2f632e0e2df9469c3e05 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
include io.asm | |
stack segment stack | |
dw 128 dup (?) | |
stack ends | |
tolower macro s, callback | |
tolower_setvar macro val | |
tolower_append macro c | |
tolower_setvar <val&&&c> | |
endm | |
tolower_call macro | |
callback <val> | |
endm | |
endm | |
tolower_setvar | |
irpc c, <s> | |
if 'A' le '&c' and '&c' le 'Z' | |
irpc l, abcdefghijklmnopqrstuvwxyz | |
if '&c' - 'A' eq '&l' - 'a' | |
tolower_append <l> | |
exitm | |
endif | |
endm | |
else | |
tolower_append <c> | |
endif | |
endm | |
tolower_call | |
endm | |
loosecompare macro s1, s2, onidn, ondif | |
loosecompare_1 macro ss1, ss2 | |
ifidn <ss1>, <ss2> | |
onidn | |
else | |
ondif | |
endif | |
endm | |
loosecompare_0 macro s | |
tolower <s2>, <loosecompare_1 <s>> | |
endm | |
tolower <s1>, loosecompare_0 | |
endm | |
code segment | |
assume ss:stack, cs:code | |
start: | |
loosecompare Ax ax <outch 'y'> <outch 'n'> | |
loosecompare Ax asdsfasfd <outch 'y'> <outch 'n'> | |
loosecompare ABC abc <outch 'y'> <outch 'n'> | |
loosecompare ABc aBC <outch 'y'> <outch 'n'> | |
loosecompare AbCd ABC <outch 'y'> <outch 'n'> | |
finish | |
code ends | |
end start |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment