home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC6.DMS / in.adf / libsrc.lha / LIBSRC / errstr.asm < prev    next >
Encoding:
Assembly Source File  |  1994-04-08  |  2.6 KB  |  126 lines

  1.  
  2. * Maxon C++:
  3. * Bibliotheksmodul "errstr"
  4. * Jens Gelhar 19.03.93
  5.  
  6.     xdef    _strerror,strerror__i
  7.     xdef    _perror,perror__PCc
  8.  
  9.     xref    _std__err,_errno,__Writefile
  10.  
  11. _perror:
  12. perror__PCc:
  13.     movem.l    d2/d3/a2/a6,-(a7)
  14.     move.l    4*4+4(a7),a1
  15.     bsr.b    .put
  16.     lea    kolonStr(pc),a1
  17.     bsr.b    .put
  18.     move.l    _errno,-(a7)
  19.     bsr.b    _strerror
  20.     addq.l    #4,a7
  21.     move.l    d0,a1
  22.     bsr.b    .put
  23.     lea    LFStr(pc),a1
  24.     bsr.b    .put
  25.     movem.l    (a7)+,d2/d3/a2/a6
  26.     rts
  27.  
  28. .put    ; String a1
  29.     move.l    a1,d2
  30.     moveq    #-1,d3
  31. .cnt    addq.l    #1,d3
  32.     tst.b    (a1)+
  33.     bne.b    .cnt
  34.     lea    _std__err,a0
  35.     jmp    __Writefile
  36.  
  37. _strerror:
  38. strerror__i:
  39.     move.l a0,-(a7)
  40.     move.l 8(a7),d0
  41.     cmp.w #1000,d0
  42.     beq.b err1000
  43.     cmp.w #1001,d0
  44.     beq.b err1001
  45.     cmp.w #1002,d0
  46.     beq.b err1002
  47.     cmp.w #400,d0
  48.     bhs.b noerr
  49.     lea errstr(pc),a0
  50. errL:    cmp.b (a0)+,d0
  51.     beq.b errret
  52. err1:    tst.b (a0)+
  53.     bne.b err1
  54.     tst.b (a0)
  55.     bne.b errL
  56.     bra.b noerr
  57. err1000:    lea err1000str(pc),a0
  58.     bra.b errret
  59. err1001:    lea err1001str(pc),a0
  60.     bra.b errret
  61. err1002:    lea err1002str(pc),a0
  62.     bra.b errret
  63. noerr:    lea noerrstr(pc),a0
  64. errret:    move.l a0,d0
  65.     move.l (a7)+,a0
  66.     rts
  67.  
  68. err1000str:    dc.b 'Out of range',0
  69. err1001str:    dc.b 'Not a number',0
  70. err1002str:    dc.b 'Out of memory'
  71. noerrstr:    dc.b 0
  72.  
  73. errstr:    dc.b 103,'No free store',0
  74.     dc.b 105,'Task table full',0
  75.     dc.b 114,'Bad template',0
  76.     dc.b 115,'Bad number',0
  77.     dc.b 116,'Required arg missing',0
  78.     dc.b 117,'Key needs arg',0
  79.     dc.b 118,'Too many args',0
  80.     dc.b 119,'Unmatched quotes',0
  81.     dc.b 120,'Line too long',0
  82.     dc.b 121,'File not object',0
  83.     dc.b 122,'Invalid resident library',0
  84.     dc.b 201,'No default dir',0
  85.     dc.b 202,'Object in use',0
  86.     dc.b 203,'Object exists',0
  87.     dc.b 204,'Dir not found',0
  88.     dc.b 205,'Object not found',0
  89.     dc.b 206,'Bad stream name',0
  90.     dc.b 207,'Object too large',0
  91.     dc.b 209,'Action not known',0
  92.     dc.b 210,'Invalid component name',0
  93.     dc.b 211,'Invalid lock',0
  94.     dc.b 212,'Object wrong type',0
  95.     dc.b 213,'Disk not validated',0
  96.     dc.b 214,'Disk write protected',0
  97.     dc.b 215,'Rename across devices',0
  98.     dc.b 216,'Directory not empty',0
  99.     dc.b 217,'Too many levels',0
  100.     dc.b 218,'Device not mounted',0
  101.     dc.b 219,'Seek error',0
  102.     dc.b 220,'Comment too big',0
  103.     dc.b 221,'Disk full',0
  104.     dc.b 222,'Delete protected',0
  105.     dc.b 223,'Write protected',0
  106.     dc.b 224,'Read protected',0
  107.     dc.b 225,'Not a DOS disk',0
  108.     dc.b 226,'No disk',0
  109.     dc.b 232,'No more entries',0
  110.     dc.b 233,'Is soft link',0
  111.     dc.b 234,'Object linked',0
  112.     dc.b 235,'Bad hunk',0
  113.     dc.b 240,'Record not locked',0
  114.     dc.b 241,'Lock collision',0
  115.     dc.b 242,'Lock timeout',0
  116.     dc.b 243,'Unlock error',0
  117.     dc.b 303&255,'Buffer overflow',0
  118.     dc.b 304&255,'Break',0
  119.     dc.b 305&255,'Not executable',0
  120.     dc.b 0
  121.  
  122. kolonStr: dc.b ': ',0
  123. LFStr:    dc.b '.',10,0
  124.  
  125.     end
  126.