home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / DYMA.SFX / dyma.readme < prev    next >
Encoding:
Text File  |  1990-02-12  |  5.2 KB  |  153 lines

  1. ├RAIG ┬RUCE'S ─YNAMIC ═EMORY ╥OUTINES FOR THE 128
  2.  
  3.   MODIFIED BY ╥OBERT ┴. ╦NOP ╩R. TO SUPPORT 256╦ AND 512╦ 128'S  92/05/25
  4.  
  5.  
  6.  
  7. ╬╧╘┼: ╘HIS FILE ASSUMES YOU ARE FAMILIAR WITH ├RAIG ┬RUCE'S ARTICLE ON ─YNAMIC
  8. ═EMORY, FOUND IN THE ╒SENET ╚ACKING ═AG, ISSUE #2.
  9.  
  10. ╘HIS ARCHIVE CONTAINS ├RAIG ┬RUCE'S ─YNAMIC ═EMORY ROUTINES FOR THE 128,
  11. MODIFIED TO USE INTERNAL ╥┴═ BANKS 2-7 (AS DISCUSSED IN ╥ICHARD ├URCIO'S
  12. ARTICLES IN ╘WIN ├ITIES 128, ╔SSUES #30 AND #31).
  13.  
  14. ╒NDEFINED SYMBOLS IN THE SOURCE FILES CAN BE FOUND IN THE FILES "ROBSEQUS.S"
  15. AND "ROBSMACS.S" IN THE ARCHIVE "ROBS-SYMS.SFX".  ╬OTE THAT YOU MAY WANT TO
  16. CHANGE THE DEVICE NUMBER ON THE ─╙╦ COMMAND IF YOU ATTEMPT TO REASSEMBLE
  17. ─┘═┴.╙.
  18.  
  19.  
  20. ╞ILES IN THIS ARCHIVE:
  21. ----------------------
  22.  
  23. ─┘═┴.╙ - ═ERLIN SOURCE CODE, DIRECTLY READABLE BY ═ERLIN'S EDITOR.
  24.  
  25. ─┘═┴.┴╙═ - ╙OURCE CODE IN ═ERLIN FORMAT, BUT READABLE BY A "NORMAL" EDITOR
  26.             (E.G. ┌┼─).
  27.  
  28. ─┘═┴.╥┼╠.╧ - ═ERLIN LINK LIBRARY, WHICH CAN BE LINKED IN WITH YOUR PROGRAM
  29.               USING ═ERLIN'S "╠╔╬╦" COMMAND.
  30.  
  31. ─┘═┴.╥┼┴─═┼ - ┘OU ARE HERE.
  32.  
  33. ─┘═┴.─╔╞╞╙ - ─ETAILED DESCRIPTION OF THE MODIFICATIONS TO THE DYNAMIC MEMORY
  34.               ROUTINES AS THEY APPEARED IN THE ╚ACKING ═AG IN ORDER TO SUPPORT
  35.               ╥┴═ 2-7.
  36.  
  37. ─┘═┴.╙┘═╙ - ╠IST OF THE CORRESPONDENCES BETWEEN MY ═ERLIN SYMBOLS AND ├RAIG
  38.              ┬RUCE'S ┬UDDY SYMBOLS.  (╘HE LATTER ARE WHAT APPEARED IN THE
  39.              ╚ACKING ═AG, THE FORMER IS WHAT IS ALL OVER THIS ARCHIVE.)
  40.  
  41.  
  42.  
  43. ╒╙┼ ╧╞ ╘╚┼╙┼ ╥╧╒╘╔╬┼╙ : ╘HE USE OF THESE ROUTINES IS DESCRIBED IN ╔SSUE #2
  44. OF THE ╒SENET HACKING MAGAZINE.  ╚ERE ╔ SUMMARIZE SOME ISSUES SPECIFIC TO
  45. EXPANDED 128'S.  ╘HE ROUTINES IN THIS ARCHIVE SUPPORT UP TO 512╦ 128'S.
  46. ╔F YOU WANT YOU PROGRAM TO BE ABLE TO TASK SWITCH TO THE SECOND 256╦ WHEN
  47. RUN IN "NORMAL MODE" (THIS IS ALL DISCUSSED IN ╘├128 #31), YOU SHOULD LIMIT
  48. THE DYNAMIC MEMORY ROUTINES TO 4 INTERNAL BANKS.  ┘OU CAN DO THIS BY SETTING
  49. THE VARIABLE ╔╬╘╠╔═╔╘ BEFORE CALLING ╙╘┴╥╘╒╨.  ╔F YOU RUN THE PROGRAM IN
  50. THE SECOND 256╦, THE STARTUP ROUTINE AUTOMATICALLY LIMITS ITSELF TO 4
  51. INTERNAL BANKS.  ┴ND, IF YOU RUN THIS ON AN UNEXPANDED 128, THE STARTUP
  52. ROUTINE WILL DETECT THAT AND ONLY USE THE EXISTING ╥┴═0 AND ╥┴═1.
  53.  
  54. ╘HE DEFAULT ROUTINES ASSUME THAT ALL OF THE ╥┴═ ABOVE $4000 IN ╥┴═0 IS
  55. AVAILABLE FOR DYNAMIC MEMORY.  ╔F YOUR CODE NEEDS TO GO HIGHER THAN THIS,
  56. YOU CAN CHANGE THE LOWEST PAGE IN ╥┴═0 USED FOR DYNAMIC MEMORY BY SETTING
  57. THE VARIABLE ╙╘┴╥╘╨╟0 BEFORE CALLING ╙╘┴╥╘╒╨.
  58.  
  59.  
  60. ╬EXT FOLLOWS A LIST OF THE ROUTINES AND GLOBAL VARIABLES AVAILABLE.  ╔F YOU
  61. WANT A DETAILED TECHNICAL DESCRIPTION OF THE DIFFERENCES BETWEEN THESE
  62. DYNAMIC MEMORY ROUTINES AND THE ONES PUBLISHED IN ╔SSUE #2 OF THE ╚ACKING
  63. ═AG, READ THE FILE "DYMA.DIFFS".  ╘HE FILE "DYNA.SYMS" CONTAINS ALL OF THE
  64. CORRESPONDENCES BETWEEN MY ═ERLIN SYMBOLS AND ├RAIG ┬RUCE'S ORIGINAL
  65. SYMBOLS THAT APPEARED IN THE ╚ACKING ═AG.
  66.  
  67. -╥OB ╦NOP
  68. ╔NTERNET: RKNOP@TYBALT.CALTECH.EDU
  69. ╟┼NIE:    ╥.╦╬╧╨1
  70.  
  71. -----------------------------------------------------------------------------
  72.  
  73. ╥OUTINES:
  74. ---------
  75.  
  76. ╘HE ROUTINES AVAILABLE IN THE LINK LIBRARY ARE EXACTLY THE SAME AS THOSE
  77. DESCRIBED IN ├RAIG ┬RUCE'S ARTICLE IN ╔SSUE #2 OF THE ╒SENET ╚ACKING ═AG:
  78.  
  79.  
  80. ╙╘┴╥╘╒╨()
  81.  
  82.   ├ALL TO INITIALIZE DYNAMIC MEMORY ROUTINES.
  83.  
  84.  
  85. ╙╚╒╘─╧╫╬()
  86.  
  87.   ├ALL WHEN FINISHED WITH DYNAMIC MEMORY.
  88.  
  89.  
  90. ┌╨╠╧┴─( [ZP1]=╞AR╨OINTER, .╪=┌P┴DDR, .┘=╠ENGTH )
  91.  
  92.   ╠OAD A NUMBER OF BYTES SPECIFIED BY ┘ TO THE ZERO PAGE ADDRESS SPECIFIED BY ╪
  93. FROM THE MEMORY CHUNK POINTED TO BY ZP1.
  94.  
  95.  
  96. ┌╨╙╘╧╥┼( [ZP1]=╞AR╨OINTER, .╪=┌P┴DDR, .┘=╠ENGTH )
  97.  
  98.   ╙TORE A NUMBER OF BYTES SPECIFIED BY ┘ FROM THE ZERO PAGE ADDRESS SPECIFIED
  99. BY ╪ TO THE MEMORY CHUNK POINTED TO BY ZP1.
  100.  
  101.  
  102. ╞┼╘├╚( [ZP1]=╞AR╨OINTER, (ZW1)=╥AM0╨OINTER, .┴┘=╠ENGTH )
  103.  
  104.   ╠OAD A NUMBER OF BYTES SPECIFIED BY ┴ (LOW BYTE) AND ┘ (HIGH BYTE) TO THE
  105. ╥┴═ 0 MEMORY ADDRESS IN ZW1 FROM THE MEMORY CHUNK POINTED TO BY ZP1.
  106.  
  107.  
  108. ╙╘┴╙╚( [ZP1]=╞AR╨OINTER, (ZW1)=╥AM0╨OINTER, .┴┘=╠ENGTH )
  109.  
  110.   ╙TORE A NUMBER OF BYTES SPECIFIED BY ┴ (LOW BYTE) AND ┘ (HIGH BYTE) FROM
  111. THE ╥┴═ 0 MEMORY ADDRESS IN ZW1 TO THE MEMORY CHUNK POINTED TO BY ZP1.
  112.  
  113.  
  114. ═┴╠╠╧├( .┴┘=╠ENGTH ) : [ZP1]=╞AR╨OINTER, .├╙=ERROR
  115.  
  116.   ┴LLOCATE A CHUNK OF MEMORY OF LENGTH SPECIFIED BY ┴ (LOW BYTE) AND ┘
  117. (HIGH BYTE).  ╥ETURN A POINTER TO THE ALLOCATED CHUNK IN ZP1.
  118.  
  119.  
  120. ╞╥┼┼( [ZP1]=╞AR╨OINTER, .┴┘=╠ENGTH ) : .├╙=ERROR
  121.  
  122.   ─E-ALLOCATE THE CHUNK OF MEMORY POINTED TO BY ZP1, WITH ┴ (LOW BYTE) AND
  123. ┘ (HIGH BYTE) HOLDING THE LENGTH OF THE CHUNK TO BE DE-ALLOCATED.
  124.  
  125.  
  126.  
  127. ╟LOBAL ╓ARIABLES ACCESSIBLE IN ─┘═┴.╥┼╠.╧:
  128. ------------------------------------------
  129.  
  130. ┼╥╥╬╧    -  ┼RROR NUMBER FOR ERROR RETURNS
  131.  
  132. ╬┼╪╨┬╬╦  -  ╬UMBER OF ╥┼╒ BANKS (SET IN ╙╘┴╥╘╒╨)
  133.  
  134. ╥┼╒╠╔═╔╘ -  ═AX # ╥┼╒ BANKS TO ATTEMPT TO ACCESS (DEFAULT 127)
  135.  
  136. ╬╔╬╘┬╬╦  -  ╬UMBER OF INTERNAL BANKS (SET IN ╙╘┴╥╘╒╨)
  137.  
  138. ╔╬╘╠╔═╔╘ -  ═AX # INTERNAL BANKS TO ATTEMPT TO ACCESS (DEFAULT 8)
  139.  
  140. ═┴╠╠╧├╚─ -  ╞IRST FREE MEMORY CHUNK IN THE LINKED LIST OF FREE CHUNKS.
  141.              (3 BYTE VARIABLE)
  142.  
  143. ╞╥┼┼═┼═  -  ╬UMBER OF DYNAMICALLY ALLOCABLE FREE BYTES.
  144.              (3 BYTE VARIABLE)
  145.  
  146. ╙╘┴╥╘╨╟0 -  ╠OWEST PAGE IN ╥┴═0 TO USE FOR DYNAMIC MEMORY (DEFAULT $40)
  147.  
  148. ╙╘┴╥╘╨╟1 -  ╠OWEST PAGE IN ╥┴═ 1-7 TO USE FOR DYNAMIC MEMORY ($04)
  149.  
  150. ╥┴═1╠┼╬  -  # OF PAGES IN ╥┴═ 1-7 TO USE FOR DYNAMIC MEMORY ($FB)
  151.  
  152. -----------------------------------------------------------------------------
  153.