forked from KolibriOS/kolibrios
Fixed sys_msg_board (fn 63) to not rely on cross_order and take arguments in original order.
git-svn-id: svn://kolibrios.org@3614 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
37b9069351
commit
d4216492e1
@ -71,7 +71,7 @@ kernel_export \
|
||||
HwCursorCreate,\
|
||||
\
|
||||
SysMsgBoardStr,\
|
||||
SysMsgBoardChar,\
|
||||
SysMsgBoard,\
|
||||
GetCurrentTask,\
|
||||
LoadFile,\
|
||||
SendEvent,\
|
||||
|
@ -234,26 +234,26 @@ macro DEBUGH_N _sign,_num,_hex {
|
||||
debug_func fdo_debug_outchar
|
||||
debug_beginf
|
||||
pushad
|
||||
movzx ebx,al
|
||||
mov eax,1
|
||||
movzx ecx,al
|
||||
mov ebx,1
|
||||
; mov ecx,sys_msg_board
|
||||
; call ecx ; sys_msg_board
|
||||
stdcall SysMsgBoardChar
|
||||
stdcall SysMsgBoard
|
||||
popad
|
||||
ret
|
||||
debug_endf
|
||||
|
||||
debug_func fdo_debug_outstr
|
||||
debug_beginf
|
||||
mov eax,1
|
||||
mov ebx,1
|
||||
.l1: dec esi
|
||||
js .l2
|
||||
movzx ebx,byte[edx]
|
||||
or bl,bl
|
||||
movzx ecx,byte[edx]
|
||||
or cl,cl
|
||||
jz .l2
|
||||
; mov ecx,sys_msg_board
|
||||
; call ecx ; sys_msg_board
|
||||
stdcall SysMsgBoardChar
|
||||
stdcall SysMsgBoard
|
||||
inc edx
|
||||
jmp .l1
|
||||
.l2: ret
|
||||
|
@ -75,7 +75,7 @@ kernel_export \
|
||||
HwCursorCreate,\
|
||||
\
|
||||
SysMsgBoardStr,\
|
||||
SysMsgBoardChar,\
|
||||
SysMsgBoard,\
|
||||
GetCurrentTask,\
|
||||
LoadFile,\
|
||||
SendEvent,\
|
||||
|
@ -66,7 +66,7 @@ iglobal
|
||||
szLoadCursor db 'LoadCursor',0
|
||||
|
||||
szSysMsgBoardStr db 'SysMsgBoardStr', 0
|
||||
szSysMsgBoardChar db 'SysMsgBoardChar', 0
|
||||
szSysMsgBoard db 'SysMsgBoard', 0
|
||||
szGetCurrentTask db 'GetCurrentTask',0
|
||||
szLFBAddress db 'LFBAddress',0
|
||||
szLoadFile db 'LoadFile',0
|
||||
@ -163,7 +163,7 @@ kernel_export:
|
||||
dd szLoadCursor , load_cursor ;stdcall
|
||||
|
||||
dd szSysMsgBoardStr , sys_msg_board_str
|
||||
dd szSysMsgBoardChar , sys_msg_board
|
||||
dd szSysMsgBoard , sys_msg_board
|
||||
dd szGetCurrentTask , get_curr_task
|
||||
dd szLoadFile , load_file ;retval eax, ebx
|
||||
dd szSendEvent , send_event ;see EVENT.inc for specification
|
||||
|
@ -121,8 +121,8 @@ iglobal
|
||||
dd 0
|
||||
dd 0
|
||||
dd 0
|
||||
dd 0 ; 62-PCI functions
|
||||
dd sys_msg_board ; 63-System message board
|
||||
dd 0
|
||||
dd 0
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; NEW SYSTEM FUNCTIONS TABLE ;;
|
||||
@ -192,8 +192,8 @@ iglobal
|
||||
dd undefined_syscall ; 59-reserved
|
||||
dd sys_IPC ; 60-Inter Process Communication
|
||||
dd sys_gs ; 61-Direct graphics access
|
||||
dd pci_api ;cross_order ; 62-PCI functions
|
||||
dd cross_order ; 63-System message board
|
||||
dd pci_api ; 62-PCI functions
|
||||
dd sys_msg_board ; 63-System message board
|
||||
dd sys_resize_app_memory ; 64-Resize application memory usage
|
||||
dd sys_putimage_palette ; 65-PutImagePalette
|
||||
dd sys_process_def ; 66-Process definitions - keyboard
|
||||
|
@ -248,27 +248,27 @@ macro DEBUGH_N _sign,_num,_hex {
|
||||
debug_func fdo_debug_outchar
|
||||
debug_beginf
|
||||
pushad
|
||||
movzx ebx, al
|
||||
mov eax, 1
|
||||
movzx ecx, al
|
||||
mov ebx, 1
|
||||
; mov ecx,sys_msg_board
|
||||
; call ecx ; sys_msg_board
|
||||
stdcall SysMsgBoardChar
|
||||
stdcall SysMsgBoard
|
||||
popad
|
||||
ret
|
||||
debug_endf
|
||||
|
||||
debug_func fdo_debug_outstr
|
||||
debug_beginf
|
||||
mov eax, 1
|
||||
mov ebx, 1
|
||||
.l1:
|
||||
dec esi
|
||||
js .l2
|
||||
movzx ebx, byte[edx]
|
||||
or bl, bl
|
||||
movzx ecx, byte[edx]
|
||||
or cl, cl
|
||||
jz .l2
|
||||
; mov ecx,sys_msg_board
|
||||
; call ecx ; sys_msg_board
|
||||
stdcall SysMsgBoardChar
|
||||
stdcall SysMsgBoard
|
||||
inc edx
|
||||
jmp .l1
|
||||
.l2:
|
||||
|
@ -75,7 +75,7 @@ kernel_export \
|
||||
HwCursorCreate,\
|
||||
\
|
||||
SysMsgBoardStr,\
|
||||
SysMsgBoardChar,\
|
||||
SysMsgBoard,\
|
||||
GetCurrentTask,\
|
||||
LoadFile,\
|
||||
SendEvent,\
|
||||
|
@ -241,25 +241,23 @@ esp equ _esp
|
||||
debug_func fdo_debug_outchar
|
||||
debug_beginf
|
||||
pushad
|
||||
movzx ebx, al
|
||||
mov eax, 1
|
||||
mov ecx, sys_msg_board
|
||||
call ecx ; sys_msg_board
|
||||
movzx ecx, al
|
||||
mov ebx, 1
|
||||
call sys_msg_board
|
||||
popad
|
||||
ret
|
||||
debug_endf
|
||||
|
||||
debug_func fdo_debug_outstr
|
||||
debug_beginf
|
||||
mov eax, 1
|
||||
mov ebx, 1
|
||||
.l1:
|
||||
dec esi
|
||||
js .l2
|
||||
movzx ebx, byte[edx]
|
||||
or bl, bl
|
||||
movzx ecx, byte[edx]
|
||||
or cl, cl
|
||||
jz .l2
|
||||
mov ecx, sys_msg_board
|
||||
call ecx ; sys_msg_board
|
||||
call sys_msg_board
|
||||
inc edx
|
||||
jmp .l1
|
||||
.l2:
|
||||
|
@ -4680,8 +4680,8 @@ sys_msg_board_str:
|
||||
@@:
|
||||
cmp [esi], byte 0
|
||||
je @f
|
||||
mov eax, 1
|
||||
movzx ebx, byte [esi]
|
||||
mov ebx, 1
|
||||
movzx ecx, byte [esi]
|
||||
call sys_msg_board
|
||||
inc esi
|
||||
jmp @b
|
||||
@ -4721,9 +4721,9 @@ sys_msg_board_dword:
|
||||
cmp al, 10
|
||||
sbb al, 69h
|
||||
das
|
||||
mov bl, al
|
||||
xor eax, eax
|
||||
inc eax
|
||||
mov cl, al
|
||||
xor ebx, ebx
|
||||
inc ebx
|
||||
call sys_msg_board
|
||||
pop eax
|
||||
pop ecx
|
||||
@ -4740,8 +4740,12 @@ endg
|
||||
|
||||
sys_msg_board:
|
||||
|
||||
; eax=1 : write : bl byte to write
|
||||
; eax=2 : read : ebx=0 -> no data, ebx=1 -> data in al
|
||||
; ebx=1 : write : bl byte to write
|
||||
; ebx=2 : read : ebx=0 -> no data, ebx=1 -> data in al
|
||||
|
||||
push eax ebx ; Save eax and ebx, since we're restoring their order required.
|
||||
mov eax, ebx
|
||||
mov ebx, ecx
|
||||
|
||||
mov ecx, [msg_board_count]
|
||||
cmp eax, 1
|
||||
@ -4799,24 +4803,29 @@ end if
|
||||
inc ecx
|
||||
and ecx, msg_board_data_size - 1
|
||||
mov [msg_board_count], ecx
|
||||
|
||||
pop ebx eax
|
||||
ret
|
||||
.smbl1:
|
||||
cmp eax, 2
|
||||
jne .smbl2
|
||||
test ecx, ecx
|
||||
jz .smbl21
|
||||
|
||||
add esp, 8 ; Returning data in ebx and eax, so no need to restore them.
|
||||
mov eax, msg_board_data+1
|
||||
mov ebx, msg_board_data
|
||||
movzx edx, byte [ebx]
|
||||
call memmove
|
||||
dec [msg_board_count]
|
||||
mov [esp + 36], edx ;eax
|
||||
mov [esp + 24], dword 1
|
||||
mov [esp + 32], edx ;eax
|
||||
mov [esp + 20], dword 1
|
||||
ret
|
||||
.smbl21:
|
||||
mov [esp+36], ecx
|
||||
mov [esp+24], ecx
|
||||
mov [esp+32], ecx
|
||||
mov [esp+20], ecx
|
||||
.smbl2:
|
||||
pop ebx eax
|
||||
ret
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -62,7 +62,7 @@ debug_outchar: ; al - char
|
||||
;int 0x40
|
||||
mov bl, al
|
||||
mov eax, 1
|
||||
call SysMsgBoardChar
|
||||
call SysMsgBoard
|
||||
popad
|
||||
popf
|
||||
ret
|
||||
@ -138,7 +138,7 @@ debug_outhex:
|
||||
popf
|
||||
ret
|
||||
|
||||
SysMsgBoardChar:
|
||||
SysMsgBoard:
|
||||
push eax ebx ecx
|
||||
mov cl, al
|
||||
mov eax, 63
|
||||
@ -153,7 +153,7 @@ SysMsgBoardStr:
|
||||
lodsb
|
||||
or al, al
|
||||
jz @f
|
||||
call SysMsgBoardChar
|
||||
call SysMsgBoard
|
||||
jmp @b
|
||||
@@:
|
||||
pop eax
|
||||
|
Loading…
Reference in New Issue
Block a user