extrn .upshft tab equ 9 ; ; Get next character from line, upshifted, Z flag for a delimiter, ; carry if the character is illegal or eoln. No advance past eoln. ; Return char in a and leave de pointing to it. cy for eoln ; a,f,d,e .nextch:: ldax d inx d cpi tab jz .lastch cpi ' ' jnc .lastch dcx d; don't advance past eol/control ; " " ; Return last character, as above. Carry if invalid or eoln ; a,f .lastch:: ldax d ora a stc rz; null is a delimiter call .upshft cpi '='; and all these rz cpi '_'; DR assignment operators rz cpi '.'; field separator rz cpi ':'; du field terminator rz cpi ';'; comment area or other rz cpi '<' rz cpi '>'; Redirection chars rz cpi ','; Operand separator rz cpi '|'; Piping separator rz; ; " " ; Check white space, carry for illegals or eoln. z flag for white .qwhite:: cpi tab rz; white space is a delimiter cpi ' '; carry for any other controls rnc cmp a; also marked as delimiters with Z flag stc ret