-A: minor updates

git-svn-id: svn://kolibrios.org@3168 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Artem Jerdev (art_zh) 2013-01-14 23:02:43 +00:00
parent 94bd7630d1
commit 634c0e9aa4
9 changed files with 104 additions and 126 deletions

View File

@ -1,17 +0,0 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;======================================================================
;
; BOOT DATA
;
;======================================================================
$Revision$
boot_dev db 0 ; 0=floppy, 1=hd

View File

@ -20,7 +20,7 @@ irq0:
mov es, ax mov es, ax
inc [timer_ticks] inc [timer_ticks]
mov eax, [timer_ticks] mov eax, [timer_ticks]
call playNote ; <<<--- Speaker driver ; call playNote ; <<<--- Speaker driver
sub eax,[next_usage_update] sub eax,[next_usage_update]
cmp eax,100 cmp eax,100
jb .nocounter jb .nocounter
@ -43,21 +43,6 @@ change_task:
pushfd pushfd
cli cli
pushad pushad
if 0
; \begin{Mario79} ; <- must be refractoried, if used...
cmp [dma_task_switched], 1
jne .find_next_task
mov [dma_task_switched], 0
mov ebx, [dma_process]
cmp [CURRENT_TASK], ebx
je .return
mov edi, [dma_slot_ptr]
mov [CURRENT_TASK], ebx
mov [TASK_BASE], edi
jmp @f
.find_next_task:
; \end{Mario79}
end if
call find_next_task call find_next_task
jz .return ; the same task -> skip switch jz .return ; the same task -> skip switch
@@: mov byte[DONT_SWITCH], 1 @@: mov byte[DONT_SWITCH], 1

View File

@ -106,9 +106,9 @@ diff16 "sdsh_data.table0: ",0,$
dw (.ch0_88 -.chars)*16 + 2 ; #88 X dw (.ch0_88 -.chars)*16 + 2 ; #88 X
dw (.ch0_89 -.chars)*16 + 2 ; #88 Y dw (.ch0_89 -.chars)*16 + 2 ; #88 Y
dw (.ch0_90 -.chars)*16 + 3 ; #90 Z dw (.ch0_90 -.chars)*16 + 3 ; #90 Z
dw (.ch0_91 -.chars)*16 + 3 ; #91 [ dw (.ch0_91 -.chars)*16 + 1 ; #91 [
dw (.ch0_92 -.chars)*16 + 1 ; #92 \ dw (.ch0_92 -.chars)*16 + 1 ; #92 \
dw (.ch0_93 -.chars)*16 + 3 ; #93 ] dw (.ch0_93 -.chars)*16 + 1 ; #93 ]
dw (.ch0_94 -.chars)*16 + 1 ; #94 ^ dw (.ch0_94 -.chars)*16 + 1 ; #94 ^
dw (.ch0_95 -.chars)*16 + 1 ; #95 _ dw (.ch0_95 -.chars)*16 + 1 ; #95 _
dw (.ch0_96 -.chars)*16 + 1 ; #96 ` dw (.ch0_96 -.chars)*16 + 1 ; #96 `
@ -442,11 +442,9 @@ diff16 "sdsh_data.chars: ",0,$
.ch0_92: ; \ .ch0_92: ; \
gptick 4, 6, 84 gptick 4, 6, 84
.ch0_91: ; [ .ch0_91: ; [
lntick 1, 3, 2, 5 gptick 19, 4, 99
.ch0_93: ; ] .ch0_93: ; ]
lntick 1, 2, 0, 3 gptick 9, 0, 99
lntick 1, 8, 0, 3
lntick 3, 3, 2, 5
.ch0_65: ; A .ch0_65: ; A
.ch0_128: ; .ch0_128: ;
lntick 0, 2, 2, 4 lntick 0, 2, 2, 4

View File

