* unknown/unsupported videomode at boot leads to return in config manager

* boot config manager now allows to totally disable DMA access to HD

git-svn-id: svn://kolibrios.org@514 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2007-05-21 13:25:02 +00:00
parent 4c1ad6f2c7
commit 875ba74b27
9 changed files with 573 additions and 562 deletions

10
kernel/trunk/blkdev/hd_drv.inc Executable file → Normal file
View File

@ -54,6 +54,9 @@ hd_read:
call find_empty_slot ; ret in edi call find_empty_slot ; ret in edi
cmp [hd_error],0 cmp [hd_error],0
jne return_01 jne return_01
; DMA read is permitted if [allow_dma_access]=1 or 2
cmp [allow_dma_access], 2
ja .nodma
cmp [dma_hdd], 1 cmp [dma_hdd], 1
jnz .nodma jnz .nodma
call hd_read_dma call hd_read_dma
@ -229,8 +232,9 @@ write_cache:
cmp eax,[PARTITION_END] cmp eax,[PARTITION_END]
ja danger ja danger
cmp [allow_dma_write], 1 ; DMA write is permitted only if [allow_dma_access]=1
jnz .nodma cmp [allow_dma_access], 2
jae .nodma
cmp [dma_hdd], 1 cmp [dma_hdd], 1
jnz .nodma jnz .nodma
; Ž¡ê¥¤¨­ï¥¬ § ¯¨áì 楯®çª¨ ¯®á«¥¤®¢ â¥«ì­ëå ᥪâ®à®¢ ¢ ®¤­® ®¡à é¥­¨¥ ª ¤¨áªã ; Ž¡ê¥¤¨­ï¥¬ § ¯¨áì 楯®çª¨ ¯®á«¥¤®¢ â¥«ì­ëå ᥪâ®à®¢ ¢ ®¤­® ®¡à é¥­¨¥ ª ¤¨áªã
@ -601,7 +605,7 @@ cache_chain_size db 0
cache_chain_started db 0 cache_chain_started db 0
dma_task_switched db 0 dma_task_switched db 0
dma_hdd db 0 dma_hdd db 0
allow_dma_write db 0 allow_dma_access db 0
endg endg
align 4 align 4

View File

