Home |
RTTarget-32 Programming Manual Running Win32 Programs without Win32 BIOSVector Running a Program on the Target Compiling and Linking with On Time RTOS-32 |
BIOSVectorBIOSVector will generate a far jump to the boot code's entrypoint. However, unlike the Locate BootVector command, the produced code has the format of a BIOS extension. It should be located at an address scanned by the BIOS for an extension. These are usually all 2k aligned addresses in the range C8000h - DF800h. Locate parameter Name is ignored. Parameters Align and Size must be at least 16 (Size's default is 16). Access should be SysRead. The BIOS extension's size is automatically rounded up to a multiple of 512 bytes by RTLoc (this is required by the BIOS). Since this can be wasteful, RTLoc can automatically combine the BIOSVector with the boot code if these two entities are located exactly adjacent to one another in the same region. Example:Region NullPage 0 1p RAM Region LowMem 4k 636k RAM Assign Region ColorGraphic A0000h 64k Device ReadWrite Region MonoText B0000h 4k Device ReadWrite Region ColorText B8000h 4k Device ReadWrite Region BIOSExt CA000h 8k ROM Assign Region SomeROM D0000h 64k ROM Assign Region BIOS F0000h 64k ROM NoAccess Region HighMem 1M 1M RAM Assign Locate BIOSVector BootVector BIOSExt 0 16 Assign BottomUp Locate BootCode Biosboot.exe BIOSExt 0 16 Assign BottomUp Locate BootData BootData LowMem ... In this example, a BIOS extension of 8k is defined at address CA000h. Both BIOSVector and BootCode are located with 16-byte alignment in this region. RTLoc finds that they are adjacent and will combine the two. Alternatively, BIOSVector and BootCode could have been placed in separate regions (e.g., BIOSExt and SomeROM, respectively).
|