EXECUTIVE.agc
Interaktion und PortierbarkeitApollo
# Copyright: Public domain. # Filename: EXECUTIVE.agc # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055. # It is part of the source code for the Command Module's (CM) # Apollo Guidance Computer (AGC), for Apollo 11. # Assembler: yaYUL # Contact: Ron Burkey <info@sandroid.org>. # Website: www.ibiblio.org/apollo. # Pages: 1208-1220 # Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the # same name, using Comanche055 page images. # # 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 055 of AGC program Comanche by NASA # 2021113-051. 10:28 APR. 1, 1969 # # This AGC program shall also be referred to as # Colossus 2A
# Page 1208
BLOCK 02
# TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
COUNT02/EXEC
NOVAC INHINT AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET) TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
EXTEND INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT. DCA0# 2CADR OF JOB ENTERED. DXCH NEWLOC CAF EXECBANK XCH FBANK TS EXECTEM1 TCF NOVAC2 # ENTER EXECUTIVE BANK.
# TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
FINDVAC INHINT TS NEWPRIO EXTEND INDEX Q DCA0
SPVACIN DXCH NEWLOC CAF EXECBANK XCH FBANK TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
# TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L: # USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
SPVAC XCH Q AD NEG2 XCH Q TCF SPVACIN
# TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
CHANG1 LXCH Q CAF EXECBANK XCH BBANK TCF CHANJOB
# TO SUSPEND AN INTERPRETIVE JOB:
CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE. # ITRACE (4) REFERS TO "CHANG2". # Page 1209 TS L
+2CAF EXECBANK TS BBANK TCF CHANJOB -1
# Page 1210 # TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
JOBSLEEP TS LOC CAF EXECBANK TS FBANK TCF JOBSLP1
# TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
JOBWAKE INHINT TS NEWLOC CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES. ADS Q CAF EXECBANK XCH FBANK TCF JOBWAKE2
# TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
PRIOCHNG INHINT# NEW PRIORITY ARRIVES IN A. RETURNS TO TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC- XCH BBANK # STYLE CHANGE-JOB. TS BANKSET CA Q TCF PRIOCH2
# TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
ENDOFJOB CAF EXECBANK TS FBANK TCF ENDJOB1
ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY TS FBANK # COMPLETE. TCF Q+2
EXECBANK CADR FINDVAC2
VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
ZL # IN ITS VAC USE REGISTER AND STORE THE INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE LXCH0 -1# LOW NINE BITS OF THE PRIORITY WORD. ADS NEWPRIO
NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET. TS LOCCTR CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
NOVAC3 TS EXECTEM2 INDEX LOCCTR CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF TCF NEXTCORE # THE CORRESPONDING CORE SET IS AVAILABLE.
NO.CORES DEC6 TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY # BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
# Page 1212
CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR INDEX LOCCTR TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP TCFSETLOC# OVFIND AND FIXLOC IMMEDIATELY. TS OVFIND CA PUSHLOC TS FIXLOC
SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE). TCFSETLOC# MUST BE AWAKENED BUT UNCHANGED JOB. TC CCSHOLE TC CCSHOLE TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET. DXCH NEWLOC DXCH LOC TCF ENDFIND
SETLOCDXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS INDEX LOCCTR DXCH LOC INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB EXTEND# SHOULD BE SET TO SIGNAL A SWITCH. BZMF ENDFIND CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC TCF ENDFIND # REGISTERS, ETC.
NEXTCORE CAF COREINC ADS LOCCTR CCS EXECTEM2 TCF NOVAC3 TC BAILOUT # NO CORE SETS. OCT1202 # Page 1213 # THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
-2LXCH LOC
-1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
CHANJOB INHINT EXTEND
ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON XCH L # LOC IN A AND BBCON IN L.
+4INDEX NEWJOB # SWAP LOC AND BANKSET. DXCH LOC DXCH LOC
CAE BANKSET EXTEND WRITE SUPERBNK # SET SBANK FOR NEW JOB. DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS. INDEX NEWJOB DXCH MPAC DXCH MPAC DXCH MPAC +2 INDEX NEWJOB DXCH MPAC +2 DXCH MPAC +2 DXCH MPAC +4 INDEX NEWJOB DXCH MPAC +4 DXCH MPAC +4 DXCH MPAC +6 INDEX NEWJOB DXCH MPAC +6 DXCH MPAC +6
CAF ZERO XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ. EXTEND BZF +3 CS PUSHLOC TS PUSHLOC
DXCH PUSHLOC INDEX NEWJOB DXCH PUSHLOC DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY. CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA. MASK PRIORITY TS FIXLOC
CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO CAF ZERO TCF ENDPRCHG -1
ENDPRCHG RELINT DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO EXTEND# DISPATCH WITH A DTCB. BZMF +2# IF INTERPRETIVE, SET UP EBANK, ETC.
DTCB # Page 1215
COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE AD ONE TS LOC # RESUME. TCF INTRSM
# COMPLETE JOBSLEEP PREPARATIONS.
JOBSLP1 INHINT CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP. TS PRIORITY CAF LOW7 MASK BBANK EXTEND
ROR SUPERBNK # SAVE OLD SUPERBANK VALUE. TS BANKSET CS ZERO
JOBSLP2 TS BUF +1# HOLDS - HIGHEST PRIORITY. TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
NUCHANG2 INHINT# QUICK... DONT LET NEWJOB CHANGE TO +0 . CCS NEWJOB TCF +3# NEWJOB STILL PNZ RELINT# NEWJOB HAS CHANGED TO +0. WAKE UP JOB TCF ADVAN +2# VIA NUDIRECT. (VERY RARE CASE.)
CAF TWO EXTEND WOR DSALMOUT # TURN ON ACTIVITY LIGHT DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF TCF CHANJOB + 4# POSSIBLE SLEEPING JOB.
# Page 1216 # TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE # LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND, # LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
JOBWAKE2 TS EXECTEM1 CAF ZERO # BEGIN CORE SET SCAN. TS LOCCTR CAF NO.CORES
JOBWAKE4 TS EXECTEM2 INDEX LOCCTR CCS PRIORITY TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
COREINC DEC12# 12 REGISTERS PER CORE SET. TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
JOBWAKE3 CAF COREINC ADS LOCCTR CCS EXECTEM2 TCF JOBWAKE4 CS ONE # EXIT IF SLEEPING JOB NOT FOUND. TS LOCCTR TCF ENDFIND
WAKETEST CS NEWLOC INDEX LOCCTR AD LOC EXTEND BZF +2# IF MATCH. TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE CS PRIORITY TS NEWPRIO INDEX LOCCTR TS PRIORITY
CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK AD2K # HALF OF BBANK SAVED IN BANKSET. XCH NEWLOC MASK FBANKMSK INDEX LOCCTR AD BANKSET TS NEWLOC +1
CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS TCFSETLOC# ALREADY IN THE RUN (0) POSITION. TCF SPECTEST
# Page 1217 # PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
PRIOCH2 TS LOC CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS TS BUF # JOB IS STILL HIGHEST PRIORITY. CAF LOW9 MASK PRIORITY AD NEWPRIO TS PRIORITY
COM TCF JOBSLP2 # AND TO EJSCAN.
# Page 1218 # RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
ENDJOB1 INHINT CS ZERO TS BUF +1 XCH PRIORITY MASK LOW9 TS L
CS FAKEPRET AD L
EXTEND BZMF EJSCAN # NOVAC ENDOFJOB
CCS L INDEX A TS0
EJSCAN CCS PRIORITY +12D TC EJ1 TC CCSHOLE TCF +1
CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY. TC CCSHOLE TCF +1
CCS BUF +1# SEE IF THERE ARE ANY ACTIVE JOBS WAITING TC CCSHOLE TC CCSHOLE
TCF +2 TCF DUMMYJOB CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND TCF +2# CHANGED PRIORITY IS STILL HIGHEST. TCF ENDPRCHG -1
INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE CAF0 -1# ADDRESS OF THE NEW JOB'S CORE SET. AD -CCSPR TS NEWJOB TCF CHANJOB -2
EJ1 TS BUF +2 AD BUF +1# - OLD HIGH PRIORITY. CCS A CS BUF +2 TCF EJ2 # NEW HIGH PRIORITY. NOOP INDEX Q TC2# PROCEED WITH SEARCH.
EJ2 TS BUF +1 EXTEND QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR. INDEX BUF TC2
# Page 1220 # IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF, # BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING. TS NEWJOB RELINT CS TWO # TURN OFF THE ACTIVITY LIGHT. EXTEND WAND DSALMOUT
ADVAN CCS NEWJOB # IS A NEWJOB ACTIVE ? TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB. CAF TWO # NEW JOB ALREADY IN POSITION FOR TCF NUDIRECT # EXECUTION.
CA SELFRET TS L # PUT RETURN ADDRESS IN L. CAF SELFBANK TCF SUPDXCHZ + 1# AND DISPATCH JOB.
EBANK= SELFRET
SELFBANK BBCON SELFCHK
NUDIRECT EXTEND# TURN THE GREEN LIGHT BACK ON. WOR DSALMOUT DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE TCF SUPDXCHZ
BLOCK 2# IN FIXED-FIXED SO OTHERS MAY USE.
COUNT02/EXEC
# SUPDXCHZ - ROUTINE TO TRANSFER TO SUPERBANK. # CALLING SEQUENCE # TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + L.
SUPDXCHZ XCH L # BASIC.
+1EXTEND WRITE SUPERBNK TS BBANK TC L
NEG100 OCT77677
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.12Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-10-12)
¤
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.