Revision 62edbcc8c6021789df156749d71229308ba4313a authored by Ronald Burkey on 08 August 2021, 00:25:00 UTC, committed by GitHub on 08 August 2021, 00:25:00 UTC
yaAGCb1: Fixed a few errors identified by SELF-CHECK
2 parent s 1bd6f8f + b8b57e2
Raw File
YUL_SYSTEM_ASSEMBLER_PARA_PASS_2.argus
# Copyright:    Public domain.
# Filename:     YUL_SYSTEM_ASSEMBLER_PARA_PASS_2.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:        332-334
# Mod history:  2016-10-06 JL   Created.
#               2016-12-20 JL   Transcribed pages 332-334.

# 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 PARA PASS 2

# Page 332
#      @YUL SYSTEM ASSEMBLER PARA PASS 2                                         USER'S OWN PAGE NO.   1        PAGE  68

R3300   ASSIGNMENTS, CONSTANTS, AND INITIALIZING FOR PASS 2 PARAPROGRAMS.  WE ARE INDEBTED AS USUAL TO JOHN SHAW FOR
R33002  JSOCTL



 3301              SETLOC, 2    1152          B7

 3302   NEXT NAME  ASSIGN       6,1
 3303   SWITCH     ASSIGN       6,2
 3304   MID POINT  ASSIGN       6,40
 3305   E SYLT BAN ASSIGN       6,43
 3306   COMPUTER   ASSIGN       6,53

 3307   ZERO       ASSIGN       6,69
 3308   BIT 45 NOT ASSIGN       6,70
 3309   BIT 46     ASSIGN       6,71

 3310   FREE EXIT  ASSIGN       6,72
 3311   SYPT NTRY  ASSIGN       6,73
 3312   L CUS LIST ASSIGN       6,74
 3313   GENL MXR   ASSIGN       6,75

 3314   CONTINUE   ASSIGN       6,76
 3315   MAY MERGE  ASSIGN       6,77
 3316   END PARAS  ASSIGN       6,78
 3317   LYST SYPT  ASSIGN       6,79

 3318   DISASTER   ASSIGN       6,80
 3319   CSC SLEEP  ASSIGN       6,82
 3320   RELS OR RW ASSIGN       6,84
 3321   GRAB FREE  ASSIGN       6,86



 3322   FREE NTRY  OCT          -133760
 3323   W END SYLT ALF          END SYLT
 3324   L BANK 1   SPEC,B1                                  DAMN ZERO



 3325   PASS 2 GPC TX           L BANK 1      -             Z,X6                INITIAL CODING FOR WR1 IN GROUP C.
 3327              TS           SYPT NTRY     Z,R1          LD X1          C    SET UP SYPT LIST ENTRY POINTER.
 3329              SM           MID POINT     BIT 33        Z,X4                FORM RECORD COUNT FOR YULPROGS.
 3331              TS           GENL MXR      Z,MXR         WR1 BEGIN

 3332   PASS2 GPB  TX           L BANK 1      -             Z,X6                INITIAL CODING FOR RD3 IN GROUP B.
 3334   LD X1      TX           L CUS LIST    -             Z,X1           S
 3335              HA           GENL MXR      ONE           Z,MXR               USE SAME S, INVERSE F AS GROUP A.

# Page 333
#      @YUL SYSTEM ASSEMBLER PARA PASS 2                                         USER'S OWN PAGE NO.   2        PAGE  69

P3337   PARAPROGRAM RD3 -- PASS 2 -- GROUP B
R3338   ------------------------------------

