#SAMPLE2.RAT # SHOWS EXAMPLES OF FANCY MACROS # DEFINE (EOS=0) #MARK END OF A STRING MACRO (GETS,CALL STRPUT(5,$);IQ=STRGET(5,$,19);$(IQ+1)=EOS) #GET A STRING MACRO (PUTS,CALL STRPUT(5,$)) #PRINT A STRING MACRO (GETN,J=SCOPY("$",STR,9,J);WRITE(5,3)STR;READ(5,4)$) #GET A NUMBER MACRO (PUTN,WRITE(5,4)$) #PRINT A NUMBER DEFINE (CHARACTER,BYTE) # CHARACTER STR1(20), STR2(20), STR3(20), STR4(30), STR5(20), STR(10) INTEGER SCOPY, I, J, ERROR, LEN, N, SLEN, ISLEN, SREPT INTEGER SSWAP, SMIDV, SINSRT, STRGET # REPEAT [ GETS(STR1) #GET 3 STRINGS FROM OPERATOR GETS(STR2) GETS(STR3) I=SMIDV(STR1, STR2, STR3, STR4, 29, ERROR) #ADD TOGETHER INTO STR4 PUTN(I) #PRINT NUMBER OF CHARACTERS PUTS(STR4) #PRNT RESULTANT STRING ] 4 FORMAT (I5) 3 FORMAT (1X,10A1) 100 STOP END