1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-13 15:27:28 +00:00
PDP-10.its/bin/librm4/str.fbin

74 lines
2.8 KiB
Plaintext

'<PCODE "2STR">
<PACKAGE "STR">
<ENTRY BACKS FIRST-OF LEX EXTRACT SUBSTR SUBSNC UPPERCASE RSHIFT SIXTOS STRTOX>
<SETG LEX %<RSUBR!- '[ %<PCODE!- "2STR" 0> LEX #DECL ("VALUE" <LIST [REST
STRING]> STRING FIX STRING) STR (STRING) N (FIX) BREAKS ()]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,LEX PGLUE ![1073479680!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,LEX GLUE ![30318279792 -3288329964 5372903424
5243136 67175425 1140850688!]>>
<SETG SIXTOS %<RSUBR!- '[ %<PCODE!- "2STR" 107> SIXTOS #DECL ("VALUE" STRING <
PRIMTYPE WORD>)]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,SIXTOS PGLUE ![0!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,SIXTOS GLUE '![1048576!]>>
<SETG STRTOX %<RSUBR!- '[ %<PCODE!- "2STR" 120> STRTOX #DECL ("VALUE" FIX
STRING)]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,STRTOX PGLUE ![0!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,STRTOX GLUE '![83887104!]>>
<SETG SUBSTR %<RSUBR!- '[ %<PCODE!- "2STR" 139> SUBSTR #DECL ("VALUE" <OR
STRING FALSE> STRING STRING "OPTIONAL" FIX)]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,SUBSTR PGLUE ![0!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,SUBSTR GLUE '![83887360 1078984788 18253942784
1073741824!]>>
<SETG SUBSNC %<RSUBR!- '[ %<PCODE!- "2STR" 203> SUBSNC #DECL ("VALUE" <OR
STRING FALSE> STRING STRING "OPTIONAL" FIX)]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,SUBSNC PGLUE ![0!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,SUBSNC GLUE '![1158676480 4315938816 353435648
21238849 268435456 786444 524297!]>>
<SETG EXTRACT %<RSUBR!- '[ %<PCODE!- "2STR" 287> EXTRACT #DECL ("VALUE" <OR
STRING FALSE> STRING "OPTIONAL" <OR FIX STRING FALSE> FIX)
BAD-ARGS-TO-EXTRACT!-ERRORS]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,EXTRACT PGLUE ![805306368!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,EXTRACT GLUE '![289489920 4474128 71582788
1115376 16777216 786473 524313 262158!]>>
<SETG RSHIFT %<RSUBR!- '[ %<PCODE!- "2STR" 376> RSHIFT #DECL ("VALUE" STRING
STRING FIX) ARG-OUT-OF-RANGE]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,RSHIFT PGLUE ![805306368!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,RSHIFT GLUE '![1342177344 65548 0!]>>
<SETG BACKS %<RSUBR!- '[ %<PCODE!- "2STR" 416> BACKS #DECL ("VALUE" <OR STRING
FALSE> STRING STRING "OPTIONAL" FIX)]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,BACKS PGLUE ![0!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,BACKS GLUE '![4362403840 279552 21743337728!]>
>
<SETG FIRST-OF %<RSUBR!- '[ %<PCODE!- "2STR" 473> FIRST-OF #DECL ("VALUE" <OR
STRING FALSE> STRING STRING "OPTIONAL" FIX)]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,FIRST-OF PGLUE ![0!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,FIRST-OF GLUE '![268452864 5435822144!]>>
<SETG UPPERCASE %<RSUBR!- '[ %<PCODE!- "2STR" 511> UPPERCASE #DECL ("VALUE"
STRING STRING "OPTIONAL" FIX)]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,UPPERCASE PGLUE ![0!]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,UPPERCASE GLUE '![272647184 0!]>>
<ENDPACKAGE>