
          PRODOS DOCUMENTATION

       WRITTEN BY: GIMLI OF MORDOR

   WRITTEN ONLY FOR THE MINES OF MORIA

---------------------------------------
     THIS INFORMATION COMES FROM THE "XDOS EXTERNAL REFERNCE MANUAL", A TECHNIC
AL MANUAL THAT COMES FROM WITHIN APPLE. IT IS SOMEWHAT DATED, SINCE IT IS TITLED
 'XDOS', BUT ALL OF THE
INFORMATION PRESENTED HERE APPLIES TO PRODOS.

THE KERNEL:
   THE XDOS KERNEL CONSISTS OF THREE COMPONENTS; THE MACHINE
LANGUAGE INTERFACE (MLI), THE BLOCK FILE MANAGER (BFM), AND
DEVICE DRIVERS. HERE ARE SOME OF THE CAPABILITIES OF THE XDOS
KERNEL:
     *  SUB DIRECTORIES, SELF-EXTENDING AS NEEDED.
     *  NON-DIRECTORY FILE STRUCTURE IS B-REE INDEX.
     *  UP TO 32 MEGABYTES PER VOLUME.
     *  UP TO 16 MEGABYTES PER FILE.
     *  UP TO 32 FILE IDENTIFICATION CODES.
     *  UP TO 8 FILES MAY BE OPENED AT ONE TIME.
     *  DEFINED, SOS-LIKE MACHINE LNGUAGE INTERFACE.
     *  DEFINED INTERRUPT PROTOCOL.
     *  DIRECT READ/WRITE ACCESS TO DISKS BY BLOCK NUMBER.
     *  FILE STRUCTURES COMPATIBLE WITH APPLE III'S SOS.
     *  FAST TRANSFER RATES, READS APROX. 8K PER SECOND FROM
        DISK II.
     *  SUPPORTS ALL APPLE DISK DEVICES.

THE XDOS COMMAND INTERPRETER:
     THE XDOS CI PROVIDES THE COMMUNICATION PATH TO THE KERNEL
FOR THE BASIC PROGRAMMER. SOME OF THE FEATURES OF THE CI ARE:
     *  SYNTAX COMPATIBILITY WITH DOS 3.3.
     *  "HELLO" FILE MAY BE A BASIC OR MACHINE LANGUAGE PROGRAM,
        OR AN EXEC FILE.
     *  BASIC VARIABLES MAY BE STORED AND RESTORED TO/FROM FILES.
     *  MEMORY FOR BUFFERS IS "NEGOTIATED" WTH BASIC, THUS
        ALLOWING MORE COMPLETE USE OF MEMORY FOR FILES AND
        PROGRAMS.
     *  ASCII I/O MAY BE CHANNELED FROM/TO MACHINE LANGUAGE
        "DRIVERS".
     *  ALLOWS READ/WRITE ACCESS TO NON-TEXT FILES FROM BASIC.

THE XDOS UTILITIES:
     THE UI COMPLEMENTS THE REST OF THE XDOS SYSTEM. IT POVIDES
THE BASIC TOOLS FOR PREPARING AND ORGANIZING DISKS. THE FUNCTIONS
THAT THE UI PROVIDES ARE:
     *  VOLUME FORMATTING, ALL DEVICES.
     *  VOLUME COPYING BETWEEN TWO LIKE DEVICES.
     *  VOLUME COMPARISON, TO VERIFY THAT THEY ARE THE SAME.
     *  VOLUME INTEGRITY CHECK.
     *  FILE STRUCTURE CONVERSION FROM DOS 3.3 TO/FROM XDOS.
     *  FILE COPYING BETWEEN DISKS OR DIRECTORIES.
     *  FILE COMPARISON, TO VERIFY THAT TWO FILES ARE THE SAME.
     *  CREATING, DELETING, AND RENAMING OF FILES.
     *  WILDCARD FILENAME PROCESSING WHERE APPROPRIATE.
     *  "HELP" FACILITIES.

DUCK:
     THIS IS A UTILITY FILE ON THE PRODOS MASTER DISK, USED FOR
CONVERTING TO/FROM DOS 3.3 AND PRODOS. ITS FUNCTONING IS
OBVIOUS, AND EVEN INCLUDES INSTRUCTIONS. EXECUTE WITH THE "-DUCK"
COMMAND.

