https://github.com/virtualagc/virtualagc
Tip revision: 423a21ddaa1c3867372b485f068aa79e2302f769 authored by Mike Stewart on 05 September 2018, 06:04:25 UTC
Luminary130: Updated file headers and changelogs
Luminary130: Updated file headers and changelogs
Tip revision: 423a21d
A_YUL_PROGRAMMERS_DIGEST.argus
# Copyright: Public domain.
# Filename: A_YUL_PROGRAMMERS_DIGEST.mitigus
# Purpose: Part of the source code for YUL (revision 9).
# Assembler: TBD
# Contact: Jim Lawton <jim.lawton@gmail.com>
# Website: https://www.ibiblio.org/apollo/index.html
# Page scans: https://archive.org/details/yulsystemsourcec00hugh
# Pages: 005-013 (9)
# Mod history: 2016-10-06 JL Created.
# 2016-10-08 JL Transcribed.
# 2016-10-13 JL Fixed typo.
# Annotations:
#
# B L A I R - S M I T H
# Y U L S Y S T E M
#
# Listings in
# MITIGUS Format
#
# Note: Page numbers are scan page numbers rather than listing.
L @A YUL PROGRAMMER'S DIGEST
# Page 5
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 1 PAGE 2
R0032 EXAMPLES OF ALL CURRENTLY AVAILABLE YUL DIRECTOR CARD TYPES. ON THIS PAGE: ASSEMBLY-TYPE DIRECTORS.
R00332 *----------------------------------------------------------------------------------------------------
R0034 Y ANDY ASSEMBLE NEW BLK2 PROGRAM BUGFULL BY DR. TERRY-THOMAS
R00341 *Y NAN ASSEMBLE NEW AGC SEGMENT PIZZA BY JOE & NEMO
R0035 Y LYNN ASSEMBLE NEW AGC4 SUBROUTINE INTPRET BY MUNTZ
R0036 Y YUL ASSEMBLE REVISION 15 OF AGC4 PROGRAM HIKE BY JFK
R00361 *Y YUL ASSEMBLE REVISION 1 OF AGC SEGMENT SPLITFEE BY DR. CROOK
R0037 Y NAN ASSEMBLE REVISION 112 OF BLK2 SUBROUTINE LEADON BY MACBETH
R0038 Y EXP ASSEMBLE VERSION NEWBUGGY BY SOMEBODY ELSE
R0039 S FROM REVISION 2 OF AGC4 PROGRAM BUGS BY BUNNY (REQUIRED WITH VERSION ASSEMBLY)
R00401 *Y LYNN ASSEMBLE VERSION NEWSEG BY NEW FELLER
R00402 *S FROM REVISION 0 OF SACO SEGMENT OLDSEG BY OLD FELLER (REQUIRED WITH VERSION ASSEMBLY)
R0041 Y ANDY ASSEMBLE VERSION PINBALL BY A. I. GREEN
R0042 S FROM REVISION 22 OF BLK2 SUBROUTINE BALLPEEN BY "POP" BUMPER (REQUIRED WITH VERSION ASSEMBLY)
R0044 Y 2NDF ASSEMBLE TRANSFERRED BLK2 PROGRAM DUSK BY NASA 2019999-099 (SEE TRANSFER VERB ON NEXT PAGE)
R0046 S FROM PICKYOURFILENAME (REQUIRED WITH TRANSFERRED ASSEMBLY)
R00471 *Y FROZ ASSEMBLE TRANSFERRED AGC4 SEGMENT TWILIGHT BY NASA 1021199
R00472 *S FROM DISCTWILIGHT (REQUIRED WITH TRANSFERRED ASSEMBLY)
R0048 Y YUL ASSEMBLE TRANSFERRED SACO SUBROUTINE DENTURES BY G. WASHINGTON
R0049 S FROM WASPARTOFAPROG (REQUIRED WITH TRANSFERRED ASSEMBLY)
R00501 S UPGRADE TO REVISION 123 (OPTIONAL WITH TRANSFERRED ASSEMBLY)
R0051 Y FROZ REPRINT REVISION 15 OF AGC4 PROGRAM HIKE BY JFK
R0052 S FOR PIERRE SALINGER (REQUIRED WITH REPRINT)
R00531 *Y NAN REPRINT NEW AGC SEGMENT CLIPPING BY XEROX
R00532 *S FOR DENNISON (REQUIRED WITH REPRINT)
R0054 Y YUL REPRINT REVISION 0 OF SACO SUBROUTINE CARIES BY TOOTH DECAY
R0055 S FOR NOYS E. BORING, D.D.S. (REQUIRED WITH REPRINT)
R00562 NOTES: "REPRINT" REGENERATES AN ASSEMBLY LISTING BY GOING THROUGH AN ENTIRE ASSEMBLY, BUT WITHOUT MAKING ANY
R00564 CHANGE TO THE PERMANENT RECORD OF THE PROGRAM OR SUBROUTINE. IT IS THE ONLY TASK THAT TAKES A "FOR WHOM" CARD.
R00566 *ANY OPERATION MAY BE DONE ON A FROZEN TAPE (FROZEYUL OR 2NDFROZE) EXCEPT "ASSEMBLE REVISION ..."
R0057 NON-ASSEMBLY DIRECTORS CLOSELY RELATED TO ASSEMBLY.
R0058 Y YUL DELETE REVISION 0 OF 3C PROGRAM BUGFULL BY DR. TERRY - THOMAS
R00581 *Y EXP DELETE REVISION 12 OF BLK2 SEGMENT BUGABOO BY SPOOK
R0059 Y LYNN DELETE REVISION 7 OF AGC4 SUBROUTINE BEDBUG BY SIMMONS
R00592 NOTE: A SUBROUTINE THAT HAS BEEN CALLED BY AN EXISTING PROGRAM CANNOT BE DELETED.
R0060 Y YUL CONTROL NEW SACO SUBROUTINE BICUSPID BY LEFTY CHOMP
R0061 S AUTHORIZED BY PERCIVAL Q. NIBBLE (REQUIRED WITH SUBROUTINE CONTROL)
R0063 Y NAN DECONTROL REVISION 256 OF BLK2 SUBROUTINE UNBRIDLE BY JIM ORGIES
R0064 S AUTHORIZED BY IMA NOH PURITAN (REQUIRED WITH SUBROUTINE DECONTROL)
R00652 NOTE: A CONTROLLED SUBROUTINE CANNOT BE EITHER REVISED OR DELETED. AS WITH REPRINT, THE SUBDIRECTOR IS NOT
R00654 CHECKED BEYOND THE FIRST WORD, BUT IS TYPED OUT FOR THE RECORD.
#Page 6
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 2 PAGE 3
P0066 EXAMPLES OF YUL DIRECTOR CARD TYPES CONCLUDED. ON THIS PAGE: NON-ASSEMBLY AND INTERNAL-USE DIRECTORS.
R00672 ------------------------------------------------------------------------------------------------------
R0068 *Y YUL MANUFACTURE REVISION 1 OF AGC PROGRAM SUNSET BY AS514 (SEE SECTION ON BLK3/AGC SUBDIRECTORS)
R00691 *Y ANDY MANUFACTURE NEW AGC SEGMENT ZOT BY JOHNNY HART
R0070 *NOTE: MANUFACTURING MAY BE DONE ONLY ON GOOD OR FAIR PROGRAM OR SEGMENT ASSEMBLIES. AN OLD REVISION CAN BE
R00702 *MANUFACTURED IF IT IS ON THE SAME 1800'S DISC.
R0071 Y LYNN PRINT REVISION 2 OF AGC4 PROGRAM BUGS BY BUNNY (PRINT CARD IMAGES ONLY, LIKE 407)
R0072 Y LYNN PUNCH REVISION 2 OF AGC4 PROGRAM BUGS BY BUNNY (PUNCH CARDS SUITABLE FOR ASSEMBLY
R0073 Y LYNN PRINT, PUNCH REVISION 2 OF AGC4 PROGRAM BUGS BY BUNNY INPUT; SEE BOTTOM OF PAGE 5)
R0074 Y LYNN PUNCH, PRINT REVISION 2 OF AGC4 PROGRAM BUGS BY BUNNY
R00741 *Y FROZ PUNCH, PRINT REVISION 0 OF BLK2 SEGMENT FRAMMIS BY DINGBAT
R0075 Y LYNN PRINT, PUNCH NEW AGC4 SUBROUTINE INTPRET BY MUNTZ (I.E., PRINT OR PUNCH OR BOTH ARE OK.)
R0077 Y NAN TRANSFER NEW BLK2 PROGRAM DUSK BY NASA 2019999-099 (WRITE CARD IMAGES ON DISC)
R0078 S AS PICKYOURFILENAME (REQUIRED WITH TRANSFER)
R00791 *Y ANDY TRANSFER REVISION 3 OF AGC SEGMENT TWILIGHT BY WAGNER
R00792 *S AS DISCTWILIGHT (REQUIRED WITH TRANSFER)
R0080 Y EXP TRANSFER REVISION 12 OF AGC4 SUBROUTINE LEADON BY TEASER
R0081 S AS SOMEOTHERNAME (REQUIRED WITH TRANSFER)
R0083 Y YUL TRANSFER, PRINT NEW SACO PROGRAM CHEWCHEW BY EL MASTICATOR (OR "PRINT, TRANSFER")
R0085 S AS WASPARTOFAPROG (REQUIRED WITH TRANSFER)
R00862 NOTE: THE FILE MADE BY TRANSFER DOES NOT COMPETE WITH BINARY-RECORD FILES FOR DISC SPACE. ITS NAME CAN HAVE
R00864 UP TO 16 CHARACTERS ON THE 1800, BUT ONLY 14 CHARACTERS ON THE 360.
R0087 Y NAN MESSAGE TYPE THIS MESSAGE TO THE OPERATOR
R0088 MAINTENANCE OF YUL SYSTEM SOFTWARE STATUS -- INTERNAL USE.
R0089 Y ANDY ADD NEW COMPUTER NAME BLK2 ("NEW", "NAME", AND "MOD" ARE OPTIONAL)
R0091 Y LYNN REMOVE OLD COMPUTER NAME MOD 3C ("OLD", "NAME", AND "MOD" ARE O6TIONAL)
R0093 Y YUL ASSEMBLY PASS 1 FOR 3C IS AVAILABLE ("IS" IS OPTIONAL)
R0095 Y EXP ASSEMBLY PASS 2 FOR MOD BLK2 CHECKED OUT
R0096 Y FROZ ASSEMBLY PASS 3 FOR MOD 3C IS OBSOLETE
R0097 Y ANDY MANUFACTURING FOR BLK2 IS AVAILABLE
R0100 Y YUL ASSEMBLY PASS 3 FOR AGC4 = ASSEMBLY PASS 3 FOR MOD 3C
R0101 Y LYNN MANUFACTURING FOR MOD 4A = MANUFACTURING FOR AGC4
R0103 OPERATOR OPTIONS.
R0104 Y CREATE BACKUP
R01041 Y CLOSE MONAIN TAPE
# Page 7
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 3 PAGE 4
P0105 OPTIONAL SUBDIRECTORS
R0106 ---------------------
R0107 PRINT CONTROL SUBDIRECTORS FOR USE IN "PRINT" (INCLUDING "TRANSFER, PRINT" AND "PUNCH, PRINT"), "REPRINT", OR
R0109 "ASSEMBLE" TASKS.
R0110 S PRINT 12 COPIES OF LISTING (LIMITS ARE 2 TO 63)
R0112 S PRINT 40 LINES PER PAGE (LIMITS ARE 10 TO 63, NORMAL IS 54)
R0114 NOTE: A COPIES REQUEST ASKS THE OPERATOR "WHAT PLY PAPER?" AND USES THE ANSWER TO MAKE AS MANY PRINTER RUNS
R0116 AS NECESSARY TO PROVIDE AT LEAST THE NUMBER OF COPIES REQUESTED. IN AN "ASSEMBLE" TASK, A BAD ASSEMBLY WILL CUT
R0118 OFF THE OUTPUT AFTER THE FIRST COMPLETE PRINTER RUN. NONE OF THIS IN ANY WAY AFFECTS MULTIPLE PRINTER RUNS ON
R0120 THE 2200 AS NOW PRACTICED FOR SUNDISK, SUNDANCE, AND COLOSSUS.
R0121 PRINT SUPPRESSION SUBDIRECTORS FOR USE IN "REPRINT" OR "ASSEMBLE" TASKS. THE "CONDITION" IS BAD ASSEMBLY.
R0123 S SUPPRESS INACTIVE SUBROUTINES
R0124 S SUPPRESS SYMBOL TABLE LISTING
R0125 S SUPPRESS OCTAL STORAGE MAP
R0126 S SUPPRESS CONDITIONALLY INACTIVE SUBROUTINES (EFFECTIVE AT FIRST FATAL CUSS)
R0128 S SUPPRESS CONDITIONALLY SYMBOL TABLE LISTING
R0129 S SUPPRESS CONDITIONALLY OCTAL STORAGE MAP
R0130 NOTE: REJECTED ASSEMBLY TURNS ON ALL SUPPRESSIONS AUTOMATICALLY. THERE ARE SOME EXCEPTIONS TO THE PRINT SUP-
R0132 PRESSION: IN INACTIVE SUBROUTINES, CUSSED LINES WITH THEIR CUSSES;
R0133 IN THE SYMBOL TABLE LISTING, UNHEALTHY SYMBOLS (ALL THOSE NOT DEFINED NORMALLY OR BY EQUALS);
# Note: in the line below the periods are actuall some kind of block character in the actual listing.
R0135 IN THE OCTAL STORAGE MAP, THE OCCURRENCE OF A CUSS (.REF, .SUM, .EOB) REVOKES THE SUPPRESSION SO THAT THE
R0137 LINE WITH THE CUSS AND THE REST OF THE OCTAL MAP ARE PRINTED.
R0138 THE EXCEPTION TO THE EXCEPTION IS THAT IN A REJECT, OCTAL MAP CUSSES ARE NOT DETECTED, COUNTED, OR PRINTED.
# Page 8
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 4 PAGE 5
P0140 OTHER SUBDIRECTORS FOR USE IN "ASSEMBLE" TASKS.
R0141 S RENUMBER CARDS
R0142 S FREEZE SUBROUTINES (PROGRAM ONLY)
R0144 S BEFORE SUBRNAME (SUBROUTINE ONLY)
R0146 S BEFORE ALL (SUBROUTINE ONLY)
R0148 S BEFORE END (SUBROUTINE ONLY)
R0150 NOTES: "RENUMBER" AFFECTS ALL THE CARDS OF THE MAIN PROGRAM OR SUBROUTINE, BUT NOT THOSE OF CALLED SUB-
R0152 ROUTINES. IT STARTS WITH 0001 AFTER EACH LOG CARD.
R0153 "FREEZE" CAUSES THE CARDS OF THE SUBROUTINES CALLED BY THE PROGRAM TO BECOME FULL-FLEDGED MEMBERS OF THE PRO-
R0155 GRAM, SO THAT THE SUBROUTINES MAY BE REVISED WITHOUT AGAIN AFFECTING THE PROGRAM. THE "SUBRO" CARDS ARE CON-
R0157 VERTED TO REMARKS.
R0158 "BEFORE" REQUESTS SPECIFY THE ORDER OF SUBROUTINES IN THE LIBRARY PORTION OF THE TAPE. THE SUBROUTINE BEING
R0160 ASSEMBLED MAY BE PLACED BEFORE A SPECIFIED SUBROUTINE FOR THE SAME COMPUTER, OR AT THE BEGINNING OR END. IF
R0162 NONE IS GIVEN, THE RULE IS:
R0163 REVISION . . . . . . . (AS IS)
R0164 NEW OR TRANSFERRED . . (BEFORE ALL)
R0165 VERSION. . . . . . . . (AFTER SOURCE)
R0166 SYMBOLIC CARD IMAGE SELECTION PROCESS FOR PRINT, PUNCH, AND TRANSFER
R0167 --------------------------------------------------------------------
R0168 IF DETAIL CARDS (MEANING ANYTHING NOT HAVING *, Y, OR S IN COLUMN 1) ARE INPUT TO A PRINT, PUNCH, OR TRANSFER
R0170 TASK, THEY WILL SELECT PARTS OF THE PROGRAM OR SUBROUTINE FOR OUTPUT. USUALLY, SUCH CARDS ARE LOG CARDS (L IN
R0172 COLUMN 1), SO THAT WHOLE LOG SECTIONS ARE OUTPUT. THE RULE IS: AS EACH DETAIL CARD ENTERS, THE SEL;ECTION
R0174 PROCESS SCANS FORWARD FROM WHEREVER IT IS IN THE PROGRAM OR SUBROUTINE, LOOKING FOR A MATCH BUT IGNORING COLUMN
R0176 8 AND (IF THE DETAIL CARD IS A LOG CARD) IGNORING COLUMNS 2-7. THEN OUTPUT IS TURNED ON, STARTING WITH THE
R0178 FOUND CARD, UNTIL THE NEXT LOG CARD IS FOUND. OUTPUT IS TURNED OFF JUST BEFORE THAT LOG CARD, AND THE NEXT
R0180 DETAIL CARD IS EXAMINED. DETAIL CARDS MUST FOLLOW SUBDIRECTORS, IF ANY.
# Page 9
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 5 PAGE 6
P0181 MANUFACTURING SUBDIRECTORS FOR BLK2 AND AGC4 ("TESTING" SERIES NOT INCLUDED)
R0182 --------------------------------------------
R0183 ONE AND ONLY ONE OF THE FOLLOWING PRIMARY SUBDIRECTORS MUST FOLLOW THE YUL DIRECTOR CARD:
R0185 S PUNCH 36K CORE ROPE SIMULATOR TAPE (A)
R0186 S PUNCH RAYTHEON WIRING TAPE (B) (AUTHOR NAME MUST BEGIN WITH "NASA")
R0188 S PUNCH RAYTHEON TESTER TAPE (B) (AUTHOR NAME MUST BEGIN WITH "NASA")
R0190 S PUNCH MASTER DECK (C)
R0191 S PUNCH SYMBOL TABLE (C)
R0192 *S PUNCH SYMBOL TABLE AND MASTER DECK (C)
R01921 *S PUNCH SIMULATION DECK (C) (SEGMENT MANUFACTURING ONLY)
R0193 S COPY ONTO WORKER (D) (NEXT TASK MUST BE MANUFACTURE/COMPARE)
R0194 S COMPARE PROGRAM PROGNAME FROM WORKER (D) (USE SAME PARAGRAPH CARDS AS COPY TASK)
R0196 OTHER SUBDIRECTORS MAY OCCUR IN ANY ORDER PROVIDED THAT THEY ALL FOPLLOW THE PRIMARY ONE. CLASSES (A), (B), AND
R0198 (D), ABOVE, REQUIRE EITHER
R0199 S PARAGRAPH ALL
R0200 OR ONE OR MORE OF THE FORM:
R0201 S PARAGRAPH 10 (PARAGRAPH NUMBERS IN OCTAL)
R0203 S PARAGRAPH 200 THRU 237
R0204 S PARAGRAPH 0 THROUGH 17
R0205 ERASABLE PARAGRAPHS (0-7) MAY NOT BE SPECIFIED FOR CLASS (B)
R0206 CLASSES (A) AND (B) MAY BE GIVEN ONE OF THE FOLLOWING:
R0207 S USE PINK OILED PAPER TAPE (ASSUMED IF NONE IS GIVEN)
R0209 S USE BLACK OILED PAPER TAPE
R0210 S USE BLUE MYLAR TAPE
R0211 S USE GREY FIBER TAPE
R0212 S USE GRAY FIBER TAPE
R0213 S USE ALUMINUM TAPE
R0214 CLASS (A) MAY INSTEAD BE GIVEN
R0215 S USE DIGITSTORE TAPE
R0216 S USE DIGISTOR TAPE
R0217 THIS LAST IS INCREMENTALLY RECORDED MAGNETIC TAPE. TO POINT OUT THAT IT IS WRITTEN, NOT PUNCHED, IS TO PICK ONE
R0219 (1) NIT.
R0220 CLASS (B) REQUIRES ONE SUBDIRECTGOR OF THE FORM
R0221 S MODULE DECK NUMBERS 00251 00262 00273 00284 00295 00306
R0222 WHERE THERE ARE 1 TO 6 GROUPS WRITTEN AS NNNNM. EACH NNNN IS A MODULE DECK NUMBER, OBTAINED FROM ART LAPOINTE,
R0224 AND EACH M IS A CORE ROPE MODULE NUMBER. THAT IS, NNNN IDENTIFIES THE MODULE, AND M SHOWS WHERE TO PLUG IT IN.
R0226 THIS CARD MUST BE CONSISTENT WITH THE PARAGRAPH REQUESTS.
# Page 10
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 6 PAGE 7
P0227 CARD MERGING PROCESS USED IN "ASSEMBLE REVISION", "ASSEMBLE VERSION", AND "ASSEMBLE TRANSFERRED"
R0229 ------------------------------------------------------------------------------------------------
R0231 THESE THREE ASSEMBLY TYPES MUST MERGE A SET OF INCOMING CARDS WITH A PRE-EXISTING PROGRAM OR SUBROUTINE
R0233 FILE ON A YUL TAPE OR, IN THE CASE OF "ASSEMBLE TRANSFERRED", ON THE DISC. THE MERGING IS CONTROLLED BY THE
R0235 CARD NUMBERS AS FAR AS POSSIBLE, BUT SOME SPECIAL CARD TYPES, SUCH AS "DELETE", ARE ALSO NEEDED; THESE ARE
R0237 CALLED "MERGE CONTROL CARDS". THE DISTINCTION IS THAT MERGE CONTROL CARDS DO NOT REMAIN IN THE PROGRAM; THEY
R0239 MAY APPEAR ONCE IN A LISTING AND THEN DISAPPEAR.
R0240 MERGING IS STRICTLY UNIDIRECTIONAL, LIKE THE MERGING OF TRAFFIC ON A SUPERHIGHWAY WITH TRAFFIC ENTERING
R0242 FROM AN "ON RAMP". ONCE A CARD IS ACCEPTED INTO THE ASSEMBLY, WHETHER FROM THE PRE-EXISTING FILE OR FROM THE
R0244 INPUT, IT CANNOT AGAIN AFFECT THE MERGING PROCESS OR BE AFFECTED BY IT (THOUGH IT MIGHT BE RENUMBERED IN ACCORD-
R0246 ANCE WITH AN EARLIER REQUEST). IN THE FOLLOWING PARAGRAPHS I SHALL SAY SOMETHING ABOUT THE MORE DIFIFCULT OR
R0248 CONFUSING ASPECTS OF MERGING AND SKIM OVER THE EASY PARTS.
R0249 SEQUENCE BREAKS
R0250 MOST YUL PROGRAMS CONSIST OF SEVERAL SETS OF CARDS WITH ASCENDING SEQUENCES OF CARD NUMBERS, SEPARATED
R0252 BY LOG CARDS (IDENTIFIED BY "L" IN COLUMN 1), OR MORE RARELY, BY CARDS WITH "SEQBRK" OR "999999" IN THE CARD
R0254 NUMBER FIELD. THESE SEPARATORS ARE KNOWN COLLECTIVELY AS "SEQUENCE BREAKS" BECAUSE THEY PRESENT A CARD NUMBER
R0256 VALUE OF 999999 TO THE MERGING PROCESS BEFORE BEING ACCEPTED INTO THE ASSEMBLY, BUT A VALUE OF 000000 AFTER
R0258 BEING ACCEPTED. AN INCOMING SEQUENCE BREAK WILL REPLACE A PRE-EXISTING SEQUENCE BREAK JUST AS ANY INCOMING PRO-
R0260 GRAM CARD WILL REPLACE A LIKE-NUMBERED CARD.
R0261 ACCEPTOR CARDS
R0262 THE MOST FREQUENTLY USED MERGE CONTROL CARD IS IDENTIFIED BY "*" IN COLUMN 1. IT IS PROPERLY CALLED AN
R0264 "ACCEPTOR" CARD, BUT IS POPULARLY KNOWN AS AN "=LOG CARD" OR, CONFUSINGLY, AS A "LOG CARD". THE SIGNIFICANCE OF
R0266 THE "=" IS: GO FIND A CARD EQUAL TO THIS ACCEPTOR CARD AND ACCEPT IT INTO THE ASSEMBLY WITHOUT CHANGE, ALSO AC-
R0268 CEPTING ALL CARDS PASSED OVER IN THE SEARCH. NOW, WHAT DOES IT MEAN TO SAY THAT ONE CARD IS EQUAL TO ANOTHER?
R0270 EQUALITY OF CARD NUMBERS IS NOT ALWAYS ENOUGH, BECAUSE MOST YUL PROGRAMS HAVE SEVERAL SEQUENCES OF CARD NUMBERS.
R0272 WE USE A STRONGER EQUALITY, OF BOTH CARD NUMBER AND TEXT (COLUMNS 9-80). FINE SO FAR, BUT LOG CARDS HAVE NO
R0274 CARD NUMBERS (BY DEFINITION), SO WHAT DO WE WRITE TO ACCEPT A LOG CARD? WE SAY EXPLICITLY THAT WE WANT A LOG
R0276 CARD, BY PUNCHING "LOG" IN THE CARD NUMBER FIELD, AND THEN SPECIFY WHICH LOG CARD BY PUNCHING THE TEXT AS WELL.
R0278 HENCE THE FAMILIAR "=LOG" CARD, WHOSE FUNCTION IS TO SCAN THROUGH ANY NUMBER OF LOG SECTIONS IN SEARCH OF A PAR-
R0280 TICULAR LOG CARD--A JOB THAT COULD NOT BE DONE BY A SEARCH BASED ON CARD NUMBER ALONE.
R0282 THE ACCEPTOR CARD IS THE ONLY CARD TYPE THAT IS NOT PRINTED IN THE ASSEMBLY LISTING; INSTEAD IT MARKS
R0284 THE FOUND CARD WITH "@" IN COLUMN 8, THUS CALLING ATTENTION TO THE SAME INFORMATION AS THAT ON THE ACCEPTOR
R0286 CARD. IT IS POSSIBLE TO ACCEPT A NON-LOG CARD BY USING THE CARD NUMBER AND THE TEXT, BUT NOBODY EVER DOES.
R02871 INSERTION CARDS
R02872 ANOTHER TYPE OF MERGE CONTROL CARD THAT SHOULD BECOME POPULAR HAS THE OP CODE "INSERT". IF IT IS USED TO
R02873 INSERT ANY NUMBER OF UNNUMBERED OR ILL-NUMBERED CARDS (EVEN SEVERAL LOG SECTIONS IF DESIRED) IN ONE PLACE, E.G.:
02874 1234 BEGIN INSERT (TURNS ON RENUMBERING, STARTING WITH
02875 (. . . NEW CARDS . . .) 1234 IF IT HAD BEEN OFF)
02876 END INSERT (RENUMBERING STAYS TO END OF LOG SECT)
02877 123456 BEGIN INSERT WITH 1235 (OTHERWISE NEW NUMBERS WOULD BE 123456, 123556, 123656, ..., XXXX56).
# Page 11
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 7 PAGE 8
P0288 PARTIAL RENUMBERING
R0289 THE OP CODE "CARDNO" WAS DEVELOPED TO ALLOW A SINGLE CARD NUMBER TO BE CHANGED, AND THE PLURAL FORM
R0291 "CARDNS" EXTENDS THE RENUMBERING TO THE END OF THE LOG SECTION, EVEN RENUMBERING NON-LOG SEQUENCE BREAKS AS IT
R0293 GOES. THE NEW NUMBERS GO UP BY 0001 FOR EACH CARD. TO RENUMBER A WHOLE LOG SECTION WHOSE FIRST CARD IS 0001:
0295 *LOG NAME OF LOG SECTION
0296 0001 CHANGE CARDNS TO 1
R0297 THE RENUMBERING MAY BE RESTARTED SEVERAL TIMES, BUT IT WILL NOT STOP UNTIL IT FINDS THE NEXT LOG CARD, OR UNTIL
R02981 IT'S TURNED OFF BY A "PRESERVE CARDNS" CARD.
0299 *LOG NAME OF LOG SECTION
0300 0001 CHANGE CARDNS TO 1
0301 2000 CHANGE CARDNS TO 2000
0302 4000 CHANGE CARDNS TO 5000
0303 6000 PRESERVE CARDNS (REJECTS IF RENUMBERING HAD PASSED 6000)
R0304 MANIPULATION OF WHOLE LOG SECTIONS
R0305 TO DELETE A LOG SECTION WHOSE LAST CARD IS NUMBERED 12341
0306 *LOG NAME OF PRECEDING LOG SECTION
0307 SEQBRK DELETE THROUGH 1234
R0308 TO ADD A NEW LOG SECTION AFTER ANY EXISTING ONE:
0309 *LOG NAME OF PRECEDING LOG SECTION (OMIT IF NEW SECTION WILL BE FIRST SEC)
0311 T NAME OF NEW LOG SECTION ("T" CARD IS MERGED JUST AHEAD OF A SEQ-
0313 (0001 ETC... CARDS OF NEW LOG SECTION) UENCE BREAK AND THEN BECOMES "L" CARD)
R0314 TO COMBINE TWO ADJACENT LOG SECTIONS:
0315 *LOG NAME OF FIRST LOG SECTION
03155 0001 CHANGE CARDNS TO 1
0316 PSEQBRK NAME OF SECOND LOG SECTION (REPLACES LOG CARD)
R0321 TO SPLIT A LOG SECTION
0322 *LOG NAME OF LOG SECTION
0323 123499 BEGIN INSERT
0324 L NAME OF NEW LOG SECTION
0325 END INSERT
R0326 TO CHANGE THE NAME OF A LOG SECTION:
0327 *LOG NAME OF PRECEDING LOG SECTION
0328 L NEW NAME OF LOG SECTION (NEW LOG CARD REPLACES OLD ONE)
R03281 THERE IS NEVER ANY NEED FOR TWO "=LOG" CARDS WITH THE SANE TEXT IN AN INPUT DECK, UNLESS FOR SOME QUEER REASON
R03283 THERE ARE TWO LOG SECTIONS WITH THE SAME NAME. ONCE THE MERGING HAS ENTERED A LOG SECTION, YOU CANNOT ACCEPT
R03285 ITS LOG CARD AGAIN--THAT WOULD INVOLVE GOING BACKWARDS, WHICH YUL MERGING NEVER DOES. FOR EXAMPLE, THERE COULD
R03287 BE A CARD BETWEEN THE "LOG" AND THE "T", ABOVE, SAYING SOMETHING LIKE " 0123 CA POSMAX ".
# Page 12
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 8 PAGE 9
P0329 REJECTED ASSEMBLY (BAD MERGE)
R0330 WHEN THE MERGING PROCESS IS UNABLE TO FOLLOW THE PROGRAMMER'S DIRECTIONS EXACTLY, IT ABANDONS ANY AT-
R0332 TEMPT TO CONTINUE MERGING, AND PROTECTS THE FILE, THUS REVOKING THE TENTATIVE MERGING UP TO THE POINT OF REJEC-
R0334 TION. THE PRINTED OUTPUT SHOWS THE EFFECT ON THE PROGRAM OR SUBROUTINE OF THE TEMPORARILY MERGED CARDS.
R0336 REJECTION IS GENERALLY CAUSED BY:
R0337 (1) INPUT CARD NUMBERS OUT OF SEQUENCE (BUT NOTE THAT SEQUENCES LIKE
R0339 0123 DELETE
R0340 012201 CA ZERO
R0341 CAN BE LEGAL BECAUSE THE SECOND CARD'S NUMBER IS TESTED AFTER THE DELETION IS DONE).
R0343 (2) ATTEMPT TO DELETE OR RENUMBER A NON-EXISTENT CARD.
R0344 (3) MIS-SPELLED OR MIS-PUNCHED TEXT IN AN ACCEPTOR CARD. OR
R0345 (4) ILLEGAL FORMAT IN A MERGE CONTROL CARD.
R0346 THE INPUT CARDS THAT COME AFTER THE REJECTION ARE LISTED AND THEIR CARD NUMBER SEQUENCE IS CHECKED, ALLOWING FOR
R0348 THE EXCEPTION IN (1).
R0349 THERE IS A WAY TO GET ILL-ORDERED CARD NUMBERS WITHOUT A REJECT: BY CHANGING A CARD NUMBER TO A VALUE
R0351 SMALLER THAN ITS PREDECESSOR. TO RECOVER FROM SUCH CASES, THE FOLLOWING FORMS ARE PROVIDED:
0353 0123 OUTOFSEQ DELETE
0354 0123 OUTOFSEQ DELETE THRU 0133
0355 0123 CORRECT CARDNO TO 132
0356 0123 CORRECT CARDNS TO 132
R0357 THE SPECIAL FORMS ARE NEEDED TO MAKE THE MERGING PROCESS SEEK AN ILL-ORDERED CARD WITH THE DESIRED NUMBER, POSS-
R0359 IBLY IGNORING A WELL-ORDERED CARD WITH THE SAME NUMBER ON THE WAY.
# Page 13
# @A YUL PROGRAMMER'S DIGEST USER'S OWN PAGE NO. 9 PAGE 10
P0360 THE GREAT BIG BAD SECRET
R0361 ------------------------
R0362 THE TIME HAS COME TO UNSCREW THE INSCRUTABLE, EFFECTUATE THE INEFFABLE, UNPACK THE IMPECCABLE
R0364 REDUNDANTLY RAVISHING REDOLENT RIDDLE, TO WIT: HOW DIFFERS SUPERB FROM GOOD? ... AND REVEAL THE RELATED
R0366 IRRELEVANT RODOMONTADE. IT IS WITH A SOLEMN SENSE OF THE DISGRACEFUL DEGRADATION IT WILL IMPOSE ON MY JOB
R0368 SECURITY THAT I DO THIS, BUT IF THE NASCENT NEUROSES FORMING AROUND THIS QUESTION ARE ALLOWED TO ESCALATE INTO
R0370 PSORIATIC PSYCHOSES... WELL, IT JUST WON'T DO, THAT'S ALL.
R0371 BASICALLY, THE SCHEME IS QUITE SIMPLE, IF JUST A SHADE OBSCURE. REJECTED ASSEMBLIES YOU KNOW ABOUT,
R0373 AND SUBROUTINES ARE NEVER RATED FOR QUALITY. PROGRAM ASSEMBLIES ARE RATED ACCORDING TO THE ORDER OF MAGNITUDE
R0375 OF THE NUMBER OF CUSSED LINES, AND A PSEUDO-RANDOM VARIABLE. FOR MOST CASES, THERE ARE TWO LISTS OF WORDS. ONE
R0377 LIST IS CHOSEN AT THE BEGINNING OF PASS 3, IN A PSEUDO-RANDOM WAY.
R0378 LIST 1 LIST 2 QUALITY
R0379 ------ ------ -------
R0380 GOOD SUPERB NO CUSSES
R0381 FAIR SO-SO ANY NUMBER OF NON-FATAL CUSSES
R0382 BAD DISMAL 1 OR 2 CUSSED LINES
R0383 LOUSY AWFUL 3 TO 9 CUSSED LINES
R0384 ROTTEN VILE 10 TO 99 CUSSED LINES
R0385 BILIOUS PUTRID 100 TO 999 CUSSED LINES
R0386 AT THE END OF THE ASSEMBLY, THE APPROPRIATE WORD FROM THE SELECTED LIST IS TYPED OUT IN THIS FORM:
R0388 LOUSY ASSEMBLY; FILED ON DISC
R0389 IF THERE ARE 1000 OR MORE CUSSED LINES, INCLUDING SOME FATAL CUSSES, THE YUL SYSTEM IS AT A LOSS FOR WORDS, AND
R0391 SIMPLY TYPES
R0392 YUCCCHHHH
R0393 NOW ABOUT THAT PSEUDO-RANDOM VARIABLE: IT IS COMPUTED BY A SINGLE EXCLUSIVE-OR INSTRUCTION FROM THE
R0395 PAGE NUMBER OF THE LAST PAGE WITH PROGRAM CODING ON IT (THAT IS, THE LAST PAGE BEFORE THE SYMBOL TABLE LISTING)
R0397 AND THE FIRST AVAILABLE ADDRESS IN THE SYMBOL TABLE. THE LATTER IS EQUIVALENT TO THE NUMBER OF H-1800 WORDS IN
R0399 THE SYMBOL TABLE, BECAUSE THE VARIABLE IS THE SECOND BIT FROM THE RIGHT IN THAT EXCLUSIVE-OR RESULT. IF THE BIT
R0401 IS ZERO, LIST 2 IS SELECTED. THE NUMBER OF WORDS IN THE SYMBOL TABLE IS 3(SYMS+MULTDEFS+SUBROS+COUNTS+1), WHERE
R0403 SYMS = NUMBER OF SYMBOLS AS SHOWN IN THE SYMBOL TABLE SUMMARY.
R0404 MULTDEFS = NUMBER OF MULTIPLY DEFINED SYMBOLS, NOT AS IN THE SYMBOL TABLE SUMMARY, BUT SUCH THAT A SYMBOL
R0406 DEFINED N TIMES CONTRIBUTED N UNITS TO SYMS AND ONE UNIT TO MULTDEFS.
R0408 SUBROS = NUMBER OF SUBROUTINES CALLED, AND
R0409 COUNTS = NUMBER OF ROUTINES WHOSE WORDS ARE COUNTED.
R0411 I GUESS I SHOULD HAVE EXPLAINED HERE THAT THE PAGE NUMBER IS IN BINARY CODED DECIMAL. SO THE PART OF IT THAT
R0413 ENTERS THE EXCLUSIVE-OR IS A BIT IN THE UNITS DIGIT. THE NUMBER OF WORDS IN THE SYMBOL TABLE IS KEPT IN BINARY.
R0415 TO VERIFY THE LIST CHOICE, COMPUTE THE SYMBOL TABLE SIZE IN DECIMAL AND CONVERT THAT NUMBER TO OCTAL. NOW IF
R0417 THE UNITS DIGIT OF THE OCTAL NUMBER BELONGS TO THE SET (2,3,6,7) AND THE UNITS DIGIT OF THE PAGE NUMBER DOES
R0419 NOT, OR VICE VERSA, LIST 1 IS CHOSEN; IF BOTH DIGITS BELONG OR NEITHER BELONGS, LIST 2 IS CHOSEN.