WAHNSINN: Der Atari kann Gedankenlesen!!!!


WAHNSINN: Der Atari kann Gedankenlesen!!!!

von cas » Do 4. Jan 2007, 22:54
Ich habe heute festgestellt das mein Atari Gedankenlesen kann. Deiner bestimmt auch! Das ist Wahnsinn!

Wie geht es?

Tippe dieses Programm in einen Text-Editor auf dem Atari ab und speichere es in eine Datei "MINDREAD.FS" (SIO2PC Benutzer wissen sicherlich auch wie man den Text direkt uebertraegt, aber beim Eintippen lernt man gleich ein wenig Forth ;) )

Dann VolksForth laden (von der Sondermagazindiskette vom Oktober oder von http://volksforth.sf.net ), und
INCLUDE" D:MINDREAD.FS"
eingeben (Achtung, die Anführungszeichen sind Teil des INCLUDE" Befehls, dann kommt ein Leerzeichen, und dann der Dateiname).

Code: Alles auswählen
\ Mind Reader  \  Gedankenlesen
\ based on an Article in VD/4/2006
\ by Michael Kalus
\ adapted to VolksForth by cas

CR .( Loading MindReader... ) CR

decimal

VARIABLE seed

$10450405 CONSTANT generator

: rnd ( -- n )
  seed @ generator um*
  drop 1+ dup seed ! ;

: random ( n -- n..0..n-1 )
  rnd um* nip ;

: init ( -- )
  $D20A C@ seed !
  10 0 DO 100 random drop LOOP ;

\ choose a token, but no digit
: token ( -- x )
  126 58 - random 58 + ;

VARIABLE symbol

: symbol! ( -- )
  token symbol ! ;

\ print Control Chars (Atari Specific)
: cemit ( c -- )
  $80 $2FE C! ( DSPFLG )
  emit
  $00 $2FE C! ;

: sy. ( -- )
  symbol @ cemit ;

: symbol. ( i -- )
  DUP 09 = IF sy. drop exit THEN
  DUP 18 = IF sy. drop exit THEN
  DUP 27 = IF sy. drop exit THEN
  DUP 36 = IF sy. drop exit THEN
  DUP 45 = IF sy. drop exit THEN
  DUP 54 = IF sy. drop exit THEN
  DUP 63 = IF sy. drop exit THEN
  DUP 72 = IF sy. drop exit THEN
  DUP 81 = IF sy. drop exit THEN
  token cemit drop ;

: table.print ( -- )
  CR 100 0 DO
    I 2 .R SPACE
    I symbol. SPACE
  LOOP ;

: page 125 emit ; \ CLS

: text.de ( -- )
  CR ." Gedankenlesen in Forth"
  CR
  CR ." Denke an eine 2stellige Zahl, z.B. 54"
  CR ." Ziehe von dieser Zahl ihre 2 Ziffern"
  CR ." ab: (54-5-4=45). Suche das Symbol zum"
  CR ." Ergebnis in der Tabelle."
  CR ." Konzentriere dich auf dieses Symbol"
  CR ." und druecke eine Taste..." ;

: ?again.de ( -- )
  CR ." Noch einmal? --> Leertaste " ;

: result.de ( -- )
  ." Es ist das Symbol:  " ;

: text.en ( -- )
  CR ." MindReader in Forth"
  CR
  CR ." Think of a number with 2 digits"
  CR ." (eg. 54). Substract from this number"
  CR ." its 2 digits: (54-5-4=45)"
  CR ." Find the symbol that corresponds"
  CR ." to this number in the table."
  CR ." Concentrade on this symbol"
  CR ." and press a key..." ;

: ?again.en ( -- )
  CR ." Again? -- press space bar" ;

: result.en ( -- )
  ." It is the symbol:  " ;

DEFER ?again.print
DEFER text.print
DEFER result.print

: main ( -- )
  init
  BEGIN
    0 $52 C! \ set left margin
    symbol!
    page
    text.print cr
    table.print cr
    key drop
    cr result.print sy. cr
    ?again.print key $20 = 0=
  UNTIL ;
   
\ German Version
: Gedankenlesen ( -- )
  ['] ?again.de IS ?again.print
  ['] text.de   IS text.print
  ['] result.de IS result.print
  main ;

\ English Version
: MindReader ( -- )
  ['] ?again.en IS ?again.print
  ['] text.en  IS text.print
  ['] result.en IS result.print
  main ;

CR .( ready. )
CR .( type "MINDREADER" for english text )
CR .( tippe "GEDANKENLESEN" fuer die )
CR .( deutsche Version )
CR

\ fin



Im Dezember-Magazin der Forth Gesellschaft, Seite 23ff, gibt es Hinweise warum dies funktioniert. Das Magazin kann als PDF unter
http://www.forth-ev.de/filemgmt/viewcat.php?cid=9
geladen werden.

Viel Spass dabei.

Carsten

von BOSS » Sa 24. Feb 2007, 12:55
Hallo,

und was mach ich nachdem ich den INCLUDE Befehl eingegeben hab? Ich hab grad leider kein Forth Handbuch zur Hand... Danke!

mfg
Stefan

von cas » Sa 24. Feb 2007, 18:12
BOSS hat geschrieben:Hallo,

und was mach ich nachdem ich den INCLUDE Befehl eingegeben hab? Ich hab grad leider kein Forth Handbuch zur Hand... Danke!

mfg
Stefan


Nach dem INCLUDE und dem Laden des Quelltextes sollte am Bildschirm erscheinen:

tippe "GEDANKENLESEN" fuer die deutsche Version

Also "GEDANKENLESEN" (ohne Anführungszeichen) eingeben

Für alle die keine Zeit zum Abtippen haben, im AtariAge Forum gibt es ein fertiges ATR mit VolksForth und dem Gedankenlese-Programm

http://www.atariage.com/forums/index.ph ... l=mindread

Ciao

Carsten

von BOSS » So 25. Feb 2007, 15:07
cas hat geschrieben:
BOSS hat geschrieben:Hallo,
und was mach ich nachdem ich den INCLUDE Befehl eingegeben hab? Ich hab grad leider kein Forth Handbuch zur Hand... Danke!
mfg
Stefan

Nach dem INCLUDE und dem Laden des Quelltextes sollte am Bildschirm erscheinen:
tippe "GEDANKENLESEN" fuer die deutsche Version
Also "GEDANKENLESEN" (ohne Anführungszeichen) eingeben
Carsten


Ok, so klingt meine Frage natürlich bescheuert, aber bei mir kam nach dem INCLUDE ein simples OK auf dem Bildschirm. Deshalb dachte ich, man muss noch etwas anderes eintippen. Es lag aber daran, dass ich den Quelltext unter Windows abespeichert habe und so kam natürlich nur "Müll" im Atari an. Deine Version funzt einwandfrei. Danke!