@ -18,9 +18,9 @@ align 4
db 0x1A ; 6 db 0x1A ; 6
db 0x77 ; 7 db 0x77 ; 7
db 0x49 ; 8 db 0x49 ; 8
db 0x00 ; 9 db 0x62 ; 9
db 0x00 ; 10 db 0x2E ; 10
db 0x00 ; 11 db 0x1D ; 11
db 0x00 ; 12 db 0x00 ; 12
db 0x00 ; 13 db 0x00 ; 13
db 0x00 ; 14 db 0x00 ; 14
@ -48,36 +48,36 @@ align 4
diff16 "font02.table: ",0,$ diff16 "font02.table: ",0,$
times 33 dw 0 times 33 dw 0
char_entry .ch_33, 4, 4 ; #33 ! char_entry .ch_33, 2, 4 ; #33 !
char_entry .ch_34, 4, 2 ; #34 " char_entry .ch_34, 2, 2 ; #34 "
char_entry .ch_35, 0, 4 ; #35 # char_entry .ch_35, 0, 4 ; #35 #
char_entry .ch_36, 0, 4 ; #36 $ char_entry .ch_36, 0, 4 ; #36 $
char_entry .ch_37, 0, 3 ; #37 % char_entry .ch_37, 0, 3 ; #37 %
dw (.ch_38 -.chars)*16 + 4 ; #38 & dw (.ch_38 -.chars)*16 + 4 ; #38 &
char_entry .ch_39, 5, 1 ; #39 ' char_entry .ch_39, 2, 1 ; #39 '
dw (.ch_40 -.chars)*16 + 1 ; #40 ( char_entry .ch_40, 2, 1 ; #40 (
dw (.ch_41 -.chars)*16 + 1 ; #41 ) char_entry .ch_41, 2, 1 ; #41 )
char_entry .ch_42, 1, 3 ; #42 * char_entry .ch_42, 1, 3 ; #42 *
dw (.ch_43 -.chars)*16 + 2 ; #43 + char_entry .ch_43, 1, 2 ; #43 +
dw (.ch_44 -.chars)*16 + 2 ; #44 , char_entry .ch_44, 2, 2 ; #44 ,
dw (.ch_45 -.chars)*16 + 1 ; #45 - char_entry .ch_45, 1, 1 ; #45 -
dw (.ch_46 -.chars)*16 + 1 ; #46 . char_entry .ch_46, 2, 2 ; #46 .
char_entry .ch_47, 2, 1 ; #47 / char_entry .ch_47, 1, 1 ; #47 /
dw (.ch_48 -.chars)*16 + 2 ; #48 0 char_entry .ch_48, 1, 2 ; #48 0
dw (.ch_49 -.chars)*16 + 2 ; #49 1 char_entry .ch_49, 2, 3 ; #49 1
dw (.ch_50 -.chars)*16 + 3 ; #50 2 char_entry .ch_50, 1, 3 ; #50 2
dw (.ch_51 -.chars)*16 + 3 ; #51 3 char_entry .ch_51, 1, 2 ; #51 3
dw (.ch_52 -.chars)*16 + 3 ; #52 4 dw (.ch_52 -.chars)*16 + 3 ; #52 4
dw (.ch_53 -.chars)*16 + 2 ; #53 5 dw (.ch_53 -.chars)*16 + 2 ; #53 5
dw (.ch_54 -.chars)*16 + 2 ; #54 6 dw (.ch_54 -.chars)*16 + 2 ; #54 6
dw (.ch_55 -.chars)*16 + 2 ; #55 7 dw (.ch_55 -.chars)*16 + 2 ; #55 7
dw (.ch_56 -.chars)*16 + 2 ; #56 8 dw (.ch_56 -.chars)*16 + 2 ; #56 8
dw (.ch_57 -.chars)*16 + 2 ; #57 9 dw (.ch_57 -.chars)*16 + 2 ; #57 9
dw (.ch_58 -.chars)*16 + 2 ; #58 : char_entry .ch_58, 4, 2 ; #58 :
dw (.ch_59 -.chars)*16 + 3 ; #59 ; char_entry .ch_59, 4, 4 ; #59 ;
dw (.ch_60 -.chars)*16 + 1 ; #60 < dw (.ch_60 -.chars)*16 + 1 ; #60 <
dw (.ch_61 -.chars)*16 + 2 ; #61 = char_entry .ch_61, 0, 2 ; #61 =
dw (.ch_62 -.chars)*16 + 1 ; #62 > dw (.ch_62 -.chars)*16 + 1 ; #62 >
dw (.ch_63 -.chars)*16 + 3 ; #63 ? dw (.ch_63 -.chars)*16 + 3 ; #63 ?
dw (.ch_64 -.chars)*16 + 2 ; #64 @ dw (.ch_64 -.chars)*16 + 2 ; #64 @
@ -89,6 +89,7 @@ diff16 "font02.table: ",0,$
dw (.ch_70 -.chars)*16 + 3 ; #70 F dw (.ch_70 -.chars)*16 + 3 ; #70 F
dw (.ch_71 -.chars)*16 + 2 ; #71 G dw (.ch_71 -.chars)*16 + 2 ; #71 G
dw (.ch_72 -.chars)*16 + 3 ; #72 H dw (.ch_72 -.chars)*16 + 3 ; #72 H
char_entry .ch_73, 4, 3 ; #73 I
dw (.ch_73 -.chars)*16 + 3 ; #73 I dw (.ch_73 -.chars)*16 + 3 ; #73 I
dw (.ch_74 -.chars)*16 + 2 ; #74 J dw (.ch_74 -.chars)*16 + 2 ; #74 J
dw (.ch_75 -.chars)*16 + 3 ; #75 K dw (.ch_75 -.chars)*16 + 3 ; #75 K
@ -100,7 +101,6 @@ diff16 "font02.table: ",0,$
dw (.ch_81 -.chars)*16 + 3 ; #81 Q dw (.ch_81 -.chars)*16 + 3 ; #81 Q
dw (.ch_82 -.chars)*16 + 3 ; #82 R dw (.ch_82 -.chars)*16 + 3 ; #82 R
char_entry .ch_83, 0, 2 ; #83 S char_entry .ch_83, 0, 2 ; #83 S
dw (.ch_83 -.chars)*16 + 3 ; #83 S
dw (.ch_84 -.chars)*16 + 2 ; #84 T dw (.ch_84 -.chars)*16 + 2 ; #84 T
dw (.ch_85 -.chars)*16 + 3 ; #85 U dw (.ch_85 -.chars)*16 + 3 ; #85 U
dw (.ch_86 -.chars)*16 + 3 ; #86 V dw (.ch_86 -.chars)*16 + 3 ; #86 V
@ -152,8 +152,8 @@ diff16 "font02.table: ",0,$
dw (.ch_131-.chars)*16 + 2 ; #131 dw (.ch_131-.chars)*16 + 2 ; #131
dw (.ch_132-.chars)*16 + 6 ; #132 dw (.ch_132-.chars)*16 + 6 ; #132
dw (.ch_133-.chars)*16 + 4 ; #133 E dw (.ch_133-.chars)*16 + 4 ; #133 E
dw (.ch_134-.chars)*16 + 3 ; #134 dw (.ch_134-.chars)*16 + 3 ; #134 Zhe
dw (.ch_135-.chars)*16 + 3 ; #135 char_entry .ch_135, 0, 4 ; #135 'Ze'
dw (.ch_136-.chars)*16 + 3 ; #136 dw (.ch_136-.chars)*16 + 3 ; #136
dw (.ch_137-.chars)*16 + 4 ; #137 dw (.ch_137-.chars)*16 + 4 ; #137
dw (.ch_138-.chars)*16 + 3 ; #138 K dw (.ch_138-.chars)*16 + 3 ; #138 K
@ -267,6 +267,7 @@ diff16 "font02.chars: ",0,$
.chars: .chars:
dw 0 dw 0
.ch_33: ; ! .ch_33: ; !
.ch_46: ; .
lntick 3, 3, 0, 3 lntick 3, 3, 0, 3
lntick 4, 2, 2, 3 lntick 4, 2, 2, 3
lntick 4, 7, 2, 6 lntick 4, 7, 2, 6
@ -281,13 +282,17 @@ diff16 "font02.chars: ",0,$
lntick 0, 7, 0, 8 lntick 0, 7, 0, 8
lntick 1,11, 0, 8 lntick 1,11, 0, 8
.ch_135: ; 'Ze'
lntick 0,12, 0, 2
.ch_51: ; 3
gptick 11, 3, 106
.ch_36: ; $ .ch_36: ; $
lntick 3, 2, 2, 14 .ch_83: ; S
lntick 5, 2, 2, 14
.ch_83: ; S
gptick 8, 0, 125 gptick 8, 0, 125
gptick 1, 4, 118 gptick 1, 4, 118
lntick 0, 3, 3 lntick 0, 3, 3
lntick 3, 2, 2, 14
lntick 5, 2, 2, 14
.ch_37: ; % .ch_37: ; %
.ch_47: ; / .ch_47: ; /
@ -300,52 +305,63 @@ diff16 "font02.chars: ",0,$
gptick 19, 4, 44 gptick 19, 4, 44
gptick 4, 0, 44 gptick 4, 0, 44
ritick 3, 3, 0 ritick 3, 3, 0
.ch_40: ; ( .ch_40: ; (
gptick 5, 3, 80 gptick 9, 3, 121
.ch_41: ; ) .ch_41: ; )
gptick 9, 7, 80 gptick 10, 7, 121
.ch_42: ; * .ch_42: ; *
gptick 7, 4, 71 gptick 7, 4, 71
gptick 6, 0, 71 gptick 6, 0, 71
lntick 4, 5, 2, 8
.ch_43: ; + .ch_43: ; +
lntick 2, 2, 2, 5 lntick 4, 5, 2, 7
.ch_45: ; - .ch_45: ; -
lntick 1, 8, 0, 7
.ch_61: ; = .ch_61: ; =
lntick 0, 4, 0, 5 lntick 1, 9, 0, 7
lntick 0, 6, 0, 5 lntick 1, 6, 0, 7
.ch_58: ; :
.ch_59: ; ; .ch_59: ; ;
cstick 1, 7, 0, 0 lntick 5, 9, 2, 2
.ch_46: ; . .ch_58: ; :
cstick 3,10, 0, 0
.ch_44: ; , .ch_44: ; ,
cstick 1, 3, 0, 0 cstick 3, 4, 0, 0
ritick 1, 1, 0 gptick 3, 6, 48
.ch_48: ; 0
gptick 7, 6, 122
gptick 6, 2, 122
.ch_55: ; 7 .ch_55: ; 7
gptick 1, 2, 81 gptick 1, 2, 81
lntick 0, 8, 0, 4 lntick 0, 8, 0, 4
.ch_64: ; @ .ch_64: ; @
cstick 2, 6, 0, 1 cstick 2, 6, 0, 1
.ch_48: ; 0
.ch_79: ; O .ch_79: ; O
.ch_142: ; .ch_142: ;
.ch_81: ; Q .ch_81: ; Q
gptick 5, 4, 116 gptick 5, 4, 116
lntick 4, 3, 2, 5 lntick 4, 3, 2, 5
lntick 3, 1, 0, 2 lntick 3, 1, 0, 2
.ch_49: ; 1 .ch_49: ; 1
lntick 2,10, 1, 2
.ch_73: ; I
lntick 4, 4, 2, 11
lntick 2, 3, 0, 5
lntick 2,14, 0, 5
.ch_124: ; | .ch_124: ; |
lntick 2, 2, 2, 7
ritick 1, 6, 0
.ch_50: ; 2 .ch_50: ; 2
lntick 0, 2, 0, 5 gptick 11, 1, 106
lntick 1, 3, 1, 3 lntick 1, 5, 1, 5
.ch_51: ; 3 gptick 12, 6, 99
gptick 8, 1, 64
gptick 10, 6, 65
.ch_83: ; S
lntick 1, 5, 0, 3
gptick 3, 2, 55
.ch_53: ; 5 .ch_53: ; 5
gptick 10, 6, 65 gptick 10, 6, 65
gptick 13, 4, 104 gptick 13, 4, 104
@ -407,10 +423,6 @@ diff16 "font02.chars: ",0,$
lntick 1, 5, 0, 3 lntick 1, 5, 0, 3
lntick 0, 2, 2, 7 lntick 0, 2, 2, 7
lntick 4, 2, 2, 7 lntick 4, 2, 2, 7
.ch_73: ; I
lntick 1, 8, 0, 3
lntick 2, 3, 2, 5
lntick 1, 2, 0, 3
.ch_74: ; J .ch_74: ; J
gptick 31, 6, 88 gptick 31, 6, 88
lntick 2, 8, 0, 3 lntick 2, 8, 0, 3
@ -610,8 +622,6 @@ diff16 "font02.chars: ",0,$
gptick 14, 0, 89 gptick 14, 0, 89
lntick 1, 3, 2, 6 lntick 1, 3, 2, 6
ritick 0, 8, 0 ritick 0, 8, 0
.ch_135: ; ZE
ritick 3, 5, 0
.ch_157: ; AE .ch_157: ; AE
gptick 8, 1, 64 gptick 8, 1, 64
gptick 10, 6, 65 gptick 10, 6, 65

