Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > sci.space.policy > #56960 > unrolled thread
| Started by | JF Mezei <jfmezei.spamnot@vaxination.ca> |
|---|---|
| First post | 2016-07-10 12:43 -0400 |
| Last post | 2016-07-11 18:28 -0700 |
| Articles | 12 on this page of 52 — 7 participants |
Back to article view | Back to sci.space.policy
Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-10 12:43 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-10 20:33 +0300
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-10 18:28 -0400
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-10 21:27 -0400
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-11 00:36 -0700
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-11 06:44 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-11 16:20 +0300
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-11 20:53 -0400
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-12 14:36 -0400
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-12 18:11 -0700
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-12 23:37 +0300
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-12 18:14 -0700
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-13 21:01 +0300
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-13 20:06 -0700
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-14 06:44 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-15 23:54 +0300
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-17 11:49 -0400
Re: Apollo 11 source code released William Mook <mokmedical@gmail.com> - 2016-07-17 18:41 -0700
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-18 09:20 +0300
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-14 11:38 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-16 00:10 +0300
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-15 22:26 +0300
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-20 10:49 -0700
Re: Apollo 11 source code released Snidely <snidely.too@gmail.com> - 2016-07-14 09:12 -0700
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-11 11:51 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-12 02:19 +0300
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-11 20:58 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-12 09:24 +0300
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-12 10:10 -0700
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-13 21:07 +0300
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-13 20:08 -0700
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-14 11:25 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-15 22:39 +0300
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-20 10:40 -0700
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-12 14:41 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-12 23:26 +0300
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-12 21:41 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-13 08:54 +0300
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-13 06:43 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-13 21:08 +0300
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-14 11:34 -0400
Re: Apollo 11 source code released Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-15 23:06 +0300
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-15 19:48 -0400
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-15 19:59 -0400
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-17 12:00 -0400
Re: Apollo 11 source code released Jeff Findley <jfindley@cinci.nospam.rr.com> - 2016-07-17 12:14 -0400
Re: Apollo 11 source code released JF Mezei <jfmezei.spamnot@vaxination.ca> - 2016-07-17 12:56 -0400
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-12 10:04 -0700
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-12 09:43 -0700
Re: Apollo 11 source code released Alain Fournier <alain245@videotron.ca> - 2016-07-11 19:43 -0400
Re: Apollo 11 source code released Fred J. McCall <fjmccall@gmail.com> - 2016-07-10 11:39 -0700
Re: Apollo 11 source code released William Mook <mokmedical@gmail.com> - 2016-07-11 18:28 -0700
Page 3 of 3 — ← Prev page 1 2 [3]
| From | JF Mezei <jfmezei.spamnot@vaxination.ca> |
|---|---|
| Date | 2016-07-14 11:34 -0400 |
| Message-ID | <5787b105$0$34695$c3e8da3$dbd57e7@news.astraweb.com> |
| In reply to | #57012 |
On 2016-07-12 21:41, Jeff Findley wrote: > Actually, I see this all the time in C++ when you define a pure virtual > interface function in a base class (A) and then have the same > implementation for two derived classes (B and C). For the names given > in parenthesis, when debugging, the debugger will only show the > implementation of that function for B even when called on an object of > type C. Dead giveaway that the linker has discarded the duplicate > implementation. Such obtimizatiosn are done by the compiler, not the linker. And in a object oriented language, the compiler does all the stuff to convert the "object" stuff into procedural code, ( which subroutine to call when you invoke a method etc). And when the compiler realises that subroutine X is never called, it doesn't include it in the obvect module because it is optimized away. If you compile with a switch to "do not optimize" you will see your code much more clearly. In this context, assembly language is not optimized (generally). There may be macros that are expanded into multiple assembly instructions, but that is the extent of changes done by the assembler. There is an exception: the VAX "MACRO" assembly language was implemented as a compiled language on Alpha and Itanium (and soon x86). As such, the VAX instructions are sent through optimization during compilation (the GEM phase of compilation). This is especially true of the Itanium thing since the chip was very inefficient and required compilers to re-arange stuff. Of course, back in the 60s, this didn't happen much. And in the specific case of th Apollo software, I reckon they did not want any such optimizations. When they ran the assembler, it wasn't to produce a binary object file, it was to produce a opcode"/operand listing that the people doing the hard wiring could use to know how to wire the "rope" memory.
[toc] | [prev] | [next] | [standalone]
| From | Niklas Holsti <niklas.holsti@tidorum.invalid> |
|---|---|
| Date | 2016-07-15 23:06 +0300 |
| Message-ID | <dusu2qFh2a4U1@mid.individual.net> |
| In reply to | #57026 |
On 16-07-14 18:34 , JF Mezei wrote:
> And in the specific
> case of the Apollo software, I reckon they did not want any such
> optimizations. When they ran the assembler, it wasn't to produce a
> binary object file,
I am pretty sure that the AGC SW developers tested their SW on AGC
simulators before the SW was committed to rope memory. Those SW
simulators would naturally read a binary object file produced by the
assembler.
> it was to produce a opcode"/operand listing that the
> people doing the hard wiring could use to know how to wire the "rope"
> memory.
The film "Computer for Apollo" linked from the Wikipedia AGC entry at
https://www.youtube.com/watch?v=YIBhPsyYCiM, shows (at around 22:15 into
the film) that the rope wiring was semi-automatic: a machine read a
paper tape and then moved an aperture (a small metal ring) to the place
on the core-rope board where the wire should enter a core. The person
working the machine passed the wire through the aperture, the paper tape
advanced, and the aperture moved to the next wire-entry point. The
wiring pattern determined the 0's and 1's of the stored program, and the
paper tape determined the wiring pattern, so the paper tape was IMO
equivalent to a binary object file, although differently encoded.
(The engineers in the film refer to the wiring staff -- adult women --
as "girls". "The girl will then pass the wire..." Weird to hear, today.)
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
[toc] | [prev] | [next] | [standalone]
| From | Jeff Findley <jfindley@cinci.nospam.rr.com> |
|---|---|
| Date | 2016-07-15 19:48 -0400 |
| Message-ID | <MPG.31f340409b99778c9897a1@news.eternal-september.org> |
| In reply to | #57026 |
In article <5787b105$0$34695$c3e8da3$dbd57e7@news.astraweb.com>, jfmezei.spamnot@vaxination.ca says... > > On 2016-07-12 21:41, Jeff Findley wrote: > > > Actually, I see this all the time in C++ when you define a pure virtual > > interface function in a base class (A) and then have the same > > implementation for two derived classes (B and C). For the names given > > in parenthesis, when debugging, the debugger will only show the > > implementation of that function for B even when called on an object of > > type C. Dead giveaway that the linker has discarded the duplicate > > implementation. > > > Such obtimizatiosn are done by the compiler, not the linker. And in a > object oriented language, the compiler does all the stuff to convert the > "object" stuff into procedural code, ( which subroutine to call when you > invoke a method etc). And when the compiler realises that subroutine X > is never called, it doesn't include it in the obvect module because it > is optimized away. How could this possibly be done in the compiler when the code I'm talking about is written such that each class has its own .cxx file which is compiled *separately* into individual object files? Jeff -- All opinions posted by me on Usenet News are mine, and mine alone. These posts do not reflect the opinions of my family, friends, employer, or any organization that I am a member of.
[toc] | [prev] | [next] | [standalone]
| From | Jeff Findley <jfindley@cinci.nospam.rr.com> |
|---|---|
| Date | 2016-07-15 19:59 -0400 |
| Message-ID | <MPG.31f342ccd3e22ecf9897a2@news.eternal-september.org> |
| In reply to | #57035 |
In article <MPG.31f340409b99778c9897a1@news.eternal-september.org>, jfindley@cinci.nospam.rr.com says... > > In article <5787b105$0$34695$c3e8da3$dbd57e7@news.astraweb.com>, > jfmezei.spamnot@vaxination.ca says... > > > > On 2016-07-12 21:41, Jeff Findley wrote: > > > > > Actually, I see this all the time in C++ when you define a pure virtual > > > interface function in a base class (A) and then have the same > > > implementation for two derived classes (B and C). For the names given > > > in parenthesis, when debugging, the debugger will only show the > > > implementation of that function for B even when called on an object of > > > type C. Dead giveaway that the linker has discarded the duplicate > > > implementation. > > > > > > Such obtimizatiosn are done by the compiler, not the linker. And in a > > object oriented language, the compiler does all the stuff to convert the > > "object" stuff into procedural code, ( which subroutine to call when you > > invoke a method etc). And when the compiler realises that subroutine X > > is never called, it doesn't include it in the obvect module because it > > is optimized away. > > How could this possibly be done in the compiler when the code I'm > talking about is written such that each class has its own .cxx file > which is compiled *separately* into individual object files? Microsoft explains exactly what I'm talking about. The linker (necessarily) does this optimization. Why does the debugger show me the wrong function? https://blogs.msdn.microsoft.com/oldnewthing/20050322-00/?p=36113 Jeff -- All opinions posted by me on Usenet News are mine, and mine alone. These posts do not reflect the opinions of my family, friends, employer, or any organization that I am a member of.
[toc] | [prev] | [next] | [standalone]
| From | JF Mezei <jfmezei.spamnot@vaxination.ca> |
|---|---|
| Date | 2016-07-17 12:00 -0400 |
| Message-ID | <578bab93$0$51821$c3e8da3$f6268168@news.astraweb.com> |
| In reply to | #57036 |
On 2016-07-15 19:59, Jeff Findley wrote: >> How could this possibly be done in the compiler when the code I'm >> talking about is written such that each class has its own .cxx file >> which is compiled *separately* into individual object files? > > Microsoft explains exactly what I'm talking about. The linker > (necessarily) does this optimization. As objects are hiearchical and inherit capabilities from their parent, it is quite possible to have a chair call a method "paint chair" and a table call "paint table". But as those inherit that capability from their parent "furniture". The compiler would ask the linker to resolve "paint furniture" for each of those 2 calls to different routine names in the source code. C++ and other object oriented stuff is many many layers above assembly language where memory allocation and branchig and returning to subroutines is very explicit.
[toc] | [prev] | [next] | [standalone]
| From | Jeff Findley <jfindley@cinci.nospam.rr.com> |
|---|---|
| Date | 2016-07-17 12:14 -0400 |
| Message-ID | <MPG.31f578d9e396abf79897a3@news.eternal-september.org> |
| In reply to | #57039 |
In article <578bab93$0$51821$c3e8da3$f6268168@news.astraweb.com>, jfmezei.spamnot@vaxination.ca says... > > On 2016-07-15 19:59, Jeff Findley wrote: > > >> How could this possibly be done in the compiler when the code I'm > >> talking about is written such that each class has its own .cxx file > >> which is compiled *separately* into individual object files? > > > > Microsoft explains exactly what I'm talking about. The linker > > (necessarily) does this optimization. > > > As objects are hiearchical and inherit capabilities from their parent, > it is quite possible to have a chair call a method "paint chair" and a > table call "paint table". But as those inherit that capability from > their parent "furniture". The compiler would ask the linker to resolve > "paint furniture" for each of those 2 calls to different routine names > in the source code. > > C++ and other object oriented stuff is many many layers above assembly > language where memory allocation and branchig and returning to > subroutines is very explicit. I've been working with C++ for the last 20 years and hold a job title commensurate with my 26 years of experience as a software developer. I don't need to be told how C++ works as I use it every single day as part of my job. You, however, ignored my original example completely, have snipped the link to Microsoft's explanation that I provided, and substituted an example that is not at all like the one I first gave. There is no further purpose to engaging you in this thread as you are being evasive, obtuse, or perhaps both. Jeff -- All opinions posted by me on Usenet News are mine, and mine alone. These posts do not reflect the opinions of my family, friends, employer, or any organization that I am a member of.
[toc] | [prev] | [next] | [standalone]
| From | JF Mezei <jfmezei.spamnot@vaxination.ca> |
|---|---|
| Date | 2016-07-17 12:56 -0400 |
| Message-ID | <578bb8a2$0$42382$b1db1813$19ace300@news.astraweb.com> |
| In reply to | #57040 |
On 2016-07-17 12:14, Jeff Findley wrote: > You, however, ignored my original example completely, have snipped the > link to Microsoft's explanation that I provided, and substituted an > example that is not at all like the one I first gave. No. I dodn't ignored. The way I interpreted it was that the linker was given task to resolve 2 routines which end up pointing to the same routine. Also remember that the question on MS's web page was about the debugger. If, at run-time, the debugger displays code for "routine2" when you step into routine1 means that the COMPILER inserted debugging instructions in the object module for the debugger run time to display the roioginal source code associated with the next instruction. So it is the compiler that would have realised that routine1 and routine2 would have been identical and the compiler would have opptimized one of the 2 away. I don't trust Microsoft to ever use the proper terminology and standards. And in an integrated developper suite, the the line between compiler, linker and run time debugger are muddled whereas prior to Microsoft, there were very clear roles for each. Note that optimizations of code is now done by the compiler, followed by opti9mizations for platform done by GEM. (compilers now generate pseudo code and the GEM back end generates platform specific object code with architecture specific optimizations (pipelining, out of order execution etc). This is why normally, when you compile with the /debug option, you also want /nooptimize in order to have the execution reflect what you wrote.
[toc] | [prev] | [next] | [standalone]
| From | Fred J. McCall <fjmccall@gmail.com> |
|---|---|
| Date | 2016-07-12 10:04 -0700 |
| Message-ID | <1n8aob93dcbnah0vfut9p43vl7edan0bka@4ax.com> |
| In reply to | #56985 |
Niklas Holsti <niklas.holsti@tidorum.invalid> wrote:
>On 16-07-11 18:51 , JF Mezei wrote:
>> On 2016-07-11 06:44, Jeff Findley wrote:
>>> much on a C-64 using a "higher level language" due to the overhead of
>>> incurred. Even in the 1980's, compilers, optimizers, and linkers
>>> delivered code which was very "bloated". The 1960's would have been
>>> far, far, worse.
>
>How might a 1980's or 1960's linker deliver "bloated code"? In those
>days, linkers merely arranged given modules of code in memory and
>corrected accordingly the cross-references from one module to another;
>linkers did not generate or modify code in other ways.
>
Think RTOS and RTL inclusion in the link...
--
"The reasonable man adapts himself to the world; the unreasonable
man persists in trying to adapt the world to himself. Therefore,
all progress depends on the unreasonable man."
--George Bernard Shaw
[toc] | [prev] | [next] | [standalone]
| From | Fred J. McCall <fjmccall@gmail.com> |
|---|---|
| Date | 2016-07-12 09:43 -0700 |
| Message-ID | <037aob1ledbq3lb211jk9ust0jcqv2ugtr@4ax.com> |
| In reply to | #56981 |
JF Mezei <jfmezei.spamnot@vaxination.ca> wrote:
>On 2016-07-11 06:44, Jeff Findley wrote:
>> much on a C-64 using a "higher level language" due to the overhead of
>> incurred. Even in the 1980's, compilers, optimizers, and linkers
>> delivered code which was very "bloated". The 1960's would have been
>> far, far, worse.
>>
>
>Not quite. older languages such as COBOL and Fortran provided reasonably
>efficient assembly.
>
For some definition of "reasonably efficient" that equates to 'bloated
when compared to pure assembly'.
<snip irrelevancies>
>
>Note: today, things are different because compilers are smart enough to
>organise code to make use of various capabilities for the architecture
>(pipelining, out of order execution, multiple execution units,
>pre-fetching, branch prediction etc).
>
Some are, some aren't. You realize there are still people who write
assembly for good reason, right?
>
>(However, stuff like object oriented langiuages have so many layers of
>bloat that optimization at the machine dode level still leaves it bloated).
>
So in your view compilers are very clever, but not very clever?
>
>If I read correctly, the read-only "rope" memory that contained the
>programs had to manually be connected to represent the right bits. This
>makes it much easier to work with assembly language since the "compiled"
>code with the opcodes/operands in bits can more easily be matched to the
>original source code.
>
What?
--
"Ordinarily he is insane. But he has lucid moments when he is
only stupid."
-- Heinrich Heine
[toc] | [prev] | [next] | [standalone]
| From | Alain Fournier <alain245@videotron.ca> |
|---|---|
| Date | 2016-07-11 19:43 -0400 |
| Message-ID | <nm1av6$uek$1@dont-email.me> |
| In reply to | #56978 |
Le Jul/11/2016 à 6:44 AM, Jeff Findley a écrit : > In article <p2j6obt05vvmbg0i08afngatpmurap66e6@4ax.com>, > fjmccall@gmail.com says... >> >> JF Mezei <jfmezei.spamnot@vaxination.ca> wrote: >> >>> On 2016-07-10 13:33, Niklas Holsti wrote: >>> >>>> A custom-made computer: >>>> >>>> https://en.wikipedia.org/wiki/Apollo_Guidance_Computer >>> >>> >>> Very interesting read. Thanks. It mentions it was the first computer >>> made of integrated circuits. Looks like it was all fixed decimal >>> notation as opposed to floating point. That would have a big impact on >>> the heavy math done for guidance and navigation (lots of angles/trig etc). >>> >>> Was all the code written in assembler or were portions done in higher >>> level languages ? >>> >> >> No HOL. Have you looked at the specifications for these things? > > The Wikipedia entry clearly says this, "AGC software was written in AGC > assembly language and stored on rope memory." > > By modern standards, we really don't have much to compare with. Going > back to the 1980's, the AGC was about twice the speed of my old C-64 but > with only a tiny fraction of the RAM and a lot more more ROM (since > there was no other place for program storage like tape or disk). > > Putting it in that perspective, the C-64 programs written commercially > rarely used languages above assembly language. You just could not do > much on a C-64 using a "higher level language" due to the overhead of > incurred. No, that would be under using the C-64. The 64 in C-64 standed for 64 kilobytes. But that was a little bit of a misnomer. You had 80 kilobytes of memory. The 64 kb of RAM but also 16 kb of ROM. You had to switch the 16 kb of ROM/RAM to access one or the other. You could save some precious RAM by using the basic interpreter in the 16 kb of ROM. If I recall correctly it was a bit on byte number 1 that would be used as a switch to access the ROM or the underlying RAM. I wrote a program that could not have fit in 64 kb of RAM, but could be squeezed into the C-64 by switching between the two memory modes. Even then, I had a hard time making it fit into the memory space. I had to cleverly chose where some parts of the program were placed in order to have an assembler jump instruction (a goto if you prefer) at the end of a section of code have just the right jump address so the next section of code could start with the last byte of the jump address. So that was three bytes for the jump instruction, the jump instruction was one byte and the address where to jump two bytes, therefore it was jumpto byte1byte2. But the next section of code started with an instruction, I think it was load into registry, but the important point is that this instruction's binary code was equal to the byte2 of the jump instruction, so byte2 was used both as an address where to jump and as an instruction. It took me a month to figure out how to do it but that single saved byte allowed me to fit my program in the 80 kb of the C-64. Now that I use a computer with 24 Tera-bytes of RAM, I no longer work as hard to save a single byte. Alain Fournier
[toc] | [prev] | [next] | [standalone]
| From | Fred J. McCall <fjmccall@gmail.com> |
|---|---|
| Date | 2016-07-10 11:39 -0700 |
| Message-ID | <5i55obd225g9p9cjijgcogji9fobqmi4bb@4ax.com> |
| In reply to | #56960 |
JF Mezei <jfmezei.spamnot@vaxination.ca> wrote:
>
>The source code for many Apollo 11 computers has been released n digital
>form on GitHub. (scanned from printed listings at MIT).
>
>https://github.com/chrislgarry/Apollo-11
>
>
>Question: what computer architecture/instruction set was used for the on
>board computers ?
>
Custom.
--
"The reasonable man adapts himself to the world; the unreasonable
man persists in trying to adapt the world to himself. Therefore,
all progress depends on the unreasonable man."
--George Bernard Shaw
[toc] | [prev] | [next] | [standalone]
| From | William Mook <mokmedical@gmail.com> |
|---|---|
| Date | 2016-07-11 18:28 -0700 |
| Message-ID | <6bb7ef11-f47c-4b03-8c96-fb9f6c4debe9@googlegroups.com> |
| In reply to | #56960 |
On Monday, July 11, 2016 at 4:43:37 AM UTC+12, JF Mezei wrote: > The source code for many Apollo 11 computers has been released n digital > form on GitHub. (scanned from printed listings at MIT). > > https://github.com/chrislgarry/Apollo-11 > > > Question: what computer architecture/instruction set was used for the on > board computers ? https://www.youtube.com/watch?v=YIBhPsyYCiM https://www.youtube.com/watch?v=xQ1O0XR_cA0 Vibrating structure gyros are cheaper and better than Apollo had http://www.siliconsensing.com/technology/mems-gyroscopes/ So are the computers https://www.youtube.com/watch?v=gu0Y4vliJcQ So, its no surprise you could build an AGC for $3,000 in your basement these days http://gizmodo.com/5319472/how-to-build-the-1mhz-apollo-guidance-computer-for-just-3000 http://www.galaxiki.org/web/main/_blog/all/build-your-own-nasa-apollo-landing-computer-no-kidding.shtml You can even run an AGC simulator; http://svtsim.com/moonjs/agc.html Now, all you need are the checklists - and current ephemeris of the moon, and your precise launch coordinates - and you could launch a Saturn V to the moon and land! Now, if you take the checklists, and automate them, and then use KEYWORDS to access them in some logical way, you could use a Siri style app that talks to you, and navigates like a mobile map app; http://www.wired.com/2014/04/out-in-the-open-jasper/ and goes where you want...generating the code to enter for the checklist. All using GPS and current time, along with the moon position, available via the internet, you could launch a Saturn V from anywhere on Earth to the Moon! lol. http://www.mooncalc.org/#/49.495,11.073,5/2016.07.12/12:41/1 Of course, very good simulators exist - that are very instructive as well; https://www.youtube.com/watch?v=fF4zTkLqHfc http://www.apolloarchive.com/lander.html http://eaglelander3d.com Compare to the NASA simulators; http://history.nasa.gov/computers/Ch9-2.html Now, there is a homebuilt 737 that's awesome; https://www.youtube.com/watch?v=cSiZ3_jy-1w&list=PLE28AAB2EC4DA45EE I can imagine someone doing a full scale replica of the flight decks of both the Apollo Command module and the Lunar Excursion Module to the same fidelity. Here's Michael Collins in a simulator http://inapcache.boston.com/universal/site_graphics/blogs/bigpicture/apollo_07_15/a06_S6938317.jpg Here's the CM and LEM simulators https://upload.wikimedia.org/wikipedia/commons/a/a4/Apollo-lunar-simulator.jpg So, you get in the CM and go through the launch sequence - and the CM and LEM are each on their own six-axis robot arms - like a Fanuc M-2000 http://www.fanuc.eu/bg/en/robots/robot-filter-page/m-2000-series inside a digital planetarium similar to this Digitalis system http://www.digitaliseducation.com The Digitarium is $46,000 - the Fanuc M-2000 is $121,000. The cost of the LEM and CM interiors, faithfully reproduced, and operating seamlessly with the other equipment, about $300,000 each - http://www.finesportscars.com/finesportscars_i2/cus_car.jpg So, for about $890,000 - one could build a live action Apollo simulator in about a year. The way it would work in Earth's one gee field, is you would enter the CM and lie on your back through the launch. The robot arm would shake and toss you to simulate staging as it tilted you to a heads up position moving the CM to the center of the dome. The digital representation outside the window would paint a scene of the SIVB and LEM as the LEM Adapter appeared to float away. As the CM was moved by the robot arm toward the digital image, another robot arm would move a LEM into docking position beneath the full scale projection. As these building videos show, if you know the properties of the surface you're projecting on, you can compensate and produce amazing effects. https://www.youtube.com/watch?v=YADbPYJNGOg So, it would be child's play to project an image of the LEM onto a LEM cabin simulator, so that as you docked with it, the cabin would connect with the CM. Crew members would then be able to crawl through the tunnel, and into the LEM - on their backs in the LEM as shown in the simulator photo. The LEM cabin would then be rotated to a stand up position as the CM floated beyond the dome to its tart position. In the end the LEM cabin would be placed atop a fixed descent module simulation sitting in a simulated lunar surface beneath the digitarium dome. The robot arms simulate vibration in synchrony with the sound tracks and digital projections during firing of the descent engine - to give a sense of the flight. Participants climb out of the lander on to the lunar surface. The process is reversed to return to Earth with the CM being lowered into a pool of water beneath a dome with the ocean and sky projected on to it. Discounted at 8.5% per annum, over a ten year period, $890,000 costs $15.74 per hour. For two people, that's $8.00 per person per hour. A 42 minute ride - assuming the vehicle is open 24/7. If open only 42 hours per week, the CAPEX is $32.00 per person - assuming a crew of two. Another $8 per hour - or $4 per person - or $16.00 per person - for OPEX. So, say a 42 minute ride - is $50.00 - and for another $25.00 you can have a video made - and for another $25.00 you can enjoy astronaut food. There's also a video arcade and a restaurant and gift shop - built around the moon museum.
[toc] | [prev] | [standalone]
Page 3 of 3 — ← Prev page 1 2 [3]
Back to top | Article view | sci.space.policy
csiph-web