C ================================================= C PARSER C SUBROUTINE CHECKS THE STATUS OF A LINE C PARAMETERS: C BUFF,J AN 80 BYTE BUFFER CONTAINS J CHARACTERS C LABEL A LABEL STRING STARTS AT BUFF(LABEL) C IF THIS IS RETURNED NON-ZERO C IOPR AN OPCODE OR PSEUDO STARTS AT BUFF(IOPR) C IF THIS IS RETURNED NON-ZERO C IPARAM A PARAMETER STARTS AT BUFF(IPARAM) C IF THIS RETURNS NON ZERO C MODE IF NON ZERO, CHARACTER BUFF(MODE-1) WAS C A COMMA C C ================================================= C SUBROUTINE PARSER (BUFF,J,LABEL,IOPR,IPARAM,MODE) BYTE BUFF(80) LABEL=0 IOPR=0 MODE=0 IPARAM=0 I=1 IF (J.EQ.0) RETURN IF (BUFF(1).EQ.1H*) RETURN IF (BUFF(1).EQ.9 .OR. BUFF(1).EQ.32) GOTO 10 LABEL=1 5 IF (I.GT.J) RETURN IF (BUFF(I).EQ.9 .OR. BUFF(I).EQ.32) GOTO 10 I=I+1 GOTO 5 10 IF (I.GT.J .OR. BUFF(I).EQ.1H*) RETURN IF (BUFF(I).NE.9 .AND. BUFF(I).NE.32) GOTO 20 I=I+1 GOTO 10 20 IOPR=I 25 IF (I.GT.J .OR. BUFF(I).EQ.1H*) RETURN IF (BUFF(I).EQ.9 .OR. BUFF(I).EQ.32) GOTO 30 I=I+1 GOTO 25 30 IF (I.GT.J .OR. BUFF(I).EQ.1H*) RETURN IF (BUFF(I).NE.9 .AND. BUFF(I).NE.32) GOTO 40 I=I+1 GOTO 30 40 IPARAM=I 45 IF (I.GT.J .OR. BUFF(I).EQ.1H*) RETURN IF (BUFF(I).EQ.1H,) MODE=I+1 IF (BUFF(I).EQ.1H*) RETURN I=I+1 GOTO 45 END