Curiosamente he encontrado códigos de libre distribución de la época de Apolo 11 que usaron el día que fueron en la Luna (si es que realmente fueron) hace 40 años.
La verdad que nunca he visto en mi vida estos ASM. Abro este tema por curiosidad.
Código
# Copyright: Public domain. # Filename: ALARM_AND_ABORT.agc # Purpose: Part of the source code for Luminary 1A build 099. # It is part of the source code for the Lunar Module's (LM) # Apollo Guidance Computer (AGC), for Apollo 11. # Assembler: yaYUL # Contact: Ron Burkey <info@sandroid.org>. # Website: www.ibiblio.org/apollo. # Pages: 1381-1385 # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting # from the Luminary131/ file of the same # name, using Luminary099 page images. # 2009-06-05 RSB Fixed a type. # # This source code has been transcribed or otherwise adapted from # digitized images of a hardcopy from the MIT Museum. The digitization # was performed by Paul Fjeld, and arranged for by Deborah Douglas of # the Museum. Many thanks to both. The images (with suitable reduction # in storage size and consequent reduction in image quality as well) are # available online at www.ibiblio.org/apollo. If for some reason you # find that the images are illegible, contact me at info@sandroid.org # about getting access to the (much) higher-quality images which Paul # actually created. # # Notations on the hardcopy document read, in part: # # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 # 16:27 JULY 14, 1969 # Page 1381 # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL. # # CALLING SEQUENCE IS AS FOLLOWS: # TC ALARM # OCT AAANN # ALARM NO. NN IN GENERAL AREA AAA. # # (RETURNS HERE) BLOCK 02 SETLOC FFTAG7 BANK EBANK= FAILREG COUNT* $$/ALARM # ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY. ALARM INHINT CA Q ALARM2 TS ALMCADR INDEX Q CA 0 BORTENT TS L PRIOENT CA BBANK +1 EXTEND ROR SUPERBNK # ADD SUPER BITS. TS ALMCADR +1 LARMENT CA Q # STORE RETURN FOR ALARM TS ITEMP1 CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG TCF CHKFAIL2 # YES TRY NEXT REG LXCH FAILREG TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM CHKFAIL2 CCS FAILREG +1 TCF FAIL3 LXCH FAILREG +1 TCF MULTEXIT FAIL3 CA FAILREG +2 MASK POSMAX CCS A TCF MULTFAIL LXCH FAILREG +2 TCF MULTEXIT # Page 1382 PROGLARM CS DSPTAB +11D MASK OCT40400 ADS DSPTAB +11D MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A RELINT INDEX A TC 1 MULTFAIL CA L AD BIT15 TS FAILREG +2 TCF MULTEXIT # PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND # AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS, # CAF OCTXX # ALARM CODE # TC BANKCALL # CADR PRIOLARM # ... ... # ... ... # ... ... # ASTRONAUT RETURN # TC PHASCHNG # IMMEDIATE RETURN TO USER. RESTART # OCT X.1 # PHASE CHANGE FOR PRIO DISPLAY BANK 10 SETLOC DISPLAYS BANK COUNT* $$/DSPLA PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINES BANK TS L # SAVE ALARM CODE CA BUF2 # 2 CADR OF PRIOLARM USER TS ALMCADR CA BUF2 +1 TC PRIOENT +1 # * LEAVE L ALONE -2SEC DEC -200 # *** DONT MOVE CAF V05N09 TCF PRIODSPR BLOCK 02 SETLOC FFTAG7 BANK COUNT* $$/ALARM BAILOUT INHINT CA Q # Page 1383 TS ALMCADR INDEX Q CAF 0 TC BORTENT OCT40400 OCT 40400 INHINT WHIMPER CA TWO AD Z TS BRUPT RESUME TC POSTJUMP # RESUME SENDS CONTROL HERE CADR ENEMA P00DOO INHINT CA Q ABORT2 TS ALMCADR INDEX Q CAF 0 TC BORTENT OCT77770 OCT 77770 # DON'T MOVE CAF OCT35 # 4.35SPOT FOR GOP00DOO TS L COM DXCH -PHASE4 GOP00DOO INHINT TC BANKCALL # RESET STATEFLG, REINTFLG, AND NODOFLAG. CADR FLAGS CA FLAGWRD7 # IS SERVICER CURRENTLY IN OPERATION? MASK V37FLBIT CCS A TCF STRTIDLE TC BANKCALL # TERMINATE GRPS 1, 3, 5, AND 6 CADR V37KLEAN TC BANKCALL # TERMINATE GRPS 2, 4, 1, 3, 5, AND 6 CADR MR.KLEAN # (I.E., GRP 4 LAST) TCF WHIMPER STRTIDLE CAF BBSERVDL TC SUPERSW TC BANKCALL # PUT SERVICER INTO ITS "GROUND" STATE CADR SERVIDLE # AND PROCED TO GOTOP00H. CCSHOLE INHINT CA Q TC ABORT2 OCT21103 OCT 1103 CURTAINS INHINT CA Q TC ALARM2 OCT217 OCT 00217 # Page 1384 TC ALMCADR # RETURN TO USER BAILOUT1 INHINT DXCH ALMCADR CAF ADR40400 BOTHABRT TS ITEMP1 INDEX Q CAF 0 TS L TCF CHKFAIL1 P00DOO1 INHINT DXCH ALMCADR CAF ADR77770 TCF BOTHABRT ALARM1 INHINT DXCH ALMCADR ALMNCADR INHINT INDEX Q CA 0 TS L TCF LARMENT ADR77770 TCF OCT77770 ADR40400 TCF OCT40400 DOALARM EQUALS ENDOFJOB EBANK= DVCNTR BBSERVDL BBCON SERVIDLE # CALLING SEQUENCE FOR VARALARM # CAF (ALARM) # TC VARALARM # # VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY VARALARM INHINT TS L # SAVE USER'S ALARM CODE CA Q # SAVE USERS Q TS ALMCADR TC PRIOENT OCT14 OCT 14 # DONT MOVE TC ALMCADR # RETURN TO USER ABORT EQUALS WHIMPER BANK 13 SETLOC ABTFLGS BANK # Page 1385 COUNT* $$/ALARM FLAGS CS STATEBIT MASK FLAGWRD3 TS FLAGWRD3 CS REINTBIT MASK FLGWRD10 TS FLGWRD10 CS NODOBIT MASK FLAGWRD2 TS FLAGWRD2 TC Q
Fuentes:
http://code.google.com/p/virtualagc/source/browse/trunk/Comanche055
http://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/
http://softlibre.barrapunto.com/softlibre/09/07/21/148250.shtml