home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / Geneve / 9640news / CAT14 / SVUTL.ARK < prev    next >
Text File  |  2006-10-19  |  6KB  |  160 lines

  1. ?
  2.                 SAVE TUTORIAL   By Scott Darling
  3.  
  4.  
  5.   After reading some messages concerning using the Save utility in the Editor
  6. Assembler package I awaited one individuals tutorial on the subject. But none
  7. appeared. So I decided to sit down and write one for it. Now some of you may
  8. know how to do this, but evidently not everyone does; so here goes.
  9.  
  10.  
  11.   Obviously to use the Save utility, you need the E/A package. But a couple of
  12. programs are helpfull. A sector editor such as DISK-AID, DISKO, and the like.
  13. The Mini-Memory module is a nice shortcut for finding addresses.
  14.  
  15.  
  16. USING THE SECTOR EDITOR
  17. -----------------------
  18.  
  19.   First off any D/F 80 file will work, compresed or uncompressed. You should
  20. copy the program to a clean disk to make it easier to find using the sector
  21. editor. Load the editor and search for the end of the program. Disk-Aid will
  22. tell you where the last sector of a program lies. Toggle to Ascii and look at
  23. the sector info. There should be some names and references to VSBW, VMBW, START
  24. and so forth. Compressed code is easier to read by the way. Look carefully to
  25. see if the words SFIRST, SLAST, or SLOAD are there. IF they are skip the rest
  26. of this and go directly to "USING THE SAVE PROGRAM"!!
  27.  
  28. If those words are not there. Look to see if there are any lines of code that
  29. look like the actual program. The below will serve as an example. It is non-
  30. relocatable code. The "9" stands for that. An "A" stands for relocatable.
  31. (much easier to work with by the way)
  32. (this code was loaded into E/A editor, it will look different in sector editor)
  33. --------------------------------------------------------------------------------
  34.  
  35. 0023 9E1D8B03807FD91F
  36. 0024 1E0467FEB9F
  37. 0025 6E046START 7FD06F
  38. 0026 :       99/4 AS
  39.  
  40. --------------------------------------------------------------------------------
  41. You will notice that at the line 24 there is a "1" to designate an auto start
  42. program. Change the "1" to a "F". This will defeat auto-start. There may be a
  43. "2" there, it also means auto-start.
  44.  
  45. Directly after that 1 or 2 is an address. This is the "START"ing address of the
  46. program. SFIRST and SLOAD will equal this address. The starting address also
  47. appears in front of the word "START". As is the case with most "DEFS" in this
  48. location.
  49.  
  50. To determine the SLAST is a little trickier. Just before the 1 or 2 auto-start
  51. was an address >E1D8. Now count over 1 byte for each 2 letter number combos.
  52. Excluding the B and 7. In other words: 9E1D8_0380_FD91_.
  53.  
  54.                                         E1D8  9 A  B C  = E1DC
  55. This will make SLAST = E1DC
  56.  
  57.  
  58. Another example is for RELOCATABLE code:
  59.  
  60. --------------------------------------------------------------------------------
  61.  
  62. 0023 A01D8B03807FD91F
  63. 0024 100007FEB9F
  64. 0025 60000START 7FD06F
  65. 0026 :       99/4 AS
  66.  
  67. --------------------------------------------------------------------------------
  68.  
  69. In the above example I have changed a few numbers to show what relocatable code
  70. might look like. You will notice the "1" for auto-start is still in place, but
  71. there now are "0000" instead of and address. But 0000 is an address. It means
  72. that no matter what the lead address is, that the start of the program is "x000"
  73. So SFIRST equals "A000" and SLOAD is the same. Now slast will work the same as
  74. above except this time it equals A0DC.
  75.  
  76. Confused?? I hope not. If so reread this before continuing!!
  77.  
  78.  
  79.  
  80. ADDING AN ASSEMBLY DEF PROGRAM
  81. ------------------------------
  82.  
  83. I hope that you realize that there was a reason for all of the above jumble! Be-
  84. cause now you are going to use those address to build a short ASSEMBLY program!
  85.  
  86. Type in the following:
  87.  
  88. --------------------------------------------------------------------------------
  89.  
  90.        DEF SFIRST,SLOAD,SLAST
  91. SFIRST EQU >A000
  92. SLOAD  EQU >A000
  93. SLAST  EQU >AODC
  94.        END
  95.  
  96. --------------------------------------------------------------------------------
  97.  
  98. Save this program using whatever name strikes your fancy. Load the assembler and
  99. assemble using another name. Bypass list, and bypass options. It will take a
  100. whole 2-3 seconds to assemble and you are ready for the next step. This source
  101. code can be used indefinitely. Just plug in the appropiatte addresses.
  102.  
  103.  
  104. USING THE SAVE PROGRAM
  105. ----------------------
  106.  
  107. 1) Bring up the "LOAD & RUN" option of the E/A module.
  108.  
  109. 2) Load your non auto-start program.
  110.  
  111. 3) Load the "DEF" program that you wrote. (unless the program already has the
  112.    DEFs in the program)
  113.  
  114. 4) Load the E/A "SAVE" utility
  115.  
  116. 5) Hit enter to "PROGRAM NAME" and hit enter
  117.  
  118. 6) The next prompt will ask for a name. Remember that it will increment the name
  119.    the next ASCII character if the resulting is going to be larger than 8K (33
  120.    sectors), plan accordingly.
  121.  
  122.  
  123. 7) Now hit enter, and try running your NEW program in "RUN PROGRAM FILE" option.
  124.  
  125. If it runs you are home free. If not you may want to go back and check to see if
  126. used the correct addresses. Most of what I wrote above was trial and error on my
  127. part, so experiment and play around with the programs.
  128.  
  129.  
  130. --------------------------------------------------------------------------------
  131.  
  132. The above was a rather short description. There is a shortcuts to find addresses
  133. that uses the Mini-Memory.
  134.  
  135. Initiate the M-M, then load the program. If it starts running you know that you
  136. have to defeat the auto-start feature. Escape the M-M and bring up Easybug. Do
  137. "M7020" and look at page 74 of the M-M manual. 7020 is default entry address. Or
  138. SFIRST and SLOAD. Step down to 7024 and this is the last free address in high
  139. memory or the end of the program. IF 7024 is "0000" then you know that the
  140. program is probably absolute code.
  141.  
  142.  
  143. --------------------------------------------------------------------------------
  144.  
  145. My only dissapointment is determining how to save low and high memory code. If
  146. a program loads at >2000 to >4000 then continues at >A000. The above steps are
  147. useless, because it assumes a continuous count between two addresses. I have not
  148. figured out or taken the time to attempt this format.
  149.  
  150. --------------------------------------------------------------------------------
  151.  
  152. If anyone can add to this file, Please feel free to do so. I am by no means an
  153. expert when it comes to assembly. Have fun and I will answer any questions
  154. within my capability!
  155.  
  156.  
  157. Download complete.  Turn off Capture File.
  158.  
  159.  
  160.