YUL_SYSTEM_SIMULATORS_--_AGC4.argus
# Copyright: Public domain.
# Filename: YUL_SYSTEM_SIMULATORS_--_AGC4.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: 672-700
# Mod history: 2016-10-06 JL Created.
# 2017-02-04 JL Transcribed pages 672-682.
# 2017-02-05 JL Transcribed pages 683-691.
# 2017-02-06 JL Transcribed pages 692-700.
# 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 @YUL SYSTEM SIMULATORS -- AGC4
# Page 672
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 1 PAGE 1
# (jl) Annotation: this page (and probably the whole log section) is marked "FOR REFERENCE ONLY".
R0001 WE ARE DEEPLY INDEBTED TO THE ONE, THE ONLY, THE GREAT JOHN SHAW FOR THE FOLLOWING STRONG MAGIC....
R0003 JSOCTL
0004 SETLOC,1 0 B4
0005 MASKGRP,1 S,1 F,1
R0006 THIS PROGRAM IS LOADED BY YUL PASS 0 IN RESPONSE TO A YUL DIRECTOR CARD CORRECTLY SPECIFYING A SIMU-
R0008 LATION RUN FOR AGC4. WHEN MISCGA SIMULATION IS DESIRED, THE VERB ON THE DIRECTOR CARD IS "ETALIMUS". MISCGA 1
R0010 AND MISCGA 2 ARE THE CREATIONS OF CHARLES "MADMAN" MUNTZ, WHO DERIVED THE NAME BY SPELLING "AGCSIM" BACKWARDS.
R0012 AT PRESENT, THIS PROGRAM RESPONDS ONLY TO THE VERB "ETALIMUS", AND INCORPORATES MISCGA 2. A PROGRAM DEFINED FOR
R0014 LOCATIONS 0000-7777 (FIRST SWITCHABLE BANK ONLY) CAN BE SIMULATED, PROVIDED THAT NO USE OF INPUT-OUTPUT OR OF
R0016 PROGRAM INTERRUPT IS REQUIRED. ALSO, CERTAIN CASES OF ADDRESSING CENTRAL REGISTERS MAY NOT WORK. EVERY INSTRU-
R0018 CTION SIMULATED IS TRACED IN PRINT, EXCEPT AS MODIFIED BY TRACE ON/OFF SUBDIRECTORS (SEE BELOW). THE RUN IS
R0019 TERMINATED BY ANY OF THE FOLLOWING OCCURRENCES:
R0020 EXECUTION OF AN ILLEGAL OPERATION CODE,
R0021 A CCS ADDRESS IN FIXED MEMORY,
R0022 DIVIDE OVERFLOW,
R0023 DETECTION OF AN INFINITE LOOP (UP TO ABOUT 300 INSTRUCTIONS IN LENGTH),
R0024 EXCEEDING THE PRESET PRINT LIMIT,
R0025 OVERFLOW OUT OF THE TIME3 REGISTER, OR
R0026 ABORT BY THE OPERATOR, USING FB9 (B = FIRST SIDE-GROUP).
R0027 THE SUBDIRECTORS USED WITH MISCGA 2 ARE:
R0028 S START AT NNNN (NNNN OCTAL, 1 TO 4 DIGITS). THIS CARD IS REQUIRED, AND MUST BE FIRST.
R0030 S PRINT LIMIT = DDDDD (DDDDD DECIMAL, 1 TO 5 DIGITS. "=" OPTIONAL). THIS CARD IS OPTIONAL. IF
R0032 IT IS LACKING OR INVALID, THE PRINT LIMIT IS 5000 LINES.
R00331 S TRACE ON NNNN TURN ON TRACE JUST BEFORE C(NNNN) IS EXECUTED.
R00332 S TRACE OFF NNNN TURN OFF TRACE JUST AFTER C(NNNN) IS EXECUTED.
R00333 S TRACE ON R:NNNN TURN TRACE ON JUST BEFORE NNNN IS REFERRED TO.
R00334 S TRACE OFF R:NNNN TURN TRACE OFF JUST AFTER NNNN IS REFERRED TO.
R00335 ANY NUMBER OF TRACE ON/OFF SUBDIRECTORS MAY BE SUBMITTED, PROVIDED THAT
R00336 THEY SPECIFY UNIQUE OCTAL ADDRESSES NNNN.
0034 AGC4 SIMU TS BANK 1 Z,X0 WHAT SUBD THIS INSTRUCTION IS AT BASE ADDRESS.
R0036 MAIN BODY OF PROGRAM FOLLOWS CONSTANTS, ETC.
# Page 673
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 2 PAGE 2
P0037 FIELD AND SHIFT MASKS.
0038 B,B3TB12 OCT -7774
0039 B,CHAR1 OCT 77
0040 B,CHAR6 OCT -77 0000
00401 B,CHAR7 OCT -7700
0041 B,CHAR8 OCT -77
0042 B,EFLAG OCT 00001
0043 B,EDITFLG OCT 00002
0044 B,LPFLAG OCT 00004
0045 B,FLAGS OCT 00007
0046 B,C7T8 OCT -7777
0047 B,CAC3 DEC -GGGG
0048 B,SIGN OCT -100000
00489 B,CHANGMSK OCT 3
0049 B,DCHECK OCT 6060 6060 6060 6060
P0050 FURTHER SHIFT MASKS.
0051 S,D12 DEC -G
0052 S,C1T3 OCT 777777
00522 S, ACO6 OCT -70000
0053 S,ACO8 OCT -7
0054 S,ACH7 OCT -1700
0055 S,MSK5 OCT -700000000
0056 S,MSK4 OCT -7000000
0057 S,MSK3 OCT -70000
0058 S,MSK2 OCT -700
0059 S,ONE OCT -1
0060 S,THREE OCT -3
0061 S,LOW14 OCT -37777
0062 S,LOW15 OCT -77777
0063 S,CAC1 DEC GGGG
0064 S,CAC2 DEC 0000 GGGG
0065 S,ONES DEC GGGG GGGG GGGG
0066 S,US OCT -40000
0067 S,DVMSK OCT 037777
# Page 674
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 3 PAGE 3
P0068 RESERVATIONS.
0069 T1 RESERVE 1
0070 T2 RESERVE 1
0071 T3 RESERVE 1
0072 T4 RESERVE 1
0073 INSTR RESERVE 1
0074 INSTR2 RESERVE 1
0075 DBEF RESERVE 1
0076 DATA RESERVE 1
0077 LOCATION RESERVE 1
0078 ZDECR RESERVE 1
0079 NEW Z RESERVE 1
0080 EDIT WD RESERVE 1
0081 PAT PTR RESERVE 1
R0083 ADDRESS CONSTANTS.
0084 BANK 1 SPEC,B1 DAMN ZERO
0085 BANK 2 SPEC,B2 DAMN ZERO
0086 BANK 8 SPEC,B8 DAMN ZERO
0087 BANK 5 SPEC,B5 DAMN ZERO
0088 BANK8 M3 SPEC,B7 2045
0089 SPEC 1777 SPEC,B2 1023
0090 L SIXES SPEC SIXES
0091 OP ALF SPEC OP ALF T
0092 PRIN SPEX SPEC LINE +3
0093 SPEC NEXT LINE +3
0094 SPEC NEXT LINE +9
0095 SPEC LINE +9
0096 IN PTR SPEC MASK LOC +64
0097 OUT PTR SPEC MASK LOC +64
00971 LAST PTR SPEC MASK LOC +64
0098 L STD PLIM SPEC UNRC SUBD +1
0099 L GOGO P1 SPEC CONTINUE +1
00991 L RECYCLE SPEC RECYCLE
00992 L TRON OFF SPEC TR ON OFF
0100 DEC 853 SPEC,B0 853
01008 PHI WAA SPEC,B7 600
0101 AGC4 MSKS MASKBASE S,1 F,1
# Page 675
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 4 PAGE 4
P0102 ALPHABETIC CONSTANTS -- FIRST OF FOUR PAGES.
0103 W SUBDIRC ALF,2 SUBDIRECTOR:
0104 W START ALF START
0105 W AT ALF AT
0106 START MSG ALF,2 START AT
0107 W PRINT ALF PRINT
0108 W LIMIT ALF LIMIT
0109 ALF 5000 ALF 5000
0110 PLIM MSG ALF,3 PRINT LIMIT =
0111 2 LONS MSG ALF,3 START ADDRESS TOO LONG
0112 UNOCS MSG ALF,3 START ADDRESS NOT OCTAL
0113 2 LONP MSG ALF,3 PRINT LIMIT TOO LONG
0114 UNDPL MSG ALF,3 PRINT LIMIT NOT DECIMAL
0116 NO PAL MSG ALF,3 NO PARAGRAPHS LOADED
0117 EMRGY MSG ALF,4 IN EMERGENCY, ABORT TASK BY F79
0118 PAGE 1 ALF PAGE 1
0119 SIMU HEAD OCT 0024
0120 ALF,5 YUL SYSTEM (MISCGA 2) FOR AGC4:
0121 ALF,5
0122 ALF,5
# Page 676
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 5 PAGE 5
P0123 ALPHABETIC CONSTANTS -- SECOND OF FOUR PAGES.
0124 SUBHEAD OCT 0002
0125 ALF,5 LOC OP ADDR A B(X)
0126 ALF,5 A(X) LP Q OVCTR T3
0127 ALF,5
0128 OCT 4
0129 LINE ALF,5
0130 ALF,5
0131 ALF,5
0132 OP ALF 1 ALF,4 TC CCS INDEX XCH
0133 ALF,4
0134 ALF,4 MP DV SU
0135 ALF,4 CS TS AD MASK
# Page 677
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 6 PAGE 6
P0136 ALPHABETIC CONSTANTS -- THIRD OF FOUR PAGES.
0137 SP1 OCT 0001
0138 NEXT LINE ALF,5
0139 ALF,5
0140 ALF,5
01401 RESERVE 7 USED IN DITTO PROCEDURE.
01403 W TRACE ALF TRACE
01404 W ON ALF ON
01405 W OFF ALF OFF
01406 W R ALF R
0141 BLANK 1T3 ALF 00000
0142 BLANK 1T4 ALF 0000
0143 OVF BLOT ALF ▪00000
01431 ZERO C6 ALF 0
0144 DITTO ALF "
0145 DEC -5000
0146 PRINT LIM DEC -5000
0147 SKIP OCT 4
0148 BLANKS ALF
01488 W CUT OFF ALF CUT OFF
0149 W ILLEGOP ALF ILLEGOP
0150 W LOOPING ALF LOOPING
0151 W PRNT MAX ALF PRINTMAX
01519 W INF LOOP ALF,2 INFINITE LOOP
015199 CAUSE ALF,2 00000000
0152 T DUMP MSG ALF,5 TERMINAL DUMP OF ERASABLE MEMORY FOLLOWS
0153 END SI MSG ALF,2 END SIMULATION
# Page 678
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 7 PAGE 7
P015301 ALPHABETIC CONSTANTS -- FOURTH OF FOUR PAGES.
015302 2 LONT MSG ALF,4 TRACE ON/OFF ADDRESS TOO LONG
015303 UNOTR MSG ALF,4 TRACE ON/OFF ADDRESS NOT OCTAL
015304 DUPTR MSG ALF,4 TRACE ON/OFF ADDRESS DUPLICATED
015305 OMIT MSG ALF,5 TRACE OFF FOR INSTRUCTIONS
015306 W CORONER ALF,2 CORONER'S REPORT
# Page 679
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 8 PAGE 8
P0154 NUMERIC CONSTANTS.
0155 ZERO OCT 0
0156 TWO OCT -2
0157 FOUR OCT -4
0158 EIGHT DEC -8
01581 TWEVLE FXBIN -12
0160 FIFTY FXBIN -50
0161 C65 FXBIN -65
0162 DEC 852 FXBIN -852
0163 2K OCT -2000
0164 5 C6 OCT -5 0000
0165 6 C6 OCT -6 0000
0167 SIXES OCT 06, 06, 0606, 060606, 0606 0606
0168 OCT 0606 0606 06
0169 SP3 OCT 0003
0170 NEG ONE OCT -177776
0171 BIT 14 OCT -20000
0172 SIGN CLIP DEC 0GGG GGGG
0173 BANK MASK OCT -36000
0174 EDIT PREF OCT -20
0175 GENERASE OCT -25
0176 L BANK REG OCT -15
0177 START ADR OCT 0
0179 HOLD LINE DEC GGGG GGGG GGGG,-1, 0
0180 LINE CNT FXBIN -51
0181 TASK LINS DEC 0
0182 PAGE NO DEC -1
01821 TRACE OFF DEC 0
01822 LOC FLAG OCT 2
01823 ON OCT 3
01824 OFF OCT 5
01825 B1B2 OCT 6
# Page 680
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 9 PAGE 9
P0183 ASSIGNMENTS.
01831 PAGE HEAD ASSIGN 0,20
0184 YUL TYPER ASSIGN 0,63
0185 RD SBDIRC ASSIGN 0,65
0186 HOWZAT ASSIGN 0,66
0187 IGN SUBDR ASSIGN 0,68
0188 UNRC SBDR ASSIGN 0,69
0189 E SYLT OK ASSIGN 0,70
0190 FETCH SS ASSIGN 0,71
0191 MANUF RTN ASSIGN 0,76
0192 YUL MASKS ASSIGN 0,77
0193 OCTAL 20 ASSIGN 0,78
0194 WHODUNIT ASSIGN 0,80
0195 TYP ABORT ASSIGN 0,89
0196 L OBJC MSG ASSIGN 0,90
01961 RJEC SUBD ASSIGN 0,91
01962 DEPAGIN8 ASSIGN 0,101
01963 YUL D2A ZS ASSIGN 0,119
0197 A ASSIGN 4,0
0198 Q ASSIGN 4,1
0199 Z ASSIGN 4,2
0200 LP ASSIGN 4,3
0201 BANKREG ASSIGN 4,13
0202 CYR ASSIGN 4,16
0203 SR ASSIGN 4,17
0204 CYL ASSIGN 4,18
0205 SL ASSIGN 4,19
0206 OVCTR ASSIGN 4,28
0207 TIME1 ASSIGN 4,29
0208 TIME2 ASSIGN 4,30
0209 TIME3 ASSIGN 4,31
0210 MON TAPE ASSIGN 7,1
0211 EOR ASSIGN 7,4
0212 MON PRINT ASSIGN 7,23
0213 MON A2D ASSIGN 7,41
0214 MON WAKE ASSIGN 7,99
0215 MON SLEEP ASSIGN 7,166
# Page 681
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 10 PAGE 10
P0217 EQUIVALENCES.
0218 DAMN ZERO EQUALS 0
0219 AA EQUALS 128
0220 AMTF EQUALS 384
02201 SPRA EQUALS 128
0221 SP2 EQUALS SUBHEAD
0222 OCT 7 EQUALS ACO8
0223 LOW2 EQUALS THREE
0224 LOW4 EQUALS D12
0225 LOW12 EQUALS C7T8
# (jl) Note: The following two cards seem to specify the same equivalence. Does the assembler ignore
# multiple identical equivalences?
0226 16 ONES EQUALS CAC3
0227 16 ONES EQUALS CAC3
0228 E BIT EQUALS E FLAG
0229 LP BIT EQUALS LP FLAG
02291 LOW 16 EQUALS CAC3
0230 SPEC ZERO EQUALS SIGN
0231 POINTERS EQUALS IN PTR
# Page 682
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 11 PAGE 11
P0232 TWO PRIMARY SUBDIRECTORS ARE RECOGNIZED FOR USE WITH MISCGA. THE FIRST, WHICH IS REQUIRED, SPECIFIES
R0234 THE STARTING ADDRESS BY "START AT NNNN", WHERE NNNN IS FROM 1 TO 4 OCTAL DIGITS. THE SECOND IS OPTIONAL AND
R0236 SPECIFIES A PRINT LINE LIMIT BY "PRINT LIMIT = DDDDD" (THE "=" IS OPTIONAL, AND "DDDDD" IS FROM 1 TO 5 DECIMAL
R0238 DIGITS). IF THE PRINT LIMIT SUBDIRECTOR IS MISSING OR INVALID, THE PRINT LIMIT IS 5000 LINES.
0240 WHAT SUBD TX YUL MASKS - Z,MXR
0241 S,YUL TYPER W SUBDIRC AA+2 C,+1 TYPE "SUBDIRECTOR:".
0243 WA Z,X6 OCTAL 20 Z,X5
0244 SUSPECT TX Z,X5 - WHODUNIT
0245 NA N,X5,3 W START HOWZAT "START" IS REQUIRED.
0247 TS AGC4 MSKS Z,MXR C,-2 C
0248 NA N,X5,3 W AT HOWZIS "AT" IS REQUIRED.
0250 LA, CHAR6 5 C6 5,2 ILL START BRANCH IF START ADR MORE THAN 4 DIGITS.
02511 LA, CHAR6 5,2 ZERO UNO START BRANCH IF START ADDRESS IS BLANK.
0252 LA, CHAR8 EIGHT 5,2 UNO START BRANCH IF START ADDRESS NOT OCTAL.
0254 WA Z,X5 THREE WHODUNIT
0255 NA 5,3 ONES HOWZIS SUPERFLUOUS WORDS ARE FORBIDDEN.
0257 SWS, ONES N,X5 A,1 START MSG +1
0258 TS YUL MASKS Z,MXR E SYLT OK MAKE GRP B SEEK DESIRED PROGRAM.
0260 S, YUL TYPER START MSG AA+2 C,+1 TYPE START ADDRESS.
0262 TS AGC4 MSKS Z,MXR C,+3
0263 SWS, ONES START ADR 3,L START ADR SHIFT UP DIGITS THUS FAR.
0265 SWS, ACO8 START MSG +1 A,7 START ADR CONVERT ALPHA START ADR TO OCTAL.
0267 SWS, ONES START MSG +1 A,1,L START MSG +1 POSITION NEXT ALPHA OCTAL DIGIT.
0269 NA, CHAR1 START MSG +1 BLANKS C,-3 BRANCH IF MORE START ADR DIGITS.
0271 WA Z,X6 OCTAL 20 Z,X5
0272 TS Z,X5 WHODUNIT RD SBDIRC READ 2ND SUBDIRECTOR IF ANY.
0274 STD PLIM TS ALF 5000 ALF PLIM PROC PLIM WHEN 2ND SUBDIRECTOR LACKING OR BAD.
02751 TX WHODUNIT - Z,X5
02753 TX TWO - HOLD LINE +1 SHOW THAT A SUBDIRECTOR WAS READ.
0276 NA N,X5,3 W PRINT STD PLIM IF NOT "PRINT", MAYBE "TRACE".
0278 TS ZERO HOLD LINE +1 SUSPECT C SHOW THAT PRINT LIMIT CARD WAS READ.
0279 NA N,X5,3 W LIMIT UNRC SUBD "LIMIT" IS REQUIRED.
0281 LA, CHAR6 6 C6 5,2 ILL PLIM BRANCH IF PRINT LIMIT OVER 5 DIGITS.
0283 SWE, CHAR8 5,2 A,2 Z,AU1
0284 WA Z,AU1 L SIXES Z,AU1
0285 WA N,AU1 N,X5 PRINT LIM
0286 NA, DCHECK PRINT LIM ZERO UNDC PLIM BRANCH IF PRINT LIMIT NOT DECIMAL.
0288 TS N,X5,3 ALF PLIM SUSPECT C
0289 NA N,X5 ONES UNRC SUBD SUPERFLUOUS WORDS ARE FORBIDDEN.
0291 PROC PLIM SWS, C7T8 ALF PLIM A,2,L PLIM MSG +1 USE CORRECTLY SPECIFIED PRINT LIMIT OR
0293 SWS, C1T3 ALF PLIM A,2,L PLIM MSG +2 USE 5000 LINES OTHERWISE.
0295 TS Z,SC,1 Z,X4 MON A2D COMVERT ALPHA TO DECIMAL.
02961 ALF PLIM RESERVE 2
0297 TS ALF PLIM +1 PRINT LIM WHAT SUBD C STORE LIMIT, RECOVER BK 1 MASKS.
0299 S, YUL TYPER PLIM MSG AA+3 C,+1 TYPE PRINT LIMIT.
# Page 683
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 12 PAGE 12
P0301 INITIALIZE PAGE HEAD, AGC4 MEMORY, PRINT BUFFER FLAG TABLE. READ TRACE ON/OFF SUBDIRECTOR CARDS, PLANT FLAGS.
0303 A4 MASKER TX AGC4 MSKS - Z,MXR
0304 TX PAGE HEAD +1 - SIMU HEAD +1 PUT LOG NUMBER INTO PAGE HEADING.
0306 TX L OBJC MSG - Z,AU1
0307 TN N,AU1 7 SIMU HEAD +6 PUT OBJECT MESSAGE INTO PAGE HEADING.
0309 TN PAGE HEAD +12 2 N,AU2 ALSO FANCY DATE.
0311 S, MON PRINT SIMU HEAD PRINT PARTIAL PAGE HEAD. SP20.
0313 TX PAGE 1 - SIMU HEAD +15
0314 TN BANK 2 2 Z,X4 BANK2 TO X4, BANK 8 TO X5.
0316 TX C65 - Z,AU1
0317 MT E BIT 63 N,X4,1 CLEAR AGC4 MEMORY.
0319 MT ZERO 63 N,X5,1 CLEAR PRINT BUFFER FLAG TABLE.
0321 NA Z,AU1,1 ONE C,-2
0322 TX E BIT - N,X4
0323 TX ZERO - N,X5
03232 SSL, THREE HOLD LINE +1 0 TR ON OFF CHOICE IS 0, 1, OR 2.
0324 UNREC SBD TS YUL MASKS Z,MXR UNRC SBDR UNRECOGNIZED WD IN TRACE ON/OFF SUBDIR.
032402 TR ON OFF TS AGC4 MSKS Z,MXR RD SBDIRC GET TRACE ON/OFF SUBDIRECTOR IF ANY.
032404 TS IN PTR Z,AU1 INIT BUFF EXIT WHEN SUBDIRECTORS RUN OUT.
032406 WA Z,X6 OCTAL 20 Z,X5
032407 TX Z,X5 - WHODUNIT
032408 NA N,X5,3 W TRACE UNREC SBD "TRACE" IS REQUIRED.
03241 TX Z,X5 - WHODUNIT
032411 NA N.X5 W ON C,+3
032412 TX OFF - EDIT WD
032413 TS Z,X5,3 - C,+3
032414 NA N,X5,3 W OFF UNREC SBD EITHER "ON" OR "OFF" IS REQUIRED.
032416 TX ON - EDIT WD
032417 NA N,X5 W R C,+2 "R:" FOR REFERENCE IS OPTIONAL.
032419 TS Z,X5,3 - C,+2
03242 EX EDIT WD B1B2 EDIT WD CLEAR REEFERENCE BIT IF NO "R:".
032422 LA, CHAR6 5 C6 5,2 ILL TRONF BRANCH IF ADDRESS MORE THAN 4 DIGITS.
032424 LA, CHAR6 5,2 ZERO UNO TRONF BRANCH IF ADDRESS IS BLANK.
032426 LA, CHAR8 EIGHT 5,2 UNO TRONF BRANCH IF ADDRESS IS NOT OCTAL.
032428 WA Z,X5 THREE WHODUNIT
032429 NA 5,3 ONES UNREC SBD SUPERFLUOUS WORDS ARE FORBIDDEN.
032431 TX N,X5 - LOCATION
032432 TS ZERO Z,X5 C,+2
032433 SWS, ONES Z,X5 3,L Z,X5 SHIFT UP DIGITS THUS FAR.
032435 SWS, ACO8 LOCATION A,7 Z,X5 CONVERT ALPHA ADDRESS TO OCTAL.
032437 SWS, ONES LOCATION A,1,L LOCATION POSITION NEXT ALPHA OCTAL DIGIT.
032439 NA, CHAR1 LOCATION BLANKS C,-3 BRANCH IF MORE ADDRESS DIGITS.
032441 WA Z,X5 BANK 8 Z,X5 FIND PLACE IN TABLE IN BANKS 8 AND 9.
032443 NA N,X5 ZERO DUP TRONF BRANCH IF ADDRESS IS A DUPLICATE.
032445 TS EDIT WD N,X5 TR ON OFF PLANT TRACE ON/OFF FLAG, GET NEXT SUBDR.
# Page 684
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 13 PAGE 13
P032499 INITIALIZE PRINT BUFFER AND LOAD PROGRAM INTO BANKS 2 AND 3.
0325 INIT BUFF MT ZERO 3 N,AU1,1
0326 TX Z,AU1,1 - Z,AU2
0327 SWE, CAC2 Z,AU1 16,L N,AU2 INITIALIZE TRACE LINE (PRINT) BUFFER.
0329 NA Z,AU1 BANK 5 C,-3
0330 TS IN PTR Z,AU1 C,-2 C
0331 READ LOOP TS BANK 2 Z,X5 FETCH SS FETCH A PARAGRAPH IF ANY LEFT.
0333 TS START ADR 5,2 END LOAD NO MORE, INITIALIZE Z REGISTER AND BGIN.
0335 LA OCTAL 20 1,2 C,-1 CUT OFF LOADING AFTER BANK 03.
0337 TX Z,X5 - Z,R3
0338 WA Z,X1 THREE Z,X5 1800 ADDRESS OF 1ST WD IN PARAGRAPH.
0340 SWS, LOW12 1,2 8,L Z,R3 DITTO IN AGC4 MEMORY.
0342 LOAD LOOP EX N,X5,1 16 ONES INSTR
0343 SWS, LOW15 INSTR 1 INSTR CROP PARITY AND DUPLICATE SIGN.
0345 TS SP3 SIMU HEAD FLAGSET C APPLY FLAGS TO WORD.
0347 TX INSTR - N,R3,1 LOAD WORD INTO AGC4 MEMORY.
0349 NA 5,2 EOR LOAD LOOP BRANCH IF MORE WORDS IN PARAGRAPH.
0351 TS - - READ LOOP GO TO GET NEXT PARAGRAPH.
0364 END LOAD TS YUL MASKS Z,MXR MON TAPE
0365 RW,1 - - - REWIND YULPROGS.
0367 LA SIMU HEAD SP3 OK LOAD BRANCH IF ANY PARAGRAPHS LOADED.
0369 TN NOPAL MSG 3 LINE +7
0370 S, MON PRINT LINE -1 PRINT "NO PARAGRAPHS LOADED".
0372 S, YUL TYPER NOPAL MSG AMTF +3 TYP ABORT TYPE "NO PARAGRAPHS LOADED", ABORT.
0374 OK LOAD TX PHI WAA - Z,X4
03742 TS Z,SC,6 4,107 MON WAKE C
0375 TS Z,SC Z,R0 OK LOAD C SET UP SPECIAL FIXED START FOR ABORTING.
0376 GRP B PCR SPCR N,R0,3
0377 TS ZERO GB SWITCH MON SLEEP C GO TO SLEEP AND AWAIT FIXED START.
0378 LA CAUSE ZERO C,-1 BEWARE OF ACCIDENTAL WAKING.
0379 TS C,+1 RECYCLE2 +2 4,106 SET TRIPWIRE FOR MAIN GROUP.
0380 S, MON TYPER W CUT OFF SPRA +8 TERM DUMP GROUP A TYPES "CUT OFF ", ABORTS.
0381 TS ZERO LOCATION A4 MASKER C
03812 GB SWITCH WD Z,SC ONE Z,SC
03814 SWS, ACO6 GRP B PCR 16 EMRGY MSG +3
03816 S, YUL TYPER EMRGY MSG AA +4 C,+1 TYPE "IN EMERGENCY, ABORT TASK BY FB9 ".
0382 TX BANK 2 - Z,R1
0383 TX BANK 2 - Z,R3
0384 TX BANK 2 - Z,X4
0385 TS SPEC ZERO Z,R7 RECYCLE INITIALIZE SPECIAL REGISTERS, BEGIN.
# Page 685
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 14 PAGE 14
P038601 SUBROUTINE TO APPLY FLAGS DURING LOADING, INDEXING, AND TC TO A.
038602 FLAGSET LA,LOW12 2K INSTR ZEROFLG C
038603 LA,LOW12 GENERASE INSTR EFLAG2 C
038604 NA,B3TB12 INSTR EDITPREF C,+2 C
038605 SS EDITFLG FLAGS INSTR
038606 NA,LOW12 LOW2 INSTR C,+2 C
038607 SS LPFLAG FLAGS INSTR
038608 EFLAG2 SS EFLAG FLAGS INSTR
038609 ZEROFLG SS ZERO FLAGS INSTR
R0387 UNRECOGNIZED WORD IN "START AT" SUBDIRECTOR CARD.
0388 HOWZIS TS YUL MASKS Z,MXR HOWZAT UNRECOGNIZED-WORD ABORT.
R0390 START ADDRESS ILLEGAL.
0391 ILL START TX YUL MASKS - Z,MXR
0392 S, YUL TYPER 2 LONS MSG AMTF +3 RJEC SUBD START ADDRESS TOO LONG.
0394 UNO START TX YUL MASKS - Z,MXR
0395 S, YUL TYPER UNOCS MSG AMTF +3 RJEC SUBD START ADDRESS NOT OCTAL.
R0400 UNRECOGNIZED WORD IN "PRINT LIMIT" SUBDIRECTOR CARD.
0401 UNRC SUBD TS YUL MASKS Z,MXR UNRC SBDR UNRECOGNIZED WORD IN PRINT LIMIT SUBDIR.
0403 TS AGC4 MSKS Z,MXR STD PLIM SET PRINT LIMIT = 5000 IN THIS CASE.
R0405 ILLEGAL PRINT LIMIT. USE 5000.
0406 ILL PLIM TX YUL MASKS - Z,MXR
0407 S, YUL TYPER 2 LONP MSG AMTF +3 C,+3 PRINT LIMIT TOO LARGE.
0409 UNDC PLIM TX YUL MASKS - Z,MXR
0410 S, YUL TYPER UNDPL MSG AMTF +3 C,+1 PRINT LIMIT NOT DECIMAL.
0412 TS L STD PLIM Z,SC IGN SUBDR USE PRINT LIMIT = 5000 IN THESE CASES.
R041301 ILLEGAL OR DUPLICATED TRACE ON/OFF ADDRESS.
041302 ILL TRONF TX YUL MASKS - Z,MXR
041303 S, YUL TYPER 2 LONT MSG AMTF +4 C,+5
041304 UNO TRONF TX YUL MASKS - Z,MXR
041305 S, YUL TYPER UNOTR MSG AMTF +4 C,+3
041306 DUP TRONF TX YUL MASKS - Z,MXR
041307 S, YUL TYPER DUPTR MSG AMTF +4 C,+1
041308 TS L TRON OFF Z,SC IGN SUBDR
# Page 686
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 15 PAGE 15
P0414 MAIN SIMULATOR LOOP
0415 RECYCLE SS Z LOW12 Z,R1
0416 WA Z ONE Z
0417 TX N,R1 - INSTR
0418 RECYCLE2 SS INSTR LOW12 Z,R1
0419 EX N,R1 LOW 16 DBEF
04192 LA, LOW12 Z 2K EXERASE BRANCH IF ABOUT TO EXECUTE FROM E MEMRY.
0420 SSL,LOW4 INSTR 12 C,+1
0421 TS Z,R7,1 - TC 0000
0423 TS Z,R7,2 - CCS 0001
0425 TS Z,R7,2 - INDEX 0010
0427 TS Z,R7,2 - XCH 0011
0429 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0100
0431 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0101
0433 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0110
0435 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0111
0437 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 1000
0439 TS Z,R7,8 - MP 1001
0441 TS Z,R7,16 - DV 1010
0443 TS Z,R7,2 - SU 1011
0445 TS Z,R7,2 - CS 1100
0447 TS Z,R7,2 - TS 1101
0449 TS Z,R7,2 - AD 1110
0451 TS Z,R7,2 - MASK 1111
04522 EXERASE TS Z,SH Z,SC FLAG SET C SET FLAGS BEFORE EXECUTING FROM E MEMRY.
R0453 RETURN HERE AFTER EACH INSTRUCTION.
0454 REEDCHK TS - - EDITCHK C
0455 TX LRECYCLE T4
0456 TIMES LA Z,R7 DEC853 EDITOR
0457 WA TIME1 ONE TIME1
0458 SWE,ONE TIME1 14 T1
0459 EX TIME1 LOW14 TIME1
0460 WA T1 TIME2 TIME2
0461 WA TIME3 ONE TIME3
0462 WD Z,R7 DEC852 Z,R7
0463 NA,SIGN TIME3 SIGN EDITOR
0464 TX ZERO - TIME3
0465 S, MON TYPER C,+1 SPRA +8 TERMDUMP
0466 ALF T3RUPT
# Page 687
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 16 PAGE 16
P0467 PROCEDURE FOR TC (TRANSFER CONTROL).
0468 TC TX N,R1 - INSTR2
0469 TX Z - Q
0470 EX Z,R1 LOW12 NEWZ
0471 TC1 TX ONE - ZDECR
0472 TS ZERO T4 TIMES
R0473 PROCEDURE FOR CCS (COUNT COMPARE AND SKIP).
0474 CCS LA,LOW12 2K INSTR ILLEGCCS BRANCH IF ARGUMENT IS IN FIXED.
0476 EX N,R1 16ONES A
0477 TX ONE - ZDECR
0478 NA,SIGN A ZERO NEGCCS
0479 NA A ZERO C,+4
0480 ZEROBR WA Z ONE Z
0481 WA ZDECR ONE ZDECR
0482 TS - - REEDCHK
0483 DECBR WD A ONE A
0484 TS - - REEDCHK
0485 NEGCCS WA Z TWO Z
0486 TX THREE - ZDECR
0487 NA A 16ONES C,+2
0488 TS ZERO A ZEROBR
0489 HA A 16ONES A
0490 TS - - DECBR
0491 ILLEG CCS S, MON TYPER C,+1 SPRA +8 TERMDUMP
0492 ALF CCSFIXED
# Page 688
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 17 PAGE 17
P0493 PROCEDURE FOR INDEX (INDEX NEXT INSTRUCTION).
0494 INDEX EX N,R1 16ONES T1
0495 SS Z LOW12 Z,R3
0496 TX Z - NEWZ
0497 WA N,R3 T1 DATA
0498 SWE,ONE DATA 16 T1
0499 WA T1 DATA DATA
0500 TS ONE ZDECR EDITCHK C
0501 TX INSTR - T2
0502 EX DATA 16ONES INSTR
0503 TS - - FLAGSET C
0504 TX INSTR - INSTR2
0505 TX T2 - INSTR
0506 TS ZERO T4 TIMES
R0507 PROCEDURE FOR XCH (EXCHANGE).
0508 XCH NA,FLAGS INSTR ZERO XCH1
0509 EX N,R1 16ONES A
0510 TS ONE ZDECR REEDCHK+1
0511 XCH1 TX N,R1 - DATA
0512 LA,LOW12 INSTR TWO C,+2
0513 SWS,US A 1 A
05132 NA,LOW12 INSTR TWO C,+3
05134 TX A - NEWZ
05136 TS DATA A TC1
0514 TX A - N,R1
0515 NA,LOW12 INSTR LBANKREG C,+2
0516 EX N,R1 BANKMASK N,R1
0517 TX ONE - ZDECR
0518 TS DATA A REEDCHK
# Page 689
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 18 PAGE 18
P0519 PROCEDURE FOR CS (CLEAR AND SUBTRACT).
0520 CS HA N,R1 16ONES DATA
0521 TX ONE - ZDECR
0522 TS,16ONES DATA A REEDCHK
R0523 PROCEDURE FOR TS (TRANSFER TO STORAGE).
0524 TS TX ONE - ZDECR
0525 NA,FLAGS INSTR ZERO C,+2
0526 TS - - OVIND OVERFLOW INDICATION ONLY IF REF FIXED.
0535 TX A - NEWZ
0536 LA,LOW12 INSTR TWO C,+4
0537 SWS,US NEWZ 1 NEWZ
0538 NA,LOW12 INSTR LBANKREG C,+2
0539 EX NEWZ BANKMASK NEWZ
0540 OVIND SSL,LOW2 A 14 C,+1
0541 TS - - TSZ CHK
0542 TS ONE A TS SKIP
0543 TS NEGONE A TS SKIP
0544 TSZ CHK NA, LOW12 INSTR TWO C,+2
05442 TS ZERO T4 TIMES
05444 TS NEWZ N,R1 REEDCHK
0545 TS SKIP WA Z ONE Z
0546 TS TWO ZDECR TSZ CHK
# Page 690
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 19 PAGE 19
P0549 PROCEDURE FOR AD (ADD).
0550 AD WA N,R1 A DATA
0551 SWE,ONE DATA 16 A
0552 WA DATA A DATA
0553 EX DATA 16ONES A
0554 TX ONE - ZDECR
0555 SSL,LOW2 A 14 C,+1
0556 TS - - REEDCHK
0557 TS ONE T1 OVCTRINC
0558 TS NEGONE T1 OVCTRINC
0559 TS - - REEDCHK
0560 OVCTRINC WA T1 OVCTR OVCTR
0561 SWE,ONE OVCTR 16 T1
0562 WA T1 OVCTR OVCTR
0563 EX OVCTR 16ONES OVCTR
0564 TS Z,R7,1 - REEDCHK
R0565 PROCEDURE FOR MASK (BOOLEAN AND).
0566 MASK EX N,R1 16ONES DATA
0567 EX DATA A A
0568 TS ONE ZDECR REEDCHK+1
R0569 INTRODUCTION TO PROCEDURE FOR SU (SUBTRACT). JOINS PROCEDURE FOR AD.
0570 SU HA N,R1 16ONES DATA
0571 WA DATA A DATA
0572 TS - - AD+1
R0573 PROCEDURE FOR MP (MULTIPLY).
0574 MP TS ONE ZDECR SGNABS C
0575 BM A DATA T2
0576 TS - T2 -
0577 EX T2 LOW14 LP
0578 SWE,LOW14 T2 14 A
0579 NA,SIGN T1 SIGN REEDCHK +1
0580 HA A 16ONES A
0581 HA LP 16ONES LP
0582 TS - - REEDCHK +1
# Page 691
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 20 PAGE 20
P0583 PROCEDURE FOR DV (DIVIDE).
0584 DV TX N,R1 - DATA
0585 TX ZERO - T4
0586 HA,SIGN DATA A T4
0587 SWS,US T4 1 T4
0588 SM ONE T4 T4
0589 NA,SIGN DATA SIGN C,+3
0590 NA,SIGN A ZERO C,+2
0591 SS ZERO ONE T4
0592 TS ONE ZDECR SGNABS C
0593 LA,LOW16 DATA A DVOVF
0594 SWE,DVMSK DATA 30,L DATA
0595 SWE,DVMSK A 30,L A
0596 BD DATA A T3
0597 EX T3 DVMSK T3
0598 BM T3 DATA T2
0599 EX T2 SIGNCLIP T2
0600 WD A T2 T2
0601 SWE,LOW14 T2 16 Q
0602 HA Q 16ONES Q
0603 SWE,LOW14 T3 30 A
0604 TX T4 - LP
0605 NA,SIGN T1 SIGN REEDCHK +1
0606 HA A 16ONES A
0607 TS - - REEDCHK +1
0608 DV OVF S, MON TYPER C,+1 SPRA +8 TERMDUMP
0609 ALF DIV OVF
R0610 SUBROUTINE TO GENERATE SIGN AND ABSOLUTE VALUE OF AN OPERAND. USED BY MULTIPLY AND DIVIDE.
0612 SGNABS EX N,R1 16ONES DATA C
0613 SWS,US DATA 1 DATA C
0614 SWS,US A 1 A C
0615 HA A DATA T1 C
0616 NA,SIGN DATA SIGN C,+2 C
0617 HA DATA 16ONES DATA C
0618 NA,SIGN A SIGN C,+2 C
0619 HA A 16ONES A
0620 TX - - -
# Page 692
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 21 PAGE 21
P0621 PROCEDURE TO SIMULATE THE ACTION OF EDITING REGISTERS.
0622 EDITCHK NA,FLAGS INSTR ZERO C,+2 C
0623 TX - - FAST EXIT WHEN NO EDITING REGS INVOLVED.
0625 NA,EBIT INSTR ZERO C,-1 C
0626 NA,LPBIT INSTR ZERO LPCYCLE C BRANCH WHEN OPERAND IS LP.
0628 SSL,LOW4 INSTR 2,L C,+1 C
R0629 PROCEDURE TO SIMULATE CYR (CYCLE RIGHT).
0630 CYRCYCLE SWS,SIGN CYR 15,L CYR C
0631 SWS,LOW15 CYR 1 CYR
0632 PR
0633 PR
R0634 PROCEDURE TO SIMULATE SR (SHIFT RIGHT).
0635 SRCYCLE SWS,LOW14 SR 1 SR
R0636 PROCEDURE TO SIMULATE LP (LOW-ORDER PRODUCT REGISTER).
0637 LPCYCLE SWS,SIGN LP 15,L LP C
0638 SWS,LOW15 LP 1 LP C
0639 SS ZERO BIT14 LP
R0640 PROCEDURE TO SIMULATE CYL (CYCLE LEFT).
0641 CYLCYCLE SWS,LOW15 CYL 1,L CYL C
0642 SWS,ONE CYL 15 CYL C
0643 SWS,SIGN CYL 1,L CYL
0644 PR
R0645 PROCEDURE TO SIMULATE SL (SHIFT LEFT).
0646 SLCYCLE SWS,LOW14 SL 1,L SL C
0647 SWS,ONE SL 14 SL
# Page 693
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 22 PAGE 22
P0648 EDITOR ROUTINE TO PREPARE PRINTED OUTPUT. THIS PART DETECTS THE OCCURRENCE OF INFINITE LOOPS. THE
R0650 BINARY OUTPUT OF A TRACED INSTRUCTION, NINE AGC4 WORDS, IS CONDENSED INTO THREE CAC-WORDS. A BUFFER OF FOUR-
R0652 WORD ITEMS IS MAINTAINED, WHERE THE FIRST THREE WORDS ARE A TRIPLE OF CAC-WORDS FOR A LINE, AND THE FOURTH IS
R0654 A CAC-WORD CONTAINING A THREAD TO THE NEXT ITEM (IN ORDER OF PRINTING) IN CAC2, AND A THREAD TO THE NEXT ITEM
R0656 WITH THE SAME VALUE OF Z IN CAC3 (OR ZERO IF NONE). BANKS 8 AND 9 CONTAIN SPECS, EACH POINTING TO THE EARLIEST
R0658 ITEM IN THE BUFFER WITH THE CORRESPONDING VALUE OF Z. BY "VALUE OF Z" HERE IS MEANT B(Z), I.E. THE LOCATION.
R0660 AN INDICATOR IS KEPT IN START ADR SHOWING WHETHER A LOOP PATTERN IS IN A STATE OF PARTIAL COMPLETION. UP TO
R0662 FOUR POINTERS ARE KEPT (POINTERS ARE SPECS POINTING TO ITEMS IN THE BUFFER). THE TWO THAT ARE ALWAYS KEPT ARE
R0664 "IN PTR", POINTING TO THE NEXT ITEM-SLOT TO BE FILLED AND "OUT PTR" POINTING TO THE NEXT ITEM TO BE PRINTED.
R0666 WHEN A LOOP PATTERN IS IN PROCESS, "PAT PTR" POINTS TO THE FIRST ITEM IN THE PATTERN, AND X3, THE COMPARISON
R0668 POINTER, POINTS TO THE ITEM WITH WHICH THE NEXT INCOMING LINE IS TO BE COMPARED. THE STRATEGY, WITH AND WITHOUT
R0670 A PATTERN IN PROCESS, IS AS FOLLOWS:
R0671 CASE 1: NO PATTERN (C(START ADR) NOT ALL ONES)
R0672 IF THREAD IN BKS 8-9 IS VOID, THREAD IT TO A NEW ITEM FORMED FROM THIS LINE.
R0674 IF NON-VOID, THREAD THROUGH ITEMS WITH SAME B(Z) AS THIS LINE, LOOKING FOR A 3-WORD MATCH.
R0676 IF NONE, THREAD LAST ITEM EXAMINED TO A NEW ITEM FORMED FROM THIS LINE.
R0678 IF FOUND, SET PAT PTR AND X3, DISCARD THIS LINE, AND SET START ADR TO ALL ONES.
R0680 IF MATCH WAS WITH PRECEDING LINE, INDICATE TCA TRAP AND ABORT.
R0682 CASE 2: PATTERN IN PROCESS (C(START ADR) IS ALL ONES)
R0683 COMPARE THIS LINE WITH EXISTING ITEM ACCORDING TO X3 (THE COMPARISON POINTER).
R0685 IF IT MATCHES, SEE IF MATCH WAS WITH THE LAST NON-REPEATING LINE.
R0687 IF SO, THE SIMULATED PROGRAM IS IN AN INFINITE LOOP, AND THE RUN IS ABORTED.
R0689 IF NOT, INDEX THE COMPARISON POINTER AND DISCARD THE CURRENT LINE.
R0691 IF NO MATCH, THE PATTERN IS BROKEN. USING PAT PTR AND X3, FEED ALL REPEATED LINES INTO THE BUFFER,
R0693 THREADING ACCORDING TO LOCATION BUT NOT CHECKING FOR DUPLICATES. RESET START ADR TO ZERO AND
R0695 RESUBMIT THIS LINE.
# Page 694
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 23 PAGE 23
P06952 ENTER HERE AFTER EACH INSTRUCTION.
0696 EDITOR TX IN PTR - Z,X1 AN ITEM-SLOT IS ALWAYS AVAILABLE HERE.
0698 WD, LOW12 Z ZDECR LOCATION
0699 TX A - N,X1
0700 SWS, CAC2 INSTR 16,L N,X1
0701 SWS, CAC1 LOCATION 32,L N,X1,1 FORM FIRST CAC-WORD.
0703 TX LP - N,X1
0704 SWS, CAC2 N,R1 16,L N,X1 (D AFTER).
0706 SWS, CAC1 D BEF 32,L N,X1,1 FORM SECOND CAC-WORD.
0708 TX TIME3 - N,X1
0709 SWS, CAC2 OVCTR 16,L N,X1
0710 SWS, CAC1 Q 32,L N,X1 FORM THIRD CAC-WORD.
0712 TN POINTERS 2 Z,X1 IN PTR TO X1, OUT PTR TO X2.
0714 LA ONES START ADR PATTERN BRANCH IF THERE'S A PATTERN IN PROCESS.
R0716 PROCEDURE TO LOOK FOR A MATCH WHEN NO PATTERN IS IN PROCESS.
0717 NO PATERN WA BANK8 M3 LOCATION Z,X3 LET 3,3 = INITIAL THREAD FOR THIS B(Z).
0719 NOT MATCH LA, CAC3 3,3 ZERO NO MATCH BRANCH IF NO MATCH IN WHOLE BUFFER.
0721 TX 3,3 - Z,X3 THREAD TO ITEM WITH THIS B(Z).
0723 NA N,X1 N,X3 NOT MATCH
0724 NA 1,1 3,1 NOT MATCH
0725 NA 1,2 3,2 NOT MATCH BRANCH IF NO MATCH ON THIS ITEM.
0727 TX Z,X3 - PAT PTR PATTERN BEGINS NOW. SET PAT PTR.
0731 TS ONES START ADR LOOP CHEK SET PATTERN SIGNAL, CHECK ONE-ORDER LUP.
0733 NO MATCH SS Z,X1 CAC3 3,3 STORE LOCATION THREAD TO THIS ITEM.
0735 TS L GOGO P1 Z,S3 ADV IN PTR +1 ADVANCE INPUT POINTER, MAYBE PRINTING.
# Page 695
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 24 PAGE 24
P0737 PROCEDURE WHEN A PATTERN IS IN A STATE OF PARTIAL COMPLETION.
0738 PATTERN NA N,X1 N,X3 BREAK PAT
0739 NA 1,1 3,1 BREAK PAT
0740 NA 1,2 3,2 BREAK PAT BRANCH IF PATTERN IS NOW BROKEN.
0742 LOOP CHEK NA Z,X3 LAST PTR CONTINUE BRANCH IF LOOP NOT CLOSED YET.
0744 TX ZERO - START ADR CLEAR PATTERN-IN-PROCESS INDICATOR.
0746 TX PAT PTR - Z,X3
0747 SM 3,3 CAC1 3,3 FLAG BEGINNING OF INFINITE LOOP.
0749 S, MON TYPER W LOOPING SPRA +8 TERMDUMP
0750 CONTINUE SWE, CAC3 3,3 16 Z,X3 INDEX COMPARISON POINTER TO NEXT ITEM.
0752 NA T4 ZERO RECYCLE
0753 WA NEWZ ONE Z
0754 TS INSTR2 INSTR RECYCLE2
0758 BREAK PAT TN N,X1 3 HOLD LINE SAVE THIS LINE WHILE BREAKING UP PATERN.
0760 TN PRINT LIM 2 PRINT LIM -1 SAVE AND DISABLE PRINT LIMIT.
0762 TX PAT PTR - Z,S0 POINT TO BEGINNING OF PATTERN.
0764 RPT LINES TN N,S0 3 N,X1 RE-FEED REPEATED LINE.
0766 TS Z,S0,3 Z,X5 C,+2
0767 TX 5,3 - Z,X5
0768 NA, CAC3 5,3 ZERO C,-1
0769 SS Z,X1 CAC3 5,3 STORE LOCATION THREAD TO RE-FED LINE.
0771 TS ZERO START ADR ADV IN PTR RESET PATTERN SIGNAL, ADVANCE IN PTR.
0773 SWE, CAC3 N,S0 16 Z,S0 ADVANCE RE-FEEDING POINTER.
0775 NA Z,S0 Z,X3 RPT LINES BRANCH IF MORE ITEMS TO REPEAT.
0777 LA ONES HOLD LINE END PRINT BR IF CALLED BY TERMDUMP, NOT PAT BREAK.
0779 TN HOL LINE 3 N,X1 RESTORE THIS LINE.
0781 TS PRINT LIM -1 PRINT LIM NO PATERN RE-SUBMIT THIS LINE FOR MATCHING.
# Page 696
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 25 PAGE 25
P0783 EDITOR CONTINUED. THIS PART IS A SUBROUTINE TO ADVANCE IN PTR. IF THE RESULTING VALUE EQUALS THAT
R0785 OF OUT PTR, THE BUFFER IS FULL (THIS IS THE NORMAL CASE AFTER THE FIRST 300 LINES OR THEREABOUTS). A LINE IS
R0787 PUSHED OUT OF THE BUFFER ACCORDING TO OUT PTR, AND OUT PTR IS ADVANCED. THE LOCATION THREAD FOR THE LINE IS
R0789 SEWN UP AROUND IT. IF THE TRACE IS ON, THE FOLLOWING QUANTITIES ARE PRINTED:
R0790 LOCATION ALPHA-OP-CODE ADDRESS A B(X) A(X) LP Q OVCTR T3, AND (IF APPROPRIATE) "INFINITE LOOP".
R0792 FOR EACH QUANTITY EXCEPT "INFINITE LOOP", DITTO MARKS ARE PRINTED IF APPROPRIATE, EXCEPT AT THE TOP OF A PAGE.
R0794 FOR ANY FLIP-FLOP REGISTER CONTAINING OVERFLOW, THE OVERFLOW-CORRECTED CONTENTS ARE SHOWN, PRECEDED BY A BLOT.
0796 ADV IN PTR TX Z,SH - Z,S3
0797 TX Z,X1 - LAST PTR POINT TO LAST NEW LINE ACCEPTED.
0799 SWE, CAC3 1,3 16 IN PTR ADVANCE IN PTR.
0801 TX IN PTR - Z,X1 KEEP IN PTR IN X1 ALSO.
0803 NA Z,X1 OUT PTR N,S3 FAST EXIT UNTIL BUFFER FILLS UP.
0805 LA 2,3 CAC1 C,+2
0806 TN W INF LOOP 2 NEXT LINE +10 DO THIS WHERE LOOP BEGINS.
0808 SWE, CAC3 N,X2 32 EDIT WD RECOVER LOCATION.
0810 WA BANK8 M3 EDIT WD Z,X5 LET 5,3 = INITIAL LOCATION THREAD.
0812 NA, CAC3 5,3 OUT PTR C,+2
0813 TS, CAC3 2,3 5,3 C,+2 DELETE THIS LINE FROM LOCATION THREAD.
0815 TS 5,3 Z,X5 C,-2
0816 SS ZERO CAC3 2,3 CLEAR LOCATION THREAD IN ITEM.
081701 CHANGE Q WA BANK 8 EDIT WD Z,X5
081702 NA, CHANGMSK 5,0 LOC FLAG C,+4 BRANCH IF NO TRACE CHANGE ON LOCATION.
081704 HA LOC FLAG B1B2 LOC FLAG CHANGE CRITERION FOR CHANGE ON LOCATION.
081706 NA CHANG MSK ON N OMITTED BRANCH IF CHANGING OFF TO ON.
081708 TS OFF CHANG MSK SET UP LIN CHANGE ON TO OFF BUT PRINT THIS INSTR.
08171 SWS, LOW 12 N,X2 16 Z,X5
081711 LA, CHANGMSK ONES 5,0 C,-4 BRANCH IF TRACE CHANGE ON ADDRESS.
081713 OFF TEST NA CHANG MSK OFF SET UP LIN BRANCH IF TRACE IS ON.
081715 DA TRACE OFF ONE TRACE OFF STEP COUNT OF UNTRACED INSTRUCTIONS.
081717 SWE, CAC3 2,3 16 OUT PTR ADVANCE OUT PTR AND SAME IN X2.
081719 TS OUT PTR Z,X2 N,S3 QUICK EXIT WHEN TRACE IS OFF.
081721 N OMITTED LA TRACE OFF ZERO SET UP LIN WHEN IT REALLY WASN'T OFF AT ALL.
081723 SWE, ONES TRACE OFF D,4,L MON ARG
081724 TS Z,SC Z,AU1 YUL D2A ZS
081725* DELETE THIS BETTER BE R.P. AFTER 817.24
081725 MON ARG RESERVE 1
081726* MT N,SH,2 2 OMIT MSG +2 EDIT TRACE-OFF COUNT FOR PRINTING.
08173 TS BLANKS LINE END PAGE +1 C GENERATE BLANK LINE.
081732 TS Z,S3 CHANG MSK END PRINT +2 C SAVE RETURN, SET SP1.
081734 TN OMIT MSG 5 LINE +10
081735 TS Z,SC Z,S3 PRINT LIN PRINT NO. OF UNTRACED INSTRUCTIONS.
081737 TX CHANG MSK - Z,S3 RECOVER RETURN ADDRESS.
081739 TX ON - CHANG MSK TURN ON THE TRACE.
081741 TX ZERO - TRACE OFF
# Page 697
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 26 PAGE 26
P081799 PROCEDURE TO SET UP A TRACE LINE IN PRINT.
0818 SET UP LIN S, OCT2ALF4 EDIT WD NEXT LINE EDIT LOCATION.
0820 SWE, LOW4 N,X2 28 T1
0821 WA T1 OP ALF Z,AU1
0822 TX N,AU1 - NEXT LINE +1 SUPPLY ALPHABETIC OP CODE.
0824 SWE, CAC3 N,X2 16 EDIT WD
0825 S, OCT2ALF4 EDIT WD NEXT LINE +2 EDIT ADDRESS PART OF INSTRUCTION.
0827 S, OCT2ALF5 2,0 NEXT LINE +3 EDIT C(A).
0829 SWE, CAC3 2,1 32 EDIT WD
0830 S, OCT2ALF5 EDIT WD NEXT LINE +4 EDIT B(X).
0832 SWE, CAC3 2,1 16 EDIT WD
0833 S, OCT2ALF5 EDIT WD NEXT LINE +5 EDIT A(X).
0835 S, OCT2ALF5 2,1 NEXT LINE +6 EDIT C(LP).
0837 SWE, CAC3 2,2 32 EDIT WD
0838 S, OCT2ALF5 EDIT WD NEXT LINE +7 EDIT C(Q).
0840 SWE, CAC3 2,2 16 EDIT WD
0841 S, OCT2ALF5 EDIT WD NEXT LINE +8 EDIT C(OVCTR).
0843 S, OCT2ALF5 2,2 NEXT LINE +9 EDIT C(T3).
0845 SWE, CAC3 2,3 16 OUT PTR ADVANCE OUT PTR.
0847 TX OUT PTR - Z,X2 ALSO KEEP IT IN X2.
0849 LA LINE CNT FIFTY PRINT BRANCH IF NOT END OF PAGE.
# Page 698
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 27 PAGE 27
P0851 AT END OF PAGE, PRINT A BLANK LINE AND SKIP. THEN PRINT PAGE HEAD AND SUBHEAD.
0853 END PAGE TN SKIP 2 LINE -1 SKIP-CODE AND BLANK WORD.
0855 TN LINE 14 LINE +1 GENERATE BLANK LINE.
08562 S, MON PRINT DEPAGIN8
0857 S, MON PRINT LINE -1 SKIP TO HEAD OF FORM.
0859 S, MON PRINT SIMU HEAD PRINT PAGE HEAD.
0861 DA PAGE NO ONE PAGE NO
0862 SS PAGE NO D12 SIMU HEAD +15 STORE INCREASED PAGE NUMBER.
0864 NA, CHAR8 SIMU HEAD +15 ZERO C,+4 BRANCH IF NO CHANGE IN TENS DIGIT.
0865 SWS, ACH7 PAGE NO 2,L SIMU HEAD +15 SET UP CHANGED TENS DIGIT.
0868 NA, CHAR7 SIMU HEAD +15 ZERO C,+2 BRANCH IF NO CHANGE IN HUNDREDS DIGIT.
0870 SWS, CHAR6 PAGE NO 4,L SIMU HEAD +15 SET UP CHANGED HUNDREDS DIGIT.
0872 RESET LC TX ONE - LINE CNT
0873 S, MON PRINT SUB HEAD PRINT COLUMN HEADINGS.
0875 PRINT TN PRIN SPEX 2 Z,S1 SPECS FOR LINE +3 AND NEXT LINE +3.
08764 DITO LOOP NA N,S2 N,S1 NOT SAME BR IF THIS WD NO MATCH SAME IN LAST LIN.
08768 WA Z,S2 TWELVE Z,AU1 HERE THIS WD IN LAST LINE NOT A DITTO.
08772 TS N,S1,1 N,AU1 PUT DITTO SAVE REPEATED WORD FOR LATER COMPARISON.
08776 NOT SAME NA N,S1,1 DITTO PUT DITTO +1 BRANCH UNLESS NO-MATCH CAUSED BY DITTO.
0878 WA Z,S2 TWELVE Z,AU1
08784 NA N,S2 N,AU1 PUT DITTO +1 BRANCH IF DITTO PATTERN BREAKS NOW.
0879 PUT DITTO TX DITTO - N,S2 SUPPLY INIITAL OR CONTINUED DITTO.
0880 NA Z,S2,1 PRIN SPEX +2 DITO LOOP DO THIS FOR RIGHT-HAND SEVEN FIELDS.
0882 TN NEXT LINE -1 16 LINE -1
0883 PRINT LIN S, MON PRINT LINE -1
0884 WA LINE CNT ONE LINE CNT
0885 DA TASK LINS ONE TASK LINS COUNT PRINT LINES IN TASK.
0887 LA TASK LINS PRINT LIM N,S3 RETURN IF NOT TOO MANY.
08882 LA CHANG MSK CAC 3 N,S3 RETURN IF LINE IS "TRACE OFF" TYPE.
0889 S, MON TYPER W PRNT MAX SPRA +8 TERMDUMP
# Page 699
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 28 PAGE 28
P0890 SUBROUTINE TO CONVERT LOW-ORDER BITS TO 5 ALPHA-OCTALS (CHECKING FOR OVERFLOW). 16 LOW-ORDER BITS AT
R0892 A ARE MADE INTO A RIGHT-JUSTIFIED ALPHA WORD AT C.
0893 OCT2ALF5 SIMULATE
0894 SSL, LOW2 N,AU1 14 BLOT CHEK C TEST FOR OVERFLOW IN OPERAND.
0896 OV CORECT SWS, US N,AU1 1 N,AU1 C CORRECT IT IF REQUIRED.
0898 SWS, MSK5 N,AU1 12,L N,AU2 C SET UP HIGH-ORDER DIGIT.
0900 4 DIGITS SWS, MSK4 N,AU1 9,L N,AU2 C
0901 SWS, MSK3 N,AU1 6,L N,AU2 C
0902 SWS, MSK2 N,AU1 3,L N,AU2 C
0903 SS N,AU1 OCT7 N,AU2 SET UP LOW-ORDER DIGITS, RETURN.
R0905 SIMILAR SUBROUTINE FOR 12 LOW-ORDER DIGITS INTO 4 ALPHA-OCTALS.
0906 OCT2ALF4 SIMULATE
0907 TS BLANK 1T4 N,AU2 4 DIGITS C
R0908 FOUR ANSWERS TO OVERFLOW CHECK IN OCT2ALF5.
0909 BLOT CHEK TS BLANK 1T3 N,AU2 OV CORECT +1 C
0910 TS OVF BLOT N,AU2 OV CORECT C
0911 TS OVF BLOT N,AU2 OV CORECT C
0912 TS BLANK 1T3 N,AU2 OV CORECT +1 C
# Page 700
# @YUL SYSTEM SIMULATORS -- AGC4 USER'S OWN PAGE NO. 29 PAGE 29
P0913 TERMINAL DUMP PROCEDURE, USED WHEN A PROPERLY STARTED RUN ENDS FOR ANY REASON. GIVES THE CAUSE OF
R0915 TERMINATION AND DUMPS LOCATIONS 0000-1777 ON FOUR PAGES.
0916 MON TYPER SIMULATE
0917 TS N,AU1 CAUSE C,+1 SUPPLY CAUSE FOR PRINTING.
091802 TERMDUMP S, YUL TYPER CAUSE AA +1 C,+1
09181 TS OFF TEST CHANGE Q +1 MON WAKE C LOCK TRACE ON.
09183 TN W CORONER 2 NEXT LINE +13 LABEL CORONER'S REPORT AS SUCH.
0919 TS ONES HOLD LINE BREAK PAT +1 C DISABLE LOCAL PRINT LIMIT.
0920 LA ONES START ADR BREAK PAT +2 BREAK PARTIAL PATTERN IF ANY.
0922 END PRINT NA OUT PTR IN PTR ADV IN PTR
0923 NA OUT PTR LAST PTR ADV IN PTR +2 EMPTY OUT TRACE LINE BUFFER.
0925 TX SP1 - LINE -1
0926 TS BLANKS LINE END PAGE +1 C
0927 S, MON PRINT LINE -1 LEAVE A BLANK LINE.
0929 TX SKIP - LINE -1
0931 TN CAUSE 7 LINE +2 STATE CAUSE AND ANNOUNCE DUMP.
09321 TX BANK 2 - Z,X3 H800 ADDRESS OF AGC4 ADDRESS 0000.
0933 TS C,+1 RESET LC END PAGE +2 CHANGE RETURN FROM PAGE HEAD PRINT.
0935 TS EIGHT Z,S1 C,+1 SET NUMBER OF 4-LINE GROUPS PER PAGE.
0939 TS SP1 LINE -1 END PAGE +1 C
0940 4 LINES TS FOUR Z,S2 C,+2 SET NUMBER OF LINES PER BUNCH.
0942 1 LINE S, MON PRINT LINE -1
0943 WD PRIN SPEX ONE Z,X5 FORM SPEC LINE +2.
0945 TX Z,X3 - EDIT WD
0946 S, OCT2ALF4 EDIT WD LINE EDIT ADDRESS OF 1ST WORD OF 8 ON A LINE.
0948 1 WORD S, OCT2ALF5 3,0 5,0 EDIT A WORD OF ERASABLE MEMORY.
09492 NA N,X5 BLANK 1T3 C,+2
09494 TX ZERO C6 - N,X5 REPLACE ZERO WORD WITH A LONE ZERO.
0950 LA SPEC 1777 Z,X3,1 LAST LINE BRANCH IF LAST WORD EDITED.
0952 NA Z,X5,1 PRIN SPEX +3 1 WORD
0953 NA Z,S2,1 ONE 1 LINE BRANCH IF NOT LAST LINE OF BUNCH OF 4.
0955 TX SP2 - LINE -1
0956 S, MON PRINT LINE -1
0957 LA Z,S1,1 ONE END PAGE
0958 TS SP1 LINE -1 4 LINES GO TO PRINT NEXT FOUR LINES, SAME PAGE.
0960 LAST LINE TX SKIP - LINE -1
09601 S, MON PRINT DEPAGIN8
0961 S, MON PRINT LINE -1
0962 TX YUL MASKS - Z,MXR
0963 S, YUL TYPER END SI MSG AMTF +2 MANUF RTN TYPE "END SIMULATION", EXIT.
0966 MASK LOC MODLOC 64
0000 *CORRECT CARDNO TO 999999
SEQBRK* END YULSIMUL AGC4