View File

@ -121,7 +121,7 @@ init_mem:
dec ecx dec ecx
jnz .map_kernel_tabs jnz .map_kernel_tabs
; map pagetables to linear space ; map pagetables to linear space!
mov dword [sys_pgdir-OS_BASE+(page_tabs shr 20)], sys_pgdir+PG_SW-OS_BASE mov dword [sys_pgdir-OS_BASE+(page_tabs shr 20)], sys_pgdir+PG_SW-OS_BASE
mov edi, (sys_pgdir-OS_BASE) mov edi, (sys_pgdir-OS_BASE)
@ -149,7 +149,7 @@ init_page_map:
mov edi, sys_pgmap-OS_BASE mov edi, sys_pgmap-OS_BASE
mov ebx, ecx mov ebx, ecx
shr ecx, 5 shr ecx, 5 ; 32 pagebits per dw
xor eax, eax xor eax, eax
rep stosd rep stosd

View File

@ -1,6 +1,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2004-2010. All rights reserved. ;; Copyright (C) KolibriOS team 2004-2013. All rights reserved.
;; PROGRAMMING: ;; PROGRAMMING:
;; Ivan Poddubny ;; Ivan Poddubny
;; Marat Zakiyanov (Mario79) ;; Marat Zakiyanov (Mario79)
@ -87,7 +87,6 @@ pci_data_sel equ (pci_data_32-gdts)
;; Included files: ;; Included files:
;; ;;
;; Kernel16.inc ;; Kernel16.inc
;; - Booteng.inc English text for bootup
;; - Bootcode.inc Hardware setup ;; - Bootcode.inc Hardware setup
;; - Pci16.inc PCI functions ;; - Pci16.inc PCI functions
;; ;;
@ -116,14 +115,12 @@ use16
org 0x0 org 0x0
jmp start_of_code jmp start_of_code
version db 'Kolibri OS version 0.7.7.0+ ',13,10,13,10,0 version db 'Kolibri-A version 0.1.0.0 ',13,10,13,10,0
;include "boot/bootstr.inc" ; language-independent boot messages diff16 "preboot start: ",0,$
include "boot/preboot.inc" include "boot/preboot.inc"
include "boot/booteng.inc" ; english system boot messages
diff16 "bootcode start: ",0,$ diff16 "bootcode start: ",0,$
include "boot/bootcode.inc" ; 16 bit system boot code include "boot/bootcode.inc" ; 16 bit system boot code
diff16 "pci16 start: ",0,$ diff16 "pci16 start: ",0,$
@ -252,6 +249,8 @@ end if
lgdt [gdts] lgdt [gdts]
jmp pword os_code:high_code jmp pword os_code:high_code
diff16 "32-bit init size ",B32,$
align 4 align 4
bios32_entry dd ? bios32_entry dd ?
tmp_page_tabs dd ? tmp_page_tabs dd ?
@ -478,7 +477,7 @@ high_code:
stdcall kernel_alloc, (unpack.LZMA_BASE_SIZE+(unpack.LZMA_LIT_SIZE shl \ stdcall kernel_alloc, (unpack.LZMA_BASE_SIZE+(unpack.LZMA_LIT_SIZE shl \
(unpack.lc+unpack.lp)))*4 (unpack.lc+unpack.lp)))*4
mov [unpack.p], eax mov [unpack.p], eax ; unpacker.inc
call init_events call init_events
mov eax, srv.fd-SRV_FD_OFFSET mov eax, srv.fd-SRV_FD_OFFSET

