from Nable: Sound Blaster driver

git-svn-id: svn://kolibrios.org@802 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge)
2008-06-09 12:12:09 +00:00
parent e080f21757
commit 77a4ede567
26 changed files with 875 additions and 852 deletions

View File

@@ -19,58 +19,39 @@ conf_fname db '/sys/sys.conf',0
; set soke kernel configuration ; set soke kernel configuration
proc set_kernel_conf proc set_kernel_conf
locals locals
par db 30 dup(?) par db 30 dup(?)
endl endl
pushad
;[gui] pushad
;mouse_speed ;[gui]
lea eax,[par] ;mouse_speed
push eax
invoke ini.get_str,conf_fname, ugui, ugui_mouse_speed, eax,30, ugui_mouse_speed_def lea eax,[par]
pop eax push eax
stdcall strtoint,eax invoke ini.get_str,conf_fname, ugui, ugui_mouse_speed,\
eax,30, ugui_mouse_speed_def
pop eax
stdcall strtoint,eax
mov [mouse_speed_factor], ax mov [mouse_speed_factor], ax
;mouse_delay ;mouse_delay
lea eax,[par] lea eax,[par]
push eax push eax
invoke ini.get_str,conf_fname, ugui, ugui_mouse_delay, eax,30, ugui_mouse_delay_def invoke ini.get_str,conf_fname, ugui, ugui_mouse_delay,\
pop eax eax,30, ugui_mouse_delay_def
stdcall strtoint,eax pop eax
stdcall strtoint,eax
mov [mouse_delay], eax mov [mouse_delay], eax
;[dev]
;sb16 ;midibase
lea eax,[par] lea eax,[par]
push eax push eax
invoke ini.get_str,conf_fname, udev, udev_sb16, eax,30, udev_sb16_def invoke ini.get_str,conf_fname, udev, udev_midibase, eax,30, udev_midibase_def
pop eax pop eax
stdcall strtoint,eax stdcall strtoint,eax
cmp eax, 0x100
jb @f
cmp eax, 0x10000
jae @f
mov [sb16], eax
@@:
;sound_dma
lea eax,[par]
push eax
invoke ini.get_str,conf_fname, udev, udev_sound_dma, eax,30, udev_sound_dma_def
pop eax
stdcall strtoint,eax
cmp eax, 3
ja @f
mov [sound_dma], eax
@@:
;midibase
lea eax,[par]
push eax
invoke ini.get_str,conf_fname, udev, udev_midibase, eax,30, udev_midibase_def
pop eax
stdcall strtoint,eax
cmp eax, 0x100 cmp eax, 0x100
jb @f jb @f
cmp eax, 0x10000 cmp eax, 0x10000
@@ -80,9 +61,8 @@ endl
inc eax inc eax
mov [midisp], eax mov [midisp], eax
@@: @@:
popad
popad ret
ret
endp endp
ugui db 'gui',0 ugui db 'gui',0
@@ -92,10 +72,6 @@ ugui_mouse_delay db 'mouse_delay',0
ugui_mouse_delay_def db '0x00A',0 ugui_mouse_delay_def db '0x00A',0
udev db 'dev',0 udev db 'dev',0
udev_sb16 db 'sb16',0
udev_sb16_def db '0x220',0
udev_sound_dma db 'sound_dma',0
udev_sound_dma_def db '1',0
udev_midibase db 'midibase',0 udev_midibase db 'midibase',0
udev_midibase_def db '0x320',0 udev_midibase_def db '0x320',0
@@ -105,7 +81,7 @@ locals
par db 30 dup(?) par db 30 dup(?)
endl endl
pushad pushad
;[net] ;[net]
;active ;active
lea eax,[par] lea eax,[par]
@@ -117,7 +93,7 @@ endl
add eax, 3 add eax, 3
mov [stack_config], eax mov [stack_config], eax
call ash_eth_enable call ash_eth_enable
;addr ;addr
lea eax,[par] lea eax,[par]
push eax push eax
@@ -125,7 +101,7 @@ endl
pop eax pop eax
stdcall do_inet_adr,eax stdcall do_inet_adr,eax
mov [stack_ip], eax mov [stack_ip], eax
;mask ;mask
lea eax,[par] lea eax,[par]
push eax push eax
@@ -133,7 +109,7 @@ endl
pop eax pop eax
stdcall do_inet_adr,eax stdcall do_inet_adr,eax
mov [subnet_mask], eax mov [subnet_mask], eax
;gate ;gate
lea eax,[par] lea eax,[par]
push eax push eax
@@ -141,7 +117,7 @@ endl
pop eax pop eax
stdcall do_inet_adr,eax stdcall do_inet_adr,eax
mov [gateway_ip], eax mov [gateway_ip], eax
.do_not_set_net: .do_not_set_net:
popad popad
ret ret
@@ -158,7 +134,7 @@ unet_def db 0
; convert string to DWord ; convert string to DWord
proc strtoint stdcall,strs proc strtoint stdcall,strs
pushad pushad
mov eax,[strs] mov eax,[strs]
inc eax inc eax
mov bl,[eax] mov bl,[eax]
@@ -177,7 +153,7 @@ proc strtoint stdcall,strs
.exit: .exit:
mov [esp+28],eax mov [esp+28],eax
popad popad
ret ret
endp endp
; convert string to DWord for decimal value ; convert string to DWord for decimal value
@@ -206,16 +182,16 @@ proc strtoint_dec stdcall,strs
xchg ebx,ecx xchg ebx,ecx
xor ecx,ecx
@@: xor ecx,ecx
@@:
xor eax,eax xor eax,eax
lodsb lodsb
cmp al,0 cmp al,0
je .eend je .eend
sub al,30h sub al,30h
imul ebx imul ebx
add ecx,eax add ecx,eax
@@ -226,7 +202,7 @@ proc strtoint_dec stdcall,strs
xchg eax,ebx xchg eax,ebx
pop ecx pop ecx
jmp @b jmp @b
.eend: .eend:
mov [esp+28],ecx mov [esp+28],ecx
popad popad
@@ -252,12 +228,12 @@ proc strtoint_hex stdcall,strs
xor ecx,ecx xor ecx,ecx
mov esi,[strs] mov esi,[strs]
@@: @@:
xor eax,eax xor eax,eax
lodsb lodsb
cmp al,0 cmp al,0
je .eend je .eend
cmp al,'a' cmp al,'a'
jae .bm jae .bm
cmp al,'A' cmp al,'A'
@@ -266,15 +242,15 @@ proc strtoint_hex stdcall,strs
.bm: ; 57h .bm: ; 57h
sub al,57h sub al,57h
jmp .do jmp .do
.bb: ; 37h .bb: ; 37h
sub al,37h sub al,37h
jmp .do jmp .do
.cc: ; 30h .cc: ; 30h
sub al,30h sub al,30h
.do: .do:
imul ebx imul ebx
add ecx,eax add ecx,eax
shr ebx,4 shr ebx,4
@@ -285,13 +261,13 @@ proc strtoint_hex stdcall,strs
mov [esp+28],ecx mov [esp+28],ecx
popad popad
ret ret
endp endp
; convert string to DWord for IP addres ; convert string to DWord for IP addres
proc do_inet_adr stdcall,strs proc do_inet_adr stdcall,strs
pushad pushad
mov esi,[strs] mov esi,[strs]
mov ebx,0 mov ebx,0
.next: .next:

View File

@@ -17,10 +17,10 @@ PID_KERNEL equ 1 ;os_idle thread
align 4 align 4
proc attach_int_handler stdcall, irq:dword, handler:dword, access_rights:dword proc attach_int_handler stdcall, irq:dword, handler:dword, access_rights:dword
mov ebx, [irq] ;irq num mov ebx, [irq] ;irq num
test ebx, ebx test ebx, ebx
jz .err jz .err
cmp ebx, 15 ; hidnplayr says: we only have 16 IRQ's cmp ebx, 15 ; hidnplayr says: we only have 16 IRQ's
ja .err ja .err
mov eax, [handler] mov eax, [handler]
test eax, eax test eax, eax
@@ -28,24 +28,20 @@ proc attach_int_handler stdcall, irq:dword, handler:dword, access_rights:dword
cmp [irq_owner + 4 * ebx], 0 cmp [irq_owner + 4 * ebx], 0
je @f je @f
mov ecx, [irq_rights + 4 * ebx] ; Rights : 0 - full access, 1 - read only, 2 - forbidden mov ecx, [irq_rights + 4 * ebx] ; Rights : 0 - full access, 1 - read only, 2 - forbidden
test ecx, ecx test ecx, ecx
jnz .err jnz .err
@@: @@:
mov [irq_tab+ebx*4], eax mov [irq_tab+ebx*4], eax
mov eax, [access_rights] mov eax, [access_rights]
mov [irq_rights + 4 * ebx], eax mov [irq_rights + 4 * ebx], eax
;push eax
;mov eax, [TASK_BASE]
;mov eax, [eax + TASKDATA.pid] ; faster or smaller? :)
;call get_pid
mov [irq_owner + 4 * ebx], PID_KERNEL ;eax mov [irq_owner + 4 * ebx], PID_KERNEL ; all handlers belong to a kernel
;pop eax
stdcall enable_irq, [irq] stdcall enable_irq, [irq]
mov eax, 1
ret ret
.err: .err:
xor eax, eax xor eax, eax

View File

@@ -15,7 +15,6 @@ $Revision$
align 32 align 32
irq0: irq0:
; pushfd
pushad pushad
mov ax, app_data ; mov ax, app_data ;
mov ds, ax mov ds, ax
@@ -42,7 +41,6 @@ irq0:
mov [DONT_SWITCH], byte 0 mov [DONT_SWITCH], byte 0
popad popad
; popfd
iretd iretd
.change_task: .change_task:
@@ -227,9 +225,6 @@ do_change_task:
@@: @@:
mov eax, [ebx+APPDATA.saved_esp0] mov eax, [ebx+APPDATA.saved_esp0]
mov [tss._esp0], eax mov [tss._esp0], eax
; mov eax, [ebx+APPDATA.pl0_stack]
; add eax, RING0_STACK_SIZE
; mov [tss._esp0], eax
mov ax, graph_data mov ax, graph_data
mov gs, ax mov gs, ax

View File

