[ home / overboard ] [ date ] [ soy / qa / raid / incel ] [ int / pol ] [ a / biz / fit / mtv / r9k / sude / tech / v / x ] [ q / news / chive / rules / pass / bans / status ] [ booru / wiki ]

A banner for soyjak.party

/soy/ - Soyjaks

soyjaks and other associated gems
Catalog
Email
Subject
Comment
File
Password (For file deletion.)

File: 361257b0-5d95-497b-a8e7-b….jfif 📥︎ (106.31 KB, 1013x1024) ImgOps

 â„–18679331[Quote]

# Copyright:Public domain.
# Filename:AGC_BLOCK_TWO_SELF-CHECK.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:1394-1403
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
#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 1394
# PROGRAM DESCRIPTIONDATE 20 DECEMBER 1967
# PROGRAM NAME - SELF-CHECKLOG SECTION AGC BLOCK TWO SELF-CHECK
# MOD NO - 1ASSEMBLY SUBROUTINE UTILITYM REV 25
# MOD BY - GAUNTT
#
#
# FUNCTIONAL DESCRIPTION
#
# PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
# PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
# STARTING VERB.
# THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
# THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK , ONE AT A TIME.
# IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
# FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
# THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
# A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
# OCTAL, TO LOAD INTO SMODE.
# +-4ERASABLE MEMORY
# +-5FIXED MEMORY
# +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
# -0SAME AS +-10 UNTIL AN ERROR IS DETECTED.
# +0NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
#
#
# WARNINGS
# USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
# SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
#
#
# CALLING SEQUENCE
#
# TO CALL SELF-CHECK KEY IN
# V 21 N 27 E OPTION NUMBER E
# TO CALL SHOW-BANKSUM KEY IN
# V 91 E DISPLAYS FIRST BANK
# V 33 E PROCEED, DISPLAYS NEXT BANK
#
#
# EXIT MODES, NORMAL AND ALARM
#
# SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
# COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
# THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
# SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
#
#
#
# OUTPUT
# Page 1395
# SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
# TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
# INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
# IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
# INITIATED FRESH START (SLAP1).
# SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
# THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
#
#
# ERASABLE INITIALIZATION REQUIRED
# ACCOMPLISHED BY FRESH START
# SMODE SET TO +0
#
# DEBRIS
# ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
# EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
# E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).

BANK25
SETLOCSELFCHEC
BANK

COUNT43/SELF

SBIT1EQUALSBIT1
SBIT2EQUALSBIT2
SBIT3EQUALSBIT3
SBIT4EQUALSBIT4
SBIT5EQUALSBIT5

 â„–18679351[Quote]

SBIT6EQUALSBIT6
SBIT7EQUALSBIT7
SBIT8EQUALSBIT8
SBIT9EQUALSBIT9
SBIT10EQUALSBIT10
SBIT11EQUALSBIT11
SBIT12EQUALSBIT12
SBIT13EQUALSBIT13
SBIT14EQUALSBIT14
SBIT15EQUALSBIT15

S+ZEROEQUALSZERO
S+1EQUALSBIT1
S+2EQUALSBIT2
S+3EQUALSTHREE
S+4EQUALSFOUR
S+5EQUALSFIVE
# Page 1396
S+6EQUALSSIX
S+7EQUALSSEVEN
S8BITSEQUALSLOW8# 00377
CNTRCON=OCT50# USED IN CNTRCHK
ERASCON1OCTAL00061# USED IN ERASCHK
ERASCON2OCTAL01373# USED IN ERASCHK
ERASCON6=OCT1400# USED IN ERASCHK
ERASCON3OCTAL01461# USED IN ERASCHK
ERASCON4OCTAL01773# USED IN ERASCHK
S10BITSEQUALSLOW10# 01777, USED IN ERASCHK
SBNK03EQUALSPRIO6# 06000, USED IN ROPECHK
-MAXADRS=HI5# FOR ROPECHK
SIXTYOCTAL00060
SUPRCONOCTAL60017# USED IN ROPECHK
S13BITSOCTAL17777
CONC+S1OCTAL25252# USED IN CYCLSHFT
CONC+S2OCTAL52400# USED IN CYCLSHFT
ERASCON5OCTAL76777
S-7=OCT77770
S-4EQUALSNEG4
S-3EQUALSNEG3
S-2EQUALSNEG2
S-1EQUALSNEGONE
S-ZEROEQUALSNEG0

