home *** CD-ROM | disk | FTP | other *** search
/ BURKS 2 / BURKS_AUG97.ISO / BURKS / SOFTWARE / LIBS / PMC101.ZIP / LIBSRC.ZIP / SRMSTUB.ASM (.txt) < prev    next >
Assembly Source File  |  1994-06-29  |  4KB  |  195 lines

  1. .386p
  2. locals
  3.  
  4. _TEXT           segment byte public use32 'CODE'
  5. _TEXT           ends
  6. _DATA           segment dword public use32 'DATA'
  7. _DATA           ends
  8. _BSS            segment dword public use32 'BSS'
  9. _BSS            ends
  10.  
  11. DGROUP          group   _DATA, _BSS
  12. assume  cs:_TEXT, ds:DGROUP
  13.  
  14. extrn   _rs:dword
  15.  
  16. extrn   __DATAseg:word
  17. extrn   _rmcpmnoregs:dword
  18. extrn   _rmcpminoregs:dword
  19.  
  20. public  SETRMSTUB
  21.  
  22. _TEXT           segment byte public use32 'CODE'
  23. assume  cs:_TEXT, ds:DGROUP
  24.  
  25. SETRMSTUB:
  26.         push esi edi
  27.         cld
  28.  
  29.         mov edi,[esp+4+8+08h]
  30.         mov ax,__DATAseg
  31.         mov rm0,ax
  32.  
  33.         mov esi,offset nr
  34.         lea edx,[edi+NROFF0]
  35.         mov ecx,NRLEN
  36.         test byte ptr [esp+4+8+00h],4
  37.         jz short @@00
  38.  
  39.         mov esi,offset r
  40.         lea edx,[edi+ROFF0]
  41.         mov ecx,RLEN
  42.  
  43. @@00:
  44.         mov al,cl
  45.         shr ecx,2
  46.         and al,3
  47.         rep movsd
  48.         mov cl,al
  49.         rep movsb
  50.  
  51.         mov al,0cfh
  52.         test byte ptr [esp+4+8+00h],2
  53.         jz short @@01
  54.  
  55.         mov al,0cbh
  56.  
  57. @@01:
  58.         mov [edi-1],al
  59.  
  60.         mov eax,[esp+4+8+04h]
  61.         mov [edx+2],eax
  62.  
  63.         mov eax,_rmcpminoregs
  64.         test byte ptr [esp+4+8+00h],1
  65.         jz short @@02
  66.  
  67.         mov eax,_rmcpmnoregs
  68.  
  69. @@02:
  70.         mov [edx+7],eax
  71.  
  72.         pop edi esi
  73.         ret 0ch
  74.  
  75. _TEXT           ends
  76.  
  77. _DATA           segment dword public use32 'DATA'
  78.  
  79. nr              db 66h,60h
  80.                 db 1eh
  81.                 db 06h
  82.                 db 0fh,0a0h
  83.                 db 0fh,0a8h
  84.  
  85. NROFF0          = $ - nr
  86.                 db 66h,0bdh
  87.                 dd 2beaddedh
  88.                 db 9ah
  89.                 dd 2beaddedh
  90.  
  91.                 db 0fh,0a9h
  92.                 db 0fh,0a1h
  93.                 db 07h
  94.                 db 1fh
  95.                 db 66h,61h
  96.  
  97.                 db 2bh
  98. NRLEN           = $ - nr
  99.  
  100. r               db 1eh
  101.                 db 68h
  102. rm0             dw 2beah
  103.                 db 1fh
  104.                 db 66h,0ffh,36h
  105.                 dw _rs+22h
  106.                 db 66h,0ffh,36h
  107.                 dw _rs+2eh
  108.                 db 66h,0ffh,36h
  109.                 dw _rs+26h
  110.                 db 66h,87h,3eh
  111.                 dw _rs+00h
  112.                 db 66h,87h,36h
  113.                 dw _rs+04h
  114.                 db 66h,87h,2eh
  115.                 dw _rs+08h
  116.                 db 66h,87h,1eh
  117.                 dw _rs+10h
  118.                 db 66h,87h,16h
  119.                 dw _rs+14h
  120.                 db 66h,87h,0eh
  121.                 dw _rs+18h
  122.                 db 66h,87h,06h
  123.                 dw _rs+1ch
  124.                 db 66h,60h
  125.                 db 9ch
  126.                 db 58h
  127.                 db 87h,06h
  128.                 dw _rs+20h
  129.                 db 50h
  130.                 db 8bh,0ech
  131.                 db 8dh,46h,30h
  132.                 db 0a3h
  133.                 dw _rs+2eh
  134.                 db 8ch,16h
  135.                 dw _rs+30h
  136.                 db 8ch,2eh
  137.                 dw _rs+28h
  138.                 db 8ch,26h
  139.                 dw _rs+26h
  140.                 db 8bh,46h,2eh
  141.                 db 0a3h
  142.                 dw _rs+24h
  143.                 db 8ch,06h
  144.                 dw _rs+22h
  145.  
  146. ROFF0           = $ - r
  147.                 db 66h,0bdh
  148.                 dd 2beaddedh
  149.                 db 9ah
  150.                 dd 2beaddedh
  151.  
  152.                 db 8bh,0ech
  153.                 db 58h
  154.                 db 87h,06h
  155.                 dw _rs+20h
  156.                 db 50h
  157.                 db 9dh
  158.                 db 66h,8bh,46h,2ah
  159.                 db 66h,87h,06h
  160.                 dw _rs+22h
  161.                 db 66h,89h,46h,2ah
  162.                 db 66h,61h
  163.                 db 66h,87h,3eh
  164.                 dw _rs+00h
  165.                 db 66h,87h,36h
  166.                 dw _rs+04h
  167.                 db 66h,87h,2eh
  168.                 dw _rs+08h
  169.                 db 66h,87h,1eh
  170.                 dw _rs+10h
  171.                 db 66h,87h,16h
  172.                 dw _rs+14h
  173.                 db 66h,87h,0eh
  174.                 dw _rs+18h
  175.                 db 66h,87h,06h
  176.                 dw _rs+1ch
  177.                 db 8eh,26h
  178.                 dw _rs+26h
  179.                 db 8eh,2eh
  180.                 dw _rs+28h
  181.                 db 66h,8fh,06h
  182.                 dw _rs+26h
  183.                 db 66h,8fh,06h
  184.                 dw _rs+2eh
  185.                 db 07h
  186.                 db 1fh
  187.                 db 66h,67h,8dh,64h,24h,02h
  188.  
  189.                 db 2bh
  190. RLEN            = $ - r
  191.  
  192. _DATA           ends
  193. end
  194.  
  195.