home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / education / b / wimpfetch / !WimpFetch / !Help / ReadMe < prev    next >
Encoding:
Text File  |  1996-01-28  |  7.7 KB  |  208 lines

  1. ================
  2. == !WimpFetch ==
  3. ================
  4.  
  5. (c) Jochen Lueg
  6. Lecturer in Electronics and Computing
  7. College of Further Education
  8. Mainstreet
  9. Limavady
  10.  
  11. £10 donations please to the Computer kitty, room 57 at the above address
  12.  
  13. What is !WimpFetch?
  14. ===================
  15. !WimpFetch was written to aid the understanding and teaching of  the famous
  16. Fetch- Execute cycle used by every CISC computer. Ideal for A-Level in com-
  17. puting and BTEC National Diplome in Computing.
  18.  
  19. It uses a processor that is so basic, it will just about work.
  20.  
  21. !WimpFetch can also be  used to learn or  to teach the basic  principles of
  22. assembly code. The computer  model provided is the 65-JL, a product of pure
  23. fantasy and some heavy  borrowing from the noble  6502.  This new processor
  24. has the unique ability to store an instruction plus an address (i.e 16 bits) 
  25. in its memory and registers,  but only 8-bits  for data.   (It does this by
  26. using unique extra flexible rubber registers. These are of my own invention
  27. and not yet patented.)
  28.  
  29. !WimpFetch can single-step in  slow or fast mode  through a program written
  30. in !Edit. The behaviour of all  relevant registers,  control lines and data
  31. lines is displayed in real time. 
  32.  
  33. A separate panel displays the pseudo code for every step.
  34.  
  35.  
  36.  
  37. The 65-JL microprocessor
  38. ========================
  39.  
  40. The 65-JL  microprocessor is  loosely  based  on the  6502 chip. It has one
  41. general purpose register, the Accumulator. It also boasts an index register
  42. and three flags - Zero, Carry and Negative.  The 65-JL has three addressing
  43. modes. Absolute,  immediate  and indexed.  Two further addressing modes are
  44. used for certain instructions only.  Implied addressing mode is used by all
  45. register address instructions and relative addressing mode is  used for all
  46. branch instructions.  Notice  the absence of a  stack register - type 65-JL
  47. does not yet support a  stack structure. Further improvements are of course
  48. always possible.
  49.  
  50. The  65-JL addresses a small  memory of 96 locations.  Memory locations can
  51. only be used  for reading and writing - they  cannot be  shifted or rotated.
  52. There is no operating system - so don't try SWI's or OSByte calls. 
  53.  
  54.  
  55.  
  56.  
  57. 65-JL Assembly Code
  58. ===================
  59.  
  60. Programs  should be  written in !Edit  and saved into the special directory
  61. inside the !WimpFetch  application. Easy  access to  this directory can  be
  62. gained by clicking on the  switch labelled "Files" or by selecting the same
  63. option  from the menu. Once saved, programmes can be loaded into  memory by
  64. the usual click, drag, release method.
  65.  
  66. There is  limited  error  checking  and programs must  follow strict rules,
  67. otherwise  the processor will  hang up. All  programs must start with BEGIN
  68. followed by ORIGIN nn, where nn is  the start  location in  hex. This value
  69. will automatically be loaded into the SCR on reset.
  70.  
  71. The above must be followed by the directive CODE START. The code must start
  72. with an instruction  followed by a  single space followed by a  hexadecimal
  73. address nn or  by #nn to indicate immediate mode. The line must not contain
  74. any empty spaces.
  75.  
  76. It  must be  emphasised  that the program  will only  understand  two digit
  77. hexadecimal numbers, i.e. A is not understood - it must be 0A. Opcodes must
  78. use upper case.
  79.  
  80. The  code section  must be  terminated  by  the  directive  CODE END.   The
  81. directive  DATA nn,  where  nn is the  start  location of  the numbers that
  82. follow is next. These must be in the form  n1,n2,n3  and all must be in the
  83. same line.  There can be as many  DATA  statements as are  desired but each
  84. statement should be followed by at least one operand.
  85.  
  86. END terminates the program.
  87.  
  88. Here is an example. The program adds the  number that is in location  30 to
  89. the number in 31 and stores the result in 32. The numbers 45 and 55 are put
  90. into locations 30,31 via the DATA directive.
  91.  
  92.                  BEGIN
  93.                  ORIGIN 00
  94.                  CODE START
  95.                  CLC
  96.                  LDA 30
  97.                  ADC 31
  98.                  STA 32
  99.                  CODE END
  100.                  DATA 30
  101.                  45,55
  102.                  END
  103.  
  104.  
  105. Branches
  106. ========
  107. Branches must be expressed in  two's  complement  notation  relative to the
  108. present content of the program counter. This means that a branch of -1 (FF)
  109. returns to the current statement.
  110.  
  111.  
  112. A practice session
  113. ==================
  114. Double  click on  !WimpFetch to install it on  the icon bar.  Click once on
  115. the icon and  two  windows  will open.  The 65-JL processor window  and the
  116. memory  window.  The two windows  are  linked, so  that when   you move the
  117. processor window, the memory travels with it. The memory window can however
  118. be moved independently. To return it to  its proper place, click on the red
  119. switch "Return memory" that it leaves behind.
  120.  
  121. On the left bottom of the processor window is a bank of switches.  Click on
  122. "Files". This will open a filer  window containing  all available programs.
  123. Select one by pressing and holding "Select"  on it and dragging it anywhere
  124. within  the  processor window.   The  programs  may be  examined by  double
  125. clicking on their icons. This will load them into an edit window,  ready to
  126. be edited.
  127.  
  128. The program should now be in memory. This may not be obvious if the  Origin
  129. is not 00. All computers must be reset, so click on the "Reset" button. The
  130. start location of the program should now appear in the SCR.
  131.  
  132. To step through the program click on the switch "Clock". This will activate
  133. one  step of the  fetch execute cycle.  The SCR will be copied into the MAR
  134. and the pseudo  code will appear in the left  panel.  By  the way, all data
  135. lines are red and all control lines are black.
  136.  
  137. Clicking on "Clock" again will trigger the next step, and so on.
  138.  
  139. If you get fed up with the slow speed or know what to expect,  try clicking
  140. on "Fast". This will accelerate the proceedings considerably.  If you  want
  141. to see maximum speed,  click on "Astable".   This will  override  the clock
  142. button and go into free running mode. Sit back in  amazement and watch  the
  143. worlds slowest computer do its stuff!
  144.  
  145.  
  146. Writing a new program
  147. =====================
  148.  
  149. Load !WimpFetch, click on files and double click on the file  "Blank". This
  150. will  load a file  into edit  that contains all  directives but no program.
  151. Type your  program and save  it under a different name into the same folder
  152. it came from.
  153.  
  154.  
  155. Experimenting wit !WimpFetch
  156. ============================
  157.  
  158. The program runs in real time. This means that any location or register can
  159. be changed at any time and the sequence will pick up from this point. Flags
  160. can be changed -  even memory contents.  This enables  any amount of crazed
  161. experimentation. A limited  amount of Error checking takes place, but don't
  162. be suprised if the machine hangs up when illegal characters are entered.
  163.  
  164.  
  165. Things not mentioned till now
  166. =============================
  167.  
  168. Clicking  on "Decimal" or  "Binary" will convert  all relevant location  to
  169. this base - the program runs in hex by default, as soon as you activate the
  170. clock everything will be turned back into hex as if by hex.
  171.  
  172.  
  173.  
  174.  
  175. The Main Menu
  176. =============
  177.  
  178. Clicking the middle mouse button reveals the menu as usual.   Most items on
  179. the menu are obvious.  "Reset"  duplicated  the   "Return memory"   switch,
  180. "Files" duplicates the "Files" switch.  "Code Help"  displays that splendid
  181. example of lucid English you are reading at the moment and "Quit" .....
  182.  
  183. The most interesting selection is  "Code" .   Follow  the arrow  to see the
  184. complete  instruction set  of the 65-JL processor.  Clicking on each of the
  185. instructions will reveal a window with some more relevant information, like
  186. addressing modes and flag behaviour.
  187.  
  188. Note:
  189.  
  190. If you use the Editor Zap, you might have some problems. Make sure !Edit is
  191. on the icon bar before you run this program. This way you should have fewer
  192. problems.
  193.  
  194.  
  195. And finally
  196. ===========
  197.  
  198. Have fun.
  199.  
  200.       Jochen Lueg
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.