Multiple Pages    

* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 1

0001 * NAME: (PAL-AP) DOC. 70180311000 REV.H 0002 * 0003 * PURPOSE 0004 * 0005 * TO PUNCH SELF-LOADING OBJECT TAPES OF ANY DESIRED 0006 * SEGMENT OF MEMORY. 0007 * REVISION HISTORY 0008 * REV DATE ECO NO. 0009 * H 0010 * G 01-05-72 10124 0011 * F 08-08-71 9582 0012 * E 08-21-68 6098 0013 * D 02-15-68 5490 0014 * C 12-19-67 5228 0015 * B 10-25-67 4776 0016 * A 10-28-66 RELEASED 0017 * 0018 * 0019 * 0020 * 0021 * 0022 * 0023 * 0024 * 0025 * 0026 * COPYRIGHT 1972 BY HONEYWELL INFORMATION SYSTEMS INC. 0027 ****************************************************** 0028 EJCT
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 2

0029 * 0030 * 0031 * STORAGE 0032 * 0033 * THIS PROGRAM OCCUPIES LESS THAN ONE SECTOR OF CORE. 0034 * 0035 * 0036 * USE 0037 * 0038 * PAL-AP IS DISTRIBUTED IN PAL MODE AND IN RELOCATABLE OBJECT FORMAT 0039 * 0040 * PAL MODE: 0041 * ALL PAL-FORMAT PROGRAMS MUST BE LOADED IN THE FOLLOWING 0042 * MANNER: 0043 * 1) THE KEY-IN LOADER (LOCATIONS 1-17) MUST BE MANUALLY 0044 * SET AS FOLLOWS: ASR DIGITRONICS 0045 * 0046 * 1 STA '57 010057 010057 0047 * 2 0CP '0001/4 030004 030001 0048 * 3 INA '1001/4 131004 131001 0049 * 4 JMP *-1 002003 002003 0050 * 5 SNZ 101040 101040 0051 * 6 JMP *-3 002003 002003 0052 * 7 STA 0 010000 010000 0053 * 10 IMA '1001/4 131004 131001 0054 * 11 JMP *-1 002010 002010 0055 * 12 LGL 8 041470 041470 0056 * 13 INA '0001/4 130004 130001 0057 * 14 JMP *-1 002013 002013 0058 * 15 STA* 0 110000 110000 0059 * 16 IRS 0 024000 024000 0060 * 17 SZE 100040 100040 0061 * 0062 * 2) PLACE THE LEADER PORTION OF THE PROGRAM IN THE PAPER 0063 * TAPE READER. SET THE P-COUNTER T0 000001 AND PRESS START. 0064 * (SEE NOTE FOR ASR USERS.) 0065 * 0066 * NOTE: WHEN USING AN ASR-33. MOMENTARILY PRESS THE START 0067 * SWITCH ON THE READER AFTER PRESSING THE COMPUTER START 0068 * BUTTON. WHEN USING AN ASR-35. SET THE MODE SWITCH 0069 * TO KT, PRESS THE CONTROL KEY (CTRL) AND THE Q KEY 0070 * SIMULTANEOUSLY. PRESS THE COMPUTER START BUTTON. AND 0071 * SET THE READER SWITCH TO RUN. 0072 * THE PROGRAM WILL SELF-LOAD FROM THIS POINT 0073 * TO THE CORE AREA FROM WHICH IT WAS PUNCHED. 0074 * 0075 * RELOCATABLE FORMAT 0076 * 1) LOAD THE PROGRAM AS ANY OTHER RELOCATABLE PROGRAM 0077 * 2) TO OUTPUT A PAL MODE TAPE, USE INSTRUCTIONS BELOW. 0078 * USING LOAD POINT FOR FIRST ADDRESS, AND LOAD POINT
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 3