EBANK=LST1
ADRS1ADRESSKEEP1
SELFADRSADRESSELFCHK# SELFCHK RETURN ADDRESS. SHOULD BE PUT
# IN SELFRET WHEN GOING FROM SELFCHK TO
# SHOWSUM AND PUT IN SKEEP1 WHEN GOING
# FROM SHOWSUM TO SELF-CHECK.

PRERRORSCAERESTORE# IS IT NECESSARY TO RESTORE ERASABLE
EXTEND
BZFERRORS# NO
EXTEND
DCASKEEP5
INDEXSKEEP7
DXCH0000# RESTORE THE TWO ERASABLE REGISTERS
CAS+ZERO
TSERESTORE
ERRORSINHINT
CAQ
TSSFAIL# SAVE Q FOR FAILURE LOCATION
TSALMCADR# FOR DISPLAY WITH BBANK AND ERCOUNT
INCRERCOUNT# KEEP TRACK OF NUMBER OF MALFUNCTIONS.
TCALARM2TCALARM2
OCT01102# SELF-CHECK MALFUNCTION INDICATOR
CCSSMODE
SIDLOOPCAS+ZERO
# Page 1397
TSSMODE
TCSELFCHK# GO TO IDLE LOOP
TCSFAIL# CONTINUE WITH SELF-CHECK

-1CHKCCSA
TCFPRERRORS
TCFPRERRORS
CCSA
TCFPRERRORS
TCQ

SMODECHKEXTEND
QXCHSKEEP1
TCCHECKNJ# CHECK FOR NEW JOB
CCSSMODE
TCSOPTIONS
TCSMODECHK +2# TO BACKUP IDLE LOOP
TCSOPTIONS
INCRSCOUNT
TCSKEEP1# CONTINUE WITH SELF-CHECK

SOPTIONSADS-7
EXTEND
BZMF+2# FOR OPTIONS BELOW NINE.
BNKOPTNTCSIDLOOP# ILLEGAL OPTION. GO TO IDLE LOOP.
INCRSCOUNT# FOR OPTIONS BELOW NINE.
ADS+7

INDEXA
TCSOPTION1
SOPTION1TCSKEEP1# WAS TC+TCF
SOPTION2TCSKEEP1# WAS IN:OUT1
SOPTION3TCSKEEP1# WAS COUNTCHK
SOPTION4TCERASCHK
SOPTION5TCROPECHK
SOPTION6TCSKEEP1
SOPTION7TCSKEEP1
SOPTON10TCSKEEP1# CONTINUE WITH SELF-CHECK

CHECKNJEXTEND
QXCHSELFRET# SAVE RETURN ADDRESS WHILE TESTING NEWJOB
TCPOSTJUMP# TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
CADRADVAN

SELFCHKTCSMODECHK# ** CHARLEY, COME IN HERE

# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
# SKEEP6 HOLDS B(X+1).
# SKEEP5 HOLDS B(X).
# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
# Page 1398
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
# ERASCHK TAKES APPROXMATELY 7 SECONDS
ERASCHKCAS+1
TSSKEEP2
0EBANKCAS+ZERO
TSEBANK
CAERASCON3# 01461
TSSKEEP7# STARTING ADDRESS
CAS10BITS# 01777
TSSKEEP3# LAST ADDRESS CHECKED
TCERASLOOP

E134567BCAERASCON6# 01400
TSSKEEP7# STARTING ADDRESS
CAS10BITS# 01777
TSSKEEP3# LAST ADDRESS CHECKED
TCERASLOOP

2EBANKCAERASCON6# 01400
TSSKEEP7# STARTING ADDRESS
CAERASCON4# 01773
TSSKEEP3# LAST ADDRESS CHECKED
TCERASLOOP

NOEBANKTSSKEEP2# +0
CAERASCON1# 00061
TSSKEEP7# STARTING ADDRESS
CAERASCON2# 01373
TSSKEEP3# LAST ADDRESS CHECKED

