home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 242 / 242.d81 / t.biii < prev    next >
Text File  |  2022-08-26  |  10KB  |  420 lines

  1. u
  2.              B A S S E M
  3.        Fernando Buelna Sanchez
  4.         from Compute! Gazette
  5.             April/May 1990
  6.                Part III
  7.  
  8.  
  9. PROGRAMMING AIDS
  10.  
  11.     In addition to the commands which
  12. affet how your programs assemble,
  13. BASSEM also has commands that aid
  14. program development. Although most of
  15. these commands are intended to be used
  16. only in immediate mode, some can be in
  17. cluded in your source file.
  18.  
  19.  
  20. LABEL <((number/label/string)
  21.       <,<(number/label/string)>>/CLR)>
  22.  
  23.     Displays the labels defined by
  24. BASSEM. Once you have assembled your
  25. source file, typing LABEL displays all
  26. the labels defined in your program
  27. along with their hexadecimal values.
  28. Press <CTRL> to slow the display,
  29. <SHIFT> to freeze it, or <STOP> to
  30. stop it.
  31.  
  32.     You can display a range of labels
  33. by typing the LABEL command followed
  34. by the first and last values of the
  35. range, separated by a comma. For
  36. example
  37.  
  38.     LABEL $A000, 49152
  39.  
  40. displays all the labels with values
  41. between 40960 and 49152. The LABEL
  42. command is similar to BASIC's LIST
  43. command in that you can specify
  44. open-ended ranges by leaving off one
  45. of the range delimiters.
  46.  
  47.     LABEL ,&021
  48.     LABEL $FF81
  49.  
  50. Also note that you can use any of the
  51. numeric formats (binary, octal,
  52. decimal, or hexadecimal) supported by
  53. BASEM.
  54.  
  55.     Another feature of the
  56. LABEL command allows you to display
  57. the value of a specific label or the
  58. values of a range of labels using the
  59. label names.
  60.  
  61.     LABEL CHROUT
  62.     LABEL FRELO1,ENV3
  63.  
  64. If you can't remember exactly how a
  65. label name is spelled or you need to
  66. know the values of several labels with
  67. similar names, you can search for them
  68. using a wildcard string. As with C=DOS
  69. commands, use the question mark to
  70. match any one character and the
  71. asterisk <*> to match any number of
  72. characters.
  73.  
  74.     LABEL "?E*"
  75.  
  76.     HERE = $C000  RESET = $FEC3
  77.     2 LABELS DEFINED
  78.  
  79.     Once you have viewed all the
  80. defined labels, you can erase them
  81. with the LABEL command's CLR option.
  82. Typing LABEL CLR clears or erases the
  83. label buffer as defined by the SET
  84. command.
  85.  
  86.  
  87. FIND chr string chr
  88.  
  89.     Searches the source code in memory
  90. for the given string and lists all
  91. lines in which a match is found. The
  92. [string] parameter is the string you
  93. want to search for and the [chr]
  94. parameters are the delimiting
  95. characters. You can use any character
  96. that is not found in the search string
  97. as your delimiter. If you use the
  98. double-quote mark <"> as the
  99. delimiter, the search string will be
  100. used as is; otherwise, the string will
  101. be tokenized before the search begins.
  102.  
  103.     As BASSEM searches, it lists each
  104. line containing a string that matches
  105. the search string. If the lines begin
  106. to scroll off the scree, you can slow
  107. the display by pressing <CTRL>, freeze
  108. it with <SHIFT>, or stop it with
  109. <STOP>. The followinig are some
  110. examples of valid search commands:
  111.  
  112. NOTE: Because of the way BASSEM
  113. tokenizes the new commands, you may
  114. have lines that do not contain your
  115. search string when it is a command.
  116.  
  117.     FIND /PRINT/
  118.         (search for PRINT command)
  119.  
  120.     FIND "PRINT"
  121.         (search fo the work "PRINT")
  122.  
  123.     FIND ZXYZ
  124.         (search for the varable XY)
  125.  
  126.     FIND _LOOP_
  127.         (search for label _LOOP)
  128.  
  129.  
  130. AUTO <increment>
  131.  
  132.     Prints line numbers automatically.
  133. The increment parameter determines how
  134. BASSEM calculates the next line
  135. number. To hve BASSEM print the line
  136. numbers for you, enter the AUTO
  137. command with the increment valuse and
  138. then enter your first line of code.
  139. When you press <RETURN> to enter the
  140. line, BASSEM prints the next line
  141. number. The line number it prints is
  142. the current line number plus the
  143. increment value.
  144.  
  145.     For example, if you enter the
  146. command AUTO 10 and then type
  147.  
  148.     100 'WORLD'S GREATEST PROGRAM
  149.  
  150. BASSEM will print 110 as the next line
  151. number. To turn off the automatic line
  152. number option, enter AUTO command by
  153. itself. Valid increment values are 0 -
  154. 65535.
  155.  
  156.     When you are in AUTO mode, if a
  157. new line number already exists, the
  158. computer prints a <'> prior to the
  159. line number. If this happens, you can
  160. press <RETURN> and the old line won't
  161. be changed.
  162.  
  163.     You can stop AUTO in one of three
  164. ways: by pressing <RETURN> on a line
  165. beginning with a <'>, press <RETURN>
  166. over an empty line, or Press <Shift-
  167. RETURN> anywhere.
  168.  
  169.  
  170. RENUM <start line <,increment>>
  171.  
  172.     Changes the line number of the
  173. program so that they increment by a
  174. constant value. The first parameter
  175. indicates the line number for the
  176. first line of the program. The second
  177. parameter gives the step values used
  178. between successive line numbers.
  179.  
  180.     For example,
  181.  
  182.     RENUM 100,5
  183.  
  184. will renumber the program so the first
  185. line number is 100, and all other
  186. lines are by 5's. Entering RENUM
  187. without any parameters uses the
  188. default values of 10,10. This command
  189. does [NOT] change any GOTO or GOSUB
  190. line numbers. (Not particularly useful
  191. -- Ed.)
  192.  
  193.  
  194. DEL (line# <- <line#>>/-line#)
  195.  
  196.     Works just like LIST, except that
  197. lines in the given range disappear
  198. forever.
  199.  
  200.  
  201. OLD
  202.  
  203.     Recovers a source file erased
  204. using BASIC's NEW command. Does not
  205. rescue a program erased with the DEL
  206. command.
  207.  
  208.  
  209. LFT (SET/CLR)
  210.  
  211.     List FormaT -- displays LISTing of
  212. program in an easy-to-read style. You
  213. can add new lines while in LFT SET
  214. mode, but [do not] edit a line that is
  215. formated. LFT CLR turns off feature.
  216.  
  217.  
  218. DISK COMMANDS
  219.  
  220.     In addition to all the above,
  221. BASSEM adds seven commands for
  222. controlling your disk drive. These
  223. default to drive 8 unless you specify
  224. otherwise. Also, commands that require
  225. a string or filename as a parameter
  226. can accept up to 41 characters.
  227.  
  228.  
  229. DISK <(string <,dev>/new default dev)>
  230.  
  231.     Sends string to the disk drive
  232. command channel, displays drive
  233. status, or sets default device drive
  234. number. If you enter DISK followed by
  235. a string, BASSEM send the string to
  236. the default drive's command channel.
  237. This is useful for performing tasks
  238. such as scratching files or validating
  239. disks. When typed alond, DISK displays
  240. the drives current status.
  241.  
  242.     Another feature of DISK is that it
  243. allows you to change the default
  244. drive, with
  245.  
  246.     DISK dev
  247.  
  248. where dev is a device number (8-11).
  249.  
  250.  
  251. DIR <string <,dev>>
  252.  
  253.     Displays a disk directory on the
  254. screen. By itself, DIR lists the whole
  255. directory. The string parameter is
  256. like using LOAD"$:b?.*",dv (except
  257. with DIR, your program is not
  258. bothered). And the dev parameter lets
  259. you get directories from any drive.
  260.  
  261.  
  262. WRITE filename <,dev>
  263.  
  264.     Writes the object code generated
  265. by BASSEM to disk. Do not forget the
  266. ",P,W" extension on the filename! You
  267. can write to any drive by including
  268. the dev parameter.
  269.  
  270.     For BASSEM to write the object
  271. code correctly, you must place the
  272. WRITE command before the BAS and PASS
  273. 1 commands. This is all handled for
  274. you if you use SHELL.BC.
  275.  
  276.  
  277. PUT (line# <-<line#>>/-line#),filename
  278.     <,dev>
  279.  
  280.     Saves protions of the source code
  281. in given range to filename. Sort of
  282. LIST meets SAVE!
  283.  
  284.  
  285. AFFIX filename <,dev>
  286.  
  287.     Appends a source file to the end
  288. of the program in memory. AFFIX works
  289. like LOAD, except the file doesn't
  290. overwrite the current program.
  291.  
  292.     AFFIX does not merge the file from
  293. the disk with the program in memory.
  294. It does no replace existing lines. It
  295. does not arrange the two files in
  296. line-number order. It just AFFIXes!
  297.  
  298.  
  299. DLIST filename <,dev>
  300.  
  301.     Lists a source program file from
  302. disk without disturbing memory. You
  303. can control how the listing scrolls
  304. with <CTRL>, <SHIFT>, and <STOP>.
  305. (Note: Excellent for recovering lines
  306. that got screwed up. DLIST the BC
  307. file, stop the listing at the right
  308. place, then press <RETURN> over each
  309. line to be replaced.)
  310.  
  311.  
  312. MERGE filename <,dev>
  313.  
  314.     Merges a program from disk with
  315. the one in memory by reading the
  316. program from the disk, listing each
  317. line to the screen, and adding it to
  318. the program in memory. When programs
  319. have common line number, the merged
  320. line takes precedence. (Be sure LFT is
  321. CLR before using MERGE.)
  322.  
  323.  
  324. ERROR MESSAGES
  325.  
  326.     To help you debug your program,
  327. BASSEM adds several error and warning
  328. messages to BASIC.
  329.  
  330.  
  331. OUT OF LABEL MEMORY
  332.  
  333.     The buffer you SET is full. Make
  334. it bigger.
  335.  
  336.  
  337. LABEL ALREADY EXISTS
  338.  
  339.     You have tried to define a label
  340. that is already there. To fix the
  341. problem,
  342.  
  343.     FIND _LABEL_
  344.  
  345. then change one instant or set of the
  346. offending of the label.
  347.  
  348.  
  349. LABEL NOT FOUND
  350.  
  351.