home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / ms_dos / ish / ish200s / ish200s.lzh / FILENAME.ASM < prev    next >
Assembly Source File  |  1990-03-27  |  2KB  |  99 lines

  1. ;
  2. ;        ish file converter for MS-DOS  Ver 2.00 (90/3/27)
  3. ;
  4. ;
  5. ;        Copyright (c) 1986, 1987, 1989, 1990  by  M. ishizuka
  6. ;        All rights reserved.
  7. ;
  8.  
  9.  
  10.  
  11. ;-----------------------------------------------;
  12. ;                        ;
  13. ;    check_filename                ;
  14. ;                        ;
  15. ;    INPUT :    si(filename pointer)        ;
  16. ;    OUTPUT:    NON                ;
  17. ;    ERROR :    NON                ;
  18. ;    BREAK :    flags                ;
  19. ;                        ;
  20. ;-----------------------------------------------;
  21.  
  22. check_filename:    push    ax
  23.         push    cx
  24.         push    si
  25.         mov    cx, 11d
  26. check_loop:    lodsb
  27.         cmp    al, ' '
  28.         jb    subst_char
  29.         jz    fill_space
  30.         cmp    al, '"'
  31.         jz    subst_char
  32.         cmp    al, '*'
  33.         jb    check_next
  34.         cmp    al, '-'
  35.         jb    subst_char
  36.         cmp    al, '.'
  37.         jb    check_next
  38.         cmp    al, '0'
  39.         jb    subst_char
  40.         cmp    al, ':'
  41.         jb    check_next
  42.         cmp    al, '@'
  43.         jb    subst_char
  44.         cmp    al, '['
  45.         jb    check_next
  46.         cmp    al, '^'
  47.         jb    subst_char
  48.         cmp    al, '|'
  49.         jz    subst_char
  50.         cmp    al, 7fh
  51.         jb    check_next
  52.         cmp    al, 81h
  53.         jb    subst_char
  54.         cmp    al, 0a0h
  55.         jb    check_kanji
  56.         jz    subst_char
  57.         cmp    al, 0e0h
  58.         jb    check_next
  59.         cmp    al, 0ebh
  60.         jb    check_kanji
  61. subst_char:    mov    byte ptr [si-1], '_'
  62. check_next:    loop    check_loop
  63. check_ret:    pop    si
  64.         pop    cx
  65.         pop    ax
  66.         ret
  67.  
  68. fill_space:    cmp    cl, 11d
  69.         jnz    fill_space_loop
  70.         mov    byte ptr [si-1], '_'
  71.         inc    si
  72.         dec    cl
  73. fill_space_loop:
  74.         mov    byte ptr [si-1], ' '
  75.         cmp    cl, 4
  76.         jz    check_next
  77.         loop    fill_space_loop
  78.         jmp    check_ret
  79.  
  80. check_kanji:    cmp    cl, 4
  81.         jz    subst_char
  82.         cmp    cl, 1
  83.         jz    subst_char
  84.         dec    cl
  85.         lodsb
  86.         cmp    al, '@'
  87.         jb    subst_double_char
  88.         cmp    al, '\'
  89.         jz    subst_double_char
  90.         cmp    al, '|'
  91.         jz    subst_double_char
  92.         cmp    al, 7fh
  93.         jz    subst_double_char
  94.         cmp    al, 0fdh
  95.         jb    check_next
  96. subst_double_char:
  97.         mov    word ptr [si-2], '__'
  98.         jmp    check_next
  99.