Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
ifndef _INC_TCHAR
define _INC_TCHAR
.pragma list(push, 0)
ifndef __LIBC_INC
include libc.inc
endif
_ftcscat equ <_tcscat>
_ftcschr equ <_tcschr>
_ftcscpy equ <_tcscpy>
_ftcscspn equ <_tcscspn>
_ftcslen equ <_tcslen>
_ftcsncat equ <_tcsncat>
_ftcsncpy equ <_tcsncpy>
_ftcspbrk equ <_tcspbrk>
_ftcsrchr equ <_tcsrchr>
_ftcsspn equ <_tcsspn>
_ftcsstr equ <_tcsstr>
_ftcstok equ <_tcstok>
_ftcsdup equ <_tcsdup>
_ftcsnset equ <_tcsnset>
_ftcsrev equ <_tcsrev>
_ftcsset equ <_tcsset>
_ftcscmp equ <_tcscmp>
_ftcsicmp equ <_tcsicmp>
_ftcsnccmp equ <_tcsnccmp>
_ftcsncmp equ <_tcsncmp>
_ftcsncicmp equ <_tcsncicmp>
_ftcsnicmp equ <_tcsnicmp>
_ftcscoll equ <_tcscoll>
_ftcsicoll equ <_tcsicoll>
_ftcsnccoll equ <_tcsnccoll>
_ftcsncoll equ <_tcsncoll>
_ftcsncicoll equ <_tcsncicoll>
_ftcsnicoll equ <_tcsnicoll>
_ftcsclen equ <_tcsclen>
_ftcsnccat equ <_tcsnccat>
_ftcsnccpy equ <_tcsnccpy>
_ftcsncset equ <_tcsncset>
_ftcsdec equ <_tcsdec>
_ftcsinc equ <_tcsinc>
_ftcsnbcnt equ <_tcsnbcnt>
_ftcsnccnt equ <_tcsnccnt>
_ftcsnextc equ <_tcsnextc>
_ftcsninc equ <_tcsninc>
_ftcsspnp equ <_tcsspnp>
_ftcslwr equ <_tcslwr>
_ftcsupr equ <_tcsupr>
_ftclen equ <_tclen>
_ftccpy equ <_tccpy>
_ftccmp equ <_tccmp>
ifdef _UNICODE
include wchar.inc
ifndef _WCTYPE_T_DEFINED
define _WCTYPE_T_DEFINED
wint_t typedef wchar_t
wctype_t typedef wchar_t
endif
ifndef __TCHAR_DEFINED
define __TCHAR_DEFINED
_TCHAR typedef wchar_t
_TSCHAR typedef wchar_t
_TUCHAR typedef wchar_t
_TXCHAR typedef wchar_t
_TINT typedef wint_t
endif
ifndef _TCHAR_DEFINED
define _TCHAR_DEFINED
if NOT __STDC__
TCHAR typedef wchar_t
endif
endif
_TEOF equ WEOF
if 0
__T macro x
% exitm<L&x&>
endm
endif
_tmain equ <wmain>
_tWinMain equ <wWinMain>
_tenviron equ <_wenviron>
__targv equ <__wargv>
_tgetmainargs equ <__wgetmainargs>
;; Formatted i/o
_tprintf equ <wprintf>
_tprintf_l equ <_wprintf_l>
_tprintf_s equ <wprintf_s>
_tprintf_s_l equ <_wprintf_s_l>
_tprintf_p equ <_wprintf_p>
_tprintf_p_l equ <_wprintf_p_l>
_tcprintf equ <_cwprintf>
_tcprintf_l equ <_cwprintf_l>
_tcprintf_s equ <_cwprintf_s>
_tcprintf_s_l equ <_cwprintf_s_l>
_tcprintf_p equ <_cwprintf_p>
_tcprintf_p_l equ <_cwprintf_p_l>
_vtcprintf equ <_vcwprintf>
_vtcprintf_l equ <_vcwprintf_l>
_vtcprintf_s equ <_vcwprintf_s>
_vtcprintf_s_l equ <_vcwprintf_s_l>
_vtcprintf_p equ <_vcwprintf_p>
_vtcprintf_p_l equ <_vcwprintf_p_l>
_ftprintf equ <fwprintf>
_ftprintf_l equ <_fwprintf_l>
_ftprintf_s equ <fwprintf_s>
_ftprintf_s_l equ <_fwprintf_s_l>
_ftprintf_p equ <_fwprintf_p>
_ftprintf_p_l equ <_fwprintf_p_l>
_stprintf equ <_swprintf>
_stprintf_l equ <__swprintf_l>
_stprintf_s equ <swprintf_s>
_stprintf_s_l equ <_swprintf_s_l>
_stprintf_p equ <_swprintf_p>
_stprintf_p_l equ <_swprintf_p_l>
_sctprintf equ <_scwprintf>
_sctprintf_l equ <_scwprintf_l>
_sctprintf_p equ <_scwprintf_p>
_sctprintf_p_l equ <_scwprintf_p_l>
_sntprintf equ <_snwprintf>
_sntprintf_l equ <_snwprintf_l>
_sntprintf_s equ <_snwprintf_s>
_sntprintf_s_l equ <_snwprintf_s_l>
_vtprintf equ <vwprintf>
_vtprintf_l equ <_vwprintf_l>
_vtprintf_s equ <vwprintf_s>
_vtprintf_s_l equ <_vwprintf_s_l>
_vtprintf_p equ <_vwprintf_p>
_vtprintf_p_l equ <_vwprintf_p_l>
_vftprintf equ <vfwprintf>
_vftprintf_l equ <_vfwprintf_l>
_vftprintf_s equ <vfwprintf_s>
_vftprintf_s_l equ <_vfwprintf_s_l>
_vftprintf_p equ <_vfwprintf_p>
_vftprintf_p_l equ <_vfwprintf_p_l>
_vstprintf equ <vswprintf>
_vstprintf_l equ <_vswprintf_l>
_vstprintf_s equ <vswprintf_s>
_vstprintf_s_l equ <_vswprintf_s_l>
_vstprintf_p equ <_vswprintf_p>
_vstprintf_p_l equ <_vswprintf_p_l>
_vsctprintf equ <_vscwprintf>
_vsctprintf_l equ <_vscwprintf_l>
_vsctprintf_p equ <_vscwprintf_p>
_vsctprintf_p_l equ <_vscwprintf_p_l>
_vsntprintf equ <_vsnwprintf>
_vsntprintf_l equ <_vsnwprintf_l>
_vsntprintf_s equ <_vsnwprintf_s>
_vsntprintf_s_l equ <_vsnwprintf_s_l>
_tscanf equ <wscanf>
_tscanf_l equ <_wscanf_l>
_tscanf_s equ <wscanf_s>
_tscanf_s_l equ <_wscanf_s_l>
_tcscanf equ <_cwscanf>
_tcscanf_l equ <_cwscanf_l>
_tcscanf_s equ <_cwscanf_s>
_tcscanf_s_l equ <_cwscanf_s_l>
_ftscanf equ <fwscanf>
_ftscanf_l equ <_fwscanf_l>
_ftscanf_s equ <fwscanf_s>
_ftscanf_s_l equ <_fwscanf_s_l>
_stscanf equ <swscanf>
_stscanf_l equ <_swscanf_l>
_stscanf_s equ <swscanf_s>
_stscanf_s_l equ <_swscanf_s_l>
_sntscanf equ <_snwscanf>
_sntscanf_l equ <_snwscanf_l>
_sntscanf_s equ <_snwscanf_s>
_sntscanf_s_l equ <_snwscanf_s_l>
_vtscanf equ <vwscanf>
_vtscanf_s equ <vwscanf_s>
_vftscanf equ <vfwscanf>
_vftscanf_s equ <vfwscanf_s>
_vstscanf equ <vswscanf>
_vstscanf_s equ <vswscanf_s>
_tprintf equ <wprintf>
_ftprintf equ <fwprintf>
_stprintf equ <swprintf>
_sntprintf equ <_snwprintf>
_vtprintf equ <vwprintf>
_vftprintf equ <vfwprintf>
_vstprintf equ <vswprintf>
_vsntprintf equ <_vsnwprintf>
_tscanf equ <wscanf>
_ftscanf equ <fwscanf>
_stscanf equ <swscanf>
;; Unformatted i/o
_fgettc equ <fgetwc>
_fgettc_nolock equ <_fgetwc_nolock>
_fgettchar equ <_fgetwchar>
_fgetts equ <fgetws>
_fputtc equ <fputwc>
_fputtc_nolock equ <_fputwc_nolock>
_fputtchar equ <_fputwchar>
_fputts equ <fputws>
_cputts equ <_cputws>
_cgetts equ <_cgetws>
_cgetts_s equ <_cgetws_s>
_gettc equ <getwc>
_gettc_nolock equ <_getwc_nolock>
_gettch equ <_getwch>
_gettch_nolock equ <_getwch_nolock>
_gettche equ <_getwche>
_gettche_nolock equ <_getwche_nolock>
_gettchar equ <getwchar>
_gettchar_nolock equ <_getwchar_nolock>
_getts equ <_getws>
_getts_s equ <_getws_s>
_puttc equ <putwc>
_puttc_nolock equ <_putwc_nolock>
_puttchar equ <putwchar>
_puttchar_nolock equ <_putwchar_nolock>
_puttch equ <_putwch>
_puttch_nolock equ <_putwch_nolock>
_putts equ <_putws>
_ungettc equ <ungetwc>
_ungettc_nolock equ <_ungetwc_nolock>
_ungettch equ <_ungetwch>
_ungettch_nolock equ <_ungetwch_nolock>
;; String conversion functions
_tcstod equ <wcstod>
_tcstof equ <wcstof>
_tcstol equ <wcstol>
_tcstold equ <wcstold>
_tcstoll equ <wcstoll>
_tcstoul equ <wcstoul>
_tcstoull equ <wcstoull>
_tcstoimax equ <wcstoimax>
_tcstoumax equ <wcstoumax>
_tcstoi64 equ <_wcstoi64>
_tcstoui64 equ <_wcstoui64>
_ttof equ <_wtof>
_tstof equ <_wtof>
_tstol equ <_wtol>
_tstoll equ <_wtoll>
_tstoi equ <_wtoi>
_tstoi64 equ <_wtoi64>
_tcstod_l equ <_wcstod_l>
_tcstof_l equ <_wcstof_l>
_tcstol_l equ <_wcstol_l>
_tcstold_l equ <_wcstold_l>
_tcstoll_l equ <_wcstoll_l>
_tcstoul_l equ <_wcstoul_l>
_tcstoull_l equ <_wcstoull_l>
_tcstoi64_l equ <_wcstoi64_l>
_tcstoui64_l equ <_wcstoui64_l>
_tcstoimax_l equ <_wcstoimax_l>
_tcstoumax_l equ <_wcstoumax_l>
_tstof_l equ <_wtof_l>
_tstol_l equ <_wtol_l>
_tstoll_l equ <_wtoll_l>
_tstoi_l equ <_wtoi_l>
_tstoi64_l equ <_wtoi64_l>
_itot_s equ <_itow_s>
_ltot_s equ <_ltow_s>
_ultot_s equ <_ultow_s>
_itot equ <_itow>
_ltot equ <_ltow>
_ultot equ <_ultow>
_ttoi equ <_wtoi>
_ttol equ <_wtol>
_ttoi64 equ <_wtoi64>
_i64tot_s equ <_i64tow_s>
_ui64tot_s equ <_ui64tow_s>
_i64tot equ <_i64tow>
_ui64tot equ <_ui64tow>
;; String functions
_tcscat equ <wcscat>
_tcscat_s equ <wcscat_s>
_tcschr equ <wcschr>
_tcscpy equ <wcscpy>
_tcscpy_s equ <wcscpy_s>
_tcscspn equ <wcscspn>
_tcslen equ <wcslen>
_tcsncat equ <wcsncat>
_tcsncat_s equ <wcsncat_s>
_tcsncat_l equ <_wcsncat_l>
_tcsncat_s_l equ <_wcsncat_s_l>
_tcsncpy equ <wcsncpy>
_tcsncpy_s equ <wcsncpy_s>
_tcspbrk equ <wcspbrk>
_tcsrchr equ <wcsrchr>
_tcsspn equ <wcsspn>
_tcsstr equ <wcsstr>
_tcstok equ <wcstok>
_tcstok_s equ <wcstok_s>
_tcstok_l equ <_wcstok_l>
_tcstok_s_l equ <_wcstok_s_l>
_tcserror equ <_wcserror>
_tcserror_s equ <_wcserror_s>
__tcserror equ <__wcserror>
__tcserror_s equ <__wcserror_s>
_tcsdup equ <_wcsdup>
_tcsnset equ <_wcsnset>
_tcsrev equ <_wcsrev>
_tcsset equ <_wcsset>
_tcsdup equ <_wcsdup>
_tcsnset equ <_wcsnset>
_tcsnset_s equ <_wcsnset_s>
_tcsnset_l equ <_wcsnset_l>
_tcsnset_s_l equ <_wcsnset_s_l>
_tcsrev equ <_wcsrev>
_tcsset equ <_wcsset>
_tcsset_s equ <_wcsset_s>
_tcsset_l equ <_wcsset_l>
_tcsset_s_l equ <_wcsset_s_l>
_tcscmp equ <wcscmp>
_tcsicmp equ <_wcsicmp>
_tcsicmp_l equ <_wcsicmp_l>
_tcsnccmp equ <wcsncmp>
_tcsncmp equ <wcsncmp>
_tcsncicmp equ <_wcsnicmp>
_tcsncicmp_l equ <_wcsnicmp_l>
_tcsnicmp equ <_wcsnicmp>
_tcsnicmp_l equ <_wcsnicmp_l>
_tcscoll equ <wcscoll>
_tcscoll_l equ <_wcscoll_l>
_tcsicoll equ <_wcsicoll>
_tcsicoll_l equ <_wcsicoll_l>
_tcsnccoll equ <_wcsncoll>
_tcsnccoll_l equ <_wcsncoll_l>
_tcsncoll equ <_wcsncoll>
_tcsncoll_l equ <_wcsncoll_l>
_tcsncicoll equ <_wcsnicoll>
_tcsncicoll_l equ <_wcsnicoll_l>
_tcsnicoll equ <_wcsnicoll>
_tcsnicoll_l equ <_wcsnicoll_l>
ifdef _DEBUG
_tcsdup_dbg equ <_wcsdup_dbg>
endif
;; Execute functions
_texecl equ <_wexecl>
_texecle equ <_wexecle>
_texeclp equ <_wexeclp>
_texeclpe equ <_wexeclpe>
_texecv equ <_wexecv>
_texecve equ <_wexecve>
_texecvp equ <_wexecvp>
_texecvpe equ <_wexecvpe>
_tspawnl equ <_wspawnl>
_tspawnle equ <_wspawnle>
_tspawnlp equ <_wspawnlp>
_tspawnlpe equ <_wspawnlpe>
_tspawnv equ <_wspawnv>
_tspawnve equ <_wspawnve>
_tspawnvp equ <_wspawnvp>
_tspawnvp equ <_wspawnvp>
_tspawnvpe equ <_wspawnvpe>
_tsystem equ <_wsystem>
;; Time functions
_tasctime equ <_wasctime>
_tctime equ <_wctime>
_tctime32 equ <_wctime32>
_tctime64 equ <_wctime64>
_tstrdate equ <_wstrdate>
_tstrtime equ <_wstrtime>
_tutime equ <_wutime>
_tutime32 equ <_wutime32>
_tutime64 equ <_wutime64>
_tcsftime equ <wcsftime>
_tcsftime_l equ <_wcsftime_l>
_tasctime_s equ <_wasctime_s>
_tctime_s equ <_wctime_s>
_tctime32_s equ <_wctime32_s>
_tctime64_s equ <_wctime64_s>
_tstrdate_s equ <_wstrdate_s>
_tstrtime_s equ <_wstrtime_s>
;; Directory functions
_tchdir equ <_wchdir>
_tgetcwd equ <_wgetcwd>
_tgetdcwd equ <_wgetdcwd>
_tgetdcwd_nolock equ <_wgetdcwd_nolock>
_tmkdir equ <_wmkdir>
_trmdir equ <_wrmdir>
ifdef _DEBUG
_tgetcwd_dbg equ <_wgetcwd_dbg>
_tgetdcwd_dbg equ <_wgetdcwd_dbg>
_tgetdcwd_lk_dbg equ <_wgetdcwd_lk_dbg>
endif
;; Environment/Path functions
_tfullpath equ <_wfullpath>
_tgetenv equ <_wgetenv>
_tgetenv_s equ <_wgetenv_s>
_tdupenv_s equ <_wdupenv_s>
_tmakepath equ <_wmakepath>
_tmakepath_s equ <_wmakepath_s>
_tpgmptr equ <_wpgmptr>
_get_tpgmptr equ <_get_wpgmptr>
_tputenv equ <_wputenv>
_tputenv_s equ <_wputenv_s>
_tsearchenv equ <_wsearchenv>
_tsearchenv_s equ <_wsearchenv_s>
_tsplitpath equ <_wsplitpath>
_tsplitpath_s equ <_wsplitpath_s>
ifdef _DEBUG
_tfullpath_dbg equ <_wfullpath_dbg>
_tdupenv_s_dbg equ <_wdupenv_s_dbg>
endif
;; Stdio functions
_tfdopen equ <_wfdopen>
_tfsopen equ <_wfsopen>
_tfopen equ <_wfopen>
_tfopen_s equ <_wfopen_s>
_tfreopen equ <_wfreopen>
_tfreopen_s equ <_wfreopen_s>
_tperror equ <_wperror>
_tpopen equ <_wpopen>
_ttempnam equ <_wtempnam>
_ttmpnam equ <_wtmpnam>
_ttmpnam_s equ <_wtmpnam_s>
ifdef _DEBUG
_ttempnam_dbg equ <_wtempnam_dbg>
endif
;; Io functions
_taccess equ <_waccess>
_taccess_s equ <_waccess_s>
_tchmod equ <_wchmod>
_tcreat equ <_wcreat>
_tfindfirst equ <_wfindfirst>
_tfindfirst32 equ <_wfindfirst32>
_tfindfirst64 equ <_wfindfirst64>
_tfindfirsti64 equ <_wfindfirsti64>
_tfindfirst32i64 equ <_wfindfirst32i64>
_tfindfirst64i32 equ <_wfindfirst64i32>
_tfindnext equ <_wfindnext>
_tfindnext32 equ <_wfindnext32>
_tfindnext64 equ <_wfindnext64>
_tfindnexti64 equ <_wfindnexti64>
_tfindnext32i64 equ <_wfindnext32i64>
_tfindnext64i32 equ <_wfindnext64i32>
_tmktemp equ <_wmktemp>
_tmktemp_s equ <_wmktemp_s>
_topen equ <_wopen>
_tremove equ <_wremove>
_trename equ <_wrename>
_tsopen equ <_wsopen>
_tsopen_s equ <_wsopen_s>
_tunlink equ <_wunlink>
_tfinddata_t equ <_wfinddata_t>
_tfinddata32_t equ <_wfinddata32_t>
_tfinddata64_t equ <_wfinddata64_t>
_tfinddatai64_t equ <_wfinddatai64_t>
_tfinddata32i64_t equ <_wfinddata32i64_t>
_tfinddata64i32_t equ <_wfinddata64i32_t>
;; Stat functions
_tstat equ <_wstat>
_tstat32 equ <_wstat32>
_tstat32i64 equ <_wstat32i64>
_tstat64 equ <_wstat64>
_tstat64i32 equ <_wstat64i32>
_tstati64 equ <_wstati64>
;; Setlocale functions
_tsetlocale equ <_wsetlocale>
;; Redundant "logical-character" mappings
_tcsclen equ <wcslen>
_tcscnlen equ <wcsnlen>
_tcsclen_l macro _String, _Locale
exitm<wcslen(_String)>
endm
_tcscnlen_l macro _String, _Max_count, _Locale
exitm<wcsnlen((_String), (_Max_count))>
endm
_tcsnccat equ <wcsncat>
_tcsnccat_s equ <wcsncat_s>
_tcsnccat_l equ <_wcsncat_l>
_tcsnccat_s_l equ <_wcsncat_s_l>
_tcsnccpy equ <wcsncpy>
_tcsnccpy_s equ <wcsncpy_s>
_tcsnccpy_l equ <_wcsncpy_l>
_tcsnccpy_s_l equ <_wcsncpy_s_l>
_tcsncset equ <_wcsnset>
_tcsncset_s equ <_wcsnset_s>
_tcsncset_l equ <_wcsnset_l>
_tcsncset_s_l equ <_wcsnset_s_l>
_tcsdec equ <_wcsdec>
_tcsinc equ <_wcsinc>
_tcsnbcnt equ <_wcsncnt>
_tcsnccnt equ <_wcsncnt>
_tcsnextc equ <_wcsnextc>
_tcsninc equ <_wcsninc>
_tcsspnp equ <_wcsspnp>
_tcslwr equ <_wcslwr>
_tcslwr_l equ <_wcslwr_l>
_tcslwr_s equ <_wcslwr_s>
_tcslwr_s_l equ <_wcslwr_s_l>
_tcsupr equ <_wcsupr>
_tcsupr_l equ <_wcsupr_l>
_tcsupr_s equ <_wcsupr_s>
_tcsupr_s_l equ <_wcsupr_s_l>
_tcsxfrm equ <wcsxfrm>
_tcsxfrm_l equ <_wcsxfrm_l>
if (__STDC__ OR defined(_NO_INLINING)) AND NOT defined(_M_M68K)
_tclen macro _pc
exitm<1>
endm
_tccpy macro _pc1,_cpc2
movzx ax,[_cpc2]
mov [_pc1],ax
exitm<eax>
endm
_tccmp macro _cpc1,_cpc2
mov ax,[_cpc1]
sub ax,[_cpc2]
movsx eax,ax
exitm<eax>
endm
else
_tclen proto WINAPI :ptr WORD
_tccpy proto WINAPI :ptr WORD, :ptr WORD
_tccmp proto WINAPI :ptr WORD, :ptr WORD
endif
;; ctype functions
_istalnum equ <iswalnum>
_istalnum_l equ <_iswalnum_l>
_istalpha equ <iswalpha>
_istalpha_l equ <_iswalpha_l>
_istascii equ <iswascii>
_istcntrl equ <iswcntrl>
_istcntrl_l equ <_iswcntrl_l>
_istdigit equ <iswdigit>
_istdigit_l equ <_iswdigit_l>
_istgraph equ <iswgraph>
_istgraph_l equ <_iswgraph_l>
_istlower equ <iswlower>
_istlower_l equ <_iswlower_l>
_istprint equ <iswprint>
_istprint_l equ <_iswprint_l>
_istpunct equ <iswpunct>
_istpunct_l equ <_iswpunct_l>
_istblank equ <iswblank>
_istblank_l equ <_iswblank_l>
_istspace equ <iswspace>
_istspace_l equ <_iswspace_l>
_istupper equ <iswupper>
_istupper_l equ <_iswupper_l>
_istxdigit equ <iswxdigit>
_istxdigit_l equ <_iswxdigit_l>
_totupper equ <towupper>
_totupper_l equ <_towupper_l>
_totlower equ <towlower>
_totlower_l equ <_towlower_l>
_istlegal macro _c
exitm<1>
endm
_istlead macro _c
exitm<0>
endm
_istleadbyte macro _c
exitm<0>
endm
_istleadbyte_l macro _c, _L
exitm<0>
endm
if (__STDC__ OR defined(_NO_INLINING)) AND NOT defined(_M_M68K)
_wcsdec macro _cpc1,_cpc2
mov rax,_cpc1
.if rax >= _cpc2
xor rax,rax
.else
lea rax,[rdx-2]
.endif
exitm<rax>
endm
_wcsinc macro _pc
mov rax,_pc
add rax,2
exitm<rax>
endm
_wcsnextc macro _cpc
mov rax,_cpc
movzx eax,word ptr [rax]
exitm<eax>
endm
_wcsninc macro _pc,_sz
mov rax,_pc
add rax,_sz
add rax,_sz
exitm<rax>
endm
_wcsncnt macro _cpc,_sz
.if wcslen(_cpc) > _sz
mov rax,_sz
.endif
exitm<rax>
endm
_wcsspnp macro _cpc1,_cpc2
wcsspn(_cpc1,_cpc2)
add rax,_cpc1
.if word ptr [rax] == 0
xor rax,rax
.endif
exitm<rax>
endm
else
_wcsdec proto :ptr wchar_t, :ptr wchar_t
_wcsinc proto :ptr wchar_t
_wcsnextc proto :ptr wchar_t
_wcsninc proto :ptr wchar_t, :size_t
_wcsncnt proto :ptr wchar_t, :size_t
_wcsspnp proto :ptr wchar_t, :ptr wchar_t
endif
else
include string.inc
_TEOF equ EOF
;__T macro x
_tmain equ <main>
_tWinMain equ <WinMain>
ifdef _POSIX_
_tenviron equ <environ>
else
_tenviron equ <_environ>
endif
__targv equ <__argv>
_tgetmainargs equ <__getmainargs>
;; Formatted i/o
_tprintf equ <printf>
_tprintf_l equ <_printf_l>
_tprintf_s equ <printf_s>
_tprintf_s_l equ <_printf_s_l>
_tprintf_p equ <_printf_p>
_tprintf_p_l equ <_printf_p_l>
_tcprintf equ <_cprintf>
_tcprintf_l equ <_cprintf_l>
_tcprintf_s equ <_cprintf_s>
_tcprintf_s_l equ <_cprintf_s_l>
_tcprintf_p equ <_cprintf_p>
_tcprintf_p_l equ <_cprintf_p_l>
_vtcprintf equ <_vcprintf>
_vtcprintf_l equ <_vcprintf_l>
_vtcprintf_s equ <_vcprintf_s>
_vtcprintf_s_l equ <_vcprintf_s_l>
_vtcprintf_p equ <_vcprintf_p>
_vtcprintf_p_l equ <_vcprintf_p_l>
_ftprintf equ <fprintf>
_ftprintf_l equ <_fprintf_l>
_ftprintf_s equ <fprintf_s>
_ftprintf_s_l equ <_fprintf_s_l>
_ftprintf_p equ <_fprintf_p>
_ftprintf_p_l equ <_fprintf_p_l>
_stprintf equ <sprintf>
_stprintf_l equ <_sprintf_l>
_stprintf_s equ <sprintf_s>
_stprintf_s_l equ <_sprintf_s_l>
_stprintf_p equ <_sprintf_p>
_stprintf_p_l equ <_sprintf_p_l>
_sctprintf equ <_scprintf>
_sctprintf_l equ <_scprintf_l>
_sctprintf_p equ <_scprintf_p>
_sctprintf_p_l equ <_scprintf_p_l>
_sntprintf equ <_snprintf>
_sntprintf_l equ <_snprintf_l>
_sntprintf_s equ <_snprintf_s>
_sntprintf_s_l equ <_snprintf_s_l>
_vtprintf equ <vprintf>
_vtprintf_l equ <_vprintf_l>
_vtprintf_s equ <vprintf_s>
_vtprintf_s_l equ <_vprintf_s_l>
_vtprintf_p equ <_vprintf_p>
_vtprintf_p_l equ <_vprintf_p_l>
_vftprintf equ <vfprintf>
_vftprintf_l equ <_vfprintf_l>
_vftprintf_s equ <vfprintf_s>
_vftprintf_s_l equ <_vfprintf_s_l>
_vftprintf_p equ <_vfprintf_p>
_vftprintf_p_l equ <_vfprintf_p_l>
_vstprintf equ <vsprintf>
_vstprintf_l equ <_vsprintf_l>
_vstprintf_s equ <vsprintf_s>
_vstprintf_s_l equ <_vsprintf_s_l>
_vstprintf_p equ <_vsprintf_p>
_vstprintf_p_l equ <_vsprintf_p_l>
_vsctprintf equ <_vscprintf>
_vsctprintf_l equ <_vscprintf_l>
_vsctprintf_p equ <_vscprintf_p>
_vsctprintf_p_l equ <_vscprintf_p_l>
_vsntprintf equ <_vsnprintf>
_vsntprintf_l equ <_vsnprintf_l>
_vsntprintf_s equ <_vsnprintf_s>
_vsntprintf_s_l equ <_vsnprintf_s_l>
_tscanf equ <scanf>
_tscanf_l equ <_scanf_l>
_tscanf_s equ <scanf_s>
_tscanf_s_l equ <_scanf_s_l>
_tcscanf equ <_cscanf>
_tcscanf_l equ <_cscanf_l>
_tcscanf_s equ <_cscanf_s>
_tcscanf_s_l equ <_cscanf_s_l>
_ftscanf equ <fscanf>
_ftscanf_l equ <_fscanf_l>
_ftscanf_s equ <fscanf_s>
_ftscanf_s_l equ <_fscanf_s_l>
_stscanf equ <sscanf>
_stscanf_l equ <_sscanf_l>
_stscanf_s equ <sscanf_s>
_stscanf_s_l equ <_sscanf_s_l>
_sntscanf equ <_snscanf>
_sntscanf_l equ <_snscanf_l>
_sntscanf_s equ <_snscanf_s>
_sntscanf_s_l equ <_snscanf_s_l>
_vtscanf equ <vscanf>
_vtscanf_s equ <vscanf_s>
_vftscanf equ <vfscanf>
_vftscanf_s equ <vfscanf_s>
_vstscanf equ <vsscanf>
_vstscanf_s equ <vsscanf_s>
;; Unformatted i/o
_fgettc equ <fgetc>
_fgettc_nolock equ <_fgetc_nolock>
_fgettchar equ <_fgetchar>
_fgetts equ <fgets>
_fputtc equ <fputc>
_fputtc_nolock equ <_fputc_nolock>
_fputtchar equ <_fputchar>
_fputts equ <fputs>
_cputts equ <_cputs>
_gettc equ <getc>
_gettc_nolock equ <_getc_nolock>
_gettch equ <_getch>
_gettch_nolock equ <_getch_nolock>
_gettche equ <_getche>
_gettche_nolock equ <_getche_nolock>
_gettchar equ <getchar>
_gettchar_nolock equ <_getchar_nolock>
_getts equ <gets>
_getts_s equ <gets_s>
_cgetts equ <_cgets>
_cgetts_s equ <_cgets_s>
_puttc equ <putc>
_puttc_nolock equ <_putc_nolock>
_puttchar equ <putchar>
_puttchar_nolock equ <_putchar_nolock>
_puttch equ <_putch>
_puttch_nolock equ <_putch_nolock>
_putts equ <puts>
_ungettc equ <ungetc>
_ungettc_nolock equ <_ungetc_nolock>
_ungettch equ <_ungetch>
_ungettch_nolock equ <_ungetch_nolock>
;; String conversion functions
_tcstod equ <strtod>
_tcstof equ <strtof>
_tcstol equ <strtol>
_tcstold equ <strtold>
_tcstoll equ <strtoll>
_tcstoul equ <strtoul>
_tcstoull equ <strtoull>
_tcstoimax equ <strtoimax>
_tcstoumax equ <strtoumax>
_ttof equ <atof>
_tstof equ <atof>
_tstol equ <atol>
_tstoll equ <atoll>
_tstoi equ <atoi>
_tstoi64 equ <_atoi64>
_tcstod_l equ <_strtod_l>
_tcstof_l equ <_strtof_l>
_tcstol_l equ <_strtol_l>
_tcstold_l equ <_strtold_l>
_tcstoll_l equ <_strtoll_l>
_tcstoul_l equ <_strtoul_l>
_tcstoull_l equ <_strtoull_l>
_tcstoimax_l equ <_strtoimax_l>
_tcstoumax_l equ <_strtoumax_l>
_tstof_l equ <_atof_l>
_tstol_l equ <_atol_l>
_tstoll_l equ <_atoll_l>
_tstoi_l equ <_atoi_l>
_tstoi64_l equ <_atoi64_l>
_itot_s equ <_itoa_s>
_ltot_s equ <_ltoa_s>
_ultot_s equ <_ultoa_s>
_itot equ <_itoa>
_ltot equ <_ltoa>
_ultot equ <_ultoa>
_ttoi equ <atoi>
_ttol equ <atol>
_ttoll equ <atoll>
_ttoi64 equ <_atoi64>
_tcstoi64 equ <_strtoi64>
_tcstoi64_l equ <_strtoi64_l>
_tcstoui64 equ <_strtoui64>
_tcstoui64_l equ <_strtoui64_l>
_i64tot_s equ <_i64toa_s>
_ui64tot_s equ <_ui64toa_s>
_i64tot equ <_i64toa>
_ui64tot equ <_ui64toa>
;; String functions
;; Note that _mbscat, _mbscpy and _mbsdup are functionally equivalent to
;; strcat, strcpy and strdup, respectively.
_tcscat equ <strcat>
_tcscat_s equ <strcat_s>
_tcscpy equ <strcpy>
_tcscpy_s equ <strcpy_s>
_tcsdup equ <_strdup>
_tcslen equ <strlen>
_tcsnlen equ <strnlen>
_tcsxfrm equ <strxfrm>
_tcsxfrm_l equ <_strxfrm_l>
_tcserror equ <strerror>
_tcserror_s equ <strerror_s>
__tcserror equ <_strerror>
__tcserror_s equ <_strerror_s>
ifdef _DEBUG
_tcsdup_dbg equ <_strdup_dbg>
endif
;; Execute functions
_texecl equ <_execl>
_texecle equ <_execle>
_texeclp equ <_execlp>
_texeclpe equ <_execlpe>
_texecv equ <_execv>
_texecve equ <_execve>
_texecvp equ <_execvp>
_texecvpe equ <_execvpe>
_tspawnl equ <_spawnl>
_tspawnle equ <_spawnle>
_tspawnlp equ <_spawnlp>
_tspawnlpe equ <_spawnlpe>
_tspawnv equ <_spawnv>
_tspawnve equ <_spawnve>
_tspawnvp equ <_spawnvp>
_tspawnvpe equ <_spawnvpe>
_tsystem equ <system>
;; Time functions
_tasctime equ <asctime>
_tctime equ <ctime>
_tctime32 equ <_ctime32>
_tctime64 equ <_ctime64>
_tstrdate equ <_strdate>
_tstrtime equ <_strtime>
_tutime equ <_utime>
_tutime32 equ <_utime32>
_tutime64 equ <_utime64>
_tcsftime equ <strftime>
_tcsftime_l equ <_strftime_l>
_tasctime_s equ <asctime_s>
_tctime_s equ <ctime_s>
_tctime32_s equ <_ctime32_s>
_tctime64_s equ <_ctime64_s>
_tstrdate_s equ <_strdate_s>
_tstrtime_s equ <_strtime_s>
;; Directory functions
_tchdir equ <_chdir>
_tgetcwd equ <_getcwd>
_tgetdcwd equ <_getdcwd>
_tgetdcwd_nolock equ <_getdcwd_nolock>
_tmkdir equ <_mkdir>
_trmdir equ <_rmdir>
ifdef _DEBUG
_tgetcwd_dbg equ <_getcwd_dbg>
_tgetdcwd_dbg equ <_getdcwd_dbg>
_tgetdcwd_lk_dbg equ <_getdcwd_lk_dbg>
endif
;; Environment/Path functions
_tfullpath equ <_fullpath>
_tgetenv equ <getenv>
_tgetenv_s equ <getenv_s>
_tdupenv_s equ <_dupenv_s>
_tmakepath equ <_makepath>
_tmakepath_s equ <_makepath_s>
_tpgmptr equ <_pgmptr>
_get_tpgmptr equ <_get_pgmptr>
_tputenv equ <_putenv>
_tputenv_s equ <_putenv_s>
_tsearchenv equ <_searchenv>
_tsearchenv_s equ <_searchenv_s>
_tsplitpath equ <_splitpath>
_tsplitpath_s equ <_splitpath_s>
ifdef _DEBUG
_tfullpath_dbg equ <_fullpath_dbg>
_tdupenv_s_dbg equ <_dupenv_s_dbg>
endif
;; Stdio functions
_tfdopen equ <_fdopen>
_tfsopen equ <_fsopen>
_tfopen equ <fopen>
_tfopen_s equ <fopen_s>
_tfreopen equ <freopen>
_tfreopen_s equ <freopen_s>
_tperror equ <perror>
_tpopen equ <_popen>
_ttempnam equ <_tempnam>
_ttmpnam equ <tmpnam>
_ttmpnam_s equ <tmpnam_s>
ifdef _DEBUG
_ttempnam_dbg equ <_tempnam_dbg>
endif
;; Io functions
_tchmod equ <_chmod>
_tcreat equ <_creat>
_tfindfirst equ <_findfirst>
_tfindfirst32 equ <_findfirst32>
_tfindfirst64 equ <_findfirst64>
_tfindfirsti64 equ <_findfirsti64>
_tfindfirst32i64 equ <_findfirst32i64>
_tfindfirst64i32 equ <_findfirst64i32>
_tfindnext equ <_findnext>
_tfindnext32 equ <_findnext32>
_tfindnext64 equ <_findnext64>
_tfindnexti64 equ <_findnexti64>
_tfindnext32i64 equ <_findnext32i64>
_tfindnext64i32 equ <_findnext64i32>
_tmktemp equ <_mktemp>
_tmktemp_s equ <_mktemp_s>
_topen equ <_open>
_taccess equ <_access>
_taccess_s equ <_access_s>
_tremove equ <remove>
_trename equ <rename>
_tsopen equ <_sopen>
_tsopen_s equ <_sopen_s>
_tunlink equ <_unlink>
_tfinddata_t equ <_finddata_t>
_tfinddata32_t equ <_finddata32_t>
_tfinddata64_t equ <__finddata64_t>
_tfinddatai64_t equ <_finddatai64_t>
_tfinddata32i64_t equ <_finddata32i64_t>
_tfinddata64i32_t equ <_finddata64i32_t>
;; ctype functions
_istascii equ <__isascii>
_istcntrl equ <iscntrl>
_istcntrl_l equ <_iscntrl_l>
_istxdigit equ <isxdigit>
_istxdigit_l equ <_isxdigit_l>
;; Stat functions
_tstat equ <_stat>
_tstat32 equ <_stat32>
_tstat32i64 equ <_stat32i64>
_tstat64 equ <_stat64>
_tstat64i32 equ <_stat64i32>
_tstati64 equ <_stati64>
;; Setlocale functions
_tsetlocale equ <setlocale>
ifdef _MBCS
include mbstring.inc
ifndef __TCHAR_DEFINED
_TCHAR typedef sbyte
_TSCHAR typedef sbyte
_TUCHAR typedef byte
_TXCHAR typedef byte
_TINT typedef dword
__TCHAR_DEFINED equ 1
endif
ifndef _TCHAR_DEFINED
if NOT __STDC__
TCHAR typedef sbyte
endif
_TCHAR_DEFINED equ 1
endif
ifdef _MB_MAP_DIRECT
_tcschr equ <_mbschr>
_tcscspn equ <_mbscspn>
_tcsncat equ <_mbsnbcat>
_tcsncpy equ <_mbsnbcpy>
_tcspbrk equ <_mbspbrk>
_tcsrchr equ <_mbsrchr>
_tcsspn equ <_mbsspn>
_tcsstr equ <_mbsstr>
_tcstok equ <_mbstok>
_tcsnset equ <_mbsnbset>
_tcsrev equ <_mbsrev>
_tcsset equ <_mbsset>
_tcscmp equ <_mbscmp>
_tcsicmp equ <_mbsicmp>
_tcsnccmp equ <_mbsncmp>
_tcsncmp equ <_mbsnbcmp>
_tcsncicmp equ <_mbsnicmp>
_tcsnicmp equ <_mbsnbicmp>
_tcscoll equ <_mbscoll>
_tcsicoll equ <_mbsicoll>
_tcsnccoll equ <_mbsncoll>
_tcsncoll equ <_mbsnbcoll>
_tcsncicoll equ <_mbsnicoll>
_tcsnicoll equ <_mbsnbicoll>
_tcsclen equ <_mbslen>
_tcsnccat equ <_mbsncat>
_tcsnccpy equ <_mbsncpy>
_tcsncset equ <_mbsnset>
_tcsdec equ <_mbsdec>
_tcsinc equ <_mbsinc>
_tcsnbcnt equ <_mbsnbcnt>
_tcsnccnt equ <_mbsnccnt>
_tcsnextc equ <_mbsnextc>
_tcsninc equ <_mbsninc>
_tcsspnp equ <_mbsspnp>
_tcslwr equ <_mbslwr>
_tcsupr equ <_mbsupr>
_tclen equ <_mbclen>
_tccpy equ <_mbccpy>
_tccmp macro _cpuc1,_cpuc2
exitm<_tcsnccmp(_cpuc1,_cpuc2,1)>
endm
else
_PUC equ ptr byte
_CPUC equ ptr byte
_PC equ ptr sbyte
_CPC equ ptr sbyte
_UI equ dword
if (__STDC__ OR defined(_NO_INLINING)) AND NOT defined(_M_M68K)
_tcschr proto WINAPI :_CPC, :_UI
_tcscspn proto WINAPI :_CPC, :_CPC
_tcsncat proto WINAPI :_PC, :_CPC, :size_t
_tcsncpy proto WINAPI :_PC, :_CPC, :size_t
_tcspbrk proto WINAPI :_CPC, :_CPC
_tcsrchr proto WINAPI :_CPC, :_UI
_tcsspn proto WINAPI :_CPC, :_CPC
_tcsstr proto WINAPI :_CPC, :_CPC
_tcstok proto WINAPI :_PC, :_CPC
_tcsnset proto WINAPI :_PC, :_UI, :size_t
_tcsrev proto WINAPI :_PC
_tcsset proto WINAPI :_PC, :_UI
_tcscmp proto WINAPI :_CPC, :_CPC
_tcsicmp proto WINAPI :_CPC, :_CPC
_tcsnccmp proto WINAPI :_CPC, :_CPC, :size_t
_tcsncmp proto WINAPI :_CPC, :_CPC, :size_t
_tcsncicmp proto WINAPI :_CPC, :_CPC, :size_t
_tcsnicmp proto WINAPI :_CPC, :_CPC, :size_t
_tcscoll proto WINAPI :_CPC, :_CPC
_tcsicoll proto WINAPI :_CPC, :_CPC
_tcsnccoll proto WINAPI :_CPC, :_CPC, :size_t
_tcsncoll proto WINAPI :_CPC, :_CPC, :size_t
_tcsncicoll proto WINAPI :_CPC, :_CPC, :size_t
_tcsnicoll proto WINAPI :_CPC, :_CPC, :size_t
_tcsclen proto WINAPI :_CPC
_tcsnccat proto WINAPI :_PC, :_CPC, :size_t
_tcsnccpy proto WINAPI :_PC, :_CPC, :size_t
_tcsncset proto WINAPI :_PC, :_UI, :size_t
_tcsdec proto WINAPI :_CPC, :_CPC
_tcsinc proto WINAPI :_CPC
_tcsnbcnt proto WINAPI :_CPC, :size_t
_tcsnccnt proto WINAPI :_CPC, :size_t
_tcsninc proto WINAPI :_CPC, :size_t
_tcsspnp proto WINAPI :_CPC, :_CPC
_tcslwr proto WINAPI :_PC
_tcsupr proto WINAPI :_PC
_tclen proto WINAPI :_CPC
_tccpy proto WINAPI :_PC, :_CPC
_tcsnextc proto WINAPI :_CPC
else
_tcschr macro _s1,_c
exitm<_mbschr(_s1,_c)>
endm
_tcscspn macro _s1,_c
exitm<_mbscspn(_s1,_s2)>
endm
_tcsncat macro _s1,_s2,_n
exitm<_mbsnbcat(_s1,_s2,_n)>
endm
_tcsncpy macro _s1,_s2,_n
exitm<_mbsnbcpy(_s1,_s2,_n)>
endm
_tcspbrk macro _s1,_s2
exitm<_mbspbrk(_s1,_s2)>
endm
_tcsrchr macro _s1,_c
exitm<_mbsrchr(_s1,_c)>
endm
_tcsspn macro _s1,_s2
exitm<_mbsspn(_s1,_s2)>
endm
_tcsstr macro _s1,_s2
exitm<_mbsstr(_s1,_s2)>
endm
_tcstok macro _s1,_s2,_n
exitm<_mbstok(_s1,_s2)>
endm
_tcsnset macro _s1,_c,_n
exitm<_mbsnbset(_s1,_c,_n)>
endm
_tcsrev macro _s1
exitm<_mbsrev(_s1)>
endm
_tcsset macro _s1
exitm<_mbsset(_s1,_c)>
endm
_tcscmp macro _s1,_s2
exitm<_mbscmp(_s1,_s2)>
endm
_tcsicmp macro _s1,_s2
exitm<_mbsicmp(_s1,_s2)>
endm
_tcsnccmp macro _s1,_s2,_n
exitm<_mbsncmp(_s1,_s2,_n)>
endm
_tcsncmp macro _s1,_s2,_n
exitm<_mbsnbcmp(_s1,_s2,_n)>
endm
_tcsncicmp macro _s1,_s2,_n
exitm<_mbsnicmp(_s1,_s2,_n)>
endm
_tcsnicmp macro _s1,_s2,_n
exitm<_mbsnbicmp(_s1,_s2,_n)>
endm
_tcscoll macro _s1,_s2
exitm<_mbscoll(_s1,_s2)>
endm
_tcsicoll macro _s1,_s2
exitm<_mbsicoll(_s1,_s2)>
endm
_tcsnccoll macro _s1,_s2,_n
exitm<_mbsncoll(_s1,_s2,_n)>
endm
_tcsncoll macro _s1,_s2,_n
exitm<_mbsnbcoll(_s1,_s2,_n)>
endm
_tcsncicoll macro _s1,_s2,_n
exitm<_mbsnicoll(_s1,_s2,_n)>
endm
_tcsnicoll macro _s1,_s2,_n
exitm<_mbsnbicoll(_s1,_s2,_n)>
endm
_tcsclen macro _s1,_s2
exitm<_mbslen(_s1)>
endm
_tcsnccat macro _s1,_s2,_n
exitm<_mbsncat(_s1,_s2,_n)>
endm
_tcsnccpy macro _s1,_s2,_n
exitm<_mbsncpy(_s1,_s2,_n)>
endm
_tcsncset macro _s1,_c,_n
exitm<_mbsnset(_s1,_c,_n)>
endm
_tcsdec macro _s1,_s2
exitm<_mbsdec(_s1,_s2)>
endm
_tcsinc macro _s1
exitm<_mbsinc(_s1)>
endm
_tcsnbcnt macro _s1,_n
exitm<_mbsnbcnt(_s1,_n)>
endm
_tcsnccnt macro _s1,_n
exitm<_mbsnccnt(_s1,_n)>
endm
_tcsninc macro _s1,_n
exitm<_mbsninc(_s1,_n)>
endm
_tcsspnp macro _s1,_s2
exitm<_mbsspnp(_s1,_s2)>
endm
_tcslwr macro _s1
exitm<_mbslwr(_s1)>
endm
_tcsupr macro _s1
exitm<_mbsupr(_s1)>
endm
_tclen macro _s1
exitm<_mbclen(_s1)>
endm
_tccpy macro _s1,_s2
_mbccpy(_s1,_s2)
endm
_tcsnextc macro _s1
mov rax,_s1
movzx eax,byte ptr [rax]
.if _ismbblead(eax)
mov ah,[_s1]
add _s1,1
mov al,[_s1]
.endif
exitm<eax>
endm
endif
endif
_tccmp macro _cp1,_cp2
exitm<_tcsnccmp(_cp1,_cp2,1)>
endm
_istalnum equ <_ismbcalnum>
_istalpha equ <_ismbcalpha>
_istdigit equ <_ismbcdigit>
_istgraph equ <_ismbcgraph>
_istlegal equ <_ismbclegal>
_istlower equ <_ismbclower>
_istprint equ <_ismbcprint>
_istpunct equ <_ismbcpunct>
_istspace equ <_ismbcspace>
_istupper equ <_ismbcupper>
_totupper equ <_mbctoupper>
_totlower equ <_mbctolower>
_istlead equ <_ismbblead>
_istleadbyte equ <isleadbyte>
else
ifndef __TCHAR_DEFINED
define __TCHAR_DEFINED
_TCHAR typedef sbyte
_TSCHAR typedef sbyte
_TUCHAR typedef byte
_TXCHAR typedef sbyte
_TINT typedef sdword
endif
ifndef _TCHAR_DEFINED
define _TCHAR_DEFINED
if NOT __STDC__
TCHAR typedef sbyte
endif
endif
ifdef _MB_MAP_DIRECT
;; use mb functions directly - types must match
;; String functions
_tcschr equ <_mbschr>
_tcscspn equ <_mbscspn>
_tcsncat equ <_mbsnbcat>
_tcsncat_s equ <_mbsnbcat_s>
_tcsncat_l equ <_mbsnbcat_l>
_tcsncat_s_l equ <_mbsnbcat_s_l>
_tcsncpy equ <_mbsnbcpy>
_tcsncpy_s equ <_mbsnbcpy_s>
_tcsncpy_l equ <_mbsnbcpy_l>
_tcsncpy_s_l equ <_mbsnbcpy_s_l>
_tcspbrk equ <_mbspbrk>
_tcsrchr equ <_mbsrchr>
_tcsspn equ <_mbsspn>
_tcsstr equ <_mbsstr>
_tcstok equ <_mbstok>
_tcstok_s equ <_mbstok_s>
_tcstok_l equ <_mbstok_l>
_tcstok_s_l equ <_mbstok_s_l>
_tcsnset equ <_mbsnbset>
_tcsnset_l equ <_mbsnbset_l>
_tcsnset_s equ <_mbsnbset_s>
_tcsnset_s_l equ <_mbsnbset_s_l>
_tcsrev equ <_mbsrev>
_tcsset equ <_mbsset>
_tcsset_s equ <_mbsset_s>
_tcsset_l equ <_mbsset_l>
_tcsset_s_l equ <_mbsset_s_l>
_tcscmp equ <_mbscmp>
_tcsicmp equ <_mbsicmp>
_tcsicmp_l equ <_mbsicmp_l>
_tcsnccmp equ <_mbsncmp>
_tcsncmp equ <_mbsnbcmp>
_tcsncicmp equ <_mbsnicmp>
_tcsncicmp_l equ <_mbsnicmp_l>
_tcsnicmp equ <_mbsnbicmp>
_tcsnicmp_l equ <_mbsnbicmp_l>
_tcscoll equ <_mbscoll>
_tcscoll_l equ <_mbscoll_l>
_tcsicoll equ <_mbsicoll>
_tcsicoll_l equ <_mbsicoll_l>
_tcsnccoll equ <_mbsncoll>
_tcsnccoll_l equ <_mbsncoll_l>
_tcsncoll equ <_mbsnbcoll>
_tcsncoll_l equ <_mbsnbcoll_l>
_tcsncicoll equ <_mbsnicoll>
_tcsncicoll_l equ <_mbsnicoll_l>
_tcsnicoll equ <_mbsnbicoll>
_tcsnicoll_l equ <_mbsnbicoll_l>
;; "logical-character" mappings
_tcsclen equ <_mbslen>
_tcscnlen equ <_mbsnlen>
_tcsclen_l equ <_mbslen_l>
_tcscnlen_l equ <_mbsnlen_l>
_tcsnccat equ <_mbsncat>
_tcsnccat_s equ <_mbsncat_s>
_tcsnccat_l equ <_mbsncat_l>
_tcsnccat_s_l equ <_mbsncat_s_l>
_tcsnccpy equ <_mbsncpy>
_tcsnccpy_s equ <_mbsncpy_s>
_tcsnccpy_l equ <_mbsncpy_l>
_tcsnccpy_s_l equ <_mbsncpy_s_l>
_tcsncset equ <_mbsnset>
_tcsncset_s equ <_mbsnset_s>
_tcsncset_l equ <_mbsnset_l>
_tcsncset_s_l equ <_mbsnset_s_l>
;; MBCS-specific mappings
_tcsdec equ <_mbsdec>
_tcsinc equ <_mbsinc>
_tcsnbcnt equ <_mbsnbcnt>
_tcsnccnt equ <_mbsnccnt>
_tcsnextc equ <_mbsnextc>
_tcsninc equ <_mbsninc>
_tcsspnp equ <_mbsspnp>
_tcslwr equ <_mbslwr>
_tcslwr_l equ <_mbslwr_l>
_tcslwr_s equ <_mbslwr_s>
_tcslwr_s_l equ <_mbslwr_s_l>
_tcsupr equ <_mbsupr>
_tcsupr_l equ <_mbsupr_l>
_tcsupr_s equ <_mbsupr_s>
_tcsupr_s_l equ <_mbsupr_s_l>
_tclen equ <_mbclen>
_tccpy equ <_mbccpy>
_tccpy_l equ <_mbccpy_l>
_tccpy_s equ <_mbccpy_s>
_tccpy_s_l equ <_mbccpy_s_l>
else ;; _MB_MAP_DIRECT
;; String functions
_tcschr equ <strchr>
_tcscspn equ <strcspn>
_tcsncat equ <strncat>
_tcsncat_s equ <strncat_s>
_tcsncat_l equ <_strncat_l>
_tcsncat_s_l equ <_strncat_s_l>
_tcsncpy equ <strncpy>
_tcsncpy_s equ <strncpy_s>
_tcsncpy_l equ <_strncpy_l>
_tcsncpy_s_l equ <_strncpy_s_l>
_tcspbrk equ <strpbrk>
_tcsrchr equ <strrchr>
_tcsspn equ <strspn>
_tcsstr equ <strstr>
_tcstok equ <strtok>
_tcstok_s equ <strtok_s>
_tcstok_l equ <_strtok_l>
_tcstok_s_l equ <_strtok_s_l>
_tcsnset equ <_strnset>
_tcsnset_s equ <_strnset_s>
_tcsnset_l equ <_strnset_l>
_tcsnset_s_l equ <_strnset_s_l>
_tcsrev equ <_strrev>
_tcsset equ <_strset>
_tcsset_s equ <_strset_s>
_tcsset_l equ <_strset_l>
_tcsset_s_l equ <_strset_s_l>
_tcscmp equ <strcmp>
_tcsicmp equ <_stricmp>
_tcsicmp_l equ <_stricmp_l>
_tcsnccmp equ <strncmp>
_tcsncmp equ <strncmp>
_tcsncicmp equ <_strnicmp>
_tcsncicmp_l equ <_strnicmp_l>
_tcsnicmp equ <_strnicmp>
_tcsnicmp_l equ <_strnicmp_l>
_tcscoll equ <strcoll>
_tcscoll_l equ <_strcoll_l>
_tcsicoll equ <_stricoll>
_tcsicoll_l equ <_stricoll_l>
_tcsnccoll equ <_strncoll>
_tcsnccoll_l equ <_strncoll_l>
_tcsncoll equ <_strncoll>
_tcsncoll_l equ <_strncoll_l>
_tcsncicoll equ <_strnicoll>
_tcsncicoll_l equ <_strnicoll_l>
_tcsnicoll equ <_strnicoll>
_tcsnicoll_l equ <_strnicoll_l>
;; "logical-character" mappings
_tcsclen equ <strlen>
_tcscnlen equ <strnlen>
_tcsclen_l macro _String, _Locale
exitm<strlen(_String)>
endm
_tcscnlen_l macro _String, _Max_count, _Locale
exitm<strnlen((_String), (_Max_count))>
endm
_tcsnccat equ <strncat>
_tcsnccat_s equ <strncat_s>
_tcsnccat_l equ <_strncat_l>
_tcsnccat_s_l equ <_strncat_s_l>
_tcsnccpy equ <strncpy>
_tcsnccpy_s equ <strncpy_s>
_tcsnccpy_l equ <_strncpy_l>
_tcsnccpy_s_l equ <_strncpy_s_l>
_tcsncset equ <_strnset>
_tcsncset_s equ <_strnset_s>
_tcsncset_l equ <_strnset_l>
_tcsncset_s_l equ <_strnset_s_l>
;; MBCS-specific functions
_tcsdec equ <_strdec>
_tcsinc equ <_strinc>
_tcsnbcnt equ <_strncnt>
_tcsnccnt equ <_strncnt>
_tcsnextc equ <_strnextc>
_tcsninc equ <_strninc>
_tcsspnp equ <_strspnp>
_tcslwr equ <_strlwr>
_tcslwr_l equ <_strlwr_l>
_tcslwr_s equ <_strlwr_s>
_tcslwr_s_l equ <_strlwr_s_l>
_tcsupr equ <_strupr>
_tcsupr_l equ <_strupr_l>
_tcsupr_s equ <_strupr_s>
_tcsupr_s_l equ <_strupr_s_l>
_tcsxfrm equ <strxfrm>
_tcsxfrm_l equ <_strxfrm_l>
_istlead macro _c
exitm<(0)>
endm
_istleadbyte macro _c
exitm<(0)>
endm
_istleadbyte_l macro _c
exitm<(0)>
endm
if (__STDC__ OR defined(_NO_INLINING)) AND NOT defined(_M_M68K)
_tclen macro _pc
exitm<1>
endm
_tccpy macro _pc1,_cpc2
mov rax,_pc2
mov rdx,_pc1
movzx eax,[rax]
mov [rdx],al
exitm<eax>
endm
_tccmp macro _cpc1,_cpc2
mov rax,_pc2
mov rdx,_pc1
movzx eax,[rax]
movzx edx,[rdx]
sub eax,edx
exitm<eax>
endm
else
_tclen proto WINAPI :ptr SBYTE
_tccpy proto WINAPI :ptr SBYTE, :ptr SBYTE
_tccmp proto WINAPI :ptr SBYTE, :ptr SBYTE
endif
endif ;; _MB_MAP_DIRECT
;; ctype-functions
_istalnum equ <isalnum>
_istalnum_l equ <_isalnum_l>
_istalpha equ <isalpha>
_istalpha_l equ <_isalpha_l>
_istdigit equ <isdigit>
_istdigit_l equ <_isdigit_l>
_istgraph equ <isgraph>
_istgraph_l equ <_isgraph_l>
_istlower equ <islower>
_istlower_l equ <_islower_l>
_istprint equ <isprint>
_istprint_l equ <_isprint_l>
_istpunct equ <ispunct>
_istpunct_l equ <_ispunct_l>
_istblank equ <isblank>
_istblank_l equ <_isblank_l>
_istspace equ <isspace>
_istspace_l equ <_isspace_l>
_istupper equ <isupper>
_istupper_l equ <_isupper_l>
_totupper equ <toupper>
_totupper_l equ <_toupper_l>
_totlower equ <tolower>
_totlower_l equ <_tolower_l>
_istlegal macro _c
exitm<(1)>
endm
ifndef NULL
NULL equ 0
endif
if (__STDC__ OR defined(_NO_INLINING)) AND NOT defined(_M_M68K)
_strdec macro _cpc1,_cpc2
mov rax,_cpc1
.if rax >= _cpc2
xor rax,rax
.else
lea rax,[rdx-1]
.endif
exitm<rax>
endm
_strinc macro _pc
mov rax,_pc
add rax,1
exitm<rax>
endm
_strnextc macro _cpc
mov rax,_cpc
movzx eax,byte ptr [rax]
exitm<eax>
endm
_strninc macro _pc,_sz
mov rax,_pc
add rax,_sz
exitm<rax>
endm
_strncnt macro _cpc,_sz
.if strlen(_cpc) > _sz
mov rax,_sz
.endif
exitm<rax>
endm
_strspnp macro _cpc1,_cpc2
strspn(_cpc1,_cpc2)
add rax,_cpc1
.if byte ptr [rax] == 0
xor rax,rax
.endif
exitm<rax>
endm
else
_strdec proto :ptr SBYTE, :ptr SBYTE
_strinc proto :ptr SBYTE
_strnextc proto :ptr SBYTE
_strninc proto :ptr SBYTE, :size_t
_strncnt proto :ptr SBYTE, :size_t
_strspnp proto :ptr SBYTE, :ptr SBYTE
endif
endif
endif
if 0
_T macro x
exitm<__T(x)>
endm
_TEXT macro x
exitm<__T(x)>
endm
endif
ifdef __PE__
ifdef _WIN64
option win64:3
endif
ifdef __GUI__
.code
org -0x1000
__ImageBase label IMAGE_DOS_HEADER
org 0
mainCRTStartup proc
mov rbx,GetModuleHandle(0)
ExitProcess(_tWinMain(rbx, 0, GetCommandLine(), SW_SHOWDEFAULT))
else
ifndef __STDLIB_INC
include stdlib.inc
endif
.data
_startup db 128 dup(0)
__argc int_t 0,0
ifdef _UNICODE
__targv warray_t 0
_tenviron warray_t 0
else
__targv array_t 0
_tenviron array_t 0
endif
.code
mainCRTStartup proc
.if !_tgetmainargs( addr __argc, addr __targv, addr _tenviron, 0, addr _startup )
mov ecx,__argc
ifdef _WIN64
mov rdx,__targv
mov r8,_tenviron
else
mov edx,__targv
mov ebx,_tenviron
push ebx
push edx
push ecx
endif
_tmain()
.endif
exit(eax)
endif ; __GUI__
mainCRTStartup endp
_tstart equ <mainCRTStartup>
_tend equ <>
else
_tstart equ <>
_tend equ <end>
endif ; __PE__
.pragma list(pop)
endif