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# ---------------------------------------