home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 5 / ctrom5b.zip / ctrom5b / PROGRAM / ASM / ALIB30B / ERROR4.ASM < prev    next >
Assembly Source File  |  1994-11-15  |  2KB  |  85 lines

  1.     page    66,132
  2. ;******************************** ERROR4.ASM *********************************
  3.  
  4. LIBSEG           segment byte public "LIB"
  5.         assume cs:LIBSEG , ds:nothing
  6.  
  7. ;----------------------------------------------------------------------------
  8. .xlist
  9.     include  mac.inc
  10.     include  common.inc
  11. .list
  12. ;----------------------------------------------------------------------------
  13.     extrn    error_handler2:far
  14.     extrn    one_beep:far
  15.     extrn    stdout_string:far
  16.     extrn    stdout_crlf:far
  17.     extrn    key_read:far
  18.  
  19.     extrn    bar_hotkey_color:byte
  20.     extrn    err_asciiz:byte
  21.     extrn    err_tbl_off:word
  22.     extrn    err_tbl_seg:word
  23.     extrn    error_number:byte
  24.     extrn    error_flags:byte
  25.     extrn    entry_seg:word
  26.     extrn    entry_bp:word    
  27.     extrn    err_tbl_off:word
  28.     extrn    err_tbl_seg:word
  29. comment 
  30. ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(  ERROR  )
  31. ERROR_PRIME2 - setup error handler with additional error information
  32. ;
  33. ; inputs:  ds:bp = table of additional errors used by ERROR_TABLE_HANDLER
  34. ;
  35. ; output:  none
  36. ;
  37. ;* * * * * * * * * * * * * *
  38. 
  39.     PUBLIC    ERROR_PRIME2
  40. ERROR_PRIME2    proc    far
  41.     mov    cs:err_tbl_seg,ds
  42.     mov    cs:err_tbl_off,bp
  43.     retf
  44. ERROR_PRIME2    endp    
  45. ;    
  46. comment 
  47. ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(  ERROR  )
  48. ERROR_TABLE_HANDLER2 - handle errors described in table provided by programmer
  49. ;
  50. ; inputs:      al = error number
  51. ;           ah - flags 80h = fatal_error, abort after display
  52. ;                         40h = non_fatal1, return to retry
  53. ;                         20h = non_fatal2, return after any key press
  54. ;                         10h = fatal_return, fatal error but return after key
  55. ;                         08h = spare
  56. ;              04h = spare
  57. ;              02h = spare
  58. ;              01h = spare
  59. ;
  60. ; output:  none
  61. ;
  62. ; Note: ERROR_PRIME2 must be caller before this routine is accessed
  63. ;* * * * * * * * * * * * * *
  64. 
  65.     public    error_table_HANDLER2
  66. error_table_HANDLER2    proc    far
  67.     apush    ax,bx,si,ds
  68.     sub    bx,bx
  69.     mov    bl,al
  70.     shl    bx,1
  71.     sub    bx,2
  72.     add    bx,cs:err_tbl_off     ;adjust of errors starting with 1
  73.     mov    ds,cs:err_tbl_seg
  74.     mov    si,word ptr [bx]     ;get ptr to error msg
  75.     call    one_beep
  76.     call    stdout_crlf
  77.     call    stdout_string
  78.     call    key_read
  79.     apop    ds,si,bx,ax
  80.     retf    
  81. error_table_HANDLER2    endp
  82.  
  83. LIBSEG    ENDS
  84.     end
  85.