home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / ugoku / ugokulib / etc / pp.asm < prev    next >
Assembly Source File  |  1995-06-20  |  2KB  |  178 lines

  1. ;        Graph_lib
  2. ;
  3. ;        call from High C
  4. ;
  5. ;        1990 4  Hiroshi TODA
  6. ;
  7.  
  8.     .386p
  9.  
  10.         cseg    segment    'CODE'
  11.     assume    cs:cseg,ds:cseg
  12.  
  13. ;peekw( address, segment )
  14.  
  15.     public    peekw
  16.     db    'peekw',5
  17. peekw    proc    near
  18.     mov    eax,4[esp]
  19.     mov    fs,8[esp]
  20.     mov    ax,fs:[eax]
  21.     and    eax,0ffffH
  22.     ret
  23. peekw    endp
  24.  
  25. ;pokew( address, segment, data )
  26.  
  27.     public    pokew
  28.     db    'pokew',5
  29. pokew    proc    near
  30.     push    esi
  31.     mov    esi,8[esp]
  32.     mov    fs,12[esp]
  33.     mov    eax,16[esp]
  34.     mov    fs:[esi],ax
  35.     pop    esi
  36.     ret
  37. pokew    endp
  38.  
  39. ;xorw( address, segment, data )
  40.  
  41.     public    xorw
  42.     db    'xorw',4
  43. xorw    proc    near
  44.     push    esi
  45.     mov    esi,8[esp]
  46.     mov    fs,12[esp]
  47.     mov    eax,16[esp]
  48.     xor    fs:[esi],ax
  49.     pop    esi
  50.     ret
  51. xorw    endp
  52.  
  53. ;peekd( address, segment )
  54.  
  55.     public    peekd
  56.     db    'peekd',5
  57. peekd    proc    near
  58.     mov    eax,4[esp]
  59.     mov    fs,8[esp]
  60.     mov    eax,fs:[eax]
  61.     ret
  62. peekd    endp
  63.  
  64. ;poked( address, segment, data )
  65.  
  66.     public    poked
  67.     db    'poked',5
  68. poked    proc    near
  69.     push    esi
  70.     mov    esi,8[esp]
  71.     mov    fs,12[esp]
  72.     mov    eax,16[esp]
  73.     mov    fs:[esi],eax
  74.     pop    esi
  75.     ret
  76. poked    endp
  77.  
  78. ;xord( address, segment, data )
  79.  
  80.     public    xord
  81.     db    'xord',4
  82. xord    proc    near
  83.     push    esi
  84.     mov    esi,8[esp]
  85.     mov    fs,12[esp]
  86.     mov    eax,16[esp]
  87.     xor    fs:[esi],eax
  88.     pop    esi
  89.     ret
  90. xord    endp
  91.  
  92. ;outfa( fa, haj )        ; 垂直帰線中にhaj,fa WRITE
  93.  
  94.     public    outfa
  95.     db    'outfa',5
  96. outfa    proc    near
  97.     mov    dx,0440h    ; 垂直同期を読む
  98.     mov    al,30
  99.     out    dx,al
  100.     mov    dx,0443h    ; 0443h
  101.     xor    ecx,ecx        ; カウンター
  102. outf01:    in    al,dx
  103.     and    al,04h
  104.     je    outf02
  105.     loop    outf01
  106. outf02:    in    al,dx
  107.     and    al,04h
  108.     jne    outf03
  109.     loop    outf02
  110. outf03:    mov    al,18        ;*
  111.     mov    dx,0440h
  112.     out    dx,al
  113.     mov    eax,[esp+8]
  114.     mov    dx,0442h
  115.     out    dx,ax
  116.     mov    al,22        ;*
  117.     mov    dx,0440h
  118.     out    dx,al
  119.     mov    eax,[esp+8]
  120.     mov    dx,0442h
  121.     out    dx,ax
  122.     mov    al,17        ;*
  123.     mov    dx,0440h
  124.     out    dx,al
  125.     mov    eax,[esp+4]
  126.     mov    dx,0442h
  127.     out    dx,ax
  128.     mov    al,21        ;*
  129.     mov    dx,0440h
  130.     out    dx,al
  131.     mov    eax,[esp+4]
  132.     mov    dx,0442h
  133.     out    dx,ax
  134.     ret
  135. outfa    endp
  136.  
  137. ;outb( address, data )  outw( address, data )  inb( address )  inw( address )
  138.  
  139.     public    outb
  140.     db    'outb',4
  141. outb    proc    near
  142.     mov    edx,[esp+4]
  143.     mov    eax,[esp+8]
  144.     out    dx,al
  145.     ret
  146. outb    endp
  147.  
  148.     public    outw
  149.     db    'outb',4
  150. outw    proc    near
  151.     mov    edx,[esp+4]
  152.     mov    eax,[esp+8]
  153.     out    dx,ax
  154.     ret
  155. outw    endp
  156.  
  157.     public    inb
  158.     db    'inb',3
  159. inb    proc    near
  160.     mov    edx,[esp+4]
  161.     in    al,dx
  162.     movzx    eax,al
  163.     ret
  164. inb    endp
  165.  
  166.     public    inw
  167.     db    'inw',3
  168. inw    proc    near
  169.     mov    edx,[esp+4]
  170.     in    ax,dx
  171.     movzx    eax,ax
  172.     ret
  173. inw    endp
  174.  
  175.         cseg    ends
  176.     end
  177.  
  178.