home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 88 / 088.d81 / t.mldocs < prev    next >
Encoding:
Text File  |  1991-01-01  |  20.7 KB  |  774 lines

  1.           COMVIEW USERS MANUAL 
  2.  
  3.              by Rick Nash 
  4.  
  5.      Load COMVIEW as you would any
  6. BASIC program, then simply type RUN to
  7. start.  At this point you will see the
  8. main screen.  It consists of two
  9. parts.  On the top is a window divided
  10. into three parts.  The upper left
  11. window shows the current state of the
  12. 6502 registers.  The lower left window
  13. shows six bytes from any three memory
  14. location in the computer.  The right
  15. window shows the current contents of
  16. the hardware stack.  At this point,
  17. don't worry if you don't understand
  18. any of this.  It will become clear as
  19. we begin to use different features of
  20. COMVIEW. 
  21.  
  22.     The bottom window (Main window) is
  23. the business end of COMVIEW.  This is
  24. where most of the work gets done. 
  25. Things like the memory command, the
  26. assembler and disassembler use this
  27. window for data entry and display.  At
  28. this point, a title message appears in
  29. this window.  Let us now turn our
  30. attention to the MAIN MENU.  Press the
  31. Commodore key and M simultaneously.  
  32.  
  33.   ---------------
  34.    THE MAIN MENU
  35.   --------------- 
  36.  
  37.      At this point, the main menu is
  38. displayed.  Note the characters inside
  39. the square brackets.  These are the
  40. "HOT" keys that are available while
  41. this menu is shown.  You can either
  42. use the UP and DOWN CRSR keys to
  43. choose your selection, then press
  44. RETURN, or press the hot key for your
  45. choice.  In the tutorials, we will use
  46. the following mnemonics for making
  47. menu selections: 
  48.  
  49.     [MAIN-T] - means press the T hot
  50. key on the MAIN menu. 
  51.  
  52.     Menu items followed by ellipses
  53. (...) means that a sub-menu will open.
  54.  
  55.  
  56.     From all but the MAIN menu, the
  57. back arrow is used as an escape key. 
  58. Pressing the escape key will halt
  59. almost all operations (except quick
  60. trace).  Pressing the escape key from
  61. a menu, will take you to the previous
  62. menu.  Some menus offer a "quick" exit
  63. key that will zoom to the MAIN menu. 
  64. This option is clearly marked on menus
  65. that support it.  The remainder of
  66. this manual will describe all of the
  67. options and features of COMVIEW. 
  68.  
  69.   ---------------
  70.    THE HELP MENU
  71.   --------------- 
  72.  
  73.     Pressing [MAIN-H] will present the
  74. HELP menu.  There are three help
  75. screens avaliable: 
  76.  
  77.     [HELP-G] - Will display a short
  78. synopsis of legal keystrokes and
  79. general information about COMVIEW. 
  80.  
  81.     [HELP-I] - Will bring up the
  82. instruction set help menu.  Select the
  83. instruction using the UP, DOWN, LEFT
  84. and RIGHT arrow keys.  Then press
  85. RETURN to enter your choice.  A window
  86. will open with full information on the
  87. chosen instruction.  This window
  88. offers a ZOOM key (the RETURN key) to
  89. zoom to the main menu. 
  90.  
  91.     [HELP-C] - Brings up the
  92. conversion table.  This table a
  93. consists of five columns: DEC, HEX,
  94. BINARY, ASCII and SCREEN CODES.  Use
  95. this for base conversions or
  96. ASCII/SCREEN codes.  Active keys are
  97. the UP and DOWN CRSR keys and F7,
  98. which will move forward one page. 
  99.  
  100.     Remember: to back out of anything,
  101. press the BACK ARROW (COMVIEW escape
  102. key). 
  103.  
  104.   ---------------------
  105.    FILL MEMORY COMMAND
  106.   --------------------- 
  107.  
  108.      Pressing [MAIN-I] will initiate
  109. the fill memory command.  This command
  110. is used to initialize a section of
  111. memory to a given value.  Note that
  112. you can change ANY memory location,
  113. including where COMVIEW is residing,
  114. so use this command carefully.  Three
  115. requesters will prompt you for the
  116. starting, ending and fill byte.  A
  117. requester is a white box that appears
  118. and asks for user input.  Enter the
  119. information, and press RETURN, or use
  120. the escape key to cancel.  After the
  121. third requester, the memory will be
  122. filled. 
  123.  
  124.  
  125.   -------------
  126.    PREFERENCES
  127.   ------------- 
  128.  
  129.      Pressing [MAIN-P] will show the
  130. preferences menu.  This menu allows
  131. you to set up defaults for the way
  132. COMVIEW acts.  At this time, only two
  133. entries are found on the preferences
  134. screen: 
  135.  
  136.     [PREFS-S] - Will enable/disable
  137. screen-swapping.  Screen-swapping is
  138. covered under the trace command. 
  139.  
  140.     [PREFS-R] - Will enable/disable
  141. repeating keys.  This will be noticed
  142. on commands such as the MEMORY command
  143. [MAIN-M]. 
  144.  
  145.     Note the parentheses after each
  146. item.  If a large dot is shown, then
  147. the feature is ENABLED, otherwise it
  148. is DISABLED. 
  149.  
  150.   -------------
  151.    DISASSEMBLE
  152.   ------------- 
  153.  
  154.      The disassemble command [MAIN-D],
  155. will show a section of memory in
  156. machine language mnemonic form.  A
  157. requester will ask for the starting
  158. address, and then start the
  159. disassembler.  Active keys are the UP
  160. and DOWN CRSR keys (meaning forward
  161. and backward scrolling disassembly),
  162. and of course the escape key.  Note
  163. that disassembling a data table will
  164. produce garbage mnemonics (watch the
  165. ASCII field), but if real ML follows
  166. the table, the disassembler will right
  167. itself after several bytes.  Here is a
  168. sample disassembled line: 
  169.  
  170.    A      B       C    D      E
  171.    ------------------------------
  172.   EACD  C0 41    CPY #$41    ;-A 
  173.  
  174. field a = hexadecimal address 
  175.  
  176.       b = machine bytes (hex) 
  177.       c = mnemonic disassembly 
  178.       d = operand 
  179.       e = ASCII representation 
  180.  
  181.   ----------
  182.    ASSEMBLE
  183.   ---------- 
  184.  
  185.      The assemble [MAIN-A] command
  186. allows you to enter machine language
  187. mnemonics into memory.  Note that this
  188. command does not pretend to be a REAL
  189. assembler (see ROCK'S ASSEMBLER,
  190. published on LOADSTAR #87).  Rather,
  191. it allows you to quickly and easily
  192. enter small chunks of code.  It does
  193. however offer a few niceties such as
  194. limited labels, decimal or hex
  195. operands and several pseudo-ops. 
  196. After entering the address at the
  197. requester, you are placed at the main
  198. window with the address listed, and a
  199. flashing cursor.  COMVIEW is waiting
  200. for a line of machine code to be
  201. entered, such as: 
  202.  
  203.     LDA #$00 <RETURN> 
  204.  
  205.     or 
  206.  
  207.     LDA #0 <RETURN> 
  208.  
  209.     After pressing RETURN, the line is
  210. converted to machine code and inserted
  211. into memory.  The next address is
  212. shown, and the process continues.  The
  213. DEL key can be used to erase any
  214. mistakes before pressing the RETURN
  215. key.  Errors are flagged by an error
  216. window that pops up above the main
  217. window.  The error is described, and
  218. the line is shown with an arrow
  219. pointing at the infraction.  Pressing
  220. C will allow you to continue entering
  221. mnemonics. 
  222.  
  223. PSEUDO OPS 
  224.  
  225.     Pseudo ops are mnemonics for the
  226. assembler, not the 6502.  Three
  227. Pseudo's are legal: 
  228.  
  229.     ORG address - change the current
  230. address 
  231.  
  232.     BYT value   - enter the byte (or
  233. word) at the current location 
  234.  
  235.     WOR value   - enter the current
  236. word (hex or decimal) 
  237.  
  238.     (note: BYT $1234 and WOR $1234
  239. will produce like output, 34 12) 
  240.  
  241.  
  242.   --------
  243.    LABELS
  244.   -------- 
  245.  
  246.      Limited labels are supported. 
  247. Use labels only on RELATIVE branch
  248. instructions.  A minus (-) followed by
  249. the character 0-9 for backwards
  250. branches, and a plus (+) followed by
  251. the character 0-9 for forward
  252. branches. 
  253.  
  254.     For example: 
  255.  
  256.  
  257.  
  258.  
  259.             LDX  #0 
  260.         -0  TXA 
  261.             CPX  #40 
  262.             BEQ  +8 
  263.             STA  $C100,X 
  264.             INX 
  265.             BNE  -0 
  266.         +8  RTS 
  267.  
  268.     This nonsense code demonstrates
  269. the use of forward and backward
  270. labels.  Note that the + and - are not
  271. mathematical, they simply are mnemonic
  272. for forwards and backwards.  You must
  273. keep track of all labels.  Since there
  274. is no source code, any label that
  275. scrolls from the screen will be lost
  276. forever, so jot down your labels.  Any
  277. forward label not referenced will NOT
  278. be flagged!  This is handled by making
  279. the branch point to itself.  For
  280. example: 
  281.  
  282.     C020    BNE  +5 
  283.  
  284.    Will be installed as: 
  285.  
  286.     C020    BNE  $C020 a
  287.     until the +5 is referenced again.
  288. If you forgot to reference it, an
  289. endless loop will result.  If your
  290. program hangs, this is probably why. 
  291. Consider yourself warned! 
  292.  
  293.      To stop the assembler, just press
  294. the escape key. 
  295.  
  296.  
  297.   ----------
  298.    REGISTER
  299.   ---------- 
  300.  
  301.      The register command [MAIN-R] is
  302. used to set the initial value of the
  303. .A, .X or .Y registers (register names
  304. will be preceded with a period in this
  305. manual).  When selected, a requester
  306. will prompt for a register value. 
  307. After pressing RETURN, you will notice
  308. a highlighted bar over the .A register
  309. in the register window on the upper
  310. left of your screen.  The value shown
  311. will be the number you typed in.  If
  312. you move the bar with the UP or DOWN
  313. CRSR keys, note that your number
  314. "floats" above the previous register
  315. values.  Position the bar over the
  316. register you want to change, then
  317. press RETURN.  This places your value
  318. into the register.  As usual, you can
  319. press the escape key to exit without
  320. changing any registers. 
  321.  
  322.  
  323.   --------
  324.    MEMORY
  325.   -------- 
  326.  
  327.      Pressing the memory command
  328. [MAIN-M], will allow you to enter
  329. values directly into any memory
  330. location.  When selected, you are
  331. prompted for an address with the usual
  332. requester.  The following display will
  333. show the main window, with the memory
  334. displayed starting at the address you
  335. specified.  There will be a
  336. non-flashing cursor showing your
  337. location in memory.  Note that there
  338. are three fields for each line.  The
  339. first field is the hex address.  The
  340. next field shows eight bytes of
  341. memory, starting at that address,
  342. represented in hex.  The last field
  343. shows the same eight bytes as
  344. represented in ASCII.  Non-displayable
  345. ASCII such as control codes are shown
  346. as periods.  You can change any byte
  347. by using the cursor keys to move the
  348. cursor to the desired byte, and type
  349. the hex digit (0-9 and A-F).  There is
  350. no need to press RETURN to enter the
  351. digit.  The UP and DOWN CRSR keys will
  352. allow you to scroll forward and
  353. backward through memory.  The F7 key
  354. will change fields.  If you are on the
  355. hex fields, pressing F7 will move the
  356. cursor to the ASCII fields.  Pressing
  357. F7 on the ASCII fields will place the
  358. cursor on the hex fields.  While on
  359. the ASCII field, you can press any key
  360. (except of course, the cursor keys and
  361. the F7 key).  This allows quick entry
  362. of ASCII data tables.  Press the
  363. escape key at any time to quit the
  364. memory mode. 
  365.  
  366.  
  367.   -------
  368.    WATCH
  369.   ------- 
  370.  
  371.      The watch command, [MAIN-W] is
  372. used to set a watch point.  A watch
  373. point allows you to watch a memory
  374. location during the tracing feature of
  375. COMVIEW.  The watch window is located
  376. directly under the register window at
  377. the top of the screen.  Three memory
  378. locations of six bytes each may be
  379. watched.  The field layout is the same
  380. as the MEMORY command above, except
  381. that six bytes are shown instead of
  382. eight.  Operation is similiar to the
  383. register command ([MAIN-R]).  After
  384. entering the address at the requester,
  385. a "floating" bar will allow you to
  386. place the desired address at any one
  387. of the three possible locations. 
  388. Press RETURN to make your choice, or
  389. escape to quit. 
  390.  
  391.  
  392.   -------------
  393.    BREAK POINT
  394.   ------------- 
  395.  
  396.     The break point is used in
  397. conjunction with the QUICK TRACE
  398. option [MAIN-Q].  The current
  399. breakpoint is shown in the register
  400. window at the top of the screen, with
  401. the label: BP=.  After selecting BREAK
  402. POINT, a requester prompts for an
  403. address.  After pressing RETURN, note
  404. that value in the register window
  405. should reflect the address that you
  406. just entered.  See QUICK TRACE for
  407. more information on BREAK POINTS. 
  408.  
  409.  
  410.   -------
  411.    TRACE
  412.   ------- 
  413.  
  414.     The TRACE feature [MAIN-T] is the
  415. HEART of COMVIEW.  It will allow you
  416. to execute your program one
  417. instruction at a time.  After each
  418. instruction is executed, the REGISTER,
  419. WATCH and STACK windows are updated so
  420. that you can see the internal workings
  421. of the computer in action.  In
  422. addition, if screen-swapping is
  423. enabled, the alternate screen is
  424. swapped in when your instruction
  425. executes, and back out when it is
  426. done.  This feature allows you to use
  427. instructions that use the screen
  428. without fear of clobbering the COMVIEW
  429. screen.  It does, however, create
  430. unsightly screen flicker.  For best
  431. performance, be sure to disable
  432. screen-swapping (use [MAIN-P]
  433. [PREFS-S] to toggle screen-swapping on
  434. and off) if your program does not use
  435. the screen.  If the COMVIEW screen
  436. gets written to by accident, use the
  437. UPDATE [MAIN-U] command to freshen the
  438. COMVIEW display.  The F3 key is used
  439. to toggle the swapped screens. 
  440.  
  441.     After answering the address
  442. requester when starting the trace
  443. mode, the first address is disasembled
  444. on the main window.  COMVIEW is now
  445. waiting for one of three keystrokes. 
  446. SPACE will execute the instruction
  447. shown, then disassemble the next
  448. instruction, and the process
  449. continues.  The J key can be used if
  450. the current instruction is a JSR.  It
  451. will call the routine, and continue
  452. execution with the next instruction
  453. after the JSR.  This is called
  454. "stepping over" a call. 
  455. Alternatively, you could press SPACE
  456. at the JSR call, and this is called
  457. "stepping through" a call.  Do you see
  458. the difference?  Pressing J at the JSR
  459. calls the routine, SPACE will execute
  460. each instruction at the JSR address. 
  461. Note, that for convenience, the J key
  462. acts like SPACE for any instruction
  463. that is not a JSR.  While stepping
  464. through the program watch the windows
  465. at the top of the screen. You will
  466. gain great insight on the actions of
  467. the microprocessor.  As usual, the
  468. escape key will exit the trace
  469. function. 
  470.  
  471. Note: The tracer may not function on
  472. any RS-232 functions.  You may find
  473. that it chokes on certain KERNAL or
  474. ROM calls.  This is due to the fact
  475. that the NMI interrupt is used for the
  476. trace feature. 
  477.  
  478.  
  479.   -------------
  480.    QUICK TRACE
  481.   ------------- 
  482.  
  483.     The quick trace [MAIN-Q] works
  484. like the TRACE feature, except that
  485. the tracing operation is automatic. 
  486. That is, you do not press keys to
  487. control the tracing action -- it is
  488. automatic.  Press any of the shifting
  489. keys (Commodore, CONTROL, SHIFT or
  490. SHIFT LOCK) to pause the display.  The
  491. STOP key can be used to abort the
  492. quick trace at any time.  At that
  493. point, you will be left in the normal
  494. trace mode.  This command should be
  495. used to skip over unwanted code, to
  496. get to a point where you want to
  497. trace. 
  498.  
  499.     WARNING!  You MUST use the BREAK
  500. POINT [MAIN-B] command BEFORE using
  501. the quick trace command!  If you
  502. ignore this warning, bad things will
  503. surely happen.  So the sequence of
  504. events should be: 
  505.  
  506.     1) Set the breakpoint to the
  507. address that you want quick trace to
  508. stop at (make sure that the address
  509. will be executed). 
  510.  
  511.     2) Set or clear the screen swap
  512. flag if needed.    
  513.  
  514.     3) Use QUICK TRACE to execute your
  515. program. 
  516.  
  517.     Follow these steps, and everything
  518. will be copacetic! 
  519.  
  520.   ------
  521.    CALL
  522.   ------ 
  523.  
  524.     The call command [MAIN-C] allows
  525. you to do the equivalent of a SYS
  526. (JSR) from the keyboard.  After the
  527. address requester, your routine will
  528. be executed.  The screen is swapped if
  529. swapping is enabled.  The registers,
  530. stack and watch windows, reflect their
  531. status at the exit from the routine. 
  532.  
  533.     WARNING!  You MUST have an RTS
  534. instruction at the end of the code you
  535. are executing, or you risk crashing
  536. the computer! 
  537.  
  538.   ----
  539.    GO
  540.   ---- 
  541.  
  542.     The go [MAIN-G] command executes a
  543. program.  Execution continues until a
  544. BRK instruction.  As with the CALL
  545. command, screen swapping, register,
  546. stack and watch windows are updated. 
  547.  
  548.     WARNING!  The code executed MUST
  549. end with a BRK instruction.  A crash &
  550. burn is a definite possibility if you
  551. don't heed this warning! 
  552.  
  553.   ------
  554.    FILE
  555.   ------ 
  556.  
  557.     The file command [MAIN-F] will
  558. open a sub-menu with the following
  559. options: 
  560.  
  561.     [FILE-S] - Allows you to save your
  562. ML programs to disk.  Enter the
  563. filename, start and end addresses when
  564. prompted. 
  565.  
  566.     [FILE-L] - Use this option to load
  567. machine language files from disk.  You
  568. can relocate while LOADing or, when
  569. prompted for an address, you can just
  570. press RETURN, and the file will load
  571. at the address from where it was
  572. saved. 
  573.  
  574.     [FILE-V] - Will verify that the
  575. file on disk is the same as the
  576. program in memory. 
  577.  
  578.     [FILE-D] - Shows the current
  579. directory.  Press STOP to abort, or
  580. one of the SHIFT keys to pause. 
  581.  
  582.     [FILE-U] - Opens a sub-menu for
  583. changing the device number.  The
  584. current device is always displayed on
  585. the main file window. 
  586.  
  587.     [FILE-E] - Shows the current disk
  588. error message. 
  589.  
  590.   -------------
  591.    VIEW OUTPUT
  592.   ------------- 
  593.  
  594.      The View Output option [MAIN-V],
  595. allows you to examine the current
  596. state of the output window.  It works
  597. like the F3 key during the Trace mode.
  598.  After viewing the screen, press any
  599. key to return to the Main menu. 
  600.  
  601.   ----------
  602.    GLOSSARY
  603.   ---------- 
  604.  
  605.  6502/6510 - The family of
  606. microprocessors found in most
  607. Commodore computers. 
  608.  
  609. ACCUMULATOR - A register located in
  610. the microprocessor, where all of the
  611. math gets done.  On the 6502, the
  612. register is named A. 
  613.  
  614. ASSEMBLER - A program that converts
  615. assembly language mnemonics into
  616. machine code.  Many other features are
  617. usually offered in an assembler to
  618. help machine language programmers cope
  619. with their task. 
  620.  
  621. ASSEMBLY LANGUAGE - Since a
  622. microprocessor only understands
  623. numbers (see machine language), it
  624. would be very tedious for programmers
  625. to write machine code programs.  So
  626. the designers of the chips invented
  627. "mnemonics", or three letter words
  628. that describe the machine instructions
  629. in terms more easily understood by
  630. humans.  Which makes more sense to
  631. you, LDA, or 10101001?  It is
  632. important that you understand that
  633. mnemonics like LDA are completely
  634. meaningless to the micro.  They are
  635. for human consumption only.  The list
  636. of mnemonics for a given
  637. microprocessor is said to be its
  638. assembly language. (See assembler). 
  639.  
  640. BINARY - A numbering system with a
  641. base of 2.  Only 1's and 0's are valid
  642. in this numbering system.  Ex: 101
  643. binary = 5 decimal, 1111 binary = 15
  644. decimal. 
  645.  
  646. BIT - One binary digit (0 or 1). 
  647.  
  648. BYTE - On the C-64, a byte is eight
  649. binary digits (or bits).  It can hold
  650. a number from 0 (00000000 binary) to
  651. 255 (11111111 binary). 
  652.  
  653. HEXADECIMAL -  A numbering system with
  654. a base of 16. The numbers 0-9
  655. represent their decimal equivalent,
  656. while A-F represents the numbers 10-15
  657. respectively.  Ex: 0A hex = 10
  658. decimal, 10 hex = 16 decimal. 
  659.  
  660. K - Short for KILOBYTE, or 1024 bytes.
  661.  
  662.  
  663. MACHINE LANGUAGE - The native language
  664. understood by a microprocessor.  Since
  665. each memory location can only hold
  666. numbers, (0-255), then it seems
  667. logical that instructions to the
  668. microprocessor must be numerical.  It
  669. turns out that different numbers
  670. instruct the micro to do different
  671. tasks. These numbers are called
  672. opcodes, and are the "machine
  673. language" of a microprocessor such as
  674. the 6502. (see assembly language) 
  675.  
  676. MEMORY - Special chips located in the
  677. computer can hold information.  In the
  678. C-64, this information is a number
  679. from 0 to 255, or a byte.  These bytes
  680. must be in some kind of order, or else
  681. the computer couldn't find bytes that
  682. it needs.  So, each byte has an
  683. "address", the number of addresses is
  684. limited by the type of microprocessor
  685. installed in the computer. The 6510 in
  686. your C-64 can access 64K, or 65536
  687. bytes of memory. The address of each
  688. byte is linear, ie. from address 0 to
  689. address 65535, and each address can
  690. hold a single byte.  Some memory is
  691. lost when you turn off the computer
  692. (RAM), and some will never go away
  693. (ROM).  Some addresses in your
  694. computer are neither RAM nor ROM. 
  695. This memory is known as I/O registers.
  696.  These registers allow the computer to
  697. communicate with other things like the
  698. video display, the sound chip, the
  699. disk drive, modems etc.  I/O means
  700. Input/ Output, or input to the
  701. computer, or output to some other
  702. device.  The microprocessor sees these
  703. I/O locations for the most part like
  704. RAM. 
  705.  
  706. MICROPROCESSOR - The microprocessor,
  707. or micro, is the intelligence of the
  708. computer.  By itself, it is pretty
  709. stupid, but add a program, and it
  710. really can get some work done fast. 
  711. For instance, your 6510 in the C-64 is
  712. capable of adding two numbers together
  713. in around 6 microseconds (thats 6
  714. millionths of a second!), so your
  715. micro could add around 167,000 pairs
  716. of numbers in just 1 second!  The
  717. acronym CPU (Central Processing Unit)
  718. is sometimes used to mean the same
  719. thing as a microprocessor. 
  720.  
  721. MICROSECOND - 1 millionth of a second
  722. (1/1,000,000 sec) or 1,000
  723. MILLISECONDS. 
  724.  
  725. MILLISECOND - 1 thousandth of a second
  726. (1/1,000 sec) 
  727.  
  728. MNEMONIC - (pronounced knee mon ick)
  729. According to my dictionary, a mnemonic
  730. is "Aiding or designed to aid the
  731. memory".  Designers of microprocessors
  732. invent mnemonics that briefly describe
  733. each machine language instruction.
  734. This is used to aid humans in
  735. remembering the instruction set of a
  736. given microprocessor.  For the 6502,
  737. all mnemonics are three characters in
  738. length, and usually "sound" like the
  739. job they do.  For example:  LDA  means
  740.  load the accumulator (most ML
  741. programmers pronounce LDA as LoaD A).
  742. Mnemonics are important to humans, not
  743. micros. Microprocessors only
  744. understand numbers. (see assembly
  745. language) 
  746.  
  747. OPCODE - An opcode is a number that
  748. corresponds to a machine language
  749. instruction.  For example, 169 is the
  750. 6502 opcode for the mnemonic LDA. 
  751.  
  752. RAM - Memory in the C-64 that can be
  753. read from, and written to.  RAM is an
  754. acronym for Random Access Memory. 
  755.  
  756. REGISTER - A memory location located
  757. in the microprocessor.  This memory
  758. location is not within the 64K of
  759. memory of the computer.  It can be
  760. accessed only by special instructions.
  761.  
  762. ROM - Memory whose contents are
  763. permanently the same value.  Its value
  764. even survives without power.  ROM is
  765. an acronym for Read Only Memory 
  766.  
  767. RN - Acronym for Registered Nurse,  
  768.  
  769. Really Nice or, in this case, my
  770. initials.  Usually placed at the end
  771. of text. 
  772.  
  773.          **** End Of Text ****
  774.