ERASLOOPINHINT
CAEBANK# STORES C(EBANK)
TSSKEEP4
EXTEND
NDXSKEEP7
DCA0000
DXCHSKEEP5# STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
CASKEEP7
TSERESTORE# IF RESTART, RESTORE C(X) AND C(X+1)
TSL
INCRL
NDXA
DXCH0000# PUTS OWN ADDRESS IN X AND X +1
NDXSKEEP7
CS0001# CS X+1
NDXSKEEP7
AD0000# AD X
TC-1CHK
CAERESTORE# HAS ERASABLE BEEN RESTORED
# Page 1399
EXTEND
BZFELOOPFIN# YES, EXIT ERASLOOP.
EXTEND
NDXSKEEP7
DCS0000# COMPLEMENT OF ADDRESS OF X AND X+1
NDXSKEEP7
DXCH0000# PUT COMPLEMENT OF ADDRESS OF X AND X+1
NDXSKEEP7
CS0000# CS X
NDXSKEEP7
AD0001# AD X+1
TC-1CHK
CAERESTORE# HAS ERASABLE BEEN RESTORED
EXTEND
BZFELOOPFIN# YES, EXIT ERASLOOP.
EXTEND
DCASKEEP5
NDXSKEEP7
DXCH0000# PUT B(X) AND B(X+1) BACK INTO X AND X+1
CAS+ZERO
TSERESTORE# IF RESTART, DO NOT RESTORE

 â„–18679357[Quote]

kys

 â„–18679359[Quote]

C(X), C(X+1)
ELOOPFINRELINT
TCCHECKNJ# CHECK FOR NEW JOB
CASKEEP4# REPLACES B(EBANK)
TSEBANK
INCRSKEEP7
CSSKEEP7
ADSKEEP3
EXTEND
BZF+2
TCERASLOOP# GO TO NEXT ADDRESS IN SAME BANK
CCSSKEEP2
TCNOEBANK
INCRSKEEP2# PUT +1 IN SKEEP2.
CAEBANK
ADSBIT9
TSEBANK
ADERASCON5# 76777, CHECK FOR BANK E2
EXTEND
BZF2EBANK
CCSEBANK
TCE134567B# GO TO EBANKS 1,3,4,5,6, AND 7
CAERASCON6# END OF ERASCHK
TSEBANK
# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
CNTRCHKCACNTRCON# 00050
CNTRLOOPTSSKEEP2
ADSBIT4# +10 OCTAL
INDEXA
# Page 1400
CS0000
CCSSKEEP2
TCCNTRLOOP

# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
CYCLSHFTCACONC+S1# 25252
TSCYR# C(CYR) = 12525
TSCYL# C(CYL) = 52524
TSSR# C(SR) = 12525
TSEDOP# C(EDOP) = 00125
ADCYR# 37777C(CYR) = 45252
ADCYL# 00-12524C(CYL) = 25251
ADSR# 00-25251C(SR) = 05252
ADEDOP# 00-25376C(EDOP) = +0
ADCONC+S2# C(CONC+S2) = 52400
TC-1CHK
ADCYR# 45252
ADCYL# 72523
ADSR# 77775
ADEDOP# 77775
ADS+1# 77776
TC-1CHK

INCRSCOUNT +1
TCSMODECHK
# SKEEP1 HOLDS SUM
# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
# (04000 TO 07777 IN FXFX BANKS)
# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
# SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS

ROPECHKCAS-ZERO# *
TSSKEEP6# * -0 FOR ROPECHK.
STSHOSUMCAS+ZERO# * SHOULD BE ROPECHK

TSSKEEP4# BANK NUMBER
CAS+1
COMMFXTSSKEEP7
CAS+ZERO
TSSKEEP1
TSSKEEP3
CAS+1
TSSKEEP5# COUNTS DOWN 2 TC SELF WORDS
COMADRSCASKEEP4
TSL# TO SET SUPER BANK
# Page 1401
MASKHI5
ADSKEEP3
TCSUPDACAL# SUPER DATA CALL
TCADSUM
ADSBIT11# 02000
TCADRSCHK

FXFXCSA
TSSKEEP7
EXTEND
BZF+3
CASBIT12# 04000, STARTING ADDRESS OF BANK 02
TC+2
CASBNK03# 06000, STARTING ADDRESS OF BANK 03
TSSKEEP3
CAS+ZERO
TSSKEEP1
CAS+1
TSSKEEP5# COUNTS DOWN 2 TC SELF WORDS
FXADRSINDEXSKEEP3
CA0000
TCADSUM
TCADRSCHK

