Recent posts

#21
Software / Re: Switching Between Windows
Last post by ptek - May 25, 2026, 12:55 AM
Quote from: tygre on May 25, 2026, 12:29 AMIn the meantime, another question: I can't figure out anymore how to become root in the Terminal again... I kind of recall that I was able to start a new zsh (or bash) as root, but can't recall how  :(

Cheers!
Tygre

  I always login as me by default (no password) so whenever I want to swap to root in the terminal I do:

su -
  I have to do that in every new terminal I open if I need to be root.
#22
Software / Re: Switching Between Windows
Last post by tygre - May 25, 2026, 12:29 AM
Hi there!

Sorry for the silence, I wasn't notified of all your answers :)

Thanks a lot for the files and suggestions, I'll try to understand what this file is doing... ;D

In the meantime, another question: I can't figure out anymore how to become root in the Terminal again... I kind of recall that I was able to start a new zsh (or bash) as root, but can't recall how  :(

Cheers!
Tygre
#23
Software / Re: Programmatically Controlli...
Last post by tygre - May 25, 2026, 12:21 AM
Hi all!

New version of NeXTModRadio: it now chooses randomly a file within a hard-coded folder... Next step will be to choose the folder also randomly ;)

Also, Paula plays the same module over and over again... I must find a way to have a timer stop Paula at regular intervals, because it doesn't say by itself when the module is over ::)

Cheers!
Tygre
#24
Software / Re: List of current open-sourc...
Last post by turbolent - May 24, 2026, 11:05 PM
Yeah, the Darling team has an active fork of it: https://github.com/darlinghq/darling-cocotron

Also, parts of the Cocotron were used in Microsoft's WinObjC project: https://github.com/microsoft/winobjc
#25
Software / Re: Turbolent's projects: driv...
Last post by turbolent - May 24, 2026, 10:56 PM
Thank you for posting these projects here!

Regarding openstep-packages:

I wanted "modern" software on pre-Mac OS X systems. For Mac OS X several package managers exist, e.g. MacPorts, Fink, pkgsrc, Homebrew/Tigerbrew, leopard.sh / tiger.sh, etc. but I couldn't really find any for NeXTSTEP/OPENSTEP/Rhapsody. There are some separate ports of open-source projects from back in the day, but they're often very old and binary-only, i.e. the source patches needed to rebuild them are not provided.

The closest projects I could find that provided "modern" software including source patches were https://github.com/rjbrown99/next and https://github.com/rhaleblian/backstep. The former only had very few packages and no build instructions, and the latter had some more packages, but the build/installation scripts build all packages, so it's not really a package manager.

At first I had attempted to port pkgsrc, but bootstrapping required a significant number of packages to be built and there were many problems, so I abandoned it after a while. Then I found https://kisslinux.github.io/package-manager and wrote a similar script that works with the stock /bin/csh that ships with OPENSTEP.

QuoteTo get things out of the way—pTek will be disappointed to learn that all of this is for OPENSTEP 4.2 only and will not work on NEXTSTEP 3.3. Sorry, buddy.

As for compatibility with other operating system versions: My main system is OPENSTEP and so far I have only focused on that. These packages might also work on Rhapsody and even NeXTSTEP, I just simply haven't tried yet. Feedback (and patches) are very welcome!

Quotegcc 3.1 is part of the package manager repo, here: https://github.com/turbolent/openstep-pkg

This should mean that we can now compile stuff with a much newer x86 instruction set, since it's from OS X 10.2.

Unfortunately, Apple's GCC 3.1 didn't really work after all, it had internal compiler errors and crashed during garbage collection while e.g. building QuickJS.

Fortunately, I then tried Apple's GCC 3.3 and that version does work fine so far! So we've got an even more modern compiler available because of those bugs/crashers in 3.1 :-)


QuoteLooking through Turbolent's other repos, I noticed two drivers, both of which are quite young:

Driver for Bus Master IDE: https://github.com/turbolent/BusMasterIDE (3 weeks ago)
Driver for RTL8139 ethernet devices: https://github.com/turbolent/RTL8139 (2 weeks ago!)

Regarding the drivers:

I recently came across Omores' video on how to run Rhapsody DR2 on a modern x86 system: https://www.youtube.com/watch?v=uE6qp94InBM. So I got the same Gigabyte mainboard and was able to recreate the setup: Both Rhapsody and also OPENSTEP run really well (NeXTSTEP probably too, but I haven't tried yet). Installation on this board works, because it can not only emulate SATA drives as IDE, but also in a way that NeXTSTEP/OPENSTEP/Rhapsody require, IRQ 14 for the primary IDE/ATA controller ("legacy IDE emulation").

However, I didn't have a compatible network card, so I bought a cheap RTL8139 network card (they're around ~$10) and wrote a new driver for it, taking inspiration from the Linux driver (github.com/torvalds/linux/blob/master/drivers/net/ethernet/realtek/8139too.c) and Apple's driver (https://github.com/apple-oss-distributions/AppleRTL8139Ethernet). However, I was stuck for a while: I kept getting only about 2 MB/s (!), no matter what optimizations I tried. After a week of debugging I finally realized that it wasn't the driver or the network card that was the bottleneck - it was the disk!

