From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/prtscrn.c | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/prtscrn.c (limited to 'reference/C/CONTRIB/SNIP/prtscrn.c') diff --git a/reference/C/CONTRIB/SNIP/prtscrn.c b/reference/C/CONTRIB/SNIP/prtscrn.c new file mode 100755 index 0000000..b22bad6 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/prtscrn.c @@ -0,0 +1,53 @@ +/* +** PRTSC.C - Access the BIOS print screen function +** +** public domain demo by Bob Stout +*/ + +#include + +#ifdef __TURBOC__ + #define FAR far +#else + #define FAR _far +#endif + +/* +** Get screen printing status +** +** 0 - Ready +** 1 - Screen printing in process +** 2 - Error occurred last time +*/ + +int PrtScrnStat(void) +{ + return ((int)*((char FAR *)(0x00500000))); +} + +/* +** Print the current screen +*/ + +int PrtScrn(void) +{ + + union REGS regs; /* Dummy for use by int86() */ + + if (1 == PrtScrnStat()) /* Can we print now? */ + return -1; /* Nope, return with error */ + int86(5, ®s, ®s); /* Issue Int 5 */ + return 0; +} + +#ifdef TEST + +#include + +void main(void) +{ + printf("PrtScrn() returned %d\n", PrtScrn()); + printf("PrtScrnStat() returned %d\n", PrtScrnStat()); +} + +#endif -- cgit v1.2.3-54-g00ecf