home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG024.ARK / TAPELIB.DOC < prev    next >
Text File  |  1984-04-29  |  12KB  |  296 lines

  1.             --  TAPELIB --
  2.  
  3.                 BY  SAM J. SINGER
  4.                     (714) 780-8853
  5.  
  6. I.  INTRODUCTION
  7.  
  8.     TAPELIB IS A GENERAL CASSETTE TAPE LIBRARY MANAGER FOR
  9. CP/M. IT INCORPORATES MOST OF THE FEATURES OF THE CP/M PIP UTILITY.
  10. ANY CP/M FILE OR GROUP OF FILES MAY BE COPIED FROM TAPE TO DISK
  11. OR FROM DISK TO TAPE.
  12.     IN ADDITION TO THE USUAL PIP COPY OPERATIONS, TAPELIB
  13. PERMITS VERIFICATION OF TAPE FILES AGAINST DISK FILES AND DIRECT
  14. EXECUTION OF BINARY PROGRAMS FROM TAPE.  TAPE FILES ARE NAMED AND
  15. SPACE IS PROVIDED IN THE TAPE COPY FOR EXTENSIVE COMMENTS.
  16.     FILES MAY BE DISPLAYED ON THE CONSOLE DURING COPY OPERATIONS
  17. FOR VISUAL VERIFICATION .  THE PROGRAM CONTAINS EXTENSIVE ERROR 
  18. CHECKS, AND CONSOLE MESSAGES ARE UNABBREVIATED AND QUITE SPECIFIC.
  19. EVERY EFFORT HAS BEEN MADE TO MAKE THE PROGRAM GENERAL AND EASY TO
  20. USE. THE PROGRAM HAS BEEN OPTIMIZED TO PROVIDE THE FASTEST POSSIBLE
  21. DATA TRANSFER RATES YET STILL MAINTAIN GOOD RELIABILITY.
  22.  
  23. II.  HARDWARE REQUIREMENTS
  24.  
  25.     TAPELIB REQUIRES AN 8080 OR Z-80 BASED COMPUTER SYSTEM
  26. RUNNING THE CP/M OPERATING SYSTEM, AT LEAST ONE FLOPPY DISK DRIVE,
  27. A CASSETTE RECORDER AND TARBELL CASSETTE INTERFACE AND A CONSOLE
  28. DEVICE.  THE DISPLAY DURING COPY OPERATIONS REQUIRES THE TERMINAL
  29. TO OPERATE AT A MINIMUM OF 4800 BAUD IF THIS FEATURE IS TO BE USED.
  30.  
  31. III.  PROGRAM OPERATION
  32.  
  33.     TAPELIB OPERATES AS A TRANSIENT FILE UNDER CP/M, AND 
  34. REQUIRES SLIGHTLY MORE THAN 4K OF MEMORY FOR CODE. THE REMAINDER
  35. OF THE AVAILABLE MEMORY WILL BE USED FOR FILE BUFFERS.
  36.     DURING DISK TO TAPE COPIES THE PROGRAM WILL FIRST ATTEMPT
  37. TO READ THE ENTIRE FILE INTO MEMORY AND WRITE IT ON TAPE AS A
  38. SINGLE RECORD. IF THERE IS INSUFFICIENT ROOM FOR THE ENTIRE FILE,
  39. OR IF THE FILE CONTAINS MORE THAN ABOUT 14000 BYTES THE PROGRAM
  40. WILL WRITE THE FILE ON TAPE IN 1K BLOCKS. A BLOCKED TAPE WILL ALSO
  41. BE PRODUCED IF THE BLOCK OPTION IS USED. THIS OPTION IS USEFUL IF
  42. TAPES ARE TO BE TRANSFERED FROM ONE SYSTEM TO ANOTHER OF A DIFFERENT
  43. SIZE. A MESSAGE WILL BE DISPLAYED BEFORE A BLOCKED TAPE IS WRITTEN.
  44. BLOCKED TAPES REQUIRE ABOUT 25 PER CENT MORE TIME TO WRITE.
  45.     EACH TAPE FILE IS HEADED BY A 128 BYTE RECORD CONTAINING
  46. THE FILE NAME. MOST OF THE REMAINDER OF THE 128 BYTES IS AVAILABLE
  47. FOR COMMENTS. THE COMMENTS ARE DELETED DURING TAPE TO DISK COPIES.
  48.     FILES ARE DISPLAYED ON THE TERMINAL DURING ALL COPY 
  49. OPERATIONS UNLESS THE NODISPLAY OPTION IS USED. CHARACTERS ARE
  50. DISPLAYED IN ASCII IN 64 CHARACTER LINES WITH NONDISPLAYABLE
  51. CHARACTERS CONVERTED TO PERIODS.
  52.     DURING TAPE TO DISK COPY OPERATIONS A SEARCH IS MADE FOR
  53. THE FILE NAME OR GROUP OF NAMES AND ONLY THE REQUESTED FILES
  54. ARE COPIED. HOWEVER, THE HEADER RECORD CONTAINING THE FILE NAME
  55. WILL BE DISPLAYED FOR EACH FILE ON THE TAPE. THIS PERMITS SCANNING
  56. THE TAPE TO DETERMINE ITS CONTENTS, SINCE TAPES HAVE NO DIRECTORIES.
  57. WHEN REQUESTED FILES ARE FOUND, THE ENTIRE CONTENTS WILL BE DISPLAYED.
  58.  
  59. IV.  TAPELIB COMMANDS
  60.  
  61.     TAPELIB MAY BE RUN BY ONE OF TWO METHODS. TYPE:
  62.  
  63.         TAPELIB        
  64.         TAPELIB <COMMAND STRING>
  65.  
  66. ALL COMMANDS ARE TERMINATED BY A CARRIAGE RETURN. IF THE FIRST METHOD IS
  67. USED THE PROGRAM RESPONDS WITH A TITLE AND AN * PROMPT. THE COMMAND STRING
  68. MAY THEN BE ENTERED. THE SECOND FORM EXECUTES THE COMMAND STRING
  69. IMMEDIATELY.
  70.     IF THE FIRST FORM OF THE CALL IS USED THE PROGRAM WILL RETURN TO
  71. THE INPUT SECTION AFTER COMPLETION OF THE COMMAND. THE PROMPT WILL BE
  72. DISPLAYED AND ANOTHER COMMAND EXECUTED WITHOUT RELOADING THE PROGRAM.
  73. THE OTHER FORM WILL RETURN TO CP/M AFTER COMPLETION OF THE COMMAND.
  74. ANY COMMAND MAY BE TERMINATED BY TYPING CONTROL C. THE FIRST CONTROL C
  75. RETURNS TO THE INPUT SECTION OF THE PROGRAM. A SECOND CONTROL C RETURNS
  76. BACK TO CP/M.
  77.     THE COMMAND STRING HAS THE FOLLOWING FORM:
  78.  
  79.         DESTINATION:=SOURCE  <OPTIONS> <COMMENT>
  80.  
  81.     THE SOURCE AND DESTINATION MAY BE EITHER A FILE NAME AND TYPE, A
  82. DEVICE NAME OR SPECIAL FUNCTION. DEVICE NAMES AND FUNCTIONS MUST BE FOLLOWED
  83. BY A COLON. THE FOLLOWING TABLE GIVES ACCEPTABLE NAMES AND THEIR 
  84. INTERPRETATION.
  85.  
  86.         DEVICE/FUNCTION TABLE
  87.  
  88.     TAPE:        THE CASSETTE TAPE
  89.     DISK:        THE CURRENTLY LOGGED DISK
  90.     A:        DISK A
  91.     B:        DISK B
  92.     RUN:        LOAD TAPE TO MEMORY AND EXECUTE
  93.     SYNC:        WRITE SYNC STREAM ON TAPE
  94.  
  95.     ANY CP/M LEGAL FILE NAME INCLUDING AMBIGUOUS FILE NAMES MAY BE
  96. USED WITH TAPELIB. THE FOLLOWING ARE EXAMPLES OF ACCEPTABLE NAMES
  97.  
  98.         XXXX.YYY    FILENAME.TYP
  99.         *.COM        TAPELIB.???
  100.         *.*        A:MYPROG.COM
  101.         B:NEWNAME.ASM    B:????????.ASM
  102.  
  103. NOTE THAT THE DISK NAME MAY BE SPECIFIED AS PART OF A FILE NAME.
  104.  
  105.     THE OPTIONS AVAILABLE AND THEIR FUNCTIONS ARE LISTED IN THE
  106. OPTION TABLE WHICH FOLLOWS.
  107.  
  108.             OPTION TABLE
  109.  
  110.     NODISPLAY        TURN OFF DISPLAY FEATURE (FOR SLOW TERMINALS)
  111.     BLOCK            BLOCK FILES ON TAPE IF FILE WILL NOT FIT
  112.                     IN 16K CP/M SYSTEM
  113.     VERIFY            COMPARE TAPE FILE WITH DISK FILE OF SAME NAME
  114.     RENAME            RENAME FILE ON DISK AFTER COPY FROM TAPE
  115.  
  116.     COMMAND STRINGS CAN BE CONSTRUCTED FROM VARIOUS COMBINATIONS OF
  117. THE NAMES AND OPTIONS LISTED ABOVE. IN GENERAL MORE THAN ONE OPTION CAN
  118. BE INCLUDED IN ANY COMMAND STRING. IF COMMENTS OR OPTIONS ARE INCLUDED
  119. IN A CASE WHERE THEY ARE NOT MEANINGFUL, THEY WILL BE IGNORED.
  120.  
  121. V.  EXAMPLES OF COMMANDS
  122.  
  123.             DISK TO TAPE
  124.  
  125.     TAPE:=FILENAME.TYP    'OPTIONAL COMMENTS'
  126.     TAPE:=B:*.COM      RECORDED DEC 26 1977
  127.     TAPE:=A:MYPROG.ASM    NODISPLAY
  128.  
  129.             TAPE TO DISK
  130.  
  131.     DISK:=*.COM
  132.     A:=GAME.BAS   RENAME NEWGAME.BAS
  133.     B:=TESTPROG.ASM     VERIFY
  134.  
  135.             OTHER COMMANDS
  136.  
  137.     TAPE:=SYNC:        (WRITE 6 MIN OF SYNC CODE)
  138.     RUN:=ANYPROG.COM    (LOAD FROM TAPE AND EXECUTE)
  139.  
  140.  
  141.     THE FORMAT OF COMMAND STRINGS IS FREE EXCEPT FOR THE SOURCE
  142. AND DESTINATION. THE EQUAL SIGN AND COLONS ARE REQUIRED AND NO SPACES
  143. ARE PERMITTED IN THE SOURCE OR DESTINATION. THE OPTIONS AND COMMENTS
  144. MAY BE TYPED ANYWHERE ON THE INPUT LINE. INTERVENING SPACES WILL BE
  145. SKIPPED OVER.
  146.     TO RENAME A FILE DURING A TAPE TO DISK COPY ENTER THE WORD
  147. RENAME FOLLOWED BY THE NEW FILE NAME AND TYPE ANYWHERE ON THE INPUT
  148. LINE FOLLOWING THE SOURCE. THIS FEATURE IS USEFUL IF A FILE WITH THE
  149. SAME NAME ALREADY EXISTS ON THE DISK.
  150.     TO VERIFY A FILE OR GROUP OF FILES EXECUTE A TAPE TO DISK COPY
  151. OPERATION WITH THE WORD VERIFY ANYWHERE FOLLOWING THE SOURCE. THE COPY
  152. OPERATION WILL NOT ACTUALLY TAKE PLACE. INSTEAD THE FILE WILL BE READ
  153. FROM TAPE AND COMPARED BYTE BY BYTE WITH THE FILE OF THE SAME NAME ON
  154. THE DISK SPECIFIED. IF THE FILES ARE NOT THE SAME THE PROGRAM DISPLAYS
  155.  
  156.     VERIFY ERROR
  157.  
  158. IF THE FILES ARE THE SAME THE PROGRAM WILL DISPLAY:
  159.  
  160.     VERIFIED SUCCESSFULLY
  161.  
  162.     TO RUN A PROGRAM FROM TAPE TYPE RUN: AS THE DESTINATION. THE
  163. PROGRAM CHECKS THE FILE TYPE BEFORE EXECUTION BEGINS AND WILL DISPLAY
  164. AN ERROR MESSAGE IF THE FILE IS NOT TYPE 'COM'. COM FILES ARE MOVED TO
  165. STARTING LOCATION 100H BEFORE BEING EXECUTED.
  166.  
  167. VII.  PROMPTS AND ERROR MESSAGES
  168.  
  169.     TAPELIB ASSUMES THAT ONLY AN INEXPENSIVE NON CONTROLED CASSETTE
  170. TAPE RECORDER IS BEING USED. THE PROGRAM HALTS AT THE PROPER TIMES AND
  171. DISPLAYS INSTRUCTIONS FOR STARTING AND STOPPING THE TAPE. FOR EXAMPLE
  172. TO COPY DISK TO TAPE THE PROGRAM WILL PAUSE AND DISPLAY:
  173.  
  174.     START CASSETTE TAPE <<RECORD>> - TYPE CARRIAGE RETURN
  175.  
  176. FOR TAPE TO DISK OPREATIONS THE MESSAGE WILL BE:
  177.  
  178.     START CASSETTE TAPE - TYPE CARRIAGE RETURN
  179.  
  180. THE TAPE SHOULD BE STARTED IN THE PROPER MODE BEFOR TYPING THE CARRIAGE
  181. RETURN.
  182.     TAPELIB IS EXTENSIVELY TRAPPED FOR ERRORS. IF AN ERROR OCCURS
  183. THE PROGRAM WILL DISPLAY AN ERROR MESSAGE AND PAUSE TO ALLOW THE ERROR
  184. TO BE CORRECTED IF POSSIBLE. THE FOLLOWING TABLE CONTAINS ERROR MESSAGES,
  185. THEIR PROBABLE CAUSE AND POSSIBLE CORRECTION.
  186.  
  187.             ERROR TABLE
  188.  
  189. 1.  ERROR IN FILE NAME        INCORRECT FILE NAME - REENTER NAME
  190.  
  191. 2.  NO SUCH DESTINATION        INCORRECT DESTINATION, MUST BE TAPE:
  192.                 DISK:, A:, B:, OR RUN: - REENTER
  193.  
  194. 3.  NO FILE BY THAT NAME    INCORRECT NAME OR DRIVE - REENTER
  195.     ON DRIVE A
  196.  
  197. 4.  CHECKSUM ERROR        CHECK SUM ON TAPE DOES NOT AGREE WITH
  198.                 COMPUTED SUM. - VARIETY OF CAUSES
  199.                 CHECK TERMINAL SPEED 4800 BAUD OR GREATER
  200.                 REWIND TAPE TO BEGINNING OF FILE AND
  201.                 TYPE CARRIAGE RETURN
  202.  
  203. 5.  VERIFY ERROR        A BYTE IN THE TAPE FILE DOES NOT MATCH
  204.                 THE DISK COPY - CHECK FOR INCORRECT TAPE
  205.                 OR DISK
  206.  
  207. 6.  ERROR - FILE TYPE NOT <COM>    ONLY COM TYPE FILES CAN BE EXECUTED - LOAD
  208.     - CANNOT BE RUN        FILE TO DISK AND RENAME
  209.  
  210. 7.  DISK READ ERROR         CP/M SYSTEM ERROR IN DISK READ
  211.  
  212. 8.  DISK WRITE ERROR - DISK    DISK FILLED - CHANGE DISKS
  213.     OR DIRECTORY FULL
  214.  
  215. VII.  TAPE FORMAT
  216.  
  217.     THE FORMAT FOR EACH RECORD ON THE TAPE IS AS FOLLOWS:
  218.  
  219.  
  220.     1.  START BYTES        03CH  (100)
  221.     2.  SYNC  BYTE        06EH
  222.     3.  DECODE BYTE        0FFH   (CONTROLS DISPLAY)
  223.     4.  TYPE  BYTE        0,1 OR 2
  224.     5.  LENGTH BYTE        NO OF 256 BYTE RECORDS
  225.     6.  NAME        CP/M FILE NAME  (11 BYTES)
  226.     7.  COMMENT        110 BYTES AVAILABLE BLANK IF NOT USED
  227.     8.  DATA        MULTIPLES OF 256 BYTE RECORDS
  228.     9.  CHECKSUM        ONE BYTE TARBELL CHECKSUM
  229.  
  230.     IF A FILE IS UNBLOCKED IT WILL CONTAIN ONLY ONE CONTINUOUS
  231. RECORD IN THE FORMAT GIVEN ABOVE. IF A FILE IS BLOCKED ONLY THE
  232. FIRST RECORD OF THE FILE CONTAINS THE NAME AND COMMENT, THE REMAINING
  233. FIELDS HOWEVER ARE THE SAME.
  234.     EACH FILE IS PRECEEDED BY A BLOCK OF 1500 START BYTES
  235. FOLLOWED BY 100 HALT BYTES (76H). THE START BYTE BLOCK PROVIDES TIME
  236. FOR DISK OPERATIONS TO COMPLETE AND THE HALT BYTES SERVE TO INDENTIFY
  237. THE BEGINNING OF A FILE. THE NUMBER OF BYTES IN A TAPE RECORD IS
  238. ALWAYS A MULTIPLE OF 256 NOT COUNTING THE START,SYNC,TYPE,LENGTH
  239. AND DECODE BYTES. IF DATA DOES NOT EXACTLY FILL A RECORD, THE
  240. REMAINDER OF THE RECORD IS FILLED WITH 1AH BYTES (THE CP/M END OF FILE
  241. CODE).
  242.     THE BLOCKS OF A BLOCKED RECORD ARE SEPARATED BY APPROX 1 SECOND
  243. BLOCKS OF START BYTES. TWO OF THE BLOCKS ARE APPROX 3 SECONDS LONG TO
  244. ALLOW FOR THE EXTRA TIME REQUIRED IF THE FILE HAS MORE THAN ONE EXTENT.
  245.  
  246. VIII.  COMMENTS 
  247.  
  248.     SEVERAL POINTS SHOULD BE KEPT IN MIND WHEN USING TAPELIB
  249. TAPE IS NOT NEARLY AS RELIABLE AS DISK FOR DATA STORAGE. ALWAYS
  250. VERIFY TAPE COPIES OF DISK FILES BEFORE DESTROYING THE ORIGINALS.
  251. USE REASONABLE QUALITY TAPE AND KEEP CASSETTE RECORDER HEADS CLEAN.
  252.     BECAUSE THERE IS NO DIRECTORY ON TAPES, BLOCK COPY OPERATIONS
  253. FROM TAPE TO DISK DO NOT WORK AS RELIABLY AS DISK TO DISK COPIES.
  254. THE PROGRAM HAS NO WAY OF TELLING WHEN ALL THE FILES ON A TAPE HAVE
  255. BEEN FOUND. IT IS UP TO THE USER TO STOP THE TAPE AT THE PROPER
  256. TIME WITHOUT PROMPTING FROM THE PROGRAM.
  257.     TAPE RECORDS ARE LABLED AND THEREFORE TAPE POSITIONING IS
  258. NOT AT ALL CRITICAL. AS LONG AS THE TAPE STARTS BEFORE THE RECORD
  259. REQUESTED THE PROGRAM WILL FIND THE FILE. THE PROGRAM MAY EVEN BE
  260. STARTED WHILE READING LEADER.  HOWEVER IF TAPES ARE NOT ERASED
  261. BEFORE USE, OLD FILES AT THE END OF THE TAPE MAY BE FOUND AND READ
  262. DURING BLOCK COPY OPERATIONS. THE COPY-ALL OPERATION:
  263.  
  264.     DISK:=*.*
  265.  
  266. IS THE WORST OFFENDER IN THIS RESPECT. IT IS RECOMMENDED THAT TAPES
  267. BE COMPLETELY ERASED BEFORE BEING USED AS BACK UP FOR ALL THE
  268. FILES ON A DISK.
  269.     CASSETTE RECORDERS ARE NOT CONTROLABLE DEVICES. IN GENERAL 
  270. THE PROGRAM HAS TO ACCEPT DATA AT THE FIXED SPEED COMING TO IT
  271. FROM THE TAPE, 187 BYTES PER SECOND FOR TARBELL STANDARD. SUFFICIENT
  272. SPACE MUST BE LEFT ON THE TAPE BETWEEN RECORDS TO ALLOW COPY TIME TO
  273. DISK IF BLOCK COPIES ARE TO BE PERFORMED. ALTHOUGH LARGE GAPS ARE LEFT
  274. ON THE TAPE BETWEEN FILES THE TIME MAY NOT BE SUFFICIENT IN ALL CASES.
  275. IF THE TAPE DENSITY IS NOT TARBELL STANDARD OR DISK ERRORS OCCUR 
  276. REQUIRING MULTIPLE READS FOR ERROR CORRECTION ERRORS MAY OCCUR.
  277. THE TYPE OF ERRORS WILL BE MISSED FILES DURING BLOCK COPIES OR MISSED
  278. BLOCKS WHILE COPYING BLOCKED TAPES. SIMPLE INSPECTION WILL DETECT MISSING
  279. FILES. SCAN THE TAPE AND COUNT THE RECORDS. MISSING BLOCKS ARE MORE
  280. DIFFICULT BUT CAN USUALLY BE DETECTED BY REVERIFICATION OF THE TAPE.
  281.  
  282. IX.  TIMING DATA AND SPACE CONSIDERATIONS
  283.  
  284.     DATA TRANSFER RATES (APPROX)
  285.         UNBLOCKED RECORDS        187 BYTES/SEC
  286.         BLOCKED RECORDS            140 BYTES/SEC
  287.     TIME BETWEEN FILES            8 SECONDS
  288.     TIME BETWEEN BLOCKS            0.85 SECONDS
  289.  
  290.     LOAD TIME FROM TAPE FOR 10K BYTES
  291.         UNBLOCKED RECORD        72 SECONDS
  292.         BLOCKED RECORDS            83 SECONDS
  293.  
  294.     ONE SIDE OF A C-60 TAPE WILL USUALLY STORE THE CONTENTS OF ONE
  295. FLOPPY DISK.
  296.