elks-enhanced
public
Read
Owner: themaster
Branch: master
Commits: 6893
Updated: 2026-04-19 00:15
Git CLI clone URL
git clone https://www.xt-emporium.com/git/elks-enhanced.git
Fullscreen desktop URL
Code
Commits
History
Branches
Bug Reports
Discussions
Compare
Settings
elks-enhanced
/
Documentation
/
text
/
rom_configuration.txt
File editor
Configuration for OS-Loader ============================ Most options are made to reduce the size of code and (constant) data. If an option not defined as absent, a test for this device is performed. An embedded 8086 system you can use without full IBM BIOS. So al lot of BIOS variable and BIOS-function (INTxx) are not implemented. In this cases you must perform the results directly. The bootsector code isn't used for ROM code. setup.S made the full OS/loader function. 'Build kernel as ROM-bootable' CONFIG_ROMCODE ------------------------------------------------- Reduces the code and data size. Only the result strings for the specified group included to the code. 'System has an FPU' CONFIG_HW_FPU -------------------------------------------- Most systems do not have an FPU. Reduces the code size. 'System has a keyboard BIOS (if no BIOS-Int 16h)' CONFIG_HW_KEYBOARD_BIOS ------------------------------------------------------------------ Systems with SIO console doesn't need a keyboard BIOS 'System has a PS/2 pointing device' CONFIG_HW_PS2_MOUSE ------------------------------------------------------ No search to PS/2 mouse. The variable is placed to the address 01ff in setup segment. This variable generates a 500 bytes memory hole. The device should disabled until the address is fixed. 'System has a hard drive CONFIG_HW_HARD_DRIVE ------------------------------------------------------------ Do not init a hard disk. A comment in 0.76 says you should disable this option. 'System has a floppy drive' CONFIG_HW_FLOPPY_DRIVE ----------------------------------------------- Init floppy. The kernel code is in ROM, so you doesn't need this. 'Get fontinfo via CRT-BIOS (40h:85h)' CONFIG_HW_VIDEO_HOC y 'High of character in lines' CONFIG_HW_VIDEO_LINES_PER_CHARACTER 'Lines per page' CONFIG_HW_VIDEO_LINES_PER_SCREEN ------------------------------------------------------------------- The BIOS placed font information in the BIOS data space. The normal values are 8 and 25. -------------------------------------------------- 'absolute segment location of target system' -------------------------------------------------- - - In this area you specify the location of all segments. The code is - always placed in the ROM are, the data (DATA and BSS) in RAM. 'Codesegment for setup.S (SEG, size ca. 0x60 ROM)' CONFIG_ROM_SETUP_CODE ------------------------------------------------------------------------ The OS/loader setup.S *must* place at start of a 2 kB segment, therefore the BIOS looks only at this position after user ROMs. 'Codesegment kernel (SEG, ca. 64k ROM)' CONFIG_ROM_KERNEL_CODE ------------------------------------------------------------------------- Position for kernel code (including kernel DATA) 'Datasegment for setup.S (SEG, size ca. 0x10 RAM)' CONFIG_ROM_SETUP_DATA ------------------------------------------------------------------------ Position where the computer configuration infos stored. 'Datasegment (IRQ-Scheduler) (SEG, size: ca. 0x5 RAM)' CONFIG_ROM_IRQ_DATA ---------------------------------------------------------------------------- The ELKS kernel used in original CS variables in some routines. In ROM case this was fixed by moving this into this special RAM segment. 'Datasegment (DATA+BSS+STACK) (SEG, ca. 64k RAM)' CONFIG_ROM_KERNEL_DATA ------------------------------------------------------------------------- To this area the kernel DATA is copied form ROM (kernel CODE). --------------------------------------- 'Information for ROM-Image generator' --------------------------------------- - - The images of kernel, setup and (if you want) the power on code (a small - BIOS) must merged to one big image for the PROM. You also can add a - reset vector (at f000:fff0) in the image. 'Startaddress of ROM (for offset in image-file)' CONFIG_ROM_BASE -------------------------------------------------------------------- Basis of the ROM image. Normally 0xf000 for 64 k PROMS (0xe000 for 128 k PROMS). This address is used as offset for the next addresses 'Area with BIOS Checksum in kbytes (normally 64)' CONFIG_ROM_CHECKSUM_SIZE ----------------------------------------------------------------------------- The size should response to the size of setup und kernel. Some BIOSes have problems is less then 4 kB. Maximum 128 kB 'Make image-file bootable by reset' CONFIG_ROM_BOOTABLE_BY_RESET 'Address jumped after reset (offset in image)' CONFIG_ROM_RESET_ADDRESS ---------------------------------------------------------------- If you say 'yes' a reset vector is added to the image. jmp far CONFIG_ROM_BASE:CONFIG_ROM_RESET_ADDRESS Normally the value is 0003 (0..2 is the BIOS identifier) 'Add startup module to image (BIOS-functions)' CONFIG_ROM_ADD_BIOS_IMAGE 'Name of module' CONFIG_ROM_BIOS_MODULE 'Module codesegment address' CONFIG_ROM_BIOS_MODULE_ADDR ------------------------------------------------------------------ In bootable images (CONFIG_ROM_BOOTABLE_BY_RESET = y) you can placed a third image file (for example the power on code with BIOS). CONFIG_ROM_BIOS_MODULE is the name of the binary, CONFIG_ROM_BIOS_MODULE_ADDR the offset in the destination image (0xf000 placed an image at ff000 n a 64 k ROM) 'Use EPROM-Simulator after make' CONFIG_ROM_USE_SIMULATOR 'Programcall' CONFIG_ROM_SIMULATOR_PROGRAM -------------------------------------------------------- After successful compiling you can call a program. For example for copy the image in an EPROM emulator. 'Generate debugcode and information' 'ROM-CODE debug infos' CONFIG_ROM_DEBUG ------------------------------------------------------------ Additional Information from setup.S ----------------------------------------------------------- The next information only for the kernel. Some information from the OS/loader section the kernel needs too (CONFIG_ROM_KERNEL_DATA, ...) Both (setup and kernel) should recompile if a value in the OS/loader section is changed. ----------------------------------------------------------- Configuration of ROM-Kernel ============================ This section include the option used only in the kernel. 'Use IRQ-Mask of 8259 at boottime as default' CONFIG_HW_259_USE_ORIGINAL_MASK ------------------------------------------------------------------------ Normally the kernel disables all interrupts at boot time. If you use a ROM-debugger connected via SIO its ugly if the kernel disable you. If you say yes, the interrupt mask at boot time is used as default. 'NO Floppycount at 40:10 use INT13.08' CONFIG_HW_USE_INT13_FOR_FLOPPY ----------------------------------------------------------------------- If no BIOS data at 40h, its possible to get the Flopyinformation via INT 13. (Only if you use BIOS FDD) 'Use int 13 for disk parameters' CONFIG_HW_USE_INT13_FOR_DISKPARMS ---------------------------------------------------------------------------------- If you have no real disks and the information of INT 13 function 8 are consistent, it's more faster to get the information via this interrupt. Christian Mardmöller (chm@kdt.de) 10/1999
Commit message
This repository is read-only for this account.
Repository snapshot
Current branch
master
Visibility
public
Your access
Read
Remote
Configured
File activity
View file history