[comp.binaries.ibm.pc] v06i192: turing, a 2-D turing machine demo

ibmbin-request@crdgw1.crd.ge.com (06/06/90)

Checksum: 3070828509  (Verify with "brik -cv")
Posting-number: Volume 06, Issue 192
Submitted-by: unhd!stm@uunet.uu.net
Archive-name: turing/part01

reviewed by: davidsen@sixhub.uucp

  This is a very neat demo, reminiscent of the game of life.

The submitter says:

  Included here is a 2-dimensional turing machine that I wrote for a
  class and I figured I might as well share it with the world, as someone
  else might have a use for it as well.  Included are the source (written
  in Turbo C 1.0) and a few input examples.  It uses the screen as it's
  tape (for those of you who know about turing machines) and for those
  who don't know about them, it can be used to create some pretty neat
  graphics displays.  It is pretty generic, so you can change it to use
  other displays other than the default CGA 320 x 200 with 4 colors.  If
  you have any problems with it, or come up with any new ideas you
  implement or would like implemented, I would like to hear about them. 
  Have fun with it, I know I did.  


[
Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command.

checksum     size (bytes)  file (between BEGIN--cut and END--cut lines)
     247        19657      part01

checksum     size (bytes)  file
     680        14246      turing.zoo

-- bill
]

turing part01/01
BEGIN--cut here--cut here
begin 600 turing.zoo
M6D]/(#$N-3`@07)C:&EV92X:``#<I\3](@```-[___\!!-RGQ/T"`84```!?
M````)`BU.*#;/P```"8````!````````````97AA;7!L93$`````````?_CN
M0"DC*```88"(`4-@#!L"$S90D'#@0(4,'0J<87!A#!`&0<B`>+&C1H@!`=RG
MQ/T"`=L```#"````)`BZ/KNM)P```!D````!````````````97AA;7!L93(`
M````````?Q@G0"DC*```88"(`4-@#!L"$S90D'#@0(4,'0J4`3$@W*?$_0(!
M0@$``!@!```D"'!)@`$_````*@````$```````````!T97)M:71E````````
M``!_S\=`*2,H``!A@(@!0V`,&P)E@(#10(%`@R!D/&P(4:'$A10C@I@Q<*+#
MC0L[8E00$-RGQ/T"`8,-``!_`0``?!0Q7&AX2Q8```0,```!````````````
M='5R:6YG+F,`````````?VJ:0"DC*```7ZAHH`"$"A`@J-21D\;-&1`M6H`(
M`F).FC9PV)0!0>?.FQ9D+I9Q8_&-FS!L."YL^+!-F#%H&I9Q0=!@S8,@KC"D
M0V<D"#%Y0$SI:<<G%1<@FHP9PF;A1B`@JKA)4U2.13I!WY@!X:3,'1!(PF"<
M$U-.&18@8N3`D>/F38148LX!`4?.FS-RQ((8$\;-SXTAY]!A**9.3S(@S)@M
MPR9H0Q!]@[HQV6+,FS9MRL@9DP;E6Q`C[:2QZR:S&SIH^R+FZU?,QCISRB!^
M/!G$G3!!S;R1`YFN73-IZ/P,&MEDF<\HRN`94P:.\,QHM>Y]LS`V"!TI0*1(
M[69UW[\@VKP)"5PVB,>1;>/FB"8,G<]YJ(-@DV;-3(1).(:Q#Z*VV3EPF&21
M&&G0AU5BN[&WD5EAD!&&&&RX4<8<<TE'AUR?64;&1B@D>&$:<UF&V4BH(<C;
MA>Z%YUY/O&&G'5H7;F29'&:-08>$%(*@U6<?ACC>63KREIZ#+ITQH8YCC+&2
M0XG9U8:"(,"VD85R3;<A307A%%91B=7AUQW!H7%>B?FM,=E7^85$!I8&O4"0
M0)_%!:)O=^7UI)1SQ5C1&(OY%<9<88!P`AUAP%'&"2;VUM%'(9E6TDEL\+AD
M2R_%)"%2("1!TF!UV)B&@(E*"9E9Y_DUZ*0N-&3&"6RJX*8"<&:)$`W3L;';
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
M_0(`````````````````````````````````````````````````````````
:````$@``,*T("```````````````````````
`
end
END--cut here--cut here