FILE TYPES:
     TYPE NAME:       ABRV:     COMMENTS:
     ----------       -----    ----------
     DIRECTORY         DR       WRITABLE ONLY BY XDOS
     XDOS KERNEL       $$       XDOS SYTEM FILE
     XDOS INTERP.      CI       AN XDOS INTERPRTER
     TEXT FILE         TX       ASCII STRINGS W/CR
     BINARY            BN       MACHINE CODE/DATA
     RELOC CODE        RC       6502 PROGRAM, RELOCATABLE
     INTEGER PROGRAM   IB       TOKEN CODES
     INTEGER VARS      IV       PACKED VARIABLE TABLE
     APPLESOFT PROG.   AS       TOKEN CODES
     APPLESOFT VARS    AV       PACKED VARIABLE TABLE
     USER DEFINED      UN       N IS 0 THRU 9; IE U0,U1,..U8,U9

PATCH NAMES:
     A PATCH NAME IS REPRESENTED BY A COLLECTION OF FILE NAMES
SEPARATED BY THE SLASH CHARACTER. THUS A PATCH NAME LOOKS
SOMETHING LIKE THIS:

                       /FN/FN/FN/FN

     THE FIRST NAME IN THIS EXAMPLE WOULD BE THE "VOLUME"
DIRECTORY, THE MIDDLE TWO NAMES WOUD BE SUBDIRECTORIES, AND THE
LAST NAME WOULD BE THE NAME OF THE PROGRAM TO ACT UPON. SEE
"APPLE /// OWNER'S GUIDE", PAGES 43 THRU 50 FO A PRACTICAL
ILLUSTRATION OF THE USE OF PATH NAMES.


XDOS INTERPRETER COMMANDS:


SAVE FN (,SN) (,DN) (,VN)
   STORES THE BASIC PROGRAM CURRENTLY IN MEMORY TO A FILE IF THE
PROGRAM IS SIGNIFICANTLY SHORTER THAN THE FILE ITIS REPLACING,
DISK SPACE UNUSED BY THE PROGRAM IS DEALLOCATED.

LOAD FN (,SN) (,DN) (,VN)
     LOADS A BASIC PROGRAM INTO MEMORY.

RUN FN (,@LINENUM) (,SN) (,DN) (,VN)
     RUNS THE BASIC PROGRAM STARTING AT LINE NUMBER LINENUM IF
THIS PARAMETER IS SPECIFIED, OTHERWISE IT RUNS THE PROGRAM FROM
THE FIRST LINE.

CHAIN FN (,@LINENUM) (,SN) (,DN) (,VN)
     CHAIN IS LIKE RUN, EXCEPT THAT ALL VARIABLES AE PRESERVED
FOR USE BY THE PROGRAM BEING CHAINED TO.

STORE FN (NOTE: ALL COMMANDS MAY BE ASSUMED TO HAVE (,SN)(,DN)
                (,VN) PARAMETERS FROM NOW ON)
     STORE PACKS ALL CURRENTLY DEFINED VARIABLES AND WRITS THEM
TO FILE (FN). THE FILE TYPE IS 'AV'. IN ORDER TO PACK APPLESOFT
VARIABLES, GARBAGE COLLECTION OF THE STRING SPACE MUST BE DONE,
WHICH MAY TAKE TIME.

RESTORE FN
     RESTORE LOADS THE FILE (FN) THAT HAS BEEN STORED, CLEARS
CURRENT VARIABLES, AND UNPACKS THE VAIABLES CONTAINED IN THE
FILE.

BSAVE FN,AN,LN/EN (,BN) (,TTYPE)
     STORES BINARY DATA OF LENGTH (LN OR EN-AN+1) BEGINNIG AT
THE ADDRESS (AN) INTO FILE (FN) STARTING AT FILE POSITION (BN).
IF THE BYTE PARAMETER IS OMITTED, THE FILE POSITION DEFAUTS TO
ZERO (B0). (EN) IS ENDING ADDRESS, WHICH MAY BE USED INSTEAD OF
LN.

