Source Code
![]() |
These source code files have been transcribed or otherwise adapted from
digitized images of a hardcopy from the private collection of
Don Eyles. The digitization was performed by archive.org, and
transcription was performed by a team of volunteers.
Note that the page images
presented online are of reduced quality, and that the original
high-quality images are available at archive.org.
Report any conversion errors or legibility problems in page images to info@sandroid.org.
Notations on the program listing read, in part:473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP NOV 10, 1966Note that the date is the date of the printout, not the date of the program revision. |
001297,000002: ## Copyright: Public domain.
001298,000003: ## Filename: INTER-BANK_COMMUNICATION.agc
001299,000004: ## Purpose: Part of the source code for Aurora (revision 12).
001300,000005: ## Assembler: yaYUL
001301,000006: ## Contact: Ron Burkey <info@sandroid.org>.
001302,000007: ## Website: https://www.ibiblio.org/apollo.
001303,000008: ## Pages: 29-33
001304,000009: ## Mod history: 2016-09-20 JL Created.
001305,000010: ## 2016-09-21 MAS Filled out.
001306,000011: ## 2016-10-15 HG Fix label ISWCALLL -> ISWCALL
001307,000012: ## 2016-12-07 RSB Proofed the comments, mostly with
001308,000013: ## octopus/ProoferComments, but some pages
001309,000014: ## needed to be done manually. Only some
001310,000015: ## column alignments were changed.
001311,000016:
001312,000017: ## This source code has been transcribed or otherwise adapted from
001313,000018: ## digitized images of a hardcopy from the private collection of
001314,000019: ## Don Eyles. The digitization was performed by archive.org.
001315,000020:
001316,000021: ## Notations on the hardcopy document read, in part:
001317,000022:
001318,000023: ## 473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP
001319,000024: ## NOV 10, 1966
001320,000025:
001321,000026: ## [Note that this is the date the hardcopy was made, not the
001322,000027: ## date of the program revision or the assembly.]
001323,000028:
001324,000029: ## The scan images (with suitable reduction in storage size and consequent
001325,000030: ## reduction in image quality) are available online at
001326,000031: ## https://www.ibiblio.org/apollo.
001327,000032: ## The original high-quality digital images are available at archive.org:
001328,000033: ## https://archive.org/details/aurora00dapg
001329,000034:
![]() |
Page 29 |
001331,000036: # THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE
001332,000037: # CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE TC BANKCALL INSTRUCTION, WITH C(A) AND C(L) PRESERVED.
001333,000038:
001334,000039: 4063 SETLOC ENDINTFF
001335,000040: 4063 52120 BANKCALL DXCH BUF2 # SAVE INCOMING A,L.
001336,000041: 4064 50002 INDEX Q # PICK UP CADR.
001337,000042: 4065 30000 CA 0
001338,000043: 4066 24002 INCR Q # SO WE RETURN TO THE LOC. AFTER THE CADR.
001339,000044:
001340,000045: # SWCALL IS IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A.
001341,000046:
001342,000047: 4067 54001 SWCALL TS L
001343,000048: 4070 22004 LXCH FBANK # SWITCH BANKS, SAVING RETURN.
001344,000049: 4071 76426 MASK LOW10 # GET SUB-ADDRESS OF CADR.
001345,000050: 4072 56002 XCH Q # A,L NOW CONTAINS DP RETURN.
001346,000051: 4073 52120 DXCH BUF2 # RESTORING INPUTS IF THIS IS A BANKCALL.
001347,000052: 4074 50002 INDEX Q
001348,000053: 4075 02000 TC 10000 # SETTING Q TO SWRETURN.
001349,000054:
001350,000055: 4076 56120 SWRETURN XCH BUF2 +1 # COMES HERE TO RETURN TO CALLER. C(A,L)
001351,000056: 4077 56004 XCH FBANK # ARE PRESERVED FOR RETURN.
001352,000057: 4100 56120 XCH BUF2 +1
001353,000058: 4101 00117 TC BUF2
001354,000059:
001355,000060: # THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY
001356,000061: # FOLLOWING THE TC POSTJUMP INSTRUCTION.
001357,000062:
001358,000063: 4102 56002 POSTJUMP XCH Q # SAVE INCOMING C(A).
001359,000064: 4103 50000 INDEX A # GET CADR.
001360,000065: 4104 30000 CA 0
001361,000066:
001362,000067: # BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A.
001363,000068:
001364,000069: 4105 54004 BANKJUMP TS FBANK
001365,000070: 4106 76426 MASK LOW10
001366,000071: 4107 56002 XCH Q # RESTORING INPUT C(A) IF THIS WAS A
001367,000072: 4110 50002 INDEX Q # POSTJUMP.
001368,000073: 4111 12000 TCF 10000
001369,000074:
![]() |
Page 30 |
001371,000076: # THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A.
001372,000077:
001373,000078: 4112 36426 MAKECADR CAF LOW10
001374,000079: 4113 70117 MASK BUF2
001375,000080: 4114 60120 AD BUF2 +1
001376,000081: 4115 00002 TC Q
001377,000082:
001378,000083: # THE FOLLOWING ROUTINE OBTAINS THE TWO WORDS BEGINNING AT THE ADDRESS ARRIVING IN A, AND LEAVES THEM IN
001379,000084: # A,L.
001380,000085:
001381,000086: 4116 54001 DATACALL TS L
001382,000087: 4117 22004 LXCH FBANK
001383,000088: 4120 22121 LXCH MPTEMP # SAVE FORMER BANK.
001384,000089: 4121 76426 MASK LOW10
001385,000090: 4122 00006 EXTEND
001386,000091: 4123 50000 INDEX A
001387,000092: 4124 32001 DCA 10000
001388,000093:
001389,000094: 4125 56121 XCH MPTEMP
001390,000095: 4126 54004 TS FBANK # RESTORE FBANK.
001391,000096: 4127 30121 CA MPTEMP
001392,000097: 4130 00002 TC Q
001393,000098:
![]() |
Page 31 |
001395,000100: # THE FOLLOWING SUBROUTINES PROVIDE TO THE BASIC PROGRAMMER ENTRY INTO AND RETURN FROM ANY INTERPRETIVE
001396,000101: # CODING WHICH DOES NOT USE THE ENTERING CONTENTS OF Q AND WHICH RETURNS VIA DANZIG. C(A) AND C(L) ARE SAVED.
001397,000102:
001398,000103: # USER'S RESPONSIBILITY TO FILL IN ADVANCE THE APPROPRIATE OPERAND AND ADDRESS REGISTERS USED BY THE
001399,000104: # INTERPRETIVE CODING SUCH AS MPAC, BUF, ADDRWD, ETC.; AND TO CONFIRM THAT THE INTERPRETIVE CODING MEETS THE
001400,000105: # ABOVE RESTRICTIONS WITH RESPECT TO Q AND DANZIG.
001401,000106:
001402,000107: # USEPRET AND USPRCADR MUST NOT BE USED IN INTERRUPT.
001403,000108:
001404,000109: # 1. USEPRET ACCESSES INTERPRETIVE CODING WHICH CAN BE ENTERED WITHOUT CHANGING FBANK.
001405,000110: # THE CALLING SEQUENCE IS AS FOLLOWS:
001406,000111:
001407,000112: # L TC USEPRET
001408,000113: # L+1 TC,TCF INTPRETX TC,TCF MEANS TC OR TCF
001409,000114: # INTPRETX IS THE INTERPRETIVE CODING
001410,000115: # RETURN IS TO L+2
001411,000116:
001412,000117: # 2. USPRCADR ACCESSES INTERPRETIVE CODING IN OTHER THAN THE USER'S FBANK. THE CALLING SEQUENCE IS AS FOLLOWS:
001413,000118:
001414,000119: # L TC USPRCADR
001415,000120: # L+1 CADR INTPRETX INTPRETX IS THE INTERPRETIVE CODING
001416,000121: # RETURN IS TO L+2
001417,000122:
001418,000123: 4131 56002 USEPRET XCH Q # FETCH Q, SAVING A
001419,000124: 4132 54150 TS LOC # L+1 TO LOC
001420,000125: 4133 30004 CA FBANK
001421,000126: 4134 54151 TS BANKSET # USERS BANK TO BANKSET
001422,000127: 4135 37650 CA BIT8
001423,000128: 4136 54023 TS EDOP # EXIT INSTRUCTION TO EDOP
001424,000129: 4137 30002 CA Q # RETRIEVE ORIGINAL A
001425,000130: 4140 00150 TC LOC
001426,000131:
001427,000132: 4141 54150 USPRCADR TS LOC # SAVE A
001428,000133: 4142 37650 CA BIT8
001429,000134: 4143 54023 TS EDOP # EXIT INSTRUCTION TO EDOP
001430,000135: 4144 30004 CA FBANK
001431,000136: 4145 54151 TS BANKSET # USERS BANK TO BANKSET
001432,000137: 4146 50002 INDEX Q
001433,000138: 4147 30000 CA 0
001434,000139: 4150 54004 TS FBANK # INTERPRETIVE BANK TO FBANK
001435,000140: 4151 76426 MASK LOW10 # YIELDS INTERPRETIVE RELATIVE ADDRESS
001436,000141: 4152 56002 XCH Q # INTERPRETIVE ADDRESS TO Q, FETCHING L+1
001437,000142: 4153 56150 XCH LOC # L+1 TO LOC, RETRIEVING ORIGINAL A
001438,000143: 4154 50002 INDEX Q
001439,000144: 4155 12000 TCF 10000
001440,000145:
![]() |
Page 32 |
001442,000147: # THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT.
001443,000148:
001444,000149: 4156 52077 IBNKCALL DXCH RUPTREG3 # USES RUPTREG3,4 FOR DP RETURN ADDRESS.
001445,000150: 4157 50002 INDEX Q
001446,000151: 4160 30000 CAF 0
001447,000152: 4161 24002 INCR Q
001448,000153:
001449,000154: 4162 54001 ISWCALL TS L
001450,000155: 4163 22004 LXCH FBANK
001451,000156: 4164 76426 MASK LOW10
001452,000157: 4165 56002 XCH Q
001453,000158: 4166 52077 DXCH RUPTREG3
001454,000159: 4167 50002 INDEX Q
001455,000160: 4170 02000 TC 10000
001456,000161:
001457,000162: 4171 56077 ISWRETRN XCH RUPTREG4
001458,000163: 4172 56004 XCH FBANK
001459,000164: 4173 56077 XCH RUPTREG4
001460,000165: 4174 00076 TC RUPTREG3
001461,000166:
![]() |
Page 33 |
001463,000168: # T6-RUPT PROGRAMS.
001464,000169:
001465,000170: # ENTER HERE AFTER A T6-RUPT.DETERMINE IF IT IS A GENUINE RUPT.
001466,000171:
001467,000172: 4175 04177 DOT6RUPT TC T6JOBCHK
001468,000173: 4176 14606 TCF RESUME
001469,000174:
001470,000175: # T6JOBCHK DETERMINES IF T6 = -0 ( A T6RUPT HAS OCCURRED ) OR IF T6
001471,000176: # EQUALS +0 ( T6 NOT COUNTING DOWN ) OR =SOME POS.OR NEG. NUMBER ( T6
001472,000177: # BEING DECREMENTED AND NO RUPT IS NEEDED ).
001473,000178:
001474,000179: 4177 10031 T6JOBCHK CCS TIME6
001475,000180: 4200 00002 TC Q
001476,000181: 4201 00002 TC Q
001477,000182: 4202 00002 TC Q
001478,000183: # T6JOB EXECUTES A JET STATE CHANGE AND SETS UP ANY ADDITIONAL T6 RUPTS
001479,000184: # WHICH MIGHT BE NECESSARY.
001480,000185:
001481,000186: 4203 37665 T6JOB CA ZERO
001482,000187: 4204 56767 XCH T6NEXT +1
001483,000188: 4205 56766 XCH T6NEXT
001484,000189: 4206 54031 TS TIME6
001485,000190: 4207 00006 EXTEND
001486,000191: 4210 14230 BZF T6ZERO
001487,000192: 4211 37641 CA BIT15
001488,000193: 4212 00006 EXTEND
001489,000194: 4213 05013 WOR 13
001490,000195: 4214 37665 CA ZERO
001491,000196: 4215 56772 XCH T6NEXTJT +2
001492,000197: 4216 56771 XCH T6NEXTJT +1
001493,000198: 4217 56770 XCH T6NEXTJT
001494,000199: 4220 00006 WRITEJTS EXTEND
001495,000200: 4221 64225 BZMF WRITEQR
001496,000201: 4222 00006 EXTEND
001497,000202: 4223 01006 WRITE 6
001498,000203: 4224 00002 TC Q
001499,000204: 4225 00006 WRITEQR EXTEND
001500,000205: 4226 01005 WRITE 5
001501,000206: 4227 00002 TC Q
001502,000207: 4230 30770 T6ZERO CA T6NEXTJT
001503,000208: 4231 14220 TCF WRITEJTS
001504,000209: 4232 ENDIBNKF EQUALS
End of include-file INTER-BANK_COMMUNICATION.agc. Parent file is MAIN.agc