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_ASSEMBLER_SACO_PASS_1.argus
# Copyright: Public domain.
# Filename: YUL_SYSTEM_ASSEMBLER_SACO_PASS_1.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: 256-262
# Mod history: 2016-10-06 JL Created.
# 2016-12-01 JL Transcribed.
# 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 ASSEMBLER SACO PASS 1
# Page 256
# @YUL SYSTEM ASSEMBLER SACO PASS 1 USER'S OWN PAGE NO. 1 PAGE 80
R0001 WE ARE DEEPLY INDEBTED TO THE ONE, THE ONLY, THE GREAT JOHN SHAW FOR THE FOLLOWING STRONG MAGIC....
R0003 *JSOCTL
0004 * SETLOC,2 SIZ PASS 1 B1
0005 * MASKGRP,1 S,1 F,1
R0006 THE SACO PART OF PASS 1 CONTAINS THE FOLLOWING DATA:
R0007 MAXIMUM LEGAL NUMERIC OPERATION CODE, GREATEST ADDRESS OF A MEMORY LOCATION, DITTO + 1, BLOCK SIZE - 1,
R0009 SHIFT AMOUNTS FOR CONVERTING A BLOCK NUMBER TO AN ADDRESS AND FOR STORING A NUMERIC OPERATION CODE, A TABLE
R0011 SHOWING WHICH LOCATIONS IN SACO ARE ERASABLE, FIXED, AND SPECIAL/NONEXISTENT, AND A TABLE OF SYMBOLIC OPERA-
R0013 TION CODES, EACH WITH EITHER CODED BINARY INFORMATION (INSTRUCTION CODES) OR AN ADDRESS (CLERICAL CODES).
R00142 IN SACO, THIS TABLE IS LOCATED IN BANK 5.
R0015 CODING IS ALSO PROVIDED HERE TO PROCESS (PARTLY) THE ADDRESS FIELD OF POLISH OPERATOR CARDS.
R0017 *QUANTITIES FILLED IN FOR REFERENCE BY GENERAL PASS 1.
0018 SC OP THRS SPEC OP THRS
0019 SC MAX NOP FXBIN 7
0020 SC MAX LOC OCT - 17777
0021 SC ADR LIM OCT - 20000
0022 SC BLOK IS OCT -377
0023 SC SHIFTS OCT 0000 0044 24
0024 SC TYP TAB CAC COUNT STA 1024 SACO MEMO -
00241 SC SUB LOC EQUALS SC TYP TAB
00242 SC COUNSP EQUALS SC TYP TAB
0025 *SC SPCIAL TS C,+1 OP FOUND SEG TEST
0026 TS SACO MXR Z,MXR POLISH Q
00261 SC ELEFT P CAC 6149 GOT ELEFTO
00262 *SC FLEFT P CAC 6165 1024 SC FLEFTO -
0027 SACO MEMO OCT -1000 0057
0028 OCT -4000 1777
0029 OCT -2001 7777
0030 DEC BB00 FFFF
00301 *SEG MEMO OCT -1001 7777
0031 RESERVE 23
00312 *SEG TEST EX SWITCH BIT 7 SEG TEST
00314 * LA SEG TEST ZERO POST SPEC EXIT IF NOT IN A SEGMENT ASSEMBLY.
00316 * TS SEG MEMO SACO MEMO +2 POST SPEC CHANGE FIXED TO SPEC/NON AND EXIT.
# Page 257
# @YUL SYSTEM ASSEMBLER SACO PASS 1 USER'S OWN PAGE NO. 2 PAGE 81
P0032 FIELD AND SHIFT MASKS FOR THE SACO PART OF PASS 1.
00329 B,VMASKM OCT 0
0033 B,C1T6M OCT 7777 7777 7777
0034 B,ONESM OCT 7777 7777 7777 7777
0035 B,B18T24M OCT 0000 0177
0036 B,B22T25M OCT 0000 0007 4
0037 B,B22T32M OCT 0000 0007 776
0038 B,B25T31M OCT -7740 0000
0039 B,BIT31M OCT -0200 0000
0040 B,C7T8M OCT -7777
0041 B,B37B48M OCT -4001
0042 B,B41T45M OCT -370
0043 B,TWOM OCT -2
0044 B,ONEM OCT -1
0045 B,CHAR7M OCT -7700
0046 B,CHAR8M OCT -77
R0048 CONSTANTS.
00481 B36T38M OCT -16000
00482 OCT 2000 OCT -2000
00483 OCT 5777 OCT -5777
0049 SACO MXR MASKBASE S,1 F,1
0050 SPECOND 7 OCT -70
0051 SPECON 12 OCT -120
0052 2 POLOP 7 OCT -0340 0000
0053 2 POLOP 17 OCT -0740 0000
0054 2 POLOP 27 OCT -1340 0000
R00541 SPECIAL ROUTINE IN PASS 1 FOR SACO TO ALLOCATE LEFTOVER INSTRUCTIONS AND CONSTANTS TO FIXED BANKS.
00542 SC FLEFTO LA LOC CTR OCT 5777 FF OR ERAS
005422 LA ONES LOC CTR FF OR ERAS +1 IF BAD LOC CTR, ANYWHERE IN FIXED IS OK.
00543 SS LOC CTR B36T38M C,+2 IF LOC CTR IS IN A BANK, SO IS LEFTOVER.
00544 TS C,+1 COMMON +2 GOT FLEFP
00545 CAC 6149 -
00546 FF OR ERAS LA OCT 4000 LOC CTR GOT FLEFP IF FIXED FIXED, ORIG. PARAMETER WAS OK.
00547 TS C,+1 COMMON +2 GOT FLEFP IF ERASABLE, ANYWHERE IN FIXED IS OK.
00548 CAC 6245 1024 -
# Page 258
# @YUL SYSTEM ASSEMBLER SACO PASS 1 USER'S OWN PAGE NO. 3 PAGE 82
P0055 SPECIAL ROUTINE IN PASS 1 FOR SACO TO RESPOND TO THE FINDING OF AN INSTRUCTION OPERATION CODE. IF
R0057 THE CODE IS A POLISH OR STORE ADDRESS CONSTANT, RESETS THE BEGINNING-OF-EQUATION INDICATOR (BIT 29 OF SWITCH)
R0059 AND RETURNS TO THE GENERAL INSTRUCTION-PROCESSING PROCEDURE. IF THE CODE IS A POLISH OPERATOR, THE SEVEN-BIT
R0061 EQUIVALENT IS PLACED IN BITS 18-24 OF HEALTH AND THE BEGINNING-OF-EQUATION INDICATOR IS EXAMINED. IF IT IS
R0063 RESET (AS IS TRUE INITIALLY), IT IS NOW SET AND 07 IS SUPPLIED AS THE SECOND OPERATOR, TO INDICATE THAT PASS 2
R0065 IS TO DECODE AN OPERATOR WORD COUNT FROM THERE. OTHERWISE, THE ADDRESS FIELD IS INTERPRETED AS FOLLOWS...
R0067 BLANK: OPERATOR 00, NUMERIC: OPERATOR 07 (ASSUME NEW EQUATION), SYMBOLIC WITH MODIFIER: OPERATION 17 (ILLEGAL
R0069 FORMAT), SYMBOLIC: VALUE FROM OPERATION CODE TABLE IF POLISH OPERATOR, OR OPERATOR 27 OTHERWISE.
0071 POLISH Q NA, ONEM 4,0 ZERO POLISH OP
0072 SWS, B22T32M N,X4 16,L HEALTH SEND BITS AS USUAL IF NOT POLISH.
0074 NA, TWOM 4,0 ZERO SC P1 EXIT EXIT IF AN IMPLIED-ADDRESS CODE.
0076 LA, B41T45M 4,0 SPECOND 7 SC P1 EXIT
0077 LA, B41T45M SPECON 12 4,0 SC P1 EXIT BRANCH IF NOT A POLISH OR STORE ADDRESS.
0079 TS, BIT29M ZERO SWITCH SC P1 EXIT RESET INDICATOR, EXIT.
0081 POLISH OP SWS, B18T24M N,X4 21,L HEALTH SEND EQUIVALENT OF LEFT OPERATOR.
0083 SM HEALTH BIT 32 HEALTH INDICATE POLISH OPERATOR WORD.
0085 NA, BIT29M SWITCH ZERO TWO POLES BRANCH IF NOT BEGINNING OF EQUATION.
0087 SM HEALTH 2 POLOP 7 HEALTH SEND INDICATION TO PASS 2.
0089 TS, BIT29M ONES SWITCH SC P1 EXIT SET INDICATOR AND EXIT.
0091 TWO POLES TX P1 MASKS - Z,MXR
0092 TS Z,SC Z,X4 ADR FIELD DECODE ADDRESS FIELD.
0094 LA FIELD COD ZERO INSTRUCT FAST EXIT FOR BLANK (VACUOUS) OPERATOR.
0096 TX SACO MXR - Z,MXR
0097 NA FIELD COD BIT 1 POLISH OP +3 BRANCH IF ADDRESS FIELD IS NOT SYMBOLIC.
0099 LA FIELD COD +1 ZERO C,+2 BRANCH IF NO MODIFIER.
0101 TS, B25T31M 2 POLOP 17 HEALTH SC P1 EXIT INDICATE IMPROPER ADDRESS FIELD, EXIT.
0103 NA, CHAR8M ADR WD ASTRISKS C,+3 BRANCH IF NO DETACHED ASTERISK.
0105 NA, CHAR7M ADR WD BLANKS POLE FAIL BRANCH IF OPERATOR SYMBOL TOO LONG.
0107 TS, CHAR8M BLANKS ADR WD POLE SEEK BLANK OUT ASTERISK, LOOK UP CODE.
0109 NA, C7T8M ADR WD BLANKS POLE FAIL BRANCH IF MORE THAN SIX CHARACTERS.
0111 TS N L CHAR 6 Z,X4 C,+2 REVERSE BASE FOR SET OF CHARACTER MASKS.
0113 NA, VMASKM ADR WD BLANKS C,+2 SCAN TO LEFT UNTIL A CHARACTER IS FOUND.
0115 TS N,X4,1 N,MXR C,-1
0116 NA, VMASKM ADR WD ASTRISKS POLE SEEK PROCEED WITH SEARCH IF NO ASTERISK.
0118 SS BLANKS N,MXR ADR WD BLANK OUT ATTACHED ASTERISK.
0120 POLE SEEK TX SC OP THRS - Z,X4
0121 SWS, B22T25M ADR WD 17 C,+1
0122 SWE, ONESM 4,0 0 Z,X4 SELECT SECTION OF OP CODE LIST.
0124 TX Z,SC,1 - -
0125 LA N,X4,1 ZERO POLE FAIL BRANCH IF OP CODE NOT FOUND.
0127 NA, C1T6M ADR WD 4,0 C,-1 SEARCH THROUGH SELECTED SUBLIST.
0129 LA, B37B48M ONES 4,0 C,+2 BRANCH IF POLISH OPERATOR FOUND.
0131 POLE FAIL TS, B25T31M 2 POLOP 27 HEALTH SC P1 EXIT INDICATE FAILURE AND EXIT.
0133 SWS, B25T31M N,X4 14,L HEALTH SEND EQUIVALENT OF RIGHT OPERATOR.
0135 SC P1 EXIT TS P1 MASKS Z,MXR INSTRUCT
# Page 259
# @YUL SYSTEM ASSEMBLER SACO PASS 1 USER'S OWN PAGE NO. 4 PAGE 83
P01352 SPECIAL PROCESSING FOR COUNT* CODE.
01354 MASKGRP S,0 F,0
01356 COUNT STA NA, CHAR1 ADR WD DOLLARS ILL COUNT C
01358 SWS, CHAR1 LOC CTR 16 ADR WD S REPLACE DOLLAR SIGN WITH BANK NUMBER.
R0136 OPERATION CODE THREADS AND TABLES FOR SACO, USED IN PASS 1.
01362 SETLOC,3 0 B5
01364 SETLOC,4 15 B5
0137 OP THRS CAC CODES 01 BAD CODE
0138 CAC CODES 11 CODES 10
0139 CAC CODES 21 CODES 20
0140 CAC CODES 31 CODES 30
0141 CAC CODES 41 BAD CODE
0142 CAC CODES 51 CODES 50
0143 CAC CODES 61 CODES 60
0144 CAC CODES 71 CODES 70
R01444 SACO OPERATION CODE TABLES. PLEASE IGNORE THE BANK ERRORS.
0145 CODES 01 M,A,MA A,SK A, B,7400
0146 M,A,DE A,C A, DECIMAL
0147 M,A,DA A,D A, B,4341
0148 M,A,DD A,V A, B,4641
0149 M,A,HE A,AD A, HEAD TAIL
0150 M,A,ME A,MO A,RY LATE MEM
0151 BAD CODE OCT 0
0152 CODES 11 M,A,DV A, A, B,6600
0153 M,A,MS A,K A, B,7400
0154 M,A,DS A,U A, B,4441
0155 M,A,DS A,Q A, B,5331
0156 M,A,MX A,V A, B,5241
0157 OCT 0
0158 CODES 10 M,A,MP A, A, B,6200
0159 M,A,DM A,P A, B,4541
0160 M,A,DM A,PR A, B,5101
0161 M,A,DO A,T A, B,5641
0162 M,A,UN A,IT A, B,4231
0163 M,A,DM A,OV A,E B,5531
0164 M,A,DO A,UB A,LE B,7002
0165 OCT 0
# Page 260
# @YUL SYSTEM ASSEMBLER SACO PASS 1 USER'S OWN PAGE NO. 5 PAGE 84
P0166 SACO OPERATION CODE TABLES CONTINUED. PLEASE IGNORE THE BANK ERRORS.
0167 CODES 21 M,A,AD A, A, B,7000
0168 M,A,ND A,X A, B,5040
0169 M,A,VA A,D A, B,5341
0170 M,A,AC A,OS A, B,4731
0171 M,A,AB A,S A, B,4531
0172 M,A,AB A,VA A,L B,4331
0173 M,A,VD A,EF A, B,5731
0174 M,A,AD A,RE A,S B,4060
0175 M,A,RE A,TU A,RN B,4006
0176 M,A,NE A,XT A, B,5711
0177 M,A,RE A,LI A,NT B,5016
0178 M,A,RE A,SU A,ME B,5026
0179 OCT 0
0180 CODES 20 M,A, A, A, B,4100
0181 OCT 0
0182 CODES 31 M,A,IS A, A, IS EQUALS
0183 M,A,EX A,TE A,ND B,5132
01831 M,A,EV A,EN A, EVEN
0184 M,A,IT A,C A, B,4041
0185 M,A,IT A,CQ A, B,5751
0186 M,A,VX A,M A, B,5301
0187 M,A,VS A,U A, B,4141
0188 M,A,VS A,RT A, B,5501
0189 M,A,VS A,LT A, B,5541
0190 M,A,VX A,SC A, B,4101
0191 M,A,VX A,V A, B,5701
0192 M,A,EX A,IT A, B,4011
0193 M,A,RT A,B A, B,4051
0194 M,A,AX A,T, A,1 B,4111
0195 M,A,AX A,T, A,2 B,4151
0196 M,A,AX A,C, A,1 B,5211
0197 M,A,AX A,C, A,2 B,5251
0198 M,A,VS A,Q A, B,4431
0199 M,A,AS A,T, A,1 B,5111
0200 M,A,AS A,T, A,2 B,5151
0201 M,A,AS A,IN A, B,4631
0202 M,A,IT A,A A, B,5511
0203 M,A,IT A,CI A, B,5551
0204 OCT 0
# Page 261
# @YUL SYSTEM ASSEMBLER SACO PASS 1 USER'S OWN PAGE NO. 6 PAGE 85
P02041 SACO OPERATION CODE TABLES CONTINUED. PLEASE IGNORE THE BANK ERRORS.
0205 CODES 30 M,A,IN A,DE A,X B,5040
0206 M,A,EQ A,UA A,LS IS EQUALS
0207 M,A,ER A,AS A,E ERASE
0208 M,A,NO A,LO A,D B,5411
0209 M,A,NO A,LO A,AD B,5411
0210 M,A,RO A,UN A,D B,5451
0211 M,A,VM A,OV A,E B,4131
0212 M,A,IN A,CR A,,1 B,4611
0213 M,A,IN A,CR A,,2 B,4651
0214 M,A,VP A,RO A,J B,5741
0215 M,A,NO A,OP A, B,5402
0216 M,A,IN A,HI A,NT B,5022
0217 OCT 0
0219 CODES 41 M,A,OC A,T A, OCTAL
0220 M,A,OC A,TA A,L OCTAL
0221 M,A,2D A,EC A, 2DECIMAL
0222 M,A,SE A,TL A,OC SETLOC
0223 M,A,BH A,IZ A, B,4401
0224 M,A,BD A,SU A, B,4501
0225 M,A,BD A,DV A, B,4701
0226 M,A,SI A,GN A, B,5201
0227 M,A,SI A,N A, B,5031
0228 M,A,SG A,N A, B,5201
02281 * M,A,SE A,GN A,UM LATE MEM
0229 OCT 0
0230 CODES 51 M,A,SU A, A, B,7200
0231 M,A,ST A,OR A,E B,4110
0232 M,A,OV A,SK A, B,6402
0233 M,A,SW A,IT A,CH B,5651
0234 M,A,BZ A,E A, B,5401
0235 M,A,ST A,Z A, B,4241
0236 M,A,BV A,SU A, B,5441
0237 M,A,SX A,A, A,1 B,4411
0238 M,A,SX A,A, A,2 B,4451
0239 M,A,SU A,BR A,O SUBRO
0240 OCT 0
0241 CODES 50 M,A,BL A,OC A,K BLOCK
0242 M,A,BP A,L A, B,5601
0243 M,A,BM A,N A, B,4201
0244 M,A,BO A,V A, B,4301
0245 M,A,SQ A,RT A, B,5231
0246 M,A,SM A,OV A,E B,5631
0247 M,A,2O A,CT A, 2OCTAL
0248 M,A,2O A,CT A,AL 2OCTAL
0249 M,A,SQ A,UA A,RE B,6202
0250 OCT 0
# Page 262
# @YUL SYSTEM ASSEMBLER SACO PASS 1 USER'S OWN PAGE NO. 7 PAGE 86
P0251 SACO OPERATION CODE TABLES CONCLUDED. PLEASE IGNORE THE BANK ERRORS.
0252 CODES 61 M,A,TC A, A, B,4000
0253 M,A,XC A,H A, B,5400
0254 M,A,CC A,S A, B,4400
0255 M,A,CA A,F A, B,5410
0256 M,A,TE A,ST A, B,5611
0257 M,A,XC A,HX A,,1 B,4511
0258 M,A,XC A,HX A,,2 B,4551
0259 M,A,XA A,D, A,1 B,4711
0260 M,A,XA A,D, A,2 B,4751
0261 M,A,TI A,X, A,1 B,5311
0262 M,A,TX A,X, A,2 B,5351
0263 M,A,TA A,D A, B,4741
0264 M,A,TC A,R A, B,4000
0265 M,A,TC A,AA A, B,6412
0266 M,A,XA A,Q A, B,4002
0267 M,A,CA A,DR A, B,4070
0268 M,A,XC A,AD A,R B,4120
0269 M,A,TA A,IL A, HEAD TAIL
0270 OCT 0
0271 CODES 69 M,A,= A, A, IS EQUALS
0272 M,A,P A, A, B,4100
0273 OCT 0
0274 CODES 71 M,A,CS A, A, B,6000
0275 M,A,TS A, A, B,6450
02751 M,A,TS A,F A, B,6400
0276 M,A,TS A,U A, B,5141
0277 M,A,TS A,RT A, B,5041
0278 M,A,TS A,LT A, B,4601
0279 M,A,TS A,LC A, B,5001
0280 M,A,LX A,A, A,1 B,4211
0281 M,A,LX A,A, A,2 B,4251
0282 M,A,LX A,C, A,1 B,4311
0283 M,A,LX A,C, A,2 B,4351
0284 M,A,XS A,U, A,1 B,5011
0285 M,A,XS A,U, A,2 B,5051
0286 OCT 0
0287 CODES 70 M,A,CO A,M A, B,6002
0288 M,A,LO A,C A, SETLOC
0289 M,A,LO A,DO A,N B,5711
0290 M,A,TM A,OV A,E B,4031
0291 M,A,TP A, A, B,4031
0292 M,A,CO A,MP A, B,5431
0293 M,A,CO A,S A, B,5131
027935 M,A,CO A,UN A,T COUNT
027936 M,A,=P A,LU A,S EQU PLUS
027937 M,A,=M A,IN A,US EQU MINUS
0294 OCT 0