BLOAD FN (,AN) (,BN) (,LN/EN) (,TTYPE)
     LOADS BINARY DATA OF LENGTH (LN OR EN-AN+1) BEGINNING AT
FILE POSITION (BN) FROM FILE (FN) INTO MEMORY STARTING AT THE
SPECIFIED ADDRESS (AN). IF NO ADDRESS PARAMETER IS PESENT, THE
FILE IS LOADED INTO MEMORY STARTING AT THE ADDESS SPECIFIED WHEN
IT WAS BSAVED.

BRUN FN (,AN) (,BN) (,LN/EN)
     A BLOAD WITH A JSR PERFORMED TO THE BEGINNING ADDRESS OF THE
FILE.

OPEN FN (,LN) (,TTYPE)
     FILE (FN) IS OPENED FOR ACCESS, A FILE BUFFER IS ALOCATED,
AND THE LOGICAL POSITION IS SET TO ZERO. THE LENGTH (LN)
PARAMETER SPECIFIED RECORD SIZE. THE FILE TYPE PAAMETER MAY BE
USED TO OPEN NON-TEXT FILES FOR READ/WRITE ACCESS. NO FILE IS
CREATED WHEN THE TYPE IS SPECIFIED; IT MUST ALREADY EXIST.

READ FN (,RN) (,FN) (,BN)
     POSITIONS FILE (FN) TO SPECIFIED RECORD, FIELD, AND BYTE.
SUBSEQUENT GET AND INPUT STATEMENTS ARE SATISFIED BY TEXT DATA
FROM THE FILE. THE READ COMMAND IS TERMINATED BY THE NEXT COMMAND
ISSUED TO XDOS. READING NON-TEXT FILES MAY PRODUCE UNEXPECTED
RESULTS DUE TO STRING HANDLING BY BASIC.

WRITE FN (,RN) (,FN) (,BN)
     POSITIONS FILE (FN) TO SPECIFIED RECORD, FIELD AND BYTE.
SUBSEQUENT PRINT STATEMENTS OUTPUT GOES TO THE FILE NON-TEXT
FILES MAY BE GENERATED WITHOUT HEZARD TO BASIC.

POSITION FN,FN
     FROM THE CURRENT FILE POSITION, (FN) FIELDS ARE READ AND
DISCARDED TO ARRIVE AT THE NEW POSITION. FOR COMPATIBLITY WITH
DOS 3.3, THE "RN" PARAMETER MAY BE USED INSTEAD OF "FN". THEY ARE
FUNCTIONALLY EQUIVALENT.

APPEND FN (,TTYPE) (,LN)
     THIS COMMAND IS LIKE THREE IN ONE. APPEND FIRST OPENS THE
FILE, POSITIONS TO THE END OF THE FILE, AND SETS WRITE (OUTPUT)
MODE.

FLUSH (FN)
     ALL DATA, INDEX, AND ALLOCATION BUFFERS ARE COPIED IF
NECESSARY) TO THE DISK. FLUSH IS INTENDED TO BE USED FOR THE
PURPOSE OF DATA/DISK INTEGRITY. FLUSH DOES EVERYTHING CLOSE DOES,
EXCEPT RELEASE BUFFERS AND FILE CONTROL BLOCK(S) TO THE SYSTEM.
THE FILE IS STILL OPEN AND ACTIVE AFTER IT IS FLUSHED. IF NO FILE
NAME IS SPECIFIED, ALL FILES ARE FLUSHED.

CLOSE (FN)
     ALL INFORMATION IS WRITTEN TO DISK IF NECESSARY, BUFFERS AND
FILE CONTROL BLOCKS ARE DE-ALLOCATED.

CREATE FN,TTYPE
     THE CREATE COMMAND IS PRIMARILY INTENDED TO BE USED TO
CREATE SUB-DIRECTORY FILES. BASIC, TEXT AND BINARY FILES ARE ALL
AUTOMATICALLY CREATED WHEN SAVE, OPEN AND BSAVE COMMANDS ARE
ISSUED. HOWEVER, FILES OF OTHER TYPES MAY BE CREATE AT THE
USER'S DISCRETION. THE NEWLY CREATED FILE WILL ALWAYS OCCUPY ONE
BLOCK ON THE DESIGNATED VOLUME. IF THE FILE IS A SUB-DIRECTORY
THE EOF WILL BE SET TO 512. THE EOF FOR OTHER TYPES WILL ALWAYS
BE SET TO ZERO.

