home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol142 / fogasm.asm < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  870 b   |  59 lines

  1.     public    strip, vowel, sl
  2.  
  3. ;    entry    p1 -> char to be stripped
  4. ;
  5. strip:
  6.     call    getp1
  7.     mov    a,m        ; get char
  8.     ani    7fh        ; strip msb
  9.     cpi    'a'        ; and convert to upper case
  10.     jc    st1
  11.     cpi    'z'+1
  12.     jnc    st1
  13.     ani    01011111b
  14. st1:
  15.     mov    m,a        ; restore character
  16.     ret
  17. ;
  18. ;    entry:    p1 -> character to be compared with vowels
  19. ;
  20. vowel:
  21.     call    getp1
  22.     mov    a,m        ; get char
  23.     irp    char,<'A','E','I','O','U'>
  24.     cpi    char
  25.     jz    rtrue
  26.     endm
  27.     xra    a        ; return zero
  28.     ret
  29. rtrue:    mvi    a,80h        ; return '1'b to PL/I
  30.     ret
  31. ;
  32. ; sl moves a four character array left one character
  33. ;     entry:    p1 -> first character of array char (4)
  34. sl:
  35.     call    getp1
  36.     mov    e,l        ; copy address into de
  37.     mov    d,h
  38.     inx    h
  39.     mov    a,m        ; get character
  40.     stax    d        ; put it back but down one
  41.     inx    h
  42.     inx    d
  43.     mov    a,m
  44.     stax    d
  45.     inx    h
  46.     inx    d
  47.     mov    a,m
  48.     stax    d
  49.     ret
  50.  
  51. getp1:
  52.     mov    e,m        ; get address of parameter
  53.     inx    h
  54.     mov    d,m
  55.     xchg            ; address now in hl
  56.     ret
  57.  
  58.     end
  59.