View File

@ -219,7 +219,7 @@ include "fs/ext2.inc" ; read / write for ext2 filesystem
; sound ; sound
include "sound/playnote.inc" ; player Note for Speaker PC ;include "sound/playnote.inc" ; player Note for Speaker PC
;include "sound/FHT.inc" ; fast Fourier transform routines ;include "sound/FHT.inc" ; fast Fourier transform routines
; display ; display

View File

@ -267,9 +267,7 @@
; 0x805FF000 -> 5FFF80 TSS ; 0x805FF000 -> 5FFF80 TSS
; 0x80600000 -> 601FFF i/o maps ; 0x80600000 -> 601FFF i/o maps
; 0x80800000 -> kernel heap ; 0x80800000 ->827FFFFF kernel heap
; 0x80FFFFFF heap min limit
; 0xEFFFFFFF heap max limit
; 0xF0000000 -> 0xF1FFFFFF PCI-express extended config space ; 0xF0000000 -> 0xF1FFFFFF PCI-express extended config space
; 0xFD000000 -> 0xFD3FFFFF static system buffer 4Mb ; 0xFD000000 -> 0xFD3FFFFF static system buffer 4Mb

View File

@ -445,7 +445,7 @@ align 4
.invert_force: .invert_force:
mov ecx, [ebx+eax*4] mov ecx, [ebx+eax*4]
xor ecx, 0x00FFFFFF xor ecx, 0x00FFFFFF
or ecx, 0x01000000 ; keep bit[24] high ! bts ecx, 24 ; keep bit[24] high !
align 4 align 4
.putpixel: .putpixel:
mov [ebx+eax*4], ecx mov [ebx+eax*4], ecx
@ -956,6 +956,7 @@ bgr_cur_line rd 1920 ; maximum width of screen
bgr_next_line rd 1920 bgr_next_line rd 1920
endg endg
smooth_line: smooth_line:
mov al, [esi+2] mov al, [esi+2]
shl eax, 16 shl eax, 16
@ -1019,6 +1020,28 @@ align 4
overlapping_of_points_ptr dd overlapping_of_points overlapping_of_points_ptr dd overlapping_of_points
endg endg
align 16
overlapping_of_points_mmx:
movd mm0, eax
movd mm4, eax
movd mm1, ebx
pxor mm2, mm2
punpcklbw mm0, mm2
punpcklbw mm1, mm2
psubw mm1, mm0
movd mm3, ecx
psrld mm3, 24
packuswb mm3, mm3
packuswb mm3, mm3
pmullw mm1, mm3
psrlw mm1, 8
packuswb mm1, mm2
paddb mm4, mm1
movd eax, mm4
ret
init_background: init_background:
mov edi, BgrAuxTable mov edi, BgrAuxTable
xor edx, edx xor edx, edx
@ -1040,25 +1063,7 @@ init_background:
@@: @@:
ret ret
align 16
overlapping_of_points_mmx:
movd mm0, eax
movd mm4, eax
movd mm1, ebx
pxor mm2, mm2
punpcklbw mm0, mm2
punpcklbw mm1, mm2
psubw mm1, mm0
movd mm3, ecx
psrld mm3, 24
packuswb mm3, mm3
packuswb mm3, mm3
pmullw mm1, mm3
psrlw mm1, 8
packuswb mm1, mm2
paddb mm4, mm1
movd eax, mm4
ret
;diff16 "VESA2 code end ",0,$ ;diff16 "VESA2 code end ",0,$
diff10 "VESA2 code size",get_pixel,$ diff10 "VESA2 code size",get_pixel,$