# Copyright: Public domain. # Filename: SERVICE_ROUTINES.agc # Purpose: Part of the source code for Comanche, build 055. It # is part of the source code for the Command Module's # (CM) Apollo Guidance Computer (AGC), Apollo 11. # Assembler: yaYUL # Reference: pp. 1485-1492 # Contact: Ron Burkey <info@sandroid.org> # Website: http://www.ibiblio.org/apollo. # Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same # name, and page images. Corrected various # typos in the transcription of program # comments, and these should be back-ported # to Colossus249. # # The contents of the "Comanche055" files, in general, are transcribed # from scanned documents. # # Assemble revision 055 of AGC program Comanche by NASA # 2021113-051. April 1, 1969. # # This AGC program shall also be referred to as Colossus 2A # # Prepared by # Massachusetts Institute of Technology # 75 Cambridge Parkway # Cambridge, Massachusetts # # under NASA contract NAS 9-4065. # # Refer directly to the online document mentioned above for further # information. Please report any errors to info@sandroid.org.
# Page 1485
BLOCK 3 SETLOC FFTAG6 BANK COUNT03/FLAG
UPENT2 TS L # WHICH FLAGWORD IS IT MASK OCT7 XCH L # SAVE IN L FOR INDEXING
MASK OCT77770 # OBTAIN THE BIT INFORMATION INHINT# PREVENT INTERUPTS TS ITEMP1 # STORE THE BIT INFORMATION TEMPORARIALY
NDX L CS FLAGWRD0 MASK ITEMP1 NDX L ADS FLAGWRD0 RELINT# RELEASE INTERUPT INHIBIT
# Page 1486 # # UPFLAG AND DOWNFLAG ARE ENTIRELY GENERAL FLAG SETTING AND CLEARING SUBROUTINES. USING THEM, WHETHER OR # NOT IN INTERRUPT, ONE MAY SET OR CLEAR ANY SINGLE, NAMED BIT IN ANY ERASABLE REGISTER, SUBJECT OF COURSE TO # EBANK SETTING. A "NAMED" BIT, AS THE WORD IS USED HERE, IS ANY BIT WITH A NAME FORMALLY ASSIGNED BY THE YUL # ASSEMBLER. # # AT PRESENT THE ONLY NAMED BITS ARE THOSE IN THE FLAGWORDS. ASSEMBLER CHANGES WILL MAKE IT POSSIBLE TO # NAME ANY BIT IN ERASABLE MEMORY. # # CALLING SEQUENCES ARE AS FOLLOWS:- # # TC UPFLAG TC DOWNFLAG # ADRES NAME OF FLAG ADRES NAME OF FLAG # # RETURN IS TO THE LOCATION FOLLOWING THE "ADRES" ABOUT .58 MS AFTER THE "TC". # # UPON RETURN A CONTAINS THE CURRENT FLAGWRD SETTING.
BLOCK 02 SETLOC FFTAG1 BANK COUNT* $$/FLAG
UPFLAG CA Q TC DEBIT
COM # +(15 - BIT) EXTEND
ROR LCHAN # SET BIT
COMFLAG INDEX ITEMP1 TS FLAGWRD0 LXCH ITEMP3 RELINT TC L
DOWNFLAG CA Q TC DEBIT MASK L # RESET BIT TCF COMFLAG
DEBIT AD ONE # GET DE BITS INHINT TS ITEMP3 CA LOW4 # DEC15 TS ITEMP1 INDEX ITEMP3 CA0 -1# ADRES TS L CA ZERO # Page 1487 EXTEND
DV ITEMP1 # A = FLAGWRD, L = (15 - BIT) DXCH ITEMP1 INDEX ITEMP1 CA FLAGWRD0 TS L # CURRENT STATE INDEX ITEMP2 CS BIT15 # -(15 - BIT) TC Q
# Page 1488 # DELAYJOB- A GENERAL ROUTINE TO DELAY A JOB A SPECIFIC AMOUNT OF TIME BEFORE PICKING UP AGAIN. # # ENTRANCE REQUIREMENTS... # CAF DT # DELAY JOB FOR DT CENTISECS # TC BANKCALL # CADR DELAYJOB
BANK06 SETLOC DLAYJOB BANK
# THIS MUST REMAIN IN BANK 0 ****************************************
COUNT00/DELAY
DELAYJOB INHINT TS Q # STORE DELAY DT IN Q FOR DLY -1 IN
CAF DELAYNUM # WAITLIST
DELLOOP TS RUPTREG1 INDEX A CA DELAYLOC # IS THIS DELAYLOC AVAILABLE EXTEND BZF OK2DELAY # YES
CCS RUPTREG1 # NO, TRY NEXT DELAYLOC TCF DELLOOP
TC BAILOUT # NO AVAILABLE LOCS AVAILABLE. OCT1104
OK2DELAY CA TCSLEEP # SET WAITLIST IMMEDIATE RETURN TS WAITEXIT
CA FBANK AD RUPTREG1 # STORE BBANK FOR TASK CALL TS L
CAF WAKECAD # STORE CADR FOR TASK CALL TCF DLY2 -1# DLY IS IN WAITLIST ROUTINE
TCGETCAD TC MAKECADR # GET CALLERS FCADR
INDEX RUPTREG1 TS DELAYLOC # SAVE DELAY CADRS
TC JOBSLEEP
WAKER CAF ZERO INDEX BBANK XCH DELAYLOC # MAKE DELAYLOC AVAILABLE # Page 1489 TC JOBWAKE
TC TASKOVER
TCSLEEP GENADR TCGETCAD -2
WAKECAD GENADR WAKER
# Page 1490 # GENTRAN, A BLOCK TRANSFER ROUTINE. # # WRITTEN BY D. EYLES # MOD 1 BY KERNAN UTILITYM REV 17 11/18/67 # # MOD 2 BY SCHULENBERG (REMOVE RELINT) SKIPPER REV 4 2/28/68 # # THIS ROUTINE IS USEFULL FOR TRANSFERING N CONSECUTIVE ERASABLE OR FIXED QUANTITIES TO SOME OTHER N # CONSECUTIVE ERASABLE LOCATIONS. IF BOTH BLOCKS OF DATA ARE IN SWITCHABLE EBANKS, THEY MUST BE IN THE SAME ONE. # # GENTRAN IS CALLABLE IN A JOB AS WELL AS A RUPT. THE CALLING SEQUENCE IS: # # I CA N-1 # # OF QUANTITIES MINUS ONE. # I +1 TC GENTRAN # IN FIXED-FIXED. # I +2 ADRES L # STARTING ADRES OF DATA TO BE MOVED. # I +3 ADRES M # STARTING ADRES OF DUPLICATION BLOCK. # I +4 # RETURNS HERE. # # GENTRAN TAKES 25 MCT'S (300 MICROSECONDS) PER ITEM + 5 MCT'S (60 MICS) FOR ENTERING AND EXITING. # # A, L AND ITEMP1 ARE NOT PRESERVED.
BLOCK 02 SETLOC FFTAG4 BANK
EBANK= ITEMP1
COUNT* $$/TRAN
GENTRAN INHINT TS ITEMP1 # SAVE N-1. INDEX Q # C(Q) = ADRES L. AD0# ADRES (L + N - 1). INDEX A CA0# C(ABOVE). TS L # SAVE DATA. CA ITEMP1 INDEX Q AD1# ADRES (M + N - 1). INDEX A LXCH0# STUFF IT. CCS ITEMP1 # LOOP UNTIL N-1 = 0. TCF GENTRAN +1 TCF Q+2# RETURN TO CALLER.
# Page 1491 # B5OFF ZERO BIT 5 OF EXTVBACT, WHICH IS SET BY TESTXACT. # # MAY BE USED AS NEEDED BY ANY EXTENDED VERB WHICH HAS DONE TESTXACT
# Page 1492 # SUBROUTINES TO TURN OFF AND TURN ON TRACKER FAIL LIGHT.
TRFAILOF INHINT CS OCT40200 # TURN OFF TRACKER LIGHT MASK DSPTAB +11D AD BIT15 TS DSPTAB +11D CS OPTMODES # TO INSURE THAT OCDU FAIL WILL GO ON MASK BIT7 # AGAIN IF IT WAS ON IN ADDITION TO ADS OPTMODES # TRACKER FAIL.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.