1995 21.05 1997

Vol.21 n°5 (#247) may 1996

(ddj_1996_05.jpg)

p.6 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.14 DIRECT PORT I/O AND WINDOWS NT

[author : Dale Roberts]

As powerful as it is, Windows NT isn't designed to let application programs directly access system hardware—and for good reason. Sometimes access can come in handy, however, and Dale gives you the tools for direct, user-mode port I/O.

p.26 PIPES FOR MACINTOSH

[author : Kristiaan Coppieters]

Kris presents a C program shell for creating Macintosh filters. And since the pipes are pure Mac applications, you don't need to extend the basic Macintosh operating system.

p.32 EXAMINING VxD SERVICE HOOKING

[author : Mark Russinovich and Bryce Cogswell]

Intercepting VxD services lets you turn Windows into a fully extensible operating system. Mark and Bryce examine the different flavors of service hooking and unravel how hooking is implemented under both Windows 3.1 and Windows 95.

p.38 BUILDING A DOS SERIAL NETWORK

[author : Kyle York]

While MS-DOS 6's Interlnk program enables simple resource sharing—allowing you to connect two PCs via their serial or parallel ports—it doesn't provide full functionality. Kyle presents a program that picks up where Interlnk leaves off.

p.44 CONDITIONAL COMPILATION

[author : David Epstein]

David examines the proposed Fortran Conditional Compilation Facility (CCF), a line-based language that supports text substitution, macro expansion, and file inclusion. He also explains how CCF functionality can be easily adapted to other programming languages.

EMBEDDED SYSTEMS

p.48 BENCHMARKING REAL-TIME OPERATING SYSTEMS

[author : Eric McRae]

The benchmarks Eric describes give you an intuitive feel for real-time operating-system performance and help you match an operating system to your design requirements.

NETWORKED SYSTEMS

p.60 WRITING A PORTABLE TRANSPORT-INDEPENDENT WEB SERVER

[author : John Calcote]

John examines the Transport Layer Interface (TLI) for building a Web server. TLI is portable, allowing you to write server code that is 98 percent transport independent.

EXAMINING ROOM

p.66 IMPROVING USENET NEWS PERFORMANCE

[author : Robert Krten]

KNews, the program Robert presents, takes advantage of QNX features to more efficiently handle news articles. Under KNews, one program gets and stores articles, while another program implements a "virtual filesystem" to keep track of them.

PROGRAMMER'S WORKBENCH

p.72 SHARING DATA BETWEEN WEB PAGE FRAMES USING JAVASCRIPT

[author : Tom Tessier]

Frames are a powerful addition to HTML. When used in conjunction with JavaScript, you can create impressive pages that previously required knowledge of complex, server-based CGI.

COLUMNS

p.91 PROGRAMMING PARADIGMS

[author : Michael Swaine]

This month, Michael examines Gerry Wolff's premise that all of computing can be viewed as compression, Konrad Zuse's view that everything starts at the bit, and the Haskell programming language's assumption that just about everything fits into a pattern.

p.95 C PROGRAMMING

[author : Al Stevens]

Before discussing the hows and whys of DDE and Quincy 96, Al looks at the real world of software design and takes Bill Gates' The Road Ahead on the road with him.

p.99 ALGORITHM ALLEY

[author : Andreas Bender]

Fast, accurate arithmetic sometimes requires good fractional approximations of important constants. Andreas evaluates both continued fractions and Farey series for finding these approximations.

p.103 JAVA Q&A

[author : Cliff Berg and Steve Alexander]

In the first installment of this new column, Cliff and Steve explain how to display images from a local file, remote location, or from memory.

p.105 UNDOCUMENTED CORNER

[author : Robert R. Collins]

Four-MB paging lets the operating system access very large data structures. However, this feature doesn't appear to be available on x86 Intel processors—unless you know where to look. Robert shows you where 4-MB paging is documented, then presents a program that shows how the technique works.

p.113 PROGRAMMER'S BOOKSHELF

[author : Dean Clark]

Graphics programming books are in the spotlight as Dean examines Ian Ashdown's Radiosity: A Programmer's Perspective and Tim Wittenburg's Photo-Based 3D Graphics in C++.

FORUM

p.8 LETTERS

[author : you]

p.128 SWAINE'S FLAMES

[author : Michael Swaine]

PROGRAMMER'S SERVICES

p.118 OF INTEREST

[author : Monica E. Berg]