HGCtool package

What is HGCtool?

This package allows users of two monitors to display usefull informations (such as time&date) and debug strings from their programs to be displayed on secondary monitor.


It's recommended that you load HGCtool from your autoexec.bat file, because if calls to HGCtool are made and HGCtool is not present, system will probably crash. Please stop here if you are not software developer. You can still use HGCtool as time/date display & disk error monitor.

Most common way to use HGCtool is to include HGCinc files into your application. But this way you create two versions of application: Debug and Retail one, depending on symbol 'DebugVer'. There is no code (in assembler) and almost no code (in other languages) generated in Retail versions of your programs.


Errmon is shipped with this package but it does not belong to it. It has been put into public domain in year 1985 by Robert J. Newton. I improved it to print messages onto mono monitor.


NilInts is utility that redirects all unused interrupts (pointing to 0000:0000) to Iret. It requires Int 1Ch to be unused (i.e. pointing to Iret). It's recommended that you run it on beggining on autoexec.bat. It is not resident.

Technical description

HgcTool intercepts interrupt vectors $DE and $DF. It works with 'control string'. Control string is null-terminated sequence of characters. Difference between $DE and $DF handlers is in method of transfering string: When vector $DE is used, pointer to string is passed in ds:si registers. This is little bit problem, because calling program has to fill this registers... When calling int $DF, string is in memory immediately after int $DF call. Execution is then passed to point immediately after end of string. All registers are saved in

Special sequences can be used in string - for example for including value of some registers, or current time. Codes are always preceeded by '~' and are case-sensitive. Following table shows codes.

;   code ³ function
; AX,AL, ³ value of AX, AL
; AH,AE  ³ AH, EAX
;   (this works also with BX,CX,DX)
;    t   ³ Time from HgcTool's startup
;    T   ³ Time and date

Anybody is welcome to write 'drivers' (which use same interface) for other debug devices (such as serial monitor, printer or maybe even disk file, other computer on network). If somebody decides to do so, please let me know - I'll give you any support I'll be able to give you, including sources.

What is shareware?

If you are using shareware version, you have to register after 21 day testing period - you will allow me to improve this program and write more better programs. Registering means sending me $10 (or 50Kc if you are from Czech republic). You'll get registered version after that.

How to contact me?
  My adress is:
       Pavel Machek
       Volkova 1131
198 00 Praha 9 - Cerny Most
  My telephone is: +42-2-866 233
  My E-mail adress is machek@k332.feld.cvut.cz