Annotation of researchv10dc/dist/man/v4/manx/salloc.3, revision 1.1.1.1

1.1       root        1: .pa 1
                      2: .he 'SALLOC (III)'6/15/72'SALLOC (III)'
                      3: .ti 0
                      4: .nf
                      5: NAME           salloc -- string manipulation routines
                      6: .fi
                      7: .sp
                      8: .ti 0
                      9: .nf
                     10: SYNOPSIS       (get size in r0)
                     11: .br
                     12: jsr    pc,allocate
                     13: .sp
                     14: (get source pointer in r0,
                     15: destination pointer in r1)
                     16: jsr    pc,copy
                     17: .sp
                     18: jsr    pc,wc
                     19: .sp
                     20: (all following instructions assume r1 contains pointer)
                     21: 
                     22: jsr    pc,release
                     23: 
                     24: (get character in r0)
                     25: jsr    pc,putchar
                     26: .sp
                     27: jsr    pc,lookchar
                     28: (character in r0)
                     29: 
                     30: jsr    pc,getchar
                     31: (character in r0)
                     32: 
                     33: (get character in r0)
                     34: jsr    pc,alterchar
                     35: 
                     36: (get position in r0)
                     37: jsr    pc,seekchar
                     38: 
                     39: jsr    pc,backspace
                     40: (character in r0)
                     41: 
                     42: (get word in r0)
                     43: jsr    pc,putword
                     44: 
                     45: jsr    pc,lookword
                     46: (word in r0)
                     47: 
                     48: jsr    pc,getword
                     49: (word in r0)
                     50: 
                     51: (get word in r0)
                     52: jsr    pc,alterword
                     53: 
                     54: jsr    pc,backword
                     55: (word in r0)
                     56: 
                     57: jsr    pc,length
                     58: (length in r0)
                     59: 
                     60: jsr    pc,position
                     61: (position in r0)
                     62: 
                     63: jsr    pc,rewind
                     64: 
                     65: jsr    pc,create
                     66: 
                     67: jsr    pc,fsfile
                     68: 
                     69: jsr    pc,zero
                     70: 
                     71: .fi
                     72: .ti 0
                     73: DESCRIPTION    This package is a complete set of routines
                     74: for dealing with almost arbitrary
                     75: length strings of words and bytes.
                     76: The strings are stored on a disk file, so the sum of
                     77: their lengths can be considerably larger than
                     78: the available core.
                     79: 
                     80: For each string there is a header of four words, namely
                     81: a write pointer, a read pointer and pointers to the beginning and end of
                     82: the block containing the string.
                     83: Initially the read and write pointers point to the beginning of the string.
                     84: All routines that refer to a string require the header address in r1.
                     85: Unless the string is destroyed by the call,
                     86: upon return r1 will point to the same string, although
                     87: the string may have grown to the extent that it had to be
                     88: be moved.
                     89: 
                     90: .ul
                     91: allocate
                     92: obtains a string of the requested size and returns
                     93: a pointer to its header in r1.
                     94: .sp
                     95: release_______ releases a string back to free storage.
                     96: .sp
                     97: putchar_______ and putword_______ write a byte or word respectively into the string
                     98: and advance the write pointer.
                     99: 
                    100: .ul
                    101: lookchar
                    102: and
                    103: .ul
                    104: lookword
                    105: read
                    106: a byte or word respectively from the string but do not advance the read pointer.
                    107: 
                    108: getchar_______ and getword_______ read a byte or word respectively from the string and advance the read pointer.
                    109: 
                    110: alterchar_________ and alterword_________ write a byte or word respectively into the string where the read pointer
                    111: is pointing and advance the read pointer.
                    112: 
                    113: backspace_________ and backword________ read the last byte or word written and decrement the write pointer.
                    114: 
                    115: All write operations will automatically get a larger block if the current block is exceeded.
                    116: All read operations return with the error bit set if attempting to read beyond the write pointer.
                    117: .sp
                    118: seekchar________ moves the read pointer to the offset specified in r0.
                    119: 
                    120: length______ returns the current length of the string (beginning pointer to write pointer) in r0.
                    121: 
                    122: position________ returns the current offset of the read pointer in r0.
                    123: 
                    124: rewind______ moves the read pointer to the beginning of the string.
                    125: 
                    126: create______ returns the read and write pointers to the beginning of the string.
                    127: 
                    128: fsfile______ moves the read pointer to the current position of the write pointer.
                    129: 
                    130: zero____ zeros the whole string and sets the write pointer to the beginning of the string.
                    131: 
                    132: copy____ copies the string whose header pointer is in r0 to the string whose header pointer is in
                    133: r1.
                    134: Care should be taken in using the copy instruction since r1 will be changed if the contents of the source string
                    135: is bigger than the destination string.
                    136: 
                    137: wc__ forces the contents of the internal buffers and the header blocks to be written on disc.
                    138: .sp
                    139: .ti 0
                    140: FILES          The allocator is in
                    141: /lib/libs.a;
                    142: the -s__ option to ld__ will link edit
                    143: references to the allocator.
                    144: 
                    145: alloc.d is the temporary file used to contain
                    146: the strings.
                    147: 
                    148: .ti 0
                    149: SEE ALSO       --
                    150: .sp
                    151: .ti 0
                    152: DIAGNOSTICS    "error in copy" if a disk write error occurs during the execution of the copy instruction.
                    153: "error in allocator" if any routine is called with a bad header pointer.
                    154: "Cannot open output file" if file alloc.d cannot be created or opened.
                    155: "Out of space" if there's no available block of the requested size or no headers available for a new block.
                    156: .sp
                    157: .fi
                    158: .in16
                    159: .ti 0
                    160: BUGS           --

unix.superglobalmegacorp.com

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