0079 * PLUS '577 AS LAST ADDRESS. 0080 * 0081 * 0082 * TO USE PROGRAM: 0083 * 1) MASTER CLEAR 0084 * 2) SET PROGRAM COUNTER TO XX000 WHERE XX IS THE SECTOR 0085 * INTO WHICH PAL-AP HAS BEEN LOADED. 0086 * 3) ENTER THE OUTPUT DEVICE CODE INTO THF A-REGISTER. IF 0087 * THE ASR-33 IS TO BE USED. SET BIT 1 OF THE A-REGISTER 0088 * AND TURN ON THE PUNCH. IF THE ASR-35 IS TO BE USED, 0089 * SET BIT 2 OF THE A-REGISTER. IF THE HIGH SPEED 0090 * PUNCH IS TO BE USED. LEAVE THE A-REGISTER CLEARED. 0091 * 4) PRESS START AND THE PROGRAM WILL HALT. 0092 * 5) ENTER INTO THE A-REGISTER THE FIRST APDRESS OF THE PROGRAM 0093 * BEING PUNCHED. 0094 * 6) PRESS START AND THE PROGRAM WILL HALT. 0095 * 7) ENTER INTO THE A-REGISTER THE LAST ADDRESS OF THE 0096 * PROGRAM BEING PUNCHED. 0097 * 8) PRESS START AND THE SELECTED OUTPUT DEVICE WILL BEGIN 0098 * PUNCHING TAPE. 0099 * 9) UPON COMPLETION OF THE PUNCH. IF ANOTHER TAPE IS TO BE 0100 * PUNCHED ON THE SAME DEVICE. CONTINUE FROM STEP 5. 0101 * 0102 * 0103 * TO GENERATE LOAD AND GO TAPES: 0104 * SYSTEM BOOTSTRAP TAPES MAY BE PUNCHED BY CHANGING THREE 0105 * LOCATIONS OF PAL-AP. ADDRESSING IS GIVEN IN OCTAL RELATIVE 0106 * TO THE FIRST LOCATION OF PAL-AP (IT MUST BE THE FIRST 0107 * LOCATION OF A SECTOR). LOCATIONS '613 AND '616 ARE BOTH 0108 * "JMP '632" INSTRUCTIONS. AND SHOULD BE CHANGED TO 0109 * "JMP* '632" INSTRUCTIONS - I.E. CHANGE FROM JUMP TO JUMP 0110 * INDIRECT. LOCATION '632 SHOULD BE CHANGED FROM "OCT 12" TO 0111 * "DAC PTR". WHERE PTR IS THE ABSOLUTE ADDRESS FOR 0112 * EXECUTION AFTER LOADING THE PAPER TAPE BOOT. 0113 * 0114 * 0115 * METHOD 0116 * 0117 * PAL-AP IS MADE UP OF TWO SECTIONS. THE PUNCH SECTION (INCLUDING 0118 * THE BOOTSTRAR) OCCUPIES XX000-XX577. THE LOADER SECTION (READ IN 0119 * BY THE BOOTSTRAP) OCCUPIES XX600-XX777. IN ADDITION TO THESE 0120 * THE BOOTSTRAP SECTION WILL LOAD INTO LOCATIONS '20 THROUGH '57, 0121 * AND WILL BE IN 8-8 FORMAT. 0122 * 0123 * 0124 * ANY PAL MODE PROGRAM HAS THE FOLLOWING OVERALL STRUCTURE: 0125 * 1) PAL-AP FIRST PUNCHES ITS LOADER SECTION IN 8-8 0126 * FORMAT FOLLOWED BY TWELVE INCHES OF LEADER. 0127 * 2) NEXT THE DESIRED PROGRAM IS PUNCHED IN PAL FORMAT WHICH 0128 * IS "RECOGNIZED" BY THE LOADER.
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 4

0129 * THE LOADER ON THE FRONT OF THE TAPE WILL LOAD ITSELF AND 0130 * THEN WILL LOAD THE PAL-FORMAT PROGRAM. 0131 * 0132 * 0133 * DATA IS PUNCHED IN BLOCKS OF 50 WORDS EACH. SALIENT 0134 * CHARACTERISTICS OF THE BLOCK STRUCTURE AREA ARE AS FOLLOWS: 0135 * 1) A START OF MESSAGE CHARACTER (OCTAL 201) IS 0136 * PUNCHED AT THE BEGINNING OF EACH BLOCK. 0137 * 2) FOLLOWING THIS. THE ADDRESS OF THE FIRST MEMORY 0138 * LOCATION IS PUNCHED. 0139 * 3) EACH BLOCK IS ENDED BY: 0140 * A) A CHECKSUM. THIS CONSISTS OF A WORD WHICH 0141 * IS THE EXCLUSIVE OR OF ALL WORDS PUNCHED 0142 * PLUS A WORD COUNT AND A BLOCK COUNT. 0143 * (THE FIRST BLOCK IS ZERO AND EACH ONE THERE- 0144 * AFTER IS INCREMENTED BY ONE.) THE 0145 * CHECKSUM IS ROTATED RIGHT ONE BIT EACH 0146 * TIME ANOTHER WORD IS ADDED TO IT. 0147 * B) AN END OF MESSASE CHARACTER (OCTAL 223). 0148 * THE EOM IS FOLLOWED BY A RUBOUT CHARACTER (OCTAL 377) 0149 * 4) SIX FRAMES OF LEADER ARE PUNCHED BETWEEN BLOCKS 0150 * AND TWELVE INCHES OF LEADER ARE PUNCHED 0151 * AT THE BEGINNING AND END OF THE PROGRAM. 0152 * 0153 * THE FORMAT OF THE PUNCHED WORDS IS AS FOLLOWS: 0154 * 1) NON-ZERO WORDS ARE PUNCHED IN "INVISIBLE CODE". 0155 * EACH 16-BIT WORD IS WRITTEN AS A FOUR-BIT AND 0156 * TWO SIX-BIT CHARACTERS ON TAPE. THE FOUR-BIT 0157 * CHARACTER REPRESENTS THE HIGH-ORDER FOUR 0158 * BITS 0F THE WORD. EACH SIX-BIT CHARACTER 0159 * HAS THE HIGH-ORDER BIT IN CHANNEL EIGHT AND THE 0160 * FIVE LOW-ORDER BITS IN CHANNELS FIVE THROUGH 0161 * ONE. ORDINARILLY, NOTHING IS WRITTEN IN CHANNELS 0162 * EIGHT THROUGH FIVE OF THE FOUR-BIT CHARACTER 0163 * OR IN CHANNELS SIX AND SEVEN OF THE SIX-BIT 0164 * CHARACTERS. 0165 * 2) EIGHT CHARACTERS CAUSE SPECIAL ACTION BY THE ASR. 0166 * THESE ARE 023 AND 223 (X-0FF). 021 AND 221 (X-0N), 012 0167 * AND 212 (LINE FEED), 005 AND 205 (WRU). THESE ARE 0168 * TRANSLATED INTO 177 AND 377, 176 AND 376, 175 AND 0169 * 375, 174 AND 374, RESPECTIVELY. IN THE CASE OF EACH OF 0170 * THESE CHARACTERS, CHANNELS SIX AND SEVEN ARE PUNCHED, 0171 * 3) WHEN ONE OR MORE CONSECUTIVE ZERO WORDS ARE 0172 * ENCOUNTERED IN MEMORY, THEY ARE REPRESENTED BY 0173 * ONE PUNCHED WORD. THIS CONSISTS OF THE TWO'S COMPLEMENT 0174 * OF THE NUMBER OF CONSECUTIVE ZERO WORDS ENCOUNTERED. IN 0175 * ORDER TO DISTINGUISH THESE Z-COUNT WORDS, CHANNEL EIGHT 0176 * OF THE HIGH-ORDER (FOUR-BIT) CHARACTER IS PUNCHED 0177 * 0178 *
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 5

