Annotation of researchv10no/cmd/spitbol/gpmbif.gpm, revision 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.