what is it

sped (the stupidly pointless editor) is a line editor written in x86 assembly inspired by ed. Back before visual editors existed, this would be how you would modify files and write code. There is very little visual feedback after making modifications, and commands are entered as if you were in a shell. This naturally requires the programmer to keep a mental image of the file in their head, so it's much less friendly. However, given that in the past that interactions were done with a teletype, this makes sense.

inspiration

This comic. Sadly, we are only on panel 3. I also wanted a relatively small scale project to work on, in order to learn a bit of assembly.

trying it out

You can find information on how to build the project on the github page, where there is also some documentation on the list of commands sped accepts.

challenges

Wrapping my head around how memory structured took a bit of work. I also had some issues with linking the assembly files.

learning / accomplishments

How lucky we are to have imperative programming languages, and how lucky we are to have visual text editors.

I also got to learn gdb a bit better ,after all the seg faults I had to deal with. It was also quite fun learning about the low level system calls for things like file i/o.

next steps

Obviously, there are a lot of quality of life features we can add to make editing text in sped less painful. ed had regex support so you can do things like search for substrings in the file and do search/replace. A regex parser in assembly was probably not possible in this time frame, but it would make a decent exercise in the future.

Built With

  • assembly
Share this project:

Updates