0179 * NOTE: THE WORD COUNT CONSISTS OF THE TOTAL NUMBER OF 0180 * WORDS ENCOUNTERED WHILE PUNCHING A BLOCK INCLUDING ALL 0181 * ZERO WORDS. 0182 * 0183 * 0184 * 0185 ************************************************************************ 0186 REL 0187 EXD ENTER EXTENDED MODE 0188 * LOAD A WITH DEVICE CODE 0189 00000 000013 EXA ENABLE EXTENDED ADDRESSING 0190 00001 0 04 00460 STA CODE SAVE DEVICE CODE 0191 00002 140040 BEGN CRA 0192 00003 000000 HLT ENTER FIRST ADDRESS 0193 00004 0 04 00444 STA FADD SAVE IT 0194 00005 140040 CRA 0195 00006 000000 HLT ENTER LAST ADDRESS 0196 00007 0 04 00445 STA LADD SAVE IT 0197 00010 0 02 00460 LDA CODE PICK UP DEVICE CODE 0198 00011 101400 SMI IS ASR-33 IN USE 0199 00012 0 01 00033 JMP TE35 NO. 0200 00013 140040 CRA 0201 00014 0 04 00461 STA PON 0202 00015 0 04 00462 STA RUB 0203 00016 0 02 00427 SOCP LDA EASR 0204 00017 0 04 00056 STA EPNC 0205 00020 0 02 00430 LDA PASR REPLACE OTA '2 WITH OTA '4 0206 00021 0 04 00412 SOTA STA TPON+2 SET OTA'S 0207 00022 0 04 00415 STA TPON+5 SET OTA'S 0208 00023 0 04 00131 STA BGBL+5 SET OTA'S 0209 00024 0 04 00271 STA XOF+2 SET OTA'S 0210 00025 0 04 00274 STA XOF+5 SET OTA'S 0211 00026 0 04 00071 STA LLOP+1 SET OTA'S 0212 00027 0 04 00363 STA OK+1 SET OTA'S 0213 00030 0 04 00375 STA P+2 SET OTA'S 0214 00031 0 04 00117 STA ORUB+1 SET OTA'S 0215 00032 0 01 00052 JMP CONT 0216 00033 0416 77 TE35 ALR 1 TEST FOR ASR-35 0217 00034 101400 SMI IS ASR-35 IN USE 0218 00035 0 01 00043 JMP HISP NO. 0219 00036 0 02 00473 LDA ='222 0220 00037 0 04 00461 STA PON INITIALIZE PUNCH 0221 00040 0 02 00472 LDA ='377 AND RUBOUT CODES 0222 00041 0 04 00462 STA RUB 0223 00042 0 01 00016 JMP SOCP 0224 00043 140040 HISP CRA HIGH SPEED PUNCH IN USE 0225 00044 0 04 00461 STA PON 0226 00045 0 04 00462 STA RUB 0227 00046 0 02 00431 LDA EBRP OCP '2 0228 00047 0 04 00056 STA EPNC
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 6

0229 00050 0 02 00432 LDA PBRP OTA '2 0230 00051 0 01 00021 JMP SOTA STORE IT AWAY 0231 00052 140040 CONT CRA 0232 00053 0 04 00446 STA BLCT BLOCK COUNT 0233 00054 0 04 00450 STA ZCNT AND ZCOUNT 0234 00055 0 04 00443 STA Z 0235 00056 14 0002 EPNC OCP '2 ENABLE PUNCH 0236 00057 0 10 00410 JST TPON TURN PUNCH ON 0237 00060 0 01 00077 JMP LDR GO TO PUNCH LEADER 0238 00061 0 000000 LEAD DAC ** ROUTINE TO PUNCH 12 INCHES OF LEADER 0239 00062 0 02 00436 LDA N120 SET INDEX FOR 120 FRAMES 0240 00063 0 04 00453 STA NDX AND GO TO 0241 00064 0 01 00070 JMP *+4 PUNCH 0242 00065 0 000000 PNC DAC ** 0243 00066 0 02 00065 LDA PNC STORE RETURN ADDRESS 0244 00067 0 04 00061 STA LEAD IN LEAD 0245 00070 140040 LLOP CRA LEADER LOOP 0246 00071 74 0002 OTA '2 OUTPUT LEADER 0247 00072 0 01 00071 JMP *-1 0248 00073 0 12 00453 IRS NDX 0249 00074 0 01 00070 JMP *-4 0250 00075 0 04 00447 STA WDCT 0251 00076 -0 01 00061 JMP* LEAD RETURN 0252 00077 0 10 00061 LDR JST LEAD GO TO PUNCH 12 INCHES OF LEADER 0253 00100 0 02 00471 LDA ='52 GET FIRST RETURN FOR CHAR SUBROUTINE 0254 00101 0 04 00731 STA CHAR 0255 00102 0 04 00704 STA SWCH INITIALIZE TO PRISTINE CONDITION 0256 00103 0 04 00715 STA WORD INITIALIZE TO PRISTINE CONDITION 0257 00104 0 02 00434 LDA NBL1 LENGTH OF FIRST LEVEL BOOT (NEG) 0258 00105 0 04 00453 STA NDX FIRST 0259 00106 0 02 00440 LDA LOAD BLOCK 0260 00107 0 04 00401 STA PN88 OF 0261 00110 0 10 00400 JST PN PUNCH BL1 0262 00111 0 12 00401 IRS PN88 OMIT THE OCP OF BL2 0263 00112 0 12 00401 IRS PN88 OMIT THE INA OF BL2 0264 00113 0 02 00437 LDA NBL2 LENGTH OF SECOND LEVEL BOOT (NEG) 0265 00114 0 04 00453 STA NDX BLOCK 0266 00115 0 10 00400 JST PN PUNCH SECOND LEVEL BOOT 0267 00116 0 02 00472 ORUB LDA ='377 0268 00117 74 0002 OTA '2 0269 00120 0 01 00117 JMP *-1 0270 00121 0 10 00410 JST TPON 0271 00122 0 10 00061 JST LEAD TURN PUNCH ON. PUNCH LEADER 0272 00123 0 01 00125 JMP BGBL+1 0273 * 0274 * BEGIN PUNCHING BLOCK OF CHARACTERS 0275 * 0276 00124 0 10 00410 BGBL JST TPON 0277 00125 0 02 00433 LDA N6 BEGIN BLOCK. SET INDEX FOR 0278 00126 0 04 00453 STA NDX SIX FRAMES OF LEADER
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 7

0279 00127 0 10 00065 JST PNC AND PUNCH 0280 00130 0 02 00441 LDA SOM LOAD START-OF-MESSAGE 0281 00131 74 0002 OTA '2 PUNCH 0282 00132 0 01 00131 JMP *-1 (DELAY IF PUNCH NOT READY) 0283 00133 0 02 00435 LDA N50 INITIALIZE 0284 00134 0 04 00451 STA PNCT PUNCH COUNT 0285 00135 0 02 00446 LDA BLCT INITIALIZE CHECKSUM 0286 00136 0 04 00452 STA CKSM WITH BLOCKCOUNT 0287 00137 0 12 00446 IRS BLCT AND INCRENENT BLOCKCOUNT 0288 00140 0 02 00444 LDA FADD LOAD FIRST ADDRESS OF BLOCK 0289 00141 0 07 00470 SUB =1 0290 00142 0 10 00277 JST LOOP AND PUNCH IT. 0291 00143 0 02 00443 LDA Z 0292 00144 0 04 00450 STA ZCNT 0293 00145 0 02 00455 LDA SAVE 0294 00146 0 01 00150 JMP *+2 0295 00147 0 12 00444 MOVE IRS FADD INCREMENT FIRST ADDRESS 0296 00150 0 12 00447 IRS WDCT AND WORD COUNT 0297 00151 0 05 00452 ERA CKSM UPDATE CHECKSUM WITH 0298 00152 0406 77 ARR 1 0299 00153 0 04 00452 STA CKSM CHARACTER JUST PUNCHED 0300 00154 0 12 00451 IRS PNCT INCREMENT PUNCHCOUNT 0301 00155 0 01 00157 JMP *+2 50 WORDS NOT YET PUNCHED 0302 00156 0 01 00226 JMP ENBL 50 WORDS PUNCHED-END BLOCK 0303 00157 0 10 00207 JST DECD CHECK IF ZCOUNT ZERO 0304 00160 0 01 00221 JMP GO NO,PUNCH STORED WORD 0305 00161 -0 02 00444 LDA* FADD YES, LOAD NEXT WORD FROM MEMORY 0306 00162 100040 SZE IS IT ZERO 0307 00163 0 01 00201 JMP NZZZ NO 0308 00164 0 12 00450 IRS ZCNT YES,INCREMENT ZCOUNT 0309 00165 0 12 00447 IRS WDCT AND WORDCOUNT 0310 00166 0 12 00444 IRS FADD AND FIRST ADDRESS 0311 00167 0 12 00451 IRS PNCT BUMP WORD COUNT 0312 00170 0 01 00213 JMP CKLA CHECK FOR LAST ADDRESS 0313 00171 0 02 00450 LDA ZCNT GO TERMINATE BLOCK 0314 00172 0 10 00277 JST LOOP PUNCH NO. OF ZERO WORDS 0315 00173 0 05 00452 ERA CKSM CALCULATE NEW CKSM 0316 00174 0406 77 ARR 1 * 0317 00175 0 04 00452 STA CKSM SAVE IT 0318 00176 140040 CRA RESET ZCOUNT 0319 00177 0 04 00450 STA ZCNT DO IT 0320 00200 0 01 00226 JMP ENBL GO FINISH BLOCK 0321 00201 0 04 00454 NZZZ STA WD WORD NOT ZERO, STORE IT 0322 00202 0 02 00450 LDA ZCNT CHECK ZCOUNT 0323 00203 101040 SNZ IS IT ZERO 0324 00204 0 01 00223 JMP GO+2 0325 00205 0 10 00277 JST LOOP NO, TAKE ZCOUNT. PUNCH, 0326 00206 0 01 00151 JMP MOVE+2 RETURN 0327 00207 0 000000 DECD DAC ** DECISION SUBROUTINE 0328 00210 0 02 00450 LDA ZCNT CHECK ZCOUNT
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 8

