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

  1.  
  2. *    Maxon C++:
  3. *     Library-Modul "string_ulc"
  4. *    Jens Gelhar 21.12.92, 16.04.94
  5.  
  6.     xdef    _stricmp,stricmp__PCcPCc
  7.     xdef    _strlwr,strlwr__Pc
  8.     xdef    _strupr,strupr__Pc
  9.  
  10. _stricmp:
  11. stricmp__PCcPCc:
  12.     movem.l 4(a7),a0/a1
  13.     moveq    #0,d0
  14. .loop    move.b    (a1)+,d0
  15.     bsr.b    UpD0
  16.     move.b    d0,d1
  17.     move.b    (a0)+,d0
  18.     bsr.b    UpD0
  19.     cmp.b    d1,d0
  20.     bhi.b    .Hi
  21.     blo.b    .Lo
  22.     tst.b    d0
  23.     bne.b    .loop
  24.     rts
  25. .Hi    moveq    #1,d0
  26.     rts
  27. .Lo    moveq    #-1,d0
  28.     rts
  29.  
  30. _strlwr:
  31. strlwr__Pc:
  32.     move.l    4(a7),a0
  33. .loop    move.b    (a0),d0
  34.     beq.b    end1
  35.     bsr.b    DnD0
  36.     move.b    d0,(a0)+
  37.     bra.b    .loop
  38. end1    move.l 4(a7),d0
  39.     rts
  40.  
  41. _strupr:
  42. strupr__Pc:
  43.     move.l    4(a7),a0
  44. .loop    move.b    (a0),d0
  45.     beq.b    end1
  46.     bsr.b    UpD0
  47.     move.b    d0,(a0)+
  48.     bra.b    .loop
  49.  
  50. UpD0:    cmp.b    #'a',d0
  51.     blo.b    .0
  52.     cmp.b    #'z',d0
  53.     bls.b    .add
  54.     cmp.b    #$E0,d0
  55.     blo.b    .0
  56.     cmp.b    #$FF,d0
  57.     bhs.b    .0
  58.     cmp.b    #$F7,d0
  59.     beq.b    .0
  60. .add    add.b    #'A'-'a',d0
  61. .0    rts
  62.  
  63. DnD0:    cmp.b    #'A',d0
  64.     blo.b    .0
  65.     cmp.b    #'Z',d0
  66.     bls.b    .add
  67.     cmp.b    #$C0,d0
  68.     blo.b    .0
  69.     cmp.b    #$DF,d0
  70.     bhs.b    .0
  71.     cmp.b    #$D7,d0
  72.     beq.b    .0
  73. .add    add.b    #'a'-'A',d0
  74. .0    rts
  75.  
  76.     end
  77.