Getting started with Visual Studio 2022 for UEFI Shell and ANSI C cross-development.
Project | Description |
---|---|
ARGCV | argument count, argument vector, command line arguments |
WARGCV | argument count, argument vector, command line arguments with wmain() |
WELCOME | simple Hello, world |
WELCOME1 | simple Hello, world using puts() |
WELCOME2 | simple Hello, world using fprintf() to STDERR and STDOUT each |
WELCOME3 | simple Hello, world using fputs() to STDERR and STDOUT each |
WELCOME4 | simple Hello, world using fwrite() to STDERR and STDOUT each |
WELCOME5 | simple Hello, world using putc() to STDERR and STDOUT each |
WELCOME6 | simple Hello, world using fputc() to STDERR and STDOUT each |
WELCOME7 | simple Hello, world using all possible functions to STDOUT only |
WELCOME8 | simple Hello, world for KARAOKE purpose |
WELCOME9 | demonstration of CTRL-C and how to catch it in an ANSI/STANDARD C program |
WELCOME10 | demonstration global Classes in C++ |
WELCOME11 | simple Hello, world using UEFI API SystemTable->ConOut->OutputString(SystemTable->ConOut |
WELCOME12 | demonstration of accuracy of TSC based 'TIMR.H' functions |
WELCOME13 | demonstration of John McNamara's libxlsxwriter |
WELCOME14 | demonstration of C++ text UI/UX design for UEFI Shell https://www.youtube.com/watch?v=gMwCKA6SQrk |
EFI Binaries
NT64/Torito Binaries
NT64/MSFT Binaries
https://github.com/KilianKegel/torito-C-Library#revision-history
- update to TORO C Library 20231118
- add ACPI timer based synchronization
- update to TORO C Library 20231014
- improve welcome13 sample to demonstrate EXCEL 2016 bugfix
- update to TORO C Library 20230909
- update to TORO C Library 20230409
- update to TORO C Library 20230304
- update to TORO C Library 20230212
- update to TORO C Library 20230104
- update to TORO C Library 20221022
- change menu activation key (formerly ALT) to F10 for "C++ text UI/UX" sample program WELCOME14 NOTE: ALT-key is not supported on all platforms https://www.youtube.com/watch?v=gMwCKA6SQrk
- demonstration of C++ text UI/UX design for UEFI Shell https://www.youtube.com/watch?v=gMwCKA6SQrk
- add support and demo for John McNamara's Microsoft Excel writer library libxlsxwriter
- update to TORO C Library 20220501
- add wmain() support
ATTENTION: The presence of main() is not detected at build time anymore, but at runtime.
- update to TORO C Library 20211031
- update to toroC64.lib with
_cdeCRT0WinNT()
CRT0 for Windows
- Update to Microsoft Visual Studio Community 2022 Preview (64-bit), Version 17.0.0 Preview 3.1
- Update to torito-C 20210820/R166
- Update to torito-C 20210815/R165
- improve welcome12 for time / drift measurement
- minor improvements
- Update to torito-C 20210808/R164
- Update to torito-C 20200416/R159
- demonstrate accuracy of TSC based 'TIME.H' functions https://github.com/KilianKegel/Visual-ANSI-C-for-UEFI-Shell/blob/master/welcome12/welcome12.c
- add "Hello, World" (https://github.com/KilianKegel/Visual-ANSI-C-for-UEFI-Shell/blob/master/welcome11/welcome11.c) using the native UEFI API
- Update to torito-C 20200204/R154
- adjust solution configurations
- update copyright
- Update to torito-C 20191126/R152
- improve C++ global object initialization (introduced in 20181129/R116) to have full
ANSI C library function set available during invocation of global constructors before main()
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/initterm-initterm-e?view=vs-2017
https://github.com/KilianKegel/Visual-ANSI-C-for-UEFI-Shell/blob/master/welcome10/welcome10.cpp - increase number of possible ATEXIT() registrations to 32 + 4 to allow 4 additional C++ destructor registrations
- update to VS2019 Version 16.4.0 (Spectre Support)
- intern: change configuration naming
- UEFIx86-64 (Torito C Library)
- WinNTx86-64 (Torito C Library)
- WinNTx86-64 (Microsoft C Library)
- Update to torito-C 20191126/R149
- Update to torito-C 20181111/R146
- add missing intrinsic functions _difftime64() and _gmtime64() required by Microsoft Compiler
- fixed mktime() to crash with invalid time/date before 01/01/1970 00:00:00
- add CTRL-C support
NOTE: CTRL-C is implemented on Signal handling<signal.h>
interface and can be catched and supressed by the application. https://github.com/KilianKegel/Visual-ANSI-C-for-UEFI-Shell/blob/master/welcome9/welcome9.c - fixed
system()
library function does not workaround completely the EfiShellProtocol->Execute() bug to display the drive mappings, when multipartition ("BLK10") mass storage device is attached - implement UEFI Shell compatibility mode for STDOUT and STDERR to allow I/O redirection
>a
for ASCII and>
for UCS-2/UTF16 - add build switch
char _gSTDOUTMode; /* 0 == UEFI Shell default, 1 == ASCII only */
to force TORITO C backward compatibility ( ASCII mode only )
- Update to torito-C 20190621/R138 that autodetects I/O redirection UTF16 vs. ASCII
- add support for VS2019 ver 16.2.5
- update to VS2019 Version 16.2.5 (Spectre Support)
- Update to torito - C 20190621 / R133 that adds VS2019 support, remove library dependancy from compiler version
- Update to torito - C 20190410 / R126 that provides various improvements
- Update to torito-C 20190108/R123 that provides various improvements
- Update to torito-C 20181216/R119 that provides various improvements
- add "WinNTx86-64 (Microsoft C Library)" solution configuration. Previously only "UEFIx86-64 (Torito C Library)" and "WinNTx86-64 (Torito C Library)" For varification projects can be linked against the original Microsoft C library and the Torito C Library
- Update WindowsTargetPlatformVersion to 10.0.17134.0 from 10.0.16299.0
- Update to torito-C 20181129/R116 that provides various improvements
- Update to torito-C 20181112/R110 that provides scanf-family improvements
- Update to torito-C 20180920/R106 that provides VS2017/15.8 support
- cleanup project settings, remove default C library from solution/project view
- Update to torito-C 20180830/R102
- add UDK2018 MdePkg includes to enable acces to UEFI API
- fixed structure alignment to default / 8 byte alignment
- Update to torito-C 20180717/R101
- Update to torito-C 20180411/R95
- Update to torito-C 20180130/R86
- Update to torito-C 20180108/R85
- initial revision