It turns out that the generic EIDE drivers that ship in OPENSTEP (and I think also in Rhapsody), e.g. "Primary/Secondary (Dual) EIDE/ATAPI Device Controller", only support slow PIO modes (see https://www.idc-online.com/technical_references/pdfs/data_communications/Ata_Ide_And_Eide.pdf). Only the PIIX driver ("Intel PIIX PCI EIDE/ATAPI Device Controller") supports fast transfers via (bus-master) DMA! So BTW, if you are running OPENSTEP/Rhapsody in a VM, make sure to replace the Primary/Secondary driver with the PIIX driver after installation, and tick "Bus Master DMA".

Only some old mainboards have a PIIX chip, so I couldn't use the PIIX driver on the modern mainboard. I then realized that the modern mainboard doesn't just support legacy IDE emulation, but it also supports bus-master DMA!

So I investigated how to get bus-master DMA support added to the EIDE driver. Though we don't have the original sources of the OPENSTEP EIDE driver, I found newer sources in the Darwin 0.3 open source SDK (https://github.com/evolver56k/Darwin-0.3/tree/master/drvEIDE-1/EIDE.drvproj). While they unfortunately didn't build on OPENSTEP, the PIIX sources showed how to implement bus master DMA (which isn't PIIX-specific). With the help of https://wiki.osdev.org/PCI_IDE_Controller and https://web.archive.org/web/20230225074319/http://www.bswd.com/pciide.pdf I then wrote a new EIDE driver. I've been running it for a while and haven't had any problems yet. I'm using one of those cheap "M.2 SSD SATA Adapter 2 in 1 16GB" (they're around ~25$) and everything is very snappy :-)

QuoteI should note that the drivers might work just fine on NS3.3, since OS4.2's dev environment literally can't produce drivers; NeXT continued using (and recommending) 3.3 systems for this purpose until x86 was deprecated in OS X Server 1.0. I suppose Turbolent might have used the 3.3 dev environment installed on 4.2, though, in which case actual usage on 3.3 would be untested...

Yes, the drivers might also work on NeXTSTEP, I just haven't tested that yet. I'll try to set up NeXTSTEP on the machine I got and see if the drivers and the package manager work there, too.

I also read somewhere that OPENSTEP supposedly can't produce drivers - but found it not to be true: I have an OPENSTEP 4.2 system with Developer Tools and Patch 4 installed, and that's all that is needed to build the two drivers.
#26
Software / Re: List of current open-sourc...
Last post by wmlive - May 24, 2026, 08:49 PM
Quote from: turbolent on May 24, 2026, 08:04 PMThere's also The Cocotron
Judging by the date of the latest code submit at its repo at github.com/cjwl/cocotron, the project hasn't had any further activity since about 11 years.
Is this project still alive maybe elsewhere?
#27
Software / Re: List of current open-sourc...
Last post by turbolent - May 24, 2026, 08:04 PM
There's also The Cocotron

QuoteCocotron is a developer SDK which implements a usable amount AppKit and Foundation for Windows and Foundation for Linux/BSD in Objective-C. You need to install cross-compilers and cross-compile the frameworks using Xcode on Mac OS X.

The Cocotron is an open source project which aims to implement a cross-platform Objective-C API similar to that described by Apple Inc.'s Cocoa documentation. This includes the AppKit, Foundation, Objective-C runtime and support APIs such as CoreGraphics and CoreFoundation.

The purpose of the project is to provide an easy to use cross-platform solution for Objective-C development. In particular, source code level compatibility with recent versions of Apple's frameworks.

The general goal is to provide complete support on any viable platform, the project is intended to be as portable as possible. However, most of the work at this time is focused on providing support for Microsoft Windows. In particular the NT based versions, 2000 up to 10.
#28
Virtualization / Re: What Needs to be done for ...
Last post by Rhetorica - May 24, 2026, 03:18 PM
I had no idea. That's wonderful. Time to make some recordings!
#29
Virtualization / Re: What Needs to be done for ...
Last post by andreas_g - May 24, 2026, 03:15 PM
Recording has been possible since Previous v2.9. With shortcut-R (see keyboard options dialog) you can start the recording process. When pressing shortcut-R again it will save all sound output that has occurred since you started recording to a file in AIFF format. You find the file in the printer output directory.

The content of the file matches what is sent to the Soundbox for playback. There is no compression or other loss of data. It just skips over periods without sound output (when there is nothing sent to the soundbox, not even silence).
#30
Virtualization / Re: What Needs to be done for ...
Last post by Rhetorica - May 24, 2026, 02:52 PM
Hey @andreas_g — build r1828's DSP-recording feature sounds really cool. Is there any chance this could be used to produce high-quality audio recordings of the early DSP demos? I've been in love with Velvet since I first heard it, but have never been able to capture output as good as what Previous generates in real-time. (I know I'm not alone in my fondness for Velvet, since verdraith used it as the intro tune to his NeXT OSNerd videos.)