home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / c64 / programming / restrings.readme < prev    next >
Encoding:
Text File  |  1994-01-20  |  4.1 KB  |  117 lines

  1.  
  2. restrings  -  uSE cOMMODORE reuS AS STRING DATA STORAGE IN basic
  3.  
  4.  
  5. 1) hardware requirements
  6.  
  7.   yOU REQUIRE A c64 (OR c128 IN c64 MODE) WITH A cOMMODORE 1700, 1750 OR
  8. 1764 reu (ram eXPANSION uNIT).
  9.  
  10.  
  11. 2) features
  12.  
  13.   tHE UTILITY PROGRAM restrings EXTENDS THE c64 basic INTERPRETER IN A
  14. WAY THAT THE EXPANDED MEMORY OF 17XX reuS IS USED TO STORE STRING DATA.
  15. dEPENDING ON THE MODULE USED, UP TO 512 kbYTE STRING DATA MEMORY ARE
  16. AVAILABLE, THE MAIN MEMORY IS ONLY USED FOR OTHER VARIABLES AND
  17. PROGRAMS. tHUS, LARGE DATA CAN BE PROCESSED IN basic WITHOUT
  18. COMPLICATED AND INEFFICIENT DISK OR ram DISK ACCESS.
  19.   dUE TO AN NEW FAST gARBAGE cOLLECTION THE USUAL WAITING PERIODES
  20. DURING WORK WITH A HIGH NUMBER OF STRINGS ARE AVOIDED.  tHEREFORE,
  21. USING restrings CAN MAKE SENSE EVEN IF MAIN MEMORY IS SUFFICIENT.
  22.   iT CAN BE SELECTED, WHICH reu MEMORY BANKS ARE TO BE USED. tHUS, PARTS
  23. OF THE EXPANDED MEMORY CAN REMAIN AVAILABLE FOR OTHER PURPOSES.
  24.  
  25.  
  26. 3) activation
  27.  
  28.   tHERE ARE TWO WAYS OF LOADING AND STARTING restrings.
  29.   fIRST, IT CAN BE LOADED AND STARTED LIKE A basic PROGRAM WITH 
  30. load"restrings",8 AND run. tHE NUMBER OF FREE basic BYTES IN MAIN AND
  31. EXPANDED MEMORY WILL BE DISPLAYED.
  32.   aLTERNATIVELY, IT CAN BE LOADED FROM WITHIN A RUNNING basic PROGRAM. 
  33. aDD THE FOLLOWING LINES AT THE BEGINNING OF A basic PROGRAMS THAT
  34. REQUIRES restrings: 
  35.  
  36.     0 IFPEEK(43645)=145THENSYS57812"RESTRINGS",8:POKE780,0:POKE781,0
  37.     1 IFPEEK(43645)=145THENPOKE782,192:SYS65493:SYS57633:SYS49167:CLR
  38.  
  39.   eVERY TIME THE basic PROGRAM WILL BE EXECUTED, restrings WILL BE LOADED 
  40. AND ACTIVATED AUTOMATICALLY, IF NECESSARY.
  41.  
  42.  
  43. 4) ram bank selection
  44.  
  45.   eXPANDED MEMORY IS DIVIDED INTO BANKS 0 TO 7, EACH BANK CONTAINING 64
  46. kbYTE ram. iN A 1700 reu ONLY BANKS 0 AND 1, IN A 1764 reu ONLY
  47. BANKS 0 TO 3 ARE IMPLEMENTED.
  48.   wITH AN EXTENDED clr COMMAND THE BANKS TO BE USED FOR STRING DATA CAN
  49. BE SELECTED. tHE NUMBERS OF THE FIRST AND THE LAST BANK TO BE USED CAN BE
  50. GIVEN AS PARAMETER.
  51.  
  52.   eXAMPLES:
  53.  
  54.     clr       ... NORMAL clr COMMAND
  55.     clr 0,7   ... USE ALL BANKS
  56.     clr 3,4   ... USE BANKS 3 AND 4
  57.     clr 1,1   ... USE BANK 1 ONLY
  58.  
  59.   bE CAREFUL NOT TO SELECT UNIMPLEMENTED BANKS.
  60.  
  61.   iMMEDIATELY AFTER ACTIVATION OF restrings WITH A 1700 reu BANKS 0 AND
  62. 1 ARE SELECTED, WITH A 1750 OR 1764 reu BANKS 0 TO 3 ARE SELECTED. tHUS,
  63. IN ORDER TO USE THE ENTIRE 1750 MEMORY FOR STRING DATA, THE EXTENDED clr 
  64. COMMAND IS NECESSARY.
  65.  
  66.  
  67. 5) memory usage
  68.  
  69.   nOTE THAT ONLY THE STRING DATA, BUT NOT THE STRING DESCRIPTORS
  70. BELONGING TO THEM, ARE STORED IN EXPANDED MEMORY. tHREE BYTES OF MAIN 
  71. MEMORY PER STRING ARE STILL NEEDED. tHEREFORE, IN ORDER TO UTILIZE THE
  72. COMPLETE reu CAPACITY, STRINGS HAVE TO BE OF A CERTAIN MINIMUM AVERAGE
  73. LENGTH.
  74.   aLSO, DURING EXECUTION OF STRING FUNCTIONS, A CERTAIN AMOUNT OF FREE 
  75. MAIN MEMORY IS REQUIRED. uP TO 765 BYTES CAN BE NECESSARY FOR 
  76. TEMPORARY STRING STORAGE.
  77.  
  78.   fOR EMPTY STRINGS AND STRINGS WITH LENGTH 1 NO EXPANDED MEMORY IS
  79. USED. fOR EACH OTHER STRING  len( STRING ) + 3  BYTES ARE ALLOCATED IN
  80. EXPANDED MEMORY.
  81.  
  82.   tHE NUMBER OF FREE STRING DATA BYTES IN EXPANDED MEMORY CAN BE
  83. INVESTIGATED WITH THE FUNCTION usr(1). tHIS WILL AUTOMATICALLY INVOCATE
  84. THE FAST GARBAGE COLLECTION. tHE NUMBER OF FREE BYTES IN MAIN
  85. MEMORY CAN BE INVESTIGATED WITH fre(1) AS USUAL.
  86.  
  87.  
  88. 6) speed
  89.  
  90.   dUE TO INDIRECT ACCESS TO THE EXPANDED MEMORY, ASSIGNMENT AND ACCESS
  91. TO STRINGS IS A BIT SLOWER THAN NORMAL. hOWEVER, DUE TO THE FAST
  92. GARBAGE COLLECTION STRING HANDLING IS FASTER IN THE LONG RUN.
  93.   wITH 256 kbYTE EXPANDED MEMORY SELECTED, THE GARBAGE COLLECTION WILL
  94. TAKE 7 SECONDS IN THE WORST CASE. nORMALLY, HARDLY ANY DELAY IS
  95. NOTICABLE.
  96.  
  97.  
  98. 7) compatibility
  99.  
  100.   restrings USES MAIN MEMORY BETWEEN $a000 AND $c6fc . tHIS MEMORY AREA
  101. AND THE MEMORY CONFIGURATION ( peek(1)=54 ) MUST NOT BE CHANGED BY 
  102. OTHER PROGRAMS.
  103.   pROBLEMS ARE LIKELY WITH PROGRAMS THAT IMPLEMENT THEIR OWN STRING
  104. HANDLING, E.G. basic COMPILERS. 
  105.   restrings HAS BEEN DEVELOPED ON A c64 WITH A 1764 reu.
  106.  
  107.  
  108. 8) copyright
  109.  
  110.   tHE PROGRAM AND INSTRUCTIONS WERE WRITTEN BY rICHARD hABLE. 
  111. (emAIL: rICHARD.hABLE@JK.UNI-LINZ.AC.AT)
  112.   yOU MAY DISTRIBUTE THEM FREELY. tHERE IS NO WARRANTY, USE THEM AT
  113. YOUR OWN RISK!
  114.  
  115.  
  116.  
  117.