1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573
|
; asmsyntax=nasm
;
; theme-us.asm
;
; English theme data for Smart Boot Manager
;
; Copyright (C) 2001, Suzhe. See file COPYING for details.
;
; some constant used in this theme.
; PLEASE DO NOT CHANGE THESE, UNLESS YOU KNOW WHAT YOU ARE DOING!
%define SBMT_MAGIC 0x544D4253 ; magic number of
; Smart Boot Manager theme.
%define SBMT_VERSION 0x0307 ; version of theme.
start_font equ 219
brand_char1 equ start_font
brand_char2 equ start_font+1
brand_char3 equ start_font+2
brand_char4 equ start_font+3
bits 16
%ifndef MAIN
org 0 ; DO NOT REMOVE/MODIFY THIS LINE!!!
%endif
start_of_theme:
;!!! PLEASE DON NOT CHANGE THE SIZE AND ORDER OF FOLLOWING DATA !!!
;=============================================================================
;the header of Smart Boot Manager theme ( 16 bytes )
;=============================================================================
theme_magic dd SBMT_MAGIC ; magic number = 'SBMT', 4 bytes.
; it's abbr. of 'Smart Boot Manager Theme'
dw 0 ;
theme_lang db 'en-us',0 ; language of this theme, 6 bytes.
theme_version dw SBMT_VERSION ; version, high byte is major version,
; low byte is minor version. should be
; equal to the version of Smart Boot Manager.
theme_size dw (end_of_theme - start_of_theme)
; size of the theme (bytes).
;=============================================================================
; fix size data and index tables of variable size data
;=============================================================================
video_mode db 0xff ; 0 = 90x25, 0xff = 80x25
; do not use other value!!!
keyboard_type db 0x10 ; = 0x10 means use enhanced keyboard
; = 0x00 means use normal keyboard
; CAUTION: cannot use other value!!!
show_date_method db 1 ; the method of show date:
; 0 = don't show date
; 1 = day mm-dd-yyyy
; 2 = day yyyy-mm-dd
; 3 = day dd-mm-yyyy
show_time_method db 1 ; the method of show time:
; 0 = don't show time
; 1 = hh:mm (24 hours)
yes_key_lower db 'y'
yes_key_upper db 'Y'
; position of screen elements
position:
.main_win_col db 14 ; start column of main window
.main_win_row db 6 ; start row of main window
.brand_col db 255 ; start column of brand icon
; if = 255 then brand will be
; right justify in the screen.
.brand_row db 0 ; start row of brand icon
.cmd_menu_col db 1 ; the position of command menu.
.cmd_menu_row db 1 ;
.date_col db 55
.date_row db 0
.time_col db 70
.time_row db 0
; size of screen elements
size:
.copyright db 1 ; number of rows used by copyright info
.hint db 1 ; number of rows used by hint info
.box_width db 5 ; the minimal width of info/error/input box
; (when no info string)
.box_height db 4 ; the minimal height of info/error/input box
; (when no info string)
.main_win_height db 13 ; the height of main window
.bootmenu_height db 8 ; the height of boot menu area
;Black = 0
;Blue = 1
;Green = 2
;Cyan = 3
;Red = 4
;Violet = 5
;Yellow (brown) = 6
;White = 7
;Black (gray) = 8
;Intense blue = 9
;Intense green = a
;Intense cyan = b
;Intense red = c
;Intense violet = d
;Intense yellow = e
;Intense white = f
; color of screen elements
; high 4 bits is background color, low 4 bits is foreground color
color:
.main_win_frame db 0x3F ; main window
.main_win_title db 0xF1 ;
.menu_title db 0x1F ;
.menu_normal db 0x70 ; boot menu
.menu_focus db 0x0F ;
.scrollbar db 0x3F ; scroll bar
.delay_time db 0x70 ; delay time
.background db 0x00 ; background (if no background icon)
.copyright db 0x70 ; copyright string
.copyright_hl db 0x74 ; high lighted copyright string
.hint db 0x70 ; hint string
.hint_hl db 0x74 ; high lighted hint string
.knl_flags db 0x7C ; the color of kernal fags.
.knl_drvid db 0x70 ; the color of kernel drive id.
.date db 0x70 ; color of date string
.time db 0x70 ; color of time string
.input_box_frame db 0xB0 ;
.input_box_title db 0xF1 ; input box
.input_box_msg db 0xB0 ;
.error_box_frame db 0xCF ;
.error_box_title db 0xF1 ; error box
.error_box_msg db 0xCF ;
.info_box_frame db 0xB0 ;
.info_box_title db 0xF1 ; info box
.info_box_msg db 0xB0 ;
.help_win_frame db 0x3F ;
.help_win_title db 0xF1 ; help window
.help_msg db 0x30 ;
.about_win_frame db 0x3F ;
.about_win_title db 0xF1 ; about window
.about_msg db 0x3E ;
.cmd_menu_winframe db 0x30 ;
.cmd_menu_wintitle db 0xF1 ; the colors used
.cmd_menu_normal db 0x30 ; in command menu
.cmd_menu_normal_hl db 0x3C ;
.cmd_menu_focus db 0x07 ;
.cmd_menu_focus_hl db 0x0C ;
; icon data
icon:
.brand_size dw 0x0104 ; the size of brand icon,
; high byte = row, low byte = col.
.brand dw icon_data.brand ; offset of brand icon data, set to
; zero if no brand icon.
.background_size dw 0x0104 ; the size of background icon,
; high byte = row, low byte = col.
.background dw icon_data.background; offset of background icon data,
; set to zero if no background icon.
; font data
font:
.number dw (font_data.end-font_data)/17
; number of chars to be replaced,
; should <= (256 - start).
.data dw font_data ; offset of font set data, set to
; zero if no font to be replaced.
; chars used by window frame
frame_char:
.top db 0x20 ; top horizontal
.bottom db 0xCD ; bottom horiztontal
.left db 0xBA ; left vertical
.right db 0xBA ; right vertical
.tl_corner db 0xC9 ; top left corner
.tr_corner db 0xBB ; top right corner
.bl_corner db 0xC8 ; bottom left corner
.br_corner db 0xBC ; bottom right corner
; how to draw window frame
draw_frame_method db 1 ; = 0 means draw all frame using frame attr.
; = 1 means draw top horizontal line using
; title attr.
; = 2 means draw top corner and horizontal
; line using title attr.
; keymap data
keymap: ; entry of keymap
.number dw (keymap_data.end-keymap_data)/4
; number of keymap entries
.data dw keymap_data ; pointer to keymap
; index table of strings
str_idx:
.main_win_title dw string.main_win_title
.menu_title dw string.menu_title
.about dw string.about
.error dw string.error
.help dw string.help
.info dw string.info
.input dw string.input
.delay_time dw string.delay_time
.name dw string.name
.new_root_passwd dw string.new_root_passwd
.root_passwd dw string.root_passwd
.new_record_passwd dw string.new_record_passwd
.record_passwd dw string.record_passwd
.retype_passwd dw string.retype_passwd
.input_schedule dw string.input_schedule
.input_keystrokes dw string.input_keystrokes
.key_count dw string.key_count
.io_port dw string.io_port
.year dw string.year
.drive_id dw string.drive_id
.part_id dw string.part_id
.record_type dw string.record_type
.record_name dw string.record_name
.auto_active dw string.auto_active
.active dw string.active
.auto_hide dw string.auto_hide
.hidden dw string.hidden
.swap_drv dw string.swap_drv
.logical dw string.logical
.key_strokes dw string.key_strokes
.password dw string.password
.schedule dw string.schedule
.yes dw string.yes
.no dw string.no
.copyright dw string.copyright
.hint dw string.hint
.about_content dw string.about_content
.help_content dw string.help_content
.changes_saved dw string.changes_saved
.passwd_changed dw string.passwd_changed
.ask_save_changes dw string.ask_save_changes
.wrong_passwd dw string.wrong_passwd
.disk_error dw string.disk_error
.mark_act_failed dw string.mark_act_failed
.toggle_hid_failed dw string.toggle_hid_failed
.no_system dw string.no_system
.invalid_record dw string.invalid_record
.invalid_schedule dw string.invalid_schedule
.inst_confirm dw string.inst_confirm
.inst_ok dw string.inst_ok
.inst_abort dw string.inst_abort
.uninst_confirm dw string.uninst_confirm
.uninst_ok dw string.uninst_ok
.uninst_abort dw string.uninst_abort
.confirm dw string.confirm
.no_sbml dw string.no_sbml
.invalid_ioports dw string.invalid_ioports
; command menu str_idx
; main menu
.main_menu_title dw string.main_mnu_title
.main_menu_strings:
dw string.main_mnu_help
dw string.main_mnu_about
dw string.main_mnu_save
dw string.main_mnu_bootit
dw string.main_mnu_bootprev
dw string.main_mnu_bar
dw string.main_mnu_recordset
dw string.main_mnu_sysset
dw string.main_mnu_bar
dw string.main_mnu_quit
dw string.main_mnu_poweroff
; record settings menu
.record_menu_title dw string.record_mnu_title
.record_menu_strings:
dw string.record_mnu_info
dw string.record_mnu_name
dw string.record_mnu_passwd
dw string.record_mnu_schedule
dw string.record_mnu_keys
dw string.record_mnu_bar
dw string.record_mnu_act
dw string.record_mnu_hide
dw string.record_mnu_autoact
dw string.record_mnu_autohide
dw string.record_mnu_swapdrv
dw string.record_mnu_bar
dw string.record_mnu_del
dw string.record_mnu_dup
dw string.record_mnu_moveup
dw string.record_mnu_movedown
; system setting menu
.sys_menu_title dw string.sys_mnu_title
.sys_menu_strings:
dw string.sys_mnu_rootpasswd
dw string.sys_mnu_admin
dw string.sys_mnu_security
dw string.sys_mnu_bar
dw string.sys_mnu_setdef
dw string.sys_mnu_unsetdef
dw string.sys_mnu_delay
dw string.sys_mnu_bmstyle
dw string.sys_mnu_remlast
dw string.sys_mnu_int13ext
dw string.sys_mnu_bar
dw string.sys_mnu_rescanall
dw string.sys_mnu_rescanpart
dw string.sys_mnu_set_ioports
dw string.sys_mnu_set_y2kfix
dw string.sys_mnu_bar
dw string.sys_mnu_inst
dw string.sys_mnu_uninst
.cdimg_menu_title dw string.cdimg_mnu_title
.cdimg_menu_strings dw string.cdimg_mnu_noemu
dw string.cdimg_mnu_120m
dw string.cdimg_mnu_144m
dw string.cdimg_mnu_288m
.sunday dw string.sunday
.monday dw string.monday
.tuesday dw string.tuesday
.wednesday dw string.wednesday
.thursday dw string.thursday
.friday dw string.friday
.saturday dw string.saturday
end_of_str_idx:
;=============================================================================
; variable size data
;=============================================================================
; icon data
; two bytes corresponding to a char,
; high byte is color, low byte is char code.
icon_data:
.brand:
db brand_char1, 0x7C, brand_char2, 0x7C, brand_char3, 0x7C, brand_char4, 0x7C
.background:
db 0xB0, 0x71, 0xB0, 0x71, 0xB0, 0x71, 0xB0, 0x71
; font data
; each char occupied 17 bytes
; the first bytes is the ascii code used by this char
; the following 16 bytes is font data
;
; NOTE:
; Do not replace ascii char 0 and 0x0d, 0x1e and 0x1f,
; these chars have special use.
;
font_data:
db start_font
db 0x00,0x00,0x00,0x00,0x07,0x0c,0x08,0x08,0x0c,0x07,0x00,0x00,0x00,0x00,0xfe,0x00
db start_font+1
db 0x01,0x01,0x01,0x01,0xfd,0x01,0x1f,0x1f,0x03,0xf7,0x0d,0x19,0x31,0x61,0xff,0xff
db start_font+2
db 0x80,0x80,0x80,0x80,0xbf,0x80,0xf0,0xf8,0x98,0x9b,0x98,0x98,0x98,0x98,0x9e,0x9e
db start_font+3
db 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xf0,0x18,0x08,0x08,0x18,0xf0,0x00
.end:
; keymap
; each entry has two words, the first is original keycode,
; the second is new keycode.
keymap_data:
%ifdef KEYMAP_AZERTY
%include "azerty.kbd"
%elifdef KEYMAP_QWERTZ
%include "qwertz.kbd"
%elifdef KEYMAP_DVORAK
%include "dvorak.kbd"
%elifdef KEYMAP_DVORAK_ANSI
%include "dvorak-ansi.kbd"
%endif
.end:
; strings
; all strings are zero ending,
; use 0x0d to break string into multi-lines.
string:
; used in main window and boot menu.
.main_win_title db 'Boot Menu',0
.menu_title db ' Flags Number Type Name',0
; window titles.
.about db 'About',0
.error db 'Error',0
.help db 'Help',0
.info db 'Infomation',0
.input db 'Input',0
; used in input boxes.
.delay_time db 'Delay time: ',0
.name db 'Name: ',0
.new_root_passwd db 'New '
.root_passwd db 'Root password: ',0
.new_record_passwd db 'New '
.record_passwd db 'Record password: ',0
.retype_passwd db 'Retype password: ',0
.input_schedule db 'Schedule (hh:mm-hh:mm;days): ',0
.input_keystrokes db 'Input keystrokes (max 13 keys)',0x0d
db 'Press <Scroll Lock> to finish,',0x0d
db 'Key code = 0x',0
.key_count db 0x0d,'Key count = ',0
.io_port db 'I/O Base Ports (hex1,hex2): ',0
.year db 'Year: ',0
; used in record info box.
.drive_id db ' Drive ID: ',0
.part_id db ' Part ID: ',0
.record_type db 0x0d,'Record Type: ',0
.record_name db 0x0d,'Record Name: ',0
.auto_active db 0x0d,0x0d,'Auto Active: ',0
.active db ' Active: ',0
.auto_hide db 0x0d,' Auto Hide: ',0
.hidden db ' Hidden: ',0
.swap_drv db 0x0d,'Swap driver: ',0
.logical db ' Logical: ',0
.key_strokes db 0x0d,0x0d,'Key Strokes: ',0
.password db ' Password: ',0
.schedule db 0x0d,' Schedule: ',0
.yes db 'Yes',0
.no db 'No ',0
; copyright infomation, displayed at the top of the screen.
.copyright db ' Smart Boot Manager 3.7.1 | Copyright (C) 2001 Suzhe',0
; hint message, displayed at the bottom of the screen.
.hint db ' ~F1~-Help ~F2~-Save ~F3~-Rename ~F4~-Active ~F5~-Hide ~Tab~-Menu',0
; about infomation.
.about_content db ' Smart Boot Manager 3.7.1',0x0d
db ' Copyright (C) 2001 Suzhe <su_zhe@sina.com>',0x0d,0x0d
db ' This is free software, you can redistribute',0x0d
db ' it and/or modify it under the terms of the',0x0d
db ' GNU General Public License version 2.',0x0d,0x0d
db 'This program comes with ABSOLUTELY NO WARRANTY!',0
; help infomation.
.help_content:
db ' F1 = Help Ctrl+F1 = About',0x0d
db ' F2 = Save F3 = Rename',0x0d
db ' F4 = Mark active F5 = Hide/unhide',0x0d
db ' F6 = Toggle auto active F7 = Toggle auto hide',0x0d
db ' F8 = Set default Shift+F8 = Unset default',0x0d
db ' Ctrl+D = Delete Ctrl+P = Duplicate',0x0d
db ' Ctrl+U = Move record up Ctrl+N = Move record down',0x0d
db ' Ctrl+S = Set/unset schedule Ctrl+T = Set delay time',0x0d
db ' Ctrl+K = Set/unset keystrokes / or ? = Show information',0x0d
db ' Ctrl+I = Rescan all records Ctrl+H = Rescan all partitions',0x0d,
db ' Ctrl+X = Toggle swap driver id Ctrl+F = Show/hide flags',0x0d
db ' Ctrl+L = Toggle remember the last booted record',0x0d
db ' F9 = Change boot record password',0x0d
db ' F10 = Change root password',0x0d
db 'Ctrl+F10 = Enter/leave Administrator mode',0x0d
db ' Alt+F10 = Enter/leave Security Lock mode',0x0d
db ' Tab = Popup command menu',0x0d
db ' Ctrl+Q = Quit to BIOS Ctrl+F12 = Power off',0
; normal messages.
.changes_saved db 'Changes saved.',0
.passwd_changed db 'Password changed.',0
.ask_save_changes db 'Save the changes (y/n)?',0
; error messages.
.wrong_passwd db 'Wrong password!',0
.disk_error db 'Disk error! 0x',0
.mark_act_failed db 'Mark active failed!',0
.toggle_hid_failed db 'Hide/unhide failed!',0
.no_system db 'No Operating System!',0x0d
db 'Replace a disk and try again.',0
.invalid_record db 'Invalid boot record!',0
.invalid_schedule db 'Invalid schedule time!',0
.inst_confirm db 'Sure to install Smart BootManager ',
db 'into driver ',0
.inst_ok db 'Installation is successful!',0
.inst_abort db 'Abort the installation.',0
.uninst_confirm db 'Sure to uninstall Smart BootManager?',0x0d,0
.uninst_ok db 'Uninstallation is successful!',0x0d
db 'Computer will be restarted.',0
.uninst_abort db 'Abort the uninstallation.',0
.confirm db 'Press Y to continue, other key to abort.',0
.no_sbml db 'Smart Boot Manager Loader missing ',0x0d
db 'or version mismatch!',0
.invalid_ioports db 'Invalid I/O Ports!',0
; command menu strings
; main menu
.main_mnu_title db 'Main Menu',0
.main_mnu_help db 'Help ~F1~',0
.main_mnu_about db 'About ~Ctrl-F1~',0
.main_mnu_bootit db 'Boot it',0
.main_mnu_bootprev db 'Boot Previous MBR',0
.main_mnu_quit db 'Quit ~Ctrl-Q~',0
.main_mnu_poweroff db 'Power Off ~Ctrl-F12~',0
.main_mnu_recordset db 'Record Settings ->',0
.main_mnu_sysset db 'System Settings ->',0
.main_mnu_save db 'Save Changes ~F2~',0
.main_mnu_bar db '-------------------',0
; record settings menu
.record_mnu_title db 'Record Settings',0
.record_mnu_info db 'Information ~/ or ?~',0
.record_mnu_name db 'Name ~F3~',0
.record_mnu_passwd db 'Password ~F9~',0
.record_mnu_schedule db 'Schedule ~Ctrl-S~',0
.record_mnu_keys db 'Keystrokes ~Ctrl-K~',0
.record_mnu_act db 'Mark Active ~F4~',0
.record_mnu_hide db 'Hide/unhide ~F5~',0
.record_mnu_autoact db 'Auto Active ~F6~',0
.record_mnu_autohide db 'Auto Hide ~F7~',0
.record_mnu_swapdrv db 'Swap Driver ID ~Ctrl-X~',0
.record_mnu_del db 'Delete ~Ctrl-D~',0
.record_mnu_dup db 'Duplicate ~Ctrl-P~',0
.record_mnu_moveup db 'Move Up ~Ctrl-U~',0
.record_mnu_movedown db 'Move Down ~Ctrl-N~',0
.record_mnu_bar db '----------------------',0
; system setting menu
.sys_mnu_title db 'System Settings',0
.sys_mnu_rootpasswd db 'Root Password ~F10~',0
.sys_mnu_admin db 'Toggle Admin Mode ~Ctrl-F10~',0
.sys_mnu_security db 'Toggle Security Mode ~Alt-F10~',0
.sys_mnu_setdef db 'Set Default Record ~F8~',0
.sys_mnu_unsetdef db 'Unset Default Record ~Shift-F8~',0
.sys_mnu_delay db 'Set Delay Time ~Ctrl-T~',0
.sys_mnu_bmstyle db 'Change Boot Menu Style ~Ctrl-F~',0
.sys_mnu_remlast db 'Toggle Remember Last ~Ctrl-L~',0
.sys_mnu_int13ext db 'Toggle Extended Int 13H',0
.sys_mnu_rescanall db 'Rescan All Boot Records ~Ctrl-I~',0
.sys_mnu_rescanpart db 'Rescan All Partitions ~Ctrl-H~',0
.sys_mnu_set_ioports db 'Set CD-ROM I/O Ports',0
.sys_mnu_set_y2kfix db 'Set year (fix Y2K BIOS bug)',0
.sys_mnu_inst db 'Install Smart BootManager',0
.sys_mnu_uninst db 'Uninstall Smart BootManager',0
.sys_mnu_bar db '------------------------------',0
.cdimg_mnu_title db 'Choose a CD Image',0
.cdimg_mnu_noemu db 'No Emulation',0
.cdimg_mnu_120m db '1.2 M Diskette',0
.cdimg_mnu_144m db '1.44M Diskette',0
.cdimg_mnu_288m db '2.88M Diskette',0
.sunday db 'Sun',0
.monday db 'Mon',0
.tuesday db 'Tue',0
.wednesday db 'Wed',0
.thursday db 'Thu',0
.friday db 'Fri',0
.saturday db 'Sat',0
; END OF THEME.
end_of_theme:
|