[MN-dev] [mndiff]: r44 - trunk/2010/2_hw_asm.s

michael subversion at mplayerhq.hu
Wed Jul 4 03:27:11 CEST 2007


Author: michael
Date: Wed Jul  4 03:27:11 2007
New Revision: 44

Log:
forgotten in last commit


Added:
   trunk/2010/2_hw_asm.s

Added: trunk/2010/2_hw_asm.s
==============================================================================
--- (empty file)
+++ trunk/2010/2_hw_asm.s	Wed Jul  4 03:27:11 2007
@@ -0,0 +1,271 @@
+//2010 0.1 Copyright (C) Michael Niedermayer 1998
+
+ _lock_start:
+
+.globl _lock_start
+.globl _timer_count
+.globl _old_int8_vect_offset
+.globl _old_int8_vect_selector
+.globl _int8_handler
+.globl _meteor_handler
+.globl _lock_end
+.globl _save_selectors__Fv
+.globl _mouse_regs
+.globl _mouse_handler_enable
+.globl _in_int
+.globl _mouse_lx
+.globl _mouse_ly
+.globl _mouse_tim
+.globl _mouse_ltim
+.globl _mouse_x
+.globl _mouse_y
+.globl _mouse_b
+.globl _page_flip
+.globl _dispbuf
+.globl _last_dispbuf
+.globl _grab_dispbuf
+.globl _vidbuf
+.globl _xres
+.globl _xresvb
+.globl _vb
+.globl _mc
+.globl _xresc
+.globl _yres
+.globl _cursor
+.globl _yuvmode
+.globl _locklist
+.globl _alloclist
+.globl _vdslist
+.globl _maplist
+.globl _meteors
+.globl _old_intmet_vect
+.globl _old_intmet_vect_offset
+.globl _old_intmet_vect_selector
+.globl _grab_state
+.globl _metmode
+.globl _active_meteor
+.globl _latency
+.globl _addr_errors
+.globl _corr_errors
+.globl _frames
+.globl _fields
+.globl _saa7196_buf
+.globl _std
+.globl _x_field
+.globl _y_field
+.globl _one_field
+.globl _amb
+.globl _mouse_buff
+.globl _fresh_cursor
+.globl _stride
+.globl _single
+.globl _crypt
+.globl _xress
+.globl _yress
+.globl _yrest
+.globl _yresst
+.globl _nagra_mode
+.globl _mmx
+.globl _my_cs
+.globl _my_ds
+
+.globl _real_int__FsP11__dpmi_regs
+.globl _real_regs
+
+.align 4
+
+_timer_count: .long 0
+_mouse_handler_enable: .long 1 
+_in_int: .long 0
+_mouse_lx: .long 0
+_mouse_ly: .long 0
+_mouse_tim: .long 0
+_mouse_ltim: .long 0
+_mouse_x: .long 0
+_mouse_y: .long 0
+_mouse_b: .long 0
+_page_flip: .long 0
+_dispbuf: .long 0
+.long 0
+_last_dispbuf: .long 0
+.long 0
+_grab_dispbuf: .long 0
+.long 0
+_vidbuf: .long 0
+_xres: .long 0
+_vb: .long 0
+_mc: .long 0
+_xresvb: .long 0
+_xresc: .long 0
+_yres: .long 0
+_yuvmode: .long 0
+_locklist: .long 0
+_alloclist: .long 0
+_vdslist: .long 0
+_maplist: .long 0
+_old_intmet_vect:
+_old_intmet_vect_offset: .long 0
+_old_intmet_vect_selector: .word 0
+.align 4
+_grab_state: .long 0
+_metmode: .long 0
+_active_meteor: .long 0
+_latency: .long 32
+_addr_errors: .long 0
+_corr_errors: .long 0
+_frames: .long 0
+_fields: .long 0
+_saa7196_buf: .space 52, 0
+_std: .long 0
+_x_field: .long 0
+_y_field: .long 0
+_one_field: .long 0
+_amb: .long 0
+_mouse_buff: .long 0
+             .long 0
+_fresh_cursor: .long 1
+_stride: .long 0
+_single: .long 0
+_crypt: .long 0
+_xress: .long 0
+_yress: .long 0
+_yrest: .long 0
+_yresst: .long 0
+_nagra_mode: .long 0
+_mmx: .long 1
+_my_cs: .word 0
+_my_ds: .word 0
+
+_meteors: .space 0x80, 0
+_cursor: .space 0x40, 0
+_mouse_regs: .space 0x40, 0
+
+_ds: .word 0
+_es: .word 0
+_fs: .word 0
+_gs: .word 0
+
+
+.align 4
+_real_regs:
+_r_di: .long 0
+_r_si: .long 0
+_r_bp: .long 0
+_r_sp2: .long 0
+_r_bx: .long 0
+_r_dx: .long 0
+_r_cx: .long 0
+_r_ax: .long 0
+_r_fl: .word 0
+_r_es: .word 0
+_r_ds: .word 0
+_r_fs: .word 0
+_r_gs: .word 0
+_r_ip: .word 0
+_r_cs: .word 0
+_r_sp: .word 0
+_r_ss: .word 0
+       
+
+.align 4
+_save_selectors__Fv:
+ movw %ds, _ds
+ movw %es, _es
+ movw %fs, _fs
+ movw %gs, _gs
+ret
+
+   // int num
+.align 4
+_real_int__FsP11__dpmi_regs:
+
+ pushal
+ pushw %es
+
+ movw 38(%esp), %bx
+ movl 42(%esp), %edi
+
+ movw %ds, %ax
+ movw %ax, %es
+
+ movw $0 , (_r_ss - _real_regs)(%edi)
+ movw $0 , (_r_sp - _real_regs)(%edi)
+ movl $0 , (_r_sp2 - _real_regs)(%edi)
+ pushfw
+ popw (_r_fl - _real_regs)(%edi)
+
+ xorw %cx, %cx
+ movw $0x0300, %ax
+ int $0x31
+
+ popw %es
+ popal
+ret
+
+.align 4
+_int8_handler:
+
+ pushal
+ pushw %ds
+ pushw %es
+ pushw %fs
+ pushw %gs
+
+ movw %cs:_ds, %ds
+ movw     _es, %es
+ movw     _fs, %fs
+ movw     _gs, %gs
+
+ incl _timer_count
+
+ call _disabled_call_mouse_handler__Fv
+
+ popw %gs
+ popw %fs
+ popw %es
+ popw %ds
+ popal
+
+.byte 0xEA
+_old_int8_vect:
+_old_int8_vect_offset: .long 0
+_old_int8_vect_selector: .word 0
+
+.align 4
+_meteor_handler:
+// int $3
+
+ pushal
+ pushw %ds
+ pushw %es
+ pushw %fs
+ pushw %gs
+
+// movw $0x00B7, %ax
+// movw     %ax, %ds              //HACK FIX BUG GRRRR
+// movw     %ax, %es              //HACK FIX BUG GRRRR
+// movw     %ax, %fs              //HACK FIX BUG GRRRR
+// movw     %ax, %gs              //HACK FIX BUG GRRRR
+ movw %cs:_ds, %ds
+ movw     _ds, %es
+ movw     _ds, %fs
+ movw     _ds, %gs     // all ds fix hack
+
+ call _meteor_int_handler__Fv
+
+ popw %gs
+ popw %fs
+ popw %es
+ popw %ds
+
+// int $3
+
+ movb $0x20, %al
+ outb %al, $0xA0
+ outb %al, $0x20
+ //   FIX  this QUICK HACK (? if irq<8)
+ popal
+sti
+iret
+
+_lock_end:



More information about the Mndiff-dev mailing list