@@ -128,10 +128,10 @@ iglobal
dd sys_settime ; 22-setting date,time,clock and alarm-clock dd sys_settime ; 22-setting date,time,clock and alarm-clock
dd 0 dd 0
dd syscall_cdaudio ; 24-PlayCdTrack,StopCd and GetCdPlaylist dd syscall_cdaudio ; 24-PlayCdTrack,StopCd and GetCdPlaylist
dd sys_sb16 ; 25-SetSb16 dd 0 ;
dd sys_getsetup ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,. dd sys_getsetup ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
dd 0 dd 0
dd sys_sb16II ; 28-SetSb16 dd 0 ;
dd 0 dd 0
dd sys_current_directory ; 30-Get/SetCurrentDirectory dd sys_current_directory ; 30-Get/SetCurrentDirectory
dd 0 dd 0
@@ -208,10 +208,10 @@ iglobal
dd cross_order ; 22-setting date,time,clock and alarm-clock dd cross_order ; 22-setting date,time,clock and alarm-clock
dd sys_wait_event_timeout ; 23-TimeOutWaitForEvent dd sys_wait_event_timeout ; 23-TimeOutWaitForEvent
dd cross_order ; 24-PlayCdTrack,StopCd and GetCdPlaylist dd cross_order ; 24-PlayCdTrack,StopCd and GetCdPlaylist
dd cross_order ; 25-SetSb16 dd undefined_syscall ; 25-reserved
dd cross_order ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,. dd cross_order ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
dd undefined_syscall ; 27-reserved dd undefined_syscall ; 27-reserved
dd cross_order ; 28-SetSb16 dd undefined_syscall ; 28-reserved
dd sys_date ; 29-GetDate dd sys_date ; 29-GetDate
dd cross_order ; 30-Get/SetCurrentDirectory dd cross_order ; 30-Get/SetCurrentDirectory
dd undefined_syscall ; 31-reserved dd undefined_syscall ; 31-reserved
@@ -258,5 +258,5 @@ iglobal
dd cross_order ; 72-Send window message dd cross_order ; 72-Send window message
times 255 - ( ($-servetable2) /4 ) dd undefined_syscall times 255 - ( ($-servetable2) /4 ) dd undefined_syscall
dd sys_end ; -1-end application dd sys_end ; -1-end application
endg endg

View File

@@ -90,6 +90,7 @@ szHwMouse db 'ATI2D',0
szPS2MDriver db 'PS2MOUSE',0 szPS2MDriver db 'PS2MOUSE',0
szCOM_MDriver db 'COM_MOUSE',0 szCOM_MDriver db 'COM_MOUSE',0
szUSB db 'USB',0 szUSB db 'USB',0
szAtiHW db '/rd/1/drivers/ati2d.drv',0
szSTART db 'START',0 szSTART db 'START',0
szEXPORTS db 'EXPORTS',0 szEXPORTS db 'EXPORTS',0
@@ -146,7 +147,6 @@ putpixel dd __sys_putpixel
align 4 align 4
keyboard dd 1 keyboard dd 1
sound_dma dd 1
syslang dd 1 syslang dd 1
boot_y dd 10 boot_y dd 10
@@ -283,7 +283,9 @@ irq_tab rd 16
mem_block_map rb 512 mem_block_map rb 512
event_map rb 64 event_map rb 64
mem_block_list rd 64 mem_block_list rd 64
large_block_list rd 31
mem_block_mask rd 2 mem_block_mask rd 2
large_block_mask rd 1
mem_used.fd rd 1 mem_used.fd rd 1
mem_used.bk rd 1 mem_used.bk rd 1
@@ -364,8 +366,6 @@ hdpos rd 1 ; for boot 0x1
fat32part rd 1 ; for boot 0x1 fat32part rd 1 ; for boot 0x1
cdpos rd 1 cdpos rd 1
sb16 rd 1
;CPUID information ;CPUID information
cpu_vendor rd 3 cpu_vendor rd 3
cpu_sign rd 1 cpu_sign rd 1

View File

