YUL_SYSTEM_ASSEMBLER_AGC4_PASS_1.argus
# Copyright: Public domain.
# Filename: YUL_SYSTEM_ASSEMBLER_AGC4_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: 225-231
# Mod history: 2016-10-06 JL Created.
# 2016-11-28 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 AGC4 PASS 1
# Page 225
# @YUL SYSTEM ASSEMBLER AGC4 PASS 1 USER'S OWN PAGE NO. 1 PAGE 73
R000001 WE ARE DEEPLY INDEBTED TO THE ONE, THE ONLY, THE GREAT JOHN SHAW FOR THE FOLLOWING STRONG MAGIC....
R0002 *JSOCTL
0003 * SETLOC,2 SIZ PASS 1 B1
0004 * MASKGRP,3 S,1 F,1
R0005 THE AGC4 PART OF PASS 1 CONTAINS THE FOLLOWING DATA:
R0006 MAXIMUM LEGAL NUMERIC OPERATION CODE, GREATEST ADDRESS OF A MEMORY LOCATION, DITTO + 1, BLOCK SIZE - 1,
R0008 SHIFT AMOUNTS FOR CONVERTING A BLOCK NUMBER TO AN ADDRESS AND FOR STORING A NUMERIC OPERATION CODE, A TABLE
R0010 SHOWING WHICH LOCATIONS IN AGC4 ARE ERASABLE, FIXED, AND SPECIAL/NONEXISTENT, AND A TABLE OF SYMBOLIC OPERA-
R0012 TION CODES, EACH WITH EITHER CODED BINARY INFORMATION (INSTRUCTION CODES) OR AN ADDRESS (CLERICAL CODES).
R00132 IN AGC4, THIS TABLE IS LOCATED IN BANK 5.
R0014 CODING IS ALSO PROVIDED HERE TO PROCESS (PARTLY) THE ADDRESS FIELD OF POLISH OPERATOR CARDS.
R0016 *QUANTITIES FILLED IN FOR REFERENCE BY GENERAL PASS 1.
0017 A4 OP THRS SPEC OP THRS
0018 A4 MAX NOP FXBIN 7
0019 A4 MAX LOC OCT - 71777
0020 A4 ADR LIM OCT - 72000
0021 A4 BLOK IS OCT -1777
0022 A4 SHIFTS OCT 0000 0042 24
0023 A4 TYP TAB CAC COUNT STA 1024 AGC4 MEMO -
00231 A4 SUB LOC EQUALS A4 TYP TAB
00232 A4 COUNSP EQUALS A4 TYP TAB
0024 *A4 SPCIAL TS C,+1 OP FOUND SEG TEST
0025 TS AGC4 MXR Z,MX4 POLISH Q
00251 A4 ELEFT P CAC 6149 GOT ELEFP
00252 *A4 FLEFT P CAC 6165 1024 A4 FLEFTO -
0026 AGC4 MEMO OCT -1000 0057
0027 OCT -4000 1777
0028 OCT -2003 1777
00281 OCT -1004 1777
00282 OCT -2007 1777
0029 DEC BB00 FFFF
00291 *SEG MEMO OCT -1007 1777
00292 * DEC BB00 FFFF
0030 * RESERVE 20
00302 *SEG TEST EX SWITCH BIT 7 SEG TEST
00304 * LA SEG TEST ZERO POST SPEC EXIT IF NOT IN A SEGMENT ASSEMBLY.
00306 * TN SEG MEMO 2 AGC4 MEMO +2 CHANGE FIXED TO SPEC/NON AND EXIT.
00308 * TS - - POST SPEC
# Page 226
# @YUL SYSTEM ASSEMBLER AGC4 PASS 1 USER'S OWN PAGE NO. 2 PAGE 74
P0031 FIELD AND SHIFT MASKS FOR THE AGC4 PART OF PASS 1.
00319 B,VMASKM OCT 0
0032 B,C1T6M OCT 7777 7777 7777
0033 B,ONESM OCT 7777 7777 7777 7777
0034 B,B18T24M OCT 0000 0177
0035 B,B22T25M OCT 0000 0007 4
0036 B,B22T32M OCT 0000 0007 776
0037 B,B25T31M OCT -7740 0000
0038 B,BIT29M OCT -0200 0000
0039 B,C7T8M OCT -7777
0040 B,B37B48M OCT -4001
0041 B,B41T45M OCT -370
0042 B,TWOM OCT -2
0043 B,ONEM OCT -1
00431 B,CHAR7M OCT -7700
00432 B,CHAR8M OCT -77
R0044 CONSTANTS.
00441 B34T38M OCT -76000
00442 OCT 2000 OCT -2000
00443 OCT 5777 OCT -5777
0045 AGC4 MXR MASKBASE S,1 F,1
0046 SPECOND 7 OCT -70
0047 SPECON 12 OCT -120
0048 2 POLOP 7 OCT -0340 0000
0049 2 POLOP 17 OCT -0740 0000
0050 2 POLOP 27 OCT -1340 0000
R00501 SPECIAL ROUTINE IN PASS 1 FOR AGC4 TO ALLOCATE LEFTOVER INSTRUCTIONS AND CONSTANTS TO FIXED BANKS.
00502 A4 FLEFTO LA LOC CTR OCT 5777 FF OR ERAS
005022 LA ONES LOC CTR FF OR ERAS +1 IF BAD LOC CTR, ANYWHERE IN FIXED IS OK.
00503 SS LOC CTR B34T38M C,+2 IF LOC CTR IS IN A BANK, SO IS LEFTOVER.
00504 TS C,+1 COMMON +2 GOT FLEFP
00505 CAC 6149 -
00506 FF OR ERAS LA OCT 2000 LOC CTR GOT FLEFP IF FIXED FIXED, ORIG. PARAMETER WAS OK.
00507 TS C,+1 COMMON +2 GOT FLEFP IF ERASABLE, ANYWHERE IN FIXED IS OK.
00508 CAC 6581 1024 -
# Page 227
# @YUL SYSTEM ASSEMBLER AGC4 PASS 1 USER'S OWN PAGE NO. 3 PAGE 75
P0051 SPECIAL ROUTINE IN PASS 1 FOR AGC4 TO RESPOND TO THE FINDING OF AN INSTRUCTION OPERATION CODE. IF
R0053 THE CODE IS A POLISH OR STORE ADDRESS CONSTANT, RESETS THE BEGINNING-OF-EQUATION INDICATOR (BIT 29 OF SWITCH)
R0055 AND RETURNS TO THE GENERAL INSTRUCTION-PROCESSING PROCEDURE. IF THE CODE IS A POLISH OPERATOR, THE SEVEN-BIT
R0057 EQUIVALENT IS PLACED IN BITS 18-24 OF HEALTH AND THE BEGINNING-OF-EQUATION INDICATOR IS EXAMINED. IF IT IS
R0059 RESET (AS IS TRUE INITIALLY), IT IS NOW SET AND 07 IS SUPPLIED AS THE SECOND OPERATOR, TO INDICATE THAT PASS 2
R0061 IS TO DECODE AN OPERATOR WORD COUNT FROM THERE. OTHERWISE, THE ADDRESS FIELD IS INTERPRETED AS FOLLOWS...
R0063 BLANK: OPERATOR 00, NUMERIC: OPERATOR 07 (ASSUME NEW EQUATION), SYMBOLIC WITH MODIFIER: OPERATION 17 (ILLEGAL
R0065 FORMAT), SYMBOLIC: VALUE FROM OPERATION CODE TABLE IF POLISH OPERATOR, OR OPERATOR 27 OTHERWISE.
0067 POLISH Q NA, ONEM 4,0 ZERO POLISH OP
0068 SWS, B22T32M N,X4 16,L HEALTH SEND BITS AS USUAL IF NOT POLISH.
0070 NA, TWOM 4,0 ZERO A4 P1 EXIT EXIT IF AN IMPLIED-ADDRESS CODE.
0072 LA, B41T45M 4,0 SPECOND 7 A4 P1 EXIT
0073 LA, B41T45M SPECON 12 4,0 A4 P1 EXIT BRANCH IF NOT A POLISH OR STORE ADDRESS.
0075 TS, BIT29M ZERO SWITCH A4 P1 EXIT RESET INDICATOR, EXIT.
0077 POLISH OP SWS, B18T24M N,X4 21,L HEALTH SEND EQUIVALENT OF LEFT OPERATOR.
0079 SM HEALTH BIT 32 HEALTH INDICATE POLISH OPERATOR WORD.
0081 NA, BIT29M SWITCH ZERO TWO POLES BRANCH IF NOT BEGINNING OF EQUATION.
0083 SM HEALTH 2 POLOP 7 HEALTH SEND INDICATION TO PASS 2.
0085 TS, BIT29M ONES SWITCH A4 P1 EXIT SET INDICATOR AND EXIT.
0087 TWO POLES TX P1 MASKS - Z,MXR
0088 TS Z,SC Z,X4 ADR FIELD DECODE ADDRESS FIELD.
0090 LA FIELD COD ZERO INSTRUCT FAST EXIT FOR BLANK (VACUOUS) OPERATOR.
0092 TX AGC4 MXR - Z,MXR
0093 NA FIELD COD BIT 1 POLISH OP +3 BRANCH IF ADDRESS FIELD IS NOT SYMBOLIC.
0095 LA FIELD COD +1 ZERO C,+2 BRANCH IF NO MODIFIER.
0097 TS, B25T31M 2 POLOP 17 HEALTH A4 P1 EXIT INDICATE IMPROPER ADDRESS FIELD, EXIT.
00982 NA, CHAR8M ADR WD ASTRISKS C,+3 BRANCH IF NO DETACHED ASTERISK.
00984 NA, CHAR7M ADR WD BLANKS POLE FAIL BRANCH IF OPERATOR SYMBOL TOO LONG.
00986 TS, CHAR8M BLANKS ADR WD POLE SEEK BLANK OUT ASTERISK, LOOK UP CODE.
0099 NA, C7T8M ADR WD BLANKS POLE FAIL BRANCH IF MORE THAN SIX CHARACTERS.
00992 TS N L CHAR 6 Z,X4 C,+2 REVERSE BASE FOR SET OF CHARACTER MASKS.
00994 NA, VMASKM ADR WD BLANKS C,+2 SCAN TO LEFT UNTIL A CHARACTER IS FOUND.
0100 TS N,X4,1 N,MXR C,-1
01002 NA, VMASKM ADR WD ASTRISKS POLE SEEK PROCEED WITH SEARCH IF NO ASTERISK.
01004 SS BLANKS N,MXR ADR WD BLANK OUT ATTACHED ASTERISK.
0101 POLE SEEK TX A4 OP THRS - Z,X4
0102 SWS, B22T25M ADR WD 17 C,+1
0103 SWE, ONESM 4,0 0 Z,X4 SELECT SECTION OF OP CODE LIST.
0105 TX Z,SC,1 - -
0106 LA N,X4,1 ZERO POLE FAIL BRANCH IF OP CODE NOT FOUND.
0108 NA, C1T6M ADR WD 4,0 C,-1 SEARCH THROUGH SELECTED SUBLIST.
0110 LA, B37B48M ONES 4,0 C,+2 BRANCH IF POLISH OPERATOR FOUND.
0112 POLE FAIL TS, B25T31M 2 POLOP 27 HEALTH A4 P1 EXIT INDICATE FAILURE AND EXIT.
0114 SWS, B25T31M N,X4 14,L HEALTH SEND EQUIVALENT OF RIGHT OPERATOR.
0116 A4 P1 EXIT TS P1 MASKS Z,MXR INSTRUCT
# Page 228
# @YUL SYSTEM ASSEMBLER AGC4 PASS 1 USER'S OWN PAGE NO. 4 PAGE 76
P01161 SPECIAL BLOCK CODE INTRODUCTION.
01162 MASKGRP S,0 F,0
01163 AGC4 BLOK TS C,+1 BLOK SHIF BLOCK MODIFY AND ENTER BLOCK/BANK ROUTINE.
01164 TS C,+1 BLOK SHIF C,+2 C RESTORE ROUTINE AND DO SPECIAL SHIFT.
01165 SPE, FIXMAG ADR WD 10,L LOC VALUE
01166 SPE, FIXMAG ADR WD 8,L LOC VALUE S
01167 AGC4 BANK TS C,-2 BLOK SHIF BLOCK JUST IN CASE BLOCK FAILED TO RESTORE.
R011681 SPECIAL PROCESSING FOR COUNT* CODE.
011682 COUNT STA NA, CHAR1 ADR WD DOLLARS ILL COUNT C
011683 NA, CHAR2 ADR WD DOLLARS ILL COUNT C
011684 SS ZERO CHAR2 ADR WD C
011686 SWS, ACO2 LOC CTR 22 ADR WD C
011688 SWS, CHAR1 LOC CTR 19 ADR WD S REPLACE DOLLAR SIGNS WITH BANK NUMBER.
01169 SETLOC,3 0 B5
011692 SETLOC,4 15 B5
R0017 OPERATION CODE THREADS AND TABLES FOR AGC4, USED IN PASS 1.
0118 OP THRS CAC CODES 01 BAD CODE
0119 CAC CODES 11 CODES 10
0120 CAC CODES 21 CODES 20
0121 CAC CODES 31 CODES 30
0122 CAC CODES 41 BAD CODE
0123 CAC CODES 51 CODES 50
0124 CAC CODES 61 CODES 60
0125 CAC CODES 71 CODES 70
# These are opcode tables, constructed using the "M" opcode, which means 'mixed constant',
# i.e. the 'alphanumeric compressed' data type. This is a 48-bit word structured as 6 6-bit
# characters and 3 4-bit BCD digits. So, in the table entries below, each "A" operand to the
# "M" code is part of the 6-character string part, and the "B" operand supplies an octal
# number representing 0-4095.
# So, for example, applying this to the tables below, we get:
# MP 6200
# DMP 4541
# DMPR 5101
# DOT 5641
# UNIT 4231
# DMOVE 5531
# DOUBLE 7002
# AD 7000
# NDX 5040
# VAD 5341
# ACOS 4731
# etc...
R01256 AGC4 OPERATION CODE TABLES. PLEASE IGNORE THE BANK ERRORS.
0126 CODES 01 M,A,MA A,SK A, B,7400
0127 M,A,DE A,C A, DECIMAL
0128 M,A,DA A,D A, B,4341
0129 M,A,DD A,V A, B,4641
0130 M,A,HE A,AD A, HEAD TAIL
0131 M,A,ME A,MO A,RY LATE MEM
0133 BAD CODE OCT 0
0134 CODES 11 M,A,DV A, A, B,6600
01341 M,A,MS A,K A, B,7400
0135 M,A,DS A,U A, B,4441
01351 M,A,DS A,Q A, B,5331
0136 M,A,MX A,V A, B,5241
0137 OCT 0
# Page 229
# @YUL SYSTEM ASSEMBLER AGC4 PASS 1 USER'S OWN PAGE NO. 5 PAGE 77
P01375 AGC4 OPERATION CODE TABLES CONTINUED. PLEASE IGNORE THE BANK ERRORS.
0138 CODES 10 M,A,MP A, A, B,6200
0139 M,A,DM A,P A, B,4541
0140 M,A,DM A,PR A, B,5101
0141 M,A,DO A,T A, B,5641
0142 M,A,UN A,IT A, B,4231
0143 M,A,DM A,OV A,E B,5531
0144 M,A,DO A,UB A,LE B,7002
0146 OCT 0
0148 CODES 21 M,A,AD A, A, B,7000
01481 M,A,ND A,X A, B,5040
0149 M,A,VA A,D A, B,5341
0150 M,A,AC A,OS A, B,4731
0151 M,A,AB A,S A, B,4531
0152 M,A,AB A,VA A,L B,4331
0153 M,A,VD A,EF A, B,5731
0154 M,A,AD A,RE A,S B,4060
0155 M,A,RE A,TU A,RN B,4006
01551 M,A,NE A,XT A, B,5711
0156 M,A,RE A,LI A,NT B,5016
0157 M,A,RE A,SU A,ME B,5026
0158 OCT 0
0159 CODES 20 M,A, A, A, B,4100
0160 OCT 0
0161 CODES 31 M,A,IS A, A, IS EQUALS
0162 M,A,EX A,TE A,ND B,5132
01621 M,A,EV A,EN A, EVEN
0163 M,A,IT A,C A, B,4041
01631 M,A,IT A,CQ A, B,5751
0164 M,A,VX A,M A, B,5301
0165 M,A,VS A,U A, B,4141
0166 M,A,VS A,RT A, B,5501
0167 M,A,VS A,LT A, B,5541
0168 M,A,VX A,SC A, B,4101
0169 M,A,VX A,V A, B,5701
0170 M,A,EX A,IT A, B,4011
0171 M,A,RT A,B A, B,4051
0172 M,A,AX A,T, A,1 B,4111
0173 M,A,AX A,T, A,2 B,4151
01731 M,A,AX A,C, A,1 B,5211
01732 M,A,AX A,C, A,2 B,5251
01733 M,A,VS A,Q A, B,4431
0174 M,A,AS A,T, A,1 B,5111
0175 M,A,AS A,T, A,2 B,5151
0176 M,A,AS A,IN A, B,4631
0177 M,A,IT A,A A, B,5511
0178 M,A,IT A,CI A, B,5551
0180 OCT 0
# Page 230
# @YUL SYSTEM ASSEMBLER AGC4 PASS 1 USER'S OWN PAGE NO. 6 PAGE 78
P01801 AGC4 OPERATION CODE TABLES CONTINUED. PLEASE IGNORE THE BANK ERRORS.
0181 CODES 30 M,A,IN A,DE A,X B,5040
0182 M,A,EQ A,UA A,LS IS EQUALS
0183 M,A,ER A,AS A,E ERASE
0184 M,A,NO A,LO A,D B,5411
01841 M,A,NO A,LO A,AD B,5411
0185 M,A,RO A,UN A,D B,5451
0186 M,A,VM A,OV A,E B,4131
0187 M,A,IN A,CR A,,1 B,4611
0188 M,A,IN A,CR A,,2 B,4651
01881 M,A,VP A,RO A,J B,5741
0189 M,A,NO A,OP A, B,5402
0190 M,A,IN A,HI A,NT B,5022
0191 OCT 0
0193 CODES 41 M,A,OC A,T A, OCTAL
0194 M,A,OC A,TA A,L OCTAL
0195 M,A,2D A,EC A, 2DECIMAL
0196 M,A,SE A,TL A,OC SETLOC
01961 M,A,BA A,NK A, AGC4 BANK
0197 M,A,BH A,IZ A, B,4401
0198 M,A,BD A,SU A, B,4501
0199 M,A,BD A,DV A, B,4701
0200 M,A,SI A,GN A, B,5201
0201 M,A,SI A,N A, B,5031
0202 M,A,SG A,N A, B,5201
0203 * M,A,SE A,GN A,UM LATE MEM
0204 OCT 0
0205 CODES 51 M,A,SU A, A, B,7200
02051 M,A,ST A,OR A,E B,4110
0206 M,A,OV A,SK A, B,6402
0207 M,A,OV A,IN A,D B,6420
02071 M,A,SW A,IT A,CH B,5651
0208 M,A,BZ A,E A, B,5401
0209 M,A,ST A,Z A, B,4241
0210 M,A,BV A,SU A, B,5441
0212 M,A,SX A,A, A,1 B,4411
0213 M,A,SX A,A, A,2 B,4451
0214 M,A,SU A,BR A,O SUBRO
0215 OCT 0
0217 CODES 50 M,A,BP A,L A, B,5601
0218 M,A,BM A,N A, B,4201
0219 M,A,BO A,V A, B,4301
0220 M,A,SQ A,RT A, B,5231
0222 M,A,SM A,OV A,E B,5631
0223 M,A,2O A,CT A, 2OCTAL
0224 M,A,2O A,CT A,AL 2OCTAL
02241 M,A,BL A,OC A,K AGC4 BLOK
0225 M,A,SQ A,UA A,RE B,6202
0226 OCT 0
# Page 231
# @YUL SYSTEM ASSEMBLER AGC4 PASS 1 USER'S OWN PAGE NO. 7 PAGE 79
P0227 AGC4 OPERATION CODE TABLES CONCLUDED. PLEASE IGNORE THE BANK ERRORS.
0228 CODES 61 M,A,TC A, A, B,4000
0229 M,A,XC A,H A, B,5400
0230 M,A,CC A,S A, B,4430
0231 M,A,CA A,F A, B,5410
02311 M,A,TE A,ST A, B,5611
0232 M,A,XC A,HX A,,1 B,4511
0233 M,A,XC A,HX A,,2 B,4551
0234 M,A,XA A,D, A,1 B,4711
0235 M,A,XA A,D, A,2 B,4751
0236 M,A,TI A,X, A,1 B,5311
0237 M,A,TX A,X, A,2 B,5351
02371 M,A,TA A,D A, B,4741
0238 M,A,TC A,R A, B,4000
0239 M,A,TC A,AA A, B,6412
0240 M,A,XA A,Q A, B,4002
0241 M,A,CA A,DR A, B,4070
02411 M,A,XC A,AD A,R B,4120
0242 M,A,TA A,IL A, HEAD TAIL
0246 OCT 0
0247 CODES 69 M,A,= A, A, IS EQUALS
0248 M,A,P A, A, B,4100
0249 OCT 0
0250 CODES 71 M,A,CS A, A, B,6000
0251 M,A,TS A, A, B,6450
0252 M,A,TS A,U A, B,5141
0253 M,A,TS A,RT A, B,5041
0254 M,A,TS A,LT A, B,4601
0255 M,A,TS A,LC A, B,5001
0256 M,A,LX A,A, A,1 B,4211
0257 M,A,LX A,A, A,2 B,4251
0258 M,A,LX A,C, A,1 B,4311
0259 M,A,LX A,C, A,2 B,4351
0260 M,A,XS A,U, A,1 B,5011
0261 M,A,XS A,U, A,2 B,5051
0264 OCT 0
0265 CODES 70 M,A,CO A,M A, B,6002
0266 M,A,LO A,C A, SETLOC
0267 M,A,LO A,DO A,N B,5711
0268 M,A,TM A,OV A,E B,4031
0269 M,A,TP A, A, B,4031
0270 M,A,CO A,MP A, B,5431
0271 M,A,CO A,S A, B,5131
0272 M,A,CO A,UN A,T COUNT
02721 M,A,=P A,LU A,S EQU PLUS
02722 M,A,=M A,IN A,US EQU MINUS
0273 OCT 0