@ -109,6 +109,7 @@ sayerr_plain:
start_of_code: start_of_code:
cld cld
; \begin{diamond}[02.12.2005] ; \begin{diamond}[02.12.2005]
; if bootloader sets ax = 'KL', then ds:si points to loader block
cmp ax, 'KL' cmp ax, 'KL'
jnz @f jnz @f
mov word [cs:cfgmanager.loader_block], si mov word [cs:cfgmanager.loader_block], si
@ -116,7 +117,9 @@ start_of_code:
@@: @@:
; \end{diamond}[02.12.2005] ; \end{diamond}[02.12.2005]
cmp cx,'HA' ; ïî ðåãèñòðàì îïðåäåëÿåòñÿ çàãðóçêà ñ âèíòà ; if bootloader sets cx = 'HA' and dx = 'RD', then bx contains identifier of source hard disk
; (see comment to bx_from_load)
cmp cx, 'HA'
jnz no_hd_load jnz no_hd_load
cmp dx,'RD' cmp dx,'RD'
jnz no_hd_load jnz no_hd_load
@ -140,25 +143,25 @@ no_hd_load:
if lang eq ru if lang eq ru
; Load & set russian VGA font (RU.INC) ; Load & set russian VGA font (RU.INC)
mov bp, RU_FNT1 ; RU_FNT1 - First part mov bp, RU_FNT1 ; RU_FNT1 - First part
mov bx,1000h ; 768 bytes mov bx, 1000h ; 768 bytes
mov cx,30h ; 48 symbols mov cx, 30h ; 48 symbols
mov dx,80h ; 128 - position of first symbol mov dx, 80h ; 128 - position of first symbol
mov ax,1100h mov ax, 1100h
int 10h int 10h
mov bp,RU_FNT2 ; RU_FNT2 -Second part mov bp, RU_FNT2 ; RU_FNT2 -Second part
mov bx,1000h ; 512 bytes mov bx, 1000h ; 512 bytes
mov cx,20h ; 32 symbols mov cx, 20h ; 32 symbols
mov dx,0E0h ; 224 - position of first symbol mov dx, 0E0h ; 224 - position of first symbol
mov ax,1100h mov ax, 1100h
int 10h int 10h
; End set VGA russian font ; End set VGA russian font
else if lang eq et else if lang eq et
mov bp,ET_FNT ; ET_FNT1 mov bp, ET_FNT ; ET_FNT1
mov bx,1000h ; mov bx, 1000h ;
mov cx,255 ; 256 symbols mov cx, 255 ; 256 symbols
mov dx,0h ; 0 - position of first symbol xor dx, dx ; 0 - position of first symbol
mov ax,1100h mov ax, 1100h
int 10h int 10h
end if end if
@ -177,9 +180,8 @@ end if
loop @b loop @b
; draw spaces ; draw spaces
mov si, space_msg mov si, space_msg
mov cx, 25 - d80x25_top_num - d80x25_bottom_num mov dx, 25 - d80x25_top_num - d80x25_bottom_num
dfl1: dfl1:
push cx
push si push si
mov cx, 80 mov cx, 80
@@: @@:
@ -187,8 +189,8 @@ dfl1:
stosw stosw
loop @b loop @b
pop si pop si
pop cx dec dx
loop dfl1 jnz dfl1
; draw bottom ; draw bottom
mov si, d80x25_bottom mov si, d80x25_bottom
mov cx, d80x25_bottom_num * 80 mov cx, d80x25_bottom_num * 80
@ -207,17 +209,17 @@ dfl1:
mov bx, 0x4000 mov bx, 0x4000
pushf pushf
pop ax pop ax
mov dx,ax mov dx, ax
xor ax,bx xor ax, bx
push ax push ax
popf popf
pushf pushf
pop ax pop ax
and ax,bx and ax, bx
and dx,bx and dx, bx
cmp ax,dx cmp ax, dx
jnz cpugood jnz cpugood
mov si,not386 mov si, not386
sayerr: sayerr:
call print call print
jmp $ jmp $
@ -247,19 +249,19 @@ sayerr:
; a) class 1, subclass 1, programming interface 0x80 ; a) class 1, subclass 1, programming interface 0x80
mov ax, 0xB103 mov ax, 0xB103
mov ecx, 1*10000h + 1*100h + 0x80 mov ecx, 1*10000h + 1*100h + 0x80
mov si, 0 ; device index = 0 xor si, si ; device index = 0
int 0x1A int 0x1A
jnc .found jnc .found
; b) class 1, subclass 1, programming interface 0x8A ; b) class 1, subclass 1, programming interface 0x8A
mov ax, 0xB103 mov ax, 0xB103
mov ecx, 1*10000h + 1*100h + 0x8A mov ecx, 1*10000h + 1*100h + 0x8A
mov si, 0 ; device index = 0 xor si, si ; device index = 0
int 0x1A int 0x1A
jnc .found jnc .found
; c) class 1, subclass 1, programming interface 0x85 ; c) class 1, subclass 1, programming interface 0x85
mov ax, 0xB103 mov ax, 0xB103
mov ecx, 1*10000h + 1*100h + 0x85 mov ecx, 1*10000h + 1*100h + 0x85
mov si, 0 xor si, si
int 0x1A int 0x1A
jc .nopci jc .nopci
.found: .found:
@ -273,28 +275,26 @@ sayerr:
.nopci: .nopci:
; \end{Mario79} ; \end{Mario79}
mov al,0xf6 ; Ñáðîñ êëàâèàòóðû, ðàçðåøèòü ñêàíèðîâàíèå mov al, 0xf6 ; Ñáðîñ êëàâèàòóðû, ðàçðåøèòü ñêàíèðîâàíèå
out 0x60,al out 0x60, al
xor cx,cx xor cx, cx
wait_loop: ; variant 2 wait_loop: ; variant 2
; reading state of port of 8042 controller ; reading state of port of 8042 controller
in al,64h in al, 64h
and al,00000010b ; ready flag and al, 00000010b ; ready flag
; wait until 8042 controller is ready ; wait until 8042 controller is ready
loopnz wait_loop loopnz wait_loop
; --------------- APM --------------------- ; --------------- APM ---------------------
push 0 and word [es:0x9044], 0 ; ver = 0.0 (APM not found)
pop es
mov word [es : 0x9044], 0 ; ver = 0.0 (APM not found)
mov ax, 0x5300 mov ax, 0x5300
xor bx, bx xor bx, bx
int 0x15 int 0x15
jc apm_end ; APM not found jc apm_end ; APM not found
test cx, 2 test cx, 2
jz apm_end ; APM 32-bit protected-mode interface not supported jz apm_end ; APM 32-bit protected-mode interface not supported
mov [es : 0x9044], ax ; Save APM Version mov [es:0x9044], ax ; Save APM Version
mov [es : 0x9046], cx ; Save APM flags mov [es:0x9046], cx ; Save APM flags
; Write APM ver ---- ; Write APM ver ----
and ax, 0xf0f and ax, 0xf0f
@ -313,9 +313,6 @@ wait_loop: ; variant 2
xor bx, bx xor bx, bx
int 0x15 int 0x15
push 0
pop es
mov [es:0x9040], ebx mov [es:0x9040], ebx
mov [es:0x9050], ax mov [es:0x9050], ax
mov [es:0x9052], cx mov [es:0x9052], cx
@ -326,20 +323,15 @@ apm_end:
; DISPLAY VESA INFORMATION ; DISPLAY VESA INFORMATION
push 0 mov ax, 0x4f00
pop es mov di, 0xa000
mov ax,0x4f00
mov di,0xa000
int 0x10 int 0x10
cmp ax,0x004f cmp ax, 0x004f
mov si, novesa mov si, novesa
jnz @f jnz @f
mov bx, word [es:di+0x12] mov ax, [es:di+4]
shl ebx,16 add ax, '0'*256+'0'
mov [es:0x9050], ebx mov si, vervesa
mov ax,[es:di+4]
add ax,'0'*256+'0'
mov si,vervesa
mov [si+vervesa_off], ah mov [si+vervesa_off], ah
mov [si+vervesa_off+2], al mov [si+vervesa_off+2], al
@@: call print @@: call print
@ -349,7 +341,7 @@ cfgmanager:
; settings: ; settings:
; a) preboot_graph = graphical mode ; a) preboot_graph = graphical mode
; preboot_gprobe = probe this mode? ; preboot_gprobe = probe this mode?
; b) preboot_dma_write = use DMA write? ; b) preboot_dma = use DMA access?
; c) preboot_vrrm = use VRR? ; c) preboot_vrrm = use VRR?
; d) preboot_device = from what boot? ; d) preboot_device = from what boot?
mov di, preboot_graph mov di, preboot_graph
@ -389,8 +381,9 @@ cfgmanager:
@@: @@:
mov [di], al mov [di], al
.preboot_gr_end: .preboot_gr_end:
cmp [di+preboot_dma_write-preboot_graph], 1 ; following 6 lines set variables to 1 if its current value is 0
adc [di+preboot_dma_write-preboot_graph], 0 cmp [di+preboot_dma-preboot_graph], 1
adc [di+preboot_dma-preboot_graph], 0
cmp [di+preboot_vrrm-preboot_graph], 1 cmp [di+preboot_vrrm-preboot_graph], 1
adc [di+preboot_vrrm-preboot_graph], 0 adc [di+preboot_vrrm-preboot_graph], 0
cmp [di+preboot_device-preboot_graph], 1 cmp [di+preboot_device-preboot_graph], 1
@ -446,8 +439,15 @@ cfgmanager:
mov si, linef mov si, linef
call printplain call printplain
mov si, dma_msg mov si, dma_msg
cmp [preboot_dma_write], 1 call print
call .say_on_off cmp [preboot_dma], 2
mov si, on_msg
jb @f
mov si, off_msg
ja @f
mov si, readonly_msg
@@:
call printplain
mov si, vrrm_msg mov si, vrrm_msg
cmp [preboot_vrrm], 1 cmp [preboot_vrrm], 1
call .say_on_off call .say_on_off
@ -495,9 +495,9 @@ cfgmanager:
cmp al, 'd' cmp al, 'd'
jnz .wait jnz .wait
_setcursor 15,0 _setcursor 15,0
mov si,bdev mov si, bdev
call print call print
mov bx,'13' mov bx, '13'
call getkey call getkey
mov [preboot_device], al mov [preboot_device], al
_setcursor 13,0 _setcursor 13,0
@ -532,9 +532,9 @@ cfgmanager:
_setcursor 15,0 _setcursor 15,0
mov si, ask_dma mov si, ask_dma
call print call print
mov bx, '12' mov bx, '13'
call getkey call getkey
mov [preboot_dma_write], al mov [preboot_dma], al
_setcursor 11,0 _setcursor 11,0
jmp .d jmp .d
.change_c: .change_c:
@ -553,8 +553,7 @@ cfgmanager:
popf popf
jz @f jz @f
mov si, off_msg mov si, off_msg
@@: call printplain @@: jmp printplain
ret
; novesa and vervesa strings are not used at the moment of executing this code ; novesa and vervesa strings are not used at the moment of executing this code
virtual at novesa virtual at novesa
.oldtimer dd ? .oldtimer dd ?
@ -684,18 +683,18 @@ end if
; address is gr_table+6*(ax-1) ; address is gr_table+6*(ax-1)
add ax, ax add ax, ax
lea si, [gr_table + eax + eax*2 - 6] lea si, [gr_table + eax + eax*2 - 6]
mov bx,[si+0] mov bx, [si+0]
mov cx,[si+2] mov cx, [si+2]
mov dx,[si+4] mov dx, [si+4]
cmp al, 9*2 cmp al, 9*2
mov al, 32 ; BPP mov al, 32 ; BPP
jb @f jb @f
mov [es:0x9000], al mov [es:0x9000], al
mov dword [es:0x9018], 0xFFFFFFFF; 0x800000 or dword [es:0x9018], 0xFFFFFFFF; 0x800000
@@: @@:
mov [es:0x9008],bx mov [es:0x9008], bx
mov [es:0x900A],cx mov [es:0x900A], cx
mov [es:0x900C],dx mov [es:0x900C], dx
test bh, bh test bh, bh
jz nov jz nov
@ -705,19 +704,18 @@ end if
cmp [preboot_gprobe], 1 cmp [preboot_gprobe], 1
jz noprobe jz noprobe
mov bx,0x100 mov bx, 0x100
newprobe: newprobe:
inc bx inc bx
cmp bx,0x17f cmp bx, 0x17f
mov si,prnotfnd mov si, prnotfnd
jz sayerr jz invalid_video_mode
probemore: probemore:
push cx push cx
mov ax,0x4f01 mov ax, 0x4f01
mov cx,bx mov cx, bx
and cx,0xfff mov di, 0xa000
mov di,0xa000
int 0x10 int 0x10
pop cx pop cx
@ -730,80 +728,85 @@ end if
cmp byte [es:di+0x19], 32 ;24 cmp byte [es:di+0x19], 32 ;24
jb newprobe jb newprobe
; add bx,0100000000000000b ; add bx, 0100000000000000b
or bh, 40h or bh, 40h
mov [es:0x9008],bx mov [es:0x9008], bx
noprobe: noprobe:
; FIND VESA 2.0 LFB & BPP ; FIND VESA 2.0 LFB & BPP
mov ax,0x4f01 mov ax, 0x4f01
mov cx,bx mov cx, bx
and cx,0xfff and cx, 0xfff
mov di,0xa000 mov di, 0xa000
int 0x10 int 0x10
; LFB ; LFB
mov eax,[es:di+0x28] mov eax, [es:di+0x28]
mov [es:0x9018],eax mov [es:0x9018], eax
; ---- vbe voodoo ; ---- vbe voodoo
BytesPerLine equ 0x10 BytesPerLine equ 0x10
mov ax, [es:di+BytesPerLine] mov ax, [es:di+BytesPerLine]
mov [es:0x9001],ax mov [es:0x9001], ax
; BPP ; BPP
mov al,byte [es:di+0x19] mov al, byte [es:di+0x19]
mov [es:0x9000],al mov [es:0x9000], al
nov: nov:
cmp al,24 cmp al, 24
mov si,bt24 mov si, bt24
jz bppl jz bppl
cmp al,32 cmp al, 32
mov si,bt32 mov si, bt32
jz bppl jz bppl
mov si,btns mov si, btns
jmp sayerr invalid_video_mode:
bppl: call print
_setcursor (d80x25_top_num+2), 0
mov si, start_msg
call print
jmp cfgmanager.printcfg
bppl:
call print call print
; FIND VESA 1.2 PM BANK SWITCH ADDRESS ; FIND VESA 1.2 PM BANK SWITCH ADDRESS
push es push es
mov ax,0x4f0A mov ax, 0x4f0A
xor bx, bx xor bx, bx
int 0x10 int 0x10
xor eax,eax xor eax, eax
mov ax,es mov ax, es
shl eax,4 shl eax, 4
movzx ebx,di movzx ebx, di
add eax,ebx add eax, ebx
mov bx,[es:di] mov bx, [es:di]
add eax,ebx add eax, ebx
pop es pop es
mov [es:0x9014],eax mov [es:0x9014], eax
; GRAPHICS ACCELERATION ; GRAPHICS ACCELERATION
; force yes ; force yes
mov [es:0x901C], byte 1 mov [es:0x901C], byte 1
; DMA WRITE ; DMA ACCESS TO HD
mov al, [preboot_dma_write] mov al, [preboot_dma]
mov [es:0x901F],al mov [es:0x901F], al
; VRR_M USE ; VRR_M USE
mov al,[preboot_vrrm] mov al,[preboot_vrrm]
mov [es:0x9030],al mov [es:0x9030], al
mov [es:0x901E],byte 1 mov [es:0x901E], byte 1
; BOOT DEVICE ; BOOT DEVICE
mov al, [preboot_device] mov al, [preboot_device]
dec al dec al
mov [boot_dev],al mov [boot_dev], al
; READ DISKETTE TO MEMORY ; READ DISKETTE TO MEMORY
@ -1004,17 +1007,17 @@ sayerr_floppy:
; readdone: ; readdone:
; pop ax ; pop ax
mov si,backspace2 mov si, backspace2
call printplain call printplain
mov si,okt mov si, okt
call printplain call printplain
no_sys_on_floppy: no_sys_on_floppy:
xor ax, ax ; reset drive xor ax, ax ; reset drive
xor dx, dx xor dx, dx
int 0x13 int 0x13
mov dx,0x3f2 ; floppy motor off mov dx, 0x3f2 ; floppy motor off
mov al,0 mov al, 0
out dx,al out dx, al
; SET GRAPHICS ; SET GRAPHICS
@ -1022,40 +1025,40 @@ sayerr_floppy:
xor ax, ax xor ax, ax
mov es, ax mov es, ax
mov ax,[es:0x9008] ; vga & 320x200 mov ax, [es:0x9008] ; vga & 320x200
mov bx, ax mov bx, ax
cmp ax,0x13 cmp ax, 0x13
je setgr je setgr
cmp ax,0x12 cmp ax, 0x12
je setgr je setgr
mov ax,0x4f02 ; Vesa mov ax, 0x4f02 ; Vesa
setgr: setgr:
int 0x10 int 0x10
test ah,ah test ah, ah
mov si, fatalsel mov si, fatalsel
jnz sayerr jnz sayerr
; set mode 0x12 graphics registers: ; set mode 0x12 graphics registers:
cmp bx,0x12 cmp bx, 0x12
jne gmok2 jne gmok2
mov al,0x05 mov al, 0x05
mov dx,0x03ce mov dx, 0x03ce
push dx push dx
out dx,al ; select GDC mode register out dx, al ; select GDC mode register
mov al,0x02 mov al, 0x02
inc dx inc dx
out dx,al ; set write mode 2 out dx, al ; set write mode 2
mov al,0x02 mov al, 0x02
mov dx,0x03c4 mov dx, 0x03c4
out dx,al ; select VGA sequencer map mask register out dx, al ; select VGA sequencer map mask register
mov al,0x0f mov al, 0x0f
inc dx inc dx
out dx,al ; set mask for all planes 0-3 out dx, al ; set mask for all planes 0-3
mov al,0x08 mov al, 0x08
pop dx pop dx
out dx,al ; select GDC bit mask register out dx, al ; select GDC bit mask register
; for writes to 0x03cf ; for writes to 0x03cf
gmok2: gmok2:
push ds push ds

