! ! Built-ins for V6 ! {CODE APPEND,<AL1 AL2>} {CODE CAPS,<REPLACE(AL1,LOWLETS,UPLETS)>} {CODE CENTER,<?PUTBREAK(0) ?PUTCHARS((LE(T = $LINELENGTH - LSIZE(AL1),0)- ,DUPL(HS,T / 2)) AL1) ?PUTBREAK(0)>} {CODE CHAR,<SUBSTR(&ALPHABET,AL1 + 1,1)>} {CODE DATE,<SUBSTR(DATE(),1,11)>} {CODE DBL,<OVER(AL1,AL1)>} {CODE DISPLAY,<?(QUERY = AL1) ?(TERMINAL = )>} {CODE DSIZE,<(LSIZE(CONVERT(MACDEF(AL1),.STRING)),LSIZE(EVAL(MACROS['D'])))>} {CODE DUPL,<DUPL(AL1,AL2)>} {CODE EJECT,<SUBSTR(&ALPHABET,13,1)>} {SETQ ENDPAGE,{EJECT}} {CODE FLUSH,<TSETSTACK[REPLACE(AL1,LOWLETS,UPLETS)] = >} {SETQ FJ,{SET FILL}{SET JUST}} {CODE GPMIFY,<APPLY((DIFFER(PFLG) .GPMPRINT, .GPMIFY), AL1, NULLARGS)>} {SETQ IF,{GPMIFY <{COND {>{D 2} {D 1}<,>{D 3}<},>{D 4}<,,>{D 5}<}>}} {SETQ IF\*,1} {CODE INDEX,<(IDENT(AL2) 1,- ?(AL1 ? BREAKX(SUBSTR(AL2,1,1)) AL2 @T) (T - SIZE(AL2) + 1), 0)>} {CODE LIN,<SET('LMG',$LMG + AL1,'T')>} {SETQ LITERAL,{BRK}{TSET INPUT,,ENDTEXT={COND {LEQ @1},!**,,@1},- INFORMAT=1,FILL=1,JUST=1}} {SETQ LOAD,{COND {LEQ @2},{TSET INPUT,@1},,- {TSET INPUT,@1,BEGINTEXT=!{D 2},ENDTEXT=!**}}} {CODE LPAD,<(LE(AL2,T = LSIZE(AL1)),- LE(SIZE(AL[3]),1) DUPL((IDENT(AL[3]) HS, AL[3]),AL2 - T),- LSUBSTR(DUPL(AL[3],AL2),1,AL2 - T)) AL1>} {SETQ NFJ,{SET FILL,1}{SET JUST,1}} {SETQ NEWPAGE,{LS 1}{COND {GT @PAGENUM,1},- {LPAD PAGE~{PAGENUM},@LINELENGTH}}{LS 2}} {SETQ OUTDENT,{BRK}{TSET.- LMG,@1}{TSET NEWLINE,{D NEWLINE}- <{RESTORE LMG,NEWLINE}>}} {SETQ P,{SET LINENUM,1}} {CODE PARA,<?PUTBREAK(1) PUTCHARS(DUPL(HS,5))>} {CODE PREPEND,<AL2 AL1>} {CODE QUERY,<?(QUERY = AL1) TERMINAL>} {CODE REMDR,<REMDR(AL1,AL2)>} {CODE REPLACE,<REPLACE(AL1,AL2,(EQ(SIZE(AL[3]),1) DUPL(AL[3],SIZE(AL2)),- AL[3]))>} {SETQ RESET,{SET RMG,75}{SET LMG,10}{SET LINENUM,1}{SET PAGENUM,1}- {SET BIAS,0}{SET SPACING,1}{NFJ}{SET PAGELENGTH,55}- {SET BSLACK,0}{SET HS,~}} {CODE RIN,<SET('RMG',$RMG - AL1,'T')>} {CODE RPAD,<AL1 (LE(AL2,T = LSIZE(AL1)),- LE(SIZE(AL[3]),1) DUPL((IDENT(AL[3]) HS, AL[3]),AL2 - T),- LSUBSTR(DUPL(AL[3],AL2),1,AL2 - T))>} {CODE SIZE,<LSIZE(AL1)>} {CODE SUBSTR,<LSUBSTR(AL1,AL2,AL[3])>} {SETQ SYSLOAD,<{LOAD SYS$LIBRARY:GPMLIB.GPM,@1}>} {CODE T,<(GT(AL1,$LINELENGTH),LT(AL1,1),- (GT(AL1,T = LSIZE(LINE)),PUTBREAK(0) ?(T = 0)) - (LE(SIZE(AL2),1) DUPL((IDENT(AL2) HS, AL2),AL1 - (T + 1)),- LSUBSTR(DUPL(AL2,AL1),1,AL1 - (T + 1))))>} {CODE UL,<(IDENT(AL1), OVER(REPLACE((IMAGES(AL[1]))[0],- (IDENT(AL2) REPLACE(AL1,SP,BS),REPLACE(AL1,AL2,DUPL(BS,SIZE(AL2)))),- DUPL('_',SIZE(AL1))),AL1))>} {CODE +,<AL1 + AL2>} {CODE -,<AL1 - AL2>} {CODE *,<AL1 * AL2>} {CODE /,<AL1 / AL2>} {CODE ADD1,<AL1 + 1>} {CODE SUB1,<AL1 - 1>}