Multiple Pages    

* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 1

0001 * NAME: AB16-12T3 DOC 70181010000 REV F 0002 * 0003 * DESCRIPTION: STANDARD REAL TIME CLOCK TEST 0004 * CPU CLOCK CALIBRATION AID 0005 * 0006 * 0007 * REVISION HISTORY 0008 * REV DATE 0009 * F JAN 73 (AB16-12T3) 0010 * E JUN 72 (AB16-12T3) 0011 * D JAN 72 (AB16-12T3) 0012 * C MAY 71 (O16-12T3) 0013 * B DEC 69 (O16-RTC2) 0014 * A NOT RELEASED (316-RTC1) 0015 * 0016 * 0017 * 0018 * 0019 * 0020 * COPYRIGHT 1973 BY HONEYWELL INFORMATION SYSTEMS INC. 0021 * 0022 ************************************************************************* 0023 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 2

0024 * DISTRIBUTION 0025 * 0026 * THIS PROGRAM IS INTENDED TO BE DISTRIBUTED IN A BINARY 0027 * (SELF-LOADING) FORM. IT MUST BE LINKED DURING THE ORIGIONAL 0028 * LOAD WITH A 3/5/716 FORTRAN MATH LIBRARY. 0029 * 0030 * IF A HARDWARE LIBRARY IS (INCORRECTLY) USED THE LINKED PROGRAM 0031 * WILL NOT BE TRANSPORTABLE TO ALL 316/516/716 COMPUTERS. 0032 * 0033 * 0034 * STORAGE 0035 * 0036 * THIS IS A STAND-ALONE PROGRAM WHICH USES ALL OF MEMORY 0037 * UP TO 32K. 0038 * 0039 * 0040 * TIMING 0041 * 0042 * CALIBRATION OF THE CPU CLOCK REQUIRES ONE MINUTE AS TIMED BY A 0043 * SWEEP SECOND HAND ON A WATCH OR CLOCK. THE OPERATOR IS EXPECTED 0044 * TO TIME THE OPERATION TO 0.2 SECONDS (0.3 %). 0045 * 0046 * BASIC TESTS TAKE ABOUT TWO MINUTES FOR A 60 HZ CLOCK. 0047 * 0048 * IF THE TIME-OF-DAY IS RUN FOR ONE HOUR THEN 30 SECONDS IS ABOUT 0049 * 1 PERCENT. TWELVE HOURS OPERATION GIVES 0.1 PERCENT ACCURACY 0050 * INDICATION FOR 30 SECONDS VARIATION IN THE TIME PRINTINO STARTS. 0051 * 0052 * 0053 * USE 0054 * 0055 * LOAD, SET THE SENSE SWITCHES, START AT '1000 AND OBSERVE 0056 * THE CORRECT CP TYPE INDICATED ON THE ASR. ENTER THE 0057 * PARAMETERS AS INDICATED BELOW. 0058 * 0059 * ANSWER THE QUESTION 'Y' TO START A CPU OPERATION (CLOCK) TIME 0060 * CALIBRATION OR 'N' TO RUN THE RTC TESTS. 0061 * 0062 * SWITCH: 0063 * 1-SET TO LOOP ON ELAPSED TIME ROUTINE 0064 * 2-SET TO LOOP ON ERROR 0065 * 3-SET TO FORCE OUTPUT 0F STABILITY DISTRIBUTION DATA 0066 * 4-SET TO BYPASS (OR END) THE TIME-OF-DAY OPERATION 0067 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 3

0068 * 0069 * PARAMETER INPUT: 0070 * NOM NS Q: XXXX 400 TO 1600 NANOSECOND NOMINAL CPU TIME 0071 * (775, 960, OR 1600 DEFAULT) 0072 * FREQ Q: XXXX 50 TO 1000 HZ (60 DEFAULT) 0073 * SAMPLE Q: XXXX 1 TO 1000 CLOCK CYCLES (600 DEFAULT) 0074 * HOUR Q: XX 0 TO 23 INITIAL VALUES FDR TIME-OF-DAY 0075 * MINUTE Q: XX 0 10 59 CLOCK (00:00 DEFAULT) 0076 * 0077 * THE INPUT MAY BE TERMINATED WITH A CR OR 0078 * A PERIOD. THE TERMINATOR ALONE WILL USE THE 0079 * DEFAULT OR PREVIUUS VALUE. ANY UNACCEPTABLE 0080 * VALUE WILL CAUSE THE REQUEST FOR BOTH 0081 * PARAMETERS TO BE REPEATED. VALID PARAMETERS 0082 * ARE ACKNOWLEDGED WITH A CR/LF. 0083 * THE PARAMETERS MUST BE CHOSEN SUCH THAT 1000 TIMES 0084 * THE SAMPLE DIVIDED BY THE FREQUENCY IS LESS THAN 0085 * 16768. THE MEASURED RESULT MUST ALSO BE UNDER 16768 0086 * TO AVOID 'RI' AND 'DZ' ERRORS. 0087 * 0088 * TIMING CPU CLOCK TIME: 0089 * USE THE SWEEP SECOND HAND OF A CLOCK OR WATCH AND NOTE THE 0090 * TIME THE C/R OR PERIOD IS GIVEN AT THE END OF THE NOMINAL 0091 * NANOSECOND INPUT. ON THE ONE MINUTE MARK HIT THE START 0092 * BUTTON TO CAUSE AN INTERRUPT. WITH A LITTLE PRACTICE THE 0093 * RESULT SHOULD BE CONSISTANT AND ACCURATE TO 0.3 %. 0094 * 0095 * 0096 * OUTPUT DATA - CPU OPERATION TIME 0097 * 0098 * THE OUTPUT MESSAGE GIVES THE TIME IN NANOSECONDS OF ONE 0099 * GENERIC NO OPERATION AND THE PERCENT DEVIATION FROM THE 0100 * NOMINAL TIME. DEPENDING UPON THE MEMORY TYPE THE TIME MAY 0101 * BE ONE CYCLE OF THE MEMORY OR ONE CYCLE OF THE CPU. 0102 * 0103 * TO CALIBRATE A 'SCOPE START THE PROCESS, BUT DO NOT PUSH 0104 * THE START BUTTON. THE LOOP WILL RUN FOREVER. 0105 * 0106 * 0107 * 0108 * 0109 * OUTPUT DATA - ERRORS 0110 * 0111 * ON DETECTION OF CERTAIN ANTICIPATED ERRORS, AN 0112 * ERROR MESSAGE WILL BE SENT TO THE ASR WHICH WILL 0113 * INDICATE THE ERROR THAT HAS OCCURRED. 0114 * 0115 * ER1 - INTERRUPT NOT RTC 0116 * 0117 * ER3 - INTERRUPT NOT RESET
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 4

0118 * 0119 * ER4 - NO INTERRUPT RECEIVED IN 22 MILLISECONDS 0120 * 0121 * ER5 - OCP '220 DID NOT RESET INTERRUPT 0122 * 0123 * ER6 - INTERRUPT RECEIVED WITH MASK RESET 0124 * 0125 * ER7 - LOCATION '61 NOT INCREMENTING 0126 * 0127 * ER8 - MEMORY POINTED TO BY (X) RUNNING TOO FAST 0128 * 0129 * ER9 - MEMORY POINTED TO BY (X) RUNNING TOO SLOW 0130 * 0131 * ERROR MESSAGES (TWO LETTERS) ARE POSSIBLE FROM THE FORTRAN 0132 * LIBRARY, HOWEVER THEY SHOULD NOT APPEAR IF THE CORRECT 0133 * LIBRARY WAS LOADED. 0134 * 0135 * 0136 * OUTPUT DATA - STABILITY TEST 0137 * 0138 * THE STABILITY TEST DETERMINES A VALUE FOR AN RTC CYCLE 0139 * MEASURED IN UNITS OF EIGHT CP CYCLES AND AVERAGED OVER A 0140 * 4096 CYCLE PERIOD. ONE THOUSAND SAMPLES OF ONE RTC 0141 * CYCLE EACH ARE TAKEN AND A RECORD OF EACH DEVIATION 0142 * FROM THE AVERAGE IS KEPT. THE AVERAGE AND THE 0143 * TALLY OF DEVIATIONS (FREQUENCY DISTRIBUTION) ARE LISTED 0144 * IF THE RESULTS ARE NOT ACCEPTABLE OR FORCED (SWITCH 3) 0145 * FOR USE BY THE USER SYSTEMS ANALYST. THE DISTRIBUTION 0146 * SHOWS THE EFFECT OF JITTER ON THE RTC AND THE CP CLOCK. 0147 * 0148 * A 'REJECT' MAY RESULT FROM NON-ZERO COUNTS IN THE ENDS OF 0149 * THE TABLE OR A WIDTH OF MORE THAN: 0150 * 4 IF AVTRAUE LESS THAN 667 0151 * 0.6 % IF AVERAOE 667 TO 1333 0152 * 8 IF AVERAGE GREATER THAN 1333 0153 * 0154 * 0155 * OUTPUT DATA - ELAPSED TIME MEASUREMENT 0156 * 0157 * THE TEST OPERATOR INPUTS THE INTENDED REAL RATE OF THE RTC 0158 * IN HERTZ AND A SAMPLE SIZE IN CYCLES. THE OUTPUT 0159 * IS THE MEASURED TIME FOR THE SAMPLE, WITH RESPECT 0160 * TO THE CP CLOCK, AND THE CALCULATED TIME FOR HIS 0161 * COMPARISON. THE MEASURED TIME IS COMPARED TO THE CALCULATED 0162 * TIME AND THE PER CENT DEVIATION (TC 0.1%) IS TYPED. IF 0163 * THE DEVIATION IS GREATER THAN 7.0% A WARNING MESSAGE 0164 * IS ALSO TYPED. 0165 * 0166 * THE CPU TIME USED IS THE VALUE OBTAINED IN THE 'CPU 0167 * OPERATION TIME' IF IT HAS BEEN RUN, OR THE DEFAULT VALUE
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 5

0168 * FOR THE CPU TYPE (800, 960 OR 1600 NANOSEC). 0169 * 0170 * CLOKS OUTSIDE THE RANGE OF 50 T0 1000 HZ MAY BE TESTED 0171 * BY USING AN APPROPRIATE MULTIPLIER. 0172 * 0173 * 0174 * OUTPUT DATA - MEMORY MODULE TIMING 0175 * 0176 * THE TIMING TEST DETERMINES THE TIME FOR ONE RTC CYCLE 0177 * AS MEASURED BY A LOOP IN THE FIRST 4K. THE LOOP IS IRS CTR 0178 * AND JMP *-1. THE SAME LOOP IS THEN RUN IN EACH 4K MODULE 0179 * FOUND TO BE PRESENT. THE RESULTING COUNT IS COMPARED TO 0180 * THE FIRST. THE ALLOWED MARGIN IS 12.5%. THE MEMORY SIZE 0181 * FOUND IS TYPED ON THE TELETYPE. 0182 * 0183 * 0184 * OUTPUT DATA - TIME-OF-DAY 0185 * 0186 * EVERY MINUTE THE CURRENT TIME IS TYPED STARTING FROM THE 0187 * HOURS AND MINUTES TYPED IN. THE OPERATOR IS EXPECTED TO USE 0188 * A WALL CLOCK WITH A SECOND HAND AND ALLOW THE TEST TO RUN 0189 * FOR AT LEAST SEVERAL HOURS. EXTRA OR MISSING INTERRUPTS (ONE 0190 * PER MINUTE NORMAL) CAUSE A HALT. THE TELETYPE MAY BE TURNED 0191 * OFF WHILE THE TEST IS RUNNING. 0192 * 0193 * TO END THE TEST SET SENSE SWITCH FOUR. 0194 * 0195 * 0196 ************************************************************************* 0197 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 6

0198 * OVERALL PROGRAM FLOWCHART 0199 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 7

0200 CF5 0201 ORG '1000 0202 * 0203 01000 101000 NOP ROOM FOR PATCH 0204 01001 0 02 00570 LDA PIMK TURN ON FIRST TWELVE 0205 01002 74 0120 SMK '120 PI MASKS 0206 01003 101000 NOP ROOM FOR PATCH 0207 * 0208 01004 0 10 02552 JST LFCR NEATEN UP PAPER 0209 01005 0 10 02574 JST OPCO TYPE PROGRAM TITLE 0210 01006 0 003335 DAC MES9 0211 01007 100000 NOP SKP NOP GOES HERE SO THE DEFAULT 0212 01010 0 01 01123 JMP BYOM VALUES AND FULL TYPE-OUT 0213 * GET DONE ONLY ONCE 0214 01011 0 02 00636 LDA =60 SET DEFAULT PARAMETERS 0215 01012 0 04 00544 STA DCPS OF G0 HZ AND 600 CYCLES 0216 01013 0 02 00717 LDA =600 FOR THE ELAPSED TIME TEST 0217 01014 0 04 00545 STA DINC 0218 01015 0 02 01607 LDA IRST 0219 01016 0 04 01602 STA IRSX 0220 * 0221 01017 0 10 02574 JST OPCO TYPE OPENING MESSAGE 0222 01020 0 003346 DAC MES1 0223 * 0224 01021 0 02 00716 LDA =A FORCE BLANKS ON LAST PART 0225 01022 0 04 01120 STA CPMA OF CP TYPE MESSAGE 0226 01023 140040 CRA FIND OUT CP TYPE BY 0227 01024 0 04 00574 STA TEMP USING ONE ASR CYCLE. 0228 01025 34 0004 SKS 4 A 316 WILL BUMP TEMP 0229 01026 100000 SKP 8900 TIMES IN 100000 MICROSEC 0230 01027 0 01 01033 JMP *+4 AND A 516 WILL BUMP IT 0231 01030 0 12 00574 IRS TEMP 14900 TIMES 0232 01031 0 01 01025 JMP *-4 0233 01032 000000 HLT SOMETHING WRONG 0234 * 0235 01033 140040 CRA MAKE A ZERO 0236 01034 0 12 00001 IRS 1 BUMP A OR PROTECTED MEMORY 0237 01035 101000 NOP THE SEE IF A REG MOVED 0238 01036 101040 SNZ 0239 01037 0 01 01055 JMP OLD IF A REG SAME THEN 3 0R 516 0240 * 0241 * 0242 01040 0 02 00715 LDA =-313 (1000/4*0.800) FOR IRS AND JMP 0243 01041 0 04 00543 STA DCON 0244 01042 0 02 00714 LDA ='26 MAKE UP FOR CYCLES LOST 0245 01043 0 04 00565 STA MUCL MAKE UP FOR CYCLES LOST 0246 01044 0 02 00713 LDA =800 DEFAULT CLOCK NS 0247 01045 0 04 00572 STA RENS 0248 01046 0 04 00550 STA EXNS 0249 01047 0 02 01610 LDA IRSZ
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 8

0250 01050 0 04 01602 STA IRSX 0251 01051 0 02 00712 LDA =7 0252 01052 0 04 00602 STA TYPE SEVEN FOR 716 IN TYPE 0253 01053 0 02 00711 LDA =A 7 0254 01054 0 01 01106 JMP ALL 0255 * 0256 01055 0 02 00574 OLD LDA TEMP 0257 01056 0 11 00710 CAS =11900 CENTER VALUE 0258 01057 0 01 01074 JMP DDP5 CP IS 516 0259 01060 101000 NOP 0260 * 0261 01061 0 02 00707 LDA =-155 CP IS H316 0262 01062 0 04 00543 STA DCON SET DELAY CONSTANT 0263 01063 0 02 00706 LDA =16 0264 01064 0 04 00565 STA MUCL 0265 01065 0 02 00705 LDA =1600 DEFAULT CLOCK NS 0266 01066 0 04 00572 STA RENS 0267 01067 0 04 00550 STA EXNS 0268 01070 0 02 00704 LDA =3 THREE FOR 316 IN TYPE 0269 01071 0 04 00602 STA TYPE 0270 01072 0 02 00703 LDA =A 3 0271 01073 0 01 01106 JMP ALL 0272 * 0273 01074 0 02 00702 DDP5 LDA =-261 CP IS 516 0274 01075 0 04 00543 STA DCON SET DELAY CONSTANT 0275 01076 0 02 00701 LDA =4 0276 01077 0 04 00565 STA MUCL 0277 01100 0 02 00700 LDA =960 DEFAULT CLOCK NS 0278 01101 0 04 00572 STA RENS 0279 01102 0 04 00550 STA EXNS 0280 01103 0 02 00677 LDA =5 FIVE FOR 516 IN TYPE 0281 01104 0 04 00602 STA TYPE 0282 01105 0 02 00676 LDA =A 5 0283 * 0284 01106 101000 ALL NOP ROOM FOR PATCH 0285 01107 0 04 01116 STA CPM+3 FORM A MESSAGE AND 0286 01110 0 10 02574 JST OPCO TYPE THE CP ID 0287 01111 0 001113 DAC *+2 0288 01112 0 01 01123 JMP BYOM 0289 01113 120303 CPM BCI 5, CP IS**16 01114 150240 01115 144723 01116 125252 01117 130666 0290 01120 125252 CPMA BCI 1,** 0291 01121 106612 OCT 106612,0 01122 000000 0292 * 0293 01123 101000 BYOM NOP 0294 01124 0 02 00675 LDA ='101000 NOP INSTRUCTION TO BYPASS
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 9