R3339              THIS PARAPROGRAM OPERATES IN GROUP B DURING PASS 2 AND READS SYPTSAVES AND SYLTSAVES FROM TAPE 3.
R3341   TAPE 3 IS REWOUND OR RELEASED AFTER END SYLTS ARE READ. PASS 1 SETS NEXTNAME TO THE NAME OF THE PROGRAM WHOSE
R3343   FIRST RECORD MAY NOT BE DELIVERED TO WR1 UNTIL ALL OF THE MAIN PART OF THE PROGRAM BEING ASSEMBLED HAS BEEN
R3345   DELIVERED.  MERJ WAIT IS A SLEEP ORDER IN PASS 2 USED IN SUBROUTINE ASSEMBLY TO PREVENT DELIVERY OF ANY MAIN
R3347   SYLT UNTIL ALL PRECEDING SYLTSAVES HAVE BEEN DELIVERED.  CONTINUE IS CHANGED TO A PROCEED AS SOON AS ALL MAIN
R3349   SYPTS OR SYLTS HAVE BEEN DELIVERED TO WR1.


 3350   CH NEX BUF TS           Z,X2          Z,X3          GRAB FREE      C
 3351              TS           Z,AU1         Z,X2          PHI TAPE
 3352              RF,3         2,0           -             DISASTER            READ A SAVED SYPT OR SYLT RECORD.

 3354   CH REM BUF TS           FREE EXIT     Z,R4          -
 3355              SSL, ONE     N,R4          16            C,+1                BRANCH IF THERE ARE NO MORE FREE BUFFERS
 3357              TS           N,R4          Z,X3          GRAB REMO

 3358              LA           Z,X3          ZERO          CHECK EOF           GIVE UP AFTER TWO FAILURES.
 3360              TS           ZERO          Z,X3          PHI TAPE
 3361              RF,3         -             -             DISASTER            STALL FOR NEXT BUFFER.
 3363              TS           FREE EXIT     Z,R4          CH REM BUF +1       TRY AGAIN.

 3365   GRAB REMO  TS           Z,SC          Z,AU2         GRAB FREE +5   C    GRAB BUFFER FOR REMOTE RECORD.
 3367              TS           -             -             PHI TAPE
 3368              RF,3         3,0           -             DISASTER

 3369   CHECK EOF  NA           2,1           W END SYLT    CHEK NEXT           BRANCH IF NOT END OF SYPT OR SYLT.
 3371              LA           Z,X3          ZERO          CHEK NEXT -3        BRANCH IF THERE IS NO REMOTE.
 3373              TS           -             -             PHI TAPE
 3374              RF,3         -             -             DISASTER
 3375              TS           Z,X3          Z,SH          FREE BUFF      C    FREE REMOTE BUFFER.
 3377              TX           DELIVER +3    -             DELIVER +1
 3378              SSL, ONE     SWITCH        44            RELS OR RW     C    RELEASE OR REWIND TAPE 3, AS REQUIRED.
 3380              RW,3         -             -             -

 3381   CHEK NEXT  NA           2,1           NEXT NAME     DELIVER             BRANCH IF WE MAY DELIVER SAVES NOW.
 3383              LA           N,X2          C5T8          C,+2                ASSUME AGREEMENT IF NO COMPUTER NAME.
 3385              NA, C1T4     2,0           COMPUTER      DELIVER             BRANCH TO DELIVER IF WRONG COMPUTER NAME
 3387              TS           ZERO          MAY MERGE     MON WAKE       C    PERMIT DELIVERY OF MAIN SYLTS FROM YP2.
 3389              TS           EOR           NEXT NAME     C,+2                ENSURE DELIVERY AFTER THIS.
 3391              TS           -             -             MON SLEEP      C
 3392              LA           CAC3          CONTINUE      C,-1

 3393   DELIVER    TS           Z,X2          Z,AU2         LYST SYPT      C    PUT BUFFER INTO SYPT STATUS.
 3395              LA           Z,X3          ZERO          CH NEX BUF          BRANCH IF THERE IS NO REMOTE.
 3397              TS           Z,X3          Z,X2          CH REM BUF          REMOTE BUFFER BECOMES NEXT.
 3399              TS, C1T4     ZERO          END PARAS     DEAD STOP           (REPLACES DELIVER+1 AT END).

# Page 334
#      @YUL SYSTEM ASSEMBLER PARA PASS 2                                         USER'S OWN PAGE NO.   3        PAGE  70

P3401   PARAPROGRAM WR1 -- PASS 2 -- GROUP C
R3402   ------------------------------------

