Annotation of researchv10no/cmd/spitbol/gpmbif.gpm, revision 1.1.1.1

1.1       root        1: !
                      2: ! Built-ins for V6
                      3: !
                      4: {CODE APPEND,<AL1 AL2>}
                      5: {CODE CAPS,<REPLACE(AL1,LOWLETS,UPLETS)>}
                      6: {CODE CENTER,<?PUTBREAK(0) ?PUTCHARS((LE(T = $LINELENGTH - LSIZE(AL1),0)-
                      7:      ,DUPL(HS,T / 2)) AL1) ?PUTBREAK(0)>}
                      8: {CODE CHAR,<SUBSTR(&ALPHABET,AL1 + 1,1)>}
                      9: {CODE DATE,<SUBSTR(DATE(),1,11)>}
                     10: {CODE DBL,<OVER(AL1,AL1)>}
                     11: {CODE DISPLAY,<?(QUERY = AL1) ?(TERMINAL = )>}
                     12: {CODE DSIZE,<(LSIZE(CONVERT(MACDEF(AL1),.STRING)),LSIZE(EVAL(MACROS['D'])))>}
                     13: {CODE DUPL,<DUPL(AL1,AL2)>}
                     14: {CODE EJECT,<SUBSTR(&ALPHABET,13,1)>}
                     15: {SETQ ENDPAGE,{EJECT}}
                     16: {CODE FLUSH,<TSETSTACK[REPLACE(AL1,LOWLETS,UPLETS)] = >}
                     17: {SETQ FJ,{SET FILL}{SET JUST}}
                     18: {CODE GPMIFY,<APPLY((DIFFER(PFLG) .GPMPRINT, .GPMIFY), AL1, NULLARGS)>}
                     19: {SETQ IF,{GPMIFY <{COND {>{D 2} {D 1}<,>{D 3}<},>{D 4}<,,>{D 5}<}>}}
                     20: {SETQ IF\*,1}
                     21: {CODE INDEX,<(IDENT(AL2) 1,-
                     22:        ?(AL1 ? BREAKX(SUBSTR(AL2,1,1)) AL2 @T) (T - SIZE(AL2) + 1), 0)>}
                     23: {CODE LIN,<SET('LMG',$LMG + AL1,'T')>}
                     24: {SETQ LITERAL,{BRK}{TSET INPUT,,ENDTEXT={COND {LEQ @1},!**,,@1},-
                     25:        INFORMAT=1,FILL=1,JUST=1}}
                     26: {SETQ LOAD,{COND {LEQ @2},{TSET INPUT,@1},,-
                     27:        {TSET INPUT,@1,BEGINTEXT=!{D 2},ENDTEXT=!**}}}
                     28: {CODE LPAD,<(LE(AL2,T = LSIZE(AL1)),-
                     29:        LE(SIZE(AL[3]),1) DUPL((IDENT(AL[3]) HS, AL[3]),AL2 - T),-
                     30:        LSUBSTR(DUPL(AL[3],AL2),1,AL2 - T)) AL1>}
                     31: {SETQ NFJ,{SET FILL,1}{SET JUST,1}}
                     32: {SETQ NEWPAGE,{LS 1}{COND {GT @PAGENUM,1},-
                     33:        {LPAD PAGE~{PAGENUM},@LINELENGTH}}{LS 2}}
                     34: {SETQ OUTDENT,{BRK}{TSET.- LMG,@1}{TSET NEWLINE,{D NEWLINE}-
                     35:        <{RESTORE LMG,NEWLINE}>}}
                     36: {SETQ P,{SET LINENUM,1}}
                     37: {CODE PARA,<?PUTBREAK(1) PUTCHARS(DUPL(HS,5))>}
                     38: {CODE PREPEND,<AL2 AL1>}
                     39: {CODE QUERY,<?(QUERY = AL1) TERMINAL>}
                     40: {CODE REMDR,<REMDR(AL1,AL2)>}
                     41: {CODE REPLACE,<REPLACE(AL1,AL2,(EQ(SIZE(AL[3]),1) DUPL(AL[3],SIZE(AL2)),-
                     42:         AL[3]))>}
                     43: {SETQ RESET,{SET RMG,75}{SET LMG,10}{SET LINENUM,1}{SET PAGENUM,1}-
                     44:        {SET BIAS,0}{SET SPACING,1}{NFJ}{SET PAGELENGTH,55}-
                     45:        {SET BSLACK,0}{SET HS,~}}
                     46: {CODE RIN,<SET('RMG',$RMG - AL1,'T')>}
                     47: {CODE RPAD,<AL1 (LE(AL2,T = LSIZE(AL1)),-
                     48:        LE(SIZE(AL[3]),1) DUPL((IDENT(AL[3]) HS, AL[3]),AL2 - T),-
                     49:        LSUBSTR(DUPL(AL[3],AL2),1,AL2 - T))>}
                     50: {CODE SIZE,<LSIZE(AL1)>}
                     51: {CODE SUBSTR,<LSUBSTR(AL1,AL2,AL[3])>}
                     52: {SETQ SYSLOAD,<{LOAD SYS$LIBRARY:GPMLIB.GPM,@1}>}
                     53: {CODE T,<(GT(AL1,$LINELENGTH),LT(AL1,1),-
                     54:        (GT(AL1,T = LSIZE(LINE)),PUTBREAK(0) ?(T = 0)) -
                     55:        (LE(SIZE(AL2),1) DUPL((IDENT(AL2) HS, AL2),AL1 - (T + 1)),-
                     56:          LSUBSTR(DUPL(AL2,AL1),1,AL1 - (T + 1))))>}
                     57: {CODE UL,<(IDENT(AL1), OVER(REPLACE((IMAGES(AL[1]))[0],-
                     58:      (IDENT(AL2) REPLACE(AL1,SP,BS),REPLACE(AL1,AL2,DUPL(BS,SIZE(AL2)))),-
                     59:      DUPL('_',SIZE(AL1))),AL1))>}
                     60: {CODE +,<AL1 + AL2>}
                     61: {CODE -,<AL1 - AL2>}
                     62: {CODE *,<AL1 * AL2>}
                     63: {CODE /,<AL1 / AL2>}
                     64: {CODE ADD1,<AL1 + 1>}
                     65: {CODE SUB1,<AL1 - 1>}
                     66: 
                     67: 
                     68: 
                     69: 
                     70: 
                     71: 
                     72: 
                     73: 
                     74: 
                     75: 
                     76: 
                     77: 
                     78: 
                     79: 
                     80: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.