@kaveman

Yes. I was mentioning this to @cks the other day.

https://tty0.social/@JdeBP/116030855863806427

I think that it came out in the early 1990s. The copyright dates in the source uniformly say 1983, which would make OpenWatcom vi the earliest vi clone on record (pre-dating #STEVIE by 4 years).

However, they say this uniformly, even for its OS/2 and Windows NT parts, which couldn't have existed in 1983. And 1983 pre-dates even Waterloo C. So I suspect some Sybase lawyer has lied in these copyright declarations.

Watcom had a non-vi multi-window and menus TUI editor for DOS named wbed.exe at one point.

#Watcom #OpenWatcom #vi #retrocomputing #ComputerHistory

JdeBP (@[email protected])

@[email protected] It's not even a hot take. It's actual history. STEVIE came from the days when people were re-inventing Joy vi for other platforms and systems with (gasp!) arrow keys and console-paradigm I/O. It was less than a decade until people were thinking that Joy vi could be improved and were actively trying to make things that were better. Watcom vi, for another example, came out in the early 1990s and that had windows, and uses for function keys. #vi #STEVIE #vim #OpenWatcom

tty0.social

@cks

OpenWatcom vi is source available.

https://mastodonapp.uk/@JdeBP/116052015020764901

Ritter's Heirloom #vi is in #FreeBSD ports today, coming from the same place that it has for a long time.

https://freshports.org/editors/2bsd-vi/

It was dropped from #ArchLinux because it did not compile and hadn't changed in 20 years. Ironically, this is because the (GNU) C language had changed, and it has to nowadays be compiled forcing an older GNU C language version.

https://bbs.archlinux.org/viewtopic.php?pid=2285124#p2285124

Several people have independently discovered the Makefile patch that gets it to build on #Debian and the like.

https://forums.debian.net/viewtopic.php?p=629775

https://gist.github.com/cwfoo/01abac5c39f398b7e7b16a2b87aa518b

#elvis, the precursor to #nvi, is packaged for both #NetBSD/ #pkgsrc and #OpenBSD.

https://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/editors/elvis/index.html

https://github.com/openbsd/ports/tree/master/editors/elvis

#retrocomputing #ComputerHistory #Watcom #OpenWatcom

On #Illumos, Joy vi is in /usr/src/cmd/vi:

https://github.com/illumos/illumos-gate/tree/master/usr/src/cmd/vi

On #OpenBSD, Bostic #nvi is in /usr/src/usr.bin/vi/vi; #NetBSD having it in /usr/src/external/bsd/nvi; and #FreeBSD in /usr/src/contrib/nvi:

https://cgit.freebsd.org/src/tree/contrib/nvi/

FreeBSD has an nvi2 in ports:

https://freshports.org/editors/nvi2/

OpenBSD has elvis in ports:

https://github.com/openbsd/ports/blob/master/editors/elvis/pkg/DESCR

Ritter's Heirloom vi is on SourceForge:

https://ex-vi.sourceforge.net

STEVIE was posted to comp.sources.unix in 1988:

https://sources.vsta.org/comp.sources.unix/volume15/stevie/

Unfortunately, Sven Guckes's vi Clones WWW site was never completed with some of this, notably lacking Heirloom vi, for example.

https://guckes.net/vi/clones.html

But it does mention oft-overlooked commercial clones such as Watcom's vi, a from-scratch implementation started in 1983 that is also now source-available:

https://github.com/open-watcom/owp4v1copy/tree/master/bld/vi

#vi #retrocomputing #ComputerHistory #STEVIE #elvis #VIM #NeoVIM #Watcom #OpenWatcom

illumos-gate/usr/src/cmd/vi at master · illumos/illumos-gate

An open-source Unix operating system -- this is a read-only mirror of the official repository at https://code.illumos.org/plugins/gitiles/illumos-gate - illumos/illumos-gate

GitHub

@cks

It's not even a hot take. It's actual history.

STEVIE came from the days when people were re-inventing Joy vi for other platforms and systems with (gasp!) arrow keys and console-paradigm I/O.

It was less than a decade until people were thinking that Joy vi could be improved and were actively trying to make things that were better.

Watcom vi, for another example, came out in the early 1990s and that had windows, and uses for function keys.

#vi #STEVIE #vim #OpenWatcom

@pesco I interpret the standard the same way you do, yielding a result of 910.

If you are #OpenWatcom, though, the answer is divide overflow!

x86 div instructions take a dividend that is twice as wide as the quotient or remainder. In 16 bit mode the relevant ones are,

  • DIV: u32 / u16 -> u16
  • IDIV: i32 / i16 -> i16

What OpenWatcom does is:

  • sign extend -32768 (0x8000) to 0xffff8000
  • DIV 0xffff8000 / 36
  • die horribly on divide overflow

If it wanted a signed result it should have used IDIV. If it wanted an unsigned result it should have zero padded the operand instead of sign extending. Seems like a codegen bug.

I should probably check if the latest version of OpenWatcom still does this, and if so, see about reporting it. It isn't the only weird result I noticed in OpenWatcom's math, either.

On the plus side I seem to have corrected lots of #DesmetC mul/div/mod bugs in one fell swoop by rewriting the relevant part of its codegen, lmao. So many type hacks, gone.

On the minus side, I think now I might be finding some bugs in #OpenWatcom C, which was supposed to be my infallible test oracle, dammit ;D

"I spent last weekend getting Windows 95 running on my Mac. I wanted to write C programs for it. I don't have a good reason why." #Windows95 #OpenWatcom

https://tlxdev.hashnode.dev/writing-windows-95-software-in-2025

I fell in another rabbit hole and now I'm migrating my DOS program from DOS4/GW to PMODE/W :) #openwatcom

I've pushed myself a bit and tossed a rough tutorial on cross-compiling for #Windows3, #WindowsNT, #Windows95, and #MSDOS with #OpenWatcom up on the web zone: https://indigoparadox.zone/tutorials/watcom.html

It's late, so I don't trust my proofreading, but I've been asked about this enough where a quick and dirty tutorial has become a practical consideration. Hopefully it's useful!

The indigoparadox Web Zone: Crossdev with OpenWatcom

This week on the blog: finishing up my tour of OpenWatcom by finding places its codegen struggles in the Tiny memory model. A bunch of my old DOS programs intended to ship as .COM no longer built or ran properly except as .EXE, and fixing this lets me dig much deeper into how both Borland and Watcom build their programs to conform with 16-bit DOS norms.

https://bumbershootsoft.wordpress.com/2025/05/24/more-watcom-fixing-interrupt-handlers-in-doss-tiny-model/

#retrocomputing #dos #OpenWatcom #BorlandC

More Watcom: Fixing Interrupt Handlers in DOS’s Tiny Model

Last time, I took a bunch of my old DOS C projects and put them through the modern Watcom cross-compiler instead of through the version of Borland Turbo C I’d originally intended them for. Th…

Bumbershoot Software