
                  The PC Performance-Decrease Utility - BREMZE
                               version 5.00

	PURPOSE:  BREMZE (Latvian for 'brake') slows down PC performance
 by controlling the speed of execution of programs.  This feature can be
 useful when running old processor-dependent programs on new PCs, particularly
 to decrease the speed of games for 'better results', or when wishing to gain
 a better understanding of the sequences and functioning of programs, etc.


	STRUCTURE: BREMZE package includes two independent executable files:
 BREMZE70 and BREMZE08. The only difference is that BREMZE uses interrupt
 70h, but BREMZE08 - 08h. Because int70h can be activated up to 8192 times
 per second, but int08h - 18, only with BREMZE70 you can get really smooth and
 nice slow down. However, BREMZE08 can be more compatible in some situations.


        SYSTEM REQUIREMENTS:  BREMZE runs on IBM PCs under the MS-DOS
 operational system.  To use under Windows it's first necessary to load BREMZE
 before running Windows (for Windows9X - place in your AUTOEXEC.BAT file). For
 slow down Windows programs you can also load BREMZE (with high braking coef-
 ficient) in Windows DOS session, but hot-keys will be available only in this
 session. It is not recommended to use a BREMZE70 under Windows, because
 Windows operate incorrectly with interrupt 70h.


        DISTRIBUTION:  BREMZE is shareware and may be used free of charge for
 one month and distributed without restriction (but only with all of the
 enclosed files). If you want to continue using the program you have to
 register. Registration fee is $10 for private users and $20 for organizations.
 Please see the file REGISTER.HOW for detailed information. It is forbidden to
 modify the program code or utilize the program in any manner whatsoever for
 commercial purposes without the prior authorisation of the author.


        INSTALLATION: Although loading BREMZE resident without any of the
 optional command-line parameters is adequate to run the program - the default
 values then being applicable - wider possibilities are available to the user
 if the time is taken to become acquainted with these parameters.

 Syntax: BREMZE70 [/cXXXX] [/sXX] [/wX] [/mX] [/iX] [/eX] [/kXX:YY] [/oXX:YY]
  [/nX] [/pXX:YY] [/dXX] [/f] [/l]
     or: BREMZE08 [/cXXXX] [/sXX] [/wX] [/mX] [kXX:YY] [/oXX:YY]
  [/nX] [/pXX:YY] [/dXX] [/f] [/l]

	/cXXXX - Set braking coefficient, XXXX=0001..FFFFh, default -
		autodetect;
		 You can choose the optimal braking level for your PC and
		program. By default, a braking coefficient is detected
		automatically, but may be on some computers my detection
		routine can work incorrectly, so, you will need to find
		it empirically. Also, autodected coefficient can be little
		bit different each times BREMZE runned, thus, if you need a
		precisely same slow down, better set a coefficient your self.
		Coefficients are little bit different for BREMZE08 and
		every "interrupts per second" number of BREMZE70.

	/sXX - Set startup position, XX=00..99, default - 00;
		 You can set the braking position during installation.

	/wX - braking on or off, X=+,-, default - +;
		 You can switch braking on or off from command line or
		batch file.

	/mX - braking mode 1 (with enabled interrupts) or 2 (with disabled
		interrupts), X=1,2, default - 2;
		 Because I really don't know which mode is better, I allow
		user to choose between its. The difference is only that
		in 1 mode interrupts are enabled while BREMZE slows down PC,
		in 2 - disabled. First is more correct and safe, but
		second gives a smoother slow down and performance
		dependence of position is without oscillations.

	/iX - interrupts per second, X=1,2,4,8 (1024,2048,4096,8192
		interrupts), default - 8; (BREMZE70 only)
		 A Real-time clock interrupt (70h) can be activated
		different times per second. A greater value gives a smoother
		slow down. Because even a periodical blank activity
		of int70h slows down the PC, smaller values is recommended
		for slow computers, for ex. 386, 486.

	/eX - enable/disable BREMZE70 (enable/disable int70h), X=+,-,
	        default - +; (BREMZE70 only)
		 You can enable and disable int70h (thus, also braking and
		hot-keys detection by BREMZE70).

	You can change hot-keys:

	/kXX:YY - Set alternate slower/faster keys:
	           XX - slower key scancode, default - 51;
		   YY - faster key scancode, default - 52;
		   XX,YY=01..88, XX<>YY;
		 Alternative hotkey scancodes may be determined with
		SCANCODE.COM.

	/oXX:YY - Set alternate on/off keys:
		   XX - on key scancode, default - 78;
		   YY - off key scancode, default - 74;
		   XX,YY=01..88, XX<>YY;

  	/nX - numbers displaying on or off, X=+,-, default - +;
		 If on, position number will be displayed at the left top
		corner of the screen, when position will be changed or braking
		switched on or off by hot-keys.

  	/pXX:YY - numbers colours attributes, XX,YY=00h..FFh, XX<>YY,
		 default - 4F:47;
		 Because many games changes colours palettes, default
		colours can be invisible in its. So, you can change colours
		attributes and find two visible and different. Alternative
		colours attributes for current video mode may be determined
		with COLOURS.COM.

 	/dXX - set keyboard delay, X=00..99, default - 15;
		 Because BREMZE use the timer's or RTC interrupts to control
		the keyboard, it should set the delay between first and
		second keypress itself.

	/f - Don't install Latvian font.
		 I load four Latvian letters into video memory to enable my
		name and that of my city to be displayed in my native tongue.
		However, if you feel that this feature spoils your pseudo-
		graphics or clashes with your national character set, you may
		disable this option.

	/l - Don't draw lines.


        UNINSTALL:  The memory used by BREMZE may only be released if no other
 resident programs which uses the same interrupts have been installed after
 BREMZE.  Should any other resident programs have been loaded subsequently,
 however, then they must first be removed before BREMZE can be uninstalled.

 Syntax: BREMZE /u [/f] [/l]

		/f, /l see above...

        CHANGING and REINSTALLATION: If you want to change some parameters,
 you can do it. For changing write a parameter(s) you wish to change and add
 a '/g' parameter.
    If you can't uninstall BREMZE, but you want to install it over again, you
 can reinstall it. For reinstallation you have to add the '/r' parameter to
 the installation string.
    The difference between changing and reinstallation is that change resets
 only parameters are indicated, but reinstall resets all non indicated
 parameters to defaults (like install). For ex., to enable disabled BREMZE70
 use 'BREMZE70 /g /e+', but for reinstallation to defaults and braking
 coefficient autodetection use 'BREMZE70 /r'.


	USAGE: After installation of BREMZE run the program that you want
 to slow down. You can change the speed of execution by means of the following
 key combinations (if not changed):

	Alt+<   - slower by one step.
	Alt+>   - faster by one step.
	Ctrl+<  - slower by ten steps.
	Ctrl+>  - faster by ten steps.

	Ctrl+LSh+GrayPlus  - switch on braking.
	Ctrl+LSh+GrayMinus - switch off braking.

   On altering of attitude speaker will sound a beep of corresponding frequency.
 If there is no sound it means that you have reached either the minimum or the
 maximum position. Switch on is marked by a high frequency beep; switch off by
 a low one.
   If position numbers displaying is on and correct colours are selected you
 will see numbers at the left top corner of the screen in different colours
 for BREMZE switched on and off.


	CONFIGURATION: To keep your standard configuration, create the batch
 files. For ex., if you always redefine hot-keys, create BREMZE.BAT:
 	"@bremze70 /k09:10 /o11:08 %1 %2 %3 %4 %5 %6 %7 %8 %9"
  %X is a command line parameter number X of a batch file. For example, if
 you run "bremze /c1500 /r", it's equivalent to "bremze70 /k09:10 /o11:08
 /c1500 /r".


	OPERATION: BREMZE70 "sits" on interrupt 70h and 1024,2048,4096 or
 8192 times each second (BREMZE08 - on int08h and 18 times) runs a cycle, the
 size of which depends on the braking coefficient and position, thereby
 consuming processor time.  Keyboard testing is also linked to the 70h (08h)
 interrupt, which permits the operation of BREMZE even with programs that
 replace the keyboard interrupt handler.
    BREMZE is mouse, keyboard and disk sensitive - while mouse, keyboard
 or disk interrupt is executed, braking is disabled. It checks also for
 timer, RLC, keyboard and mouse interrupt handler replacement: if program
 replaces handler address by DOS function, not by direct memory write,
 BREMZE installs itself before the new handler and don't loss an interrupt
 handling.
    BREMZE70 also uses a timer interrupt - because int70h can be deactivated
 by any program, BREMZE70 checks it from int08h and reactivate immediately.
    BREMZE utilizes the PSP that saves some 200 bytes of DOS memory.


        DISADVANTAGES:  1. At a high degree of braking BREMZE sometimes
 "jams" the Alt, Ctrl or Shift keys (keyboard interrupt handler has not fixed,
 that key is released). In that case it's necessary to press and release the
 key once more.
  	2. Because BREMZE masks the interrupts at braking (in mode 2), the
 system timer can lag behind. To solve this problem, use my UPTIMER utility.
 It is more actually for BREMZE08, but little bit - also for BREMZE70.
	3. To minimize a 'blank' slow down by int70h, BREMZE70 does not call
 BIOS int70h handler, so, some BIOS functions using RTC are disabled. If
 exist some situations, where these functions are necessary, let me know, and
 I will make this optional.
	4. BREMZE70 is available only on PC ATs, BREMZE08 - also on other
 PCs.


	