76

In fact, quite a lot did. Ignoring the 'home computer' restriction there is of course MP/M - the multi-user and multi-program environment for CP/M. MP/M was published in 1979 by Digital Research for 8080/85/Z80 machines. Terminals, users and programs were handled separately, thus one user could have several programs run in parallel and switch between them (...


73

For Win16 programs, Windows implemented co-operative multitasking. Its implementation was based upon the "message loop" architecture of every Windows program. The duty of every program was to endlessly run in a loop in which a call to GetMessage() function was performed. This function call looks whether a message to this process is in the queue. If there is ...


65

Back in the mid 70s I wrote, and in 1982 I stopped shipping an 8 bit OS ("SDOS") for Motorola 6800/6801/6809. Those OSes came in several flavors: SDOS/RT: Real Time multithreaded (2Kb ROM + whatever small bit of RAM you needed). It was was always included as a part of the others in this list (plain) SDOS: Single user Disk Operating System (64K memory max) ...


42

Found a great answer on Super User that explains it really well! Windows 3.1 uses cooperative multi-tasking – meaning that each application that is in the process of running is instructed to periodically check a message queue to find out if any other application is asking for use of the CPU and, if so, to yield control to that application. However,...


31

In theory that would have been possible from the very start. After all, music doesn't need much bandwidth (*1), especially when using synthesized form like with a sound chip such as the SID. In reality the software structure of (most) machines in the 70s and 80s would not support this. They were single program, single tasking machines and the OS was not ...


24

Since it ran on the Tandy Color Computer and similar Dragon computers in the UK, I guess it's fair to throw OS-9 into the mix. OS-9 was originally written for 6809 CPUs (hence the name). The linked Wikipedia article begins by calling it a "family of real-time, process-based, multitasking, multi-user operating systems". I remember before it was available for ...


23

On the generic early-nineties x86 systems I'm familiar with at least, redbook CD audio playback on IDE CD-ROM drives is asynchronous and autonomous. The drive would connect to the sound card through a four-pin stereo audio connector to provide CD audio as another audio source to the mixer. You could use a CD music player program to control track selection ...


15

I think your best bet given the circumstances is DESQview; it works fine on pre-386 computers, especially if you have EMS. (There’s lots of confusion around the DESQview/386 terminology; that was DESQview bundled with QEMM386, and the 386-specific part was QEMM386, not DESQview.) This VCF thread has pointers to other tools, including concurrent versions of ...


15

The topic mentions PCs but as you mention C64s specifically in the text, I can note that on the C64 it was not uncommon for utility software to have built in music (especially in the tools centered around the needs of the demo scene). Of course, that is not the same as a general purpose music player. Music was generally not really made using MIDI or audio ...


13

The Amiga was the first system where I pulled this off: It was not streaming music, but listening to so called "MOD"s, small data chunks of samples and instructions how to play them. There is still an alive(?) scene for this. These Mods could be played in the background on Amigas Multitasking OS, while you were doing something else. Update: If you just ...


11

It wasn't multitasking in any way, but Locomotive BASIC on the Amstrad CPC series (Z80, 1984) had software interrupts for calling subroutines based on timers. There were four 50 Hz timers, 0–3, with timer 3 having the highest priority. Timers could be set one-shot (AFTER ‹time delay›[,‹timer number›] GOSUB ‹line number›), repeating (EVERY i[,t] GOSUB ‹line ...


11

The Sinclair QL was most probably the first truly multi-tasking home computer. It's QDOS is a fully-featured preemptive multi-tasking OS. Whether it matches your definition of an 8-bit computer with its 68008 is , however, debatable (and was debated a lot when it entered the market)


11

Suspending one program and switching to another is perfectly fine GEOS may be well suited to your purpose. It runs more famously on the Commodore 64, but it was ported to DOS also. It predates Windows IIRC so it should run nicely on your setup.


10

iRMX III is a real-time operating system for Intel 80386 and later processors, originally developed by Intel and now maintained by tenAsys. A quick look at the System Call Reference manual reveals that it uses call gates.


9

Windows 2.x or 3.0. Real mode Windows is able to run DOS applications and switch between them, but not able to present them in a window or run them concurrently as the 386 version. Also, don't trust Wikipedia on the shortcomings of Windows on an 80186: I used Windows 3.0 extensively on my school's 80186-based PCs and I can assure you that the assertion ...


9

In support of your CTSS suggestion, see this document, in particular page 11, which describes clock-trap handling. A clock interrupt can cause a program swap, thus multiprogramming with preemption. This does not itself prove that CTSS was first, but it is strong evidence. For cooperative multiprogramming, the British were likely near the forefront. The '...


8

Jwzumwalt already covered the basic, being not much younger I might add a few minor details still present to me. While it didn't particularly work well for games (as far as I remember), it was popular for system operators of bulletin board systems. It was perfect - well, let me rephrase this as rather useful - for well behaving (read no direct hardware ...


8

A great many Atari-era games ran in two threads. The first thread attended to gameplay, listening to controller input, keeping score, arranging the playfield, cueing sounds. The second thread was responsible for sprite-juggling to render the playfield in a more complex way than the hardware designers imagined. The purpose of the added complexity was to ...


8

Interrupt Mode 2 is not a ZX Spectrum feature, it's a feature of the Zilog Z80 CPU itself. Per Raffzahn@'s comment, the answer to your question kinda depends on what kind of threading you're talking about. There are generally two levels of abstraction when it comes to multithreading, and two meanings of the term. First is the hardware level Simultaneous ...


7

The first time I did this was on an Atari 400. Was a hack. I found out only one track was used for the program data, leaving the other one for audio. Great! I prepared a tape with some music recorded off the radio. While in basic, I could press play on the 410 data recorder, and start it with POKE 54018,52 (which I just had to go look up) to start the ...


7

All of the popular, early 8-bit CPU's support hardware and software interrupts. Therefore, they can all theoretically support preemptive multitasking, which I think is what this question is really asking. The relevant article from Wikipedia states: In simple terms: Preemptive multitasking involves the use of an interrupt mechanism which suspends the ...


7

Not simultaneously, as it only has one CPU, but it has a 50 Hz timer interrupt, so it can do time sharing processing, provided that programs are well behaved, as there is no memory protection and no supervisor mode in the CPU. As a proof of concept, I've written a small task scheduler and tasks that are executed in a time sharing fashion (with a 20ms ...


6

I wrote a music player on my 1983 Oric Atmos, and some other people already did that before me. The Oric uses a AY-8912 soundchip. You can send orders to play waveforms with or without varying envelopes. The order is just a write into a register. Can be done from within an interrupt and the sound is issued. It doesn't take a lot of CPU. On the other hand, a ...


6

At an 8 kHz sample rate, an Apple II would only hold about 5 or so seconds of raw uncompressed audio (plus the code needed to play them, either via add-on DAC board or 1-bit PWM). Compressed audio would need maybe at least a few orders of magnitude more compute performance than the very roughly 0.2 integer "MIPs" offered by a 6502 to decompress audio in ...


6

MMURTL by Richard Burgess, was the subject of a book that Sams published as: Developing your own 32-bit Operating System. MMURTL makes no attempt at portability, instead making direct (and heavy) use of the 386's hardware support for tasks, task switching, and pretty much everything else. The licensing conditions for either/both the book and code are fairly ...


6

Intel's iRMX worked on the 8080 and above. We used it on GRiD Compasses in the early 1980s, though the GRiD could hardly be called a "home computer"! iRMX (and the GRiDOS file system & GUI that GRiD built on top of it) were fully multi-tasking.


6

For the sake of completeness, there is SymbOS, which advertises itself as a graphical Z80 multitasking operating system. It didn't exist at the time, but it works for a variety of 8bit machines (MSX2 and better, Amstrad CPC, Enterprise 64/128, PCW Joyce).


6

Multitasking is absolutely not depending on modern CPUs like the 386 or anything - Those CPUs go one step beyond and protect multiple tasks from each other, while earlier MT OSs had to rely on behaving applications. I co-wrote a multitasking system for x86 based on Turbo Pascal 5 and running from DOS for industrial control applications back in 1990. You "...


5

I'm 61yrs old and my memory no longer serves me well but I do remember a few things about DOS. I purchased a book in the late 80's that contained a less optimized free version of DOS. That version of DOS (I can't remember for sure but I think it was MX-Dos) was very close to Caldera/DR-DOS and somewhat like FreeDos. (I suspect FreeDos is based on it) It ...


5

to load music on an old PC It sounds like your expectation is that you could load up a CD of The Go-Go's into disk files, and play it in the background while you work. That won't work on 70s-80s machines, as they lack either the disk space to store even compressed music, or the computing power to decompress it on the fly. It starts to become possible in ...


Only top voted, non community-wiki answers of a minimum length are eligible