0295 01125 0 04 01007 STA NOP THE ABOVE CODE ON RESTART 0296 01126 101000 NOP ROOM FOR PATCH 0297 * 0298 01127 0 10 02574 JST OPCO ASK IF CPU CAL OR RTC TEST 0299 01130 0 003732 DAC MESG 0300 01131 0 10 02611 JST IPOC INPUT ONE CHARACTER 0301 01132 000000 BSZ 1 STORED HERE 0302 01133 0 02 01132 LDA *-1 0303 01134 0 11 00674 CAS ='331 Y 0304 01135 100000 SKP 0305 01136 0 01 03014 JMP CCPU Y SAYS YES - CAL THE CPU CLOCK 0306 01137 0 11 00673 CAS ='316 N 0307 01140 100000 SKP 0308 01141 100000 SKP N SAYS DO THE RTC TESTS 0309 01142 0 01 01123 JMP BYOM INPUT WAS NOT GOOD 0310 01143 0 10 02552 JST LFCR ACK GOOD INPUT 0311 * 0312 * REGULAR RTC TESTS FOLLOW 0313 * 0314 01144 101000 NOP ROOM FOR PATCH 0315 01145 0 10 01377 JST FTST DO FUNCTION TEST 0316 01146 101000 NOP ROOM FOR PATCH 0317 01147 0 10 03142 JST MTIM MEMORY MODULE TIMING TEST 0318 01150 101000 NOP 0319 01151 0 10 02075 STR2 JST IPLS INPUT PARAMETERS 0320 01152 101000 STR3 NOP 0321 01153 14 0220 OCP '220 STOP CLOCK IF ON 0322 01154 0 02 00672 LDA =-1 SET CLOCK TO ONE COUNT 0323 01155 0 04 00061 STA '61 0324 01156 0 02 02026 LDA INTO AND ALL RUPT LOCATIONS TO 0325 01157 0 10 02056 JST SIL RETURN TO INT1 0326 01160 0 02 00545 LDA DINC 0327 01161 140407 TCA SET UP NEGATIVE VALUE FOR 0328 01162 0 04 00531 STA CINX IRS LOOP 0329 01163 0 02 02030 LDA RET1 RUPT RETURN GOES TO 0330 01164 0 04 02027 STA RETO STR4 0331 01165 0 02 00671 LDA =1 SET MASK FOR 0332 01166 74 0020 SMK '20 RUPT ON SYNCH 0333 01167 14 0020 OCP '20 AND START CLOCK 0334 01170 000401 ENB ALLOW RUPT 0335 01171 0 02 00714 LDA =22 MILLISEC BEFORE ERROR TIMEOUT 0336 01172 0 10 02206 JST DLYL TIMEOUT 0337 * 0338 01173 001001 INH OH-OH AN ERROR 0339 01174 101000 NOP ON TIME-OUT 0340 01175 0 10 02541 JST ERPO 0341 01176 0 003601 DAC MER4 NO RUPT IN 22 MILLISEC 0342 01177 101000 NOP 0343 01200 100010 SR2 0344 01201 0 01 01152 JMP STR3 TRY AGAIN (LOOP ON ERROR)
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 10

0345 01202 000000 HLT 0346 01203 0 01 01123 JMP BYOM GO TO PROGRAM START 0347 * 0348 01204 101000 STR4 NOP HERE VIA INT1 AND RET1 0349 01205 0 02 02031 LDA RET2 POINT NEXT RETURN TO STR5 0350 01206 0 04 02027 STA RETO 0351 01207 0 02 00531 LDA CINX PUT IN THE NUMBER OF 0352 01210 0 04 00061 STA '61 CYCLES ASKED FOR BY OPERATOR 0353 01211 140040 CRA PREPARE A DOUBLE WORD COUNTER 0354 01212 000201 IAB IN THE A AND B REGS 0355 01213 140040 CRA AND WAIT UNTIL INTERRUPTED OUT OF LOOP 0356 * 0357 01214 001001 TMDL INH 0358 01215 000201 IAB ONE COUNT IN 30 BIT PLUS SIGN 0359 01216 141206 AOA DOUBLE PRECISION COUNTER 0360 01217 140100 SSP EVERY EIGHT INSTRUCTION TIMES 0361 01220 000401 ENB 0362 01221 000201 IAB ON INTERRUPT GO VIA INT1 TO STR5 BELOW 0363 01222 141216 ACA 0364 01223 0 01 01214 JMP TMDL 0365 * 0366 * MAX COUNT 6,250,000 (400 NS, 50 HZ, 1000 CYCLES) 0367 * MIN COUNT 78 (1000 NS, 1000 HZ, 1 CYCLE) 0368 * 716 COUNT 1,610,000 (775 NS, 60 HZ, 600 CYCLES) 0369 * 0370 01224 101000 STR5 NOP ROOM FOR PATCH 0371 01225 14 0220 OCP '220 TURN OFF CLOCK 0372 01226 0 04 00541 STA CNTC HIGH ORDER 0373 01227 000201 IAB 0374 01230 0 04 00540 STA CNTB LOW ORDER 0375 01231 101000 NOP ROOM FOR PATCH 0376 * 0377 * PRINT THE MEASURED TIME FROM LOOP, THE CALCULATED TIME (FROM 0378 * DINC AND DCPS) AND THE PER-CENT VARIATION BETWEEN THEM. 0379 * 0380 * REAL IA,K1,K2,RMEA,TEMP,K3,RCAL,K4,K5 0381 * INTEGER CNTB,CNTC,RENS,DINC,DCPS,PC 0382 * TA=(FLOAT(CNTC)*32767.)+FLOAT(CNTB) 0383 * 0384 01232 0 10 00000 CALL FLOAT 0385 01233 0 000540 DAC CNTB 0386 01234 0 10 00000 CALL H$22 0387 01235 0 000611 DAC TA 0388 01236 0 10 00000 CALL FLOAT 0389 01237 0 000541 DAC CNTC 0390 01240 0 10 00000 CALL M$22 0391 01241 0 000613 DAC K1 32767. 0392 01242 0 10 00000 CALL A$22 0393 01243 0 000611 DAC TA 0394 01244 0 10 00000 CALL H$22
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 11

0395 01245 0 000611 DAC TA 0396 * 0397 * RMEA=TA*RENS/125000. 0398 * 0399 01246 0 02 00572 LDA RENS 0400 01247 0 10 00000 CALL C$12 0401 01250 0 10 00000 CALL M$22 0402 01251 0 000611 DAC TA 0403 01252 0 10 00000 CALL D$22 0404 01253 0 000615 DAC K2 125000. 0405 01254 0 10 00000 CALL H$22 0406 01255 0 000607 DAC RMEA 0407 * 0408 * IMEA=IFIX(RMEA) 0409 * 0410 01256 0 10 00000 CALL IFIX 0411 01257 0 000607 DAC RMEA 0412 01260 0 04 00562 STA IMEA 0413 * 0414 * RCAL=(FLOAT(DINC)/FLOAT(DCPS))*1000. 0415 * 0416 01261 0 10 00000 CALL FLOAT 0417 01262 0 000544 DAC DCPS 0418 01263 0 10 00000 CALL H$22 0419 01264 0 000574 DAC TEMP 0420 01265 0 10 00000 CALL FLOAT 0421 01266 0 000545 DAC DINC 0422 01267 0 10 00000 CALL D$22 0423 01270 0 000574 DAC TEMP 0424 01271 0 10 00000 CALL M$22 0425 01272 0 000617 DAC K3 1000. 0426 01273 0 10 00000 CALL H$22 0427 01274 0 000605 DAC RCAL 0428 * 0429 * ICAL=IFIX(RCAL) 0430 * 0431 01275 0 10 00000 CALL IFIX 0432 01276 0 000605 DAC RCAL 0433 01277 0 04 00561 STA ICAL 0434 * 0435 * IPCT=IFIX(1000.*((ABS(RCAL-RMEA)/RCAL)+.0005)) 0436 * 0437 01300 0 10 00000 CALL L$22 0438 01301 0 000605 DAC RCAL 0439 01302 0 10 00000 CALL S$22 0440 01303 0 000607 DAC RMEA 0441 01304 0 10 00000 CALL H$22 0442 01305 0 000574 DAC TEMP 0443 01306 0 10 00000 CALL ABS 0444 01307 0 000574 DAC TEMP
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 12

0445 01310 0 10 00000 CALL D$22 0446 01311 0 000605 DAC RCAL 0447 01312 0 10 00000 CALL A$22 0448 01313 0 000621 DAC K4 .0005 0449 01314 0 10 00000 CALL M$22 0450 01315 0 000617 DAC K3 1000. 0451 01316 0 10 00000 CALL H$22 0452 01317 0 000574 DAC TEMP 0453 01320 0 10 00000 CALL IFIX 0454 01321 0 000574 DAC TEMP 0455 01322 0 04 00567 STA PC 0456 * 0457 01323 0 02 00562 LDA IMEA 0458 01324 0 10 04123 JST V$OD CONVERT MEASURED MILLISECONDS 0459 01325 -0 003411 DAC* OPME+3 TO DECIMAL PRINT FIELD 0460 01326 0 02 00561 LDA ICAL 0461 01327 0 10 04123 JST V$OD CONVERT CALCULATED MILLISEC 0462 01330 -0 003420 DAC* OPMA+3 TO DECIMAL 0463 01331 0 02 00567 LDA PC 0464 01332 0 10 04123 JST V$OD CONVERT TO TIMES PERCENT 0465 01333 0 003433 DAC PCMA+3 TO DECIMAL POINT 0466 01334 0 02 03432 LDA PCMA+2 0467 01335 0 11 00716 CAS =A IF ONLY SINGLE DIGIT 0468 01336 100000 SKP UNSUPPRESS ONE LEADING ZERO 0469 01337 0 02 00670 LDA =A 0 0470 01340 0 04 03432 STA PCMA+2 0471 01341 0 02 03433 LDA PCMA+3 STUFF A DECIMAL POINT 0472 01342 141044 CAR IN FRONT OF RIGHT DIGIT 0473 01343 0 05 00667 ERA ='256 0474 01344 141340 ICA 0475 01345 0 04 03433 STA PCMA+3 0476 * 0477 01346 101000 NOP ROOM FOR PATCH 0478 01347 0 10 02574 JST OPCO TYPE IT TO DATE (MEAS, 0479 01350 0 003403 DAC MES5 CALC AND PER-CENT) 0480 01351 101000 NOP 0481 01352 0 02 00567 LDA PC IF THE PER CENT (IN TENTHS) 0482 01353 0 11 00666 CAS =70 IS OVER 70 THEN TYPE 0483 01354 0 01 01361 JMP STR7 THE 'REJECT' MESSAGE 0484 01355 101000 NOP 0485 01356 0 10 02574 JST OPCO ELSE TYPE THE 'OK' MESSAGE 0486 01357 0 003436 DAC MES6 0487 01360 0 01 01363 JMP STR6 0488 * 0489 01361 0 10 02574 STR7 JST OPCO 'REJECT - 7 % 0490 01362 0 003441 DAC MES7 EXCEEDED' 0491 * 0492 01363 101000 STR6 NOP 0493 01364 0 10 01517 JST STAB STABILITY (JITTER) TEST 0494 *
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 13

0495 01365 101000 NOP 0496 01366 100020 SR1 0497 01367 0 01 01152 JMP STR3 REPEAT ELAPSED AND STAB IF 0498 01370 101000 NOP SW1 IS SET 0499 01371 101002 SS4 0500 01372 0 10 02624 JST TDAY GO DO TIME-OF-DAY IF SWITCH 4 0501 01373 0 10 02574 JST OPCO ELSE TYPE 'DONE' MESSAGE 0502 01374 0 003376 DAC MES4 AND HALT 0503 01375 000000 HLT 0504 01376 0 01 01123 JMP BYOM ON RESTART DO ALL 0505 * 0506 * FUNCTION TEST 0507 * 0508 01377 0 000000 FTST DAC ** 0509 01400 101000 NOP 0510 01401 14 0220 OCP '220 TRY TO STOP CLOCK IF RUNNING 0511 01402 0 02 00672 LDA =-1 THEN SET CLOCK TO ONE COUNT 0512 01403 0 04 00061 STA '61 0513 01404 0 02 02032 LDA RET3 DAC FTS3 FOR RUPT RETURN 0514 01405 0 10 02056 JST SIL DIRECTLY TO CODE BELOW 0515 * 0516 01406 0 02 00671 LDA =1 BIT 16 IS MASK 0517 01407 74 0020 SMK '20 SET IT 0518 01410 14 0020 OCP '20 TURN ON CLOCK IF IT WILL 0519 01411 0 02 00714 LDA =22 RUN, THEN WAIT UP TO 0520 01412 000401 ENB 22 MILLISEC FOR IT TO TICK 0521 01413 0 10 02206 JST DLYL 0522 * 0523 01414 001001 INH OH-OH NO CLOCK TICK IN 0524 01415 14 0220 OCP '220 22 MILLISEC 0525 01416 0 003601 DAC MER4 0526 01417 100010 SR2 0527 01420 0 01 01400 JMP FTST+1 0528 01421 0 01 01151 JMP STR2 RETURN 0529 * 0530 01422 0 00 00000 FTS3 PZE 0531 01423 14 0220 OCP '220 0532 01424 0 02 00665 LDA =100 0533 01425 0 10 02206 JST DLYL 100 MILLISEC DELAY 0534 01426 0 02 00061 LDA '61 TEST LOCATION 0535 01427 101040 SNZ OF CLOCK MEMORY INCREMENT 0536 01430 0 01 01436 JMP FTS4 0537 01431 001001 INH 0538 01432 0 10 02541 JST ERPO PRINTOUT ERROR MESSAGE 0539 01433 0 003604 DAC MER5 0540 01434 100010 SR2 0541 01435 0 01 01400 JMP FTST+1 REPEAT ERROR 0542 * 0543 01436 140040 FTS4 CRA RESET 0544 01437 74 0020 SMK '20 DEVICE MASK
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 14

0545 01440 0 02 02033 LDA RET4 SETUP ERROR 0546 01441 0 10 02056 JST SIL SIL DOES STA IN '63 THRU '77 0547 01442 0 02 00672 FTS2 LDA =-1 0548 01443 0 04 00061 STA '61 0549 01444 14 0020 OCP '20 0550 01445 000401 ENB 0551 01446 0 02 00714 LDA =22 0552 01447 0 10 02206 JST DLYL 22 MILLISEC DELAY 0553 01450 001001 INH 0554 01451 0 02 00061 LDA '61 TEST IF 0555 01452 0 11 00672 CAS =-1 CLOCK IS 0556 01453 0 01 01455 JMP *+2 RUNNING 0557 01454 0 01 01466 JMP FTS5 0558 01455 14 0220 OCP '220 0559 01456 -0 01 01377 JMP* FTST RETURN 0560 * 0561 01457 0 00 00000 FTS1 PZE ERROR INTERRUPTS HERE 0562 01460 001001 INH 0563 01461 0 10 02541 JST ERPO PRINTOUT ERRUR MESSAGE 0564 01462 0 003607 DAC MER6 0565 01463 100010 SR2 0566 01464 0 01 01436 JMP FTS4 REPEAT 0567 01465 0 01 01456 JMP FTS1-1 0568 * 0569 01466 001001 FTS5 INH 0570 01467 0 10 02541 JST ERPO PRINTOUT ERRRR MESSAGE 0571 01470 0 003612 DAC MER7 0572 01471 100010 SR2 0573 01472 0 01 01436 JMP FTS4 REPEAT 0574 01473 0 01 01456 JMP FTS1-1 0575 * 0576 * 0577 * 0578 01474 0 000000 SORT DAC ** SORT INTO BUCKETS 0579 01475 0 15 00573 STX SAVE 0580 01476 0 35 00664 LDX =0 0581 01477 0 07 00500 SUB AVG 0582 01500 0405 76 ARS 2 SCALE RESULT BY 4 0583 01501 0 11 00663 CAS =-10 0584 01502 101000 NOP 0585 01503 0 01 01506 JMP *+3 0586 01504 0 12 00501 IRS BUCK 0587 01505 0 01 01515 JMP OUTH 0588 01506 0 11 00646 CAS =10 0589 01507 0 01 01514 JMP *+5 0590 01510 101000 NOP 0591 01511 0 04 00000 STA ** 0592 01512 1 12 00514 IRS BUCK+11,1 0593 01513 100000 SKP 0594 01514 0 12 00527 IRS BUCK+22
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 15

