home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol166 / badd.rec < prev    next >
Encoding:
Text File  |  1984-04-29  |  1.9 KB  |  73 lines

  1.  
  2. [BADD.REC]
  3. [Turing Machine which sums binary numbers]
  4.  
  5. [[]]
  6.  
  7. {
  8.   [head right]            (AAB;'.'I;;)+
  9.   [head left]            (B;j'.'I;;)-
  10.   [head stationary]        (;)0
  11.   [test equality]        (pGm=n;nL)=
  12.   [cr.lf]            (2573TL;)&
  13.   [read phrase]            (R13%='';08%(=)(T@J|;08%T' 'TLTLL@J;);)J
  14.   [sign-on message]        ('
  15. This Turing Machine will sum two binary numbers.
  16. Its initial tape should have the form =a+b=, with
  17. the head positioned at the right equal sign. For
  18. example,
  19.  
  20.           =111110+011#=
  21.  
  22. Each keystroke will show one step in the Machine`s
  23. operation, until the sum has been completed and the
  24. extra symbols have been erased.
  25. 'TL@&'Initial Tape:'TL@&@JJZDI'#'FD;:)R
  26.   [write tape segment]        (j(20b;J;)qtz' 'TABqtTLz(20a;LZ;)qtB;) W
  27.                 (@R'Q0'(@&@WRLT
  28.  
  29. ('Q0'@='='E;)D' 'IL'dig'@-:
  30. ('dig'@='0'E;)D'='IL'zle'@-:
  31. ('dig'@='1'E;)D'='IL'ole'@-:
  32. ('dig'@='+'E;)D'+'IL'lef'@-:
  33. ('zle'@='0'E;)D'0'IL'zle'@-:
  34. ('zle'@='1'E;)D'1'IL'zle'@-:
  35. ('zle'@='+'E;)D'+'IL'zad'@-:
  36. ('ole'@='0'E;)D'0'IL'ole'@-:
  37. ('ole'@='1'E;)D'1'IL'ole'@-:
  38. ('ole'@='+'E;)D'+'IL'oad'@-:
  39. ('zad'@='a'E;)D'a'IL'zad'@-:
  40. ('zad'@='b'E;)D'b'IL'zad'@-:
  41. ('zad'@='0'E;)D'a'IL'rig'@+:
  42. ('zad'@='1'E;)D'b'IL'rig'@+:
  43. ('zad'@='='E;)D'='IL'rig'@+:
  44. ('oad'@='a'E;)D'a'IL'oad'@-:
  45. ('oad'@='b'E;)D'b'IL'oad'@-:
  46. ('oad'@='0'E;)D'b'IL'rig'@+:
  47. ('oad'@='1'E;)D'a'IL'car'@-:
  48. ('oad'@='='E;)D'b'IL'new'@-:
  49. ('car'@='0'E;)D'1'IL'rig'@+:
  50. ('car'@='1'E;)D'0'IL'car'@-:
  51. ('car'@='='E;)D'1'IL'new'@-:
  52. ('new'@='.'E;)D'='IL'rig'@+:
  53. ('rig'@='0'E;)D'0'IL'rig'@+:
  54. ('rig'@='1'E;)D'1'IL'rig'@+:
  55. ('rig'@='a'E;)D'a'IL'rig'@+:
  56. ('rig'@='b'E;)D'b'IL'rig'@+:
  57. ('rig'@='+'E;)D'+'IL'rig'@+:
  58. ('rig'@='='E;)D' 'IL'dig'@-:
  59. ('lef'@='0'E;)D'0'IL'lef'@-:
  60. ('lef'@='1'E;)D'1'IL'lef'@-:
  61. ('lef'@='a'E;)D'a'IL'lef'@-:
  62. ('lef'@='b'E;)D'b'IL'lef'@-:
  63. ('lef'@='='E;)D' 'IL'fin'@+:
  64. ('fin'@='0'E;)D'0'IL'fin'@+:
  65. ('fin'@='1'E;)D'1'IL'fin'@+:
  66. ('fin'@='a'E;)D'0'IL'fin'@+:
  67. ('fin'@='b'E;)D'1'IL'fin'@+:
  68. ('fin'@='+'E;)D' 'IL'fin'@+:
  69. ('fin'@='='E;)D' 'IL'H'@-:
  70. 'H'=;);)}
  71.  
  72. [end]
  73.