public strip, vowel, sl ; entry p1 -> char to be stripped ; strip: call getp1 mov a,m ; get char ani 7fh ; strip msb cpi 'a' ; and convert to upper case jc st1 cpi 'z'+1 jnc st1 ani 01011111b st1: mov m,a ; restore character ret ; ; entry: p1 -> character to be compared with vowels ; vowel: call getp1 mov a,m ; get char irp char,<'A','E','I','O','U'> cpi char jz rtrue endm xra a ; return zero ret rtrue: mvi a,80h ; return '1'b to PL/I ret ; ; sl moves a four character array left one character ; entry: p1 -> first character of array char (4) sl: call getp1 mov e,l ; copy address into de mov d,h inx h mov a,m ; get character stax d ; put it back but down one inx h inx d mov a,m stax d inx h inx d mov a,m stax d ret getp1: mov e,m ; get address of parameter inx h mov d,m xchg ; address now in hl ret end