Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Peter Norton Programmer's Guide - 0040:0072h (a 2-byte word). this word is set to 1234h after the initial http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
  0040:0072H (a 2-byte word). This word is set to 1234H after the initial
  power-up memory check. When a warm boot is instigated from the keyboard
  (via Ctrl-Alt-Del), the memory check will be skipped if this location is
  already set to 1234H.

  0040:0074H (4 bytes). These 4 bytes are used by various members of the PC
  family for diskette and fixed-disk drive control. See the IBM BIOS
  Interface Technical Reference Manual for details.

  0040:0078H (4 bytes). These bytes control time-out values for the parallel
  printers. (In the PS/2, only the first 3 bytes are used for this purpose.)

  0040:007CH (4 bytes). These bytes contain time-out values for up to four
  RS-232 serial ports.

  0040:0080H (a 2-byte word). This word points to the start of the keyboard
  buffer area.

  0040:0082H (a 2-byte word). This word points to the end of the keyboard
  buffer area.

  The next 7 bytes are used by the ROM BIOS in the EGA and PS/2s for video
  control:

  0040:0084H (1 byte). The value of this byte is one less than the number of
  character rows displayed on the screen. The BIOS can refer to this value
  to determine how many character rows of data to erase when the screen is
  cleared or how many rows to print when Shift-PrtSc is pressed.

  0040:0085H (2 bytes). This word indicates the height, in scan lines, of
  characters on the screen.

  0040:0087H (4 bytes). These 4 bytes are used by the BIOS video support
  routines to indicate the amount of video RAM available, the initial
  settings of the EGA configuration switches, and other miscellaneous video
  status information.

  0040:008BH (11 bytes). The ROM BIOS uses this data area for control and
  status information regarding the diskette and fixed-disk drives.

  0040:0098H (9 bytes). This data area is used by the PC/AT and PS/2 BIOS to
  control certain functions of the real-time clock.

  0040:00A8H (4 bytes). In the EGA and PS/2 BIOS, these bytes contain the
  segmented address of a table of video parameters and overrides for default
  ROM BIOS video configuration values. The actual contents of the table
  vary, depending on which video hardware you are using. The IBM ROM BIOS
  Interface Technical Reference Manual describes this table in detail.

  0050:0000H (1 byte). This byte is used by the ROM BIOS to indicate the
  status of a print-screen operation. Three possible hex values are stored
  in this location:

  --------------------------------------------------------------------------
  00H            Indicates OK status
  01H            Indicates a print-screen operation is currently in progress
  FFH            Indicates an error occurred during a print-screen operation
  --------------------------------------------------------------------------

  0050:0004H (1 byte). This byte is used by DOS when a single-diskette
  system mimics a two-diskette system. The value indicates whether the one
  physical drive is acting as drive A or drive B. These values are used:

  --------------------------------------------------------------------------
  00H            Acting as drive A
  01H            Acting as drive B
  --------------------------------------------------------------------------

  0050:0010H (a 2-byte word). This area is used by ROM BASIC to hold its
  default data segment (DS) value.

  BASIC lets you set your own data segment value with the DEF SEG = value
  statement. (The offset into the segment is specified by the PEEK or POKE
  function.) You can also reset the data segment to its default setting by
  using the DEF SEG statement without a value. Although BASIC does not give
  you a simple way to find the default value stored in this location, you
  can get it by using this little routine:

  DEF SEG = &H50
  DATA.SEGMENT = PEEK(&H11) * 256 + PEEK(&H10)

  --------------------------------------------------------------------------
  NOTE:
    BASIC administers its own internal data based on the default data
    segment value. Attempting to change this value is likely to sabotage
    BASIC's operation.
  --------------------------------------------------------------------------

  0050:0012H (4 bytes). In some versions of ROM BASIC, these 4 bytes contain
  the segment and offset address of BASIC's clock-tick interrupt handler.

  --------------------------------------------------------------------------
  NOTE:
    In order to perform better, BASIC runs the system clock at four times
    the standard rate, so BASIC must replace the ROM BIOS clock interrupt
    routine with its own. The standard BIOS interrupt routine is invoked by
    BASIC at the normal rate; that is, once for every four fast ticks.
    There's more about this on page 146.
  --------------------------------------------------------------------------

  0050:0016H (4 bytes). This area contains the address of ROM BASIC's
  break-key handling routine.

  0050:001AH (4 bytes). This area contains the address of ROM BASIC's
  diskette error-handling routine.

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson