home *** CD-ROM | disk | FTP | other *** search
/ C/C++ User's Journal & Wi…eveloper's Journal Tools / C-C__Users_Journal_and_Windows_Developers_Journal_Tools_1997.iso / sysembed / features.ebh < prev    next >
Encoding:
Text File  |  1996-09-12  |  42.9 KB  |  793 lines

  1. [10. Configurability]
  2.                    EMBEDDED BIOS 4.0 CONFIGURABILITY
  3. ════════════════════════════════════════════════════════════════════════
  4. Embedded BIOS is the most configurable BIOS in the industry.  With over
  5. 330 configuration options organized into groups for easy OEM adaptation,
  6. Embedded BIOS can be configured to virtually any hardware platform that
  7. you can design, around an x86-compatible CPU.
  8.  
  9. The key to Embedded BIOS 4.0 configurability is its plug-and-play
  10. personality modules for CPUs, Chipsets, and Board-level designs.  We've
  11. done the work for the important CPUs and chipsets, and even the most
  12. common evaluation boards produced by our hardware partners.  Our OEMs
  13. using a reference design such as the EXPLR1, EXPLR2, or AMD eval board
  14. can leverage our existing work without writing a single line of code.
  15.  
  16. Options are available in addition to our basic architectural modules
  17. that allow individual features to be enabled or disabled, and various
  18. values such as COM port addresses to be fine-tuned.
  19.  
  20. Embedded BIOS offers high performance, low latency, a full set of ROM
  21. tools, a standard ROM disk, a high-memory ROM disk, a REMOTE disk,
  22. a FLASH disk for read/write Flash array support, a built-in MINI-DOS
  23. that runs directly out of ROM, and an integrated disassembling debugger
  24. to get your system up and going quickly.
  25.  
  26. Despite its enormous set of configuration options, Embedded BIOS is
  27. actually easy to configure.  In fact, THE AVERAGE BIOS ADAPTATION TAKES
  28. ONLY 15 MINUTES TO PERFORM.  How can this be?  Because we've already
  29. written all the software codepaths in such a way that you can simply
  30. select the features and hardware you want, and a single command-- GSMAKE,
  31. builds the BIOS for you.
  32.  
  33. EMBEDDED BIOS BOOT OPTIONS:
  34.  
  35.      ■ Boot out of ROM with Embedded DOS-ROM
  36.      ■ Boot from Flash disk
  37.      ■ Boot from low-memory ROM disk
  38.      ■ Boot from extended-memory ROM disk
  39.      ■ Boot from a REMOTE disk
  40.      ■ Boot from FLOPPY/IDE/ATA disks
  41.  
  42. MODULAR CONSTRUCTION LETS YOU INCLUDE ONLY NECESSARY BIOS FUNCTIONS:
  43.  
  44. Embedded BIOS includes over 100,000 lines of MASM/TASM-compatible source
  45. code in over 60 modules.  With the configuration options in OPTIONS.INC
  46. and CONFIG.INC (shown later) you can easily configure the core system
  47. BIOS without spending time reviewing how the code works.
  48.  
  49. Also included is a BINARY CONFIGURATION PROGRAM (BCP) that allows you
  50. to tune a given binary version of the BIOS for your specific needs.
  51.  
  52. ╔══════════════════════════════════════════════════════════════════════╗
  53. ║ There are over 330 configuration options supported by Embedded BIOS. ║
  54. ║ Here's a list of the actual configuration files that you will use to ║
  55. ║ build a custom BIOS for your hardware (OPTIONS.INC & CONFIG.INC):    ║
  56. ╚══════════════════════EMBEDDED BIOS CONFIGURATION═════════════════════╝
  57.  
  58. ;       Version of this BIOS.
  59.  
  60. BIOS_MAJOR_VERSION      =       4
  61. BIOS_MINOR_VERSION      =       0
  62.  
  63. ;       Size of the BIOS in kilobytes.  This is the size of the BIOS image,
  64. ;       packed towards the top of the 64KB output file called BIOS.ABS.  If
  65. ;       you select 64, then the entire BIOS.ABS is used to store the BIOS.
  66. ;       If you select 48, then only the top 48KB of the BIOS.ABS will be used;
  67. ;       the bottom 16KB would be ffh's.  Similarly, you can create a small
  68. ;       BIOS by setting this parameter to something low, like 8 (KB).  Odd
  69. ;       sizes, such as 23, are also possible.  In all cases, a full 64KB of
  70. ;       data is written to BIOS.ABS; this parameter only defines how much of
  71. ;       that image (towards the top) is used to store the BIOS itself.
  72.  
  73. OPTION_BIOS_KBSIZE      =       64
  74.  
  75. ;       Configuration options selectable by the OEM.
  76.  
  77. OPTION_SUPPORT_PCODE    =       0       ; enable PCODE interpreter.
  78. OPTION_SUPPORT_SETUP    =       1       ; build SETUP code.
  79. OPTION_SUPPORT_CONFIGBOX =      0       ; build Configuration Box code.
  80. OPTION_SUPPORT_POSTCODES=       0       ; support POST codes to progress port.
  81. OPTION_SUPPORT_POSTCODES_COM=   0       ; support POST codes thru serial port.
  82. OPTION_SUPPORT_POSTMSGS =       1       ; support POST messages to video.
  83. OPTION_SUPPORT_POWERON_DELAY=   1       ; support POST delay to stablize power supply.
  84. OPTION_SUPPORT_DEBUGGER =       1       ; build ROM-resident debugger code.
  85. OPTION_SUPPORT_SHADOW   =       0       ; build shadowing logic.
  86. OPTION_SUPPORT_CACHE    =       0       ; build cache logic.
  87. OPTION_SUPPORT_8250     =       1       ; build 8250 UART control code.
  88. OPTION_SUPPORT_8254     =       1       ; build 8253/8254 timer control code.
  89. OPTION_SUPPORT_8255     =       0       ; build 8255 PIO control code.
  90. OPTION_SUPPORT_PORT_B   =       0       ; build PORT B init/control code.
  91. OPTION_SUPPORT_8259     =       1       ; build 8259 interrupt controller code.
  92. OPTION_SUPPORT_8259_2   =       1       ; build second 8259 at PC/AT address.
  93. OPTION_SUPPORT_8237     =       0       ; build 8237A DMA controller code.
  94. OPTION_SUPPORT_8237_2   =       0       ; build second 8237A at PC/AT address.
  95. OPTION_SUPPORT_8042     =       1       ; build 8042 keyboard controller code.
  96. OPTION_SUPPORT_CMOS     =       1       ; build AT-style CMOS control code.
  97. OPTION_SUPPORT_NPX      =       0       ; build numeric coprocessor code.
  98. OPTION_SUPPORT_V25      =       0       ; initialize V25 processor before POST.
  99. OPTION_SUPPORT_8680     =       0       ; build code to save C&T vector 1fh.
  100. OPTION_SUPPORT_VIRTIO   =       0       ; build virtual I/O port code.
  101. OPTION_SUPPORT_XT_NMI   =       0       ; build PC/XT NMI control code.
  102. OPTION_SUPPORT_VIDEO    =       1       ; build code to support mono/color/ega.
  103. OPTION_SUPPORT_KEYBOARD =       1       ; build code to support PC/XT or PC/AT kbd.
  104. OPTION_SUPPORT_TESTBASEMEM =    1       ; build code to test base xxKB of memory.
  105. OPTION_SUPPORT_PAGEREG  =       0       ; build code for PC/XT, PC/AT page registers.
  106. OPTION_SUPPORT_XTEXPANSION =    0       ; build code to enable PC/XT expansion unit.
  107. OPTION_SUPPORT_IDE      =       0       ; build code to support IDE drives.
  108. OPTION_SUPPORT_FLOPPY   =       0       ; build code to support floppy drives.
  109. OPTION_SUPPORT_SCT      =       1       ; build system configuration table.
  110. OPTION_SUPPORT_TESTPAGEREG =    0       ; build code to test page regs (PC/AT only).
  111. OPTION_SUPPORT_PROTECT_MODE =   1       ; build code to support protected mode.
  112. OPTION_SUPPORT_LCD      =       0       ; build code to support LCD messages.
  113. OPTION_SUPPORT_SERIAL   =       1       ; build code to support serial I/O.
  114. OPTION_SUPPORT_PARALLEL =       1       ; build code to support parallel BIOS.
  115. OPTION_SUPPORT_ROM_EXTENSIONS = 0       ; build code to support ROM extensions.
  116. OPTION_SUPPORT_VIDEO_BOARDS =   0       ; build code to support video boards.
  117. OPTION_SUPPORT_REMOTE_DISK =    0       ; build code to support serial remote disk.
  118. OPTION_SUPPORT_ROM_DISK =       1       ; build code to support built-in ROM disk.
  119. OPTION_SUPPORT_SOUND    =       0       ; build code to beep/click the speaker.
  120. OPTION_SUPPORT_DEVICECALLS =    1       ; build code to issue INT 15h's for spinloops.
  121. OPTION_SUPPORT_TIMEBIOS =       1       ; build code to support the time BIOS.
  122. OPTION_SUPPORT_CHIPSET  =       0       ; build code to support chipset programming.
  123. OPTION_SUPPORT_POWERMAN =       0       ; build code to support power management.
  124. OPTION_SUPPORT_WATCHDOG =       0       ; build code to support a watchdog timer.
  125. OPTION_SUPPORT_SOFT_ERR =       1       ; build code to support soft error messages.
  126. OPTION_SUPPORT_TIMER_DEBUG =    0       ; build code to update video screen @ 18.2Hz.
  127. OPTION_SUPPORT_ROM_BASIC =      0       ; build code to call ROM E000h if no boot device.
  128. OPTION_SUPPORT_RAM_DISK =       1       ; build code to support ext mem RAM disk.
  129. OPTION_SUPPORT_FLASH =          0       ; build code to support flash devices.
  130. OPTION_SUPPORT_EXHMEMTEST =     1       ; build code to perform exhaustive mem test.
  131. OPTION_SUPPORT_KNOWN_ENTRYPOINTS = 1    ; build code at compatible locations.
  132. OPTION_SUPPORT_IBM_COMPAT =     1       ; build IBM compatibility string.
  133. OPTION_SUPPORT_SERMSG =         0       ; build code to support RS232 serial mfg protocol.
  134. OPTION_SUPPORT_MFGTESTS =       0       ; build code to support manufacturing tests.
  135. OPTION_SUPPORT_RFD_DISK =       0       ; build code to support resident flash disk.
  136. OPTION_SUPPORT_PARITY =         0       ; build code to initialize RAM parity.
  137. OPTION_SUPPORT_PASSWORD =       0       ; build code for password checking.
  138. OPTION_SUPPORT_DRIVE_TABLE =    0       ; build table of known IDE drive types.
  139. OPTION_SUPPORT_DEMO     =       0       ; build demo version of BIOS.
  140. OPTION_SUPPORT_PCMCIA   =       0       ; build PCMCIA Socket Services code.
  141. OPTION_SUPPORT_ATA      =       0       ; build PCMCIA ATA init code only.
  142.  
  143. OPTION_FORCE_9600_BAUD =        1       ; always set 9600 baud on serial ports.
  144.  
  145. ;       Select the following to enable setup screens as desired.  Note
  146. ;       you may need to enable other options (for example, SUPPORT_IDE
  147. ;       or SUPPORT_DEBUGGER) to allow those SETUP screens to function.
  148.  
  149. OPTION_SETUP_ADVANCED   =       1       ; build SETUP screen for advanced options.
  150. OPTION_SETUP_CHIPSET    =       0       ; build SETUP screen for OEM's chipset.
  151. OPTION_SETUP_PASSWORD   =       0       ; build SETUP password screen.
  152. OPTION_SETUP_DIAGNOSTICS=       1       ; build SETUP screen for std diagnostics.
  153. OPTION_SETUP_OEM_DIAG   =       0       ; build SETUP screen for OEM diagnostics.
  154. OPTION_SETUP_DEBUGGER   =       1       ; build SETUP option to break into debugger.
  155. OPTION_SETUP_IDE        =       0       ; build SETUP screen to manage hard drives.
  156. OPTION_SETUP_SHADOWCACHE=       0       ; build SETUP screen for shadowing/cache.
  157. OPTION_SETUP_POWERMAN   =       0       ; build SETUP screen for power management.
  158. OPTION_SETUP_MFGLINK    =       0       ; build SETUP screen for manufacturing link.
  159. OPTION_SETUP_RAMDISK    =       1       ; build SETUP option to format RAM disk.
  160.  
  161. ;       Select one of the following options to enable the code that provides
  162. ;       PCMCIA socket services for a particular adapter.
  163.  
  164. OPTION_PCMCIA_365       =       0       ; Intel 82365 controller.
  165. OPTION_PCMCIA_6710      =       0       ; Cirrus 6710 controller (1 socket).
  166. OPTION_PCMCIA_6720      =       0       ; Cirrus 6720 controller (2 sockets).
  167.  
  168. ;       Select one of the following options to enable the code that provides
  169. ;       ATA window initialization for a particular adapter.  This code should
  170. ;       not be enabled if you are defining Socket Services for PCMCIA cards.
  171.  
  172. OPTION_ATA_365          =       0       ; Intel 82365 controller.
  173. OPTION_ATA_6710         =       0       ; Cirrus 6710 controller (1 socket).
  174. OPTION_ATA_6720         =       0       ; Cirrus 6720 controller (2 sockets).
  175.  
  176. ;       Select one of the following methods to support DRAM refresh.
  177. ;       Enable the CHARGE option on PC/XT computers in addition to 8237.
  178.  
  179. OPTION_REFRESH_8237     =       0       ; enable 8237A/8254 DRAM refresh.
  180. OPTION_REFRESH_CHIPSET  =       0       ; enable chipset DRAM refresh.
  181. OPTION_REFRESH_CPU      =       0       ; enable CPU DRAM refresh controller.
  182. OPTION_REFRESH_CHARGE   =       0       ; charge DRAMs after starting refresh.
  183.  
  184. ;       Select one of the following methods to support DMA.
  185.  
  186. OPTION_DMA_8237         =       0       ; use external 8237 DMA controller.
  187. OPTION_DMA_CPU          =       0       ; use internal 8237 DMA controller.
  188.  
  189. ;       Select one or both of the following methods to support interrupts.
  190.  
  191. OPTION_INT_8259         =       1       ; use external 8259's int controller.
  192. OPTION_INT_CPU          =       0       ; use internal CPU interrupt controller.
  193.  
  194. ;       Select one or both of the following methods to support timers.
  195.  
  196. OPTION_TIMER_8254       =       1       ; use external 8254 timer.
  197. OPTION_TIMER_CPU        =       0       ; use internal CPU timer controller.
  198.  
  199. ;       Select one of the following (or none) methods to support
  200. ;       a watchdog timer.
  201.  
  202. OPTION_WATCHDOG_CHIPSET =       0       ; use chipset watchdog timer.
  203. OPTION_WATCHDOG_CPU     =       0       ; use CPU watchdog timer.
  204.  
  205. ;       Select zero, one or more of the following options related to the 8042.
  206.  
  207. OPTION_8042_TESTP22P23  =       0       ; test block/unblock of these pins.
  208. OPTION_8042_READPWRSTAT =       0       ; read power-on status from keyboard.
  209. OPTION_8042_CHECKBAT    =       0       ; test outcome of BAT from keyboard.
  210. OPTION_8042_PS2         =       0       ; wait 7us after read of 8042 status reg.
  211. OPTION_8042_WAIT_BEFORE_BAT =   1       ; delay before BAT.
  212.  
  213. ;       Select one of the following (or none) methods to do keyboard input.
  214.  
  215. OPTION_KEYBOARD_PCAT    =       1       ; use PC keyboard latch or 8042 kbd.
  216. OPTION_KEYBOARD_CUSTOMER=       0       ; use customer-supplied code.
  217.  
  218. ;       Select one of the following (or none) methods to do video.
  219.  
  220. OPTION_VIDEO_6845       =       0       ; use 6845 mono/color CRT controller.
  221. OPTION_VIDEO_HD61830    =       1       ; use Hitachi HD61830 LCD controller.
  222. OPTION_VIDEO_CUSTOMER   =       0       ; use customer-supplied code.
  223. OPTION_VIDEO_DUPLICATE  =       0       ; copy redirected INT 10h output to CRT.
  224. OPTION_VIDEO_VIDEOMEM   =       0       ; video memory available (test enabled).
  225.  
  226. ;       Select one or more of the following methods to handle critical POST errors.
  227.  
  228. OPTION_CRITICAL_CHIPSET =       0       ; pass ctrl to chipset personality module.
  229. OPTION_CRITICAL_BEEP    =       1       ; beep the speaker w/beep code.
  230. OPTION_CRITICAL_LPTFAIL =       0       ; consider missing LPT ports critical.
  231.  
  232. ;       Select one or more of the following options related to soft POST errors.
  233.  
  234. OPTION_SOFTERR_SETUP    =       0       ; enter setup if soft error encountered.
  235.  
  236. ;       Select any of the following to enable OEM manufacturing tests.
  237.  
  238. OPTION_MFGTESTS_BOOT    =       0       ; enter MFG if TESTMODE before O/S boot.
  239. OPTION_MFGTESTS_CRITICAL=       0       ; enter MFG if critical error during POST.
  240.  
  241. ;       Select any of the following to enable exhaustive memory tests during POST.
  242.  
  243. OPTION_MEMTEST_LOW_POST =       1       ; test low (<1MB) exhaustively in POST.
  244. OPTION_MEMTEST_HIGH_POST=       0       ; test high (>1MB) exhaustively in POST.
  245. OPTION_MEMTEST_WAIT     =       0       ; pause between tested blocks.
  246. OPTION_MEMTEST_CLEAR    =       1       ; clear blocks to 0000h's during testing.
  247. OPTION_MEMTEST_CLICK    =       1       ; click speaker during test.
  248.  
  249. ;       Select one Flash mode (PROTMODE or LINEAR) to tell the BIOS
  250. ;       which low-level driver interface will be used in your system.
  251.  
  252. OPTION_FLASH_PROTMODE   =       0       ; protected-mode Flash interface.
  253. OPTION_FLASH_LINEAR     =       0       ; linear Flash interface.
  254. OPTION_FLASH_8BIT       =       0       ; put 16-bit Flash driver in 8-bit mode.
  255.  
  256. ;       Select one of the following Flash device types if Flash programming
  257. ;       is to be provided in the core BIOS.
  258.  
  259. OPTION_FLASH_28F008     =       0       ; Intel 28F008 sectored parts.
  260. OPTION_FLASH_28F016     =       0       ; Intel 28F016 sectored parts.
  261. OPTION_FLASH_28F032     =       0       ; Intel 28F032 sectored parts.
  262. OPTION_FLASH_28F001     =       0       ; Intel 28F001 boot block parts.
  263. OPTION_FLASH_28F002     =       0       ; Intel 28F002 boot block parts.
  264. OPTION_FLASH_28F004     =       0       ; Intel 28F004 boot block parts.
  265. OPTION_FLASH_28F100     =       0       ; Intel 28F100 boot block parts.
  266. OPTION_FLASH_28F200     =       0       ; Intel 28F200 boot block parts.
  267. OPTION_FLASH_28F400     =       0       ; Intel 28F400 boot block parts.
  268. OPTION_FLASH_29F010     =       0       ; AMD 29F010 sectored parts.
  269. OPTION_FLASH_29F040     =       0       ; AMD 29F040 sectored parts.
  270. OPTION_FLASH_29F100     =       0       ; AMD 29F100 boot block parts.
  271. OPTION_FLASH_29F200     =       0       ; AMD 29F200 boot block parts.
  272. OPTION_FLASH_29F400     =       0       ; AMD 29F400 boot block parts.
  273. OPTION_FLASH_28F256     =       0       ; Intel/AMD 28F256 bulk erase parts.
  274. OPTION_FLASH_28F512     =       0       ; Intel/AMD 28F512 bulk erase parts.
  275. OPTION_FLASH_28F010     =       0       ; Intel/AMD 28F010 bulk erase parts.
  276. OPTION_FLASH_28F020     =       0       ; Intel/AMD 28F020 bulk erase parts.
  277. OPTION_FLASH_EMULATE    =       0       ; emulate Flash with RAM.
  278. OPTION_FLASH_CUSTOMER   =       0       ; customer-defined part.
  279.  
  280. ;       Select one or more of the following methods to support cache.
  281.  
  282. OPTION_CACHE_CPU        =       0       ; use internal CPU cache controller.
  283. OPTION_CACHE_CHIPSET    =       0       ; use chipset cache controller.
  284. OPTION_CACHE_8042       =       0       ; use 8042 to control cache.
  285. OPTION_CACHE_IOPORT     =       0       ; use I/O port to control cache.
  286.  
  287. ;       Select one or more of the following methods to support turbo mode.
  288.  
  289. OPTION_TURBO_CPU        =       0       ; use internal CPU turbo controller.
  290. OPTION_TURBO_CHIPSET    =       0       ; use chipset turbo controller.
  291. OPTION_TURBO_8042       =       0       ; use 8042 to control turbo mode.
  292. OPTION_TURBO_IOPORT     =       0       ; use I/O port to control turbo mode.
  293.  
  294. ;       Select one or more of the following methods to support CPU speed mode.
  295.  
  296. OPTION_SPEED_CPU        =       0       ; use internal CPU speed controller.
  297. OPTION_SPEED_CHIPSET    =       0       ; use chipset CPU speed controller.
  298. OPTION_SPEED_8042       =       0       ; use 8042 to control CPU speed.
  299. OPTION_SPEED_IOPORT     =       0       ; use I/O port to control CPU speed.
  300.  
  301. ;       Select one or more of the following methods to gate the A20 line.
  302.  
  303. OPTION_A20_8042         =       0       ; program 8042 to enable/disab A20.
  304. OPTION_A20_CHIPSET      =       0       ; program chipset to enab/disab A20.
  305. OPTION_A20_PORT92       =       1       ; use I/O port 92h to enab/disab A20.
  306.  
  307. ;       The A20 check works by enabling the A20 gate, then testing to see
  308. ;       that memory isn't replicated at 0MB and 1MB boundaries, respectively.
  309. ;       If no memory is in the machine, some motherboards will fail this test
  310. ;       even though the A20 logic is working properly.
  311.  
  312. OPTION_A20_FAILPOST     =       0       ; set to 1 to fail if A20 fails.
  313.  
  314. ;       Select only one of the following methods to reboot the computer.
  315. ;       You MUST select one of these methods for your target.
  316.  
  317. OPTION_REBOOT_JUMP      =       0       ; jump to F000:FFF0 to re-run POST.
  318. OPTION_REBOOT_PORT92    =       1       ; set bit 0 in port 92 to reboot.
  319. OPTION_REBOOT_8042      =       0       ; reboot by pulsing 8042 line.
  320.  
  321. ;       Select one of the following methods to switch back to real mode.
  322. ;       On 286-based systems, there is no instruction to switch to real
  323. ;       mode, so port 92h must be used to reset the machine, or a triple-
  324. ;       fault method can be used to cause the processor to enter shutdown.
  325. ;       WARNING: The triple-fault method is patented by Microsoft; you must
  326. ;       obtain a license from Microsoft in order to enable this option.
  327. ;       General Software specifically disavows any responsibility for the
  328. ;       use or inability to use the triple-fault method in any situation.
  329.  
  330. OPTION_TOREAL_PORT92    =       0       ; set bit 0 in port 92/shutdown byte.
  331. OPTION_TOREAL_8042      =       0       ; switch to real mode via 8042 reboot.
  332. OPTION_TOREAL_TRIPLEFLT =       0       ; triple fault/shutdown byte.
  333. OPTION_TOREAL_CPU       =       1       ; switch with 386 instruction.
  334.  
  335. ;       Select one or more of the following methods to support serial I/O.
  336.  
  337. OPTION_SERIAL_8250      =       1       ; use external 8250 serial controller.
  338. OPTION_SERIAL_CPU       =       0       ; use CPU serial controller.
  339. OPTION_SERIAL_WAIT_DSR  =       0       ; wait for DSR before receiving bytes.
  340. OPTION_SERIAL_WAIT_DSRCTS =     0       ; wait for DSR & CTS before sending bytes.
  341. OPTION_SERIAL_FIFO      =       0       ; enable FIFO if available.
  342.  
  343. ;       Select one or more of the following methods to support parallel I/O.
  344.  
  345. OPTION_PARALLEL_EXTERNAL=       1       ; use external parallel ports.
  346. OPTION_PARALLEL_CPU     =       0       ; use CPU parallel controller.
  347.  
  348. ;       Select one (or none) of the following methods to support
  349. ;       power management.
  350.  
  351. OPTION_POWERMAN_CPU     =       0       ; use CPU power management routines.
  352. OPTION_POWERMAN_CHIPSET =       0       ; use chipset power management routines.
  353.  
  354. ;       Select one or more of the following options for debugger support.
  355.  
  356. OPTION_DEBUG_HOTKEY     =       0       ; use ALT+CTRL to break-into the debugger.
  357. OPTION_DEBUG_FLASH      =       0       ; enable Flash debugging support.
  358. OPTION_DEBUG_WATCHINT   =       0       ; enable software interrupt watchpoints.
  359. OPTION_DEBUG_NMI        =       1       ; enable NMI breakins to debugger.
  360.  
  361. ;       Enable the following options as necessary for floppy I/O.  If your
  362. ;       system does not have a fully-compatible DMA controller that can be
  363. ;       used to perform floppy I/O, then you need to set the DMA option to 0.
  364. ;       Set 82077 only if you have a controller with a FIFO.  The SEEK option
  365. ;       is used during initialization to seek the head during POST.
  366.  
  367. OPTION_FLOPPY_SEEK      =       0       ; (BCPA) enable/disable floppy seek during POST.
  368. OPTION_FLOPPY_DMA       =       0       ; use DMA to access drive, else polled.
  369. OPTION_FLOPPY_82077     =       0       ; use 82077 on-chip FIFO.
  370. OPTION_FLOPPY_WATCHIO   =       0       ; print-out floppy INT 13h calls.
  371.  
  372. ;       Enable the following option if you want to perform an IDE SEEK
  373. ;       operation as part of the IDE initialization process.  This option
  374. ;       is meaningful ONLY if OPTION_SUPPORT_IDE is enabled.  Note that
  375. ;       setting OPTION_IDE_SEEK to 0 disables the code that does the work,
  376. ;       so it cannot be patched.  Setting it to 1 enables the code and sets
  377. ;       its default state to enabled.
  378.  
  379. OPTION_IDE_RESET        =       0       ; reset IDE controller during POST.
  380. OPTION_IDE_SEEK         =       0       ; (BCPA) enable/disable IDE seek during POST.
  381. OPTION_IDE_DISABLE_INTS =       0       ; use CLI/STI around sector I/O.
  382. OPTION_IDE_SLOWDOWN     =       0       ; delay after each word transfer.
  383.  
  384. ;       Enable the following option to beep before booting the O/S.
  385. ;       You must have the SOUND option enabled for this to take effect.
  386.  
  387. OPTION_BEEP_ON_BOOT     =       1       ; (BCPA) enable/disable beep before booting.
  388.  
  389. ;       Enable the following option if you want to avoid lengthy memory
  390. ;       tests and delays on cold boots.  With FAST_BOOT enabled, memory
  391. ;       will be initialized but only checked at 64KB intervals.
  392.  
  393. OPTION_FAST_BOOT        =       0       ; boot as quickly as possible.
  394.  
  395. ;       Choose one of the following sources for the real-time clock.
  396.  
  397. OPTION_RTC_CMOS         =       1       ; use the CMOS Real-Time Clock.
  398. OPTION_RTC_72421        =       0       ; use 72421 RTC.
  399.  
  400. ;       Select one of the following methods to reset the memory controller
  401. ;       on power-on, if required.  The only known memory controller that
  402. ;       needs this is the Intel 82335SX.  When in doubt, leave these off.
  403.  
  404. OPTION_RSTMEMCTL_8042   =       0       ; reset memory ctrllr via 8042.
  405.  
  406. ;       Set the following options to route the standard keyboard/video,
  407. ;       setup keyboard/video, and debugger keyboard/video to the appropriate
  408. ;       devices.  The value 0 means the PC keyboard or video board.  A
  409. ;       nonzero value means the specified COM port (COM1=1, COM2=2, etc.).
  410.  
  411. OPTION_CONIO_STANDARD   =       0       ; (BCPA) 0=use PC video/keyboard.
  412. OPTION_CONIO_DEBUG      =       1       ; (BCPA) 0=use PC video/keyboard.
  413. OPTION_CONIO_SETUP      =       1       ; (BCPA) 0=use PC video/keyboard.
  414.  
  415. ;       Select one of the following options if you have enabled the ROM disk.
  416.  
  417. OPTION_ROMDISK_LOW      =       0       ; low-memory ROM disk (real mode).
  418. OPTION_ROMDISK_HIGH     =       1       ; high-memory ROM disk (protected mode).
  419.  
  420. ;       Set the following option to specify the port number (0=none,
  421. ;       1=COM1, 2=COM2, etc.) associated with the remote disk driver.
  422.  
  423. OPTION_REMDISK_PORT     =       0       ; (BCPA) 0=none, 1=COM1, 2=COM2, etc.
  424.  
  425. ;       BIOS date identification.
  426.  
  427. BIOS_DATE       EQU     '07/05/96'      ; (BCPA) build date of BIOS.
  428. BIOS_NAME       EQU     'Copyright (C) 1990-1996 General Software, Inc.'
  429. BIOS_RESERVED   EQU     ', All rights reserved.', 0, 1ah
  430. BIOS_LICENSEE   EQU     'Vendor name and message goes here.'
  431.  
  432. ;       Sometimes, programming of UART baud rates and other things such
  433. ;       as timers, can be directly affected by the CPU clock speed.  While
  434. ;       this isn't the case in PC/AT-class machines, it is in 186-EC or
  435. ;       other similar designs.  The following parameter is only used in
  436. ;       those unusual systems, so you need not set it unless you're using
  437. ;       186-class or V-series CPUs.
  438.  
  439. CPU_MHZ         =       20              ; clock speed (used for UART timing).
  440.  
  441. ;       You must select the proper CPU class for the BIOS you are building.
  442.  
  443. CPUCLASS_X86    =       1               ; 808x, 8028x, i386, i486, Pentium.
  444. CPUCLASS_186EA  =       2               ; Intel 80186-EA processor.
  445. CPUCLASS_186EB  =       3               ; Intel 80186-EB processor.
  446. CPUCLASS_186EC  =       4               ; Intel 80186-EC processor.
  447. CPUCLASS_386EX  =       5               ; Intel 80386-EX processor.
  448. CPUCLASS_V25    =       6               ; NEC V25 processor.
  449. CPUCLASS_ELAN   =       9               ; AMD Elan processor.
  450. CPUCLASS_V51    =       10              ; NEC V51 processor.
  451.  
  452. CPUCLASS        =       CPUCLASS_386EX
  453.  
  454. ;       You must select the proper chipset for the BIOS you are building.
  455.  
  456. CHIPSET_NONE    =       1               ; No chipset; this is the default.
  457. CHIPSET_SL82C461 =      2               ; Symphony 82c461 chipset.
  458. CHIPSET_VL82C310 =      3               ; VLSI 82c310 chipset.
  459. CHIPSET_CT82C836 =      4               ; C&T 82c836 chipset.
  460. CHIPSET_ELAN    =       6               ; AMD Elan Eval board.
  461. CHIPSET_SEQUOIA1=       7               ; PicoPower SEQUOIA-1 chipset.
  462. CHIPSET_HT18    =       8               ; Headland Technology HT-18 (386SX).
  463. CHIPSET_R380EX  =       9               ; RadiSys R380EX chipset.
  464.  
  465. CHIPSET         =       CHIPSET_R380EX  ; select chipset type here.
  466.  
  467. ;       If you are using an evaluation board, and you want to use default
  468. ;       values for the CPU initialization MACRO, then select that board here.
  469. ;       If you select a supported board, then you will be invoking a macro
  470. ;       defined in the associated CPU INC file (i.e., 186EC.INC or 386EX.INC).
  471.  
  472. BOARDCLASS_NONE =       0               ; no specific evaluation board.
  473. BOARDCLASS_I186EC =     1               ; Intel 186-EC eval board.
  474. BOARDCLASS_MB0  =       2               ; Intel 386-EX MB0 evaluation board.
  475. BOARDCLASS_MB1  =       3               ; Intel 386-EX MB1 evaluation board.
  476. BOARDCLASS_MB1_ROM_AT_C000 = 4          ; Intel 386-EX MB1 eval board w/256K ROM disk.
  477. BOARDCLASS_EXPLR1 =     5               ; Intel 386-EX EXPLORER 1 eval board.
  478. BOARDCLASS_CUSTOM =     6               ; custom board defined by customer.
  479. BOARDCLASS_ELANREV2 =   7               ; AMD Elan rev 2.2 board.
  480. BOARDCLASS_EXPLR2 =     8               ; Intel Explorer 2 eval board.
  481.  
  482. BOARDCLASS      =       BOARDCLASS_EXPLR2 ; sample only.
  483.  
  484. ;       Power-on delay, in "loops".  The code doesn't know anything about
  485. ;       CPU cycles during power-on delay since peripherals aren't operating.
  486.  
  487. POWER_ON_DELAY  =       255             ; (BCPA) # iterations through a loop $ loop.
  488.  
  489. ;       The following parameters define the end of standard CMOS,
  490. ;       the beginning of the Extended CMOS (used by the Chipset) and
  491. ;       the offset of the beginning of the CMOS cache area.
  492.  
  493. CONFIG_MAX_CMOS_LOCATIONS =     40h     ; (BCPA) 40 on old 286 boards.
  494. CONFIG_START_CHIPSET_CMOS =     40h     ; (BCPA) start of extended CMOS.
  495. CONFIG_START_CMOS_CACHE =       10h     ; (BCPA) starting offset for CMOS read/write cache.
  496. CONFIG_CMOS_INDEX       =       70h     ; index port for RTC/CMOS.
  497. CONFIG_CMOS_DATA        =       71h     ; data port for RTC/CMOS.
  498.  
  499. ;       This parameter defines the initial state of the CMOS Real-Time Clock.
  500.  
  501. CONFIG_DEFAULT_RTC      =       026h    ; (BCPA) CMOS RTC time base/rate.
  502.  
  503. ;       The following parameters are used to initialize CMOS locations
  504. ;       in the event that CMOS has lost power or is otherwise corrupted.
  505. ;       The routine ReadCmosConfig in BIOS.ASM uses these fields to
  506. ;       program the CMOS bytes directly.  Refer to CMOS.INC for details
  507. ;       about the values of these bytes.
  508.  
  509. OEM_FLOPPY_NONE         =       0
  510. OEM_FLOPPY_360          =       1
  511. OEM_FLOPPY_12           =       2
  512. OEM_FLOPPY_720          =       3
  513. OEM_FLOPPY_144          =       4
  514. OEM_FLOPPY_288          =       5
  515. OEM_FLOPPY_ROM          =       6       ; ROM disk.
  516. OEM_FLOPPY_RAM          =       7       ; RAM disk.
  517. OEM_FLOPPY_RFD          =       8       ; Resident Flash disk.
  518.  
  519. OEM_INIT_CMOS_FLOPPY    =       ((OEM_FLOPPY_NONE SHL 4) OR (OEM_FLOPPY_NONE))
  520. OEM_INIT_CMOS_HARD      =       10h     ; (BCPA) drive C: is type 1.
  521. OEM_INIT_CMOS_EQUIP     =       00000001b ; (BCPA) default devflags lsb byte.
  522. OEM_INIT_CMOS_TYPEMATIC =       00h     ; (BCPA) no typematic programming.
  523. OEM_INIT_CMOS_OPTIONS   =       CMOS_OPTIONS_BOOT_A_C ; (BCPA) boot A: then C:.
  524. OEM_INIT_CMOS_ADVSETUP  =       (CMOS_ADVSETUP_TEST1MB OR  \
  525.                                  CMOS_ADVSETUP_TESTCLICK OR \
  526.                                  CMOS_ADVSETUP_DELETE)          ; (BCPA).
  527. OEM_INIT_CMOS_SYSINFO   =       (CMOS_SYSINFO_KEYBOARD OR \
  528.                                  CMOS_SYSINFO_CONFIGBOX OR \
  529.                                  CMOS_SYSINFO_ROMDISK OR \
  530.                                  CMOS_SYSINFO_EXHMEMTEST OR \
  531.                                  CMOS_SYSINFO_HDSEEK)           ; (BCPA).
  532. OEM_INIT_CMOS_SHADOW1   =       00h     ; (BCPA) shadow nothing by default.
  533. OEM_INIT_CMOS_SHADOW2   =       00h     ; (BCPA) shadow nothing by default.
  534. OEM_INIT_CMOS_OPTIMIZE  =       (CMOS_OPTIMIZE_POWER OR \
  535.                                  CMOS_OPTIMIZE_RFD OR \
  536.                                  CMOS_OPTIMIZE_ATA)
  537.  
  538. OEM_INIT_CMOS_HARD_0    =       0       ; hard disk drive type #0.
  539. OEM_INIT_CMOS_HARD_1    =       0       ; hard disk drive type #1.
  540.  
  541. OEM_INIT_CMOS_FD0_CYL   =       0       ; fixed disk 0 cylinders.
  542. OEM_INIT_CMOS_FD0_HEADS =       0       ; fixed disk 0 heads.
  543. OEM_INIT_CMOS_FD0_SPT   =       0       ; fixed disk 0 sectors per track.
  544.  
  545. OEM_INIT_CMOS_FD1_CYL   =       0       ; fixed disk 0 cylinders.
  546. OEM_INIT_CMOS_FD1_HEADS =       0       ; fixed disk 0 heads.
  547. OEM_INIT_CMOS_FD1_SPT   =       0       ; fixed disk 0 sectors per track.
  548.  
  549. ;       Number of attempts made to read from the floppy drive before failing.
  550.  
  551. CONFIG_FLOPPY_RETRY     =       3       ; (BCPA) default # of floppy retries.
  552.  
  553. ;       Number of attempts made to boot from a drive before failing.
  554.  
  555. CONFIG_BOOT_ATTEMPT     =       1       ; (BCPA) default # of boot attempts from each drive.
  556.  
  557. ;       DRAM refresh interval, specified in microseconds.
  558.  
  559. CONFIG_REFRESH_INTERVAL =       15      ; (BCPA) 15us refresh period.
  560.  
  561. ;       Number of times to loop waiting for the 8042 controller to be "ready".
  562.  
  563. CONFIG_WAIT_8042        =       00400h  ; (BCPA) amount of "time" to wait for 8042 controller.
  564.  
  565. ;       Number of times to loop waiting for the 8042 controller to
  566. ;       finish executing a command.
  567.  
  568. CONFIG_SETTLE_8042      =       400h    ; (BCPA) amount of "time" to wait for 8042 controller.
  569.  
  570. ;       Number of times to loop for delay during memory test count-ups.
  571.  
  572. CONFIG_WAIT_COUNT       =       200h    ; (BCPA) delay between block checks.
  573.  
  574. ;       Number of times to loop for delay during LPT initialization.
  575.  
  576. CONFIG_WAIT_LPT         =       1000h   ; (BCPA) delay while LPT port initializes.
  577.  
  578. ;       Default BIOS I/O timeout values, in seconds.
  579.  
  580. CONFIG_SERIAL_TIMEOUT   =       1       ; (BCPA) one second timeout by default.
  581. CONFIG_PARALLEL_TIMEOUT =       1       ; (BCPA) one second timeout by default.
  582.  
  583. ;       The following parameter defines the POST status I/O port number.
  584. ;       Normally, this is 80h in a PC-compatible platform, although it
  585. ;       can be other values (such as 3ffh for the scratchpad register
  586. ;       on a 16550 UART), so that CsPostError can get at the value.
  587.  
  588. CONFIG_POST_PROGRESS_PORT  =    80h     ; I/O port to write POST codes to.
  589. CONFIG_POST_PROGRESS_COM   =    3f8h    ; base I/O address of POST COM port.
  590. CONFIG_MFG_PROGRESS_PORT   =    80h     ; I/O port to write MFGMODE codes to.
  591.  
  592. ;       The following parameter (PORT) is used by the INT 15h function 86h
  593. ;       "wait" function as the I/O port number to read in order to establish
  594. ;       a CPU-independent timing.  CYCLES specifies the number of I/O's to
  595. ;       perform inside the loop.  If your machine runs its I/O bus faster than
  596. ;       normal, you may need to increase this value to slow down the timing.
  597.  
  598. CONFIG_IODELAY_PORT     =       2ffh    ; I/O port to use for wait states.
  599. CONFIG_IODELAY_CYCLES   =       1       ; # I/O instructions to use in loop.
  600. CONFIG_IODELAY_DIVISOR  =       15      ; divide mics by this to get loops.
  601.  
  602. ;       Maximum amount of low memory to allow (so the BIOS memory test
  603. ;       doesn't try to include VGA memory as a part of low memory).  If
  604. ;       your configuration has more than 640K of low memory, then you
  605. ;       need to change this limit to effectively use that memory.  You
  606. ;       can reduce the 640 by some amount if you need a private scratch
  607. ;       space at the upper end of memory as well.
  608.  
  609. CONFIG_MAX_LOW_MEMORY   =       640     ; (BCPA) default low memory size limit.
  610.  
  611. ;       If you have selected OPTION_SUPPORT_TESTBASEMEM, then you must
  612. ;       select the size of low memory to be tested.  This memory will
  613. ;       be wiped out by POST.  Normally, this is set to 64 (64KB), but
  614. ;       you can change it to some number LESS than that to preserve any
  615. ;       data stored in SRAM, etc., that you don't want cleared during POST.
  616.  
  617. CONFIG_TESTBASE_SIZE    =       64      ; (BCPA) low memory test size in KB.
  618.  
  619. ;       The following parameter determines the maximum amount of extended
  620. ;       memory to test, in 64KB blocks, starting at 1MB.  Warning: If this
  621. ;       parameter causes the memory test to extend into Flash memory blocks,
  622. ;       it can cause a machine lock-up because the test involves writing
  623. ;       data TO the memory, and these data can be taken as COMMANDS by Flash.
  624.  
  625. CONFIG_MAX_EXT_MEMORY   =       48      ; 4MB limit for EX MB1 board.
  626.  
  627. ;       The BIOS needs a 1K area for scratch workspace.  This is initially
  628. ;       located at the segment address specified below, but is later moved
  629. ;       automatically (during POST) by the BIOS to the top of memory.
  630.  
  631. CONFIG_EXTRA_SEGMENT    =       0050h   ; (BCPA) by default, this starts at seg 50h.
  632.  
  633. ;       Default Equipment byte.
  634.  
  635. CONFIG_DEFAULT_EQUIP_BYTE =     00111101b ; (BCPA) default equip.byte for PC/XT.
  636.  
  637. ;       ROM Scan configuration parameters.
  638.  
  639. CONFIG_VIDEO_ROM_SCAN   =       0c000h  ; (BCPA) seg addr of video adapter ROM.
  640. CONFIG_LOW_ROM_SCAN     =       0c800h  ; (BCPA) first seg addr of ROM scan area.
  641. CONFIG_HIGH_ROM_SCAN    =       0f000h  ; (BCPA) first seg addr outside ROM scan.
  642. CONFIG_MINI_DOS_SCAN    =       0e800h  ; (BCPA) seg addr of Mini-DOS.
  643. CONFIG_ROM_SCAN_INTERVAL=       2048    ; (BCPA) bytes between ROM scan addresses.
  644.  
  645. ;       Video configuration parameters.
  646.  
  647. CONFIG_VIDEO_SEG_GRAPHIC=       0a000h  ; (BCPA) seg addr of graphics video RAM.
  648. CONFIG_VIDEO_SEG_MONO   =       0b000h  ; (BCPA) seg addr of monochrome RAM.
  649. CONFIG_VIDEO_SEG_COLOR  =       0b800h  ; (BCPA) seg addr of color RAM.
  650.  
  651. ;       User interface controls.
  652.  
  653. CONFIG_BEEP_LENGTH      =       200     ; (BCPA) duration for beeps to last (x10ms).
  654. CONFIG_BEEP_CYCLE       =       100     ; (BCPA) cycle time for oscillation (x/Hz).
  655. CONFIG_BEEP_8254_TONE   =       0533H   ; (BCPA) divisor for 8254's T2 timer.
  656.  
  657. ;       PCMCIA controller addressing.
  658.  
  659. CONFIG_PCMCIA_IOBASE    =       03e0h   ; standard Cirrus address.
  660.  
  661. ;       8042 cache, speed, and turbo control lines.
  662.  
  663. CONFIG_CACHELINE_8042   =       23      ; (BCPA) cache enable pin number on 8042.
  664. CONFIG_TURBOLINE_8042   =       24      ; (BCPA) turbo mode pin number on 8042.
  665. CONFIG_SPEEDLINE_8042   =       28      ; (BCPA) CPU speed pin number on 8042.
  666. CONFIG_RESETLINE_8042   =       23      ; (BCPA) reset line pin number on 8042.
  667. CONFIG_8042LINE_POSITIVE=       80h     ; (BCPA) positive logic programming on line.
  668. CONFIG_8042LINE_NEGATIVE=       00h     ; (BCPA) negative logic programming on line.
  669.  
  670. ;       RFD/ROM/RAM/REMOTE disk configuration.  The ROMDISK_DATA parameter
  671. ;       specifies a real-mode segment address of the ROM disk data used by
  672. ;       the low memory ROM disk.  If you enable the high memory ROM disk,
  673. ;       then the system uses ROMDISK_DATA_EXT_HI/LO as the physical address
  674. ;       instead of a real-mode 16:16 address.  The RAM disk does not allow
  675. ;       real-mode addressing; instead it uses 32-bit physical addresses.
  676. ;       Similarly, the RFD disk requires 32-bit physical addresses.
  677.  
  678. CONFIG_ROMDISK_DATA     =       0c040h  ; (BCPA) seg addr, image of ROM data.
  679. CONFIG_ROMDISK_DATA_EXT_HI =    0000ch  ; (BCPA) abcd in physaddr=abcdefgh.
  680. CONFIG_ROMDISK_DATA_EXT_LO =    00400h  ; (BCPA) efgh in above address.
  681.  
  682. CONFIG_RAMDISK_DATA_EXT_HI =    00010h  ; (BCPA) abcd in physaddr=abcdefgh.
  683. CONFIG_RAMDISK_DATA_EXT_LO =    00000h  ; (BCPA) efgh in above address.
  684. CONFIG_RAMDISK_MAXSIZE  =       (16*1024) ; max # KB in RAM disk area to scan.
  685.  
  686. CONFIG_RFDDISK_DATA_EXT_HI =    0003ah  ; (BCPA) abcd in physaddr=abcdefgh.
  687. CONFIG_RFDDISK_DATA_EXT_LO =    00000h  ; (BCPA) efgh in above address.
  688. CONFIG_RFDDISK_KBSIZE   =       2048    ; # KB in Flash array.
  689. CONFIG_RFDDISK_KBBLKSIZE=       32      ; # KB in each Flash block.
  690.  
  691. CONFIG_REMDISK_BAUD     =       11      ; (BCPA) 115 kbaud (see ext init INT 14h fn).
  692.  
  693. ;       Flash VPP programming controls.  If your design employs Flash, and
  694. ;       you want Vpp to be under control of the Flash firmware in the BIOS,
  695. ;       you need to tell the BIOS which I/O port to use to control Vpp, and
  696. ;       what the value is that should be written to the port to enable Vpp.
  697. ;       The BIOS ORs-in this value with the port contents when enabling Vpp,
  698. ;       and ANDs-out the value from the port contents when disabling Vpp.
  699. ;       You'll also need to specify the number of microseconds for the enable
  700. ;       function to wait for Vpp to ramp-up.  This is dependent on analog pwr.
  701.  
  702. CONFIG_FLASH_VPP_PORT   =       240h    ; example: use port 240h.
  703. CONFIG_FLASH_VPP_ENAB_MASK =    00100000b ; example: use bit 5.
  704. CONFIG_FLASH_VPP_WAIT_MICS =    100     ; example: wait 100us for Vpp to ramp-up.
  705.  
  706. ;       Flash temporary staging buffer.  This parameter determines what
  707. ;       64KB segment of real-mode memory is to be used as a staging buffer
  708. ;       for Flash operations, if OPTION_SUPPORT_MFGTESTS is enabled.  This
  709. ;       buffer is only used in the manufacturing tests so that the BIOS
  710. ;       can be replaced by transferring a 64KB block over the serial line
  711. ;       to RAM in this area, then issuing a erase/write command to the Flash
  712. ;       to update the Flash block.
  713.  
  714. CONFIG_FLASH_DATASEG    =       2000h   ; 64KB seg for staging data.
  715.  
  716. ;       Flash programming RAM-based code segment.  This parameter defines
  717. ;       the segment in RAM where the Flash routines copy the BIOS to and
  718. ;       run out of during the actual Flash programming.  This is important
  719. ;       so that the Flash device doesn't receive fetch cycles from the CPU
  720. ;       during the programming process.
  721.  
  722. CONFIG_FLASH_CODESEG    =       1000h   ; 64KB seg for copying BIOS to.
  723.  
  724. ;       The custom OEM memory paging mechanism available through INT 15h
  725. ;       function a2h is supported by the following two definitions, which
  726. ;       specify where the segment of the memory window is, and what the
  727. ;       I/O port is that will be used by INT 15h.
  728.  
  729. CONFIG_PAGED_MEM_SEG    =       0d000h  ; segment address of memory window.
  730. CONFIG_PAGED_MEM_REG    =       0380h   ; I/O address of 8-bit page register.
  731.  
  732. ;       Timer programming.  This constant does NOT program the hardware
  733. ;       timer; it only indicates to a few components of the BIOS (such
  734. ;       as the SETUP screen and floppy/hard disk systems) what the frequency
  735. ;       of the INT 1ch timer ticks are.  The constant is used to build
  736. ;       delay values for motor on/off operations, etc.
  737.  
  738. TIMER_0_HZ      =       18              ; (BCPA) used to factor elased time.
  739. TIMER_0_INIT    =       0ffffh          ; initial value for T0 load.
  740.  
  741. ;       Parallel port BIOS configuration.  Specify 0000h for no port.
  742.  
  743. LPT1_BASE       =       0378h           ; (BCPA) LPT1 base address.
  744. LPT2_BASE       =       0278h           ; (BCPA) LPT2 base address.
  745. LPT3_BASE       =       03bch           ; (BCPA) LPT3 base address.
  746.  
  747. ;       Serial port BIOS configuration.  Specify 0000h for no port.
  748.  
  749. COM1_BASE       =       03f8h           ; (BCPA) COM1 base address.
  750. COM2_BASE       =       02f8h           ; (BCPA) COM2 base address.
  751. COM3_BASE       =       03e8h           ; (BCPA) COM3 base address.
  752. COM4_BASE       =       02e8h           ; (BCPA) COM4 base address.
  753.  
  754. ;       Default settings for serial ports.
  755.  
  756. COM1_INIT       =       11100011b       ; (BCPA) 9600, N, 8, 1.
  757. COM2_INIT       =       11100011b       ; (BCPA) 9600, N, 8, 1.
  758. COM3_INIT       =       11100011b       ; (BCPA) 9600, N, 8, 1.
  759. COM4_INIT       =       11100011b       ; (BCPA) 9600, N, 8, 1.
  760.  
  761. ;       Settings for the OEM test manufacturing port protocol.
  762.  
  763. COM1_EOI        =       64h             ; do not modify.
  764. COM2_EOI        =       63h             ; do not modify.
  765.  
  766. MFG_COM_BASE    =       COM2_BASE       ; I/O port.
  767. MFG_INT_VECT    =       (8+3)           ; interrupt vector for COM2.
  768. MFG_EOI_PORT    =       20h             ; first 8259 for COM1/COM2 on PC/AT.
  769. MFG_EOI_CMD     =       COM2_EOI        ; specific EOI command for mfg port.
  770. CONFIG_MFG_BAUD =       1               ; 0=115kb, 1=56, 2=38.4, 3=19.2, 4=9600.
  771.  
  772. ;       These two parameter pairs can be used alone or in combination to
  773. ;       specify I/O ports that can be read to determine if test mode is
  774. ;       active.  Set the REG/REG2 value to 0 to disable that specific test.
  775. ;       When both are specified (nonzero), then EITHER of the test mode
  776. ;       tests can cause the system to enter test mode.
  777.  
  778. MFG_TESTMODE_REG=       0               ; I/O port containing TEST MODE bit.
  779. MFG_TESTMODE_BIT=       01h             ; if bit is set, TEST MODE is enabled.
  780.  
  781. MFG_TESTMODE_REG2=      0               ; I/O port containing TEST MODE bit.
  782. MFG_TESTMODE_BIT2=      00000100b       ; if bit is set, TEST MODE is enabled.
  783.  
  784. ;       Machine type indicator.
  785.  
  786. BIOS_HDWR       =       BIOS_MODEL_AT   ; machine type to be stored in ROM.
  787. BIOS_HDWR_SUB   =       BIOS_SUBMODEL_AT; machine type submodel.
  788.  
  789. ;       Debugger options.
  790.  
  791. DEBUG_CMDBUF_LEN        =       128     ; # bytes in input command buffer.
  792. DEBUG_MAX_BREAKPOINTS   =       8       ; # breakpoints supported.
  793.