Apollo guidance computer

This is really good and detailed. I had no idea that computer had virtual machine support for one thing.

formatting link

Reply to
Tom Del Rosso
Loading thread data ...

He certainly doesn't waste time!

Reply to
Rob

Very common thing to do even nowadays when you have a large team working on a codebase, who may be experts in their own field e.g., in game development, logic/mechanics or art direction but are not themselves hotshot C++ or asssembly-level programmers.

Secure the underlying mission-critical codebase which performs the intrinsically dangerous tasks of working directly with main memory/registers into a set of higher-level known-good "macroinstructions" which are interpreted and sequenced by a virtual stack machine. That way while if the art director (or orbital mechanics guy) is having a bad day they can certainly write VM code which is nonsensical, but it's at least known that it isn't doing objectively stupid and dangerous things like say overwriting stack frames or registers in use by other tasks

Reply to
bitrex

The VM probably did not add any such safeguards at all, but the fact that the instructions are more oriented towards the problem at hand will reduce the codesize and thus make it fit into the rom.

I remember having the task (with a team of 3) to write software to run on a Z-80 with 32K of EPROM. The software consisted of some low-level stuff handling interrupts, middleware that had to be reasonably fast, and a large application that could well be slower. We did not want to code it all in Z-80 assembly language.

We used the Aztec C compiler for that could generate machine code for the Z-80 (or rather it was for the 8080 I think), and also a version of the compiler that could generate code for a virtual machine. That version was mainly marketed for 6502 targets.

With a mix of some low-level assembly code, some C code compiled to machine code, the application C code compiled to p-code plus of course the p-code interpreter written in assembly code we could fit everything in the 32K and still have good performance.

Reply to
Rob

Fair 'nuff, the hardware for the AGC was quite limited and anyone allowed to touch the codebase in that situation knew as much as anyone; abstracting for the purpose of security likely came later

There's a "VM layer" available for Harvard-architecture AVR 8-bit, even; it pulls compiled AVR object code from mass storage and while the actual opcode instruction is executed by the chip's ALU IIRC it uses the storage media as the VM's memory space and stack and does all the decoding in software.

If one can accept an effective clock rate of say 200 kHz on a 20 MHz processor when executing the code on mass storage the sky's the limit on program size, whatever can fit on say a 64 or 128 gig SD flash memory card

Reply to
bitrex

Yeah that presentation isn't boring. I saved a copy of the video.

Reply to
Tom Del Rosso

I wonder how the participants walked out of that room... On youtube we have the possibility to pause, skip a few seconds back, or slow down the playback....

Reply to
Rob

It's easier to do that if you download and play it in VLC.

Reply to
Tom Del Rosso

mplayer lets me alter the playback speed, while somehow maintaining the pitch of the audio.

--
This email has not been checked by half-arsed antivirus software
Reply to
Jasen Betts

Time to frequency domain conversion using the FFT, then futz with it in the frequency domain and resample it back.

Nowadays you can do all sorts of fancy stuff with that tech, like take an audio track of a vocal and fairly transparently alter the melody while keeping the time and phrasing the same, resulting in this somehow satisfying mashup of Marvin Gaye singing along to Ratt:

There's software that lets you take polyphonic material consisting of several instruments mixed down to a stereo track and "pull" the tracks out again into separate tracks

Reply to
bitrex

I think it sounds sort of like something Journey would write

Reply to
bitrex

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.