home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / patchldr.zip / Mem.asm < prev    next >
Assembly Source File  |  1999-11-11  |  2KB  |  179 lines

  1.     .386
  2.     IDEAL
  3.     SMART
  4.     LOCALS
  5.     MODEL    SMALL,C
  6.  
  7. SEGMENT _TEXT
  8.     ASSUME CS:_TEXT
  9.  
  10.     PUBLIC    Int12
  11.  
  12. PROC    Int12 NEAR
  13.     ARG    VMajor: PTR BYTE , VMinor: PTR BYTE, Bus: PTR BYTE
  14.     USES    SI,DI
  15.  
  16.     INT    12h
  17. @@Ret:
  18.     RET
  19. ENDP
  20.  
  21.     PUBLIC    Int1588
  22.  
  23. PROC    Int1588 NEAR
  24.     USES    SI,DI
  25.  
  26.     MOV    AH, 088h
  27.     INT    15h
  28.     JC    @@Err
  29.     DEC    AX
  30.     MOVZX    EAX, AX
  31.     INC    EAX
  32.     MOV    EDX, EAX
  33.     SHR    EDX, 16
  34.     JMP    @@Ret
  35. @@Err:
  36.     MOV    AX, -1
  37.     MOV    DX, -1
  38. @@Ret:
  39.     RET
  40. ENDP
  41.  
  42.     PUBLIC    Int158A
  43.  
  44. PROC    Int158A NEAR
  45.     USES    SI,DI
  46.  
  47.     MOV    AH, 08Ah
  48.     INT    15h
  49.     JC    @@Err
  50.     JMP    @@Ret
  51. @@Err:
  52.     MOV    AX, -1
  53.     MOV    DX, -1
  54. @@Ret:
  55.     RET
  56. ENDP
  57.  
  58.     PUBLIC    Int15C7
  59.  
  60. PROC    Int15C7 NEAR
  61.     ARG    Buf: PTR BYTE
  62.     USES    SI,DI,DS
  63.  
  64.     MOV    AH, 0C7h
  65.     LDS    SI, [DWORD Buf]
  66.     INT    15h
  67.     JC    @@Err
  68.     MOV    AX, 0
  69.     MOV    DX, 0
  70.     JMP    @@Ret
  71. @@Err:
  72.     MOV    AX, -1
  73.     MOV    DX, -1
  74. @@Ret:
  75.     RET
  76. ENDP
  77.  
  78.     PUBLIC    Int15DA88
  79.  
  80. PROC    Int15DA88 NEAR
  81.     USES    SI,DI
  82.  
  83.     MOV    AX, 0DA88h
  84.     INT    15h
  85.     JC    @@Err
  86.     MOV    AX, BX
  87.     MOVZX    DX, CL
  88.     JMP    @@Ret
  89. @@Err:
  90.     MOV    AX, -1
  91.     MOV    DX, -1
  92. @@Ret:
  93.     RET
  94. ENDP
  95.  
  96.     PUBLIC    Int15E801
  97.  
  98. PROC    Int15E801 NEAR
  99.     ARG    Flavour: BYTE
  100.     USES    SI,DI
  101.  
  102.     MOV    EAX, 0E801h
  103.     INT    15h
  104.     JC    @@Err
  105.     TEST    [Flavour], 0FFh
  106.     JNZ    @@configured
  107.  
  108.     MOVZX    EAX, AX
  109.     MOVZX    EBX, BX
  110.     SHL    EBX, 6
  111.     ADD    EAX, EBX
  112.     MOV    EDX, EAX
  113.     SHR    EDX, 16
  114.     JMP    @@Ret
  115.  
  116. @@configured:
  117.     MOVZX    EAX, CX
  118.     MOVZX    EBX, DX
  119.     SHL    EBX, 6
  120.     ADD    EAX, EBX
  121.     MOV    EDX, EAX
  122.     SHR    EDX, 16
  123.     JMP    @@Ret
  124.  
  125. @@Err:
  126.     MOV    AX, -1
  127.     MOV    DX, -1
  128. @@Ret:
  129.     RET
  130. ENDP
  131.  
  132.     PUBLIC    Int15E820
  133.  
  134. PROC    Int15E820 NEAR
  135.     ARG    Buf: PTR BYTE
  136.     USES    SI,DI,ES
  137.  
  138.     MOV    DI, [Buf]
  139.     MOV    EBX, [DWORD DI]
  140.     ADD    DI, 4
  141.     MOV    AX, DS
  142.     MOV    ES, AX
  143.     MOV    ECX, 20
  144.     MOV    EDX, 534D4150h
  145.     MOV    EAX, 0E820h
  146.     INT    15h
  147.     JC    @@Err
  148.     SUB    DI, 4
  149.     MOV    [DWORD DI], EBX
  150.     JMP    @@Ret
  151. @@Err:
  152.     SUB    DI, 4
  153.     MOV    [DWORD DI], 0
  154. @@Ret:
  155.     RET
  156. ENDP
  157.  
  158.     PUBLIC    Int15E881
  159.  
  160. PROC    Int15E881 NEAR
  161.     USES    SI,DI
  162.  
  163.     MOV    EAX, 0E881h
  164.     INT    15h
  165.     JC    @@Err
  166.     ADD    EAX, EBX
  167.     MOV    EDX, EAX
  168.     SHR    EDX, 16
  169.     JMP    @@Ret
  170. @@Err:
  171.     MOV    AX, -1
  172.     MOV    DX, -1
  173. @@Ret:
  174.     RET
  175. ENDP
  176.  
  177. ENDS    _TEXT
  178.     END
  179.