0329 00211 101040 SNZ IS IT ZERO 0330 00212 0 12 00207 IRS DECD YES, INCREMENT RETURN ADDRESS 0331 00213 0 02 00444 CKLA LDA FADD NO, CHECK 0332 00214 0 07 00470 SUB =1 0333 00215 0 05 00445 ERA LADD LAST 0334 00216 100040 SZE ADDRESS 0335 00217 -0 01 00207 JMP* DECD NOT REACHED. RETURN 0336 00220 0 01 00263 JMP CHEK LAST ADDRESS REACHED, CHECK ZCOUNT 0337 00221 140040 GO CRA RESTORE 0338 00222 0 04 00450 STA ZCNT ZCOUNT TO ZERO 0339 00223 0 02 00454 LDA WD TAKE STORED WORD 0340 00224 0 10 00277 JST LOOP AND PUNCH IT 0341 00225 0 01 00147 JMP MOVE AND CONTINUE. 0342 * 0343 * END BLOCK 0344 * 0345 00226 0 02 00450 ENBL LDA ZCNT 0346 00227 0 04 00443 STA Z 0347 00230 140040 CRA 0348 00231 0 04 00450 STA ZCNT 0349 00232 0 02 00447 LDA WDCT 0350 00233 0 05 00452 ERA CKSM WITH CHECKSUM 0351 00234 0 10 00277 JST LOOP AND PUNCH 0352 00235 0 10 00267 JST XOF PUNCH XOFF 0353 00236 0 01 00124 JMP BGBL BEGIN NEW BLOCK 0354 00237 0 10 00277 ZNZ JST LOOP ZCOUNT NOT ZERO, PUNCH IT. 0355 00240 0 05 00452 ERA CKSM UPDATE 0356 00241 0406 77 ARR 1 0357 00242 0 04 00452 STA CKSM CHECKSUM 0358 00243 140040 CRA 0359 00244 0 04 00450 STA ZCNT 0360 00245 0 02 00447 LDA WDCT LOAD WORD COUNT AND 0361 00246 0 05 00452 ERA CKSM ERA IT WITH CHECKSUM 0362 00247 0 10 00277 JST LOOP PUNCH CHECKSUM 0363 00250 0 10 00267 JST XOF PUNCH TWO XOF'S 0364 00251 0 10 00410 JST TPON TURN PUNCH ON 0365 00252 0 10 00267 JST XOF SECOND XOF 0366 00253 0 10 00410 JST TPON 0367 00254 0 10 00061 JST LEAD TURN PUNCH ON, PUNCH LEADER 0368 00255 0 02 00460 LDA CODE PICKUP OUTPUT DEVICE 0369 00256 0416 77 ALR 1 CHECK IF ASR-35 0370 00257 101400 SMI * 0371 00260 100000 SKP EITHER 33 OR H/S 0372 00261 0 10 00267 JST XOF STOP PUNCH ON ASR-35 0373 00262 0 01 00371 JMP DONE GO WRAP UP 0374 00263 0 02 00450 CHEK LDA ZCNT IS ZCOUNT ZERO 0375 00264 100040 SZE 0376 00265 0 01 00237 JMP ZNZ NO, PUNCH IT 0377 00266 0 01 00245 JMP ZNZ+6 0378 00267 0 000000 XOF DAC ** PUNCH XOFF ROUTINE
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 9

0379 00270 0 02 00442 LDA XOFF LOAD XOFF 0380 00271 74 0002 OTA '2 PUNCH 0381 00272 0 01 00271 JMP *-1 (DELAY IF PUNCH NOT READY) 0382 00273 0 02 00472 LDA ='377 0383 00274 74 0002 OTA '2 0384 00275 0 01 00274 JMP *-1 0385 00276 -0 01 00267 JMP* XOF RETURN 0386 00277 0 000000 LOOP DAC ** MAIN PUNCH LOOP 0387 00300 0 10 00306 JST TEST IS WORD A ZCOUNT 0388 00301 0 05 00467 ERA ='100000 YES, PUT ONE IN HIGH ORDER BIT 0389 00302 0 10 00331 JST PNCH PUNCH 0390 00303 0 10 00331 JST PNCH THREE 0391 00304 0 10 00331 JST PNCH CHARACTERS 0392 00305 -0 01 00277 JMP* LOOP RETURN 0393 00306 0 000000 TEST DAC ** 0394 00307 0 04 00455 STA SAVE SAVE WORD 0395 00310 0 02 00450 LDA ZCNT 0396 00311 101040 SNZ 0397 00312 0 01 00317 JMP *+5 0398 00313 0 05 00466 ERA =-1 TAKE TWO'S 0399 00314 0 06 00470 ADD =1 COMPLEMENT 0400 00315 0 04 00455 STA SAVE UPDATE SAVE 0401 00316 0 01 00321 JMP *+3 CONTINUE 0402 00317 0 12 00306 IRS TEST ZCOUNT ZERO, CO 0403 00320 0 02 00455 LDA SAVE REGAIN SAVE 0404 00321 0406 76 ARR 2 POSITION CHARACTER 0405 00322 0 04 00455 STA SAVE 0406 00323 0 03 00465 ANA ='36000 CLEAR TO CHARACTER 0407 00324 -0 01 00306 JMP* TEST RETURN 0408 00325 0404 66 HOB LGR 10 CHANGE HIGH-ORDER 0409 00326 0 03 00464 ANA ='37 BIT FROM CHANNEL 6 0410 00327 0 05 00463 ERA ='200 TO CHANNEL 8 0411 00330 0 01 00335 JMP *+5 AND GO TO PUNCH 0412 00331 0 000000 PNCH DAC ** PUNCH ROUTINE 0413 00332 100400 SPL CHECK FOR 0414 00333 0 01 00325 JMP HOB HIGH ORDER BIT 0415 00334 0404 66 LGR 10 POSITION CHARACTER 0416 00335 0 04 00456 STA SAVA STORE IT 0417 00336 0 03 00464 ANA ='37 SET UP FOR TRANSLATION CHECK 0418 00337 0 04 00457 STA SAVB STORE 0419 00340 0 02 00420 LDA ADC1 LOAD ADDRESS OF TABLE 0420 00341 0 04 00421 STA ADC2 SETUP FOR CHECK 0421 00342 -0 02 00421 LDA* ADC2 LOAD FROM TABLE 0422 00343 101040 SNZ CHECK FOR END OF TABLE 0423 00344 0 01 00362 JMP OK DONE, NO TRANSLATION NEEDED 0424 00345 0 03 00472 ANA ='377 CLEAR 9 HIGH-ORDER BITS 0425 00346 0 05 00457 ERA SAVB CHECK FOR 0426 00347 101040 SNZ MATCH 0427 00350 0 01 00353 JMP TRNS YES, TRANSLATE 0428 00351 0 12 00421 IRS ADC2 NO, INCREMENT ADDRESS
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 10

0429 00352 0 01 00342 JMP *-8 AND RETURN. 0430 00353 0 02 00456 TRNS LDA SAVA PICK UP ORIGINAL CHARACTER 0431 00354 0 03 00463 ANA ='200 CLEAR ALL BUT BIT 8 0432 00355 0 04 00456 STA SAVA SAVE BIT 0433 00356 -0 02 00421 LDA* ADC2 PICK UP SUBROUTINE 0434 00357 0404 70 LGR 8 CHARACTER 0435 00360 0 05 00456 ERA SAVA OBTAIN CORRECT BIT 8 0436 00361 0 01 00363 JMP *+2 PUNCH 0437 00362 0 02 00456 OK LDA SAVA NO TRANSLATION, GET CHARACTER 0438 00363 74 0002 OTA '2 PUNCH 0439 00364 0 01 00363 JMP *-1 (DELAY IF PUNCH NOT READY) 0440 00365 0 02 00455 LDA SAVE POSITION WORD 0441 00366 0416 72 ALR 6 FOR NEXT CHARACTER 0442 00367 0 04 00455 STA SAVE STORE CHARACTER 0443 00370 -0 01 00331 JMP* PNCH AND RETURN 0444 00371 14 0102 DONE OCP '102 0445 00372 0 01 00002 JMP BEGN RESTART IF DESIRED 0446 00373 0 000000 P DAC ** 0447 00374 0406 70 ARR 8 0448 00375 74 0002 OTA '2 PUNCH 0449 00376 0 01 00375 JMP *-1 0450 00377 -0 01 00373 JMP* P 0451 00400 0 00 00000 PN PZE ** 0452 00401 0 00 00000 PN88 PZE ** 0453 00402 0 10 00373 JST P PUNCH LOAD PROGRAM 0454 00403 0 10 00373 JST P IN 8-8 FORMAT 0455 00404 0 12 00401 IRS PN88 0456 00405 0 12 00453 IRS NDX 0457 00406 0 01 00401 JMP PN88 0458 00407 -0 01 00400 JMP* PN 0459 00410 0 000000 TPON DAC ** TURN PUNCH ON 0460 00411 0 02 00461 LDA PON OUTPUT '222 0461 00412 74 0002 OTA '2 IF ASR-35 IN USE. 0462 00413 0 01 00412 JMP *-1 0463 00414 0 02 00462 LDA RUB OUTPUT '377 0464 00415 74 0002 OTA '2 IF ASR-35 IN USE. 0465 00416 0 01 00415 JMP *-1 0466 00417 -0 01 00410 JMP* TPON 0467 00420 0 000422 ADC1 DAC C1 ADDRESS OF C1 0468 00421 ADC2 BSS 1 0469 * 0470 * TRANSLATION TABLE. ILLEGAL CHARACTER (7 LOW ORDER BITS) 0471 * IN RIGHT-HAND HALF, AND SUBSTITUTION CHARACTER (7 LOW ORDER BITS) 0472 * IN LEFT-HAND HALF. 0473 * 0474 00422 077423 C1 OCT 77423,77021,76412,76005,0 00423 077021 00424 076412 00425 076005 00426 000000
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 11

0475 * 0476 00427 14 0104 EASR OCP '104 0477 00430 74 0004 PASR OTA '4 0478 00431 14 0002 EBRP OCP '2 0479 00432 74 0002 PBRP OTA '2 0480 00433 177772 N6 DEC -6 0481 00434 0 177740 NBL1 DAC ST-BL2 NEGATIVE LENGTH OF FIRST LEVEL BOOT 0482 00435 177716 N50 DEC -50 0483 00436 177610 N120 DEC -120 0484 00437 0 177604 NBL2 DAC WAIT-STPC-1 NEG LENGTH OF SECOND LEVEL BOOT 0485 00440 0 02 00540 LOAD LDA ST STARTING ADDRESS 0486 00441 000201 SOM OCT 201 0487 00442 000223 XOFF OCT 223 0488 00443 Z BSS 1 0489 00444 FADD BSS 1 0490 00445 LADD BSS 1 0491 00446 BLCT BSS 1 0492 00447 WDCT BSS 1 0493 00450 ZCNT BSS 1 0494 00451 PNCT BSS 1 0495 00452 CKSM BSS 1 0496 00453 NDX BSS 1 0497 00454 WD BSS 1 0498 00455 SAVE BSS 1 0499 00456 SAVA BSS 1 0500 00457 SAVB BSS 1 0501 00460 CODE BSS 1 0502 00461 PON BSS 1 0503 00462 RUB BSS 1 0504 00463 000200 FIN 00464 000037 00465 036000 00466 177777 00467 100000 00470 000001 00471 000052 00472 000377 00473 000222 0505 00474 000000 BSZ '40 0506 * 0507 * SYSTEM BOOTSTRAP 0508 * 0509 ORG '540 0510 00540 0 000020 ST DAC '20 STARTING ADDRESS 0511 * 1 STA '57 010057 0512 * 2 OCP '000X 03000X 0513 * 3 INA '100X 13100X 0514 * 4 JMP *-1 002003 0515 * 5 SNZ 101040
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 12

0516 * 6 JMP *-3 002003 0517 * 7 STA 0 010000 0518 * 10 INA '100X 13100X 0519 * 11 JMP *-1 002010 0520 * 12 LGL 8 041470 0521 * 13 INA '000X 13000X 0522 * 14 JMP *-1 002013 0523 * 15 STA* 0 110000 0524 * 16 IRS 0 024000 0525 * 17 SZE 100040 0526 00541 0 01 00010 JMP '10 00020 TO FILL OUT BOOTSTRAP 0527 00542 0 02 00041 LDA '41 00021 SET NEXT REENTRY 0528 00543 0 04 00021 STA '21 00022 * 0529 00544 0 02 00057 LDA '57 00023 SET STARTING ADDRESS 0530 00545 100040 SZE 00024 * 0531 00546 0 04 00054 STA '54 00025 0532 00547 0 02 00054 LDA '54 00026 0533 00550 0 04 00000 STA 0 00027 * 0534 00551 0 06 00055 ADD '55 00030 0535 00552 0 04 00055 STA '55 00031 0536 00553 000013 EXA 00032 0537 00554 0 02 00013 LDA '13 00033 SET IO ORDERS 0538 00555 0 03 00044 ANA '44 00034 0539 00556 -0 04 00000 STA* 0 00035 * 0540 00557 0 12 00000 IRS 0 00036 * 0541 00560 0 02 00010 LDA '10 00037 * 0542 00561 0 01 00015 JMP '15 00040 * 0543 00562 0 01 00042 JMP '42 00041 SECOND REENTRY 0544 00563 0 04 00025 STA '25 00042 CLEAR WORDCOUNT 0545 00564 100000 SKP 00043 0546 00565 077777 OCT 77777 00044 0547 00566 101000 NOP 00045 0548 00567 0 02 00051 LDA '51 00046 END. SET UP FINAL REENTRY 0549 00570 0 04 00020 STA '20 00047 * 0550 00571 0 01 00010 JMP '10 00050 * 0551 00572 -0 01 00054 JMP* '54 00051 0552 00573 140040 CRA 00052 0553 00574 -0 01 00055 JMP* '55 00053 AUTOMATIC LOAD 0554 00575 0 000600 DAC BL2 00054 DEFAULT START 0555 00576 000033 OCT 33 00055 0556 00577 000000 OCT 0 00056 TERMINATE FIRST SECTION 0557 * 0558 * LOADER 0559 00600 14 0001 BL2 OCP 1 0560 00601 54 0001 INA 1 0561 * 0562 00602 0 01 00601 WAIT JMP *-1 0563 00603 14 0101 OCP '101 READER OFF IF ON 0564 00604 0 04 00022 STA '22 0565 00605 0 05 00775 ERA STPC STOP CODE TEST
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 13

0566 00606 100040 SZE 0567 00607 -0 01 00731 JMP* CHAR 0568 00610 -0 02 00731 LDA* CHAR 0569 00611 0 05 00655 ERA SCAN TEST FOR SCAN MODE 0570 00612 101040 SNZ 0571 00613 0 01 00632 JMP ENDT 0572 00614 0 02 00025 LDA '25 0573 00615 101040 SNZ 0574 00616 0 01 00632 JMP ENDT END FILE EXIT 0575 00617 0 05 00020 ERA '20 0576 00620 0416 77 ALR 1 0577 00621 0 05 00021 ERA '21 0578 00622 100040 SZE 0579 00623 0 01 00630 JMP EROR 0580 00624 0 04 00025 STA '25 RESET WORD COUNT 0581 00625 0 10 00731 JST CHAR 0582 00626 0 12 00024 BUMP IRS '24 INCREMENT BLOCK COUNT 0583 00627 0 01 00634 JMP STRT+1 0584 00630 000012 EROR OCT 12 ERROR HALT 0585 00631 0 01 00630 JMP *-1 HALT AGAIN IF STARTED 0586 00632 000012 ENDT OCT 12 HALT, TAPE LOADED NORMALLY 0587 00633 0 04 00024 STRT STA '24 RESET BLOCK COUNT 0588 00634 140040 CRA 0589 00635 0 04 00022 STA '22 RESET CHARACTER BUFFER 0590 00636 0 02 00010 LDA '10 TEST FOR HIGH SPEED READER 0591 00637 0406 77 ARR 1 0592 00640 100400 SPL 0593 00641 0 01 00652 JMP SCAN-3 0594 00642 34 0104 SKS '104 0595 00643 0 01 00642 JMP *-1 0596 00644 14 0104 OCP '104 0597 00645 0 02 00766 LDA ='221 0598 00646 74 0004 OTA 4 0599 00647 34 0104 SKS '104 0600 00650 0 01 00647 JMP *-1 0601 00651 14 0004 OCP 4 0602 00652 0 02 00022 LDA '22 0603 00653 0 01 00655 JMP *+2 TURN ON TELEPRINTER 0604 00654 0 10 00731 JST CHAR LEADER SCAN 0605 00655 0 05 00767 SCAN ERA ='22 START OF MESSAGE 0606 00656 100040 SZE 0607 00657 0 01 00654 JMP *-3 * 0608 00660 0 04 00000 STA 0 * 0609 00661 0 04 00025 STA '25 RESET WORD COUNT 0610 00662 0 02 00024 LDA '24 0611 00663 0 04 00020 STA '20 INITIALIZE BLOCK 0612 00664 0 10 00731 JST CHAR 0613 00665 0 10 00704 DATA JST SWCH 0614 00666 0 01 00665 JMP *-1 DO DATA LOAD 0615 00667 0 10 00715 JST WORD DO ZERO LOAD
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 14

