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_3.argus
# Copyright: Public domain.
# Filename: YUL_SYSTEM_ASSEMBLER_SACO_PASS_3.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: 548-553
# Mod history: 2016-10-06 JL Created.
# 2017-01-12 JL Transcribed pages 548-553.
# 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 3
# Page 548
# @YUL SYSTEM ASSEMBLER SACO PASS 3 USER'S OWN PAGE NO. 1 PAGE 67
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 3 B1
0005 MASKGRP,1 S,0 F,0
R0006 THE SACO PART OF PASS 3 CONTAINS SUBROUTINES WITH THE FOLLOWING FUNCTIONS:
R0008 SC EDT DEF . . . . . . .SET A GIVEN ADDRESS IN PRINT IN WORDS 2 AND 3 OF THE PRINT LINE, OR SET UP BLOTS FOR A
R0010 BAD ADDRESS. TYPICALLY USED TO PRINT THE DEFINITION OF A SYMBOL.
R0012 SC EDT AV1 . . . . . . .SET A GIVEN ADDRESS IN PRINT IN WORD 1 OF THE PRINT LINE. TYPICALLY USED TO PRINT A
R0014 LOWER LIMIT IN THE AVAILABILITY DISPLAY.
R0015 SC PRIN PN . . . . . . .SET IN PRINT UPPER ADDRESS LIMIT AND PARAGRAPH NUMBER FOR A PARAGRAPH.
R0017 SC EDIT WD . . . . . . .FORM A 14-CHARACTER PRINT IMAGE OF A BYPT WORD. FLAG REFERENCES TO UNUSED FIXED MEMORY.
R0022 SC EXPLAN . . . . . . .PRINT A TWO-LINE SUBHEADING FOR AN OCTAL PARAGRAPH LISTING.
R0020 QUANTITIES FILLED IN BY THE SACO PART OF PASS 3 FOR REFERENCE BY THE GENERAL PART OF PASS 3.
0022 SC SUB SPX CAC SC PRIN PN SC EDT AV1 SC EDT DEF
0023 CAC SC EXPLAN SC EDIT WD
0024 SC MAX LOC OCT - 17777
0025 SC MAX SSN OCT -100037
0026 SCW TO ALF TO
0027 SCW TO MSK OCT 007777
# Page 549
# @YUL SYSTEM ASSEMBLER SACO PASS 3 USER'S OWN PAGE NO. 2 PAGE 68
P0028 CONSTANTS AND RESERVATIONS.
00281 SC FLG MSK OCT 0000 0070
00282 SC FLAG 4 OCT 0000 0040
0029 SC3 BLOTS ALF,2 ▪▪▪▪
0030 SC3 BANK ALF 0,0
0031 OCT 5777 OCT -5777
0032 M COMMON RESERVE 2
0033 BANK ZERS ALF 0,0000
0034 ZEROS 1T3 ALF 000
0035 ZERO C8 ALF 0
0036 ZERO C4T7 ALF 0000
0037 AT AVAIL ALF @
0038 W BAD WORC ALF BAD WORC
0039 BADRF CUS ALF ▪REF
0040 LETTER C ALF C:
0041 LETTER I ALF I:
0042 EMPTY WD ALF 00000 0
# Page 550
# @YUL SYSTEM ASSEMBLER SACO PASS 3 USER'S OWN PAGE NO. 3 PAGE 69
P00421 ALPHABETIC ARRAYS.
0043 W PARAG NO ALF,3 PARAGRAPH # 00
0044 EDIT HED ALF,5 OCTAL LISTING OF PARAGRAPH # 00, WITH PA
0045 ALF,5 RITY BIT IN BINARY AT THE RIGHT OF EACH
0046 ALF,5 WORD; "@" DENOTES UNUSED FIXED MEMORY.
0047 W WD MARKS OCT 0002
0048 ALF,5 ALL VALID WORDS ARE BASIC INSTRUCTIONS E
0049 ALF,5 XCEPT THOSE MARKED "I" (INTERPRETIVE OPE
0050 ALF,5 RATOR WORDS) OR "C" (CONSTANTS).
0051 SC SSTRED ALF,4 IMITS ARE SHOWN FOR EACH.
# Page 551
# @YUL SYSTEM ASSEMBLER SACO PASS 3 USER'S OWN PAGE NO. 4 PAGE 70
P0052 SUBROUTINE IN PASS 3 FOR SACO TO SET IN PRINT THE DEFINITION OF A SYMBOL OR THE UPPER LIMIT OF AN
R0054 ITEM IN THE AVAILABILITY DISPLAY. SUPPLY AN INTEGER IN EQIVLENT OR ONES IF THERE IS NO DEFINITON. ENTRY IS
R0056 TS M EDIT DEF - Z,CSC C SETS UP THE DEFINITION USING THE BANK
R0058 NOTATION, OR SETS UP FOUR BLOTS IF NO DEFINITION.
0059 SC EDT DEF NA EQIVLENT ONES C,+2 C
0060 TN SC3 BLOTS 2 LINE +2 PRINT BLOTS AND EXIT.
0062 LA EQIVLENT OCT 5777 NON BANK C BRANCH IF LOCATION IS NOT IN A BANK.
0064 TX SC3 BANK - LINE +2 C
0067 SWS, ACO6 EQIVLENT 2,L LINE +2 C SET BANK NUMBER IN PRINT.
0069 SM EQIVLENT OCT 6000 M COMMON C PUT SUBADDRESS IN THE RANGE 6000-7777.
0071 TS ZEROS 1T3 LINE +3 C,+3 C
0072 NON BANK TX EQIVLENT - M COMMON C
0073 TS ZERO C8 LINE +2 C,-2 C
0074 SWS, ACO8 M COMMON 9 LINE +2 C
0075 SWS, ACO1 M COMMON 12 LINE +3 C
0076 SWS, ACO2 M COMMON 15 LINE +3 C
0077 SWS, ACO3 M COMMON 18 LINE +3 SET SUBADDRESS IN PRINT AND EXIT.
R0079 SUBROUTINE IN PASS 3 FOR SACO TO SET IN PRINT THE LOWER LIMIT OF AN ITEM IN THE AVAILABILITY DISPLAY
R0081 OR AN ADDRESS IN THE PARAGRAPH EDIT. WITH THE ADDRESS SUPPLIED AS AN INTEGER IN ADDRESS, ENTRY IS
R0083 SWE, CAC3 M EDIT AV1 16 Z,CSC C USES THE BANK NOTATION.
0085 SC EDT AV1 LA ADDRESS OCT 5777 NON BANK 1 C
0086 TX BANK ZERS - LINE +1 C
0089 SWS, ACO2 ADDRESS 26,L LINE +1 C PRINT BANK NUMBER.
0091 SM ADDRESS N,CSC,3 M COMMON C PUT SUBADDRESS IN THE RANGE 6000-7777.
0093 OCT 6000 OCT -6000
0094 NON BANK 1 TX ZERO C4T7 - LINE +1 C
0095 TX ADDRESS - M COMMON C
0096 SWS, ACO4 M COMMON 15,L LINE +1 C
0097 SWS, ACO5 M COMMON 12,L LINE +1 C
0098 SWS, ACO6 M COMMON 9,L LINE +1 C
0099 SWS, ACO7 M COMMON 6,L LINE +1 SET SUBADDRESS IN PRINT AND EXIT.
# Page 552
# @YUL SYSTEM ASSEMBLER SACO PASS 3 USER'S OWN PAGE NO. 5 PAGE 71
P0101 SUBROUTINE IN PASS 3 FOR SACO TO MAKE A 14-CHARACTER IMAGE CORRESPONDING TO A SACO WORD. THE IMAGE
R0103 IS DELIVERED IN IMAGE AND IMAGE+1 AND CONSISTS OF ANY OF THE FOLLOWING, RIGHT-JUSTIFIED SO THAT THE RIGHT-HAND
R0105 14 CHARACTERS CAN BE USED:
R0106 IF A NON-FIXED LOCATION,
R0107 IF AN UNUSED LOCATION, @
R0108 IF A CONFLICT LOCATION, CONFLICT
R0109 IF A BAD WORD, BAD WORD
R0110 IF A BASIC INSTRUCTION, XXXXX P (FIVE OCTAL DIGITS AND A PARITY BIT)
R0112 IF REFERRING TO UNUSED LOCATION, ▪REF XXXXX P
R0113 IF AN INTERPRETIVE OPERATOR WORD, I: XXXXX P
R0114 IF A CONSTANT, C: XXXXX P ENTRY IS
R0116 TX M EDIT WD - Z,CSC C OR EQUIVALENT.
0118 SC EDIT WD TX BLANKS - IMAGE C
0119 NA N,X2 ZERO USED FIXT C OMIT TYPE CHECK FOR USED WORDS.
0121 TX ADDRESS - EQIVLENT C
0122 WD Z,X2 Z,X3 M COMMON C
0123 WD, CAC3 M COMMON THREE M COMMON C
0124 SS M COMMON B41T48 EQIVLENT C FORM SACO ADDRESS OF UNUSED WORD.
0126 TX RL TYP TAB - Z,X4 C
0127 LA, CAC3 EQIVLENT 4,0 C,+2 C BRANCH WHEN MEMORY TYPE FOUND.
0129 TS Z,X4,1 - C,-1 C
0130 NA, LSTYPE 4,0 TYPE F C,+2 C
0131 TX AT AVAIL - IMAGE +1 EXIT WITH AT FOR UNUSED FIXED.
0133 TX BLANKS - IMAGE +1 EXIT WITH BLANK IMAGE FOR NON-FIXED.
0135 USED FIXT LA N,X2 W BAD WORC TEST FLAG C BRANCH IF NOT "BAD WORD" OR "CONFLICT".
0137 TX N,X2 - IMAGE +1 C
01372 TX SC FLAG 4 - N,X2 S MARK AS SUCH AND EXIT.
01388 SS ZERO SC FLG MSK N,X2 C REMOVE FLAG IF REFERS TO USED FIXED.
0139 TEST FLAG SSL, ACO8 N,X2 27 C,+1 C FOUR-WAY BRANCH ON TYPE OF FLAG.
0141 TS EMPTY WD IMAGE +1 FLAGGED C SEE BOTTOM OF NEXT PAGE.
0143 TS LETTER I IMAGE C,-1 C
0144 TS LETTER C IMAGE C,-2 C
0145 LA, B36T48 2,0 THREAD 11 TEST FLAG -1 C BRANCH IF NOT REFERRING TO FIXED MEMORY.
0147 SWS, B26T30 N,X2 17,L C,+1 C
0148 SWE, ONES BIT 1 0 AVAIL MSK C
0149 SWE, B39T48 N,X2 26 Z,X4 C
0150 SWS, B44T48 N,X2 6 Z,X4 C
01502 WA Z,X4 L AV TABLE Z,X4 C
0151 LA, AVAILMSK 4,0 ZERO TEST FLAG -1 C BRANCH IF LOCATION IS USED.
01522 * NA SEG OWNER BLANKS TEST FLAG -1 C NO CUSS IN SEGMENT ASSEMBLY.
0153 P3 ERRORS DA N OCT ERRS ONE N OCT ERRS C
01561 SS ZERO BIT 16 SWITCH C PRINT REMAINDER OF OCTAL STORAGE MAP.
0159 TX BADRF CUS IMAGE TEST FLAG +1 C MARK GUILTY ORDER AND EXIT.
# Page 553
# @YUL SYSTEM ASSEMBLER SACO PASS 3 USER'S OWN PAGE NO. 6 PAGE 72
R0161 SUBROUTINE IN PASS 3 FOR SACO TO SET IN PRINT THE UPPER ADDRESS LIMIT AND PARAGRAPH NUMBER FOR THE
R0163 PARAGRAPH SUMMARY. ENTRY IS
R0164 SWE, CAC3 M PRINT PN 32 Z,CSC C EXITS TO EDIT DEF TO PRINT UPPER LIMIT.
0166 SC PRIN PN TN W PARAG NO 3 LINE +4 C
0167 SWS, ACO5 Z,R0 15,L LINE +5 C
0168 SWS, ACO6 Z,R0 12,L LINE +5 C EDIT PARAGRAPH NUMBER.
0170 TN SC SSTRED 4 PAGE HED2 +7 C REMOVE BIT ABOUT "MANUFACTURING LOCATION
0172 MT BLANKS 4 N,AU2,1 C CODE" FROM LOCAL PAGE SUBHEAD.
0174 TS C,+0 C,-2 SC EDT DEF +2 C JOIN EDT DEF FOR UPPER ADDRESS LIMIT.
R0176 SUBROUTINE IN PASS 3 FOR SACO TO PRINT TWO EXPLANATORY LINES AT THE HEAD OF EACH PAGE OF AN OCTAL
R0178 PARAGRAPH LISTING. ENTRY IS
R0179 SWE, CAC3 M EXPLAIN 16 Z,CSC C
0180 SC EXPLAN TN EDIT HED 15 PAGE HED2 +1 C
0181 SWS, ACO6 N,X2 9,L PAGE HED2 +4 C
0182 SWS, ACO7 N,X2 6,L PAGE HED2 +4 C PUT PARAGRAPH NUMBER IN FIRST LINE.
0184 TN W WDMARKS 16 LINE C
0185 TS Z,SC Z,X4 PRINT LIN PRINT EXPLANATION AND RETURN.
R0187 TERMINATION OF SC EDIT WD ON PREVIOUS PAGE.
0188 FLAGGED SWS, ACO2 N,X2 23,L IMAGE +1 C
0189 SWS, ACO3 N,X2 20,L IMAGE +1 C
0190 SWS, ACO4 N,X2 17,L IMAGE +1 C
0191 SWS, ACO5 N,X2 14,L IMAGE +1 C
0192 SWS, ACO6 N,X2 11,L IMAGE +1 C SET IN PRINT 5 OCTAL DIGITS OF WORD.
0194 SS N,X2 ONE IMAGE +1 SET PARITY BIT IN PRINT, EXIT.