Hi Relvinian,
Welcome back :icon14:
You have many questions and might wish to
search the forum. I'll try to answer some of your questions below.
> 1) With the new OSes and Microsoft dropping support for XP, Vista, etc, are ANSI routines generally not used anymore and everything now basically Unicode?
No. Some are using Unicode, but for most purposes Ansi is fine, and Utf8 is another option. My guess would be Ansi 90:10 Unicode. Not all IDE's are good at using it.
Here is an example of what is possible with "true" Unicode.> 2) Is 32-bit still primarily used or everything now 64-bit?
Again, roughly 90:10. While the step from 16 to 32-bit was a huge improvement, 64-bit code is rarely faster (and often slower); one reason being that speed gains from using SIMD have already been realised in 32-bit land. Plus, most people (with the exception of Hutch) never need allocations in the gigabyte range. There is a heated debate here which assembler to use for 64-bit coding - see e.g. the
crippleware news thread.
3) Should I keep my old versions of ANSI, Unicode, and 32-bit as legacy and concentrate only on Unicode and 64-bit for updating my ASM library?
Before deciding on anything, study what Hutch has in the pipeline. He is busy working on the 64-bit equivalent to Masm32, and quite advanced. Unfortunately, his library is Microsoft ML64 only, and will not work with the
HJWasm and
AsmC assemblers. Microsoft dropped HLL support in ML64, i.e. no invoke, no .if ... .else ... .endif etc;
workarounds exist, but they are not everybody's taste.
In contrast, both HJWasm and AsmC are fully compatible to the latest versions of 32-bit versions of Microsoft MASM, i.e. they do have all HLL elements; they also assemble 32- or 64-bit sources with the same executable. Besides, their native invoke does proper parameter checking and counting, in contrast to the invoke
macro that was designed as a workaround for ML64.