@@ -41,7 +41,7 @@
* esi = 0xXYRRGGBB - 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * esi = 0xXYRRGGBB - 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RR, GG, BB <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> ᠬ 梥<> * RR, GG, BB <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> ᠬ 梥<>
* Y=0 - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, Y=1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD> * Y=0 - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, Y=1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD>
* X <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: X=0 - <20><><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD><EFBFBD>, * X <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: X=0 - <20><><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD><EFBFBD>,
X=8 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD>, X=8 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD>,
<20><><EFBFBD> <20><><EFBFBD><EFBFBD> <> II X=4 - <20><><EFBFBD><EFBFBD><EFBFBD><E2A8A2><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <> II X=4 - <20><><EFBFBD><EFBFBD><EFBFBD><E2A8A2><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD>
* <20><><EFBFBD><20><><EFBFBD><EFBFBD><E7A5AD> X <20> Y <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD> * <20><><EFBFBD><20><><EFBFBD><EFBFBD><E7A5AD> X <20> Y <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD>
@@ -67,7 +67,7 @@
<20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> (<28><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>) <20><><EFBFBD><EFBFBD><E2A0A5><EFBFBD> <20><EFBFBD>, <20> <20><20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> (<28><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>) <20><><EFBFBD><EFBFBD><E2A0A5><EFBFBD> <20><EFBFBD>, <20> <20><20> <20><><EFBFBD>
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 ࠧ<><E0A0A7><EFBFBD> (<28><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 ࠧ<><E0A0A7><EFBFBD> (<28><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>)
<20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E0A0A7><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E0A0A7><EFBFBD> <20><><EFBFBD>.
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稬 xpos,ypos,xsize,ysize - <20><><EFBFBD><EFBFBD><E7A5AD>, <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稬 xpos,ypos,xsize,ysize - <20><><EFBFBD><EFBFBD><E7A5AD>, <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20> ebx,ecx. <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E5ADA5> <20> ebx,ecx. <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E5ADA5>
<> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ⠪<><E2A0AA> <20><><EFBFBD><E0A0A7>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (0,0), <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ⠪<><E2A0AA> <20><><EFBFBD><E0A0A7>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (0,0), <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>
@@ -661,7 +661,7 @@
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A8A2><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨 7. * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A8A2><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨 7.
====================================================================== ======================================================================
<20><EFBFBD><E3ADAA><EFBFBD> 18, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪⮢ <20> ᥪ㭤<E1A5AA>. <20><EFBFBD><E3ADAA><EFBFBD> 18, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪⮢ <20> ᥪ㭤<E1A5AA>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>묨 ⠪⠬<E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0A8><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>묨 ⠪⠬<E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0A8><EFBFBD><EFBFBD>
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 hlt). <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 hlt).
@@ -682,7 +682,7 @@
* eax = ⠪⮢<E2A0AA><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2^32 ⠪⮢ = 4<><34><EFBFBD>) * eax = ⠪⮢<E2A0AA><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2^32 ⠪⮢ = 4<><34><EFBFBD>)
====================================================================== ======================================================================
<20><EFBFBD><E3ADAA><EFBFBD> 18, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 6 - <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><><E0A0AC><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD> <20><>᪥. <20><EFBFBD><E3ADAA><EFBFBD> 18, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 6 - <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><><E0A0AC><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD> <20><>᪥.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 18 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 18 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -763,7 +763,7 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><20><EFBFBD><E0A5AD> <20>㭪樨 9 <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><20><EFBFBD><E0A5AD> <20>㭪樨 9 <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><E0A0A7><EFBFBD><EFBFBD>. <20><><E0A0A7><EFBFBD><EFBFBD>.
* <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E5AEA4> <20><><EFBFBD> <20><><EFBFBD><E2A8A2><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E5AEA4> <20><><EFBFBD> <20><><EFBFBD><E2A8A2><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 3. <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 3.
* <20><><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><><E1A2AE><EFBFBD><E7A8A2><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD><> <20><><EFBFBD><EFBFBD>: * <20><><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><><E1A2AE><EFBFBD><E7A8A2><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD><> <20><><EFBFBD><EFBFBD>:
<><E1A2AE><EFBFBD><E7A8A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E1A2AE><EFBFBD><E7A8A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -1026,7 +1026,7 @@ dd 638
* <20><><EFBFBD><EFBFBD><EFBFBD> eax = <20><><EFBFBD><EFBFBD><EFBFBD><><E1ABAE> * <20><><EFBFBD><EFBFBD><EFBFBD> eax = <20><><EFBFBD><EFBFBD><EFBFBD><><E1ABAE>
====================================================================== ======================================================================
<20><EFBFBD><E3ADAA><EFBFBD> 18, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 22 - <20><><EFBFBD><EFBFBD><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>. <20><EFBFBD><E3ADAA><EFBFBD> 18, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 22 - <20><><EFBFBD><EFBFBD><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 18 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 18 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -1063,7 +1063,7 @@ dd 638
* eax = 0 - <20>ᯥ譮 * eax = 0 - <20>ᯥ譮
* eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> * eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 21.
====================================================================== ======================================================================
@@ -1079,7 +1079,7 @@ dd 638
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A4AE><EFBFBD><EFBFBD><E2A2AE><EFBFBD><EFBFBD> <20><EFBFBD><E1ABAE><EFBFBD><EFBFBD> 0x100<=ecx<=0xFFFF. * <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A4AE><EFBFBD><EFBFBD><E2A2AE><EFBFBD><EFBFBD> <20><EFBFBD><E1ABAE><EFBFBD><EFBFBD> 0x100<=ecx<=0xFFFF.
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20>㭪樨 20. * <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20>㭪樨 20.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 26. <20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 26.
====================================================================== ======================================================================
@@ -1109,7 +1109,7 @@ dd 638
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>, <20><>᫥ 祣<> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0A5><EFBFBD> 0x60; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>, <20><>᫥ 祣<> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0A5><EFBFBD> 0x60;
<20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 2 <20>㭪樨 26. <20><><EFBFBD><EFBFBD>㭪樨 2 <20>㭪樨 26.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<><E1A0AC> <20><><20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @panel <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD> <><E1A0AC> <20><><20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @panel <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD>
@@ -1127,24 +1127,13 @@ dd 638
* eax = 0 * eax = 0
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樥<E3ADAA> 24. * <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樥<E3ADAA> 24.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 26. <20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 26.
====================================================================== ======================================================================
== <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Sound Blaster. = == <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Sound Blaster. =
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* eax = 21 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
* ebx = 4 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
* ecx = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = 0 - <20>ᯥ譮
* eax = -1 - <20><EFBFBD><E8A8A1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A4AE><EFBFBD><EFBFBD><E2A2AE><EFBFBD><EFBFBD> <20><EFBFBD><E1ABAE><EFBFBD><EFBFBD> 0x100<=ecx<=0xFFFF.
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20>㭪権 25, 28, 55.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 4 <20>㭪樨 26.
====================================================================== ======================================================================
========= <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 5 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. ======== ========= <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 5 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. ========
@@ -1181,7 +1170,7 @@ dd 638
* <20><><><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD> * <20><><><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD>
<20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>. <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨 7 <20>㭪樨 26. * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨 7 <20>㭪樨 26.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC><><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><E2AAAE> <20><> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC><><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><E2AAAE> <20><>
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 8. <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 8.
====================================================================== ======================================================================
@@ -1204,26 +1193,15 @@ dd 638
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨 8 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨 8
<20>㭪樨 26. <20>㭪樨 26.
* <20><EFBFBD><20><> <20><><EFBFBD>४⭮<E0A5AA><E2ADAE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. * <20><EFBFBD><20><> <20><><EFBFBD>४⭮<E0A5AA><E2ADAE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>᫮ ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>᫮ ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 11 <20>㭪樨 18. <20><><EFBFBD><EFBFBD>㭪樨 11 <20>㭪樨 18.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2AAAE> <20><> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2AAAE> <20><>
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 7. <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 7.
====================================================================== ======================================================================
===== <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 10 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DMA <20><><EFBFBD> <20><>㪠. ==== ===== <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 10 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DMA <20><><EFBFBD> <20><>㪠. ====
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 21 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
* ebx = 10 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
* ecx = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> 0 <20><> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = 0 - <20>ᯥ譮
* eax = -1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DMA <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
<20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 55.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DMA <20><><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 10 <20>㭪樨 26.
====================================================================== ======================================================================
====================== <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 11 ===================== ====================== <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 11 =====================
@@ -1308,13 +1286,13 @@ dd 638
* ebx = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A8AA><EFBFBD><><E0A0A7><EFBFBD>⪨ (<28> <20><>) * ebx = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A8AA><EFBFBD><><E0A0A7><EFBFBD>⪨ (<28> <20><>)
* ecx = <20><><EFBFBD><EFBFBD><EFBFBD><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6><EFBFBD> * ecx = <20><><EFBFBD><EFBFBD><EFBFBD><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD>
<20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1. <20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1.
* <20><20><EFBFBD> ⮫쪮 ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD>, 楫<><EFBFBD><EFBFBD><E0A0A7><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD> * <20><20><EFBFBD> ⮫쪮 ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD>, 楫<><EFBFBD><EFBFBD><E0A0A7><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD>
<20><EFBFBD><E3ADAA><EFBFBD> 14 <20> <20><><EFBFBD>⮬ ⮣<>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><EFBFBD> <20><> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E3ADAA><EFBFBD> 14 <20> <20><><EFBFBD>⮬ ⮣<>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><EFBFBD> <20><> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
====================================================================== ======================================================================
= <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 13, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 3 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6>. = <20><EFBFBD><E3ADAA><EFBFBD> 21, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 13, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 3 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 21 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 21 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -1327,7 +1305,7 @@ dd 638
* eax = 0 - <20>ᯥ譮 * eax = 0 - <20>ᯥ譮
* ebx, ecx ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * ebx, ecx ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD>
<20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1. <20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1.
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E2A0A1><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E2A0A1><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD>
<20>㭪樥<E3ADAA> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1. <20>㭪樥<E3ADAA> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1.
@@ -1346,7 +1324,7 @@ dd 638
* eax = 0 - <20>ᯥ譮 * eax = 0 - <20>ᯥ譮
* ebx, ecx ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * ebx, ecx ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD>
<20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1. <20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1.
====================================================================== ======================================================================
@@ -1366,7 +1344,7 @@ dd 638
* eax = 0 - <20>ᯥ譮 * eax = 0 - <20>ᯥ譮
* ebx, ecx ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * ebx, ecx ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A0A9><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><EFBFBD><EBA7AE><EFBFBD>
<20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1. <20>㭪樨 <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD> 1.
* <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><><E4A8A7><EFBFBD><EFBFBD><><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> * <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><><E4A8A7><EFBFBD><EFBFBD><><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD> (<28><><20><><EFBFBD><EFBFBD><E1A5AB>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD> (<28><><20><><EFBFBD><EFBFBD><E1A5AB>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
@@ -1447,7 +1425,7 @@ dd 638
* eax = 0 - <20>ᯥ譮 * eax = 0 - <20>ᯥ譮
* eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD * eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 21.
* <20> ᥪ㭤<E1A5AA> 75 <20><EFBFBD><E0A5A9><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 60 ᥪ㭤. * <20> ᥪ㭤<E1A5AA> 75 <20><EFBFBD><E0A5A9><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 60 ᥪ㭤.
* <20><EFBFBD><E3ADAA><EFBFBD> <20><EFBFBD><EFBFBD><E0AEAD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E7A0AB><EFBFBD> * <20><EFBFBD><E3ADAA><EFBFBD> <20><EFBFBD><EFBFBD><E0AEAD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E7A0AB><EFBFBD>
@@ -1468,7 +1446,7 @@ dd 638
* <20><><EFBFBD><><E2A0A1><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E0ACA0> <20> <20><><EFBFBD><E0AEA6><EFBFBD><><E2A0AA> <20><>, <20><><EFBFBD> <20> <20><><EFBFBD> * <20><><EFBFBD><><E2A0A1><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E0ACA0> <20> <20><><EFBFBD><E0AEA6><EFBFBD><><E2A0AA> <20><>, <20><><EFBFBD> <20> <20><><EFBFBD>
ATAPI-CD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 43h (READ TOC), <20><><EFBFBD><EFBFBD><><E2A0A1><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 00h). ATAPI-CD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 43h (READ TOC), <20><><EFBFBD><EFBFBD><><E2A0A1><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 00h).
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> MSF. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> MSF.
* <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 21.
* <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> ⮫쪮 <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 祬 100 * <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> ⮫쪮 <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 祬 100
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6><EFBFBD>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6><EFBFBD>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮.
@@ -1483,7 +1461,7 @@ dd 638
* eax = 0 - <20>ᯥ譮 * eax = 0 - <20>ᯥ譮
* eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD * eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><EBA7AE><EFBFBD> * <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CD <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 3 <20>㭪樨 21.
====================================================================== ======================================================================
@@ -1521,22 +1499,7 @@ dd 638
====================================================================== ======================================================================
============== <20><EFBFBD><E3ADAA><EFBFBD> 25 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD> SBPro. ============== ============== <20><EFBFBD><E3ADAA><EFBFBD> 25 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD> SBPro. ==============
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* eax = 25 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
* ebx = <20><><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* 1 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD>
* 2 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD> CD-audio
* cl = <20><EFBFBD><E0AEA2><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>訥 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD>訥 4 - <20><><EFBFBD> <20><EFBFBD><E0A0A2>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = 0 - <20>ᯥ譮
* eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SB
* eax = 2 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SB <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 4 <20>㭪樨 21.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><EFBFBD><E3ADAA><EFBFBD> 28
<20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> SB16.
====================================================================== ======================================================================
===== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MPU MIDI. ===== ===== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MPU MIDI. =====
@@ -1547,7 +1510,7 @@ dd 638
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> * eax = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> * <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 21.
====================================================================== ======================================================================
@@ -1580,7 +1543,7 @@ dd 638
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>, <20><>᫥ 祣<> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0A5><EFBFBD> 0x60; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>, <20><>᫥ 祣<> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0A5><EFBFBD> 0x60;
<20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD>.
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 2 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 2 <20>㭪樨 21.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<><E1A0AC> <20><><20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @panel <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD> <><E1A0AC> <20><><20><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @panel <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD>
@@ -1603,14 +1566,7 @@ dd 638
====================================================================== ======================================================================
=== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Sound Blaster. == === <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Sound Blaster. ==
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* eax = 26 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
* ebx = 4 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20>㭪権 25, 55.
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨 4 <20>㭪樨 21.
====================================================================== ======================================================================
========== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 5 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. ========= ========== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 5 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. =========
@@ -1679,15 +1635,7 @@ dd 638
====================================================================== ======================================================================
====== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 10 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DMA <20><><EFBFBD> <20><>㪠. ===== ====== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 10 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DMA <20><><EFBFBD> <20><>㪠. =====
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* eax = 26 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
* ebx = 10 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> 0 <20><> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DMA <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>㭪樨 1 <20>㭪樨 55.
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DMA <20><><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 10 <20>㭪樨 21.
====================================================================== ======================================================================
====================== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 11 ===================== ====================== <20><EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 11 =====================
@@ -1700,7 +1648,7 @@ dd 638
* eax = 0/1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD> * eax = 0/1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> LBA-<2D><EFBFBD><E2A5AD> (<28><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 8 <20>㭪樨 58). * <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> LBA-<2D><EFBFBD><E2A5AD> (<28><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 8 <20>㭪樨 58).
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> * <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 11 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 11 <20>㭪樨 21.
====================================================================== ======================================================================
@@ -1715,27 +1663,13 @@ dd 638
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20><><E8A8AD> PCI (<28><EFBFBD><E3ADAA><EFBFBD> 62). * <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20><><E8A8AD> PCI (<28><EFBFBD><E3ADAA><EFBFBD> 62).
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><20><><EFBFBD> ecx. * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><20><><EFBFBD> ecx.
* <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> * <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 12 <20>㭪樨 21. <20><><EFBFBD><EFBFBD>㭪樨 12 <20>㭪樨 21.
====================================================================== ======================================================================
=============== <20><EFBFBD><E3ADAA><EFBFBD> 28 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD> SB16. ============== =============== <20><EFBFBD><E3ADAA><EFBFBD> 28 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD> SB16. ==============
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* eax = 28 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
* ebx = <20><><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* 1 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD>
* 2 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD> CD-audio
* cl = <20><EFBFBD><E0AEA2><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD> (0=off, 0xFF=max)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = 0 - <20>ᯥ譮
* eax = 1 - <20><> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SB
* eax = 2 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SB <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樨 4 <20>㭪樨 21.
* <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><EFBFBD><E0A5A4><EFBFBD><E2A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD>,
<20><EFBFBD><E3ADAA><EFBFBD> 25.
====================================================================== ======================================================================
================ <20><EFBFBD><E3ADAA><EFBFBD> 29 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD>. =============== ================ <20><EFBFBD><E3ADAA><EFBFBD> 29 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD>. ===============
@@ -1919,7 +1853,7 @@ dd 638
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* eax = [<5B><><EFBFBD>]*65536 + [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] * eax = [<5B><><EFBFBD>]*65536 + [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><><E0A0A7>஢ 䮭<><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> - * <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><><E0A0A7>஢ 䮭<><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> -
<20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 1 <20>㭪樨 15. <20><><20><><EFBFBD><EFBFBD>ன, ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD>, ᫥<><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 1 <20>㭪樨 15. <20><><20><><EFBFBD><EFBFBD>ன, ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD>, ᫥<><E1ABA5><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>.
@@ -1938,7 +1872,7 @@ dd 638
* <20><><><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><E0ADAE> * <20><><><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><E0ADAE>
ᬥ饭<E1ACA5><E9A5AD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. ᬥ饭<E1ACA5><E9A5AD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
* <20><><EFBFBD><EFBFBD><E9A5AD> <20><><20> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD> (x,y) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (x+y*xsize)*3. * <20><><EFBFBD><EFBFBD><E9A5AD> <20><><20> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD> (x,y) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (x+y*xsize)*3.
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><20><><><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> - * <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><20><><><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> -
<20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 2 <20>㭪樨 15. <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 2 <20>㭪樨 15.
====================================================================== ======================================================================
@@ -1951,7 +1885,7 @@ dd 638
* eax = 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * eax = 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* eax = 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * eax = 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <><E0A5A6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><> - * <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <><E0A5A6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><> -
<20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 <20>㭪樨 15. <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 <20>㭪樨 15.
====================================================================== ======================================================================
@@ -1992,7 +1926,7 @@ dd 638
------------------------ <20><EFBFBD><E2A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------------- ------------------------ <20><EFBFBD><E2A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -------------------------------
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IRQ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IRQ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD> <20>㭪樥<E3ADAA> 44 <20><><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD> <20>㭪樥<E3ADAA> 44 <20><><EFBFBD><20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A0AC><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A0AC><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 42 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 42 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -2102,7 +2036,7 @@ dd 638
<20><><EFBFBD> <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> IRQ. <20><><EFBFBD> <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><> IRQ.
====================================================================== ======================================================================
= <20><EFBFBD><E3ADAA><EFBFBD> 46 - <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD>/<2F><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>/<2F><EFBFBD><EBA2AE>. = <20><EFBFBD><E3ADAA><EFBFBD> 46 - <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD>/<2F><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>/<2F><EFBFBD><EBA2AE>.
====================================================================== ======================================================================
<EFBFBD> <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> in/out (४<><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A5AC> ᯮᮡ) <20> <20><EFBFBD><EBA7AE><EFBFBD> <20>㭪樨 43 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> in/out (४<><E0A5AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A5AC> ᯮᮡ) <20> <20><EFBFBD><EBA7AE><EFBFBD> <20>㭪樨 43
@@ -2197,7 +2131,7 @@ dd 638
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* <20><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> * <20><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><20><EFBFBD><EBA7AE> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20>㭪樨 ᫥<><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><> * <20><><20><EFBFBD><EBA7AE> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20>㭪樨 ᫥<><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 0. <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 0.
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20>㭪樥<E3ADAA> 8. * <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20>㭪樥<E3ADAA> 8.
@@ -2214,7 +2148,7 @@ dd 638
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>:
* <20><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> * <20><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* <20><><20><EFBFBD><EBA7AE> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20>㭪樨 ᫥<><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><> * <20><><20><EFBFBD><EBA7AE> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20>㭪樨 ᫥<><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 0. <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 0.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮢ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮢ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E2A0A1><EFBFBD><EFBFBD><><EFA2AD> <20><><EFBFBD><E0A0A7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 3) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E2A0A1><EFBFBD><EFBFBD><><EFA2AD> <20><><EFBFBD><E0A0A7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 3) <20>
@@ -2328,7 +2262,7 @@ dword-
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><> <20><><EFBFBD> y. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><> <20><><EFBFBD> y.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><EFBFBD><E3ADAA><EFBFBD> 14, * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><EFBFBD><E3ADAA><EFBFBD> 14,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>.
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - * <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
<20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 5. <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 5.
* <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ뢠<E1AEA2><EBA2A0> <20><>࠭, <20><><> <20><><EFBFBD><EFBFBD> * <20><><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ뢠<E1AEA2><EBA2A0> <20><>࠭, <20><><> <20><><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1A8AC><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1A8AC><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
@@ -2452,7 +2386,7 @@ dword-
* <20><><EFBFBD><EFBFBD><EFBFBD> eax = TID - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> * <20><><EFBFBD><EFBFBD><EFBFBD> eax = TID - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD>
====================================================================== ======================================================================
= <20><EFBFBD><E3ADAA><EFBFBD> 52, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A5A2><EFBFBD> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD>. = <20><EFBFBD><E3ADAA><EFBFBD> 52, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A5A2><EFBFBD> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 52 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 52 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -2477,7 +2411,7 @@ dword-
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 3. * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 3.
====================================================================== ======================================================================
<20><EFBFBD><E3ADAA><EFBFBD> 52, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 2 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A5A2><EFBFBD> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD>. <20><EFBFBD><E3ADAA><EFBFBD> 52, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 2 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A5A2><EFBFBD> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 52 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 52 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -2825,7 +2759,7 @@ dword-
* <20><EFBFBD><20><> <20><EFBFBD><E0A0A2><EFBFBD><ECADAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. * <20><EFBFBD><20><> <20><EFBFBD><E0A0A2><EFBFBD><ECADAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
====================================================================== ======================================================================
<20><EFBFBD><E3ADAA><EFBFBD> 53, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 255 - <20><EFBFBD><E2ABA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20><><EFBFBD><E2A5A2><EFBFBD> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD>. <20><EFBFBD><E3ADAA><EFBFBD> 53, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 255 - <20><EFBFBD><E2ABA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20><><EFBFBD><E2A5A2><EFBFBD> <20><EFBFBD><E0A0A9><EFBFBD><EFBFBD>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 53 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 53 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -3120,8 +3054,8 @@ dword-
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - 512 <20><><EFBFBD><EFBFBD>; <20><><EFBFBD><E2A0A5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - 512 <20><><EFBFBD><EFBFBD>; <20><><EFBFBD><E2A0A5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
* <20><><><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>, * <20><><><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>,
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
* <20><EFBFBD><E0A5A1><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD> <20><><EFBFBD><><E0A0A7><EFBFBD><EFBFBD><EFBFBD> LBA-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> * <20><EFBFBD><E0A5A1><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD> <20><><EFBFBD><><E0A0A7><EFBFBD><EFBFBD><EFBFBD> LBA-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 11 <20>㭪樨 21. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 11 <20>㭪樨 21. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA7AE><EFBFBD>
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 11 <20>㭪樨 26. <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 11 <20>㭪樨 26.
* LBA-<2D><EFBFBD><E2A5AD> <20><><EFBFBD><E1AAA5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. * LBA-<2D><EFBFBD><E2A5AD> <20><><EFBFBD><E1AAA5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
* <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A8A7><EFBFBD><EFBFBD><E1AAAE> <20><><EFBFBD><EFBFBD><E2AAAE> <20><>᪠; * <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A8A7><EFBFBD><EFBFBD><E1AAAE> <20><><EFBFBD><EFBFBD><E2AAAE> <20><>᪠;
@@ -3135,7 +3069,7 @@ dword-
<20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯥ宬 (eax=0). <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯥ宬 (eax=0).
====================================================================== ======================================================================
= <20><EFBFBD><E3ADAA><EFBFBD> 58, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 15 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. = <20><EFBFBD><E3ADAA><EFBFBD> 58, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 15 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20><><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 58 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 58 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
@@ -4016,7 +3950,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
<20><><20><><EFBFBD><EFBFBD><E1A0AD>). <20><><20><><EFBFBD><EFBFBD><E1A0AD>).
====================================================================== ======================================================================
<20><EFBFBD><E3ADAA><EFBFBD> 69, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 7 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E3ADAA><EFBFBD> 69, <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 7 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
====================================================================== ======================================================================
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
* eax = 69 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 * eax = 69 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨

View File

@@ -1128,18 +1128,7 @@ Remarks:
====================================================================== ======================================================================
====== Function 21, subfunction 4 - set Sound Blaster base port. ===== ====== Function 21, subfunction 4 - set Sound Blaster base port. =====
====================================================================== ======================================================================
Parameters: Removed
* eax = 21 - function number
* ebx = 4 - subfunction number
* ecx = number of the base port
Returned value:
* eax = 0 - success
* eax = -1 - erratic port number
Remarks:
* Number of the port must satisfy to conditions 0x100<=ecx<=0xFFFF.
* The installation of the base is necessary for
functions 25, 28, 55.
* To get base port use subfunction 4 of function 26.
====================================================================== ======================================================================
========== Function 21, subfunction 5 - set system language. ========= ========== Function 21, subfunction 5 - set system language. =========
@@ -1204,16 +1193,7 @@ Remarks:
====================================================================== ======================================================================
======== Function 21, subfunction 10 - set sound DMA channel. ======== ======== Function 21, subfunction 10 - set sound DMA channel. ========
====================================================================== ======================================================================
Parameters: Removed
* eax = 21 - function number
* ebx = 10 - subfunction number
* ecx = number of channel (from 0 up to 3 inclusively)
Returned value:
* eax = 0 - success
* eax = -1 - incorrect channel number
Remarks:
* Number of DMA channel is used in subfunction 1 of function 55.
* To get sound DMA channel use subfunction 10 of function 26.
====================================================================== ======================================================================
Function 21, subfunction 11 - enable/disable low-level access to HD. Function 21, subfunction 11 - enable/disable low-level access to HD.
@@ -1505,22 +1485,7 @@ Remarks:
====================================================================== ======================================================================
=================== Function 25 - set SBPro volume. ================== =================== Function 25 - set SBPro volume. ==================
====================================================================== ======================================================================
Parameters: Removed
* eax = 25 - function number
* ebx = what to set:
* 1 - set common volume
* 2 - set CD-audio volume
* cl = volume level: high 4 bits for the left column,
low 4 bits for the right one
Returned value:
* eax = 0 - success
* eax = 1 - SB base is not defined
* eax = 2 - incorrect subfunction
Remarks:
* Previously SB base port must be defined by
subfunction 4 of function 21.
* See also function 28 which sets
volume for the later standard SB16.
====================================================================== ======================================================================
======== Function 26, subfunction 1 - get MPU MIDI base port. ======== ======== Function 26, subfunction 1 - get MPU MIDI base port. ========
@@ -1584,14 +1549,7 @@ Remarks:
====================================================================== ======================================================================
====== Function 26, subfunction 4 - get Sound Blaster base port. ===== ====== Function 26, subfunction 4 - get Sound Blaster base port. =====
====================================================================== ======================================================================
Parameters: Removed
* eax = 26 - function number
* ebx = 4 - subfunction number
Returned value:
* eax = base port number
Remarks:
* Bae port is used by functions 25, 55.
* To set base port use subfunction 4 of function 21.
====================================================================== ======================================================================
========== Function 26, subfunction 5 - get system language. ========= ========== Function 26, subfunction 5 - get system language. =========
@@ -1658,14 +1616,7 @@ Remarks:
====================================================================== ======================================================================
======== Function 26, subfunction 10 - get sound DMA channel. ======== ======== Function 26, subfunction 10 - get sound DMA channel. ========
====================================================================== ======================================================================
Parameters: Removed
* eax = 26 - function number
* ebx = 10 - subfunction number
Returned value:
* eax = number of the channel (from 0 to 3 inclusive)
Remarks:
* Number of the DMA channel is used by subfunction 1 of function 55.
* To set the sound DMA channel use subfunction 10 of function 21.
====================================================================== ======================================================================
===================== Function 26, subfunction 11 ==================== ===================== Function 26, subfunction 11 ====================
@@ -1697,20 +1648,7 @@ Remarks:
====================================================================== ======================================================================
=================== Function 28 - set SB16 volume. =================== =================== Function 28 - set SB16 volume. ===================
====================================================================== ======================================================================
Parameters: Removed
* eax = 28 - function number
* ebx = what to install:
* 1 - install common volume
* 2 - install CD-audio volume
* cl = volume level (0=off, 0xFF=max)
Returned value:
* eax = 0 - success
* eax = 1 - SB base is not defined
* eax = 2 - incorrect subfunction
Remarks:
* Previously SB base port must be defined by
subfunction 4 of function 21.
* This function gives more variants for volume, that function 25.
====================================================================== ======================================================================
=================== Function 29 - get system date. =================== =================== Function 29 - get system date. ===================

View File

@@ -7,6 +7,8 @@
format MS COFF format MS COFF
DEBUG equ 1
include 'proc32.inc' include 'proc32.inc'
include 'imports.inc' include 'imports.inc'
@@ -14,8 +16,6 @@ R500_HW2D equ 0
API_VERSION equ 0x01000100 API_VERSION equ 0x01000100
DEBUG equ 1
STRIDE equ 8 STRIDE equ 8
VID_ATI equ 0x1002 VID_ATI equ 0x1002

View File

