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
YUL_SYSTEM_SIMULATORS_--_SACO.argus
# Copyright: Public domain.
# Filename: YUL_SYSTEM_SIMULATORS_--_SACO.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: 701-733
# Mod history: 2016-10-06 JL Created.
# 2017-02-06 JL Transcribed pages 701-724.
# 2017-02-07 JL Transcribed pages 725-733.
# 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 -- SACO
# Page 701
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 1 PAGE 30
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 SACO. 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
R0020 TERMINATED BY ANY OF THE FOLLOWING OCCURRENCES:
R0021 EXECUTION OF AN ILLEGAL OPERATION CODE,
R0023 DIVIDE OVERFLOW,
R0024 DETECTION OF AN INFINITE LOOP (UP TO ABOUT 300 INSTRUCTIONS IN LENGTH),
R0025 EXCEEDING THE PRESET PRINT LIMIT,
R0026 OVERFLOW OUT OF THE TIME3 REGISTER, OR
R0027 ABORT BY THE OPERATOR, USING FB9 (B = FIRST SIDE-GROUP).
R0028 THE SUBDIRECTORS USED WITH MISCGA 2 ARE:
R0029 S START AT NNNN (NNNN OCTAL, 1 TO 4 DIGITS). THIS CARD IS REQUIRED, AND MUST BE FIRST.
R0031 S PRINT LIMIT = DDDDD (DDDDD DECIMAL, 1 TO 5 DIGITS. "=" OPTIONAL). THIS CARD IS OPTIONAL. IF
R0033 IT IS LACKING OR INVALID, THE PRINT LIMIT IS 5000 LINES.
R0035 S TRACE ON NNNN TURN ON TRACE JUST BEFORE C(NNNN) IS EXECUTED.
R0037 S TRACE OFF NNNN TURN OFF TRACE JUST AFTER C(NNNN) IS EXECUTED.
R0039 S TRACE ON R:NNNN TURN TRACE ON JUST BEFORE NNNN IS REFERRED TO.
R0041 S TRACE OFF R:NNNN TURN TRACE OFF JUST AFTER NNNN IS REFERRED TO.
R0043 ANY NUMBER OF TRACE ON/OFF SUBDIRECTORS MAY BE SUBMITTED, PROVIDED THAT
R0045 THEY SPECIFY UNIQUE OCTAL ADDRESSES NNNN.
0047 SACO SIMU TS BANK 1 Z,X0 WHAT SUBD THIS INSTRUCTION IS AT BASE ADDRESS.
R0049 MAIN BODY OF PROGRAM FOLLOWS CONSTANTS, ETC.
# Page 702
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 2 PAGE 31
P0050 FIELD AND SHIFT MASKS.
0051 B,B3TB12 OCT -7774
0052 B,CHAR1 OCT 77
0053 B,CHAR6 OCT -77 0000
0054 B,CHAR7 OCT -7700
0055 B,CHAR8 OCT -77
0056 B,EFLAG OCT 00001
0057 B,EDITFLG OCT 00002
0058 B,LPFLAG OCT 00004
0059 B,FLAGS OCT 00007
0060 B,C7T8 OCT -7777
0061 B,CAC3 DEC -GGGG
0062 B,SIGN OCT -100000
0063 B,CHANGMSK OCT 3
0064 B,DCHECK OCT 6060 6060 6060 6060
P0065 FURTHER SHIFT MASKS.
0066 S,D12 DEC -G
0067 S,C1T3 OCT 777777
00672 S, ACO6 OCT -70000
0068 S,ACO8 OCT -7
0069 S,ACH7 OCT -1700
0070 S,MSK5 OCT -700000000
0071 S,MSK4 OCT -7000000
0072 S,MSK3 OCT -70000
0073 S,MSK2 OCT -700
0074 S,ONE OCT -1
0075 S,THREE OCT -3
0076 S,LOW14 OCT -37777
0077 S,LOW15 OCT -77777
0078 S,CAC1 DEC GGGG
0079 S,CAC2 DEC 0000 GGGG
0080 S,ONES DEC GGGG GGGG GGGG
0081 S,US OCT -40000
0082 S,DVMSK OCT 037777
# Page 703
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 3 PAGE 32
P0083 RESERVATIONS.
0084 T1 RESERVE 1
0085 T2 RESERVE 1
0086 T3 RESERVE 1
0087 T4 RESERVE 1
0088 INSTR RESERVE 1
0089 INSTR2 RESERVE 1
0090 DBEF RESERVE 1
0091 DATA RESERVE 1
0092 LOCATION RESERVE 1
0093 ZDECR RESERVE 1
0094 NEW Z RESERVE 1
0095 EDIT WD RESERVE 1
0096 PAT PTR RESERVE 1
R0097 ADDRESS CONSTANTS.
0098 BANK 1 SPEC,B1 DAMN ZERO
0099 BANK 2 SPEC,B2 DAMN ZERO
0100 BANK 8 SPEC,B8 DAMN ZERO
0101 BANK 5 SPEC,B5 DAMN ZERO
0102 BANK8 M3 SPEC,B7 2045
0103 SPEC 1777 SPEC,B2 1023
0104 L SIXES SPEC SIXES
0105 OP ALF SPEC OP ALF T
0106 PRIN SPEX SPEC LINE +3
0107 SPEC NEXT LINE +3
0108 SPEC NEXT LINE +9
0109 SPEC LINE +9
0110 IN PTR SPEC MASK LOC +64
0111 OUT PTR SPEC MASK LOC +64
0112 LAST PTR SPEC MASK LOC +64
0113 L STD PLIM SPEC UNRC SUBD +1
0114 L GOGO P1 SPEC CONTINUE +1
0115 L RECYCLE SPEC RECYCLE
0116 L TRON OFF SPEC TR ON OFF
0117 DEC 853 SPEC,B0 853
01178 PHI WAA SPEC,B7 600
0118 SACO MSKS MASKBASE S,1 F,1
# Page 704
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 4 PAGE 33
P0119 ALPHABETIC CONSTANTS -- FIRST OF FOUR PAGES.
0120 W SUBDIRC ALF,2 SUBDIRECTOR:
0121 W START ALF START
0122 W AT ALF AT
0123 START MSG ALF,2 START AT
0124 W PRINT ALF PRINT
0125 W LIMIT ALF LIMIT
0126 ALF 5000 ALF 5000
0127 PLIM MSG ALF,3 PRINT LIMIT =
0128 2 LONS MSG ALF,3 START ADDRESS TOO LONG
0129 UNOCS MSG ALF,3 START ADDRESS NOT OCTAL
0130 2 LONP MSG ALF,3 PRINT LIMIT TOO LONG
0131 UNDPL MSG ALF,3 PRINT LIMIT NOT DECIMAL
0132 NO PAL MSG ALF,3 NO PARAGRAPHS LOADED
0133 EMRGY MSG ALF,4 IN EMERGENCY, ABORT TASK BY F79
0134 PAGE 1 ALF PAGE 1
0135 SIMU HEAD OCT 0024
0136 ALF,5 YUL SYSTEM (MISCGA 2) FOR SACO:
0137 ALF,5
0138 ALF,5
# Page 705
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 5 PAGE 34
P0139 ALPHABETIC CONSTANTS -- SECOND OF FOUR PAGES.
0140 SUBHEAD OCT 0002
0141 ALF,5 LOC OP ADDR A B(X)
0142 ALF,5 A(X) LP Q OVCTR T3
0143 ALF,5
0144 OCT 4
0145 LINE ALF,5
0146 ALF,5
0147 ALF,5
0148 OP ALF 1 ALF,4 TC CCS INDEX XCH
0149 ALF,4
0150 ALF,4 MP DV SU
0151 ALF,4 CS TS AD MASK
# Page 706
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 6 PAGE 35
P0152 ALPHABETIC CONSTANTS -- THIRD OF FOUR PAGES.
0153 SP1 OCT 0001
0154 NEXT LINE ALF,5
0155 ALF,5
0156 ALF,5
0157 RESERVE 7 USED IN DITTO PROCEDURE.
0159 W TRACE ALF TRACE
0160 W ON ALF ON
0161 W OFF ALF OFF
0162 W R ALF R
0163 BLANK 1T3 ALF 00000
0164 BLANK 1T4 ALF 0000
0165 OVF BLOT ALF ▪00000
0166 ZERO C6 ALF 0
0167 DITTO ALF "
0168 DEC -5000
0169 PRINT LIM DEC -5000
0170 SKIP OCT 4
0171 BLANKS ALF
01722 W CUT OFF ALF CUT OFF
0173 W ILLEGOP ALF ILLEGOP
0174 W LOOPING ALF LOOPING
0175 W PRNT MAX ALF PRINTMAX
0176 W INF LOOP ALF,2 INFINITE LOOP
0177 CAUSE ALF,2 00000000
0178 T DUMP MSG ALF,5 TERMINAL DUMP OF ERASABLE MEMORY FOLLOWS
0179 END SI MSG ALF,2 END SIMULATION
# Page 707
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 7 PAGE 36
P0180 ALPHABETIC CONSTANTS -- FOURTH OF FOUR PAGES.
0181 2 LONT MSG ALF,4 TRACE ON/OFF ADDRESS TOO LONG
0182 UNOTR MSG ALF,4 TRACE ON/OFF ADDRESS NOT OCTAL
0183 DUPTR MSG ALF,4 TRACE ON/OFF ADDRESS DUPLICATED
0184 OMIT MSG ALF,5 TRACE OFF FOR INSTRUCTIONS
0185 W CORONER ALF,2 CORONER'S REPORT
# Page 708
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 8 PAGE 37
P0186 NUMERIC CONSTANTS.
0187 ZERO OCT 0
0188 TWO OCT -2
0189 FOUR OCT -4
0190 EIGHT DEC -8
0191 TWEVLE FXBIN -12
0192 FIFTY FXBIN -50
0193 C65 FXBIN -65
0194 DEC 852 FXBIN -852
0195 2K OCT -2000
0196 5 C6 OCT -5 0000
0197 6 C6 OCT -6 0000
0199 SIXES OCT 06, 06, 0606, 060606, 0606 0606
0200 OCT 0606 0606 06
0201 SP3 OCT 0003
0202 NEG ONE OCT -177776
0203 BIT 14 OCT -20000
0204 SIGN CLIP DEC 0GGG GGGG
0205 BANK MASK OCT -36000
0206 EDIT PREF OCT -20
0207 GENERASE OCT -25
0208 L BANK REG OCT -15
0209 START ADR OCT 0
0210 HOLD LINE DEC GGGG GGGG GGGG,-1, 0
0211 LINE CNT FXBIN -51
0212 TASK LINS DEC 0
0213 PAGE NO DEC -1
0214 TRACE OFF DEC 0
0215 LOC FLAG OCT 2
0216 ON OCT 3
0217 OFF OCT 5
0218 B1B2 OCT 6
# Page 709
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 9 PAGE 38
P0219 ASSIGNMENTS.
0220 PAGE HEAD ASSIGN 0,20
0221 YUL TYPER ASSIGN 0,63
0222 RD SBDIRC ASSIGN 0,65
0223 HOWZAT ASSIGN 0,66
0224 IGN SUBDR ASSIGN 0,68
0225 UNRC SBDR ASSIGN 0,69
0226 E SYLT OK ASSIGN 0,70
0227 FETCH SS ASSIGN 0,71
0228 MANUF RTN ASSIGN 0,76
0229 YUL MASKS ASSIGN 0,77
0230 OCTAL 20 ASSIGN 0,78
0231 WHODUNIT ASSIGN 0,80
0233 TYP ABORT ASSIGN 0,89
0234 L OBJC MSG ASSIGN 0,90
0235 RJEC SUBD ASSIGN 0,91
02351 DEPAGIN8 ASSIGN 0,101
02352 YUL D2A ZS ASSIGN 0,119
0236 A ASSIGN 4,0
0237 Q ASSIGN 4,1
0238 Z ASSIGN 4,2
0239 LP ASSIGN 4,3
0240 BANKREG ASSIGN 4,13
0241 CYR ASSIGN 4,16
0242 SR ASSIGN 4,17
0243 CYL ASSIGN 4,18
0244 SL ASSIGN 4,19
0245 OVCTR ASSIGN 4,28
0246 TIME1 ASSIGN 4,29
0247 TIME2 ASSIGN 4,30
0248 TIME3 ASSIGN 4,31
0249 MON TAPE ASSIGN 7,1
0250 EOR ASSIGN 7,4
0251 MON PRINT ASSIGN 7,23
0252 MON A2D ASSIGN 7,41
0253 MON WAKE ASSIGN 7,99
0254 MON SLEEP ASSIGN 7,166
# Page 710
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 10 PAGE 39
P0257 EQUIVALENCES.
0258 DAMN ZERO EQUALS 0
0259 AA EQUALS 128
0260 AMTF EQUALS 384
0261 SPRA EQUALS 128
0262 SP2 EQUALS SUBHEAD
0263 OCT 7 EQUALS ACO8
0264 LOW2 EQUALS THREE
0265 LOW4 EQUALS D12
0266 LOW12 EQUALS C7T8
# (jl) Note: The following two cards seem to specify the same equivalence. Does the assembler ignore
# multiple identical equivalences?
0267 16 ONES EQUALS CAC3
0268 16 ONES EQUALS CAC3
0269 E BIT EQUALS E FLAG
0270 LP BIT EQUALS LP FLAG
0271 LOW 16 EQUALS CAC3
0272 SPEC ZERO EQUALS SIGN
0273 POINTERS EQUALS IN PTR
# Page 711
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 11 PAGE 40
P0274 TWO PRIMARY SUBDIRECTORS ARE RECOGNIZED FOR USE WITH MISCGA. THE FIRST, WHICH IS REQUIRED, SPECIFIES
R0276 THE STARTING ADDRESS BY "START AT NNNN", WHERE NNNN IS FROM 1 TO 4 OCTAL DIGITS. THE SECOND IS OPTIONAL AND
R0278 SPECIFIES A PRINT LINE LIMIT BY "PRINT LIMIT = DDDDD" (THE "=" IS OPTIONAL, AND "DDDDD" IS FROM 1 TO 5 DECIMAL
R0280 DIGITS). IF THE PRINT LIMIT SUBDIRECTOR IS MISSING OR INVALID, THE PRINT LIMIT IS 5000 LINES.
0282 WHAT SUBD TX YUL MASKS - Z,MXR
0283 S,YUL TYPER W SUBDIRC AA+2 C,+1 TYPE "SUBDIRECTOR:".
0285 WA Z,X6 OCTAL 20 Z,X5
0286 SUSPECT TX Z,X5 - WHODUNIT
0287 NA N,X5,3 W START HOWZAT "START" IS REQUIRED.
0289 TS SACO MSKS Z,MXR C,-2 C
0290 NA N,X5,3 W AT HOWZIS "AT" IS REQUIRED.
0292 LA, CHAR6 5 C6 5,2 ILL START BRANCH IF START ADR MORE THAN 4 DIGITS.
0294 LA, CHAR6 5,2 ZERO UNO START BRANCH IF START ADDRESS IS BLANK.
0296 LA, CHAR8 EIGHT 5,2 UNO START BRANCH IF START ADDRESS NOT OCTAL.
0298 WA Z,X5 THREE WHODUNIT
0299 NA 5,3 ONES HOWZIS SUPERFLUOUS WORDS ARE FORBIDDEN.
0301 SWS, ONES N,X5 A,1 START MSG +1
0302 TS YUL MASKS Z,MXR E SYLT OK MAKE GRP B SEEK DESIRED PROGRAM.
0304 S, YUL TYPER START MSG AA+2 C,+1 TYPE START ADDRESS.
0306 TS SACO MSKS Z,MXR C,+3
0307 SWS, ONES START ADR 3,L START ADR SHIFT UP DIGITS THUS FAR.
0309 SWS, ACO8 START MSG +1 A,7 START ADR CONVERT ALPHA START ADR TO OCTAL.
0311 SWS, ONES START MSG +1 A,1,L START MSG +1 POSITION NEXT ALPHA OCTAL DIGIT.
0313 NA, CHAR1 START MSG +1 BLANKS C,-3 BRANCH IF MORE START ADR DIGITS.
0315 WA Z,X6 OCTAL 20 Z,X5
0316 TS Z,X5 WHODUNIT RD SBDIRC READ 2ND SUBDIRECTOR IF ANY.
0318 STD PLIM TS ALF 5000 ALF PLIM PROC PLIM WHEN 2ND SUBDIRECTOR LACKING OR BAD.
0320 TX WHODUNIT - Z,X5
0321 TX TWO - HOLD LINE +1 SHOW THAT A SUBDIRECTOR WAS READ.
0323 NA N,X5,3 W PRINT STD PLIM IF NOT "PRINT", MAYBE "TRACE".
0325 TS ZERO HOLD LINE +1 SUSPECT C SHOW THAT PRINT LIMIT CARD WAS READ.
0327 NA N,X5,3 W LIMIT UNRC SUBD "LIMIT" IS REQUIRED.
0329 LA, CHAR6 6 C6 5,2 ILL PLIM BRANCH IF PRINT LIMIT OVER 5 DIGITS.
0331 SWE, CHAR8 5,2 A,2 Z,AU1
0332 WA Z,AU1 L SIXES Z,AU1
0333 WA N,AU1 N,X5 PRINT LIM
0334 NA, DCHECK PRINT LIM ZERO UNDC PLIM BRANCH IF PRINT LIMIT NOT DECIMAL.
0336 TS N,X5,3 ALF PLIM SUSPECT C
0337 NA N,X5 ONES UNRC SUBD SUPERFLUOUS WORDS ARE FORBIDDEN.
0339 PROC PLIM SWS, C7T8 ALF PLIM A,2,L PLIM MSG +1 USE CORRECTLY SPECIFIED PRINT LIMIT OR
0341 SWS, C1T3 ALF PLIM A,2,L PLIM MSG +2 USE 5000 LINES OTHERWISE.
0343 TS Z,SC,1 Z,X4 MON A2D COMVERT ALPHA TO DECIMAL.
0345 ALF PLIM RESERVE 2
0346 TS ALF PLIM +1 PRINT LIM WHAT SUBD C STORE LIMIT, RECOVER BK 1 MASKS.
0348 S, YUL TYPER PLIM MSG AA+3 C,+1 TYPE PRINT LIMIT.
# Page 712
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 12 PAGE 41
P0350 INITIALIZE PAGE HEAD, SACO MEMORY, PRINT BUFFER FLAG TABLE. READ TRACE ON/OFF SUBDIRECTOR CARDS, PLANT FLAGS.
0352 SC MASKER TX SACO MSKS - Z,MXR
0353 TX PAGE HEAD +1 - SIMU HEAD +1 PUT LOG NUMBER INTO PAGE HEADING.
0355 TX L OBJC MSG - Z,AU1
0356 TN N,AU1 7 SIMU HEAD +6 PUT OBJECT MESSAGE INTO PAGE HEADING.
0358 TN PAGE HEAD +12 2 N,AU2 ALSO FANCY DATE.
0360 S, MON PRINT SIMU HEAD PRINT PARTIAL PAGE HEAD. SP20.
0362 TX PAGE 1 - SIMU HEAD +15
0363 TN BANK 2 2 Z,X4 BANK2 TO X4, BANK 8 TO X5.
0365 TX C65 - Z,AU1
0366 MT E BIT 63 N,X4,1 CLEAR SACO MEMORY.
0368 MT ZERO 63 N,X5,1 CLEAR PRINT BUFFER FLAG TABLE.
0370 NA Z,AU1,1 ONE C,-2
0371 TX E BIT - N,X4
0372 TX ZERO - N,X5
0373 SSL, THREE HOLD LINE +1 0 TR ON OFF CHOICE IS 0, 1, OR 2.
0375 UNREC SBD TS YUL MASKS Z,MXR UNRC SBDR UNRECOGNIZED WD IN TRACE ON/OFF SUBDIR.
0377 TR ON OFF TS SACO MSKS Z,MXR RD SBDIRC GET TRACE ON/OFF SUBDIRECTOR IF ANY.
0379 TS IN PTR Z,AU1 INIT BUFF EXIT WHEN SUBDIRECTORS RUN OUT.
0381 WA Z,X6 OCTAL 20 Z,X5
0382 TX Z,X5 - WHODUNIT
0383 NA N,X5,3 W TRACE UNREC SBD "TRACE" IS REQUIRED.
0385 TX Z,X5 - WHODUNIT
0386 NA N.X5 W ON C,+3
0387 TX OFF - EDIT WD
0388 TS Z,X5,3 - C,+3
0389 NA N,X5,3 W OFF UNREC SBD EITHER "ON" OR "OFF" IS REQUIRED.
0391 TX ON - EDIT WD
0392 NA N,X5 W R C,+2 "R:" FOR REFERENCE IS OPTIONAL.
0394 TS Z,X5,3 - C,+2
0395 EX EDIT WD B1B2 EDIT WD CLEAR REEFERENCE BIT IF NO "R:".
0397 LA, CHAR6 5 C6 5,2 ILL TRONF BRANCH IF ADDRESS MORE THAN 4 DIGITS.
0399 LA, CHAR6 5,2 ZERO UNO TRONF BRANCH IF ADDRESS IS BLANK.
0401 LA, CHAR8 EIGHT 5,2 UNO TRONF BRANCH IF ADDRESS IS NOT OCTAL.
0403 WA Z,X5 THREE WHODUNIT
0404 NA 5,3 ONES UNREC SBD SUPERFLUOUS WORDS ARE FORBIDDEN.
0406 TX N,X5 - LOCATION
0407 TS ZERO Z,X5 C,+2
0408 SWS, ONES Z,X5 3,L Z,X5 SHIFT UP DIGITS THUS FAR.
0410 SWS, ACO8 LOCATION A,7 Z,X5 CONVERT ALPHA ADDRESS TO OCTAL.
0412 SWS, ONES LOCATION A,1,L LOCATION POSITION NEXT ALPHA OCTAL DIGIT.
0414 NA, CHAR1 LOCATION BLANKS C,-3 BRANCH IF MORE ADDRESS DIGITS.
0416 WA Z,X5 BANK 8 Z,X5 FIND PLACE IN TABLE IN BANKS 8 AND 9.
0418 NA N,X5 ZERO DUP TRONF BRANCH IF ADDRESS IS A DUPLICATE.
0420 TS EDIT WD N,X5 TR ON OFF PLANT TRACE ON/OFF FLAG, GET NEXT SUBDR.
# Page 713
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 13 PAGE 42
P0422 INITIALIZE PRINT BUFFER AND LOAD PROGRAM INTO BANKS 2 AND 3.
0423 INIT BUFF MT ZERO 3 N,AU1,1
0424 TX Z,AU1,1 - Z,AU2
0425 SWE, CAC2 Z,AU1 16,L N,AU2 INITIALIZE TRACE LINE (PRINT) BUFFER.
0427 NA Z,AU1 BANK 5 C,-3
0428 TS IN PTR Z,AU1 C,-2 C
0429 READ LOOP TS BANK 2 Z,X5 FETCH SS FETCH A PARAGRAPH IF ANY LEFT.
0431 TS START ADR 5,2 END LOAD NO MORE, INITIALIZE Z REGISTER AND BGIN.
0433 LA OCTAL 20 1,2 C,-1 CUT OFF LOADING AFTER BANK 3.
0435 TX Z,X5 - Z,R3
0436 WA Z,X1 THREE Z,X5 1800 ADDRESS OF 1ST WD IN PARAGRAPH.
0438 SWS, LOW12 1,2 8,L Z,R3 DITTO IN SACO MEMORY.
0440 LOAD LOOP EX N,X5,1 16 ONES INSTR
0441 SWS, LOW15 INSTR 1 INSTR CROP PARITY AND DUPLICATE SIGN.
0443 TS SP3 SIMU HEAD FLAGSET C APPLY FLAGS TO WORD.
0445 TX INSTR - N,R3,1 LOAD WORD INTO SACO MEMORY.
0447 NA 5,2 EOR LOAD LOOP BRANCH IF MORE WORDS IN PARAGRAPH.
0449 TS - - READ LOOP GO TO GET NEXT PARAGRAPH.
0451 END LOAD TS YUL MASKS Z,MXR MON TAPE
0452 RW,1 - - - REWIND YULPROGS.
0454 LA SIMU HEAD SP3 OK LOAD BRANCH IF ANY PARAGRAPHS LOADED.
0456 TN NOPAL MSG 3 LINE +7
0457 S, MON PRINT LINE -1 PRINT "NO PARAGRAPHS LOADED".
0459 S, YUL TYPER NOPAL MSG AMTF +3 TYP ABORT TYPE "NO PARAGRAPHS LOADED", ABORT.
0461 OK LOAD TX PHI WAA - Z,X4
0462 TS Z,SC,6 4,107 MON WAKE C
0463 TS Z,SC Z,R0 OK LOAD C SET UP SPECIAL FIXED START FOR ABORTING.
0464 GRP B PCR SPCR N,R0,3
0465 TS ZERO GB SWITCH MON SLEEP C GO TO SLEEP AND AWAIT FIXED START.
0466 LA CAUSE ZERO C,-1 BEWARE OF ACCIDENTAL WAKING.
0467 TS C,+1 RECYCLE2 +2 4,106 SET TRIPWIRE FOR MAIN GROUP.
0468 S, MON TYPER W CUT OFF SPRA +8 TERM DUMP GROUP A TYPES "CUT OFF ", ABORTS.
0469 TS ZERO LOCATION SC MASKER C
0470 GB SWITCH WD Z,SC ONE Z,SC
0471 SWS, ACO6 GRP B PCR 16 EMRGY MSG +3
0472 S, YUL TYPER EMRGY MSG AA +4 C,+1 TYPE "IN EMERGENCY, ABORT TASK BY FB9 ".
0473 TX BANK 2 - Z,R1
0474 TX BANK 2 - Z,R3
0475 TX BANK 2 - Z,X4
0476 TS SPEC ZERO Z,R7 RECYCLE INITIALIZE SPECIAL REGISTERS, BEGIN.
# Page 714
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 14 PAGE 43
P0478 SUBROUTINE TO APPLY FLAGS DURING LOADING, INDEXING, AND TC TO A.
0479 FLAGSET LA,LOW12 2K INSTR ZEROFLG C
0480 LA,LOW12 GENERASE INSTR EFLAG2 C
0481 NA,B3TB12 INSTR EDITPREF C,+2 C
0482 SS EDITFLG FLAGS INSTR
0483 NA,LOW12 LOW2 INSTR C,+2 C
0484 SS LPFLAG FLAGS INSTR
0485 EFLAG2 SS EFLAG FLAGS INSTR
0486 ZEROFLG SS ZERO FLAGS INSTR
R0487 UNRECOGNIZED WORD IN "START AT" SUBDIRECTOR CARD.
0488 HOWZIS TS YUL MASKS Z,MXR HOWZAT UNRECOGNIZED-WORD ABORT.
R0490 START ADDRESS ILLEGAL.
0491 ILL START TX YUL MASKS - Z,MXR
0492 S, YUL TYPER 2 LONS MSG AMTF +3 RJEC SUBD START ADDRESS TOO LONG.
0494 UNO START TX YUL MASKS - Z,MXR
0495 S, YUL TYPER UNOCS MSG AMTF +3 RJEC SUBD START ADDRESS NOT OCTAL.
R0497 UNRECOGNIZED WORD IN "PRINT LIMIT" SUBDIRECTOR CARD.
0498 UNRC SUBD TS YUL MASKS Z,MXR UNRC SBDR UNRECOGNIZED WORD IN PRINT LIMIT SUBDIR.
0500 TS SACO MSKS Z,MXR STD PLIM SET PRINT LIMIT = 5000 IN THIS CASE.
R0502 ILLEGAL PRINT LIMIT. USE 5000.
0503 ILL PLIM TX YUL MASKS - Z,MXR
0504 S, YUL TYPER 2 LONP MSG AMTF +3 C,+3 PRINT LIMIT TOO LARGE.
0506 UNDC PLIM TX YUL MASKS - Z,MXR
0507 S, YUL TYPER UNDPL MSG AMTF +3 C,+1 PRINT LIMIT NOT DECIMAL.
0509 TS L STD PLIM Z,SC IGN SUBDR USE PRINT LIMIT = 5000 IN THESE CASES.
R0511 ILLEGAL OR DUPLICATED TRACE ON/OFF ADDRESS.
0512 ILL TRONF TX YUL MASKS - Z,MXR
0513 S, YUL TYPER 2 LONT MSG AMTF +4 C,+5
0514 UNO TRONF TX YUL MASKS - Z,MXR
0515 S, YUL TYPER UNOTR MSG AMTF +4 C,+3
0516 DUP TRONF TX YUL MASKS - Z,MXR
0517 S, YUL TYPER DUPTR MSG AMTF +4 C,+1
0518 TS L TRON OFF Z,SC IGN SUBDR
# Page 715
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 15 PAGE 44
P0519 MAIN SIMULATOR LOOP.
0520 RECYCLE SS Z LOW12 Z,R1
0521 WA Z ONE Z
0522 TX N,R1 - INSTR
0523 RECYCLE2 SS INSTR LOW12 Z,R1
0524 EX N,R1 LOW 16 DBEF
0525 LA, LOW12 Z 2K EXERASE BRANCH IF ABOUT TO EXECUTE FROM E MEMRY.
0527 SSL,LOW4 INSTR 12 C,+1
0528 TS Z,R7,1 - TC 0000
0530 TS Z,R7,2 - CCS 0001
0532 TS Z,R7,2 - INDEX 0010
0534 TS Z,R7,2 - XCH 0011
0536 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0100
0538 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0101
0540 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0110
0542 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 0111
0544 S, MON TYPER W ILLEGOP SPRA +8 TERMDUMP 1000
0546 TS Z,R7,8 - MP 1001
0548 TS Z,R7,16 - DV 1010
0550 TS Z,R7,2 - SU 1011
0552 TS Z,R7,2 - CS 1100
0554 TS Z,R7,2 - TS 1101
0556 TS Z,R7,2 - AD 1110
0558 TS Z,R7,2 - MASK 1111
0560 EXERASE TS Z,SH Z,SC FLAG SET C SET FLAGS BEFORE EXECUTING FROM E MEMRY.
R0562 RETURN HERE AFTER EACH INSTRUCTION.
0563 REEDCHK TS - - EDITCHK C
0564 TX LRECYCLE T4
0565 TIMES LA Z,R7 DEC853 EDITOR
0566 WA TIME1 ONE TIME1
0567 SWE,ONE TIME1 14 T1
0568 EX TIME1 LOW14 TIME1
0569 WA T1 TIME2 TIME2
0570 WA TIME3 ONE TIME3
0571 WD Z,R7 DEC852 Z,R7
0572 NA,SIGN TIME3 SIGN EDITOR
0573 TX ZERO - TIME3
0574 S, MON TYPER C,+1 SPRA +8 TERMDUMP
0575 ALF T3RUPT
# Page 716
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 16 PAGE 45
P0576 PROCEDURE FOR TC (TRANSFER CONTROL).
0577 TC TX N,R1 - INSTR2
0578 TX Z - Q
0579 EX Z,R1 LOW12 NEWZ
0580 TC1 TX ONE - ZDECR
0581 TS ZERO T4 TIMES
R0582 PROCEDURE FOR CCS (COUNT COMPARE AND SKIP).
0583 CCS EX N,R1 16ONES A
0584 TX ONE - ZDECR
0585 NA,SIGN A ZERO NEGCCS
0586 NA A ZERO C,+4
0587 ZEROBR WA Z ONE Z
0588 WA ZDECR ONE ZDECR
0589 TS - - REEDCHK
0590 DECBR WD A ONE A
0591 TS - - REEDCHK
0592 NEGCCS WA Z TWO Z
0593 TX THREE - ZDECR
0594 NA A 16ONES C,+2
0595 TS ZERO A ZEROBR
0596 HA A 16ONES A
0597 TS - - DECBR
# Page 717
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 17 PAGE 46
P0598 PROCEDURE FOR INDEX (INDEX NEXT INSTRUCTION).
0599 INDEX EX N,R1 16ONES T1
0690 SS Z LOW12 Z,R3
0601 TX Z - NEWZ
0602 WA N,R3 T1 DATA
0603 SWE,ONE DATA 16 T1
0604 WA T1 DATA DATA
0605 TS ONE ZDECR EDITCHK C
0606 TX INSTR - T2
0607 EX DATA 16ONES INSTR
0608 TS - - FLAGSET C
0609 TX INSTR - INSTR2
0610 TX T2 - INSTR
0611 TS ZERO T4 TIMES
R0612 PROCEDURE FOR XCH (EXCHANGE).
0613 XCH NA,FLAGS INSTR ZERO XCH1
0614 EX N,R1 16ONES A
0615 TS ONE ZDECR REEDCHK+1
0616 XCH1 TX N,R1 - DATA
0617 LA,LOW12 INSTR TWO C,+2
0618 SWS,US A 1 A
06182 NA,LOW12 INSTR TWO C,+3
06184 TX A - NEWZ
06186 TS DATA A TC1
0619 TX A - N,R1
0620 NA,LOW12 INSTR LBANKREG C,+2
0621 EX N,R1 BANKMASK N,R1
0622 TX ONE - ZDECR
0623 TS DATA A REEDCHK
# Page 718
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 18 PAGE 47
P0624 PROCEDURE FOR CS (CLEAR AND SUBTRACT).
0625 CS HA N,R1 16ONES DATA
0626 TX ONE - ZDECR
0627 TS,16ONES DATA A REEDCHK
R0628 PROCEDURE FOR TS (TRANSFER TO STORAGE).
0629 TS TX ONE - ZDECR
0639 TX A - NEWZ
0640 LA,LOW12 INSTR TWO C,+4
0641 SWS,US NEWZ 1 NEWZ
0642 NA,LOW12 INSTR LBANKREG C,+2
0643 EX NEWZ BANKMASK NEWZ
0644 OVIND SSL,LOW2 A 14 C,+1
0645 TS - - TSZ CHK
0646 TS ONE A TS SKIP
0647 TS NEGONE A TS SKIP
0648 TSZ CHK NA, LOW12 INSTR TWO C,+2
06482 TS ZERO T4 TIMES
06484 TS NEWZ N,R1 REEDCHK
0649 TS SKIP WA Z ONE Z
0650 TS TWO ZDECR TSZ CHK
# Page 719
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 19 PAGE 48
P0653 PROCEDURE FOR AD (ADD).
0654 AD WA N,R1 A DATA
0655 SWE,ONE DATA 16 A
0656 WA DATA A DATA
0657 EX DATA 16ONES A
0658 TX ONE - ZDECR
0659 SSL,LOW2 A 14 C,+1
0660 TS - - REEDCHK
0661 TS ONE T1 OVCTRINC
0662 TS NEGONE T1 OVCTRINC
0663 TS - - REEDCHK
0664 OVCTRINC WA T1 OVCTR OVCTR
0665 SWE,ONE OVCTR 16 T1
0666 WA T1 OVCTR OVCTR
0667 EX OVCTR 16ONES OVCTR
0668 TS Z,R7,1 - REEDCHK
R0669 PROCEDURE FOR MASK (BOOLEAN AND).
0670 MASK EX N,R1 16ONES DATA
0671 EX DATA A A
0672 TS ONE ZDECR REEDCHK+1
R0673 INTRODUCTION TO PROCEDURE FOR SU (SUBTRACT). JOINS PROCEDURE FOR AD.
0674 SU HA N,R1 16ONES DATA
0675 WA DATA A DATA
0676 TS - - AD+1
R0677 PROCEDURE FOR MP (MULTIPLY).
0678 MP TS ONE ZDECR SGNABS C
0679 BM A DATA T2
0680 TS - T2 -
0681 EX T2 LOW14 LP
0682 SWE,LOW14 T2 14 A
0683 NA,SIGN T1 SIGN REEDCHK +1
0684 HA A 16ONES A
0685 HA LP 16ONES LP
0686 TS - - REEDCHK +1
# Page 720
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 20 PAGE 49
P0687 PROCEDURE FOR DV (DIVIDE).
0688 DV TX N,R1 - DATA
0689 TX ZERO - T4
0690 HA,SIGN DATA A T4
0691 SWS,US T4 1 T4
0692 SM ONE T4 T4
0693 NA,SIGN DATA SIGN C,+3
0694 NA,SIGN A ZERO C,+2
0695 SS ZERO ONE T4
0696 TS ONE ZDECR SGNABS C
0697 LA,LOW16 DATA A DVOVF
0698 SWE,DVMSK DATA 30,L DATA
0699 SWE,DVMSK A 30,L A
0700 BD DATA A T3
0701 EX T3 DVMSK T3
0702 BM T3 DATA T2
0703 EX T2 SIGNCLIP T2
0704 WD A T2 T2
0705 SWE,LOW14 T2 16 Q
0706 HA Q 16ONES Q
0707 SWE,LOW14 T3 30 A
0708 TX T4 - LP
0709 NA,SIGN T1 SIGN REEDCHK +1
0710 HA A 16ONES A
0711 TS - - REEDCHK +1
0712 DV OVF S, MON TYPER C,+1 SPRA +8 TERMDUMP
0713 ALF DIV OVF
R0714 SUBROUTINE TO GENERATE SIGN AND ABSOLUTE VALUE OF AN OPERAND. USED BY MULTIPLY AND DIVIDE.
0716 SGNABS EX N,R1 16ONES DATA C
0717 SWS,US DATA 1 DATA C
0718 SWS,US A 1 A C
0719 HA A DATA T1 C
0720 NA,SIGN DATA SIGN C,+2 C
0721 HA DATA 16ONES DATA C
0722 NA,SIGN A SIGN C,+2 C
0723 HA A 16ONES A
0724 TX - - -
# Page 721
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 21 PAGE 50
P0725 PROCEDURE TO SIMULATE THE ACTION OF EDITING REGISTERS.
0726 EDITCHK NA,FLAGS INSTR ZERO C,+2 C
0727 TX - - FAST EXIT WHEN NO EDITING REGS INVOLVED.
0729 NA,EBIT INSTR ZERO C,-1 C
0730 NA,LPBIT INSTR ZERO LPCYCLE C BRANCH WHEN OPERAND IS LP.
0732 SSL,LOW4 INSTR 2,L C,+1 C
R0733 PROCEDURE TO SIMULATE CYR (CYCLE RIGHT).
0734 CYRCYCLE SWS,SIGN CYR 15,L CYR C
0735 SWS,LOW15 CYR 1 CYR
0736 PR
0737 PR
R0738 PROCEDURE TO SIMULATE SR (SHIFT RIGHT).
0739 SRCYCLE SWS,LOW14 SR 1 SR
R0740 PROCEDURE TO SIMULATE LP (LOW-ORDER PRODUCT REGISTER).
0741 LPCYCLE SWS,SIGN LP 15,L LP C
0742 SWS,LOW15 LP 1 LP C
0743 SS ZERO BIT14 LP
R0744 PROCEDURE TO SIMULATE CYL (CYCLE LEFT).
0745 CYLCYCLE SWS,LOW15 CYL 1,L CYL C
0746 SWS,ONE CYL 15 CYL C
0747 SWS,SIGN CYL 1,L CYL
0748 PR
R0749 PROCEDURE TO SIMULATE SL (SHIFT LEFT).
0750 SLCYCLE SWS,LOW14 SL 1,L SL C
0751 SWS,ONE SL 14 SL
# Page 722
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 22 PAGE 51
P0752 EDITOR ROUTINE TO PREPARE PRINTED OUTPUT. THIS PART DETECTS THE OCCURRENCE OF INFINITE LOOPS. THE
R0754 BINARY OUTPUT OF A TRACED INSTRUCTION, NINE SACO WORDS, IS CONDENSED INTO THREE CAC-WORDS. A BUFFER OF FOUR-
R0756 WORD ITEMS IS MAINTAINED, WHERE THE FIRST THREE WORDS ARE A TRIPLE OF CAC-WORDS FOR A LINE, AND THE FOURTH IS
R0758 A CAC-WORD CONTAINING A THREAD TO THE NEXT ITEM (IN ORDER OF PRINTING) IN CAC2, AND A THREAD TO THE NEXT ITEM
R0760 WITH THE SAME VALUE OF Z IN CAC3 (OR ZERO IF NONE). BANKS 8 AND 9 CONTAIN SPECS, EACH POINTING TO THE EARLIEST
R0762 ITEM IN THE BUFFER WITH THE CORRESPONDING VALUE OF Z. BY "VALUE OF Z" HERE IS MEANT B(Z), I.E. THE LOCATION.
R0764 AN INDICATOR IS KEPT IN START ADR SHOWING WHETHER A LOOP PATTERN IS IN A STATE OF PARTIAL COMPLETION. UP TO
R0766 FOUR POINTERS ARE KEPT (POINTERS ARE SPECS POINTING TO ITEMS IN THE BUFFER). THE TWO THAT ARE ALWAYS KEPT ARE
R0768 "IN PTR", POINTING TO THE NEXT ITEM-SLOT TO BE FILLED AND "OUT PTR" POINTING TO THE NEXT ITEM TO BE PRINTED.
R0770 WHEN A LOOP PATTERN IS IN PROCESS, "PAT PTR" POINTS TO THE FIRST ITEM IN THE PATTERN, AND X3, THE COMPARISON
R0772 POINTER, POINTS TO THE ITEM WITH WHICH THE NEXT INCOMING LINE IS TO BE COMPARED. THE STRATEGY, WITH AND WITHOUT
R0774 A PATTERN IN PROCESS, IS AS FOLLOWS:
R0775 CASE 1: NO PATTERN (C(START ADR) NOT ALL ONES)
R0776 IF THREAD IN BKS 8-9 IS VOID, THREAD IT TO A NEW ITEM FORMED FROM THIS LINE.
R0778 IF NON-VOID, THREAD THROUGH ITEMS WITH SAME B(Z) AS THIS LINE, LOOKING FOR A 3-WORD MATCH.
R0780 IF NONE, THREAD LAST ITEM EXAMINED TO A NEW ITEM FORMED FROM THIS LINE.
R0782 IF FOUND, SET PAT PTR AND X3, DISCARD THIS LINE, AND SET START ADR TO ALL ONES.
R0784 IF MATCH WAS WITH PRECEDING LINE, INDICATE TCA TRAP AND ABORT.
R0786 CASE 2: PATTERN IN PROCESS (C(START ADR) IS ALL ONES)
R0787 COMPARE THIS LINE WITH EXISTING ITEM ACCORDING TO X3 (THE COMPARISON POINTER).
R0789 IF IT MATCHES, SEE IF MATCH WAS WITH THE LAST NON-REPEATING LINE.
R0791 IF SO, THE SIMULATED PROGRAM IS IN AN INFINITE LOOP, AND THE RUN IS ABORTED.
R0793 IF NOT, INDEX THE COMPARISON POINTER AND DISCARD THE CURRENT LINE.
R0795 IF NO MATCH, THE PATTERN IS BROKEN. USING PAT PTR AND X3, FEED ALL REPEATED LINES INTO THE BUFFER,
R0797 THREADING ACCORDING TO LOCATION BUT NOT CHECKING FOR DUPLICATES. RESET START ADR TO ZERO AND
R0799 RESUBMIT THIS LINE.
# Page 723
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 23 PAGE 52
P07991 ENTER HERE AFTER EACH INSTRUCTION.
0800 EDITOR TX IN PTR - Z,X1 AN ITEM-SLOT IS ALWAYS AVAILABLE HERE.
0802 WD, LOW12 Z ZDECR LOCATION
0803 TX A - N,X1
0804 SWS, CAC2 INSTR 16,L N,X1
0805 SWS, CAC1 LOCATION 32,L N,X1,1 FORM FIRST CAC-WORD.
0807 TX LP - N,X1
0808 SWS, CAC2 N,R1 16,L N,X1 (D AFTER).
0810 SWS, CAC1 D BEF 32,L N,X1,1 FORM SECOND CAC-WORD.
0812 TX TIME3 - N,X1
0813 SWS, CAC2 OVCTR 16,L N,X1
0814 SWS, CAC1 Q 32,L N,X1 FORM THIRD CAC-WORD.
0816 TN POINTERS 2 Z,X1 IN PTR TO X1, OUT PTR TO X2.
0818 LA ONES START ADR PATTERN BRANCH IF THERE'S A PATTERN IN PROCESS.
R0820 PROCEDURE TO LOOK FOR A MATCH WHEN NO PATTERN IS IN PROCESS.
0821 NO PATERN WA BANK8 M3 LOCATION Z,X3 LET 3,3 = INITIAL THREAD FOR THIS B(Z).
0823 NOT MATCH LA, CAC3 3,3 ZERO NO MATCH BRANCH IF NO MATCH IN WHOLE BUFFER.
0825 TX 3,3 - Z,X3 THREAD TO ITEM WITH THIS B(Z).
0827 NA N,X1 N,X3 NOT MATCH
0828 NA 1,1 3,1 NOT MATCH
0829 NA 1,2 3,2 NOT MATCH BRANCH IF NO MATCH ON THIS ITEM.
0831 TX Z,X3 - PAT PTR PATTERN BEGINS NOW. SET PAT PTR.
0833 TS ONES START ADR LOOP CHEK SET PATTERN SIGNAL, CHECK ONE-ORDER LUP.
0835 NO MATCH SS Z,X1 CAC3 3,3 STORE LOCATION THREAD TO THIS ITEM.
0837 TS L GOGO P1 Z,S3 ADV IN PTR +1 ADVANCE INPUT POINTER, MAYBE PRINTING.
# Page 724
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 24 PAGE 53
P0839 PROCEDURE WHEN A PATTERN IS IN A STATE OF PARTIAL COMPLETION.
0840 PATTERN NA N,X1 N,X3 BREAK PAT
0841 NA 1,1 3,1 BREAK PAT
0842 NA 1,2 3,2 BREAK PAT BRANCH IF PATTERN IS NOW BROKEN.
0844 LOOP CHEK NA Z,X3 LAST PTR CONTINUE BRANCH IF LOOP NOT CLOSED YET.
0846 TX ZERO - START ADR CLEAR PATTERN-IN-PROCESS INDICATOR.
0848 TX PAT PTR - Z,X3
0849 SM 3,3 CAC1 3,3 FLAG BEGINNING OF INFINITE LOOP.
0851 S, MON TYPER W LOOPING SPRA +8 TERMDUMP
0852 CONTINUE SWE, CAC3 3,3 16 Z,X3 INDEX COMPARISON POINTER TO NEXT ITEM.
0854 NA T4 ZERO RECYCLE
0855 WA NEWZ ONE Z
0856 TS INSTR2 INSTR RECYCLE2
0857 BREAK PAT TN N,X1 3 HOLD LINE SAVE THIS LINE WHILE BREAKING UP PATERN.
0859 TN PRINT LIM 2 PRINT LIM -1 SAVE AND DISABLE PRINT LIMIT.
0861 TX PAT PTR - Z,S0 POINT TO BEGINNING OF PATTERN.
0863 RPT LINES TN N,S0 3 N,X1 RE-FEED REPEATED LINE.
0865 TS Z,S0,3 Z,X5 C,+2
0866 TX 5,3 - Z,X5
0867 NA, CAC3 5,3 ZERO C,-1
0868 SS Z,X1 CAC3 5,3 STORE LOCATION THREAD TO RE-FED LINE.
0870 TS ZERO START ADR ADV IN PTR RESET PATTERN SIGNAL, ADVANCE IN PTR.
0872 SWE, CAC3 N,S0 16 Z,S0 ADVANCE RE-FEEDING POINTER.
0874 NA Z,S0 Z,X3 RPT LINES BRANCH IF MORE ITEMS TO REPEAT.
0876 LA ONES HOLD LINE END PRINT BR IF CALLED BY TERMDUMP, NOT PAT BREAK.
0878 TN HOL LINE 3 N,X1 RESTORE THIS LINE.
0880 TS PRINT LIM -1 PRINT LIM NO PATERN RE-SUBMIT THIS LINE FOR MATCHING.
# Page 725
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 25 PAGE 54
P0882 EDITOR CONTINUED. THIS PART IS A SUBROUTINE TO ADVANCE IN PTR. IF THE RESULTING VALUE EQUALS THAT
R0884 OF OUT PTR, THE BUFFER IS FULL (THIS IS THE NORMAL CASE AFTER THE FIRST 300 LINES OR THEREABOUTS). A LINE IS
R0886 PUSHED OUT OF THE BUFFER ACCORDING TO OUT PTR, AND OUT PTR IS ADVANCED. THE LOCATION THREAD FOR THE LINE IS
R0888 SEWN UP AROUND IT. IF THE TRACE IS ON, THE FOLLOWING QUANTITIES ARE PRINTED:
R0890 LOCATION ALPHA-OP-CODE ADDRESS A B(X) A(X) LP Q OVCTR T3, AND (IF APPROPRIATE) "INFINITE LOOP".
R0892 FOR EACH QUANTITY EXCEPT "INFINITE LOOP", DITTO MARKS ARE PRINTED IF APPROPRIATE, EXCEPT AT THE TOP OF A PAGE.
R0894 FOR ANY FLIP-FLOP REGISTER CONTAINING OVERFLOW, THE OVERFLOW-CORRECTED CONTENTS ARE SHOWN, PRECEDED BY A BLOT.
0896 ADV IN PTR TX Z,SH - Z,S3
0897 TX Z,X1 - LAST PTR POINT TO LAST NEW LINE ACCEPTED.
0899 SWE, CAC3 1,3 16 IN PTR ADVANCE IN PTR.
0901 TX IN PTR - Z,X1 KEEP IN PTR IN X1 ALSO.
0903 NA Z,X1 OUT PTR N,S3 FAST EXIT UNTIL BUFFER FILLS UP.
0905 LA 2,3 CAC1 C,+2
0906 TN W INF LOOP 2 NEXT LINE +10 DO THIS WHERE LOOP BEGINS.
0908 SWE, CAC3 N,X2 32 EDIT WD RECOVER LOCATION.
0910 WA BANK8 M3 EDIT WD Z,X5 LET 5,3 = INITIAL LOCATION THREAD.
0912 NA, CAC3 5,3 OUT PTR C,+2
0913 TS, CAC3 2,3 5,3 C,+2 DELETE THIS LINE FROM LOCATION THREAD.
0915 TS 5,3 Z,X5 C,-2
0916 SS ZERO CAC3 2,3 CLEAR LOCATION THREAD IN ITEM.
0918 CHANGE Q WA BANK 8 EDIT WD Z,X5
0919 NA, CHANGMSK 5,0 LOC FLAG C,+4 BRANCH IF NO TRACE CHANGE ON LOCATION.
0921 HA LOC FLAG B1B2 LOC FLAG CHANGE CRITERION FOR CHANGE ON LOCATION.
0923 NA CHANG MSK ON N OMITTED BRANCH IF CHANGING OFF TO ON.
0925 TS OFF CHANG MSK SET UP LIN CHANGE ON TO OFF BUT PRINT THIS INSTR.
0927 SWS, LOW 12 N,X2 16 Z,X5
0928 LA, CHANGMSK ONES 5,0 C,-4 BRANCH IF TRACE CHANGE ON ADDRESS.
0930 OFF TEST NA CHANG MSK OFF SET UP LIN BRANCH IF TRACE IS ON.
0932 DA TRACE OFF ONE TRACE OFF STEP COUNT OF UNTRACED INSTRUCTIONS.
0934 SWE, CAC3 2,3 16 OUT PTR ADVANCE OUT PTR AND SAME IN X2.
0936 TS OUT PTR Z,X2 N,S3 QUICK EXIT WHEN TRACE IS OFF.
0938 N OMITTED LA TRACE OFF ZERO SET UP LIN WHEN IT REALLY WASN'T OFF AT ALL.
0940 SWE, ONES TRACE OFF D,4,L MON ARG
0941 TS Z,SC Z,AU1 YUL D2A ZS EDIT TRACE-OFF COUNT FOR PRINTING.
0943 MON ARG RESERVE 1
0944 MT N,SH,2 2 OMIT MSG +2
0949 TS BLANKS LINE END PAGE +1 C GENERATE BLANK LINE.
0951 TS Z,S3 CHANG MSK END PRINT +2 C SAVE RETURN, SET SP1.
0953 TN OMIT MSG 5 LINE +10
0954 TS Z,SC Z,S3 PRINT LIN PRINT NO. OF UNTRACED INSTRUCTIONS.
0956 TX CHANG MSK - Z,S3 RECOVER RETURN ADDRESS.
0958 TX ON - CHANG MSK TURN ON THE TRACE.
0960 TX ZERO - TRACE OFF
# Page 726
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 26 PAGE 55
P0961 PROCEDURE TO SET UP A TRACE LINE IN PRINT.
0962 SET UP LIN S, OCT2ALF4 EDIT WD NEXT LINE EDIT LOCATION.
0964 SWE, LOW4 N,X2 28 T1
0965 WA T1 OP ALF Z,AU1
0966 TX N,AU1 - NEXT LINE +1 SUPPLY ALPHABETIC OP CODE.
0968 SWE, CAC3 N,X2 16 EDIT WD
0969 S, OCT2ALF4 EDIT WD NEXT LINE +2 EDIT ADDRESS PART OF INSTRUCTION.
0971 S, OCT2ALF5 2,0 NEXT LINE +3 EDIT C(A).
0973 SWE, CAC3 2,1 32 EDIT WD
0974 S, OCT2ALF5 EDIT WD NEXT LINE +4 EDIT B(X).
0976 SWE, CAC3 2,1 16 EDIT WD
0977 S, OCT2ALF5 EDIT WD NEXT LINE +5 EDIT A(X).
0979 S, OCT2ALF5 2,1 NEXT LINE +6 EDIT C(LP).
0981 SWE, CAC3 2,2 32 EDIT WD
0982 S, OCT2ALF5 EDIT WD NEXT LINE +7 EDIT C(Q).
0984 SWE, CAC3 2,2 16 EDIT WD
0985 S, OCT2ALF5 EDIT WD NEXT LINE +8 EDIT C(OVCTR).
0987 S, OCT2ALF5 2,2 NEXT LINE +9 EDIT C(T3).
0989 SWE, CAC3 2,3 16 OUT PTR ADVANCE OUT PTR.
0991 TX OUT PTR - Z,X2 ALSO KEEP IT IN X2.
0993 LA LINE CNT FIFTY PRINT BRANCH IF NOT END OF PAGE.
# Page 727
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 27 PAGE 56
P0995 AT END OF PAGE, PRINT A BLANK LINE AND SKIP. THEN PRINT PAGE HEAD AND SUBHEAD.
0997 END PAGE TN SKIP 2 LINE -1 SKIP-CODE AND BLANK WORD.
0999 TN LINE 14 LINE +1 GENERATE BLANK LINE.
10002 S, MON PRINT DEPAGIN8
1001 S, MON PRINT LINE -1 SKIP TO HEAD OF FORM.
1003 S, MON PRINT SIMU HEAD PRINT PAGE HEAD.
1005 DA PAGE NO ONE PAGE NO
1006 SS PAGE NO D12 SIMU HEAD +15 STORE INCREASED PAGE NUMBER.
1008 NA, CHAR8 SIMU HEAD +15 ZERO C,+4 BRANCH IF NO CHANGE IN TENS DIGIT.
1010 SWS, ACH7 PAGE NO 2,L SIMU HEAD +15 SET UP CHANGED TENS DIGIT.
1012 NA, CHAR7 SIMU HEAD +15 ZERO C,+2 BRANCH IF NO CHANGE IN HUNDREDS DIGIT.
1014 SWS, CHAR6 PAGE NO 4,L SIMU HEAD +15 SET UP CHANGED HUNDREDS DIGIT.
1016 RESET LC TX ONE - LINE CNT
1017 S, MON PRINT SUB HEAD PRINT COLUMN HEADINGS.
1019 PRINT TN PRIN SPEX 2 Z,S1 SPECS FOR LINE +3 AND NEXT LINE +3.
1021 DITO LOOP NA N,S2 N,S1 NOT SAME BR IF THIS WD NO MATCH SAME IN LAST LIN.
1023 WA Z,S2 TWELVE Z,AU1 HERE THIS WD IN LAST LINE NOT A DITTO.
1025 TS N,S1,1 N,AU1 PUT DITTO SAVE REPEATED WORD FOR LATER COMPARISON.
1027 NOT SAME NA N,S1,1 DITTO PUT DITTO +1 BRANCH UNLESS NO-MATCH CAUSED BY DITTO.
1029 WA Z,S2 TWELVE Z,AU1
1030 NA N,S2 N,AU1 PUT DITTO +1 BRANCH IF DITTO PATTERN BREAKS NOW.
1032 PUT DITTO TX DITTO - N,S2 SUPPLY INIITAL OR CONTINUED DITTO.
1034 NA Z,S2,1 PRIN SPEX +2 DITO LOOP DO THIS FOR RIGHT-HAND SEVEN FIELDS.
1036 TN NEXT LINE -1 16 LINE -1
1037 PRINT LIN S, MON PRINT LINE -1
1038 WA LINE CNT ONE LINE CNT
1039 DA TASK LINS ONE TASK LINS COUNT PRINT LINES IN TASK.
1041 LA TASK LINS PRINT LIM N,S3 RETURN IF NOT TOO MANY.
1043 LA CHANG MSK CAC 3 N,S3 RETURN IF LINE IS "TRACE OFF" TYPE.
1045 S, MON TYPER W PRNT MAX SPRA +8 TERMDUMP
# Page 728
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 28 PAGE 57
P1046 SUBROUTINE TO CONVERT LOW-ORDER BITS TO 5 ALPHA-OCTALS (CHECKING FOR OVERFLOW). 16 LOW-ORDER BITS AT
R1048 A ARE MADE INTO A RIGHT-JUSTIFIED ALPHA WORD AT C.
1049 OCT2ALF5 SIMULATE
1050 SSL, LOW2 N,AU1 14 BLOT CHEK C TEST FOR OVERFLOW IN OPERAND.
1052 OV CORECT SWS, US N,AU1 1 N,AU1 C CORRECT IT IF REQUIRED.
1054 SWS, MSK5 N,AU1 12,L N,AU2 C SET UP HIGH-ORDER DIGIT.
1056 4 DIGITS SWS, MSK4 N,AU1 9,L N,AU2 C
1057 SWS, MSK3 N,AU1 6,L N,AU2 C
1058 SWS, MSK2 N,AU1 3,L N,AU2 C
1059 SS N,AU1 OCT7 N,AU2 SET UP LOW-ORDER DIGITS, RETURN.
R1061 SIMILAR SUBROUTINE FOR 12 LOW-ORDER DIGITS INTO 4 ALPHA-OCTALS.
1062 OCT2ALF4 SIMULATE
1063 TS BLANK 1T4 N,AU2 4 DIGITS C
R1064 FOUR ANSWERS TO OVERFLOW CHECK IN OCT2ALF5.
1065 BLOT CHEK TS BLANK 1T3 N,AU2 OV CORECT +1 C
1066 TS OVF BLOT N,AU2 OV CORECT C
1067 TS OVF BLOT N,AU2 OV CORECT C
1068 TS BLANK 1T3 N,AU2 OV CORECT +1 C
# Page 729
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 29 PAGE 58
P1069 TERMINAL DUMP PROCEDURE, USED WHEN A PROPERLY STARTED RUN ENDS FOR ANY REASON. GIVES THE CAUSE OF
R1071 TERMINATION AND DUMPS LOCATIONS 0000-1777 ON FOUR PAGES.
1072 MON TYPER SIMULATE
1073 TS N,AU1 CAUSE C,+1 SUPPLY CAUSE FOR PRINTING.
10742 TERMDUMP S, YUL TYPER CAUSE AA +1 C,+1
1075 TS OFF TEST CHANGE Q +1 MON WAKE C LOCK TRACE ON.
1077 TN W CORONER 2 NEXT LINE +13 LABEL CORONER'S REPORT AS SUCH.
1079 TS ONES HOLD LINE BREAK PAT +1 C DISABLE LOCAL PRINT LIMIT.
1081 LA ONES START ADR BREAK PAT +2 BREAK PARTIAL PATTERN IF ANY.
1083 END PRINT NA OUT PTR IN PTR ADV IN PTR
1084 NA OUT PTR LAST PTR ADV IN PTR +2 EMPTY OUT TRACE LINE BUFFER.
1086 TX SP1 - LINE -1
1087 TS BLANKS LINE END PAGE +1 C
1088 S, MON PRINT LINE -1 LEAVE A BLANK LINE.
1090 TX SKIP - LINE -1
1091 TN CAUSE 7 LINE +2 STATE CAUSE AND ANNOUNCE DUMP.
1093 TX BANK 2 - Z,X3 H800 ADDRESS OF SACO ADDRESS 0000.
1095 TS C,+1 RESET LC END PAGE +2 CHANGE RETURN FROM PAGE HEAD PRINT.
1097 TS EIGHT Z,S1 C,+1 SET NUMBER OF 4-LINE GROUPS PER PAGE.
1099 TS SP1 LINE -1 END PAGE +1 C
1100 4 LINES TS FOUR Z,S2 C,+2 SET NUMBER OF LINES PER BUNCH.
1102 1 LINE S, MON PRINT LINE -1
1103 WD PRIN SPEX ONE Z,X5 FORM SPEC LINE +2.
1105 TX Z,X3 - EDIT WD
1106 S, OCT2ALF4 EDIT WD LINE EDIT ADDRESS OF 1ST WORD OF 8 ON A LINE.
1108 1 WORD S, OCT2ALF5 3,0 5,0 EDIT A WORD OF ERASABLE MEMORY.
1110 NA N,X5 BLANK 1T3 C,+2
1111 TX ZERO C6 - N,X5 REPLACE ZERO WORD WITH A LONE ZERO.
1113 LA SPEC 1777 Z,X3,1 LAST LINE BRANCH IF LAST WORD EDITED.
1115 NA Z,X5,1 PRIN SPEX +3 1 WORD
1116 NA Z,S2,1 ONE 1 LINE BRANCH IF NOT LAST LINE OF BUNCH OF 4.
1118 TX SP2 - LINE -1
1119 S, MON PRINT LINE -1
1120 LA Z,S1,1 ONE END PAGE
1121 TS SP1 LINE -1 4 LINES GO TO PRINT NEXT FOUR LINES, SAME PAGE.
1123 LAST LINE TX SKIP - LINE -1
11231 S, MON PRINT DEPAGIN8
1124 S, MON PRINT LINE -1
1125 TX YUL MASKS - Z,MXR
1126 S, YUL TYPER END SI MSG AMTF +2 MANUF RTN TYPE "END SIMULATION", EXIT.
1128 MASK LOC MODLOC 64
# END OF REVISION 1 OF PROGRAM YULSIMUL BY HB-S
# Page 730
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 30 PAGE 59
# No source code on this page.
# Page 731
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 31 PAGE 60
# No source code on this page.
# Page 732
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 32 PAGE 61
# No source code on this page.
# Page 733
# @YUL SYSTEM SIMULATORS -- SACO USER'S OWN PAGE NO. 33 PAGE 62
# No source code on this page.