;*********************************************************************
;
;       Alpha Base Subroutine : ABUTIL.SBR
;       Version 4.8B(1)  Hash: 066-146-331-704
;
;
;
;   --------------------------------------------------------------------
;       MAP1 PPN,S,7            ;xxx,xxx
;       MAP1 DEVICE,S,5         ;DSKxx
;       MAP1 RETURN,F,6
;
;       XCALL ABUTIL,1,PPN,DEVICE,RETURN
;
;       Will create the ppn specified in PPN on the device specified
;       in DEVICE.  RETURN will contain the following on return:
;
;        0 - add was sucessful
;       -1 -
;       -2 -
;        1 - You are not logged into 1,2
;        2 - The specified ppn already exists
;        3 - the specified ppn is not valid
;   --------------------------------------------------------------------
;       MAP1 PPN,S,7            ;xxx,xxx
;       MAP1 DEVICE,S,5         ;DSKxx
;       MAP1 RETURN,F,6
;
;       XCALL ABUTIL,2,PPN,DEVICE,RETURN
;
;       Will try to locate the PPN on the device specified in DEVICE.
;       If successful you will be logged to the device:ppn specified.
;       RETURN will contain the following on return:
;
;        0 - PPn was located sucessfully
;       -1 -
;       -2 -
;        1 - The specified PPn was not found in the MFD
;   --------------------------------------------------------------------
;       MAP1 PPN,S,7            ;xxx,xxx
;       MAP1 DEVICE,S,5         ;DSKxx
;       MAP1 RETURN,F,6
;
;       XCALL ABUTIL,3,PPN,DEVICE,RETURN
;
;       Will delete the specified PPN on the device specified in DEVICE.
;       RETURN will contain the following on return:
;
;        0 - PPn was deleted sucessfully
;       -1 -
;       -2 -
;        1 - you are not logged into 1,2
;        2 - The specified ppn already exists
;        3 - the specified ppn is not valid
;        4 - the specified ppn was not found in the MFD
;        5 - the specified ppn contains files
;   --------------------------------------------------------------------
;       MAP1 PPN,S,7            ;xxx,xxx
;       MAP1 DEVICE,S,5         ;DSKxx
;       MAP1 RETURN,F,6
;
;       XCALL ABUTIL,4,PPN,DEVICE,RETURN
;
;       Will delete all of the files in the specifid PPN on the specified
;       DEVICE.  RETURN will contain the following on return:
;
;        0 - PPn was deleted sucessfully
;       -1 -
;       -2 -
;        1 - you are not logged into 1,2
;        2 - The specified ppn already exists
;        3 - the specified ppn is not valid
;        4 - the specified ppn was not found in the MFD
;        5 - the specified ppn contains files
;   --------------------------------------------------------------------
;       MAP1 SOURCE,S,25
;       MAP1 DESTIN,S,25
;
;       XCALL ABUTIL,5,SOURCE,DESTIN
;
;       will copy sequential file from source filespec to destination
;       filespec.  Both source and destination dsk:ppn's must exist
;       or you will be left in 1,2.  Source and destin are string
;       variables that contain a filespec.
;   --------------------------------------------------------------------
;       MAP1 APPID,S,2
;       MAP1 SYSNO,B,2
;
;       XCALL ABUTIL,6,APPID,SYSNO
;
;       Will set the specified system number and application into
;       GINDTA.SV  This is essentially an Alpha Base LOG.
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : ALMUTL.SBR
;       Version: 4.8B(4)  Hash: 234-340-061-446
;
;       USEAGE: XCALL ALMUTL,VARIABLE
;
;       Returns a list of User Id's that represents Alpha Base
;               users logged into system.  An asterisk preceeds
;               the user id if the user is at an Alpha Base menu.
;
;       VARIABLE should be an unmapped variable containing 8 chars
;               for each job on the system.
;
;       MAP1 UTL'REC
;          MAP2 USR'REC(X)              !where x is at least number of
;                                       ! jobs on system
;             MAP3 UTL'FLG,S,1          !will contain "*" if at menu
;             MAP3 UTL'USR,S,6          !will contain user id
;
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : AWCONV.SBR
;       Version: 1.0(100) Hash: 262-166-646-367
;
;       USEAGE: XCALL AWCONV,STRING
;
;       I beleive this routine will input a line from a previously
;       opened alphaWRITE file and return the line to the basic
;       program in the variable STRING.
;
;       It terminates the input when it encounters a CR in the input file.
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : BITIT.SBR
;       Version 1.0(102)  Hash: 676-255-722-003
;
;       USEAGE: XCALL BITIT,BYTE,STRING
;
;               BYTE is mapped B,1
;               STRING is mapped S,8
;
;       Routine returns string of "Y"'s and "N"'s representing
;       the bit condition of each bit in the binary variable
;       passed to it.  STRING[X,X] = BIT X where X = 1 to 8
;
;       For Example: BYTE=00000011 would return "YYNNNNNN"
;                    BYTE=00110011 would return "YYNNYYNN"
;
;*********************************************************************
;*********************************************************************
;
;       Double-D Software Services      Dave Drake
;       4924 Chantilly                  (702) 438-2173
;       Las Vegas, Nv. 89110
;
;       USEAGE: XCALL BITOT,STRING,BYTE
;
;               BYTE is mapped B,1
;               STRING is mapped S,8
;
;       Routine returns single byte variable with bits set in
;       the byte corresponding to the presence of a "Y" or "N"
;       in the string passed to it.
;               STRING[X,X] = BIT X where X = 1 to 8
;
;       For Example: STRING "YYNNNNNN" would return BYTE=00000011
;                    STRING "YYNNYYNN" would return BYTE=00110011
;
;       NOTE: This is the complement to BITIT.SBR
;
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : DBDMTC.SBR
;       Version: 7.7A   Hash: 473-611-702-331
;
;*********************************************************************
; DBDMTC.SBR    AlphaBASE Routine
;
;       1) log to new device/ppn from within a program.
;               ppn must exist on device specified
;
;       2) log back to original device/ppn
;
;       3) copy contents of one file to another (expand/contract)
;               *) will copy smaller file to larger file
;               *) will copy larger file to smaller file (excess will
;                       be lost).
;
;               *) normally deletes old source file and renames destin
;                       file to source file
;               *) optionally will return with both files intact
;---------------------------------------------------------------------
;---------------------------------------------------------------------
; 1)    DBDMTC.SBR - Log to another account
;---------------------------------------------------------------------
;               MAP1    WRK,X,350               ! used for DDBs
;               MAP1    LOG
;                       MAP2    LGDSK,S,6
;                       MAP2    LGERR,S,1
;                       MAP2    LGPPN,S,9
;
;               LGDSK = "DSK0:X"                !DEVICE (pad with X)
;               LGPPN = "[10,1]"                !PPN (Include the brackets)
;
;               XCALL DBDMTC,WRK,LOG            ! Actually change accounts
;
;               IF LGERR <> "X" THEN FAILURE    ! Test for failure
;
;               LGERR = "D" = no MFD on Device
;               LGERR = "E" = PPN not found on specified device
;---------------------------------------------------------------------
; 2)    DBDMTC.SBR - Log back to original account - must have been
;                       called previously.
;---------------------------------------------------------------------
;               MAP1    WRK,X,350               ! used for DDBs
;
;               XCALL DBDMTC,WRK                ! Actually change accounts
;
;---------------------------------------------------------------------
; 3)    DBDMTC.SBR - Copy one random file to another
;
;                       assumes both files exist!!
;---------------------------------------------------------------------
;               MAP1    WRK,X,350               ! used for DDBs
;               MAP1    FILE1,S,24              ! for File1 Path
;               MAP1    FILE2,S,24              ! for File2 Path
;-------------------------------------------------------------------
; Set file1 and file2 strings (ext is optional - file1 assumes DBD
;       file2 assumes TMP).
;-------------------------------------------------------------------
;               FILE1 = "DSKn:filnam.ext[nnn,nnn]
;               FILE2 = "DSKn:filnam.ext[nnn,nnn]
;------------------------------------------------
; Copy file1 to file2 (will copy to file2 smaller
;       than file1 - remaining file1 will be lost)
;       then deletes file1 and renames file2 to
;       file1.
;
; 4th arg (optional) will return with both file1
;       and file2 intact. (no delete or rename).
;------------------------------------------------
;               XCALL DBDMTC,WRK,FILE1,FILE2,{0}
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;*********************************************************************
;
;       Alpha Base Subroutine : DCALC.SBR
;       Version: 1.0(2)   Hash: 306-254-752-217
;
;       XCALL DCALC,FRM,TOX,RES{,CHAR}
;
;       FRM,B,3                 !from date
;       TOX,B,3                 ! to date
;       RES,B,2                 ! number of days between dates
;       CHAR,S,1 (?<=>)         ! Date Relationship
;                               !  (>)GT (<)LT (=)EQ, (?)bad date
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : GETJOB.SBR
;       Version: 1.1(2)   Hash: 237-504-276-354
;
;       Retreive your Job Name and Job Number
;
;               MAP1    JOBNAM,S,6
;               MAP1    JOBNUM,B,2
;
;               XCALL GETJOB,JOBNAM,JOBNUM
;
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : GETTRM.SBR
;       Version: 4.8(1)   Hash: 514-007-764-017
;
;       Retreive your Terminal Driver Name and optionally Job Name
;
;               MAP1    DVRNAM,S,6
;               MAP1    JOBNAM,S,6
;
;               XCALL GETTRM,DVRNAM{,JOBNAM}
;
;               DVRNAM - RETURNS WITH TERMINAL DRIVER NAME
;               JOBNAM - RETURNS WITH JOB NAME
;
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : MOVDTA.SBR
;       Version: 1.0     Hash: 503-765-605-637
;
;       USEAGE: XCALL MOVDTA,SOURCE,OFFSET,COUNT,DESTINATION
;
;       SOURCE = SOURCE DATA VARIABLE (ANY TYPE)
;       OFFSET = HOW MANY BYTES INTO SOURCE TO START TRANSFER
;       COUNT  = HOW MANY BYTES TO TRANSFER
;       DESTIN = DESTINATION DATA VARIABLE (ANY TYPE)
;
;       OFFSET AND COUNT SHOULD BE MAPPED B,2
;
;
;
;
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : ONECHR.SBR
;       Version: 1.1    Hash: 105-734-167-552
;
;       USEAGE: XCALL ONECHR,CHAR
;
;       CHAR IS MAPPED S,1
;
;
;       RETREIVES ONE CHAR FROM INPUT BUFFER
;               WAITS FOR INPUT IF BUFFER EMPTY
;
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : STATUS.SBR
;       Version: 4.8B(4)    Hash: 432-143-501-673
;
;       XCALL STATUS,CHAR{,TIME}
;
;       CHAR=STRING1 OR BIN1
;       TIME=FLOATING POINT NUMBER OF SECONDS TO TRY FOR CHAR
;
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : SYSCHG.SBR
;       Version 4.8B  Hash: 372-210-653-535
;
;       XCALL SYSCHG,SYSNO
;
;       SYSNO=STRING OR FLOATING OR BIN2
;
;       Changes system numbers for user (essentially log to new system)
;*********************************************************************
;*********************************************************************
;
;       Alpha Base Subroutine : USR.SBR
;       Version : 1.0(102)  Hash: 466-313-576-353
;
;
;       GETTING YOUR CURRENT LOGIN INFORMATION
;
;               MAP1    PPN,S,7
;               MAP1    DRV,S,2         !drive name (DSK, Etc.)
;               MAP1    DEV,S,3         !Device number
;               MAP1    NAM,S,6         !Job name
;
;               XCALL USR,PPN,DRV,DEV,NAM
;
;               You may call this routine with from 1 to 4 arguments
;                   but the arguments must be in the order shown
;                   that is, if you want DEV, you must ask for PPN and DRV
;
;*********************************************************************
;*********************************************************************
;
;       Double-D Software Services      Dave Drake
;       4924 Chantilly                  (702) 438-2173
;       Las Vegas, Nv. 89110
;
;*********************************************************************
These documentation files are what I have been able to decipher from
looking at AlphaBase's routines.  Most of this information is undocumented.
I hope that you find it useful.

                               Dave Drake      10/02/87