@@ -11,14 +11,12 @@
format MS COFF format MS COFF
API_VERSION equ 5 ;debug DEBUG equ 0
include 'proc32.inc' include 'proc32.inc'
include 'imports.inc' include 'imports.inc'
OS_BASE equ 0x80000000; API_VERSION equ 5 ;debug
new_app_base equ 0x0
PROC_BASE equ OS_BASE+0x0080000
struc IOCTL struc IOCTL
{ .handle dd ? { .handle dd ?
@@ -36,7 +34,6 @@ end virtual
public START public START
public version public version
DEBUG equ 0
DRV_ENTRY equ 1 DRV_ENTRY equ 1
DRV_EXIT equ -1 DRV_EXIT equ -1

View File

@@ -9,12 +9,12 @@
format MS COFF format MS COFF
DEBUG equ 1
include 'proc32.inc' include 'proc32.inc'
include 'imports.inc' include 'imports.inc'
DEBUG equ 1
REMAP_IRQ equ 0 REMAP_IRQ equ 0
;irq 0,1,2,8,12,13 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;irq 0,1,2,8,12,13 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -6,8 +6,10 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
macro kernel_export [name]{ macro kernel_export [name]{
forward forward
;display `name,#13,#10
if used name if used name
if DEBUG
display 'uses: ',`name,#13,#10
end if
extrn name extrn name
end if end if
} }
@@ -19,6 +21,7 @@ kernel_export \
GetService,\ GetService,\
ServiceHandler,\ ServiceHandler,\
AttachIntHandler,\ AttachIntHandler,\
GetIntHandler,\
FpuSave,\ FpuSave,\
FpuRestore,\ FpuRestore,\
ReservePortArea,\ ReservePortArea,\

View File

@@ -10,6 +10,13 @@
format MS COFF format MS COFF
DEBUG equ 1
include 'proc32.inc'
include 'main.inc'
include 'imports.inc'
CURRENT_API equ 0x0101 ;1.01 CURRENT_API equ 0x0101 ;1.01
COMPATIBLE_API equ 0x0100 ;1.00 COMPATIBLE_API equ 0x0100 ;1.00
@@ -18,13 +25,6 @@ API_VERSION equ (COMPATIBLE_API shl 16) or CURRENT_API
SOUND_VERSION equ CURRENT_API SOUND_VERSION equ CURRENT_API
include 'proc32.inc'
;include 'system.inc'
include 'main.inc'
include 'imports.inc'
FORCE_MMX equ 0 ;set to 1 to force use mmx or FORCE_MMX equ 0 ;set to 1 to force use mmx or
FORCE_MMX_128 equ 0 ;integer sse2 extensions FORCE_MMX_128 equ 0 ;integer sse2 extensions
;and reduce driver size ;and reduce driver size
@@ -33,9 +33,6 @@ FORCE_MMX_128 equ 0 ;integer sse2 extensions
USE_SSE2_MIXER equ 0 ;floating point mixer. Disabled by default USE_SSE2_MIXER equ 0 ;floating point mixer. Disabled by default
DEBUG equ 1
OS_BASE equ 0x80000000 OS_BASE equ 0x80000000
CAPS_SSE2 equ 26 CAPS_SSE2 equ 26
@@ -1209,7 +1206,7 @@ resampler_params:
;r_size r_dt resampler_func ;r_size r_dt resampler_func
dd 0,0,0 ; 0 PCM_ALL dd 0,0,0 ; 0 PCM_ALL
dd 16384, 0, copy_stream ; 1 PCM_2_16_48 dd 16384, 0, copy_stream ; 1 PCM_2_16_48
dd 16384, 0, m16_stereo ; 2 PCM_1_16_48 dd 8192, 0, m16_stereo ; 2 PCM_1_16_48
dd 16384, 30109, resample_2 ; 3 PCM_2_16_44 dd 16384, 30109, resample_2 ; 3 PCM_2_16_44
dd 8192, 30109, resample_1 ; 4 PCM_1_16_44 dd 8192, 30109, resample_1 ; 4 PCM_1_16_44

View File

@@ -71,7 +71,7 @@ macro epiloguedef procname,flag,parmbytes,localbytes,reglist
if parmbytes | localbytes if parmbytes | localbytes
leave leave
end if end if
if (flag and 10000b) | (parmbytes=0) if flag and 10000b
retn retn
else else
retn parmbytes retn parmbytes

View File

@@ -1,5 +1,7 @@
format MS COFF format MS COFF
DEBUG equ 0
include 'proc32.inc' include 'proc32.inc'
include 'imports.inc' include 'imports.inc'
@@ -47,12 +49,12 @@ proc START stdcall, state:dword
test eax,eax test eax,eax
jnz .stop_try jnz .stop_try
mov [MouseType],MT_3BScroll mov [MouseType],MT_3BScroll
call try_mode_ID4 call try_mode_ID4
test eax,eax test eax,eax
jnz .stop_try jnz .stop_try
mov [MouseType],MT_5BScroll mov [MouseType],MT_5BScroll
.stop_try: .stop_try:
mov bl, 0x20 ; read command byte mov bl, 0x20 ; read command byte
@@ -81,7 +83,7 @@ proc START stdcall, state:dword
mov bl, 0xAE ; enable keyboard interface mov bl, 0xAE ; enable keyboard interface
call kbd_cmd call kbd_cmd
stdcall AttachIntHandler, 12, irq_handler, dword 0 stdcall AttachIntHandler, 12, irq_handler, dword 0
stdcall RegService, my_service, service_proc stdcall RegService, my_service, service_proc
ret ret

View File

@@ -0,0 +1,41 @@
;flags------------------------------------------------------------
DEBUG equ 1 ;show messages at debug board
use_cli_sti equ 1 ;driver come more stable (theoretically)
;constants--------------------------------------------------------
API_VERSION equ 0 ;debug
OS_BASE equ 0x80000000
new_app_base equ 0x0
PROC_BASE equ (OS_BASE+0x080000)
SB16Buffer equ (OS_BASE+0x2A0000)
SB16_Status equ (OS_BASE+0x2B0000)
DMAPage equ ((SB16Buffer-OS_BASE) shr 16)
SB16Buffer0 equ SB16Buffer
SB16Buffer1 equ (SB16Buffer+16384)
SB16Buffer2 equ (SB16Buffer+(2*16384))
SB16Buffer3 equ (SB16Buffer+(3*16384))
sb_irq_num equ 5
sb_dma_num equ 5
sb_buffer_size equ 32768 ;really it needs code modifications to change
;buffer size
sb_out_rate equ 44100
;time constant for cards older than SB16
sb_tc equ (256-(1000000/(sb_out_rate*2)))
SRV_GETVERSION equ 0
DEV_PLAY equ 1
DEV_STOP equ 2
DEV_CALLBACK equ 3
DEV_SET_BUFF equ 4
DEV_NOTIFY equ 5
DEV_SET_MASTERVOL equ 6
DEV_GET_MASTERVOL equ 7
DEV_GET_INFO equ 8
DRV_ENTRY equ 1
DRV_EXIT equ -1

View File

@@ -0,0 +1,239 @@
;--------------------------------
; program dma
;--------------------------------
sb_set_dma:
mov ebx,[sound_dma]
lea eax,[ebx+4] ;mask required channel
cmp bl,4
ja .use_second_dma_controller
jb @f
.dma_setup_error:
if DEBUG
mov esi,msgErrDMAsetup
call SysMsgBoardStr
end if
mov dword[esp],START.stop
ret
@@:
if use_cli_sti
cli ;here to minimize time with disabled ints
end if
out 0xA,al ;mask required channel
xor eax,eax
out 0xC,al ;clear byte pointer flip-flop register
lea eax,[ebx+0x58] ;auto-init mode for channel (ebx)
out 0xB,al ;DMA channel 0-3 mode register
movzx edx,byte[ebx+dma_table] ;page register
mov al,DMAPage
out dx,al
lea edx,[ebx*2] ;DMA channel 0-3 base address
mov al,0 ;LSB is 0
out dx,al
; mov al,0 ;MSB is 0 too
out dx,al
inc edx ;DMA channel 0-3 byte count
mov al,((sb_buffer_size-1) and 0xff)
out dx,al
mov al,((sb_buffer_size-1) shr 8) ;it is the same
out dx,al
mov eax,ebx ;unmask DMA channel
out 0xA,al
if use_cli_sti
sti
end if
ret
.use_second_dma_controller:
cmp bl,7
ja .dma_setup_error
sub bl,4
sub al,4
if use_cli_sti
cli ;here to minimize time with disabled ints
end if
out 0xD4,al ;mask required channel
xor eax,eax
out 0xD8,al ;clear byte pointer flip-flop register
lea eax,[ebx+0x58] ;auto-init mode for channel (ebx+4)
out 0xD6,al ;DMA channel 4-7 mode register
movzx edx,byte[ebx+dma_table+4] ;page register
mov al,DMAPage
out dx,al
lea edx,[ebx*4+0xC0] ;DMA channel 4-7 base address
mov al,0 ;LSB is 0 ;for 16bit DMA this contains
out dx,al ;A1-A8 lines of address bus, A0 is zero
; mov al,0 ;MSB is 0 too ;for 16bit DMA this contains
out dx,al ;A9-A16 lines of address bus
inc edx
inc edx ;DMA channel 4-7 16bit word count
mov al,(((sb_buffer_size/2)-1) and 0xff)
out dx,al
mov al,(((sb_buffer_size/2)-1) shr 8)
out dx,al
mov eax,ebx ;unmask DMA channel
out 0xD4,al
if use_cli_sti
sti
end if
ret
;-------------------------------------------------------------------------------
; out byte to SB DSP's write port
;-------------------------------------------------------------------------------
macro sb_out data_to_out {
@@:
in al,dx
test al,al ;is DSP busy?
js @b ;it's busy
mov al,data_to_out ;it's free
out dx,al
}
;-------------------------------------------------------------------------------
; stop playing
;-------------------------------------------------------------------------------
proc sb_stop
mov edx,[sb_base_port]
add dl,0xC
sb_out 0xD3 ;turn the speaker off
sb_out 0xDA ;exit 8bit DMA
sb_out 0xD9 ;exit 16bit DMA
ret
endp
;-------------------------------------------------------------------------------
; start playing
;-------------------------------------------------------------------------------
proc sb_play
and [int_flip_flop],0
mov edx,[sb_base_port]
add dl,0xC
sb_out 0xD1 ;turn speaker on
; sb_out 0x48 ;set DSP transfer size ;for older cards
; mov ax,32767 ;(64k)/2-1
;@@: ;out the low byte...
; in al,dx
; test al,al ;is DSP busy?
; js @b ;it's busy
; out dx,al
; mov al,ah ;...then the high byte
;@@:
; in al,dx
; test al,al ;is DSP busy?
; js @b ;it's busy
; out dx,al
; sb_out 0x1C ;auto-init 8bit playback
; 0xBXh - 16 bit DMA mode
; ||||
sb_out 10110110b ;bCommand
; ||||
; |||+-reserved
; ||+--turn FIFO on (0 for off)
; |+---auto-init mode on (0 for off)
; +----A/D: 0-output, 1-input
; +------stereo on
; |+-----unsigned (1 for signed)
; ||
sb_out 00110000b ;bMode
; || ||||
; ---------reserved
;wSize is a number of 16bit samples less 1. For auto-init mode each half
;buffer is (64k)/2 bytes long and, obviously, contains ((64k)/2)/2 bytes
sb_out (((sb_buffer_size/2/2)-1) and 0xFF) ;wSize.LowByte
sb_out (((sb_buffer_size/2/2)-1) shr 8) ;wSize.HighByte
ret
endp
;-------------------------------------------------------------------------------
; reset DSP
;-------------------------------------------------------------------------------
proc sb_reset
and [int_flip_flop],0
mov edx,[sb_base_port]
add dl,6
mov al,1 ;start DSP reset
if use_cli_sti
cli ;here to minimize time with disabled ints
end if
out dx,al
mov ecx,40 ;wait at least 3 microsec.
@@:
in al,dx
loop @b
xor eax,eax ;stop DSP reset
if use_cli_sti
sti
end if
out dx,al
ret
endp
;-------------------------------------------------------------------------------
; set the rate for playing, enable stereo
;-------------------------------------------------------------------------------
proc sb_setup
mov edx,[sb_base_port]
add dl,0xC
sb_out 40h ;set time constant, this is for old cards
sb_out sb_tc
sb_out 41h ;set sound rate, this can only SB16
sb_out (sb_out_rate shr 8) ;first high byte (MSB)
sb_out (sb_out_rate and 0xff) ;then low byte (LSB)
; mov al,0xE
; sub dl,(0xC-4) ;talk to SB's mixer
; out dx,al ;select this register of the mixer
; mov ecx,6 ;wait for the chip
;@@:
; in al,dx
; loop @b
; inc edx ;now read the data port
; in al,dx
; or al,22h ;turn on stereo
; mov ah,al
; mov al,0xE
; dec edx ;talk to SB's mixer
; out dx,al ;select this register of the mixer
; mov ecx,6 ;wait for the chip
;@@:
; in al,dx
; loop @b
; inc edx ;now send data to the data port
; mov al,ah
; out dx,al
; dec edx
; mov ecx,35 ;wait for the chip
;@@:
; in al,dx
; loop @b
ret
endp

View File

@@ -0,0 +1,375 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
format MS COFF
include 'config.inc'
;structs----------------------------------------------------------
struc IOCTL
{ .handle dd ?
.io_code dd ?
.input dd ?
.inp_size dd ?
.output dd ?
.out_size dd ?
}
virtual at 0
IOCTL IOCTL
end virtual
;something--------------------------------------------------------
public START
public service_proc
public version
include '..\proc32.inc'
include '..\imports.inc'
section '.flat' code readable align 16
include 'sb16.inc'
;-------------------------------------------------------------------------------
proc START stdcall, state:dword
cmp [state], 1
jne .stop
.entry:
if DEBUG
mov esi, msgInit
call SysMsgBoardStr
end if
call detect ;returns DSP version or zero if
test eax,eax ;SB card not found
jz .exit
if DEBUG
movzx eax,al ;major version
dec eax
jz .sb_say_about_found_dsp
mov dword[sb_DSP_description],'2.x '
dec eax
jz .sb_say_about_found_dsp
mov dword[sb_DSP_description],'Pro '
dec eax
jz .sb_say_about_found_dsp
mov dword[sb_DSP_description],'16 '
.sb_say_about_found_dsp:
mov esi,msgDSPFound
call SysMsgBoardStr
end if
xor eax,eax
mov ebx,[sb_base_port]
lea ecx,[ebx+0xF]
call ReservePortArea ;these ports must be mine!
if DEBUG
dec eax
jnz @f
mov esi,msgErrRsrvPorts
call SysMsgBoardStr
@@:
end if
call sb_setup ;clock it, etc
stdcall AttachIntHandler, sb_irq_num, sb_irq, 0
if DEBUG
test eax,eax
jnz @f
mov esi,msgErrAtchIRQ
call SysMsgBoardStr
stdcall GetIntHandler, sb_irq_num
call SysMsgBoardNum
jmp .stop
@@:
mov esi,msgSucAtchIRQ
call SysMsgBoardStr
end if
stdcall RegService, my_service, service_proc
ret
.stop:
call sb_reset
.exit:
if DEBUG
mov esi,msgExit
call SysMsgBoardStr
end if
xor eax, eax
ret
endp
;-------------------------------------------------------------------------------
handle equ IOCTL.handle
io_code equ IOCTL.io_code
input equ IOCTL.input
inp_size equ IOCTL.inp_size
output equ IOCTL.output
out_size equ IOCTL.out_size
align 4
proc service_proc stdcall, ioctl:dword
mov edi,[ioctl]
mov eax,[edi+io_code]
cmp eax,SRV_GETVERSION
jne @F
mov eax,[edi+output]
cmp [edi+out_size],4
jne .fail
mov [eax],dword API_VERSION
xor eax,eax
ret
@@:
cmp eax,DEV_PLAY
jne @f
if DEBUG
mov esi,msgPlay
call SysMsgBoardStr
end if
call sb_stop ;to play smth new we must stop smth old
call pre_fill_data ;fill first and second half of the buffer
call pre_fill_data ;
call sb_set_dma ;is it really needed here? Paranoia.
call sb_play
xor eax,eax
ret
;@@: ;all this commented stuff in service proc
; cmp eax,DEV_STOP ;is never used. Mixer do this virtually,
; jne @f ;e.g. instead of stopping driver it
;if DEBUG ;outputs silence
; mov esi,msgStop
; call SysMsgBoardStr
;end if
; call sb_stop
; xor eax,eax
; ret
@@:
cmp eax,DEV_CALLBACK
jne @f
if DEBUG
mov esi,msgCallback
call SysMsgBoardStr
end if
mov edi,[edi+input]
mov eax,[edi]
mov [callback],eax
if DEBUG
call SysMsgBoardNum
end if
ret
@@:
; cmp eax,DEV_SET_MASTERVOL
; jne @F
;if DEBUG
; mov esi,msgSetVol
; call SysMsgBoardStr
;end if
; mov eax,[edi+input]
; mov eax,[eax]
; mov [sb_master_vol],eax
; ret
;@@:
; cmp eax,DEV_GET_MASTERVOL
; jne @F
;if DEBUG
; mov esi,msgGetVol
; call SysMsgBoardStr
;end if
; mov eax,[edi+output]
; mov edx,[sb_master_vol]
; mov [eax],edx
; ret
.fail:
or eax, -1
ret
endp
restore handle
restore io_code
restore input
restore inp_size
restore output
restore out_size
;-------------------------------------------------------------------------------
align 4
proc sb_irq
mov edx,[sb_base_port] ;tell the DSP that we have processed IRQ
add dl,0xF ;0xF for 16 bit sound, 0xE for 8 bit sound
in al,dx ;for non-stop sound
pre_fill_data:
mov eax,int_flip_flop
not dword[eax]
mov eax,[eax]
test eax,eax
jns .fill_second_half
stdcall [callback],SB16Buffer0 ;for 32k buffer
; stdcall [callback],SB16Buffer0 ;for 64k buffer
; stdcall [callback],SB16Buffer1 ;for 64k buffer
xor eax,eax
ret
.fill_second_half:
stdcall [callback],SB16Buffer1 ;for 32k buffer
; stdcall [callback],SB16Buffer2 ;for 64k buffer
; stdcall [callback],SB16Buffer3 ;for 64k buffer
xor eax,eax
ret
endp
;-------------------------------------------------------------------------------
align 4
proc detect
.sb_detect_next_port:
if DEBUG
inc dword[port_second_digit_num]
end if
mov edx,sb_base_port
add byte[edx],10h
cmp byte[edx],80h
jbe .sb_try_to_detect_at_specified_port
;error - no SB card detected
.sb_not_found_err:
xor eax, eax
ret
.sb_try_to_detect_at_specified_port:
call sb_reset
add dl,8
mov ecx,100
.sb_check_port:
in al,dx
test al,al ;is DSP port ready to be read?
jns .sb_port_not_ready
sub dl,4
in al,dx ;check for AAh response
add dl,4
cmp al,0xAA
jne .sb_port_not_ready
.sb_card_found:
and dl,0xF0
add dl,0xC
sb_out 0xE1 ;get DSP version
add dl,2
@@:
in al,dx
test al,al ;is DSP port ready to be read?
jns @b
sub dl,4
in al,dx ;get major version
ror eax,16
add dl,4
@@:
in al,dx
test al,al ;is DSP port ready to be read?
jns @b
sub dl,4
in al,dx ;get minor version
xor edx,edx
mov dl,10
div dl
ror eax,16
xor ah,ah
if DEBUG
add [sb_DSP_version],eax
end if
ret
.sb_port_not_ready:
loop .sb_check_port ;100 retries (~100 microsec.)
jmp .sb_detect_next_port
endp
;-------------------------------------------------------------------------------
if DEBUG
proc SysMsgBoardNum
mov ebx,eax
mov ecx,8
mov esi,(number_to_out+1)
.1:
mov eax,ebx
and eax,0xF
add al,'0'
cmp al,(10+'0')
jb @f
add al,('A'-'0'-10)
@@:
mov [esi+ecx],al
shr ebx,4
loop .1
dec esi
call SysMsgBoardStr
ret
endp
end if
;all initialized data place here
align 4
version dd (5 shl 16) or (API_VERSION and 0xFFFF)
sb_base_port: dd 200h
;pTempBuf dd 0
callback dd 0
int_flip_flop dd 0
sound_dma dd sb_dma_num
;note that 4th DMA channel doesn't exist, it is used for cascade
;plugging the first DMA controler to the second
dma_table db 0x87,0x83,0x81,0x82,0xFF,0x8B,0x89,0x8A
;sb_master_vol dd 0
my_service db 'SOUND',0 ;max 16 chars include zero
if DEBUG
number_to_out db '0x00000000',13,10,0
msgInit db 'detecting hardware...',13,10,0
msgExit db 'exiting... May be some problems found?',13,10,0
msgPlay db 'start play',13,10,0
;msgStop db 'stop play',13,10,0
msgCallback db 'set_callback received from the mixer!',13,10
db 'callback handler is: ',0
msgErrAtchIRQ db 'failed to attach IRQ',(sb_irq_num+'0'),13,10
db 'owner',39,'s handler: ',0
msgSucAtchIRQ db 'succesfully attached IRQ',(sb_irq_num+'0')
db ' as hardcoded',13,10,0
msgErrRsrvPorts db 'failed to reserve needed ports.',13,10
db 'Driver may work unstable',13,10,0
;msgSetVol db 'DEV_SET_MASTERVOL call came',13,10,0
;msgGetVol db 'DEV_GET_MASTERVOL call came',13,10,0
msgErrDMAsetup db 'failed to setup DMA - bad channel',13,10,0
;-------------------------------------------------------------------------------
msgDSPFound db 'DSP found at port 2'
label port_second_digit_num dword at $
db '00h',13,10,'DSP version '
sb_DSP_version: db '0.00 - SB'
sb_DSP_description: db 32,32,32,32,13,10,0
;-------------------------------------------------------------------------------
end if
;section '.data' data readable writable align 16
;all uninitialized data place here

View File

@@ -9,6 +9,8 @@
format MS COFF format MS COFF
DEBUG equ 1
API_VERSION equ 0 ;debug API_VERSION equ 0 ;debug
include 'proc32.inc' include 'proc32.inc'
@@ -35,8 +37,6 @@ public START
public service_proc public service_proc
public version public version
DEBUG equ 1
DRV_ENTRY equ 1 DRV_ENTRY equ 1
DRV_EXIT equ -1 DRV_EXIT equ -1
STRIDE equ 4 ;size of row in devices table STRIDE equ 4 ;size of row in devices table

View File

@@ -7,12 +7,13 @@
format MS COFF format MS COFF
DEBUG equ 1
include 'proc32.inc' include 'proc32.inc'
include 'imports.inc' include 'imports.inc'
API_VERSION equ 0x01000100 API_VERSION equ 0x01000100
DEBUG equ 1
DEBUG_IRQ equ 0 DEBUG_IRQ equ 0
USE_COM_IRQ equ 0 ;make irq 3 and irq 4 available for PCI devices USE_COM_IRQ equ 0 ;make irq 3 and irq 4 available for PCI devices

View File

@@ -7,13 +7,13 @@
format MS COFF format MS COFF
DEBUG equ 1
include 'proc32.inc' include 'proc32.inc'
include 'imports.inc' include 'imports.inc'
API_VERSION equ 0x01000100 API_VERSION equ 0x01000100
DEBUG equ 1
DEBUG_IRQ equ 0 DEBUG_IRQ equ 0
USE_COM_IRQ equ 0 ;make irq 3 and irq 4 available for PCI devices USE_COM_IRQ equ 0 ;make irq 3 and irq 4 available for PCI devices

View File

@@ -114,29 +114,25 @@ save_draw_mouse:
movzx edx, byte [display_data+ebx+eax] movzx edx, byte [display_data+ebx+eax]
shl edx, 8 shl edx, 8
mov ecx, [edx+SLOT_BASE+APPDATA.cursor] mov esi, [edx+SLOT_BASE+APPDATA.cursor]
cmp ecx, [current_cursor] cmp esi, [current_cursor]
je .draw je .draw
cmp [ecx+CURSOR.magic], 'CURS' ; cmp [esi+CURSOR.magic], 'CURS'
jne .fail ; jne .fail
push ecx push esi
call [select_hw_cursor] call [select_hw_cursor]
mov [current_cursor], ecx mov [current_cursor], esi
; cmp [ecx+CURSOR.size], CURSOR_SIZE
; jne .fail
.draw: .draw:
stdcall [set_hw_cursor], ecx stdcall [set_hw_cursor], esi
popad popad
ret ret
.fail: .fail:
mov ecx, [def_cursor] mov ecx, [def_cursor]
mov [edx+SLOT_BASE+APPDATA.cursor], ecx mov [edx+SLOT_BASE+APPDATA.cursor], ecx
stdcall [set_hw_cursor], ecx stdcall [set_hw_cursor], ecx ; stdcall: [esp]=ebx,eax
popad popad
ret ret

View File

@@ -345,8 +345,6 @@ high_code:
mov al,[BOOT_VAR+0x9000] ; bpp mov al,[BOOT_VAR+0x9000] ; bpp
mov [ScreenBPP],al mov [ScreenBPP],al
xchg bx, bx
movzx eax,word [BOOT_VAR+0x900A] ; X max movzx eax,word [BOOT_VAR+0x900A] ; X max
dec eax dec eax
mov [Screen_Max_X],eax mov [Screen_Max_X],eax
@@ -712,7 +710,7 @@ no_lib_load:
mov [TASK_DATA+TASKDATA.mem_start], 0 ; process base address mov [TASK_DATA+TASKDATA.mem_start], 0 ; process base address
call init_cursors call init_cursors
mov eax, [def_cursor] mov eax, [def_cursor]
mov [SLOT_BASE+APPDATA.cursor],eax mov [SLOT_BASE+APPDATA.cursor],eax
mov [SLOT_BASE+APPDATA.cursor+256],eax mov [SLOT_BASE+APPDATA.cursor+256],eax
@@ -1032,7 +1030,6 @@ reserve_irqs_ports:
mov [irq_owner+4*0], 1 ; timer mov [irq_owner+4*0], 1 ; timer
;mov [irq_owner+4*1], 1 ; keyboard ;mov [irq_owner+4*1], 1 ; keyboard
mov [irq_owner+4*5], 1 ; sound blaster
mov [irq_owner+4*6], 1 ; floppy diskette mov [irq_owner+4*6], 1 ; floppy diskette
mov [irq_owner+4*13], 1 ; math co-pros mov [irq_owner+4*13], 1 ; math co-pros
mov [irq_owner+4*14], 1 ; ide I mov [irq_owner+4*14], 1 ; ide I
@@ -1104,8 +1101,7 @@ set_variables:
mov [MOUSE_X],eax mov [MOUSE_X],eax
pop eax pop eax
mov byte [SB16_Status],0 ; Minazzi Paolo mov [BTN_ADDR],dword BUTTON_INFO ; address of button list
mov [BTN_ADDR],dword BUTTON_INFO ; address of button list
;!! IP 04.02.2005: ;!! IP 04.02.2005:
mov [next_usage_update], 100 mov [next_usage_update], 100
@@ -1183,106 +1179,6 @@ sys_outport:
mov [esp+24],eax mov [esp+24],eax
ret ret
align 4
sys_sb16:
cmp word [sb16],word 0
jnz sb16l1
mov [esp+36],dword 1
ret
sb16l1:
mov [esp+36],dword 0
cmp eax,1 ; set volume - main
jnz sb16l2
mov dx,word [sb16]
add dx,4
mov al,0x22
out dx,al
mov esi,1
call delay_ms
mov eax,ebx
inc edx
out dx,al
ret
sb16l2:
cmp eax,2 ; set volume - cd
jnz sb16l3
mov dx,word [sb16]
add dx,4
mov al,0x28
out dx,al
mov esi,1
call delay_ms
mov eax,ebx
add edx,1
out dx,al
ret
sb16l3:
mov [esp+36],dword 2
ret
align 4
sys_sb16II:
cmp word [sb16],word 0
jnz IIsb16l1
mov [esp+36],dword 1
ret
IIsb16l1:
cmp eax,1 ; set volume - main
jnz IIsb16l2
; L
mov dx,word [sb16]
add dx,4
mov al,0x30
out dx,al
mov eax,ebx
inc edx
out dx,al
; R
mov dx,word [sb16]
add dx,4
mov al,0x31
out dx,al
mov eax,ebx
inc edx
out dx,al
mov [esp+36],dword 0
ret
IIsb16l2:
cmp eax,2 ; set volume - cd
jnz IIsb16l3
; L
mov dx,word [sb16]
add dx,4
mov al,0x36
out dx,al
mov eax,ebx
inc edx
out dx,al
; R
mov dx,word [sb16]
add dx,4
mov al,0x37
out dx,al
mov eax,ebx
inc edx
out dx,al
mov [esp+36],dword 0
ret
IIsb16l3:
mov [esp+36],dword 2
ret
display_number: display_number:
; eax = print type, al=0 -> ebx is number ; eax = print type, al=0 -> ebx is number
@@ -1472,7 +1368,6 @@ sys_setup:
; 1=roland mpu midi base , base io address ; 1=roland mpu midi base , base io address
; 2=keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus ; 2=keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus
; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave ; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 4=sb16 base , base io address
; 5=system language, 1eng 2fi 3ger 4rus ; 5=system language, 1eng 2fi 3ger 4rus
; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave ; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 8=fat32 partition in hd ; 8=fat32 partition in hd
@@ -1543,7 +1438,7 @@ endg
ret ret
nsyse2: nsyse2:
cmp eax,3 ; CD cmp eax,3 ; CD
jnz nsyse3 jnz nsyse4
test ebx,ebx test ebx,ebx
jz nosesl jz nosesl
cmp ebx, 4 cmp ebx, 4
@@ -1573,17 +1468,6 @@ endg
cd_base db 0 cd_base db 0
nsyse3:
cmp eax,4 ; SB
jnz nsyse4
cmp ebx,0x100
jb nsyse4
mov edx,65535
cmp edx,ebx
jb nsyse4
mov word [sb16],bx
ret
nsyse4: nsyse4:
cmp eax,5 ; SYSTEM LANGUAGE cmp eax,5 ; SYSTEM LANGUAGE
@@ -1638,7 +1522,7 @@ iglobal
hd_base db 0 hd_base db 0
endg endg
nsyse7: nsyse7:
cmp eax,8 ; HD PARTITION cmp eax,8 ; HD PARTITION
jne nsyse8 jne nsyse8
@@ -1652,24 +1536,16 @@ endg
popa popa
mov [hd1_status],0 ; free mov [hd1_status],0 ; free
ret ret
nsyse8:
cmp eax,10 ; SOUND DMA CHANNEL
jne no_set_sound_dma
cmp ebx,3
ja sys_setup_err
mov [sound_dma],ebx
ret
no_set_sound_dma:
nsyse8:
cmp eax,11 ; ENABLE LBA READ cmp eax,11 ; ENABLE LBA READ
jne no_set_lba_read jne no_set_lba_read
and ebx,1 and ebx,1
mov [lba_read_enabled],ebx mov [lba_read_enabled],ebx
ret ret
no_set_lba_read:
cmp eax,12 ; ENABLE PCI ACCESS no_set_lba_read:
cmp eax,12 ; ENABLE PCI ACCESS
jne no_set_pci_access jne no_set_pci_access
and ebx,1 and ebx,1
mov [pci_access_enabled],ebx mov [pci_access_enabled],ebx
@@ -1691,7 +1567,6 @@ sys_getsetup:
; 1=roland mpu midi base , base io address ; 1=roland mpu midi base , base io address
; 2=keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus ; 2=keyboard 1, base kaybap 2, shift keymap, 9 country 1eng 2fi 3ger 4rus
; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave ; 3=cd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 4=sb16 base , base io address
; 5=system language, 1eng 2fi 3ger 4rus ; 5=system language, 1eng 2fi 3ger 4rus
; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave ; 7=hd base 1, pri.master 2, pri slave 3 sec master, 4 sec slave
; 8=fat32 partition in hd ; 8=fat32 partition in hd
@@ -1702,7 +1577,7 @@ sys_getsetup:
movzx eax,[midi_base] movzx eax,[midi_base]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse1: ngsyse1:
cmp eax,2 cmp eax,2
jne ngsyse2 jne ngsyse2
@@ -1715,7 +1590,7 @@ sys_getsetup:
mov ecx,128 mov ecx,128
call memmove call memmove
ret ret
kbnobaseret: kbnobaseret:
cmp ebx,2 cmp ebx,2
jnz kbnoshiftret jnz kbnoshiftret
mov edi,[TASK_BASE] mov edi,[TASK_BASE]
@@ -1725,7 +1600,7 @@ sys_getsetup:
mov ecx,128 mov ecx,128
call memmove call memmove
ret ret
kbnoshiftret: kbnoshiftret:
cmp ebx,3 cmp ebx,3
jne kbnoaltret jne kbnoaltret
mov edi,[TASK_BASE] mov edi,[TASK_BASE]
@@ -1735,70 +1610,56 @@ sys_getsetup:
mov ecx,128 mov ecx,128
call memmove call memmove
ret ret
kbnoaltret: kbnoaltret:
cmp ebx,9 cmp ebx,9
jnz ngsyse2 jnz ngsyse2
movzx eax,word [keyboard] movzx eax,word [keyboard]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse2: ngsyse2:
cmp eax,3 cmp eax,3
jnz ngsyse3 jnz ngsyse3
movzx eax,[cd_base] movzx eax,[cd_base]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse3: ngsyse3:
cmp eax,5
cmp eax,4 jnz ngsyse5
jne ngsyse4 mov eax,[syslang]
mov eax,[sb16] mov [esp+36],eax
mov [esp+36],eax ret
ret ngsyse5:
ngsyse4:
cmp eax,5
jnz ngsyse5
mov eax,[syslang]
mov [esp+36],eax
ret
ngsyse5:
cmp eax,7 cmp eax,7
jnz ngsyse7 jnz ngsyse7
movzx eax,[hd_base] movzx eax,[hd_base]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse7: ngsyse7:
cmp eax,8 cmp eax,8
jnz ngsyse8 jnz ngsyse8
mov eax,[fat32part] mov eax,[fat32part]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse8: ngsyse8:
cmp eax,9 cmp eax,9
jne ngsyse9 jne ngsyse9
mov eax,[timer_ticks] ;[0xfdf0] mov eax,[timer_ticks] ;[0xfdf0]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse9: ngsyse9:
cmp eax,10
jnz ngsyse10
mov eax,[sound_dma]
mov [esp+36],eax
ret
ngsyse10:
cmp eax,11 cmp eax,11
jnz ngsyse11 jnz ngsyse11
mov eax,[lba_read_enabled] mov eax,[lba_read_enabled]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse11: ngsyse11:
cmp eax,12 cmp eax,12
jnz ngsyse12 jnz ngsyse12
mov eax,[pci_access_enabled] mov eax,[pci_access_enabled]
mov [esp+36],eax mov [esp+36],eax
ret ret
ngsyse12: ngsyse12:
mov [esp+36],dword 1 mov [esp+36],dword 1
ret ret
@@ -2528,7 +2389,9 @@ nosb6:
and dword [page_tabs+eax*4], 0 and dword [page_tabs+eax*4], 0
mov edx, eax mov edx, eax
shl edx, 12 shl edx, 12
push eax
invlpg [edx] invlpg [edx]
pop eax
inc eax inc eax
loop @b loop @b
pop eax pop eax

View File

@@ -207,7 +207,6 @@ include "fs/iso9660.inc" ; read for iso9660 filesystem CD
; sound ; sound
include "sound/sb16.inc" ; playback for Sound Blaster 16
include "sound/playnote.inc" ; player Note for Speaker PC include "sound/playnote.inc" ; player Note for Speaker PC
; display ; display

View File

@@ -18,15 +18,38 @@
$Revision$ $Revision$
align 4
sound_interface:
kontrOctave dw 0x4742, 0x4342, 0x3F7C, 0x3BEC, 0x388F, 0x3562 cmp eax, edi ; this is subfunction #55 ?
dw 0x3264, 0x2F8F, 0x2CE4, 0x2A5F, 0x2802, 0x25BF jne retFunc55 ; if no then return.
memAdrNote dd 0
pidProcessNote dd 0 cmp byte [sound_flag],0
slotProcessNote dd 0 jne retFunc55
count_timer_Note dd 1
mem8253r42 dw 0 movzx eax, byte [countDelayNote]
countDelayNote db 0 or al, al ; player is busy ?
jnz retFunc55 ; return counter delay Note
mov [memAdrNote],edx
call get_pid
mov [pidProcessNote],eax
xor eax, eax ; Ok! EAX = 0
retFunc55:
mov [esp+36], eax ; return value EAX for application
ret
iglobal
align 4
kontrOctave dw 0x4742, 0x4342, 0x3F7C, 0x3BEC, 0x388F, 0x3562
dw 0x3264, 0x2F8F, 0x2CE4, 0x2A5F, 0x2802, 0x25BF
memAdrNote dd 0
pidProcessNote dd 0
slotProcessNote dd 0
count_timer_Note dd 1
mem8253r42 dw 0
countDelayNote db 0
endg
playNote: playNote:
; jmp NotPlayNotes ; jmp NotPlayNotes

View File

@@ -1,354 +0,0 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; ;;
;; SB16.INC ;;
;; ;;
;; Sound Blaster 16 functions for MenuetOS ;;
;; ;;
;; Copyright 2002 Paolo Minazzi, paolo.minazzi@inwind.it ;;
;; ;;
;; See file COPYING for details ;;
;; ;;
;; - 11.07.2002 8 bit stereo mode - Ville Turjanmaa ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$Revision$
SB16_load_music equ 0xc0000000
SB16_play_music equ 0xc0000001
DMAPage equ 0x2A
Rate equ 44100
;SB16_Status equ SB16Buffer+65536
iglobal
sound_data_format dd 0x1
sound_data_length dd 65536
sound_data_freq dd 44100
endg
sound_interface:
cmp eax,0 ; Load data
jne no_SB16_load_music
mov edi,[TASK_BASE]
add edi,TASKDATA.mem_start
add ebx,[edi]
call code_SB16_load_music
ret
no_SB16_load_music:
cmp eax,1 ; Play data
jne no_SB16_play_music
call code_SB16_play_music
ret
no_SB16_play_music:
cmp eax,2 ; Set data formats
jne no_SB16_data_format
cmp ebx,0 ; ebx=0 play format
jne no_sound_format
mov [sound_data_format],ecx ; 1=8b mono, 2=8b stereo
ret
no_sound_format:
cmp ebx,1 ; ebx=1 data length
jne no_sound_length
mov [sound_data_length],ecx ;
ret
no_sound_length:
cmp ebx,2 ; ebx=2 sound data frequency
jne no_sound_freq
mov [sound_data_freq],ecx
ret
no_sound_freq:
ret
no_SB16_data_format:
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cmp eax, edi ; this is subfunction #55 ?
jne retFunc55 ; if no then return.
cmp byte [sound_flag],0
jne retFunc55
movzx eax, byte [countDelayNote]
or al, al ; player is busy ?
jnz retFunc55 ; return counter delay Note
; mov eax, [TASK_BASE]
; mov eax, [eax+0x10] ; address application im memory
; add eax, edx ; add offset Delay-Note string
; mov [memAdrNote], eax
mov [memAdrNote],edx
mov eax,[TASK_BASE]
mov eax,[eax+TASKDATA.pid]
mov [pidProcessNote],eax
xor eax, eax ; Ok! EAX = 0
retFunc55:
mov [esp+36], eax ; return value EAX for application
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ret
code_SB16_play_music:
cmp [sound_data_format],1
jne no_sound_8bm
call sb_play_8b_mono
ret
no_sound_8bm:
cmp [sound_data_format],2
jne no_sound_8bs
call sb_play_8b_stereo
ret
no_sound_8bs:
ret
Blaster_command:
push eax
push ecx
push edx
mov dx,word [sb16]
add dx,0xc
mov cx,1000
bcl1:
in al,dx
and al,128
jz bcl2
loop bcl1
bcl2:
mov al,[esp+8]
mov dx,[esp+0]
add dx,word [sb16]
out dx,al
pop edx
pop ecx
pop eax
ret
sb_play_8b_stereo:
pusha
call sb_set_dma
call sb_set_stereo
mov dx,0xc
mov al,0xa8
call Blaster_command
mov al,0x40
call Blaster_command
mov al,245
call Blaster_command
mov al,0x48
call Blaster_command
mov al,0xff
call Blaster_command
call Blaster_command
mov al,0x91
call Blaster_command
popa
ret
sb_set_stereo:
push eax
push edx
call sb_wait
mov dx,word [sb16]
add dx,0x4
mov al,0xe
out dx,al
inc dx
in al,dx
and al,253
or al,2 ; stereo
out dx,al
pop edx
pop eax
ret
code_SB16_load_music:
cmp byte [SB16_Status],1
je nol
mov edi,SB16Buffer
mov esi,ebx
mov ecx,65536/4
cld
rep movsd
nol: ret
iglobal
dma_table db 0x87,0x83,0x81,0x82
endg
;--------------------------------
; program dma
;--------------------------------
sb_set_dma:
pusha
mov eax,[sound_dma]
add eax,4
out 0xa,al
mov al,0
out 0xc,al
mov eax,[sound_dma]
add eax,0x48
out 0xb,al
mov edx,[sound_dma]
shl edx,1
mov al,0
out dx,al
mov al,0
out dx,al
mov edx,[sound_dma]
add edx,dma_table
movzx edx,byte [edx]
mov al,DMAPage
out dx,al
mov edx,[sound_dma]
shl edx,1
inc edx
mov eax,[sound_data_length]
dec eax
and eax,0xff
; mov al,(DataLength-1) and 0xff
out dx,al
mov eax,[sound_data_length]
dec eax
shr eax,8
; mov al,(DataLength-1) shr 8
out dx,al
mov eax,[sound_dma] ; DMA
out 0xa,al
popa
ret
sb_play_8b_mono:
call sb_set_dma
cmp byte [SB16_Status],1
jne contsb16
jmp retserve
contsb16:
mov dx,word [sb16]
add dx,4
mov ecx,[sound_dma]
mov ax,0x01
shl ax,cl
shl ax,8
add ax,0x81
out dx,ax
mov ax,0f280h ;enable irq5
out dx,ax
adr1_SB: mov dx,word [sb16]
add dx,0ch
in al,dx
and al,080h
jnz adr1_SB
call sb_set_stereo
mov al,0d1h
out dx,al
mov dx,word [sb16]
add dx,0ch
call sb_wait
mov al,40h ; Rate
out dx,al
call sb_wait
mov al,256-1000000/Rate
out dx,al
call sb_wait
mov al,14h ; Datalength
out dx,al
call sb_wait
mov eax,[sound_data_length]
dec eax
and eax,0xff
;mov al,(DataLength-1) and 0xff
out dx,al
call sb_wait
mov eax,[sound_data_length]
dec eax
shr eax,8
;mov al,(DataLength-1) shr 8
out dx,al
retserve:
ret
sb_wait: in al,dx ;wait
and al,080h
jnz sb_wait
ret
;****************************************
; END CODE SB16 by Minazzi Paolo
;***************************************

View File

@@ -468,6 +468,8 @@ proc init_cursors
.init: .init:
mov [cur_def_interl], ebx mov [cur_def_interl], ebx
; stdcall load_pe_driver, szAtiHW
stdcall load_driver, szHwMouse stdcall load_driver, szHwMouse
mov [hw_cursor], eax mov [hw_cursor], eax
test eax, eax test eax, eax