A few system manipulation utilities for BPW version 7.0. This code allows you to: - Access the LDT (Local Descriptor Table). - Make call gates. - Execute ring 0 code. - Execute real 32 bit code (no segment prefixes). - Time your Pentium (down to cycle or instruction level) using its non-documented MSR's (Machine Specfic Registers). This code is essentially a rehash of two articles: "Run Privileged Code from your Windows based prgram using Call Gates" by Matt Pietrek Microsoft System Journal, May 1993 and "Pentium Secrets" by Terje Mathisen, BYTE Magazine, July 1994 You will also want to have a good book on Internal 386, 486 or Pentium machine language, especially for the call gates. For those interested in the convoluted logic of P5 code optimzation I recommend the book: "Zen and the Art of Code Optimaztion" by Michael Abrash, The Coriolis Group Inc, 1994 Hopefully you won't need his zen timer so much now ! Anyone who knows of similar optimzation gems please let me know. This stuff has been tested on several computers. The Pentium code crashes 486 machines. Everything else ran okay. I'm not a specialist in these matters so if this code doesn't run on your machine I probably can't help you. But feel free to complain anyway. Requirements: 386 SX or better (Pentium timer unit requires Pentium computer) Windows 3.1 BPW 7.0 uses BPW system units WinTypes,WinProcs,Win31,WinCrt,WinDos. File List --------- readme.txt - This file zldt.pas - LDT (Local Descriptor Table) manipulator, can also make call gates. zc32load.pas - Allows execution of real 32 bit code. zp5timer.pas - Pentium timer unit, gives access to ring 0 Pentium timer commands. hexunit.pas - Hexadecimal utilities (why doesn't BPW let us use its own?) tc32.pas - Test program for zc23load. tzp5.pas - Test program for zp5timer. s32.asm - 32 bit assembler file s32.bin - above file after TASM,TLINK and EXE2BIN. tc32.exe - Executable of t32.pas tzp5.exe - Executable of tzp5.pas Disclaimer: This code is hereby placed in the public domain. I will not be held responsible for any errors or damage that the program may cause. Author: Mike Wise, 25 July 1994, Luebeck, Germany CompuServe: 100014,170 InterNet: 100014.170@compuserve.com