View File

@ -34,7 +34,7 @@ vrrmprint db "Apply VRR? (picture frequency greater than 60Hz"
; db " Select port [1-3]: ",0 ; db " Select port [1-3]: ",0
;no_com1 db 13,10,186, " No COM1 mouse",0 ;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0 ;no_com2 db 13,10,186, " No COM2 mouse",0
ask_dma db "Use DMA for HDD writing? [1-yes/2-no]: ",0 ask_dma db "Use DMA for HDD access? [1-yes, 2-only for reading, 3-no]: ",0
;gr_direct db 186," Use direct LFB writing? " ;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0 ; db "[1-yes/2-no] ? ",0
;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / "
@ -80,9 +80,10 @@ mode9 db "320x200, EGA/CGA 256 colors",0
mode10 db "640x480, VGA 16 colors",0 mode10 db "640x480, VGA 16 colors",0
probeno_msg db " (standard mode)",0 probeno_msg db " (standard mode)",0
probeok_msg db " (check nonstandard modes)",0 probeok_msg db " (check nonstandard modes)",0
dma_msg db " [b] Use DMA for HDD writing:",0 dma_msg db " [b] Use DMA for HDD access:",0
on_msg db " on",13,10,0 on_msg db " on",13,10,0
off_msg db " off",13,10,0 off_msg db " off",13,10,0
readonly_msg db " only for reading",13,10,0
vrrm_msg db " [c] Use VRR:",0 vrrm_msg db " [c] Use VRR:",0
preboot_device_msg db " [d] Floppy image: ",0 preboot_device_msg db " [d] Floppy image: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -34,7 +34,7 @@ vrrmprint db "Kinnita VRR? (ekraani sagedus suurem kui 60Hz"
; db " Vali port [1-3]: ",0 ; db " Vali port [1-3]: ",0
;no_com1 db 13,10,186, " No COM1 mouse",0 ;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0 ;no_com2 db 13,10,186, " No COM2 mouse",0
ask_dma db "Use DMA for HDD writing? [1-jah/2-ei]: ",0 ask_dma db "Use DMA for HDD access? [1-yes, 2-only for reading, 3-no]: ",0
;gr_direct db 186," Use direct LFB writing? " ;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0 ; db "[1-yes/2-no] ? ",0
;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / "
@ -80,9 +80,10 @@ mode9 db "320x200, EGA/CGA 256 v
mode10 db "640x480, VGA 16 värvi",0 mode10 db "640x480, VGA 16 värvi",0
probeno_msg db " (standard reziim)",0 probeno_msg db " (standard reziim)",0
probeok_msg db " (kontrolli ebastandardseid reziime)",0 probeok_msg db " (kontrolli ebastandardseid reziime)",0
dma_msg db " [b] Use DMA for HDD writing:",0 dma_msg db " [b] Use DMA for HDD access:",0
on_msg db " sees",13,10,0 on_msg db " sees",13,10,0
off_msg db " väljas",13,10,0 off_msg db " väljas",13,10,0
readonly_msg db " only for reading",13,10,0
vrrm_msg db " [c] Kasuta VRR:",0 vrrm_msg db " [c] Kasuta VRR:",0
preboot_device_msg db " [d] Disketi kujutis: ",0 preboot_device_msg db " [d] Disketi kujutis: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -39,7 +39,7 @@ vrrmprint db "VRR verwenden? (Monitorfrequenz groesser als 60Hz"
; db " Waehle Port [1-3]: ",0 ; db " Waehle Port [1-3]: ",0
;no_com1 db 13,10,186, " Keine COM1 Maus",0 ;no_com1 db 13,10,186, " Keine COM1 Maus",0
;no_com2 db 13,10,186, " Keine COM2 Maus",0 ;no_com2 db 13,10,186, " Keine COM2 Maus",0
ask_dma db "Nutze DMA zum HDD Aufschreiben? [1-ja/2-nein]: ",0 ask_dma db "Nutze DMA zum HDD Zugriff? [1-ja, 2-allein fur Lesen, 3-nein]: ",0
;gr_direct db 186," Benutze direct LFB? " ;gr_direct db 186," Benutze direct LFB? "
; db "[1-ja/2-nein] ? ",0 ; db "[1-ja/2-nein] ? ",0
;mem_model db 13,10,186," Hauptspeicher [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Hauptspeicher [1-16 Mb / 2-32 Mb / "
@ -88,6 +88,7 @@ probeok_msg db " (teste nicht-standard Modi)",0
dma_msg db " [b] Nutze DMA zum HDD Aufschreiben:",0 dma_msg db " [b] Nutze DMA zum HDD Aufschreiben:",0
on_msg db " an",13,10,0 on_msg db " an",13,10,0
off_msg db " aus",13,10,0 off_msg db " aus",13,10,0
readonly_msg db " fur Lesen",13,10,0
vrrm_msg db " [c] Nutze VRR:",0 vrrm_msg db " [c] Nutze VRR:",0
preboot_device_msg db " [d] Diskettenimage: ",0 preboot_device_msg db " [d] Diskettenimage: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -34,7 +34,7 @@ vrrmprint db "
; db " ‚ë¡¥à¨â¥ ¯®àâ [1-3]: ",0 ; db " ‚ë¡¥à¨â¥ ¯®àâ [1-3]: ",0
;no_com1 db 13,10,186," No COM1 mouse",0 ;no_com1 db 13,10,186," No COM1 mouse",0
;no_com2 db 13,10,186," No COM2 mouse",0 ;no_com2 db 13,10,186," No COM2 mouse",0
ask_dma db "<EFBFBD>α―®«μ§®Ά βμ DMA ¤«ο § ―¨α¨ ­  HDD? [1-¤ /2-­¥β]: ",0 ask_dma db "ˆá¯®«ì§®¢ âì DMA ¤«ï ¤®áâ㯠 ª HDD? [1-¤ , 2-⮫쪮 ç⥭¨¥, 3-­¥â]: ",0
;gr_direct db 186," ˆá¯®«ì§®¢ âì «¨­¥©­ë© ¢¨¤¥®¡ãä¥à? " ;gr_direct db 186," ˆá¯®«ì§®¢ âì «¨­¥©­ë© ¢¨¤¥®¡ãä¥à? "
; db "[1-¤ /2-­¥â]: ",0 ; db "[1-¤ /2-­¥â]: ",0
;mem_model db 13,10,186," Ž¡ê+¬ ¯ ¬ï⨠[1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Ž¡ê+¬ ¯ ¬ï⨠[1-16 Mb / 2-32 Mb / "
@ -80,9 +80,10 @@ mode9 db "320x200, EGA/CGA 256 梥⮢",0
mode10 db "640x480, VGA 16 梥⮢",0 mode10 db "640x480, VGA 16 梥⮢",0
probeno_msg db " (áâ ­¤ àâ­ë© ¢¨¤¥®à¥¦¨¬)",0 probeno_msg db " (áâ ­¤ àâ­ë© ¢¨¤¥®à¥¦¨¬)",0
probeok_msg db " (¯à®¢¥à¨âì ­¥áâ ­¤ àâ­ë¥ ०¨¬ë)",0 probeok_msg db " (¯à®¢¥à¨âì ­¥áâ ­¤ àâ­ë¥ ०¨¬ë)",0
dma_msg db " [b] <EFBFBD>α―®«μ§®Ά ­¨¥ DMA ¤«ο § ―¨α¨ ­  HDD:",0 dma_msg db " [b] ˆá¯®«ì§®¢ ­¨¥ DMA ¤«ï ¤®áâ㯠 ª HDD:",0
on_msg db " ¢ª«",13,10,0 on_msg db " ¢ª«",13,10,0
off_msg db " ¢ëª«",13,10,0 off_msg db " ¢ëª«",13,10,0
readonly_msg db " ⮫쪮 ç⥭¨¥",13,10,0
vrrm_msg db " [c] ˆá¯®«ì§®¢ ­¨¥ VRR:",0 vrrm_msg db " [c] ˆá¯®«ì§®¢ ­¨¥ VRR:",0
preboot_device_msg db " [d] Ž¡à § ¤¨áª¥âë: ",0 preboot_device_msg db " [d] Ž¡à § ¤¨áª¥âë: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -18,7 +18,7 @@ display_atboot db 0 ; show boot screen messages ( 2-no )
preboot_graph db 0 ; graph mode preboot_graph db 0 ; graph mode
preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes) preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes)
preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no) preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no)
preboot_dma_write db 0 ; use DMA for writing to HDD (1-yes, 2-no) preboot_dma db 0 ; use DMA for access to HDD (1-always, 2-only for read, 3-never)
preboot_device db 0 ; boot device preboot_device db 0 ; boot device
; (1-floppy 2-harddisk 3-kernel restart) ; (1-floppy 2-harddisk 3-kernel restart)
;!!!! 0 - autodetect !!!! ;!!!! 0 - autodetect !!!!

View File

@ -321,8 +321,8 @@ high_code:
; ----------------------------------------- ; -----------------------------------------
; movzx eax,byte [BOOT_VAR+0x9010] ; mouse port ; movzx eax,byte [BOOT_VAR+0x9010] ; mouse port
; mov [0xF604],byte 1 ;al ; mov [0xF604],byte 1 ;al
mov al, [BOOT_VAR+0x901F] ; DMA writing mov al, [BOOT_VAR+0x901F] ; DMA access
mov [allow_dma_write], al mov [allow_dma_access], al
mov al,[BOOT_VAR+0x9000] ; bpp mov al,[BOOT_VAR+0x9000] ; bpp
mov [ScreenBPP],al mov [ScreenBPP],al
movzx eax,word [BOOT_VAR+0x900A] ; X max movzx eax,word [BOOT_VAR+0x900A] ; X max

0
kernel/trunk/unpacker.inc Executable file → Normal file
View File