0595 01515 0 35 00573 OUTH LDX SAVE 0596 01516 -0 01 01474 JMP* SORT 0597 * 0598 * STABILITY (JITTER) TEST 0599 * 0600 01517 0 000000 STAB DAC ** 0601 01520 0 10 02552 JST LFCR 0602 01521 0 10 02552 JST LFCR 0603 01522 0 10 02574 JST OPCO TYPE 'STABILITY TEST' 0604 01523 0 003623 DAC STME 0605 01524 000011 DXA INSURE NORMAL MODE 0606 01525 0 01 01526 JMP *+1 FOR INDEXING TO FOLLOW 0607 01526 0 35 00662 LDX =-23 CLEAR THE RESULT TABLE 0608 01527 140040 CRA 0609 01530 1 04 00530 STA BUCK+23,1 0610 01531 0 12 00000 IRS ** 0611 01532 0 01 01530 JMP *-2 0612 01533 0 02 00671 LDA =1 0613 01534 0 04 00500 STA AVG ACCOUNTS FOR RTC BREAKS 0614 01535 14 0220 OCP '220 CLEAR ANY CLOCK ACTION 0615 01536 0 02 02040 LDA RET9 0616 01537 0 10 02056 JST SIL SIL DOES STA '63 THRU '77 0617 01540 000401 ENB ALLOW ANY OLD PI RUPT 0618 01541 101000 NOP REQUEST TO FLUSH THRU 0619 01542 101000 NOP 0620 01543 001001 INH 0621 01544 100000 SKP IF NO RUPT THEN SKIP OVER DAC 0622 * 0623 01545 0 000000 STAC DAC ** PI RUPT IS CLEARED 0624 * 0625 01546 0 02 00672 LDA =-1 SET TO SYNC ON NEXT 0626 01547 0 04 00061 STA '61 CLOCK CYCLE 0627 01550 0 02 02036 LDA RET7 SET RUPT HANDLER TO 0628 01551 0 04 02027 STA RETO RETURN TO STAD 0629 01552 0 02 02026 LDA INTO SET INTERRUPT LOCATIONS 0630 01553 0 10 02056 JST SIL '63 THRU '77 TO RUPT HANDLER 0631 01554 14 0020 OCP '20 TURN ON CLOCK 0632 01555 0 02 00671 LDA =1 SET MASK BIT ON 0633 01556 74 0020 SMK '20 0634 01557 0 02 00714 LDA =22 AND ENABLE BREAKS WITH 0635 01560 000401 ENB A WAIT LOOP OF 22 MILLISEC 0636 01561 0 10 02206 JST DLYL 0637 * 0638 01562 001001 INH OH-OH NO RUPT IN 22 0639 01563 14 0220 OCP '220 MILLISEC 0640 01564 0 10 02541 JST ERPO PRINTOUT ERROR MESSAGE 0641 01565 0 003601 DAC MER4 0642 01566 000000 HLT 0643 01567 0 01 01123 JMP BYOM BACK TO START 0644 *
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 16

