Win2KVer db "PSA"
DiskEmuFile db "DISKEMUL.BIN"
SetupLdrFile db "SETUPLDR.BIN"
disknum db 0
version db 0
menu db 02, 01h, "Multi Windows Opration System Installation
Boot Menu", 0dh, 0ah, 0
db 02, 02h, 52 dup(205), 0dh, 0ah, 0
db 06, 04h, "A. Microsoft Dos6.22", 0dh, 0ah, 0
db 06, 05h, "B. Windows 98 Second Edtion [CHS]
[TBPVQ-J7R2B-MMXWY-V66HG-YTCFD]", 0dh, 0ah, 0
db 06, 06h, "C. Windows Millennium [CHS]
[K9KDJ-3XPXY-92WFW-9Q26K-MVRK8]", 0dh, 0ah, 0
db 06, 07h, "D. Win2K Professional SP2 [ENU]
[PQHKR-G4JFW-VTY3P-G4WQ2-88CTW]", 0dh, 0ah, 0
db 06, 08h, "E. Win2K Server SP2 [ENU]
[H6TWQ-TQQM8-HXJYG-D69F7-R84VM]", 0dh, 0ah, 0
db 06, 09h, "F. Win2K Advanced Server SP2 [ENU]
[H6TWQ-TQQM8-HXJYG-D69F7-R84VM]", 0dh, 0ah, 0
db 06, 0ah, "G. Win2K Professional SP2 [CHS]
[PQHKR-G4JFW-VTY3P-G4WQ2-88CTW]", 0dh, 0ah, 0
db 06, 0bh, "H. Win2K Server SP2 [CHS]
[H6TWQ-TQQM8-HXJYG-D69F7-R84VM]", 0dh, 0ah, 0
db 06, 0ch, "I. Win2K Advanced Server SP2 [CHS]
[H6TWQ-TQQM8-HXJYG-D69F7-R84VM]", 0dh, 0ah, 0
db 04, 0eh, "Please choose your favorite to install, or
type esc to boot from HD.", 0dh, 0ah, 0
db 04, 10h, "If your have got some problem or have some
good suggestions, please contact with me", 0dh, 0ah, 0
db 27h, 12h, "AUTHOR : peach@SMTH", 0dh, 0ah, 0
db 30h, 13h, "[peach@sparrows.dhs.org]", 0dh, 0ah, 0
db 0ffh, 0ffh
LoadFileErr db "Couldn't Load Setup Loader...", 0dh, 0ah,
"Press ENTER to retry, and ESC back to main menu.", 0dh, 0ah, 0
nobootablehd db "No bootable HD, press any key back to main
menu.", 0dh, 0ah, 0
wrongcd db "Wrong disk!", 0dh, 0ah, "Please insert the
disk with label MULWIN_CD"
dnum db "1 into CDROM.", 0dh, 0ah
db "And press ENTER to continue, or ESC back to
main menu", 0dh,0ah, 0
;==========================================================
; 远程跳转至此处
; 此时,引导程序已经在原2k引导的尾部了
; 继续引导工作
;==========================================================
begin:
mov ax, cs
mov ds, ax
mov es, ax
mov bh, 17h
call clearbuf ; 清键盘缓冲,因为bootfix的原故,有可能键盘缓
冲区内
; 仍有键
showmenu: ;显示主菜单
mov bh, 17h
call clrscn
mov si, offset menu
showlp:
cmp word ptr [si], 0ffffh
je getkeylp
mov dx, [si]
call setcurpos
add si, 2
call showmsg
jmp showlp
getkeylp: ;获得用户选择
xor ax, ax
int 16h
cmp al, 1bh
je l_bootfromhd ; 用户按下ESC,从硬盘启动
and al, 0dfh
cmp al, 41h
jl getkeylp
cmp al, 44h
jl bootdos ; 前三项都是从软盘映象启动
cmp al, 49h
jg getkeylp
jmp bootwin2k ; 后六项都是启动win2k
l_bootfromhd:
jmp bootfromhd
;==========================================================
; showmsg 显示字符串
; 入口:
; ds:si 字符串地址
; bl 颜色属性
;==========================================================
showmsg proc
mov al, [si]
inc si
cmp al, 0
jz exitshowmsg
mov ah, 0eh
int 10h
jmp showmsg
exitshowmsg:
ret
showmsg endp