ADSUMTSSKEEP2
ADSKEEP1
TSSKEEP1
CAFS+ZERO
ADSKEEP1
TSSKEEP1
CSSKEEP2
ADSKEEP3
TCQ

ADRSCHKLXCHA
CASKEEP3
MASKLOW10# RELATIVE ADDRESS
AD-MAXADRS# SUBTRACT MAX RELATIVE ADDRESS = 1777.
EXTEND
BZFSOPTION# CHECKSUM FINISHED IF LAST ADDRESS.
CCSSKEEP5# IS CHECKSUM FINISHED
TC+3# NO
TC+2# NO
TCSOPTION# GO TO ROPECHK SHOWSUM OPTION
CCSL# -0 MEANS A TC SELF WORD.
TCCONTINU
TCCONTINU
TCCONTINU
CCSSKEEP5
TCCONTINU +1
# Page 1402
CAS-1
TCCONTINU +1# AD IN THE BUGGER WORD
CONTINUCAS+1# MAKE SURE TWO CONSECUTIVE TC SELF WORDS
TSSKEEP5
CCSSKEEP6# *
CCSNEWJOB# * +1, SHOWSUM
TCCHANG1# *
TC+2# *
TCCHECKNJ# -0 IN SKEEP6 FOR ROPECHK

ADRS+1INCRSKEEP3
CCSSKEEP7
TCCOMADRS
TCCOMADRS
TCFXADRS
TCFXADRS

NXTBNKCSSKEEP4
ADLSTBNKCH# LAST BANK TO BE CHECKED
EXTEND
BZFENDSUMS# END OF SUMMING OF BANKS.
CASKEEP4
ADSBIT11
TSSKEEP4# 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
TCCHKSUPR

 â„–18679361[Quote]

17TO20CASBIT15
ADSSKEEP4# SET FOR BANK 20
TCGONXTBNK
CHKSUPRMASKHI5
EXTEND
BZFNXTSUPR# INCREMENT SUPER BANK
27TO30ADS13BITS
EXTEND
BZF+2# BANK SET FOR 30
TCGONXTBNK
CASIXTY# FIRST SUPER BANK
ADSSKEEP4
TCGONXTBNK
NXTSUPRADSUPRCON# SET BNK 30 + INCR SUPR BNK AND CANCEL
ADSSKEEP4# ERC BIT OF THE 37 TO 40 ADVANCE.
GONXTBNKCCSSKEEP7
TCCOMMFX
CAS+1
TCFXFX
CASBIT7# HAS TO BE LARGER THAN NO OF FXSW BANKS.
TCCOMMFX

SOPTIONCASKEEP4
MASKHI5# = BANK BITS
TCLEFT5
# Page 1403
TSL# BANK NUMBER BEFORE SUPER BANK
CASKEEP4
MASKS8BITS# = SUPER BANK BITS
EXTEND
BZFSOPT# BEFORE SUPER BANK
TSSR# SUPER BANK NECESSARY
CAL
MASKSEVEN
ADSR
TSL# BANK NUMBER WITH SUPER BANK
SOPTCASKEEP6# *
EXTEND# *
BZF+2# * ON -0 CONTINUE WITH ROPE CHECK.
TCSDISPLAY# * ON +1 GO TO DISPLAY OF SUM.
CCSSKEEP1# FORCE SUM TO ABSOLUTE VALUE.
TC+2
TC+2
ADS+1
TSSKEEP1
BNKCHKCSL# = - BANK NUMBER
ADSKEEP1
ADS-1
TC-1CHK# CHECK SUM
TCNXTBNK

EBANK=NEWJOB
LSTBNKCHBBCON*# * CONSTANT, LAST BANK.
SBANK=LOWSUPER

 â„–18679367[Quote]

No arrow



[Return][Catalog][Go to top][Post a Reply]
Delete Post [ ]
[ home / overboard ] [ date ] [ soy / qa / raid / incel ] [ int / pol ] [ a / biz / fit / mtv / r9k / sude / tech / v / x ] [ q / news / chive / rules / pass / bans / status ] [ booru / wiki ]