home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / kernex32.zip / mwdd_src.zip / 32bits / ext2-os2 / devhlp32 / DevHlp32_InternalError.asm < prev    next >
Assembly Source File  |  1997-03-16  |  2KB  |  89 lines

  1. ;
  2. ; $Header: d:\\32bits\\ext2-os2\\devhlp32\\rcs\\DevHlp32_InternalError.asm,v 1.4 1997/03/15 16:38:23 Willm Exp $
  3. ;
  4.  
  5. ; 32 bits OS/2 device driver and IFS support. Provides 32 bits kernel 
  6. ; services (DevHelp) and utility functions to 32 bits OS/2 ring 0 code 
  7. ; (device drivers and installable file system drivers).
  8. ; Copyright (C) 1995, 1996, 1997  Matthieu WILLM (willm@ibm.net)
  9. ;
  10. ; This program is free software; you can redistribute it and/or modify
  11. ; it under the terms of the GNU General Public License as published by
  12. ; the Free Software Foundation; either version 2 of the License, or
  13. ; (at your option) any later version.
  14. ;
  15. ; This program is distributed in the hope that it will be useful,
  16. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. ; GNU General Public License for more details.
  19. ;
  20. ; You should have received a copy of the GNU General Public License
  21. ; along with this program; if not, write to the Free Software
  22. ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  
  24.         .386p
  25.  
  26.         INCL_DOSERRORS equ 1
  27.         include bseerr.inc
  28.  
  29.         include devhlp.inc
  30.         include segdef.inc
  31.         include r0thunk.inc
  32.  
  33. CODE16 segment
  34.         ASSUME CS:CODE16, DS:DATA16, ES:FLAT
  35.  
  36.         public thunk16$DevHlp32_InternalError
  37.  
  38. thunk16$DevHlp32_InternalError:
  39.         call es:[DevHelp2]
  40.     ;
  41.     ; We should never reach this point
  42.     ;
  43.     int 3
  44. ;        jmp far ptr FLAT:thunk32$DevHlp32_InternalError
  45.  
  46. CODE16 ends
  47.  
  48. DATA16 segment
  49.     public panic_buffer
  50.     panic_buffer db 512 dup (?)
  51. DATA16 ends
  52.  
  53. CODE32 segment
  54. ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING
  55.  
  56.         public         DevHlp32_InternalError
  57.  
  58. ;
  59. ; void DH32ENTRY DevHlp32_InternalError(
  60. ;                              char *msg,    /* ebp + 8  */
  61. ;                    int   msglen    /* ebp + 12 */
  62. ;                            );
  63. ;
  64. DevHlp32_InternalError proc near
  65.     enter 0, 0    
  66.     mov ax, seg DATA16
  67.     mov es, ax
  68.     mov ax, offset DATA16:panic_buffer
  69.     movzx edi, ax
  70.     mov esi, [ebp + 8]
  71.     mov ecx, [ebp + 12]
  72.     and ecx, 511
  73.     rep movsb
  74.  
  75.     mov edi, [ebp + 12]
  76.     and edi, 511
  77.     push ds
  78.     pop es
  79.     mov ax, seg DATA16
  80.     mov ds, ax
  81.     mov si, offset DATA16:panic_buffer
  82.     mov dl, DevHlp_InternalError
  83.         jmp far ptr thunk16$DevHlp32_InternalError
  84. DevHlp32_InternalError endp
  85.  
  86. CODE32  ends
  87.  
  88.         end
  89.