The Psychotherapy of Racter might be possible

I may have spoken too soon. [1] Today I came across a reference to vm86(2) [2], a Linux [3]-only system call [4] (which is okay because I'm running Linux) for the x86 [5] 32-bit architecture (which is okay because I'm running the x86 32-bit architecture). It can run x86 code in 16-bit mode (which is okay because the version of Racter [6] I have is x86 16-bit code) and while I don't have MS-DOS (Microsoft Disk Operating System) [7] (which is okay because who runs that any more?) I can probably fake enough of it to get Racter running.

The tricky part of this was to figure out how to set up and successfully call vm86(). And like most things related to this project, there's not a lot of documentation [8] on what I'm trying to do. I finally got a test program [9] working, so I know in theory I can do what I want to do (and it says something that using an obscure non-portable system call and writing my own half-baked version of MS-DOS (Microsoft Disk Operating System) system calls is the easiest approach, but I don't think I want to know what that something is).

I had to dust off my copy of The MS-DOS Encyclopedia [10] to read in and properly load an MS-DOS executable into memory (which I think I got right—the relocation records [11] appear to be simple but the devil is always in the details) And Racter did make a valid MS-DOS system call, and better yet, it was one I was expecting Racter to make.

So it looks promising.

I also found what claims to be a faithful implementation of the original Eliza program [12] which requires rewriting my Eliza implementation but that's okay since it seems to be a bit more fleshed out than the version I used [13].

So it may be that a second attempt at this is warranted. We shall see.

[1] /boston/2015/11/17.1

[2] http://man7.org/linux/man-pages/man2/vm86.2.html

[3] https://en.wikipedia.org/wiki/Linux

[4] https://en.wikipedia.org/wiki/System_call

[5] https://en.wikipedia.org/wiki/X86

[6] https://en.wikipedia.org/wiki/Racter

[7] https://en.wikipedia.org/wiki/MS-DOS

[8] http://www.ecstaticlyrics.com/notes/vm86

[9] /boston/2015/11/18/msdos.c

[10] https://www.amazon.com/exec/obidos/ASIN/1556151748/conmanlaborat-20

[11] https://en.wikipedia.org/wiki/Relocation_(computing)

[12] /boston/2015/11/18/eliza.txt

[13] http://hps.elte.hu/~gk/Eliza/ELIZA.BAS

Gemini Mention this post

Contact the author