source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Inc/BootMenu.inc@ 391

Last change on this file since 391 was 376, checked in by gregli@…, 13 years ago

WIDE checkin... Added copyright and license information to sorce files, as per the GPL instructions for usage.

File size: 2.8 KB
RevLine 
[88]1; Project name : XTIDE Universal BIOS
[254]2; Description : Equates and structs used in Boot Menu.
[294]3
[376]4;
5; XTIDE Universal BIOS and Associated Tools
6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
7;
8; This program is free software; you can redistribute it and/or modify
9; it under the terms of the GNU General Public License as published by
10; the Free Software Foundation; either version 2 of the License, or
11; (at your option) any later version.
12;
13; This program is distributed in the hope that it will be useful,
14; but WITHOUT ANY WARRANTY; without even the implied warranty of
15; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16; GNU General Public License for more details.
17; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
18;
19
[3]20%ifndef BOOTMENU_INC
21%define BOOTMENU_INC
22
23; Boot menu sizes
[291]24BOOT_MENU_DEFAULT_TIMEOUT EQU (30 * TICKS_PER_SECOND)
[127]25BOOT_MENU_TITLE_LINES EQU 2 ; Number of title lines
26BOOT_MENU_INFO_LINES EQU 3 ; Number of info lines
27BOOT_MENU_SEPARATOR_LINES_PLUS_SHADOW EQU 5
28BOOT_MENU_TITLE_AND_INFO_LINES EQU (BOOT_MENU_TITLE_LINES | (BOOT_MENU_INFO_LINES<<8))
29BOOT_MENU_WIDTH EQU 40 ; Menu width in characters (including shadow)
30BOOT_MENU_HEIGHT_WITHOUT_ITEMS EQU (BOOT_MENU_TITLE_LINES + BOOT_MENU_INFO_LINES + BOOT_MENU_SEPARATOR_LINES_PLUS_SHADOW)
31MENU_SCREEN_BOTTOM_LINES EQU 1
[3]32
[92]33; Hotkeys
[127]34ROM_BOOT_HOTKEY_SCANCODE EQU 42h ; F8
[3]35
36
[254]37; Boot Menu Information Table. These are generated for all XTIDE Universal
[294]38; BIOS drives. Available only until boot is successful.
[284]39MAX_HARD_DISK_NAME_LENGTH EQU 30 ; Bytes reserved for drive name
[254]40
41struc BOOTMENUINFO
[363]42 .szDrvName resb MAX_HARD_DISK_NAME_LENGTH
43 resb 2 ; Zero word (ensures string terminates)
44 .wInitErrorFlags resb 2 ; Errors during initialization
[364]45
[363]46%ifdef MODULE_ADVANCED_ATA
[364]47 resb 6 ; padding to make BOOTMENUINFO size an even multiple of DPT size
[363]48%else
49 resb 2 ; padding to make BOOTMENUINFO size an even multiple of DPT size
[365]50%endif
[254]51endstruc
52
[363]53
[254]54DPT_BOOTMENUINFO_SIZE_MULTIPLIER equ BOOTMENUINFO_size / LARGEST_DPT_SIZE
55
[294]56%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
[254]57
[294]58%if MAX_HARD_DISK_NAME_LENGTH % 2 <> 0
59 %error "MAX_HARD_DISK_NAME_LENGTH needs to be a multiple of 2, memory is moved with word operations."
[284]60%endif
61
[254]62%if BOOTMENUINFO_size % LARGEST_DPT_SIZE <> 0
[294]63 %error "BOOTMENUINFO's size must be an even multiple of DPT's size. Add or remove padding at the bottom of BOOTMENUINFO to bring the two sizes into alignment. As BOOTMENUINFO is only used at boot time, with plenty of memory to consume, it is OK to waste some space here."
[254]64%endif
65
66%if BOOTMENUINFO.szDrvName <> 0
[294]67 %error "BOOTMENUINFO.szDrvName is assumed to be the first member of struc BOOTMENUINFO, in BootMenuPrint_RefreshItem"
[254]68%endif
69
70%endif
71
72
[3]73%endif ; BOOTMENU_INC
Note: See TracBrowser for help on using the repository browser.