> Date: Thu, 3 Apr 2025 15:20:35 -0500
> From: Doug McIntyre via cctalk <[email protected]>

> On Thu, Apr 03, 2025 at 02:40:23PM -0400, Michael Thompson via cctalk wrote:

>> I wonder if the source, not just the listing is available. It would be
>> interesting to build it on TOPS-10 running on a KA-10 simulated on Simh.

Perhaps, although at LCM (long before the "+L" was added--or we opened to the
public) we built it on the 2065 running Tops-10 v7.04.  Architecture is
architecture, after all.

 [ snip ]

> As described in Bill Gate's recent auto-biography (Source Code: My
> Beginnings), or Paul Allen's auto-biography (Idea Man), they developed their
> BASIC code on the PDP-10 because they both had been hacking on the PDP-10 for
> their previous projects for a couple years?, and Paul Allen had written an
> 8080 emulator (somehow with macro?) for the system, and they could emulate
> the 8080 chip before the Altair 8800 existed (for real, not the dummy one
> they pre-announced in the magazine ahead of it actually shipping).

Allen and Gates began programming on the PDP-10 in 1970, when Paul was a junior
and Bill was a freshman.  They were good enough that after Paul graduated, they
(along with 3 of their friends) got jobs programming the PDP-10s for the
control systems at the Bonneville Power Adminstration for the summer of 1971.

As for Paul's 8080 simulator, it was indeed made up of Macro-10 macros (which
can be very sophisticated) which processed 8080 assembler into user-mode UUOs
and a set of UUO routines which perform the work defined for each such 8080
instruction.

The simulator is used by including its source code with the 8080 source code
to be executed, assembling everything, and executing the result.  It's a
marvelous piece of programming which utilizes the PDP-10 architecture to its
fullest.

> So I don't think the 8080 Source code of Altair BASIC would do you
> much on the PDP-10 without also having Paul Allen's macro package for
> the 8080 emulation and developer system that they were doing. As they
> explained in their books, an Altair with 4k wasn't exactly a system
> anything could be developed on, so the various PDP-10's they rented
> time on was utilized as the dev system, and they seeked that one out
> because they had the support system already in place for what they
> were doing. (ie. emulator/macro package/assembler/linker)

Rented time on while they were located in Albuquerque, then outright owned once
they moved the company to Bellevue.

> They later were able to successfully do the same emulation trick with the
> other micro CPUs that they wrote basic for until PCs could actually start
> hosting dev environments (many years later).

A friend of mine, M$ employee no. 11, was one of the developers of the other
macro packages for different micro acrchitectures.

                                                                Rich

[1] For the non-PDP10 folks out there, "UnUsed Operations", later "Unimplemented
    User Operations", op codes left intentionally undefined which when
    encountered in the instruction stream check to see whether there is a trap
    defined, so a system-style subroutine call.  Opcodes 001-037 are avaiable
    to user programs, while 040-077 are defined for the operating system.

Reply via email to