home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / his / source / hisl3.asm < prev    next >
Assembly Source File  |  1995-06-20  |  2KB  |  73 lines

  1. ;*****************************************************************
  2. ;*                                                               *
  3. ;*             割り込み処理ライブラリ下請けプロシジャ            *
  4. ;*                                                               *
  5. ;*                     ~ IMR書き込み ~                    *
  6. ;*                                                               *
  7. ;*    1995 / 6 / 12                              ちょもらんま    *
  8. ;*                                                               *
  9. ;*****************************************************************
  10.  
  11.         .386
  12.  
  13. ;************** 割り込みハードウェア関係の定数 *************
  14. OCW1_M        equ    0002h
  15. OCW1_S        equ    0012h
  16. OCW2_M        equ    0000h
  17. OCW2_S        equ    0010h
  18. OCW3_M        equ    0000h
  19. OCW3_S        equ    0010h
  20. ISR_M        equ    0000h
  21. ISR_S        equ    0010h
  22. IRR_M        equ    0000h
  23. IRR_S        equ    0010h
  24. IMR_M        equ    0002h
  25. IMR_S        equ    0012h
  26. ReadIRR        equ    00001010b
  27. ReadISR        equ    00001011b
  28. EOIcommand    equ    00100000b
  29. WaitRegister    equ    006ch
  30.  
  31. ;------------ PICアクセス待ちウェイト -------------
  32. PicWait        macro
  33.         out    WaitRegister,al ; 1μ秒ウェイト
  34.         cmc
  35.         cmc
  36.         endm
  37.  
  38.         assume    cs:code
  39. code        segment    public use32 'CODE'
  40.  
  41. ;**************** 割り込みマスクレジスタの書き込み ***************
  42.  
  43. ; void HIS_writeIMR( int value );
  44.         public    HIS_writeIMR
  45.  
  46. HIS_writeIMR    proc
  47.  
  48. #newIMR        equ    [ ebp + dword * 2 ]
  49.  
  50.         enter    0,0
  51.         pushfd
  52.         push    eax
  53.         mov    eax,#newIMR
  54.  
  55.         cli
  56.         PicWait
  57.         xchg    al,ah
  58.         out    OCW1_S,al ; スレーブ側書き込み
  59.         PicWait
  60.         xchg    al,ah
  61.         out    OCW1_M,al ; マスタ側書き込み
  62.  
  63.         pop    eax
  64.         popfd
  65.         leave
  66.         ret
  67.  
  68. HIS_writeIMR    endp
  69.  
  70. code        ends
  71.  
  72.         end
  73.