In the (not) good old days of single-user single-process MS-DOS TSR programs were a kind of magic wish: have more than one program running at same time.
Companies created TSR utilities. I can remember of Borland Sidekick and Norton Guides, among others.
Of course I couldn't leave behind. Around 1990 I created my own TSR program: TASCII. An ASCII table very useful for... me only.
I based my implementation on the excellent Al Stevens' Extending Turbo C Professional book.
Recently I attempted, just for the fun, to bring back TASCII to life again.
I began with the DOSBOX MS-DOS emulator. For the compiler I used Turbo C 2.01 which Borland (now Embarcadero) made available for free, years ago. Unfortunately I hadn't the full source code for the Extending.. book. So I had to borrow it from openlibrary.org and type the missing parts.
Well, here it is (for the real nostalgia DOSBOX has a CGA mode):
Who needs a resident ASCII table these days? But it is nice to see an old friend again.
(If you are also insane I can provide you with the binary).
Showing posts with label c. Show all posts
Showing posts with label c. Show all posts
Friday, June 02, 2017
Friday, August 10, 2012
GCC macros for portable development
While GCC define a large number of macros only some of them are useful for portable development. The use of pre-processor macros is a well-known technique for selecting which portions of your code can only be compiled on a specific platform.
The most interesting macros are:
- __GNUC__: always defined for GCC
- __GNUG__: always defined for G++
- WIN32: defined on Windows only
This code:
#ifdef __GNUC__
#ifdef WIN32
std::cout << "GCC on Windows\n";
#else
std::cout << "GCC not on Windows\n";
#endif
#endif
Outputs:
GCC on Windows
when built with MinGW on Windows and
Outputs:
GCC not on Windows
when built with GCC in other platforms.
Alternatively with MinGW you can also use __MINGW32_VERSION which is defined if _mingw.h is directly or indirectly (e.g. by including any standard header file) included.
Subscribe to:
Posts (Atom)








