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