home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / nasm20b / nasm_src / header / string.h65 < prev    next >
Text File  |  1993-01-19  |  2KB  |  110 lines

  1.    .if .not .def _STRING_
  2. _STRING_ = 1
  3.  
  4. ; this is also part of STD.L65
  5.  
  6.    .if .not .def _MACROS_
  7.       .include #macros
  8.    .endif
  9.    
  10.    .macro   _STR_DO
  11.       .if %4 & @s1
  12.          jmp   *+%1+4
  13.          .byte %$1,0
  14.          DPOKE _string1,*-%1-1
  15.       .else
  16.          @DMOKE %1,_string1,%4
  17.       .endif
  18.       .if %4 & @s2
  19.          jmp   *+%2+4
  20.          .byte %$2,0
  21.          DPOKE _string2,*-%2-1
  22.       .else
  23.          @DMOKE %2,_string2,[%4 & @p2] / @p2
  24.       .endif
  25.       jsr   %3
  26.    .endm   
  27.    
  28.    .macro   STRCAT
  29. @3    .= @p1 + @p2
  30.       .if %0=3
  31. @3       .= %3
  32.       .endif
  33.       _STR_DO  %1,%2,strcat,@3
  34.    .endm
  35.  
  36.    .macro   STRCPY
  37. @3    .= @p1 + @p2
  38.       .if %0=3
  39. @3       .= %3
  40.       .endif
  41.       _STR_DO  %1,%2,strcpy,@3
  42.    .endm
  43.  
  44.    .macro   STRCMP
  45. @3    .= @p1 + @p2
  46.       .if %0=3
  47. @3       .= %3
  48.       .endif
  49.       _STR_DO  %1,%2,strcmp,@3
  50.    .endm
  51.    
  52.       
  53.    .macro   _STRN_DO
  54.       .if  %5 & @s1
  55.          jmp  *+%1+4
  56.          .byte %$1,0
  57.          DPOKE _string1,*-%1-1
  58.       .else
  59.          DMOVE %1,_string1
  60.       .endif
  61.       .if  %5 & @s2
  62.          jmp  *+%2+4
  63.          .byte %$2,0
  64.          DPOKE _string2,*-%2-1
  65.       .else
  66.          DMOVE %2,_string2
  67.       .endif
  68.       @DMOKE %3,_tmp1,[%5 & @p3] / @p3
  69.       jsr   %4
  70.    .endm   
  71.    
  72.    .macro   STRNCAT
  73. @3    .= @p1 + @p2 + @p3
  74.       .if %0=4
  75. @3       .= %4
  76.       .endif
  77.       _STRN_DO %1,%2,%3,strncat,@3
  78.    .endm
  79.    
  80.    .macro   STRNCPY
  81. @3    .= @p1 + @p2 + @p3
  82.       .if %0=4
  83. @3       .= %4
  84.       .endif
  85.       _STRN_DO %1,%2,%3,strncpy,@3
  86.    .endm
  87.  
  88.    .macro   STRNCMP
  89. @3    .= @p1 + @p2 + @p3
  90.       .if %0=4
  91. @3       .= %4
  92.       .endif
  93.       _STRN_DO %1,%2,%3,strncpy,@3
  94.    .endm
  95.    
  96.    .macro STRLEN
  97. @3    .= @p1
  98.       .if %0=2
  99. @3       .= %4
  100.       .endif
  101.       .if @3 & @s1
  102.          DPOKE _tmp1,%1
  103.       .else
  104.          @DMOKE %1,_string1,@3
  105.          jsr   strlen
  106.       .endif
  107.    .endm
  108.          
  109.    .endif
  110.