LOCK FN
     JUST AS IN DOS 3.3.

UNLOCK FN
     JUST AS IN DOS 3.3.

DELETE FN
     JUST AS IN DOS 3.3.

RENAME FN,FN
     JUST AS IN DOS 3.3.

CATALOG (FN)
CAT     (FN)
     THESE COMMANDS ARE FUNCTIONAL EQUIVALENTS. CAT IS SIMPLY A
SHORT FORM OF THE CATALOG COMMAND. IF NO FILE NAME (FN) IS
SPECIFIED, THE ROOT DIRECTORY OF THE SPECIFIED SLOT AND DRIVE IS
OUTPUT. IF NO PARAMETERS ARE SPECIFIED, THE CURENT PREFIX
DIRECTORY IS DISPLAYED. CAT PERFORMS A 40 COLUMN CATALOG, WHILE
CATALOG DISPLAYS AN 80-COLUMN VERSION CONTAINING MORE
INFORMATION.

PREFIX (PN)
     THE PREFIX PATHNAME SPECIFIES A DIRECTORY. IF NO PARMETERS
ARE SPECIFIED, THE CURRENT PREFIX IS OUTPUT. ONCE A PREFIX IS
SET, ANY FILE WITHIN THE SPECIFIED DIRECTORY MAY BE ACCESSED BY
ITS NAME ALONE. FOR EXAMPLE, "PREFIXZ /ADISK/SUBDIR1PROGS"
ALLOWS ANY FILE IN THE SUB-SUB-DIRECTORY "PROGS" TO BE ACCESSED
IN THE SAME MANNER AS FILES THAT RESIDE IN HE 'ROOT' DIRECTORY.
IN THIS EXAMPLE THE COMPLETE PATHNAME WAS SPECIFIED. IF NO
PATHNAME WAS SPECIFIED, BUT SLOT AND DRIVE NUMBERS WERE POVIDED,
THE PATHNAME WOULD BE SET TO THE ROOT DIRECTORY NAME OF THE
DISKETTE IN THE SPECIFIED DRIVE. A NULL PREFIX MAY BE SPECIFIED
USING THE COMMAND "PREFIX /", WHERE "/" REPRESENTS THE NULL
PATHNAME. SETTING A NULL PREFIX WILL CAUSE THE SYSTEM TO RELY ON
SPECIFIED OR IMPLIED SLOT AND DRIVE VALUES FOR SUSEQUENT
COMMANDS. IN OTHER WORDS, COMMANDS ISSUED THAT DO NOT SPECIFY THE
VOLUME NAME WILL ASSUME THE VOLUME IN THE DRIVE LAST ACCESSED.
THIS CREATES THE SAME BEHAVIOR AS IN DOS 3.3.

PR#, IN#, EXEC FN (,FN)
     JUST AS IN DOS 3.3.

- FN
     THIS COMMAND MAY BE USED IN PLACE OF RUN, BRUN, AND EXEC.
THE TYPE OF FILE (FN) DETERMINES HOW THE FILE IS EXCUTED. ONLY
TYPES "IB", "AS", "BN", "TX", AND "CI" MAY BE ACCESSED BY THE "-"
COMMAND. IN THE CASE OF "CI" FILES, THE USER MAY SWICH
INTERPRETERS WITH THIS COMMAND. THIS MEANS THAT THE UTLITY
INTERPRETER MAY BE BROUGHT UP WITHOUT REBOOTING.


DOS 3.3 COMMANDS NOT SUPPORTED BY XDOS:

INIT*, MON, NOMON, INT, FP, MAXFILES, VERIFY*

     *SUPPORTED BY XDOS UTILITIES

XDOS COMMANDS NOT AVAILABLE WITH DOS 3.3:

FLUSH, STORE, RESTORE, CREATE, CAT, PREFIX

ENHANCED XDOS COMMANDS:
RUN, CHAIN, BSAVE, BLOAD, BRUN, OPEN, READ, WRITE, POSITION,
APPEND, CLOSE, CATALOG, PR#, IN#
---------------------------------------