0616 00670 0 05 00765 ERA =2 0617 00671 0 04 00021 STA '21 0618 00672 0 05 00020 ERA '20 0619 00673 0406 77 ARR 1 0620 00674 0 04 00020 STA '20 0621 00675 140040 CRA 0622 00676 -0 04 00000 STA* 0 0623 00677 0 12 00025 IRS '25 ADD TO WORD COUNT 0624 00700 0 12 00000 IRS 0 0625 00701 0 12 00021 IRS '21 0626 00702 0 01 00676 JMP *-4 ADD TO WORD COUNT 0627 00703 0 01 00665 JMP DATA 0628 00704 0 00 00052 SWCH PZE '52 INITIALIZED NONZERO CONSTANT 0629 00705 0 10 00715 JST WORD 0630 00706 -0 04 00000 STA* 0 0631 00707 0 12 00000 IRS 0 0632 00710 0 12 00025 IRS '25 ADD TO WORD COUNT 0633 00711 0 05 00020 ERA '20 0634 00712 0406 77 ARR 1 0635 00713 0 04 00020 STA '20 0636 00714 -0 01 00704 JMP* SWCH 0637 00715 0 00 00052 WORD PZE '52 INITIALIZED NONZERO C 0638 00716 140040 CRA 0639 00717 0 04 00021 STA '21 0640 00720 0 10 00731 JST CHAR 0641 00721 0 10 00731 JST CHAR 0642 00722 0 10 00731 JST CHAR 0643 00723 0414 70 LGL 8 0644 00724 101400 SMI TEST FOR ZERO-COUNT WORD 0645 00725 0 12 00704 IRS SWCH 0646 00726 0 02 00021 LDA '21 0647 00727 0406 77 ARR 1 0648 00730 -0 01 00715 JMP* WORD 0649 00731 0 000052 CHAR DAC '52 FIRST TIME IN-RETURN VIA '52 0650 00732 0 02 00022 LDA '22 0651 00733 0414 70 LGL 8 0652 00734 100400 SPL 0653 00735 0 12 00021 IRS '21 0654 00736 0414 77 LGL 1 0655 00737 0 05 00764 ERA ='174000 0656 00740 101040 SNZ 0657 00741 0 02 00763 LDA ='171000 0658 00742 0 05 00762 ERA ='1000 0659 00743 101040 SNZ 0660 00744 0 02 00761 LDA ='167000 0661 00745 0 05 00770 ERA L1 0662 00746 101040 SNZ 0663 00747 0 02 00771 LDA L2 0664 00750 0 05 00762 ERA ='1000 0665 00751 101040 SNZ
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 15

0666 00752 0 02 00772 LDA L3 0667 00753 0 05 00773 ERA L4 0668 00754 0414 76 LGL 2 0669 00755 0 05 00021 ERA '21 IN ACC, READ NEXT, 0670 00756 0416 72 ALR 6 EXIT ON STOP CODE, 0671 00757 0 04 00021 STA '21 OTHERWISE TRANSLATE 0672 00760 0 01 00600 JMP WAIT-2 0673 00761 167000 FIN 00762 001000 00763 171000 00764 174000 00765 000002 00766 000221 00767 000022 0674 00770 002000 L1 OCT 2000 0675 00771 154000 L2 OCT 154000 0676 00772 157000 L3 OCT 157000 0677 00773 176000 L4 OCT 176000 0678 00774 000000 OCT 0 0679 00775 000223 STPC OCT 223 0680 * LOCATION FUNCTION 0681 * 0682 * 20 CHECKSUM 0683 * 21 ACCUMULATOR 0684 * 22 CHARACTER BUFFER 0685 * 24 BLOCK COUNT 0686 * 25 WORD COUNT 0687 END ADC1 000420 ADC2 000421 BEGN 000002 BGBL 000124 BL2 000600 BLCT 000446 BUMP 000626 C1 000422 CHAR 000731 CHEK 000263 CKLA 000213 CKSM 000452 CODE 000460 CONT 000052 DATA 000665 DECD 000207 DONE 000371 EASR 000427 EBRP 000431 ENBL 000226 ENDT 000632 EPNC 000056 EROR 000630 FADD 000444 GO 000221 HISP 000043 HOB 000325 L1 000770 L2 000771 L3 000772 L4 000773 LADD 000445 LDR 000077 LEAD 000061 LLOP 000070 LOAD 000440 LOOP 000277 MOVE 000147 N120 000436 N50 000435 N6 000433 NBL1 000434 NBL2 000437 NDX 000453 NZZZ 000201 OK 000362 ORUB 000116 P 000373 PASR 000430 PBRP 000432 PN 000400 PN88 000401 PNC 000065 PNCH 000331 PNCT 000451 PON 000461 RUB 000462 SAVA 000456 SAVB 000457 SAVE 000455 SCAN 000655 SOCP 000016 SOM 000441 SOTA 000021 ST 000540 STPC 000775 STRT 000633 SWCH 000704 TE35 000033 TEST 000306 TPON 000410 TRNS 000353 WAIT 000602 WD 000454 WDCT 000447 WORD 000715 XOF 000267 XOFF 000442 Z 000443 ZCNT 000450
* NAME: (PAL-AP) DOC. 70180311000 REV.H PAGE 16

ZNZ 000237 0000 WARNING OR ERROR FLAGS DAP-16 MOD 2 REV. C 01-26-71
    Multiple Pages