R3403              THIS PARAPROGRAM OPERATES IN GROUP C DURING PASS 2 AND WRITES SYPTS AND SYLTS, WITH THEIR END-OF-FILE
R3405   RECORDS, ON TAPE 1.  WR1 RE-BANNERS THE RECORDS IT WRITES, USING ITS Z,X4 WHICH MUST BE INITIALIZED FROM THE
R3407   MIDPOINT NUMBER KEPT IN PASS 1.

 3408   NO SYP EOF TS           Z,X2          Z,X3          CHEK SYPT           LAST BECOMES REMOTE.

 3410              TS           -             -             MON SLEEP      C    SLEEP UNTIL SOMEONE PREPARES A RECORD.
 3412   CHEK SYPT  LA           N,R1          ZERO          WR1 REMOT           BRANCH IF NO RECORDS READY.
 3414              TX           N,R1          -             Z,X2
 3415              TS           ZERO          N,R1,1        MON WAKE       C    REMOVE BUFFER FROM SYPT STATUS.
 3417              SM           Z,R1          BIT 46        Z,R1                MODULATE SYPT LIST EXIT POINTER.
 3419              RT           2,6           -             -                   FIND THE END-OF-RECORD WORD.
 3421              WD           Z,AU1         THREE         Z,CSH               BACK UP TO ORTHOWORD 1.
 3423              SS           Z,X4,1        SPEC MAG      N,X2                INSERT NEW RECORD COUNT IN BANNER WORD.
 3425              CC           N,X2          -             N,CSH               CORRECT ORTHOWORD FOR NEW BANNER.
 3427              NA, BIT11    SWITCH        ZERO          C,+3                NO WRITE IF REPRINT OR BAD MERGE.
 3429              TS, CHAR8    ONE           0             PHI TAPE            ENSURE THAT BACKUP IS MADE AT ENDJOB.
 3431              WF,1         2,0           -             DISASTER            MAIN WRITE ORDER FOR WR1.
 3433              LA           Z,X3          ZERO          C,+2                BRANCH IF THERE IS NO REMOTE.
 3435              TS           Z,X3          Z,SH          FREE BUFF      C    FREE REMOTE BUFFER.
 3437              NA           2,1           W END SYLT    NO SYP EOF          BRANCH IF THAT WAS NOT END SYLT.

 3439              NA, BIT11    SWITCH        ZERO          C,+3                NO WRITE IF REPRINT OR BAD MERGE.
 3441              TS           -             -             PHI TAPE
 3442              WF,1         -             -             DISASTER
 3443              TS           Z,X2          Z,SH          FREE BUF       C    FREE END SYLT BUFFER.
 3445              TX           Z,X4          -             ESYLT BAN           SAVE SERIAL NUMBER FOR PASS 3.
 3447              TS, C5T8     ZERO          END PARAS     DEAD STOP

 3448   WR1 REMOT  LA           Z,X3          ZERO          CHEK SYPT -1        GO TO SLEEP IF THERE IS NO REMOTE.
 3450              NA, BIT11    SWITCH        ZERO          C,+3                NO WRITE IF REPRINT OR BAD MERGE.
 3452              TS           -             -             PHI TAPE
 3453              WF,1         -             -             DISASTER            STALL FOR REMOTE.
 3455              TS           Z,X3          Z,SH          FREE BUFF      C    FREE REMOTE BUFFER.
 3457   WR1 BEGIN  TS           ZERO          Z,X3          CHEK SYPT           TRY AGAIN AFTER STALLING.


R3459   SEQUENCE-TO-COSEQUENCE SUBROUTINE TO FREE THE BUFFER WHOSE NAME IS IN SH, AND WAKE UP ANY SLEEPERS.

 3461   FREE BUFF  TS           FREE NTRY     Z,R4          -              C    GET FREE LIST ENTRY POINTER.
 3463              TS           Z,SH          N,R4,1        -              C    PUT BUFFER NAME INTO FREE LIST.
 3465              EX           Z,R4          BIT 45 NOT    FREE NTRY      C    MODULATE FREE LIST ENTRY POINTER.
 3467              TS           Z,SC          Z,CSC         MON WAKE       C    WAKE SLEEPERS AND EXIT.


R3469   FINAL STOP FOR PARAPROGRAMS.

 34695  DEAD STOP  PR                                                           EXTRA HUNT FOR MONITOR PECULIARITY.
 3470              TS           Z,R0          Z,SC          MON WAKE       C
back to top