Reverse engineering lost libs

On my ongoing journey to revive the Tektronix 4404, I have begun reverse engineering various function calls. I started with select() (which does not appear to honor the timeout) along with library calls I do have to confirm the docs are wrong wrt parameters expected. ie check the assembler.

There are also quite a few commandline commands that on disassembly clearly make use of libs that have been lost - calls to pioctl(), nstat(), nprintf() etc. Intriguing…

My workflow is to disassemble the code (68000) then just read it and write a C version. Sometimes you can figure out the arguments, sometimes its tricky.

Aer there forums / resources for doing “retro reverse engineering”? Feel like I’m making it up as I go along!

Various experiments I’ve put here: github repo

Feels like there should be - I suspect a lot happens in personal emails and youtube comments and the like. Unless you can perhaps find a mailing list or forum specifically for your kind of system.

I see there’s a tekwiki with various recent contributors - you could perhaps reach out there in the talk pages, see if anyone can help, or point to help.

Perhaps also look over related projects on github or hackaday and contact the people?

Feel free to bring people here for discussion, or to post a link here to wherever discussions are happening.


Got my written from scratch window system up and running on the Tek4404. It forks a shell running through a pseudo terminal for each window.

2 Likes

Nice! That missing_include directory tells a story… and what about reverse?

Ha. re: reverse I disassemble on OS function (eg select()) and then transcribe into C. Would like to use Ghidra but I’d have to write something that converted Tek4404 exe format into coff/elf or something.

1 Like

Is the Smalltalk-80 implementation available anywhere for it? I believe it ran on top of the OS and may help show how it’s used.

1 Like

The ST-80 kernel is pretty tiny and everything else bootstraps off it written in ST-80.
Plus, ST-80 does not have a lot of networking support which is where I’ve missing lots of information.
Good shout though, I’ll check it out.

A short blog on getting Tektronix4404 up and my network.

I’ve implemented a DHCP client so it plays nice with modern routers as well as a telnet daemon so I can login from my Mac.

https://medium.com/@adambillyard/writing-software-on-tektronix-4404-ff431917a649

1 Like

Demo of my new window system for Tektronix 4404

2 Likes