home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 6 File / 06-File.zip / ramfs102.zip / src / patch / 32util.asm next >
Encoding:
Assembly Source File  |  2002-10-20  |  1.8 KB  |  106 lines

  1. ; $Id: 32util.asm,v 1.1.2.1 2002/10/21 00:11:37 root Exp $
  2. ;
  3. ; Utility routines
  4.  
  5.     OPTION    OLDSTRUCTS
  6.  
  7. SAS    STRUC
  8. SAS_signature    DD    ?
  9. SAS_tables_data    DW    ?
  10. SAS_flat_sel    DW    ?
  11. SAS_config_data    DW    ?
  12. SAS_dd_data    DW    ?
  13. SAS_vm_data    DW    ?
  14. SAS_task_data    DW    ?
  15. SAS_RAS_data    DW    ?
  16. SAS_file_data    DW    ?
  17. SAS_info_data    DW    ?
  18. SAS    ENDS
  19.  
  20.  
  21. SAS_vm_section    STRUC
  22. SAS_vm_arena    DD    ?
  23. SAS_vm_object    DD    ?
  24. SAS_vm_context    DD    ?
  25. SAS_vm_krnl_mte    DD    ?
  26. SAS_vm_glbl_mte    DD    ?
  27. SAS_vm_pft    DD    ?
  28. SAS_vm_prt    DD    ?
  29. SAS_vm_swap    DD    ?
  30. SAS_vm_idle_head    DD    ?
  31. SAS_vm_free_head    DD    ?
  32. SAS_vm_heap_info    DD    ?
  33. SAS_vm_all_mte    DD    ?
  34. SAS_vm_section    ENDS
  35.  
  36. .386p
  37.         
  38.     public    _locate_krnl_mte
  39.     public  _savenpx_override
  40.     public  _get_cs
  41.     public    _npx_tcb_base
  42.     public    _flat_ds
  43.  
  44. _DATA32    SEGMENT WORD PUBLIC 'DATA32'
  45.     assume    ds:FLAT
  46.     _npx_tcb_base    dd ?
  47. _DATA32    ENDS
  48.  
  49. CONST32    SEGMENT WORD PUBLIC 'CONST32'
  50.     assume    ds:FLAT
  51. CONST32    ENDS
  52.  
  53. _BSS32    SEGMENT WORD PUBLIC 'BSS32'
  54.     assume    ds:FLAT
  55. _BSS32    ENDS
  56.  
  57. _BSS SEGMENT WORD PUBLIC USE16 'BSS'
  58.     _flat_ds dw ?
  59. _BSS ENDS
  60.  
  61. CODE32 GROUP _TEXT32
  62. DGRP32 GROUP _DATA32, CONST32, _BSS32
  63.     
  64. _TEXT32 SEGMENT    PARA PUBLIC USE32 'CODE'
  65.     assume    cs:_TEXT32, ds:FLAT
  66.  
  67. ; Locate the kernel MTE through System Anchor Segment
  68.         
  69. _locate_krnl_mte    PROC
  70.         push    es
  71.         mov    ax, 70h        ; SAS_Selector
  72.         mov    es, ax
  73.         mov    bx, es:[SAS_vm_data]
  74.         mov    eax, dword ptr es:[bx+SAS_vm_krnl_mte]
  75.         pop    es
  76.         retn
  77. _locate_krnl_mte    endp
  78.  
  79. ; NPX procedure.
  80.  
  81. _savenpx_override proc    far
  82.         mov    ebx, dword ptr [eax+ebx*4]
  83.         or    ebx, ebx
  84.         jnz    add_it
  85.         stc
  86.         retf
  87. add_it:
  88.         push    eax
  89.         mov    eax, ds:_npx_tcb_base ; DS is already flat
  90.         mov    ebx, dword ptr [ebx+eax]
  91.         pop    eax
  92.         clc
  93.         retf
  94. _savenpx_override endp
  95.  
  96. ; Returns the code segment.
  97.  
  98. _get_cs        proc
  99.         mov    ax, cs
  100.         ret
  101. _get_cs        endp
  102.     
  103. _TEXT32 ENDS
  104.  
  105.         END
  106.