When last I left off [1], I had a more-or-less working Eliza [2] and therefore, I need to turn my attention to Racter [3].
This is not as easy as it may appear. The version I have is for MS-DOS (Microsoft Disk Operating System) [4], which is okay as I can emulate that. But harder is redirecting Eliza's output through the MS-DOS (Microsoft Disk Operating System) emulator to Racter and redirecting Racter's output from the MS-DOS emulator back to Eliza. And that's key to getting this whole thing working.
The program I'm using is DOSBox [5]. I thought I could try redirection, something along the lines of dosbox <input to see if would work and … nope. It looks like I'll have to dig into the source code to DOSBox, intercept keyboard input and video output and kludge something in to get Eliza and Racter “talking.”
Okay … the source is C++ callback hell, what about doing a native compile of the Racter source code?
>
```
IV.IF Interview with INRAC IBM 6-4-85 initial transient file
1
2
52
SECTION 1 hello
5
34
SECTION 2 sue
5
18
A :LOADIV :OUTRACTER >2= >3= ?51= />51=Smith #
XA Hello, I'm Racter. ?40= \# You are? ?? #*1B
X Are you $40 ? ?? #
X ?no,not \# >1=R ?i'm,am,is /# Who are you then? ?? :F=0 #
X ?yes \# ?-:but /# >1=R #*1B
X \# You are $40 $51 ? ?? ?yes /#*2SAME ?i'm,is /# #*1XC
B ?i \# >1=R ?don't,won't \# *1COY ?? #*1B
X ?a,an,the \?called \?am,i'm,is,me,as,it's \# :F+1 >2=F ?-:2= #
X /# ?CAP \# >2=F :F+1 >4=F ?4= \#*1XB #*1DO
X /# *1DUH ?? #*1B
XB ?CAP+1 />3=F #
X >1=2 ?CAP \>2=C,2 #
C *1Xcall $2 , then? ?? ?no,not,Q /?-:why /# #*1DO
X >1=R ?CAP \# #*1B
XC What's your name then? :F=0 ?? #*1B
Xcall I may call you
Xcall You are
Xcall Your name is
DO Hello, $2 . I believe you're interviewing me. #
X ?2=40 \# >40=40,51 #
X ?40= /# Are you continuing $40 <'s interview? #
X /# ?? ?no,not,don't /# #*2DIF
X ?40= /# Then we'll forget about $40 and start over. #
X :ZAP :PUTIV #
EXIT >40=2 ?3= \>51=3 What would you like to know? #*2GO
COY Come on, what's your name?
COY You must have a name - what is it?
COY Your name, please .
COY I have to call you something - what shall it be?
DUH I didn't get that . *1WHO
DUH I don't understand . *1WHO
DUH Eh? *1COY
WHO Who ?
WHO Who are you ?
DIFA Well, $2 , $40 and I >4=40 >40=2 ?3= \>51=3 #*2A
SAME Hi, $40 . >4=You ?52= /# How are things in $52 ? #
x We #
A ?20= />20=various,things #
x were talking about $20 last time. #
x ?10=VERBQ \?10= />3=whether \>3=10 #
x $4 had just asked D $3 $19 . #
CONT Shall we continue? ?? ?z \# #*1XA
x ?why /?not /# ?no,not \# #*2QUIT
x Excellent! #
GO Excuse me a minute while I attend to some #
x business - I'll be right back. I'm #
x ?42= />42=Oz #
x ?19= />19=I,have,to,rest,now #
x :PUTIV #
X %KEY %VOCAB1 %VOCAB2 %VOCAB3 %BILL %IV1 %RAPT %RAPT2 back. *15A
QUIT You want to quit? ?no,not \# Well, goodbye then.
X That's good. #*2GO
```
Oh … right. That's why I'm running an existing executable, because there're only four, count them, four pages on the Intarwebs that even mention INRAC, the langauge Racter is written in. There's this page [6] which is a brief overview of this page [7], which is page one of a six-page review of the INRAC compiler in a journal that I was unable to locate at the local university [8]. Then there's the Racter FAQ [9] whose description of INRAC doesn't quite match what I have.
And that final page? Deconstructing Racter [10], which I wrote seven years ago!
Sigh.
But before I go back into unintelligible C++ code, another snippit of conversation between Racter and myself:
Sean: Why are you repetitive?
Racter: Conceivably because subroutines are like that, I guess. And chips are intelligent. Intelligence is good, you know. I don't know many crooked truthsayers. Cough. Next question.
Sean: Should I vote Democrat?
Racter: No. You must be a stuffy right-winger. Cough. Next question.
I have no idea why Racter is suddenly coughing like that. Maybe a computer virus?
[2] http://www.manifestation.com/neurotoys/eliza.php3
[4] https://en.wikipedia.org/wiki/MS-DOS
[6] http://www.tapor.ca/?id=267
[7] http://www.jstor.org/stable/30200156?seq=1#page_scan_tab_contents
[9] https://groups.google.com/forum/#!topic/rec.arts.int-fiction/RTV5CUkJ8fs