0645 * INTERRUPT GETS HERE VIA ROUTINE INT1 AND LOCATION RETO 0646 * 0647 01570 0 02 02037 STAD LDA RET8 0648 01571 0 04 02027 STA RETO 0649 01572 0 02 00661 LDA =-4096 USE 4096 RTC CYCLES TO 0650 01573 0 04 00061 STA '61 FIND AVERAGE OF ONE HALF 0651 01574 14 0020 OCP '20 THE NUMBER OF CP CYCLES 0652 01575 000401 ENB PER RTC CYCLE 0653 01576 0 02 00660 LDA =-2041 2048 ADJUSTED FOR 0654 01577 100000 SKP THE RUPT PROCESS 0655 * 0656 01600 0 02 00657 LDA =-2046 2048 ADJUSTED FOR CYCLES 0657 * USED IN SETUP 0658 01601 0 04 00601 STA TLY 0659 * 0660 01602 0 12 00601 IRSX IRS TLY 4 CP CYCLES PER COUNT 0661 01603 0 01 01602 JMP *-1 IN TLY 0662 * 0663 01604 0 12 00500 IRS AVG ONE COUNT IN AVG PER 0664 01605 0 01 01600 JMP *-5 2048 X 4 = 8192 CP CYCLES 0665 * 0666 01606 000000 HLT 0667 * 0668 01607 0 12 00601 IRST IRS TLY FOR 3 OR 516 0669 01610 0 12 00001 IRSZ IRS 1 FOR 716 (REQ'D FOR PARITY TIMES) 0670 * 0671 * AT TIME OF INTERRUPT LOCAT10N AVG CONTAINS THE CONT OF 0672 * (8192 CP CLOCK CYCLES) PER 4096 RTC CYCLES. 0673 * 0674 01611 0 35 00656 STAE LDX =-1000 0675 01612 0 10 02050 STOZ JST AFIS 0676 01613 0 02 02034 LDA RET5 DIRECT RUPT HANDLE TO RETURN 0677 01614 0 04 02027 STA RETO TO STAF ON NEXT CLOCK TICK 0678 01615 0 10 02003 JST EIRC 0679 01616 0 02 00714 LDA =22 0680 01617 0 10 02206 JST DLYL DELAY UP TO 22 MILLISEC FOR RUPT 0681 * 0682 01620 001001 INH OH-OH NO RUPT IN 22 0683 01621 14 0220 OCP '220 MILLISEC 0684 01622 0 10 02541 JST ERPO PRINTOUT ERROR MESSAGE 0685 01623 0 003601 DAC MER4 0686 01624 000000 HLT 0687 01625 0 01 01123 JMP BYOM BACK TO START 0688 * 0689 01626 0 02 02035 STAF LDA RET6 DIRECT NEXT RUPT TO STAG 0690 01627 0 04 02027 STA RETO 0691 01630 0 02 00672 LDA =-1 0692 01631 0 04 00061 STA '61 0693 01632 000401 ENB 0694 01633 0 02 00565 LDA MUCL MAKE UP CYCLES LOST IN
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 17

0695 * GETTING HERE 0696 01634 141206 AOA 0697 01635 0 01 01634 JMP *-1 0698 * 0699 * AT TIME OF INTERRUPT A-REGISTER CONTAINS ONE HALF 0700 * THE NUMBER OF CP CYCLES FOR THIS RTC CYCLE. 0701 * 0702 01636 0 10 01474 STAG JST SORT 0703 01637 0 12 00000 IRS ** 0704 01640 0 01 01612 JMP STOZ 0705 * 0706 * IRS SKIPS AFTER 1000 SAMPLES. GO TO PRINT DISTRIBUTION. 0707 * 0708 01641 101000 NOP ROOM FOR PATCH 0709 01642 14 0220 OCP '220 TURN OFF CLOCK 0710 01643 0 10 02552 JST LFCR 0711 01644 0 10 01721 JST TDIS SEE IF RESULT IS GOOD OR BAD 0712 01645 0 02 00000 LDA 0 ZERO SAYS GOOD 0713 01646 100004 SR3 0714 01647 0 02 00671 LDA =1 0715 01650 101040 SNZ NON-ZERO SAYS BAD OR FORCED 0716 01651 -0 01 01517 JMP* STAB IT WAS GOOD - DO NOT PRINT DISTRIBUTION 0717 * 0718 01652 0 10 02552 JST LFCR 0719 01653 0 10 02574 JST OPCO 0720 01654 0 003635 DAC STMF TELL WHAT TEST IS ABOUT 0721 01655 0 02 00500 LDA AVG GET AVERAGE 0722 01656 0405 76 ARS 2 SCALE RESULT BY 4 0723 01657 0 10 02222 JST BCDC CONVERT TO ASCII DECIMAL 0724 01660 0 04 00574 STA TEMP SAVE FIRST TWO CHARACTERS 0725 01661 000201 IAB 0726 01662 0 04 00575 STA TEMP+1 AND SECOND TWO 0727 01663 140040 CRA 0728 01664 0 04 00576 STA TEMP+2 MESSAGE TERMINATOR 0729 01665 0 10 02574 JST OPCO WRITE MESSAGE 0730 01666 0 000574 DAC TEMP 0731 01667 0 10 02552 JST LFCR FORMAT IT 0732 * 0733 01670 0 02 00655 LDA =-69 LABELS ARE 3 WORDS LONG 0734 01671 0 04 00554 STA HOLD 0735 01672 0 02 00662 LDA =-23 AND THERE ARE 23 OF THEM 0736 01673 0 04 00555 STA HOLD+1 0737 01674 0 02 00716 LDA =A PUT IN LEADING SPACE 0738 01675 0 04 00574 STA TEMP BEF0RE THE DECIMAL NUMBER 0739 01676 0 10 02552 SPTW JST LFCR 0740 01677 0 35 00554 LDX HOLD 0741 01700 0 10 02574 JST OPCO 0742 01701 1 004123 DAC ME01+69,1 0743 01702 0 02 00554 LDA HOLD 0744 01703 0 06 00704 ADD =3
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 18

0745 01704 0 04 00554 STA HOLD 0746 01705 0 35 00555 LDX HOLD+1 0747 01706 1 02 00530 LDA BUCK+23,1 0748 01707 0 10 04123 JST V$OD OCTAL TO DECIMAL ASCII 0749 01710 -0 000577 DAC* TEMP+3 WITH ZERO SUPPRESS 0750 01711 140040 CRA MESSAGE TERMINATOR 0751 01712 0 04 00600 STA TEMP+4 0752 01713 0 10 02574 JST OPCO 0753 01714 0 000574 DAC TEMP 0754 01715 0 12 00555 IRS HOLD+1 0755 01716 0 01 01676 JMP SPTW TYPE NEXT COUNT 0756 * 0757 01717 0 10 01721 JST TDIS TEST RESULT 0758 01720 -0 01 01517 JMP* STAB END - OF - STABILITY 0759 * 0760 * TEST DISTRIBUTION WIDTH AND OVERFLOW 0761 * 0762 01721 0 000000 TDIS DAC ** 0763 01722 0 02 00501 LDA BUCK IF ANY IN END SLOTS THEN 0764 01723 0 06 00527 ADD BUCK+22 REJECT RIGHT NOW 0765 01724 101040 SNZ 0766 01725 0 01 01732 JMP STAH SO FAR ITS GOOD 0767 * 0768 01726 0 10 02574 JST OPCO 'REJECT OUT OF RANGE' 0769 01727 0 003470 DAC MESA 0770 01730 0 35 00671 LDX =1 MARK X REG AS BAD TEST 0771 01731 -0 01 01721 JMP* TDIS AND RETURN 0772 * 0773 01732 0 04 00574 STAH STA TEMP CLEAR A LOCATION 0774 01733 0 04 00000 STA 0 AND THE X REG 0775 01734 0 12 00000 IRS 0 BUMP IT 0776 01735 1 06 00501 ADD BUCK,1 AND TEST AHEAD FOR FIRST NON-ZERO VALUE 0777 01736 101040 SNZ 0778 01737 0 01 01734 JMP *-3 NOT FOUND YET 0779 * 0780 01740 0 12 00574 STAI IRS TEMP ADD ONE TO COUNT OF WIDTH 0781 01741 0 12 00000 IRS 0 AND X REG 0782 01742 0 11 00625 CAS =1000 SEE IF ALL COUNTED 0783 01743 000000 HLT WHOOPS - TOO MANY 0784 01744 0 01 01747 JMP *+3 YES - ALL DONE 0785 01745 1 06 00501 ADD BUCK,1 NO - ADD NEXT BUCKETS COUNT 0786 01746 0 01 01740 JMP STAI AND GO BACK 0787 * 0788 01747 0 02 00500 LDA AVG NOW TEMP HAS WIDTH OF DISTRIBUTION 0789 01750 0405 76 ARS 2 0790 01751 000201 IAB FORM DOUBLE PRECISION INTEGER OF SEALED 0791 01752 140040 CRA VALUE OF AVERAGE 0792 01753 0 10 02426 JST DIV TAKE 6 % OF IT (6/1000 = 1/167) 0793 01754 0 000654 DAC =167 0794 01755 000000 HLT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 19

0795 01756 0411 77 LLS 1 ROUND UP 0796 01757 141206 AOA 0797 01760 0401 77 LRS 1 0798 01761 0 11 00701 CAS =4 MAKE SURE VALUE IS BETWEEN 4 AND 8 0799 01762 101000 NOP 0800 01763 100000 SKP 0801 01764 0 02 00701 LDA =4 0802 01765 0 11 00653 CAS =8 0803 01766 0 02 00653 LDA =8 0804 01767 101000 NOP 0805 * 0806 01770 0 11 00574 CAS TEMP COMPARE TO PREVIOUSLY FOUND WIDTH OF 0807 01771 101000 NOP DISTRIBUTION 0808 01772 0 01 01777 JMP STAO 0809 * 0810 01773 0 10 02574 JST OPCO 'REJECT AS TOO WIDE' 0811 01774 0 003505 DAC MESB 0812 01775 0 35 00671 LDX =1 MARK X REG AS BAD 0813 01776 -0 01 01721 JMP* TDIS AND RETURN 0814 * 0815 01777 0 10 02574 STAO JST OPCO TYPE 'RESULT IS GOOD' 0816 02000 0 004004 DAC MESX 0817 02001 0 35 00664 LDX =0 RESULT IN X REQ 0818 02002 -0 01 01721 JMP* TDIS AND RETURN 0819 * 0820 * ENABLE INTERRUPTS AND START REAL TIME CLOCK 0821 * 0822 02003 0 000000 EIRC DAC ** SUBROUTINE ENTRY 0823 02004 0 02 00671 LDA =1 0824 02005 74 0020 SMK '20 MASK 0825 02006 14 0020 OCP '20 ENABLE CLOCK 0826 02007 000401 ENB ENABLE INTERRUPT 0827 02010 -0 01 02003 JMP* EIRC RETURN 0828 * 0829 * INTERRUPT SERVICE ROUTINE 0830 * 0831 02011 0 000000 INT1 DAC ** 0832 02012 000011 DXA BACK TO NORMAL MODE 0833 02013 34 0020 SKS '20 TEST FOR RTC INTERRUPT 0834 02014 0 01 02017 JMP *+3 0835 02015 0 10 02541 JST ERPO PRINTOUT ERROR MESSAGE 0836 02016 0 003573 DAC MER1 0837 02017 14 0020 OCP '20 RESET RTC INTERRUPT 0838 02020 34 0020 SKS '20 0839 02021 0 01 02023 JMP *+2 0840 02022 0 01 02025 JMP *+3 0841 02023 0 10 02541 JST ERPO PRINTOUT ERROR MESSAGE 0842 02024 0 003576 DAC MER3 0843 02025 -0 01 02027 JMP* RETO RETURN 0844 *
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 20

0845 02026 0 002011 INTO DAC INT1 POINTS TO RUPT HANDLER 0846 02027 0 000000 RETO DAC ** 0847 * 0848 02030 0 001204 RET1 DAC STR4 0849 02031 0 001224 RET2 DAC STR5 0850 02032 0 001422 RET3 DAC FTS3 0851 02033 0 001457 RET4 DAC FTS1 0852 02034 0 001626 RET5 DAC STAF 0853 02035 0 001636 RET6 DAC STAG 0854 02036 0 001570 RET7 DAC STAD 0855 02037 0 001611 RET8 DAC STAE 0856 02040 0 001545 RET9 DAC STAC 0857 02041 0 002641 RETA DAC TDB TIME-OF-DAY P1 FLUSH TO TDB 0858 02042 0 002732 RETB DAC TDC TIME-OF-DAY NORMAL RUPT TO INT1 0859 02043 0 003023 RETC DAC CCA CPU CAL FLUSH PI 0860 02044 0 003060 RETD DAC CCB CPU CAL NORMAL END (PUSH START BUTTON) 0861 02045 0 003157 RETE DAC MTIA MEM TIMING P1 FLUSH RUPT TO MTIA 0862 02046 0 003177 RETF DAC MTIB MEM TIMING RUPT FOR FIRST 4K 0863 02047 0 003264 RETG DAC MTIC MEM TIMING RUPT FOR REMAINING MODULES 0864 * 0865 * ADJUST FOR FIRST INTERRUPT--SKEW 0866 * 0867 02050 0 000000 AFIS DAC ** SUBROUTINE ENTRY 0868 02051 0 02 00672 LDA =-1 SETUP FOR 0869 02052 0 04 00061 STA '61 ONE INTERRUPT 0870 02053 0 02 02026 LDA INTO 0871 02054 0 10 02056 JST SIL SET RUPT LOCATION5 '63 THRU '77 0872 02055 -0 01 02050 JMP* AFIS RETURN 0873 * 0874 * SET INTERRUPT LOCATIONS '63 THRU '77 WITH A REG 0875 * 0876 02056 0 000000 SIL DAC ** 0877 02057 0 04 00063 STA '63 0878 02060 0 04 00064 STA '64 0879 02061 0 04 00065 STA '65 0880 02062 0 04 00066 STA '66 0881 02063 0 04 00067 STA '67 0882 02064 0 04 00070 STA '70 0883 02065 0 04 00071 STA '71 0884 02066 0 04 00072 STA '72 0885 02067 0 04 00073 STA '73 0886 02070 0 04 00074 STA '74 0887 02071 0 04 00075 STA '75 0888 02072 0 04 00076 STA '76 0889 02073 0 04 00077 STA '77 TALK ABOUT DULL CODE - 0890 02074 -0 01 02056 JMP* SIL - WOW 0891 * 0892 * INPUT NEW PARAMETERS 0893 * 0894 02075 0 000000 IPLS DAC **
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 21

0895 02076 0 10 02574 JST OPCO ASK FOR FREQ 0896 02077 0 003360 DAC MES2 0897 02100 0 10 02140 JST PACK GET PACKED WORD (OR SKIP 3) 0898 02101 0 02 00566 LDA NEWL 0899 02102 0 10 02257 JST DCO PACKED DEC TO BINARY 0900 02103 0 04 00544 STA DCPS 0901 02104 0 02 00544 LDA DCPS FETCH IT BACK 0902 02105 0 11 00652 CAS =50 AND CHECK TO LOWER LIMIT 0903 02106 101000 NOP 0904 02107 100000 SKP GOOD SO FAR 0905 02110 0 01 02115 JMP IPLT TOO SMALL 0906 * 0907 02111 0 11 00625 CAS =1000 TRY HIGH LIMIT 0908 02112 0 01 02115 JMP IPLT TOO BIG 0909 02113 101000 NOP 0910 02114 0 01 02120 JMP IPLU GOOD ON FREQ 0911 * 0912 02115 0 10 02574 IPLT JST OPCO TYPE ERROR MESSAGE 0913 02116 0 003460 DAC MES8 ABOUT PARAMETER LIMITS 0914 02117 0 01 02076 JMP IPLS+1 AND REPEAT REQUEST 0915 * 0916 02120 0 10 02574 IPLU JST OPCO ASK FOR SAMPLE SIZE IN CYCLES 0917 02121 0 003367 DAC MES3 0918 02122 0 10 02140 JST PACK GET PACKED WORD (OR SKIP 3) 0919 02123 0 02 00566 LDA NEWL 0920 02124 0 10 02257 JST DCO PACKED DECIMAL TO BINARY 0921 02125 0 04 00545 STA DINC 0922 02126 0 02 00545 LDA DINC FETCH IT BACK 0923 02127 0 11 00671 CAS =1 COMPARE TO LOWER LIMIT 0924 02130 101000 NOP 0925 02131 100000 SKP 0926 02132 0 01 02115 JMP IPLT TOO SMALL 0927 * 0928 02133 0 11 00625 CAS =1000 TRY HIGH LIMIT 0929 02134 0 01 02115 JMP IPLT TOO BIG 0930 02135 101000 NOP OK 0931 02136 0 10 02552 JST LFCR ACKNOWLEDGE OPERATOR 0932 02137 -0 01 02075 JMP* IPLS RETURN 0933 * 0934 * STRIP ASCII AND PACK BCD - FOUR CHARACTER/WORD 0935 * 0936 02140 0 000000 PACK DAC ** SUBROUTINE ENTRY 0937 02141 140040 CRA INITIALIZE NEW VALUE AND 0938 02142 0 04 00566 STA NEWL ACCEPT OLD VALUE FLAG 0939 02143 0 04 00530 STA CFLG 0940 02144 0 10 02611 REST JST IPOC INPUT ONE CHARACTER 0941 02145 000000 BSZ 1 STORE IT HERE 0942 02146 0 02 02145 LDA *-1 FETCH IT 0943 02147 0 11 00667 CAS ='256 TEST FOR PERIOD 0944 02150 100000 SKP
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 22

0945 02151 0 01 02173 JMP RETN RETURN 0946 02152 0 11 00651 CAS ='215 TEST FOR CR 0947 02153 100000 SKP 0948 02154 0 01 02173 JMP RETN RETURN SAME AS PERIOD 0949 02155 0 11 00650 CAS ='271 0950 02156 0 01 02202 JMP REJT TOO LARGE 0951 02157 101000 NOP 0952 02160 0 11 00647 CAS ='260 0953 02161 101000 NOP 0954 02162 100000 SKP 0955 02163 0 01 02202 JMP REJT TOO SMALL 0956 * 0957 02164 0 07 00647 SUB ='260 OK STRIP IT AND PACK 0958 02165 0 13 00566 IMA NEWL GET PREV INPUT 0959 02166 0414 74 LGL 4 MAKE ROOM 0960 02167 0 06 00566 ADD NEWL PUT NEW DIGIT IN PLACE 0961 02170 0 04 00566 STA NEWL STORE IT 0962 02171 0 12 00530 IRS CFLG MAKE CHAR FLAG NON-ZER0 0963 02172 0 01 02144 JMP REST AND SET NEXT 0964 * 0965 02173 0 02 00530 RETN LDA CFLG GET THE CHARACTER FLAG 0966 02174 100040 SZE ZERO SAYS NOTHING NEW 0967 02175 -0 01 02140 JMP* PACK RETURN WITH NEW VALUE 0968 02176 0 02 02140 LDA PACK SKIP OVER THE 0969 02177 0 06 00704 ADD =3 NEXT THREE INSTRUCTIONS 0970 02200 0 04 02140 STA PACK WHICH RETAINS THE 0971 02201 -0 01 02140 JMP* PACK PREVIOUS VALUE 0972 * 0973 02202 0 02 02140 REJT LDA PACK 0974 02203 0 07 00704 SUB =3 BACK UP TO REQUEST AGAIN 0975 02204 0 04 02140 STA PACK 0976 02205 -0 01 02140 JMP* PACK AND RETURN 0977 * 0978 * ONE MILLISECOND DELAY LOOP 0979 * 0980 02206 0 000000 DLYL DAC ** 0981 02207 140407 TCA 0982 02210 0 04 00546 STA DLYM STORE IT 0983 02211 0 01 02217 JMP DLYB 0984 02212 0 02 00543 DLYA LDA DCON DELAY COUNT OF -155 0R -261 0985 02213 0 04 00547 STA DLYN STORE IT 0986 02214 140040 CRA 0987 02215 0 12 00547 IRS DLYN INC.COUNTER 0988 02216 0 01 02215 JMP *-1 0989 02217 0 12 00546 DLYB IRS DLYM TEST FOR END 0990 02220 0 01 02212 JMP DLYA REPEAT 0991 02221 -0 01 02206 JMP* DLYL RETURN 0992 * 0993 * BINARY TO BCD-ASCII CONVERSION (POSITIVE INTEGER ONLY) 0994 * (A) ARE CONVERTED FROM BINARY TO BCD CODE TO ASCII CODE,
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 23

0995 * AND RESULTANT ASCII REPLACES THE CONTENTS OF A-REG. 0996 * AND B-REG. THE SIGNIFICANCE LIES FROM A TO B. 0997 * 0998 02222 0 000000 BCDC DAC ** 0999 02223 0400 60 LRL 16 (B) = DATA TO BE CONVERTED 1000 02224 0 10 02235 JST BCDA PACK A WORD 1001 02225 0 04 02234 STA BCDR+1 1002 02226 0 10 02235 JST BCDA PACK SIG. WORD 1003 02227 000201 IAB MSW TO (B) 1004 02230 0 02 02234 LDA BCDR+1 LSW TO (A) 1005 02231 000201 IAB (A)=MSW,(B)=LSW 1006 02232 -0 01 02222 JMP* BCDC 1007 02233 BCDR BSS 2 RESULT STORED HERE 1008 * 1009 02235 0 000000 BCDA DAC ** 1010 02236 140040 CRA 1011 02237 0 04 02233 STA BCDR INITIALIZE 1012 02240 0 10 02247 JST DIVD * 1013 02241 0 04 02233 STA BCDR TWO 1014 02242 0 10 02247 JST DIVD ASCII 1015 02243 0415 70 ALS 8 PACK 1016 02244 0 05 02233 ERA BCDR * 1017 02245 0 04 02233 STA BCDR * 1018 02246 -0 01 02235 JMP* BCDA * 1019 * 1020 02247 0 000000 DIVD DAC ** 1021 02250 140040 CRA 1022 02251 0 10 02426 JST DIV 1023 02252 0 000646 DAC =10 1024 02253 000000 HLT DIVIDE BY 10 1025 02254 000201 IAB * 1026 02255 0 05 00647 ERA ='260 AND ASCII PACK 1027 02256 -0 01 02247 JMP* DIVD * 1028 * 1029 * BCD TO BINARY EQUIVALENT 1030 * UPON ENTRY, A-REG. CONTAINS 4 BITS CODED DECIMAL DIGIT. 1031 * UPON EXIT, (A)=CONVERTED BINARY. 1032 * 1033 02257 0 000000 DCO DAC ** 1034 02260 0400 60 LRL 16 (B)=BCD 1035 02261 0 10 02302 JST DCOM 1036 02262 001750 DEC 1000 X 1000 1037 02263 0 04 02301 STA DCOT 1038 02264 0 10 02302 JST DCOM 1039 02265 000144 DEC 100 X 100 1040 02266 0 06 02301 ADD DCOT 1041 02267 0 04 02301 STA DCOT 1042 02270 0 10 02302 JST DCOM 1043 02271 000012 DEC 10 X10 1044 02272 0 06 02301 ADD DCOT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 24

1045 02273 0 04 02301 STA DCOT 1046 02274 0 10 02302 JST DCOM 1047 02275 000001 DEC 1 X1 1048 02276 0 06 02301 ADD DCOT 1049 02277 0 04 02301 STA DCOT 1050 02300 -0 01 02257 JMP* DCO 1051 02301 0 000000 DCOT DAC ** 1052 * 1053 02302 0 000000 DCOM DAC ** 1054 02303 140040 CRA 1055 02304 0410 74 LLL 4 MULTIPLICAND 1056 02305 000201 IAB 1057 02306 0 04 02316 STA DCOS 1058 02307 000201 IAB 1059 02310 0 10 02317 JST MPY 1060 02311 -0 002302 DAC* DCOM MULTIPLIER 1061 02312 0 02 02316 LDA DCOS 1062 02313 000201 IAB 1063 02314 0 12 02302 IRS DCOM 1064 02315 -0 01 02302 JMP* DCOM 1065 02316 0 000000 DCOS DAC ** 1066 * 1067 * MULTIPLY ROUTINE 1068 * 1069 02317 -0 000000 MPY DAC* ** 1070 02320 101400 SMI CHECK SIGN OF MULTIPLIER 1071 02321 0 01 02333 JMP MPYB POSTIVE 1072 02322 140407 TCA NEGATIVE TWO'S COMPLEMENT 1073 02323 000201 IAB MULTIPLIER IN B REGISTER 1074 02324 -0 02 02317 LDA* MPY LOAD MULTIPLICAND 1075 02325 101400 SMI CHECK SIGN 1076 02326 0 01 02340 JMP MPYC POSITIVE 1077 02327 140407 TCA NEGATIVE TWO'S COMPLEMENT 1078 02330 0 10 02355 MPYA JST MPYS EXIT TO PERFORM MULTIPLICATION 1079 02331 0 12 02317 IRS MPY INCREMENT FOR RETURN 1080 02332 0 01 02420 MPAA JMP MEXT EXIT 1081 02333 000201 MPYB IAB PLACE MULTIPLIER IN B REG 1082 02334 -0 02 02317 LDA* MPY 1083 02335 101400 SMI CHECK SIGN OF MULTIPLICAND 1084 02336 0 01 02330 JMP MPYA MULTIPLICAND PLUS, GO TO MULTIPLY 1085 02337 140407 TCA 1086 02340 0 10 02355 MPYC JST MPYS NEGATIVE-2'S COMPLEMENT RESULT 1087 02341 140200 RCB RESET C BIT 1088 02342 140401 CMA ONE'S COMPLEMENT HI-ORDER 1089 02343 000201 IAB 1090 02344 140407 TCA TWO'S COMPLEMENT LOW ORDER 1091 02345 140407 TCA TWO'5 COMPLEMENT LOW ORDER 1092 02346 101040 SNZ IS RESULT ZERO 1093 02347 140600 SCB INSERT 1 FOR CARRY IN 1094 02350 140100 SSP RESET MSB TO 2ERO
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 25

1095 02351 000201 IAB HI-ORDER TO A, LOW ORDER TO B 1096 02352 141216 ACA 1097 02353 0 12 02317 IRS MPY INCREMENT FOR RETURN 1098 02354 0 01 02420 MPCC JMP MEXT EXIT 1099 * 1100 * MULTIPLICATION SUBROUTINE FOR POSITIVE VALUES 1101 * 1102 02355 0 000000 MPYS DAC ** ENTRANCE 1103 02356 0 04 00535 STA COMM STORE MULTIPLICAND 1104 02357 000201 IAB MULTIPLIER IN A MULTIPLICAND IN B. 1105 02360 0 04 00536 STA COMM+1 STORE MULTIPLIER 1106 02361 0 05 00535 ERA COMM IF NEG. MINUS LARGEST NEGATIVE NUMBER 1107 02362 100400 SPL IF ZERO NORMAL OR BOTH ARE LARGEST NEG NO. 1108 02363 0 01 02412 JMP MLNN LARGEST NEG NO. IS PRESENT, MULT. IN B 1109 02364 000201 IAB TEST MULTIPLICAND FOR LNN, IF NEG 1110 02365 101400 SMI BOTH OPERANDS ARE LNN OK FOR BOTH 1.00000. 1111 02366 0 01 02370 JMP *+2 1112 02367 0 01 02406 JMP MPYN RESULT WILL BE ZERO LNN*LNN 1113 * IN A 1114 02370 0 02 00536 LDA COMM+1 NORMAL, MULTIPLY OPERANDS LOAD MULTIPLIER 1115 02371 000201 IAB MULTIPLIER IN B 1116 02372 0 02 00645 MPYR LDA =-15 LOAD COUNTER 1117 02373 0 04 00536 STA COMM+1 LOOP COUNTER 1118 02374 140040 CRA CLEAR A REGISTER 1119 02375 0400 77 LRL 1 SHIFT TO RIGHT 1120 02376 100001 SRC EXAMINE RIGHT MOST BIT 1121 02377 0 06 00535 ADD COMM ADD MULTIPLICAND 1122 02400 0 12 00536 IRS COMM+1 CONTROL LOOP 1123 02401 0 01 02375 JMP *-4 RECYCLE 1124 02402 0400 77 LRL 1 1125 02403 0414 77 LGL 1 PUT 0 IN SIGN ORDER OF A REGISTER 1126 02404 0400 77 LRL 1 MOVE 0 TO SIGN OF B REGISTER 1127 02405 -0 01 02355 JMP* MPYS 1128 02406 140040 MPYN CRA RETURN ZERO RESULT 1129 02407 000201 IAB ZERO IN B 1130 02410 0 02 00535 LDA COMM -1 IN A 1131 02411 0 01 02331 JMP MPYA+1 RESULT CANNOT BE REPRESENTED ABORT WITH -1 1132 * 1133 * MULTIPLY BY LARGEST NEGATIVE NUMBER 1134 * IF RESULT IS NEGATIVE AND THE 1135 * 1. MULTIPLICAND IS LNN, RESULT IS THE TWO'S 1136 * COMPLEMENT OF THE MULTIPLIER 1137 * 2. MULTIPLIER IS LNN, RESULT IS THE TWO'S 1138 * COMPLEMENT OF THE MULTIPLICAND 1139 * IF RESULT IS POSITIVE AND THE 1140 * 1. MULTIPLICAND IS LNN, RESULT IS THE 1141 * MULTIPLIER 1142 * 2. MULTIPLIER IS LNN, RESULT IS THE MULTIPLICAND 1143 * 1144 02412 140040 MLNN CRA CLEAR B
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 26

1145 02413 000201 IAB 1146 02414 101400 SMI CHECK MULTIPLICAND = MINUS LARGEST NEG. NO 1147 02415 -0 01 02355 JMP* MPYS EXIT WITH MULTIPLICAND IN A MULT. IS LNN 1148 02416 0 02 00536 LDA COMM+1 MULTIPLICAND IS LNN. LOAD MULTIPLIER IN A 1149 02417 -0 01 02355 JMP* MPYS EXIT, MULTIPLICAND IS LNN 1150 02420 0 04 00535 MEXT STA COMM SAVE RESULT EXIT ROUTINE 1151 02421 0 02 02317 LDA MPY LOAD ENTRY 1152 02422 0 03 00644 ANA ='37777 GET RID OF INDIRECT BIT 1153 02423 0 04 00536 STA COMM+1 STORE RETURN 1154 02424 0 02 00535 LDA COMM RESTORE RESULT 1155 02425 -0 01 00536 JMP* COMM+1 RETURN 1156 * 1157 * DIVIDE ROUTINE 1158 * 1159 02426 -0 000000 DIV DAC* ** 1160 02427 101400 SMI CHECK SIGN OF DIVIDEND 1161 02430 0 01 02464 JMP DIVB 1162 02431 140200 RCB RESET C BIT 1163 02432 140401 CMA ONE'S COMPLEMENT HI-ORDER 1164 02433 000201 IAB 1165 02434 140407 TCA TWO'S COMPLEMENT LOW ORDER 1166 02435 101040 SNZ IF LOWER ORDER=0 1167 02436 140600 SCB MUST TWO'S COMPLEMENT HI-ORDER 1168 02437 140100 SSP SET B SIGN PLUS 1169 02440 000201 IAB 1170 02441 141216 ACA 1171 02442 101400 SMI IS NUMERATOR LARGEST NEGATIVE NUMBER 1172 02443 0 01 02445 JMP *+2 NO CONTINUE, NORMAL 1173 02444 0 01 02462 JMP DIVZ ERROR EXIT ILLEGAL DIVIDE 1174 02445 0 04 00533 STA COME+1 1175 02446 -0 02 02426 LDA* DIV CHECK SIGN OF DIVISOR 1176 02447 101400 SMI 1177 02450 0 01 02471 JMP DIVC 1178 02451 140407 TCA TWO'S COMPLEMENT DIVISOR 1179 02452 101400 SMI TEST FOR LARGEST NEGATIVE NUMBER 1180 02453 0 01 02457 JMP DIVA DIVIDE DIVIDEND, DIVISOR SAME SIGN 1181 02454 0 02 00533 LDA COME+1 RESULT POSITIVE, LOAD NUMERATOR 1182 02455 000201 SWAP IAB 1183 02456 0 01 02460 JMP DIVX 1184 02457 0 10 02504 DIVA JST DIVS DIVIDE IF DIVISOR AND DIV SAVE SIGN 1185 02460 0 12 02426 DIVX IRS DIV INCREMENT FOR NORMAL RETURN 1186 02461 000201 IAB QUOTIENT IN A REG, REMAINDER IN B 1187 02462 0 12 02426 DIVZ IRS DIV ERROR EXIT 1188 02463 0 01 02533 DEEX JMP DEXT GO TO EXIT 1189 02464 0 04 00533 DIVB STA COME+1 STORE MOST SIGNIFICANT HALF OF DIVIDEND 1190 02465 -0 02 02426 LDA* DIV CHECK SIGN OF DIVISOR 1191 02466 101400 SMI COMPLEMENT ON NEGATIVE 1192 02467 0 01 02457 JMP DIVA DIVIDE OPERAND ARE OF SAME SIGN 1193 02470 140407 TCA TWOS COMPLEMENT 1194 02471 101400 DIVC SMI CHECK DENOMINATOR FOR LARGEST NEGATIVE NO.
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 27

1195 02472 0 01 02476 JMP DIVN NOT LNN 1196 02473 0 02 00533 LDA COME+1 RESULT SIGN WILL BE NEGATIVE 1197 02474 000201 IAB RESULT IS NUMERATOR 1198 02475 0 01 02477 JMP *+2 BY PASS DIVIDE COMPLEMENT RESULT 1199 02476 0 10 02504 DIVN JST DIVS DIVIDE 1200 * 1201 * RETURN HERE ON NEGATIVE RESULT 1202 * 1203 02477 000201 IAB COMPLEMENT QUOTIENT AND REMAINDER 1204 02500 140407 TCA 1205 02501 000201 IAB 1206 02502 140407 TCA 1207 02503 0 01 02460 JMP DIVX EXIT 1208 * 1209 * DIVIDE ROUTINE WIIH HIGH ORDER DIVIDEND IN 1210 * COMMON +1, LOW ORDER DIVIDEND IN B REG AND 1211 * DIVISOR IN A REGISTER 1212 * 1213 02504 000000 DIVS HLT 1214 02505 0 04 00532 STA COME SAVE DIVISOR 1215 02506 0 02 00645 LDA =-15 1216 02507 0 04 00534 STA COME+2 LOOP COUNTER 1217 02510 0410 77 LLL 1 MOVE LOW ORDER LEFT 1 1218 02511 0 02 00533 LDA COME+1 LOAD HI ORDER 1219 02512 0 11 00532 CAS COME COMPARE DIVIDEND AND DIVISOR 1220 02513 0 01 02462 JMP DIVZ DIVIDEND GTR THAN OR 1221 02514 0 01 02462 JMP DIVZ EQUAL TO GO TO ERROR RETURN 1222 * 1223 * LOOP FOR DIVISION 1224 * 1225 02515 0412 77 DIVT LLR 1 MOVE DIVIDEND 1 POSITION TO LEFT 1226 02516 100400 SPL TEST SIGN POSITION FOR SPILL 1227 02517 0 01 02524 JMP DIVU MINUS SUBTRACT DIVIDEND IS GREATER 1228 02520 0 11 00532 CAS COME COMPARE DIVIDEND AND DIVISOR 1229 02521 0 01 02524 JMP DIVU IF GREATER SUBTRACT 1230 02522 0 01 02524 JMP DIVU EQUAL SUBTRACT 1231 02523 0 01 02526 JMP DIVH INDEX AND LOOP 1232 02524 0 07 00532 DIVU SUB COME 1233 02525 140500 SSM PUT-1-BIT IN QUOTIENT LOOP 1234 02526 0 12 00534 DIVH IRS COME+2 LOOP 1235 02527 0 01 02515 JMP DIVT LOOP 1236 02530 0412 77 LLR 1 RESET SIGN BITS 1237 02531 0404 77 LGR 1 1238 02532 -0 01 02504 JMP* DIVS 1239 02533 0 04 00532 DEXT STA COME SAVE RESULT EXIT ROUTINE 1240 02534 0 02 02426 LDA DIV LOAD ENTRY 1241 02535 0 03 00644 ANA ='37777 GET RID OF INDIRECT BIT 1242 02536 0 04 00533 STA COME+1 STORE RETURN 1243 02537 0 02 00532 LDA COME RESTORE RESULT 1244 02540 -0 01 00533 JMP* COME+1 RETURN
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 28

1245 * 1246 * 1247 * 1248 02541 0 00 00000 ERPO PZE 1249 02542 001001 INH 1250 02543 0 10 02552 JST LFCR 1251 02544 -0 02 02541 LDA* ERPO 1252 02545 0 12 02541 IRS ERPO 1253 02546 0 04 02550 STA ERPP 1254 02547 0 10 02574 JST OPCO 1255 02550 0 000000 ERPP DAC ** MESSAGE POINTER 1256 02551 -0 01 02541 JMP* ERPO RETURN 1257 * 1258 * LINE FEED AND CARRIAGE RETURN 1259 * 1260 02552 0 000000 LFCR DAC ** 1261 02553 0 10 02556 JST OPOW OUTPUT LFCR 1262 02554 106612 OCT 106612 1263 02555 -0 01 02552 JMP* LFCR RETURN 1264 * 1265 * OUTPUT TWO CHARACTERS 1266 * 1267 02556 0 000000 OPOW DAC ** 1268 02557 -0 02 02556 LDA* OPOW REACH BACK FOR DATA 1269 02560 0416 70 ALR 8 1270 02561 0 12 02556 IRS OPOW UPDATE RETURN 1271 02562 34 0104 SKS '104 TEST BUSY 1272 02563 0 01 02562 JMP *-1 1273 02564 14 0104 OCP '104 SET IN OUTPUT MODE 1274 02565 74 0004 OTA '4 OUTPUT IT 1275 02566 0 01 02565 JMP *-1 1276 02567 0416 70 ALR 8 1277 02570 74 0004 OTA '4 1278 02571 0 01 02570 JMP *-1 1279 02572 140040 CRA 1280 02573 -0 01 02556 JMP* OPOW RETURN 1281 * 1282 * OUTPUT CONTROL 1283 * 1284 02574 0 000000 OPCO DAC ** 1285 02575 -0 02 02574 LDA* OPCO STARTING ADDRESS 1286 02576 0 04 02610 STA PNTX POINTER 1287 02577 0 12 02574 IRS OPCO UPDATE RETURN 1288 02600 -0 02 02610 OPNW LDA* PNTX FETCH DATA FOR OUTPUT 1289 02601 101040 SNZ TEST FOR END OF DATA STRING 1290 02602 -0 01 02574 JMP* OPCO RETURN 1291 02603 0 04 02605 STA *+2 SETUP DATA FOR OUTPUT 1292 02604 0 10 02556 JST OPOW OUTPUT TWO CHARACTERS 1293 02605 0 000000 DAC ** 1294 02606 0 12 02610 IRS PNTX UPDATE POINTER
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 29

1295 02607 0 01 02600 JMP OPNW 1296 02610 0 000000 PNTX DAC ** 1297 * 1298 * INPUT ONE CHARACTER 1299 * 1300 02611 0 000000 IPOC DAC ** 1301 02612 34 0104 SKS '104 TEST BUSY 1302 02613 0 01 02612 JMP *-1 1303 02614 14 0004 OCP '4 SET DEVICE IN THE INPUT MODE 1304 02615 54 1004 INA '1004 INPUT ONE CHARACTER 1305 02616 0 01 02615 JMP *-1 1306 02617 0 03 00643 ANA ='177 FORCE LEVEL 8 TO ALLOW 1307 02620 0 05 00642 ERA ='200 FOR KEYBOARDS WIIH PARITY 1308 02621 -0 04 02611 STA* IPOC STORE BACK 1309 02622 0 12 02611 IRS IPOC UPDATE RETURN 1310 02623 -0 01 02611 JMP* IPOC RETURN 1311 * 1312 * TIME OF DAY TEST 1313 * 1314 02624 0 000000 TDAY DAC ** 1315 02625 14 0220 OCP '220 TURN OFF ANYTHING THAT IS ON 1316 02626 140040 CRA 1317 02627 74 0020 SMK '20 1318 02630 0 04 00560 STA HRS SET TIME TO ZERO 1319 02631 0 04 00564 STA MIN 1320 02632 0 02 02041 LDA RETA DAC TDB 1321 02633 0 10 02056 JST SIL SET LOCATLUNS 63 THRU 77 1322 02634 000401 ENB 1323 02635 101000 NOP 1324 02636 101000 NOP ALLOW ANY HANGING PI RUPT 1325 02637 001001 INH TO COME THRU 1326 02640 100000 SKP 1327 02641 0 000000 TDB DAC ** PI RUPT COMES HERE 1328 * 1329 02642 0 02 02026 LDA INTO POINT DEDICATED LOCATIONS 1330 02643 0 10 02056 JST SIL TO THE NORMAL RUPT HANDLER 1331 02644 0 02 02042 LDA RETB POINT RUPT RETURN 1332 02645 0 04 02027 STA RETO TO TDC 1333 * 1334 02646 0 10 02574 TDD JST OPCO ASK FOR HOURS 1335 02647 0 003546 DAC HRMS 1336 02650 0 10 02140 JST PACK INPUT PACKED WORD OR SKIP 3 1337 02651 0 02 00566 LDA NEWL FETCH PACKED 1338 02652 0 10 02257 JST DCO C0NVERT TO BINARY 1339 02653 0 04 00560 STA HRS STORE IT 1340 02654 0 02 00560 LDA HRS 1341 02655 100400 SPL CHECK FOR LIMITS OF 0 AND 23 1342 02656 0 01 02646 JMP TDD TOO SMALL 1343 02657 0 11 00641 CAS =23 1344 02660 0 01 02646 JMP TDD TOO BIG
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 30

1345 02661 101000 NOP 1346 * 1347 02662 0 10 02574 JST OPCO ASK FOR MINUTES 1348 02663 0 003556 DAC MNMS 1349 02664 0 10 02140 JST PACK INPUT PACKED WORD OR SKIP 3 1350 02665 0 02 00566 LDA NEWL FETCH PACKED 1351 02666 0 10 02257 JST DCO CONVERT TO BINARY 1352 02667 0 04 00564 STA MIN 1353 02670 0 02 00564 LDA MIN CHECK FOR MIN LIMITS OF 0 TO 59 1354 02671 100400 SPL 1355 02672 0 01 02646 JMP TDD TOO SMALL 1356 02673 0 11 00640 CAS =59 1357 02674 0 01 02646 JMP TDD TOO BIG 1358 02675 101000 NOP 1359 * 1360 02676 0 10 02552 JST LFCR ACKNUOLEDGE GOOD VALUES 1361 02677 0 02 00544 LDA DCPS 1362 02700 0 11 00637 CAS =546 RESULT OF (60 * DCPS) MUST BE 1363 02701 0 01 02704 JMP *+3 LESS THAN 32767 1364 02702 101000 NOP IF NOT THEN SCALE FREQUENCY UNTIL IT IS 1365 02703 0 01 02707 JMP TDE GOOD 1366 * 1367 02704 0 10 02574 JST OPCO TYPE 1368 02705 0 003523 DAC MESF 'FREQ TOO HIGH' 1369 02706 0 01 01123 JMP BYOM AND GO BACK FOR NEW FREQ PARAM 1370 * 1371 02707 0 10 02317 TDE JST MPY FREQ TIMES 60 SECONDS PER MINUTE 1372 02710 0 000636 DAC =60 1373 02711 000201 IAB MAKE RESULT SINGLE PRECISION INTEGER 1374 02712 140407 TCA NEG 1375 02713 0 04 00563 STA MCNT AND STORE FOR USE IN LOCATION '61 1376 * 1377 02714 0 02 00671 LDA =1 SET CLOCK MASK 1378 02715 74 0020 SMK '20 1379 02716 0 02 00563 LDA MCNT SET CLOCK 1380 02717 0 04 00061 STA '61 1381 02720 14 0020 OCP '20 CLEAR RUPT AND START CLOCK 1382 02721 000401 ENB ASK FOR RUPT AT END 1383 * 1384 02722 100002 TDF SR4 1385 02723 -0 01 02624 JMP* TDAY RETURN IF SWITCH 4 IS SET 1386 02724 0 02 00061 LDA '61 SHOW THE CLOCK VALUE 1387 02725 100040 SZE ZERI IS AN ERROR 1388 02726 0 01 02722 JMP TDF GOOD - WAIT SOME MORE 1389 * 1390 02727 14 0220 OCP '220 STOP CLOCK 1391 02730 000000 HLT 1392 02731 0 01 02730 JMP *-1 VERY FATAL ERROR - NO RUPT ON GOING TO 0 1393 * 1394 02732 0 02 00061 TDC LDA '61 RUPTS COME HERE VIA INT1 AND RETO
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 31

1395 02733 101040 SNZ 1396 02734 0 01 02737 JMP TDG 1397 * 1398 02735 000000 HLT 1399 02736 0 01 02735 JMP *-1 VERY FATAL ERROR - CLOCK HAD NOT GONE TO 0 1400 * 1401 02737 0 02 00563 TDG LDA MCNT QUICK LIKE RESET THE CLOCK 1402 02740 0 04 00061 STA '61 1403 02741 14 0020 OCP '20 AND RESTART IT 1404 02742 0 02 00564 LDA MIN GET THE MIN COUNT 1405 02743 141206 AOA AND ADD TO IT 1406 02744 0 11 00636 CAS =60 1407 02745 000000 HLT 1408 02746 100000 SKP 1409 02747 0 01 02752 JMP *+3 ON OVERFLOW RESET IT AND 1410 02750 0 12 00560 IRS HRS ADD TO HOURS 1411 02751 140040 CRA 1412 02752 0 04 00564 STA MIN 1413 02753 0 10 04123 JST V$OD CONVERT TO ASCII DECIMAL 1414 02754 -0 003571 DAC* HRMN+4 1415 02755 0 02 03571 LDA HRMN+4 1416 02756 141140 ICL 1417 02757 0 11 00635 CAS ='240 1418 02760 0 01 02766 JMP TDH 1419 02761 100000 SKP CHANGE BLANK TO LEADING ZERO 1420 02762 0 01 02766 JMP TDH 1421 * 1422 02763 0 02 03571 LDA HRMN+4 1423 02764 0 05 00634 ERA ='10000 INVERT BIT FOUR 1424 02765 0 04 03571 STA HRMN+4 1425 * 1426 02766 0 02 00633 TDH LDA =A : PUT COLON BETWEEN 1427 02767 0 04 03570 STA HRMN+3 HOURS AND MINS 1428 02770 0 02 00560 LDA HRS 1429 02771 0 11 00632 CAS =24 IF HOURS OVERFLOW 1430 02772 000000 HLT THEN CLEAR TO ZERO 1431 02773 140040 CRA 1432 02774 0 04 00560 STA HRS 1433 02775 0 10 04123 JST V$OD CONVERT TO DECIMAL 1434 02776 0 003570 DAC HRMN+3 1435 02777 0 02 03567 LDA HRMN+2 1436 03000 141050 CAL 1437 03001 0 11 00631 CAS ='241 CHANGE LEADING BLANK 1438 03002 101000 NOP TO LEADING ZERO 1439 03003 0 01 03006 JMP *+3 1440 03004 0 02 00670 LDA =A 0 1441 03005 0 04 03567 STA HRMN+2 1442 * 1443 03006 0 10 02552 JST LFCR 1444 03007 0 10 02574 JST OPCO TYPE THE TIME
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 32

1445 03010 0 003567 DAC HRMN+2 1446 03011 101000 NOP ROOM FOR PATCH 1447 03012 101000 NOP 1448 03013 0 01 02721 JMP TDF-1 WAIT FOR RUPT 1449 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 33

1450 * CALIBRATE CPU CLOCK FLOWCHART 1451 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 34

1452 * 1453 * CALIBRATE CPU CLOCK AGAINST SWEEP SECOND HAND 1454 * 1455 03014 0 02 02043 CCPU LDA RETC ALLOW ANY PENDING 1456 03015 0 10 02056 JST SIL RUPT TO FLUSH THRU TO 1457 03016 000401 ENB CCA 1458 03017 101000 NOP 1459 03020 101000 NOP 1460 03021 001001 INH 1461 03022 100000 SKP IF NO RUPT SKIP THE DAC 1462 03023 0 000000 CCA DAC ** PI RUPT COMES HERE 1463 * 1464 03024 0 02 02044 LDA RETD SET FOR START BUTTON RUPT 1465 03025 0 04 00063 STA '63 TO CCB 1466 * 1467 03026 0 02 00630 LDA ='5007 FIRST NOP GOES HERE 1468 03027 0 04 00574 STA TEMP 1469 03030 0 35 00627 LDX =-492 500-(7+1) NOP'S 1470 03031 0 02 00675 LDA ='101000 NOP 1471 03032 -0 04 00574 STA* TEMP 1472 03033 0 12 00574 IRS TEMP FILL NOP'S INTO SECTOR 5 FOR 1473 03034 0 12 00000 IRS 0 492 LOCATIONS TO GIVE TOTAL 1474 03035 0 01 03032 JMP *-3 OF 500 LOCATIONS USED IN LOOP 1475 * 1476 03036 0 10 02574 CCD JST OPCO ASK FOR EXPECTED NANOSEC 1477 03037 0 003747 DAC MESH 1478 03040 0 10 02140 JST PACK INPUT UP TO 4 DEC DIGITS 1479 03041 0 02 00566 LDA NEWL OR SKIP NEXT 3 LOCATIONS 1480 03042 0 10 02257 JST DCO 1481 03043 0 04 00550 STA EXNS 1482 03044 0 02 00550 LDA EXNS NOW TEST THE EXPECTED 1483 03045 0 11 00705 CAS =1600 TO LIMITS OF 400 AND 1600 1484 03046 0 01 03036 JMP CCD TOO BIG 1485 03047 101000 NOP 1486 03050 0 11 00626 CAS =400 OPERATOR THINKS TEST STARTED 1487 03051 101000 NOP WITH HIS CAR RET OR PERIOD 1488 03052 100000 SKP 1489 03053 0 01 03036 JMP CCD TOO SMALL 1490 * 1491 03054 140040 CRA 1492 03055 000201 IAB 1493 03056 140040 CRA 1494 03057 0 01 05000 JMP SEC5 GO TO WAIT FOR RUPT 1495 * 1496 03060 0 000000 CCB DAC ** HERE AFTER ONE MIN 1497 03061 0401 74 LRS 4 NOW HAVE DOUBLE PREC COUNT 1498 03062 100040 SZE IN RANGE 60,000 TO 300,000 1499 03063 000000 HLT **** STILL OUT OF RANGE 1500 * 1501 03064 000201 IAB NOW IN RANGE 3700 TO 19,000
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 35

1502 03065 0 04 00571 STA RECT REAL COUNT 1503 * 1504 03066 0 02 00553 LDA FCTR+1 DIV C0UNT INTO 1505 03067 000201 IAB 7,500,000 FOR NANOSECONDS 1506 03070 0 02 00552 LDA FCTR 1507 03071 0 10 02426 JST DIV 1508 03072 0 000571 DAC RECT EXPECT RESULT TO BE 1509 03073 000000 HLT IN RANGE 400 TO 1600 APX 1510 * 1511 03074 0411 77 LLS 1 NOW ROUND UP 1512 03075 100001 SRC TEST OF OVERFLOW 1513 03076 000000 HLT **** OUT OF RANGE 1514 03077 141206 AOA ADD TRIAL 1515 03100 0401 77 LRS 1 AND MOVE BACK 1516 * 1517 03101 0 04 00572 STA RENS NOW A HAS REAL NANOSEC 1518 03102 0 10 04123 JST V$OD GET IT READY TO TYPE 1519 03103 0 003764 DAC MESI+6 AS INTEGER 1520 * 1521 03104 0 02 00572 LDA RENS NOW TAKE DIFERENCE 1522 03105 0 07 00550 SUB EXNS 1523 03106 100400 SPL MAKE IT POSITIVE 1524 03107 140407 TCA 1525 03110 0 10 02317 JST MPY AND MULTIPLY IT BY 1000 1526 03111 0 000625 DAC =1000 1527 * 1528 03112 0 10 02426 JST DIV DIV BY EXPECTED VALUE 1529 03113 0 000550 DAC EXNS 1530 03114 000000 HLT 1531 * 1532 03115 0411 77 LLS 1 ROUND UP 1533 03116 141206 AOA 1534 03117 0401 77 LRS 1 1535 * 1536 03120 0 04 00574 STA TEMP TENTHS OF PER-CENT IN A REG 1537 03121 0 10 04123 JST V$OD PUT IT INTO MESSAGE 1538 03122 -0 003771 DAC* MESJ+3 1539 03123 0 02 03771 LDA MESJ+3 1540 03124 141240 ICR MOVE RIGHT MOST DIGIT 1541 03125 0 05 00635 ERA ='240 TO RIGHT ONE PLACE 1542 03126 0 04 03772 STA MESJ+4 1543 03127 0 02 03771 LDA MESJ+3 1544 03130 141140 ICL IF SECOND DIGIT (UNITS) IS 1545 03131 0 11 00635 CAS ='240 BLANK THEN FORCE IT TO 1546 03132 100000 SKP A ZERO 1547 03133 0 06 00706 ADD ='20 1548 03134 141240 ICR PUT IT BACK TO LEFT 1549 03135 0 05 00667 ERA ='256 AND STICK IN A DEC POINT 1550 03136 0 04 03771 STA MESJ+3 1551 *
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 36

1552 03137 0 10 02574 JST OPCO TYPE THE RESULTING TWO 1553 03140 0 003756 DAC MESI FIGURES 1554 03141 0 01 01123 JMP BYOM AND GO TO RESTART POINT 1555 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 37

1556 * MEMORY MODULE TIMING FLOWCHART 1557 EJCT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 38

1558 * 1559 * CHECK CYCLE TIME FOR EACH 4K SECTION OF MEMORY (UP TO 32K) 1560 * 1561 03142 0 000000 MTIM DAC ** 1562 03143 001001 INH 1563 03144 000013 EXA CLEAR ANY CLOCK RUPT REQUEST 1564 03145 14 0220 OCP '220 AND INSURE EXTENDED MODE IF ON CPU 1565 03146 0 02 02045 LDA RETE 1566 03147 0 10 02056 JST SIL SET RTC MASK FOR 1567 03150 0 02 00671 LDA =1 ALL OF THIS SECTION 1568 03151 74 0020 SMK '20 1569 03152 000401 ENB ALLOW ANY OUTSTANDING PI 1570 03153 101000 NOP RUPT TO FLUSH THROUGH 1571 03154 101000 NOP 1572 03155 001001 INH 1573 03156 100000 SKP 1574 * 1575 03157 0 000000 MTIA DAC ** PI FLUSH COMES HERE 1576 03160 0 02 02046 LDA RETF NOW SET FOR RUPT TO MTIB 1577 03161 0 10 02056 JST SIL 1578 03162 140040 CRA ZERO COUNTER 1579 03163 0 04 00542 STA CTR 1580 03164 0 02 00624 LDA =-2 GET IN SYNC WITH 1581 03165 0 04 00061 STA '61 CLOCK TICK 1582 03166 14 0020 OCP '20 1583 03167 0 02 00061 LDA '61 1584 03170 0 11 00624 CAS =-2 1585 03171 100000 SKP 1586 03172 0 01 03167 JMP *-3 HAS NOT CHANGED YET 1587 * 1588 03173 000401 ENB NOW COUNT THE RTC CYCLE TIME 1589 03174 0 12 00542 IRS CTR IN THE FIRST MEMORY MODULE 1590 03175 0 01 03174 JMP *-1 1591 03176 000000 HLT 1592 * 1593 03177 0 000000 MTIB DAC ** AT END OF CAL PROCESS IN FIRST MODULE 1594 03200 14 0220 OCP '220 1595 03201 0 02 00542 LDA CTR FETCH VALUE - APX VALUE AT 60 HERTZ 1596 03202 100400 SPL 716='12000, 516='10000, 316='5000 1597 03203 000000 HLT IT COUNTED TOO FAR 1598 03204 0405 75 ARS 3 TAKE ONE EIGHTH 1599 03205 141216 ACA ROUND UP 1600 03206 0 13 00542 IMA CTR 1601 03207 0 06 00542 ADD CTR NOW A REG IS CTR+12.5% 1602 03210 141206 AOA MAKE A LITTLE OVER 1603 03211 0 04 00556 STA HLIM SAVE AS LIMIT 1604 03212 0 07 00542 SUB CTR 1605 03213 0 07 00542 SUB CTR 1606 03214 0 07 00623 SUB =2 NOW CTR-12.5% 1607 03215 0 04 00557 STA LLIM SAVE AS LOW LIMIT
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 39

1608 * 1609 03216 0 02 02047 LDA RETG SET FOR RUPT TO MTIC FROM MODULE 1610 03217 0 10 02056 JST SIL UNDER TEST 1611 03220 140040 CRA 1612 03221 0 04 00574 STA TEMP START WITH ADDRESS OF ZERO 1613 * 1614 03222 0 02 00574 MTIO LDA TEMP 1615 03223 0 06 00634 ADD ='10000 BUMP TO FIRST LOCATION IN NEXT 4K MODULE 1616 03224 100001 SRC 1617 03225 0 01 03321 JMP MTIP WENT OVER 32K - THERFORE ALL DONE 1618 03226 0 04 00574 STA TEMP 1619 03227 0 35 00664 LDX =0 PUT KNOW VALUE IN X REG 1620 03230 0 02 00671 LDA =1 GET ANOTHER VALUE 1621 03231 -0 13 00574 IMA* TEMP STORE IT 1622 03232 0 15 00575 STX TEMP+1 SAVE THE X REG 1623 03233 -0 13 00574 IMA* TEMP TRY TO GET IT BACK 1624 03234 0 11 00671 CAS =1 1625 03235 0 01 03316 JMP MTIR MUST HAVE GONE BY END OF MEMORY 1626 03236 100000 SKP GOT IT BACK 1627 03237 0 01 03316 JMP MTIR 1628 * 1629 03240 0 02 00575 LDA TEMP+1 LOOK FOR WRAPAROUND 1630 03241 100040 SZE 1631 03242 0 01 03316 JMP MTIR HAD WRAPAROUND 1632 * 1633 03243 0 35 00574 MTIE LDX TEMP IF MEMORY THERE PUT ADDRESS IN INDEX 1634 03244 0 02 00603 LDA IRS MOVE UP LOOP OF: 1635 03245 1 04 00000 STA 0,1 1636 03246 0 02 00604 LDA JMP LOC 0 IRS 3 BUMP COUNT EVERY FOUR CYCLES 1637 03247 1 04 00001 STA 1,1 1 JMP *-1 1638 03250 140040 CRA 2 HLT OVERFLOW ERROR 1639 03251 1 04 00002 STA 2,1 3 BSZ 1 COUNT APPEARS HERE 1640 03252 1 04 00003 STA 3,1 1641 * 1642 03253 0 02 00624 LDA =-2 NOW GET BACK IN SYNC 1643 03254 0 04 00061 STA '61 WITH CLOCK TOCK 1644 03255 14 0020 OCP '20 1645 03256 0 02 00061 LDA '61 1646 03257 0 11 00624 CAS =-2 HAS IT TOLKED 1647 03260 100000 SKP 1648 03261 0 01 03256 JMP *-3 NOT YET 1649 * 1650 03262 000401 ENB YES - GO TO RUN LOOP 1651 03263 1 01 00000 JMP 0,1 IN THE MODULE UNDER TEST 1652 * 1653 03264 0 000000 MTIC DAC ** INTERRUPT BRINGS CONTROL BACK HERE 1654 03265 14 0220 OCP '220 CLEAR RUPT AND TURN CLOCK OFF 1655 03266 1 02 00003 LDA 3,1 FETCH THE COUNT 1656 03267 0 11 00556 CAS HLIM COMPARE TO HIGH LIMIT 1657 03270 0 01 03273 JMP *+3 TOO LARGE
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 40

1658 03271 101000 NOP 1659 03272 0 01 03302 JMP MTID GOOD 1660 * 1661 03273 0 10 02541 JST ERPO MEMORY APPEARS TO BE RUNNING TOO FAST 1662 03274 0 003615 DAC MER8 1663 03275 101000 NOP 1664 03276 0 35 00574 LDX TEMP (X) POINTS TO MEMORY UNDER TEST 1665 03277 100010 SR2 1666 03300 0 01 03243 JMP MTIE LOOP ON ERROR 1667 03301 000000 HLT 1668 * 1669 03302 1 02 00003 MTID LDA 3,1 FETCH THE COUNT 1670 03303 0 11 00557 CAS LLIM COMPARE TO LOWER LIMIT 1671 03304 101000 NOP 1672 03305 0 01 03222 JMP MTIO GOOD - GO TO NEXT MODULE 1673 * 1674 03306 0 10 02541 JST ERPO MEMORY APPEARS TO BE RUNNING TOO SLOW 1675 03307 0 003620 DAC MER9 1676 03310 101000 NOP 1677 03311 0 35 00574 LDX TEMP (X) POINTS TO MEMORY UNDER TEST 1678 03312 100010 SR2 1679 03313 0 01 03243 JMP MTIE LOOP ON ERROR 1680 03314 000000 HLT 1681 03315 0 01 03222 JMP MTIO GO ON TO NEXT MODULE 1682 * 1683 03316 0 02 00574 MTIR LDA TEMP HERE IF MEMORY NOT PRESENT 1684 03317 0 07 00634 SUB ='10000 1685 03320 0 04 00574 STA TEMP BRING TEMP BACK TO LAST GOOD VALUE 1686 03321 0 02 00574 MTIP LDA TEMP HERE ON PASSING 32K 1687 03322 0405 66 ARS 10 1688 03323 0 06 00701 ADD =4 1689 03324 0 10 04123 JST V$OD CONVERT TO DECIMAL 1690 03325 -0 000577 DAC* TEMP+3 1691 03326 0 02 00577 LDA TEMP+3 1692 03327 0 02 00577 LDA TEMP+3 GET TWO CHARACTERS 1693 03330 0 04 04001 STA MESK+4 STICK INTO MESSAGE 1694 03331 0 10 02574 JST OPCO TYPE 1695 03332 0 003775 DAC MESK 'MEM SZ XXK' 1696 03333 101000 NOP FOR PATCH ROOM 1697 03334 -0 01 03142 JMP* MTIM ALL DONE 1698 * 1699 * MESSAGE AREA 1700 * 1701 03335 106612 MES9 OCT 106612 1702 03336 106612 OCT 106612 1703 03337 140702 BCI 6,AB16-12T3 03340 130666 03341 126661 03342 131324 03343 131640
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 41

03344 120240 1704 03345 000000 BSZ 1 1705 03346 120240 MES1 BCI 1, 1706 03347 130661 BCI 5,11 JAN 73 03350 120312 03351 140716 03352 120267 03353 131640 1707 03354 151305 BCI 3,REV F 03355 153240 03356 143240 1708 03357 000000 BSZ 1 1709 * 1710 03360 106612 MES2 OCT 106612 1711 03361 120240 BCI 3, FREQ 03362 143322 03363 142721 1712 03364 120277 OCT 120277,135240,0 03365 135240 03366 000000 1713 * 1714 03367 106612 MES3 OCT 106612 1715 03370 151701 BCI 3,SAMPLE 03371 146720 03372 146305 1716 03373 120277 OCT 120277,135240,0 03374 135240 03375 000000 1717 * 1718 03376 106612 MES4 OCT 106612 1719 03377 142317 BCI 2,DONE 03400 147305 1720 03401 106612 OCT 106612,0 03402 000000 1721 * 1722 03403 106612 MES5 OCT 106612 1723 03404 146705 BCI 2,MEAS 03405 140723 1724 03406 120252 OPME BCI 7, ****** CALC 03407 125252 03410 125252 03411 125240 03412 120303 03413 140714 03414 141640 1725 03415 120252 OPMA BCI 11, ******* MILLISEC 03416 125252 03417 125252 03420 125252 03421 120240
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 42

03422 146711 03423 146314 03424 144723 03425 142703 03426 120240 03427 120240 1726 03430 125252 PCMA BCI 5,********% 03431 125252 03432 125252 03433 125252 03434 122640 1727 03435 000000 BSZ 1 1728 03436 120240 MES6 BCI 2, OK 03437 147713 1729 03440 000000 BSZ 1 1730 03441 106612 MES7 OCT 106612 1731 03442 151305 BCI 11,REJECT (OVER 7% LIMIT) 03443 145305 03444 141724 03445 120250 03446 147726 03447 142722 03450 120267 03451 122640 03452 146311 03453 146711 03454 152251 1732 03455 106612 OCT 106612,106612 03456 106612 1733 03457 000000 BSZ 1 1734 03460 106612 MES8 OCT 106612 1735 03461 147725 BCI 6,OUT OF RANGE 03462 152240 03463 147706 03464 120322 03465 140716 03466 143705 1736 03467 000000 BSZ 1 1737 03470 120240 MESA BCI 12, REJECT (OUT OF RANGE) 03471 151305 03472 145305 03473 141724 03474 120240 03475 124317 03476 152724 03477 120317 03500 143240 03501 151301 03502 147307 03503 142651
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 43

1738 03504 000000 BSZ 1 1739 03505 120240 MESB BCI 13, REJECT (DIST TOO WIDE) 03506 151305 03507 145305 03510 141724 03511 120240 03512 124304 03513 144723 03514 152240 03515 152317 03516 147640 03517 153711 03520 142305 03521 124640 1740 03522 000000 BSZ 1 1741 03523 106612 MESF OCT 106612 1742 03524 143322 BCI 17,FREQ TOO HIGH (SCALE TO UNDER 547) 03525 142721 03526 120324 03527 147717 03530 120310 03531 144707 03532 144240 03533 124323 03534 141701 03535 146305 03536 120324 03537 147640 03540 152716 03541 142305 03542 151240 03543 132664 03544 133651 1743 03545 000000 BSZ 1 1744 03546 106612 HRMS OCT 106612,106612 03547 106612 1745 03550 120240 BCI 3, HOUR 03551 144317 03552 152722 1746 03553 120277 OCT 120277,135240,0 03554 135240 03555 000000 1747 03556 106612 MNMS OCT 106612 1748 03557 146711 BCI 3,MINUTE 03560 147325 03561 152305 1749 03562 120277 OCT 120277,135240,0 03563 135240 03564 000000 1750 03565 120240 HRMN BCI 5, ***:**
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 44

03566 120240 03567 125252 03570 125272 03571 125252 1751 03572 000000 BSZ 1 1752 * 1753 03573 142722 MER1 BCI 2,ER1 03574 130640 1754 03575 000000 BSZ 1 1755 03576 142722 MER3 BCI 2,ER3 03577 131640 1756 03600 000000 BSZ 1 1757 03601 142722 MER4 BCI 2,ER4 03602 132240 1758 03603 000000 BSZ 1 1759 03604 142722 MER5 BCI 2,ER5 03605 132640 1760 03606 000000 BSZ 1 1761 03607 142722 MER6 BCI 2,ER6 03610 133240 1762 03611 000000 BSZ 1 1763 03612 142722 MER7 BCI 2,ER7 03613 133640 1764 03614 000000 BSZ 1 1765 03615 142722 MER8 BCI 2,ER8 03616 134240 1766 03617 000000 BSZ 1 1767 03620 142722 MER9 BCI 2,ER9 03621 134640 1768 03622 000000 BSZ 1 1769 03623 106612 STME OCT 106612 1770 03624 151724 BCI 7,STABILITY TEST 03625 140702 03626 144714 03627 144724 03630 154640 03631 152305 03632 151724 1771 03633 106612 OCT 106612 1772 03634 000000 BSZ 1 1773 03635 106612 STMF OCT 106612 1774 03636 142311 BCI 24,DIST OF 1000 ONE RTC CYCLE SAMPLES FROM AVERAGE 03637 151724 03640 120317 03641 143240 03642 130660 03643 130260 03644 120317 03645 147305 03646 120322
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 45

03647 152303 03650 120303 03651 154703 03652 146305 03653 120323 03654 140715 03655 150314 03656 142723 03657 120306 03660 151317 03661 146640 03662 140726 03663 142722 03664 140707 03665 142640 1775 03666 106612 OCT 106612 1776 03667 147706 BCI 25,OF 4096 RTC CYCLES. THE AVERAGE (ARBITRARY UNITS) 03670 120264 03671 130271 03672 133240 03673 151324 03674 141640 03675 141731 03676 141714 03677 142723 03700 127240 03701 152310 03702 142640 03703 140726 03704 142722 03705 140707 03706 142640 03707 124301 03710 151302 03711 144724 03712 151301 03713 151331 03714 120325 03715 147311 03716 152323 03717 124640 1777 03720 106612 OCT 106612 1778 03721 153701 BCI 8,WAS FOUND TO BE 03722 151640 03723 143317 03724 152716 03725 142240 03726 152317 03727 120302 03730 142640
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 46

1779 03731 000000 BSZ 1 1780 03732 106612 MESG OCT 106612 1781 03733 152311 BCI 9,TIME CPU (Y OR N) 03734 146705 03735 120303 03736 150325 03737 120250 03740 154640 03741 147722 03742 120316 03743 124640 1782 03744 137672 VFD 8,'277,8,'272 1783 03745 120000 OCT 120000,0 03746 000000 1784 03747 106612 MESH OCT 106612 1785 03750 147317 BCI 3,NOM NS 03751 146640 03752 147323 1786 03753 120277 OCT 120277,135240,0 03754 135240 03755 000000 1787 03756 106612 MESI OCT 106612 1788 03757 146705 BCI 7,MEAS******* NS 03760 140723 03761 125252 03762 125252 03763 125252 03764 125240 03765 147323 1789 03766 120252 MESJ BCI 6, ******* % 03767 125252 03770 125252 03771 125252 03772 120240 03773 122640 1790 03774 000000 OCT 0 1791 03775 120315 MESK BCI 6, MEM IS **K 03776 142715 03777 120311 04000 151640 04001 125252 04002 145640 1792 04003 000000 BSZ 1 1793 04004 120240 MESX BCI 8, RESULT IS GOOD 04005 151305 04006 151725 04007 146324 04010 120311 04011 151640 04012 143717
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 47

04013 147704 1794 04014 106612 OCT 106612,0 04015 000000 1795 04016 136255 ME01 BCI 2,<-10 04017 130660 1796 04020 000000 BSZ 1 1797 04021 120255 BCI 2, -10 04022 130660 1798 04023 000000 BSZ 1 1799 04024 120240 BCI 2, -9 04025 126671 1800 04026 000000 BSZ 1 1801 04027 120240 BCI 2, -8 04030 126670 1802 04031 000000 BSZ 1 1803 04032 120240 BCI 2, -7 04033 126667 1804 04034 000000 BSZ 1 1805 04035 120240 BCI 2, -6 04036 126666 1806 04037 000000 BSZ 1 1807 04040 120240 BCI 2, -5 04041 126665 1808 04042 000000 BSZ 1 1809 04043 120240 BCI 2, -4 04044 126664 1810 04045 000000 BSZ 1 1811 04046 120240 BCI 2, -3 04047 126663 1812 04050 000000 BSZ 1 1813 04051 120240 BCI 2, -2 04052 126662 1814 04053 000000 BSZ 1 1815 04054 120240 BCI 2, -1 04055 126661 1816 04056 000000 BSZ 1 1817 04057 120240 BCI 2, 0 04060 120260 1818 04061 000000 BSZ 1 1819 04062 120240 BCI 2, 1 04063 120261 1820 04064 000000 BSZ 1 1821 04065 120240 BCI 2, 2 04066 120262 1822 04067 000000 BSZ 1 1823 04070 120240 BCI 2, 3 04071 120263 1824 04072 000000 BSZ 1 1825 04073 120240 BCI 2, 4 04074 120264
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 48

1826 04075 000000 BSZ 1 1827 04076 120240 BCI 2, 5 04077 120265 1828 04100 000000 BSZ 1 1829 04101 120240 BCI 2, 6 04102 120266 1830 04103 000000 BSZ 1 1831 04104 120240 BCI 2, 7 04105 120267 1832 04106 000000 BSZ 1 1833 04107 120240 BCI 2, 8 04110 120270 1834 04111 000000 BSZ 1 1835 04112 120240 BCI 2, 9 04113 120271 1836 04114 000000 BSZ 1 1837 04115 120240 BCI 2, 10 04116 130660 1838 04117 000000 BSZ 1 1839 04120 120276 BCI 2, >10 04121 130660 1840 04122 000000 BSZ 1 1841 * 1842 ORGA ORG '500 DROP TO BASE SECTOR 1843 * 1844 * 1845 * 1846 00500 000000 AVG BSZ 1 AVERAGE VALUE IN STABILITY TEST 1847 00501 000000 BUCK BSZ 23 23 BUCKETS FOR STABILITY RESULTS 1848 00530 000000 CFLG BSZ 1 CHARACTER FLAG 1849 00531 000000 CINX BSZ 1 TEMP STORE FOR COUNT 1850 00532 000000 COME BSZ 3 TEMP STORE IN MULTIPLY 1851 00535 000000 COMM BSZ 3 TEMP STORE IN DIVIDE 1852 00540 000000 CNTB BSZ 1 LOW 1853 00541 000000 CNTC BSZ 1 AND HIGH COUNT 1854 00542 000000 CTR BSZ 1 COUNTER IN MEMORY TIMING 1855 00543 000000 DCON BSZ 1 DELAY CONSTANT FOR IRS AND JMP LOOP 1856 00544 000000 DCPS BSZ 1 CYCLES PER SEC 1857 00545 000000 DINC BSZ 1 CYCLES IN ELAPSED TIME SAMPLE 1858 00546 000000 DLYM BSZ 1 USE IN DELAY 1859 00547 000000 DLYN BSZ 1 SOME NUMBER OF MILLISEC 1860 00550 001407 EXNS DEC 775 CLOCK CAL EXPECTED NANOSEC - 775 DEFAULT 1861 00552 000344 FCTR DBP 7.5E6BB30 DOUBLE INTEGER 7,500,000 00553 070340 1862 00554 000000 HOLD BSZ 2 TEMP STORE IN ACNT 1863 00556 000000 HLIM BSZ 1 HIGH 1864 00557 000000 LLIM BSZ 1 AND LOW LIMITS IN MEMORY TIMING 1865 00560 000000 HRS BSZ 1 HOURS IN TIME-OF-DAY 1866 00561 000000 ICAL BSZ 1 INTEGER CALC TIME 1867 00562 000000 IMEA BSZ 1 INTEGER MEAS TIME
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 49

1868 00563 000000 MCNT BSZ 1 NEG COUNT USED IN TIME-OF-DAY 1869 00564 000000 MIN BSZ 1 MINUTES IN TIME-OF-DAY 1870 00565 000000 MUCL BSZ 1 MAKE UP FOR CYCLES LOST IN STABILITY 1871 00566 000000 NEWL BSZ 1 INPUT STORE 1872 00567 000000 PC BSZ 1 PER CENT TIMES TEN 1873 00570 177760 PIMK OCT 177760 MASK FOR 12 PI LINES 1874 00571 000000 RECT BSZ 1 CLOCK CAL REAL COUNT (A + B)/16 1875 00572 000000 RENS BSZ 1 CLOCK CAL REAL NANOSEC 1876 00573 000000 SAVE BSZ 1 TEMP STORE 1877 00574 000000 TEMP BSZ 5 TEMP STORE 1878 00601 000000 TLY BSZ 1 TALLY IN STABILITY TEST 1879 00602 000000 TYPE BSZ 1 TYPE 3,5,7 OR 6 (FOR 716L) 1880 * 1881 00603 0 12 00003 IRS IRS 3 SECTOR BIT MUST BE SET IN BOTH INSTRUCTIONS 1882 00604 0 01 00000 JMP JMP 0 USED IN MEMORY TIMING LOOP 1883 * 1884 00605 000000 RCAL BSZ 2 FORTRAN REAL VARIABLE STORAGE 1885 00607 000000 RMEA BSZ 2 AND CONSTANTS 1886 00611 000000 TA BSZ 2 1887 * 1888 00613 043777 K1 DEC 32767. 00614 177400 1889 00615 044372 K2 DEC 125000. 00616 011000 1890 00617 042575 K3 DEC 1000. 00620 000000 1891 00621 035501 K4 DEC 0.0005 00622 104467 1892 * 1893 * 1894 * 1895 00623 000002 FIN 00624 177776 00625 001750 00626 000620 00627 177024 00630 005007 00631 000241 00632 000030 00633 120272 00634 010000 00635 000240 00636 000074 00637 001042 00640 000073 00641 000027 00642 000200 00643 000177 00644 037777 00645 177761
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 50

00646 000012 00647 000260 00650 000271 00651 000215 00652 000062 00653 000010 00654 000247 00655 177673 00656 176030 00657 174002 00660 174007 00661 170000 00662 177751 00663 177766 00664 000000 00665 000144 00666 000106 00667 000256 00670 120260 00671 000001 00672 177777 00673 000316 00674 000331 00675 101000 00676 120265 00677 000005 00700 001700 00701 000004 00702 177373 00703 120263 00704 000003 00705 003100 00706 000020 00707 177545 00710 027174 00711 120267 00712 000007 00713 001440 00714 000026 00715 177307 00716 120240 00717 001130 1896 ORG ORGA BACK UP FOR V$LIB 1897 * 1898 * 1899 * 1900 04123 0 000000 V$OD DAC ** 1901 04124 0 04 04256 STA V$O1 SIGNED OCTAL WORD 1902 04125 0 04 04257 STA V$O2 WORKING STORAGE
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 51

1903 04126 0 02 04264 LDA ='-20 1904 04127 0 04 04260 STA V$O3 SET FLAG ='-20 1905 04130 -0 02 04123 LDA* V$OD GET DCA OF THE DECIMAL FIELD 1906 04131 0 04 04135 STA *+4 1907 04132 0 12 04123 IRS V$OD CALLING LOCATION PLUS TWO 1908 04133 0 10 04273 JST V$SI INITIALIZE SEVEN BYTE FIELD 1909 04134 000007 DEC 7 1910 04135 0 000000 DAC ** DAC OF 7 BYTES 1911 04136 0 02 04265 LDA ='240 1912 04137 0 10 04320 JST V$SB PUT ONE LEADING SPACE 1913 04140 000000 HLT 1914 04141 0 02 04265 LDA ='240 1915 04142 0 10 04320 JST V$SB PUT SECOND LEADING SPACE 1916 04143 000000 HLT 1917 04144 0 02 04247 LDA V$OX FIELD POINTER 1918 04145 0 04 04262 STA V$O5 1919 04146 0 02 04266 LDA =-4 1920 04147 0 04 04261 STA V$O4 LEADING ZEROS SUPPRESS COUNT 1921 04150 140040 CRA 1922 04151 0 04 04255 STA V$OY SET V$OY=0 1923 04152 0 02 04257 LDA V$O2 LOAD THE WORD 1924 04153 100400 SPL 1925 04154 0 01 04165 JMP V$OQ IF NEGATIVE, CHANGE TO POSITIVE NUMBER 1926 * 1927 04155 140040 V$OO CRA IF POSITIVE, PROCESS THE INTEGER 1928 04156 0 04 04263 STA V$O6 ACCUMULATOR =0 1929 04157 0 02 04257 LDA V$O2 LOAD THE OCTAL NUMBER 1930 04160 -0 07 04262 V$OP SUB* V$O5 SUBTRACT CONVERSION FACTOR 1931 04161 100400 SPL IF POSITIVE, SKIP 1932 04162 0 01 04171 JMP V$OR IF NEG., TRANSFER ACCUM. TO BYTE-STRING 1933 04163 0 12 04263 IRS V$O6 BUMP ACCUM. BY ONE 1934 04164 0 01 04160 JMP V$OP DO MORE CONVERSION 1935 * 1936 04165 0 05 04267 V$OQ ERA =-1 CHANGE THE NEGATIVE INTEGER 1937 04166 0 07 04267 SUB =-1 TO A POSITIVE NUMBER 1938 04167 0 04 04257 STA V$O2 1939 04170 0 01 04155 JMP V$OO GO TO PROCESS IT. 1940 * 1941 04171 -0 06 04262 V$OR ADD* V$O5 RESTORE LAST NUMBER 1942 04172 0 04 04257 STA V$O2 1943 04173 0 02 04263 LDA V$O6 GET ACCUMULATOR 1944 04174 100040 SZE 1945 04175 0 01 04243 JMP V$OW IF N0N-ZER0, GO AND SET FLAG=0 1946 04176 0 02 04260 LDA V$O3 LOAD FLAG 1947 04177 100040 SZE 1948 04200 0 12 04255 IRS V$OY NO. OF ZEROS ACTUALLY SUPPRESSED 1949 04201 0 06 04270 V$OT ADD ='260 FORM THE DECIMAL BYTE 1950 04202 0 10 04320 JST V$SB TRANSFER THE BYTE TO THE STRING 1951 04203 000000 HLT 1952 04204 0 12 04262 IRS V$O5 BUMP FIELD POINTER
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 52

1953 04205 0 12 04261 IRS V$O4 BUMP ZERO SUPPRESS COUNTER 1954 04206 0 01 04155 JMP V$OO 1955 04207 140040 CRA 1956 04210 0 04 04263 STA V$O6 CLEAR ACCUMULATOR 1957 04211 0 02 04257 LDA V$O2 LOAD THE INTEGER 1958 04212 -0 07 04262 V$OU SUB* V$O5 SUBTRACT THE CONVERSION FACTOR 1959 04213 100400 SPL 1960 04214 0 01 04217 JMP V$OV IF NEG., GO TO LAST DIGIT ROUTINE 1961 04215 0 12 04263 IRS V$O6 BUMP ACCUM. 1962 04216 0 01 04212 JMP V$OU 1963 * 1964 04217 0 02 04263 V$OV LDA V$O6 LAST TIME ACCUM. 1965 04220 0 06 04270 ADD ='260 LAST DECIMAL BYTE 1966 04221 0 10 04320 JST V$SB TRANSFER LAST DIGIT TO BYTE STRING 1967 04222 000000 HLT 1968 04223 0 02 04256 LDA V$O1 1969 04224 101400 SMI TEST IF THE NO. WAS NEGATIVE 1970 04225 -0 01 04123 JMP* V$OD IF PLUS, THEN FINISHED. 1971 04226 0 02 04135 LDA V$OD+10 MINUS SIGN ROUTINE 1972 04227 0416 77 ALR 1 RIGHT-MOST BYTE 1973 04230 0 07 04271 SUB =5 SIXTH BYTE FROM RIGHT 1974 04231 0 06 04255 ADD V$OY BYTE FOR FLOATING MINUS SIGN 1975 04232 0406 77 ARR 1 DCA OF WORD FOR MINUS SIGN 1976 04233 0 04 04236 STA *+3 1977 04234 0 10 04273 JST V$SI 1978 04235 000001 DEC 1 1979 04236 0 000000 DAC ** 1980 04237 0 02 04272 LDA ='255 PUT MINUS SIGN 1981 04240 0 10 04320 JST V$SB 1982 04241 000000 HLT 1983 04242 -0 01 04123 JMP* V$OD RETURN 1984 * 1985 04243 140040 V$OW CRA 1986 04244 0 04 04260 STA V$O3 SET FLAG =0 1987 04245 0 02 04263 LDA V$O6 1988 04246 0 01 04201 JMP V$OT 1989 * 1990 04247 0 004250 V$OX DAC *+1 1991 04250 023420 DEC 10000 CONVERSION FACTORS 1992 04251 001750 DEC 1000 1993 04252 000144 DEC 100 1994 04253 000012 DEC 10 1995 04254 000001 DEC 1 1996 04255 000000 V$OY BSZ 1 NUMBER OF ZEROS ACTUALLY SUPPRESSED 1997 04256 000000 V$O1 BSZ 1 SIGNED OCTAL WORD 1998 04257 000000 V$O2 BSZ 1 WORKING STORAGE 1999 04260 000000 V$O3 BSZ 1 FLAG =-'20 OR =0 2000 04261 000000 V$O4 BSZ 1 COUNTER FOR MAX. ZERO SUPPRESS 2001 04262 000000 V$O5 BSZ 1 FLD POINTER FOR CONVERSION FACTORS 2002 04263 000000 V$O6 BSZ 1 ACCUMULATOR
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 53

2003 * 2004 04264 177760 FIN 04265 000240 04266 177774 04267 177777 04270 000260 04271 000005 04272 000255 2005 * 2006 04273 0 000000 V$SI DAC ** 2007 04274 -0 02 04273 LDA* V$SI GET LENGTH OF BYTE STRING 2008 04275 100400 SPL MUST BE A POSITIVE NUMBER 2009 04276 000000 HLT ERROR 2010 04277 0 06 04410 ADD =-1 2011 04300 101040 SNZ 2012 04301 0 07 04410 SUB =-1 2013 04302 0 05 04410 ERA =-1 ONE'S COMPLEMENT 2014 04303 0 07 04410 SUB =-1 TWO'S COMPLEMENT 2015 04304 0 04 04404 STA V$S5 STORE AT SHIFT COUNTER 2016 04305 0 04 04406 STA V$S7 PERMA. STORE 2017 04306 -0 02 04273 LDA* V$SI GET THE BYTE COUNT 2018 04307 0 05 04410 ERA =-1 ONE'S COMPLEMENT 2019 04310 0 04 04407 STA V$S8 OVERFLOW COUNTER 2020 04311 0 12 04273 IRS V$SI CALLING LOCATION PLUS TWO 2021 04312 -0 02 04273 LDA* V$SI ADDRESS FOR RIGHT-END BYTE LOCATION 2022 04313 0416 77 ALR 1 ABSOLUTE NO. FOR THE RIGHT-END BYTE 2023 04314 0 06 04404 ADD V$S5 LEFT-END BYTE LOCATION NO. 2024 04315 0 04 04402 STA V$S3 2025 04316 0 12 04273 IRS V$SI CALLING LOCATION PLUS THREE 2026 04317 -0 01 04273 JMP* V$SI RETURN 2027 * 2028 04320 0 000000 V$SB DAC ** 2029 04321 0 04 04405 STA V$S6 NEW BYTE TO BE MOVED IN 2030 04322 0 02 04402 LDA V$S3 LEFT-MOST BYTE LOCATION 2031 04323 0404 77 LGR 1 DIVIDE BY TWO FOR LEFT END WORD 2032 04324 0 04 04400 STA V$S1 LEFT-MOST WORD 2033 04325 0 07 04410 SUB =-1 2034 04326 0 04 04401 STA V$S2 WORD+1 ADDRESS 2035 04327 0 02 04402 LDA V$S3 2036 04330 0 03 04411 ANA =1 STRIP ALL BUT THE LAST BIT (EVEN-ODD TEST) 2037 04331 101040 SNZ ODD, SKIP NEXT INSTRUCTION 2038 04332 0 01 04356 JMP V$SE GO TO EVEN ROUTINE 2039 * 2040 04333 -0 02 04400 V$SF LDA* V$S1 GET THE FIRST WORD 2041 04334 0 03 04412 ANA ='177400 STRIP OFF RIGHT HALF 2042 04335 0 04 04403 STA V$S4 TEMP. STORAGE 2043 04336 -0 02 04401 LDA* V$S2 GET THE NEXT WORD 2044 04337 0404 70 LGR 8 SHIFT RIGHT 2045 04340 0 05 04403 ERA V$S4
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 54

2046 04341 -0 04 04400 STA* V$S1 STORE AT FIRST LOCATION 2047 04342 0 12 04400 IRS V$S1 INCREMENT V$S1 2048 04343 0 12 04401 IRS V$S2 INCREMENT V$S2 2049 04344 0 12 04404 IRS V$S5 TEST IF SHIFT COUNT IS ZERO 2050 04345 0 01 04356 JMP V$SE IF NOT, GO TO EVEN ROUTINE 2051 04346 -0 02 04400 LDA* V$S1 YES, GET NEXT WORD 2052 04347 0 03 04413 ANA ='377 STRIP OFF LEFT HALF 2053 04350 -0 04 04400 STA* V$S1 STORE IN PLACE 2054 04351 0 02 04405 LDA V$S6 GET THE NEW BYTE 2055 04352 0414 70 LGL 8 SHIFT LEFT 2056 04353 -0 05 04400 ERA* V$S1 2057 04354 -0 04 04400 STA* V$S1 2058 04355 0 01 04367 JMP V$SA 2059 * 2060 04356 -0 02 04400 V$SE LDA* V$S1 GET FIRST WORD 2061 04357 0414 70 LGL 8 SHIFT LEFT 2062 04360 -0 04 04400 STA* V$S1 STORE INDIRECTLY IN PLACE 2063 04361 0 12 04404 IRS V$S5 TEST IF SHIFT COUNT IS ZERO 2064 04362 0 01 04333 JMP V$SF GO TO ODD ROUTINE 2065 04363 0 02 04405 LDA V$S6 IF YES, GET THE NEW BYTE 2066 04364 0 03 04413 ANA ='377 STRIP OFF LEFT HALF 2067 04365 -0 05 04400 ERA* V$S1 2068 04366 -0 04 04400 STA* V$S1 2069 04367 0 02 04406 V$SA LDA V$S7 2070 04370 0 04 04404 STA V$S5 RESTORE THE SHIFT COUNTER 2071 04371 0 12 04407 IRS V$S8 IF V$S8=0, GO TO OVERFLOW ROUTINE 2072 04372 0 01 04376 JMP *+4 IF V$S8 IS NOT ZERO, TAKE THE NORMAL RETURN 2073 04373 0 02 04410 LDA =-1 RE-INITIALIZE FOR OVERFLOW RETURN 2074 04374 0 04 04407 STA V$S8 SET UP FOR NEXT OVERFLOW RETURN 2075 04375 -0 01 04320 JMP* V$SB 0VERFLOW RETURN 2076 04376 0 12 04320 IRS V$SB CALLING LOCATION PLUS ONE 2077 04377 -0 01 04320 JMP* V$SB NORMAL RETURN 2078 * 2079 04400 0 000000 V$S1 DAC ** FIRST WORD 2080 04401 0 000000 V$S2 DAC ** NEXT WORD 2081 04402 000000 V$S3 BSZ 1 LEFT-MOST BYTE ADDRESS 2082 04403 000000 V$S4 BSZ 1 TEMP STORAGE 2083 04404 000000 V$S5 BSZ 1 SHIFT COUNTER 2084 04405 000000 V$S6 BSZ 1 NEW BYTE 2085 04406 000000 V$S7 BSZ 1 PERMA. STORE FOR SHIFT COUNT 2086 04407 000000 V$S8 BSZ 1 OVERFLOW COUNTER 2087 * 2088 04410 177777 FIN 04411 000001 04412 177400 04413 000377 2089 * 2090 * 2091 *
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 55

2092 ORG '5000 2093 * 2094 * THE CODE GETS FILLED IN BY CLOCK CAL PROGRAM TO BECOME A LOOP 2095 * OF 500 GENERIC INSTRUCTIONS DRIVING A DOUBLE PRECISION INTEGER 2096 * COUNTER. THE LOOP IS BROKEN BY A START BUTTON INTERRUPT. 2097 * 2098 05000 001001 SEC5 INH 2099 05001 000201 IAB PUT LEAST HALF IN A REG 2100 05002 141206 AOA ADD ONE TO IT 2101 05003 140100 SSP FORCE BIT B1 TO BE RESET 2102 05004 000201 IAB PUT WORDS IN CORRECT DOUBLE FORM 2103 05005 141216 ACA ADD ANY CARRY FROM LEAST HALF 2104 05006 000401 ENB AND ROUND OUT WITH 492 NOP'S 2105 * 2106 ORG '5000+500-1 LOOP IS 500 LONG 2107 05763 0 01 05000 JMP SEC5 2108 * 2109 * 2110 END AFIS 002050A ALL 001106A AVG 000500A BCDA 002235A BCDC 002222A BCDR 002233A BUCK 000501A BYOM 001123A CCA 003023A CCB 003060A CCD 003036A CCPU 003014A CFLG 000530A CINX 000531A CNTB 000540A CNTC 000541A COME 000532A COMM 000535A CPM 001113A CPMA 001120A CTR 000542A DCO 002257A DCOM 002302A DCON 000543A DCOS 002316A DCOT 002301A DCPS 000544A DDP5 001074A DEEX 002463A DEXT 002533A DINC 000545A DIV 002426A DIVA 002457A DIVB 002464A DIVC 002471A DIVD 002247A DIVH 002526A DIVN 002476A DIVS 002504A DIVT 002515A DIVU 002524A DIVX 002460A DIVZ 002462A DLYA 002212A DLYB 002217A DLYL 002206A DLYM 000546A DLYN 000547A EIRC 002003A ERPO 002541A ERPP 002550A EXNS 000550A FCTR 000552A FTS1 001457A FTS2 001442A FTS3 001422A FTS4 001436A FTS5 001466A FTST 001377A HLIM 000556A HOLD 000554A HRMN 003565A HRMS 003546A HRS 000560A ICAL 000561A IMEA 000562A INT1 002011A INTO 002026A IPLS 002075A IPLT 002115A IPLU 002120A IPOC 002611A IRS 000603A IRST 001607A IRSX 001602A IRSZ 001610A JMP 000604A K1 000613A K2 000615A K3 000617A K4 000621A LFCR 002552A LLIM 000557A MCNT 000563A ME01 004016A MER1 003573A MER3 003576A MER4 003601A MER5 003604A MER6 003607A MER7 003612A MER8 003615A MER9 003620A MES1 003346A MES2 003360A MES3 003367A MES4 003376A MES5 003403A MES6 003436A MES7 003441A MES8 003460A MES9 003335A MESA 003470A MESB 003505A MESF 003523A MESG 003732A MESH 003747A MESI 003756A MESJ 003766A MESK 003775A MESX 004004A MEXT 002420A MIN 000564A MLNN 002412A MNMS 003556A MPAA 002332A MPCC 002354A MPY 002317A MPYA 002330A MPYB 002333A
* NAME: AB16-12T3 DOC 70181010000 REV F PAGE 56

MPYC 002340A MPYN 002406A MPYR 002372A MPYS 002355A MTIA 003157A MTIB 003177A MTIC 003264A MTID 003302A MTIE 003243A MTIM 003142A MTIO 003222A MTIP 003321A MTIR 003316A MUCL 000565A NEWL 000566A NOP 001007A OLD 001055A OPCO 002574A OPMA 003415A OPME 003406A OPNW 002600A OPOW 002556A ORGA 004123A OUTH 001515A PACK 002140A PC 000567A PCMA 003430A PIMK 000570A PNTX 002610A RCAL 000605A RECT 000571A REJT 002202A RENS 000572A REST 002144A RET1 002030A RET2 002031A RET3 002032A RET4 002033A RET5 002034A RET6 002035A RET7 002036A RET8 002037A RET9 002040A RETA 002041A RETB 002042A RETC 002043A RETD 002044A RETE 002045A RETF 002046A RETG 002047A RETN 002173A RETO 002027A RMEA 000607A SAVE 000573A SEC5 005000A SIL 002056A SORT 001474A SPTW 001676A STAB 001517A STAC 001545A STAD 001570A STAE 001611A STAF 001626A STAG 001636A STAH 001732A STAI 001740A STAO 001777A STME 003623A STMF 003635A STOZ 001612A STR2 001151A STR3 001152A STR4 001204A STR5 001224A STR6 001363A STR7 001361A SWAP 002455A TA 000611A TDAY 002624A TDB 002641A TDC 002732A TDD 002646A TDE 002707A TDF 002722A TDG 002737A TDH 002766A TDIS 001721A TEMP 000574A TLY 000601A TMDL 001214A TYPE 000602A V$O1 004256A V$O2 004257A V$O3 004260A V$O4 004261A V$O5 004262A V$O6 004263A V$OD 004123A V$OO 004155A V$OP 004160A V$OQ 004165A V$OR 004171A V$OT 004201A V$OU 004212A V$OV 004217A V$OW 004243A V$OX 004247A V$OY 004255A V$S1 004400A V$S2 004401A V$S3 004402A V$S4 004403A V$S5 004404A V$S6 004405A V$S7 004406A V$S8 004407A V$SA 004367A V$SB 004320A V$SE 004356A V$SF 004333A V$SI 004273A 0000 WARNING OR ERROR FLAGS DAP-16 MOD 2 REV. C 01-26-71
    Multiple Pages