### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: DISPLAY_INTERFACE_ROUTINES.agc
## Purpose: A section of Artemis revision 071.
## It is part of the reconstructed source code for the first
## release of the flight software for the Command Module's
## (CM) Apollo Guidance Computer (AGC) for Apollo 15 through
## 17. The code has been recreated from a copy of Artemis 072.
## It has been adapted such that the resulting bugger words
## exactly match those specified for Artemis 071 in NASA
## drawing 2021154-, which gives relatively high confidence
## that the reconstruction is correct.
## Reference: 1448
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2019-08-14 MAS Created from Artemis 072.
## 2021-05-30 ABS BLKNR1 -> BLNKR1
## Page 1448
# DISPLAYS CAN BE CLASSIFIED INTO THE FOLLOWING CATEGORIES -
#
# 1. PRIORITY DISPLAYS - DISPLAYS WHICH TAKE PRIORITY OVER ALL OTHER DISPLAYS. USUALLY THESE DISPLAYS ARE SENT
# OUT UNDER CRITICAL ALARM CONDITIONS.
# 2. EXTENDED VERB DISPLAYS - ALL EXTENDED VERBS AND MARK ROUTINES SHOULD USE EXTENDED VERB (MARK) DISPLAYS.
# 3. NORMAL DISPLAYS - ALL MISSION PROGRAM DISPLAYS WHICH INTERFACE WITH THE ASTRONAUT DURING THE NORMAL
# SEQUENCE OF EVENTS.
# 4. MISC. DISPLAYS - ALL DISPLAYS NOT HANDLED BY THE DISPLAY INTERFACE ROUTINES. THESE INCLUDE SUCH DISPLAYS AS
# MM DISPLAYS AND SPECIAL PURPOSE DISPLAYS HANDLED BY PINBALL.
# 5. ASTRONAUT INITIATED DISPLAYS - ALL DISPLAYS INITIATED EXTERNALLY.
#
# THE FOLLOWING TERMS ARE USED TO DESCRIBE THE STATUS OF DISPLAYS -
#
# 1. ACTIVE - THE DISPLAY WHICH IS (1) BEING DISPLAYED TO THE ASTRONAUT AND WAITING FOR A RESPONSE OR
# (2) WAITING FIRST IN LINE FOR THE ASTRONAUT TO FINISH USING THE DSKY OR (3) BEING DISPLAYED ON THE DSKY
# BUT NOT WAITING FOR A RESPONSE.
# 2. INACTIVE - A DISPLAY WHICH HAS (1) BEEN ACTIVE BUT WAS INTERRUPTED BY A DISPLAY OF HIGHER PRIORITY,
# (2) BEEN PUT INTO THE WAITING LIST AT TIME IT WAS REQUESTED DUE TO THE FACT A HIGHER PRIORITY DISPLAY
# WAS ALREADY GOING, (3) BEEN INTERRUPTED BY THE ASTRONAUT (CALLED A PINBRANCH CONDITION, SINCE THIS TYPE
# OF INACTIVE DISPLAY IS USUALLY REACTIVATED ONLY BY PINBALL) OR (4) A DISPLAY WHICH HAS FINISHED BUT STILL
# HAS INFO SAVED FOR RESTART PURPOSES.
#
# DISPLAY PRIORITIES WORK AS FOLLOWS -
#
# INTERRUPTS -
# 1. THE ASTRONAUT CAN INTERRUPT ANY DISPLAY WITH AN EXTERNAL DISPLAY REQUEST.
# 2. INTERNAL DISPLAYS CAN NOT BE SENT OUT WHEN THE ASTRONAUT IS USING THE DSKY.
# 3. PRIORITY DISPLAYS INTERRUPT ALL OTHER TYPES OF INTERNAL DISPLAYS. A PRIORITY DISPLAY INTERRUPTING ANOTHER
# PRIORITY DISPLAY WILL CAUSE AN ABORT UNLESS BIT14 IS SET FOR THE LINUS ROUTINE.
# 4. A MARK DISPLAY INTERRUPTS ANY NORMAL DISPLAY.
# 5. A MARK THAT INTERRUPTS A MARK COMPLETELY REPLACES IT.
#
# ORDER OF WAITING DISPLAYS -
# 1. ASTRONAUT EXTERNAL USE
# 2. PRIORITY
# 3. INTERRUPTED MARK
# 4. INTERRUPTED NORMAL
#
# 5. MARK TO BE REQUESTED (SEE DESCRIPTION OF ENDMARK)
# 6. MARK WAITING
# 7. NORMAL WAITING
#
## Page 1449
# THE DISPLAY ROUTINES ARE INTENDED TO SERVE AS AN INTERFACE BETWEEN THE USER AND PINBALL. THE
# FOLLOWING STATEMENTS CAN BE MADE ABOUT NORMAL DISPLAYS AND PRIORITY DISPLAYS (A DESCRIPTION OF MARK ROUTINES
# WILL FOLLOW LATER):
#
# 1. ALL ROUTINES THAT END IN R HAVE AN IMMEDIATE RETURN TO THE USER. FOR ALL FLASHING DISPLAYS THIS RETURN
# IS TO THE USERS CALL CADR +4. FOR THE ONLY NON FLASHING IMMEDIATE RETURN DISPLAY (GODSPR) THIS RETURN
# IS TO THE USERS CALLING LOC +1.
# 2. ALL ROUTINES NOT ENDING IN R DO NOT DO AN IMMEDIATE RETURN TO THE USER.
# 3. ALL ROUTINES THAT END IN R START A SEPARATE JOB (MAKEPLAY) WITH USERS JOB PRIORITY.
# 4. ALL ROUTINES NOT ENDING IN R BRANCH DIRECTLY TO MAKEPLAY WHICH MAKES THESE DISPLAYS A PART OF THE
# USERS JOB.
# 5. ALL DISPLAY ROUTINES ARE CALLED VIA BANKCALL.
# 6. TO RESTART A DISPLAY THE USER WILL GENERALLY USE A PHASE OF ONE WITH DESIRED RESTART GROUP (SEE
# DESCRIPTION OF RESTARTS).
# 7. ALL FLASHING DISPLAYS HAVE 3 RETURNS TO THE USER FROM ASTRONAUT RESPONSES. A TERMINATE (V34) BRANCHES
# TO THE USERS CALL CADR +1. A PROCEED (V33) BRANCHES TO THE USERS CALL CADR +2. AN ENTER OR RECYCLE
# (V32) BRANCHES TO THE USERS CALL CADR +3.
# 8. ALL ROUTINES MUST BE USED UNDER EXECUTIVE CONTROL.
#
# A DESCRIPTION OF EACH ROUTINE WITH AN EXAMPLE FOLLOWS:
#
# GODSPR IS THE SAME AS GODSP ONLY RETURN IS TO THE USER.
#
# CAF VXXNYY
# TC BANKCALL
# CADR GODSPR
# ... ... IMMEDIATE RETURN OF GODSPR
#
# GOFLASH DISPLAYS A FLASHING VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER. 3 RETURNS ARE POSSIBLE FROM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
#
# CAF VXXNYY VXX NYY WILL BE A FLASHING VERB NOUN.
# TC BANKCALL
# CADR GOFLASH
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER OR RECYCLE RETURN
#
# GOPERF1 IS ENTERED WITH DESIRED CHECKLIST VALUE IN A. GOPERF1 WILL DISPLAY THIS VALUE IN R1 BY MEANS OF A
# V01 N25. A FLASHING PLEASE PERFORM ON CHECKLIST (V50 N25) IS THEN DISPLAYED. NO IMMEDIATE RETURN IS MADE TO
# USER (SEE NO. 7 ABOVE).
# GOPERF1 BLANKS REGISTERS R2 AND R3
#
# CAF OCTXX CODE FOR CHECKLIST VALUE XX
# TC BANKCALL
# CADR GOPERF1
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
## Page 1450
# ... ... ENTER RETURN
#
# GOPERF3 IS USED FOR A PLEASE PERFORM ON A PROGRAM NUMBER. THE DESIRED PROGRAM NO. IS ENTERED IN A. GOPERF3
# DISPLAYS THE NO. BY MEANS OF A V06 N07 FOLLOWED BY A FLASHING V50 N07 FOR A PLEASE PERFORM. NO IMMEDIATE RETURN
# IS MADE TO THE USER (SEE NO. 7 ABOVE).
# GOPERF3 BLANKS REGISTERS R2 AND R3
#
# CAF DECXX REQUEST PERFORM ON PXX
# TC BANKCALL
# CADR GOPERF3
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# GOPERF4 IS USED FOR A PLEASE PERFORM ON AN OPTION. THE DESIRED OPTION IS ENTERED IN A AND STORED IN OPTION1.
# GOPERF4 DISPLAYS R1 AND R2 BY MEANS OF A V04N06 FOLLOWED BY A FLASHING V50N06 FOR A PLEASE PERFORM. NO
# IMMEDIATE RETURN IS MADE TO THE USER (SEE NO. 7 ABOVE).
#
# CAF OCTXX REQUEST PERFORM ON OPTION XX
# TC BANKCALL
# CADR GOPERF4
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# GOPERF4 BLANKS REGISTER R3
#
# GODSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN TO THE USER AFTER THE DISPLAY HAS BEEN SENT
# OUT.
#
# CAF VXXNYY
# TC BANKCALL
# CADR GODSPRET
# ... ... RETURN TO USER
#
# REGODSP IS USED TO DISPLAY A VERB NOUN ARRIVING IN A. REGODSP IS THE SAME AS GODSP ONLY REGODSP REPLACES ANY
# ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
#
# CAF VXXNYY
# TC BANKCALL
# CADR REGODSP
#
# REFLASH IS THE SAME AS GOFLASH ONLY REFLASH REPLACES ANY ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
#
# CAF VXXNYY VXX NYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR REFLASH
# ... ... TERMINATE RETURN
## Page 1451
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# GOFLASHR IS SAME AS GOFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +4.
#
# CAF VXXNYY
# TC BANKCALL
# CADR GOFLASHR
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER OR RECYCLE RETURN
#
# ... ... IMMEDIATE RETURN FROM GOFLASHR
#
# GOPERF1R IS THE SAME AS GOPERF1 ONLY GOPERF1R HAS AN IMMEDIATE RETURN TO USERS CALL CADR +4.
# GOPERF1R BLANKS REGISTERS R2 AND R3
#
# CAF OCTXX CODE FOR CHECKLIST VALUE XX.
# TC BANKCALL
# CADR GOPERF1R
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# ... ... IMMEDIATE RETURN FROM GOPERF1R
#
# GOPERF3R IS THE SAME AS GOPERF3 ONLY AN IMMEDIATE RETURN IS MADE TO USERS CALL CADR +4.
# GOPERF3R BLANKS REGISTERS R2 AND R3
#
# CAF PROGXX PERFORM PROGRAM XX
# TC BANKCALL
# CADR GOPERF3R
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# ... ... GOPERF3R IMMEDIATELY RETURNS HERE
#
# GOPERF4R IS THE SAME AS GOPERF4 ONLY AN IMMEDIATE RETURN IS MADE TO USERS CALL CADR +4.
#
# CAF OCTXX REQUEST PERFORM ON OPTIONXX
# TC BANKCALL
# CADR GOPERF4R
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# ... ... IMMEDIATE RETURN TO USER
#
## Page 1452
# GOPERF4R BLANKS REGISTER R3
#
# REFLASHR IS THE SAME AS REFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +4.
#
# CAF VXXNYY VXX NYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR REFLASHR
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# ... ... IMMEDIATE RETURN TO USER
#
# REGODSPR IS THE SAME AS REGODSP ONLY A RETURN (IMMEDIATE) IS MADE TO THE USER.
#
# CAF VXXNYY
# TC BANKCALL
# CADR REGODSPR
#
# ... ... IMMEDIATE RETURN TO USER
#
## Page 1453
# GOMARK IS USED TO DISPLAY A MARK VERB NOUN ARRIVING IN A. NO RETURN IS MADE TO THE USER.
#
# GOMARKR IS THE SAME AS GOMARK ONLY RETURN IS TO THE USER.
#
# GOMARKF DISPLAYS A FLASHING MARK VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER. 3 RETURNS ARE POSSIBLE FROM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
# GOXDSPF = GOMARKF
#
# CAF VXXNYY VXXNYY WILL BE A FLASHING MARK VERB NOUN
# TC BANKCALL
# CADR GOMARKF OTHER EXTENDED VERBS USE CADR GOXDSPF
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER OR RECYCLE RETURN
#
# GOMARKFR IS THE SAME AS GOMARKF ONLY AN IMMEDIATE RETURN IS MADE TO THE USER CALL CADR +4.
#
# GOMARK1 IS USED FOR A PLEASE PERFORM ON A MARK REQUEST WITH ONLY 1 ASTRONAUT RETURN TO THE USER. NO IMMEDIATE
# RETURN IS MADE. THE DESIRED MARK PLEASE PERFORM VERB AND DESIRED NOUN IS ENTERED IN A. GOMARK1 DISPLAYS R1, R2, R
# MEANS OF A V05NYY FOLLOWED BY A FLASHING V5XNYY FOR A PLEASE PERFORM. THE ASTRONAUT WILL RESPOND WITH A MARK
# OR MARK REJECT OR AN ENTER. THE ENTER IS THE ONLY ASTRONAUT RESPONSE THAT WILL COME BACK TO THE USER.
#
# CAF V5XNYY X=1,2,3,4 Y=NOUN
# TC BANKCALL
# CADR GOMARK1
#
# ... ... ENTER RETURN
#
# *** IF BLANKING DESIRED ON NON R ROUTINES, NOTIFY DISPLAYER.
#
# GOMARK1R IS THE SAME AS A GOMARK1 ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +2.
#
# CAF V5XNYY X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK1R
#
# ... ... ASTRONAUT ENTER RETURN
# ... ... IMMEDIATE RETURN TO USER
#
# GOMARK2 IS THE SAME AS GOMARK1 ONLY 3 RETURNS ARE MADE TO THE USER FROM THE ASTRONAUT.
#
# CAF V5XNYY X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK2
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# GOMARK4 IS THE SAME AS GOMARK3 ONLY R2 AND R3 ARE BLANKED AND R1 IS DISPLAYED IN OCTAL.
#
# CAF V5XNYY X=1,2,3,4 YY=NOUN
# TC BANKCALL
## Page 1454
# CADR GOMARK4
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER RETURN
#
# EXDSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN MADE TO THE USER AFTER THE DISPLAY HAS BEEN
# SENT OUT.
#
# CAF VXXNYY
# TC BANKCALL
# CADR EXDSPRET
#
# ... ... RETURN TO USER
#
# KLEENEX CLEANS OUT ALL MARK DISPLAYS (ACTIVE AND INACTIVE). A RETURN IS MADE TO THE USER AFTER THE MARK DISPLAYS
# HAVE BEEN CLEANED OUT.
#
# TC BANKCALL
# CADR KLEENEX
#
# ... ... RETURN TO USER
#
# MARKBRAN IS A SPECIAL PURPOSE ROUTINE USED FOR SAVING JOB VAC AREAS (SEE DESCRIPTION OF MARKBRAN BELOW).
#
# TC BANKCALL
# CADR MARKBRAN
#
# ... ... BAD RETURN IF MARK DISPLAY NOT ACTIVE
#
# (GOOD RETURN TO IMMEDIATE RETURN LOC OF
# LAST FLASHING MARK R ROUTINE)
#
# PINBRNCH REESTABLISHES THE LAST ACTIVE FLASHING DISPLAY. IF THERE IS NO ACTIVE FLASHING DISPLAY, THE DSKY IS
# BLANKED AND CONTROL IS SENT TO ENDOFJOB.
#
# TC POSTJUMP
# CADR PINBRNCH
#
# PRIODSP IS USED AS A PRIORITY DISPLAY. IT WILL DISPLAY A GOFLASH TYPE DISPLAY WITH THREE POSSIBLE RETURNS FROM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
#
# THE MAIN PURPOSE OF PRIODSP IS TO REPLACE THE PRESENT DISPLAY WITH A DISPLAY OF HIGHER PRIORITY AND TO
# PROVIDE A MEANS FOR RESTORING THE OLD DISPLAY WHEN THE PRIORITY DISPLAY
# IS RESPONDED TO BY THE ASTRONAUT.
#
# THE FORMER DISPLAY IS RESTORED BY AN AUTOMATIC BRANCH TO WAKE UP THE DISPLAY THAT WAS INTERRUPTED BY THE
# PRIO DISPLAY.
#
# CAF VXXNYY VXXNYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
## Page 1455
# CADR PRIODSP
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER OR RECYCLE RETURN
#
# PRIODSPR IS THE SAME AS PRIODSP ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +4.
#
# CAF VXXNYY VXXNYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR PRIODSPR
# ... ... TERMINATE RETURN
# ... ... PROCEED RETURN
# ... ... ENTER OR RECYCLE RETURN
#
# ... ... IMMEDIATE RETURN
#
# PRIOLARM DOES A V05N09 PRIODSPR.
#
# CLEANDSP CLEANS OUT ALL NORMAL DISPLAYS (ACTIVE AND INACTIVE). A RETURN IS MADE TO THE USER AFTER NORMAL
# DISPLAYS ARE CLEANED OUT.
#
# TC BANKCALL
# CADR CLEANDSP
#
# ... ... RETURN TO USER
## Page 1456
#
# GENERAL INFORMATION
# ------- -----------
#
# ALARM OR ABORT EXIT MODES--
#
# PRIOBORT TC ABORT
# OCT 1502
#
# PRIOBORT IS BRANCED TO WHEN (1) A NORMAL DISPLAY IS REQUESTED AND ANOTHER NORMAL DISPLAY IS ALREADY ACTIVE
# (REFLASH AND REGODSP ARE EXCEPTIONS) OR (2) A PRIORITY DISPLAY IS REQUESTED WHEN ANOTHER PRIORITY DISPLAY IS
# ALREADY ACTIVE (A PRIORITY WITH LINUS BIT14 IS AN EXCEPTION).
#
# ERASABLE INITIALIZATION REQUIRED--
#
# ACCOMPLISHED BY FRESH START- 1. FLAGWRD4 (USED EXCLUSIVELY BY DISPLAY INTERFACE ROUTINES)
# 2. NVSAVE = NORMAL VERB AND NOUN REGISTER.
# 3. EBANKTEM = NORMAL INACTIVE FLAGWORD (ALSO CONTAINS NORMALS EBANK).
#
# 5. R1SAVE = MARKBRAN CONTROL WORD
# 4. RESTREG = PRIORITY 30 AND SUPERBANK 3.
#
# OUTPUT--
#
# NVWORD = PRIO VERB AND NOUN
# NVWORD +1 (MARKNV) = MARK VERB AND NOUN
# NVWORD +2 (NVSAVE) = NORMAL VERB AND NOUN
#
# DSPFLG (EBANKSAV) = PRIO FLAGWORD (INCLUDING EBANK)
# DSPFLG +1 (MARKEBAN) = MARK FLAGWORD (INCLUDING EBANK)
# DSPFLG +2 (EBANKTEM) = NORMAL FLAGWORD (INCLUDIG EBANK)
#
# CADRFLSH = PRIO USERS CALL CADR +1 LOCATION
# CADRFLSH +1 (MARKFLSH) = MARK USERS CALL CADR +1 LOCATION
# CADRFLSH +2 (TEMPFLSH) = NORMAL USERS CALL CADR +1 LOCATION
#
# PRIOTIME = TIME EACH PRIO REQUEST FIRST SENT OUT
# OPTION1 = DESIRED OPTION FROM GOPERF4
# FLAGWRD4 = BIT INFO FOR CONTROL OF ALL DISPLAY ROUTINES
# DSPTEM1 = R1 INFO FOR ASTRONAUT FROM PERFORM DISPLAYS (NORMAL)
#
# SUBROUTINES USED-- NVSUB, FLAGUP, FLAGDOWN, ENDOFJOB, BLANKSUB, ABORT, JOBWAKE, JOBSLEEP, FINDVAC, PRIOCHNG,
# JAMTERM, NVSUBUSY, FLASHON, ENDIDLE, CHANG1, BANKJUMP, MAKECADR, NOVAC,
#
# DEBRIS-- (STORED INTO)
# TEMPORARY TEMPORARIES- A, Q, L, MPAC +2, MPAC +3, MPAC +4, MPAC +5, MPAC +6, RUPTREG2, RUPTREG3, CYL,
# EBANK, RUPTREG4, LOC, BANKSET, MODE, MPAC, MPAC +1 4, FACEREG
# ERASABES (SHARED AND USED WITH OTHER PROGRAMS) CADRSTOR, DSPLIST, LOC, DSPTEM1, OPTION1
# ERASABLES (USED ONLY BY DISPLAY ROUTINES)- NVWORD,+1,+2, DSPFLG,+1,+2, CADRFLSH,+1,+2, PRIOTIME, FLAGWRD4,
## Page 1457
# R1SAVE, MARK2PAC,
#
# DEBRIS-- (USED BUT NOT STORED INTO)- NOUNREG, VERBREG, LOCCTR, MONSAVE1
#
# FLAGWORD DESCRIPTIONS--
# FLAGWRD4- SEE DESCRIPTION UNDER LOG SECTION ERASABLE ASSIGNMENTS
#
# DSPFLG, DSPFLG+1, DSPFLG +2-
# ----------------------------
# BITS 1 BLANK R1
# 2 BLANK R2
# 3 BLANK R3
# 4 FLASHING DISPLAY REQUESTED
# 5 PERFORM DISPLAY REQUESTED
# 6 ----- EXDSPRET GODSPRET
# 7 PRIO DISPLAY ----- -----
# 8 ----- MARK MONITOR PERF -----
# 9 EBANK
# 10 EBANK
# 11 EBANK
# 12 ----- ----- V99PASTE
# 13 2ND PART OF PERFORM
# 14 REFLASH OR REDO ----- REFLASH OR REDO
# 15 ----- MARK REQUEST -----
#
# RESTARTING DISPLAYS--
#
# RULES FOR THE DSKY OPERATOR--
#
# 1. PROCEED AND TERMINATE SERVE AS RESPONSES TO REQUESTS FOR OPERATOR RESPONSE (FLASHING V/N). AS LONG
# AS THERE IS ANY REQUEST AWAITING OPERATOR RESPONSE, ANY USE OF PROCEED OR TERMINATE WILL SERVE AS
# RESPONSES TO THAT REQUEST. CARE SHOULD BE EXERCISED IN ATTEMPTING TO KILL AN OPERATOR INITIATED MONITOR
# WITH PROCEED AND TERMINATE FOR THIS REASON.
# 2. THE ASTRONAUT MUST RESPOND TO A PRIORITY DISPLAY NO SOONER THAN 5 SECS FROM THE TIME THE MISSION
# PROGRAM SENT OUT THE REQUEST FOR OPERATOR RESPONSE (THE ASTRONAUT WOULD SEE THIS DISPLAY FOR LESS TIME
# DUE TO TIME IT TAKES TO GET DISPLAY SENT OUT.) IF THE ASTRONAUT RESPONDS TOO SOON, THE PRIORITY DISPLAY
# IS SENT OUT AGAIN---AND AGAIN UNTIL AN ACCUMULATED 5 SECS FROM TIME THE FIRST PRIORITY DISPLAY WAS SENT
# OUT. THE SAME 5 SEC. DELAY WILL OCCUR AT 163.84 SECS OR IN ANY MULTIPLE OF THAT TIME DUE TO PROGRAM
# CONSIDERATION.
# 3. KEY RELEASE BUTTON-
# A) IF THE KEY RELEASE LIGHT IS ON, IT SIMPLY RELEASES THE KEYBOARD AND DISPLAY FOR INTERNAL USE.
# B) IF THE KEY RELEASE LIGHT IS OFF, AND IF SOME REQUEST FOR OPERATOR RESPONSE (FLASHING V/N) IS STILL
# AWAITING RESPONSE THEN IT RE-ESTABLISHES THE DISPLAYS THAT ORIGINALLY REQUESTED RESPONSE.
# IF AN OPERATOR WANTS THEREFORE TO RE-ESTABLISH BUT CONDITION (A) IS ENCOUNTERED, A SECOND DEPRESSION OF
# KEY RELEASE BUTTON MAY BE NECESSARY.
# 4. IT IS IMPORTANT TO ANSWER ALL REQUESTS FOR OPERATOR RESPONSE.
# 5. IT IS ALWAYS GOOD PRACTICE TO TERMINATE AN EXTENDED VERB BEFORE ASKING FOR ANOTHER ONE OR THE SAME ONE
# OVER AGAIN.
#
# SPECIAL CONSIDERATIONS--
## Page 1458
# 1. MPAC +2 SAVED ONLY IN MARK DISPLAYS
# 2. GODSP(R),REGODSP(R),GOMARK(R) ALWAYS TURN ON THE FLASH IF ENTERED WITH A PASTE VERB REQUEST.
# 3. ALL NORMAL DISPLAYS ARE RESTARTABLE EXCEPT GODSP(R), REGODSP(R)
# 4. ALL EXTENDED VERBS WITH DISPLAYS SHOULD START WITH A TC TESTXACT AND FINISH WITH A TC ENDEXT.
# 5. GODSP(R) AND REGODSP(R) MUST BE IN THE SAME EBANK AND SUPERBANK AS THE LAST NORMAL DISPLAY RESTARTED
# BY A .1 RESTART PHASE CHANGE.
# 6. IN ORDER TO SET UP A NON DISPLAY .1 RESTART POINT, THE USER MUST MAKE CERTAIN THAT RESTREG CONTAINS THE
# CORRECT PRIORITY AND SUPERBANK AND THAT EBANKTEM CONTAINS THE CO
# 7. IF CLEANDSP IS RESTARTED VIA A .1 PHASE CHANGE, CAF ZERO SHOULD BE EXECUTED BEFORE THE TC BANKCALL
## Page 1459
# CALLING SEQUENCE FOR BLANKING
# CAF BITX X=1,2,3 BLANK R1,R2,R3 RESPECTIVELY
# TC BLANKET
# ... ... RETURN TO USER HERE
#
# IN ORDER TO USE BLANKET CORRECTLY THE USER MUST USE A DISPLAY ROUTINE THAT ENDS IN R FIRST FOLLOWED BY THE CALL
# TO BLANKET AT THE IMMEDIATE RETURN LOC.
SETLOC FFTAG4
BANK
COUNT* $$/DSPLA
BLANKET TS MPAC +6
CS PLAYTEM4
MASK MPAC +6
INDEX MPAC +5
ADS PLAYTEM4
TC Q
ENDMARK TC CLEARMRK
TC POSTJUMP
CADR MARKOVER
CLEARMRK CAF ZERO
TS EXTVBACT
CS XDSPBIT
MASK FLAGWRD4
TS FLAGWRD4
TC Q
# *** ALL EXTENDED VERB ROUTINES THAT HAVE AT LEAST ONE FLASHING DISPLAY MUST TCF ENDMARK OR TCF ENDEXT WHEN
# FINISHED.
VNFLASH XCH L
CAF VNCADR
TCF VNGODSP
VNFLASHR XCH L
CAF VNRCADR
VNGODSP INCR Q # BECAUSE OF RESTARTS
LXCH PLAYTEM1
TCF SWCALL
VNCADR CADR VNFLSH
VNRCADR CADR VNFLSHR
SETLOC DISPLAYS
BANK
## Page 1460
COUNT 10/DSPLA
# NTERONLY IS USED TO DIFFERENTIATE THE MARK ROUTINE WITH ONLY ONE RETURN TO THE USER FROM THE MARKING ROUTINE WIT
# 3 RETURNS TO THE USER. THIS ROUTINE IS ONLY USED BY GOMARK1 AND GOMARK1R.
KLEENEX CAF ZERO # CLEAN OUT EXTENDED VERBS
GOMARKF TS PLAYTEM1 # ENTRANCE FOR MARK GOFLASH
CAF MARKFMSK # MARK,FLASH
TCF GOFLASH2
GOMARK2 TS PLAYTEM1 # MARK GOPERFS-3 AST. RETURNS
MARKFORM CAF MPERFMSK # MARK, PERFORM, FLASH
TCF GOFLASH2
GOMARK4 TS PLAYTEM1
CAF MARK4MSK # MARK,PERFORM,FLASH,BLANK
TCF GOFLASH2
GOMARKFR TS PLAYTEM1 # ENTRANCE FOR MARK GOFLASHR
CAF MARKFMSK
TCF GODSPRS
MARKMONR TS PLAYTEM1 # USED FOR MARK MONITOR
CAF MARK3MSK
TCF GOFLASH2
MAKEMARK CAF ONE
TC COPIES
CA FLAGWRD4 # IS NORM OR PRIO BUSY OR WAITING
MASK OCT34300
CCS A
TCF CHKPRIO
CA FLAGWRD4 # IS MARK SLEEPING DUE TO ASTRO BUSY
MASK MRKNVBIT
EXTEND
BZF MARKPLAY # NO
TCF ENDOFJOB
MARKPLAY CS FIVE # RESET MARK OVER NORM, SET MARK
MASK FLAGWRD4
AD XDSPBIT
TS FLAGWRD4
GOGOMARK ZL # PERFORM
CS MARKFLAG
MASK DCMKPERF
CCS A
TCF +5
## Page 1461
CA MARKNV
MASK MID7
TS L
TCF +5
CS MARKFLAG
MASK PERFRQST
CCS A
TCF MARKCOP
CS MARKNV
TS MARKNV
MARKCOP CAF ONE # MARK INDEX
TS COPINDEX
TCF NVDSP +1
COPYTOGO CA MPAC2SAV
TS MPAC +2
COPYPACS INDEX COPINDEX
CAF PRIOOCT
TS GENMASK
INDEX COPINDEX
CAF EBANKSAV
TS TEMPOR2 # ACTIVE EBANK AND FLAG
TS EBANK
TC Q
# PINCHEK CHECKS TO SEE IF THE CURRENT MARK REQUEST IS MADE BY THE ASTRONAUT WHILE INTERRUPTING A GOPLAY DISPLAY
# (A NORMAL OR A PRIO). IF THE ASTRONAUT TRIES TO MARK DURING A PRIO, THE CHECK FAIL LIGHT GOES ON AND THE MARK
# REQUEST IS ENDED. IF HE TRIES TO MARK DURING A NORM, THE MARK IS ALLOWED. IN THIS CASE THE NORM IS PUT TO SLEEP
# UNTIL ALL MARKING IS FINISHED.
#
# IF THE MARK REQUEST COMES FROM THE PROGRAM DURING A TIME THE ASTRONAUT IS NOT INTERRUPTING A NORMAL OR A
# PRIO, THE MARK REQUEST IS PUT TO SLEEP UNTIL THE +RESENT ACTIVE DISPLAY IS RESPONDED TO BY THE ASTRONAUT.
CHKPRIO CA FLAGWRD4 # MARK ATTEMPT DURING PRIO
MASK 14,12,7
CCS A
TCF MARSLEEP
CAF MKOVBIT # SET MARK OVER NORM
TC UPENT2
TCF SETNORM
MARKPERF CA MARKNV
MASK VERBMASK
TCF NV50DSP
## Page 1462
GODSP TS PLAYTEM1
GODSP2 CAF DSPONLY
TCF GOFLASH2
GODSPRET TS PLAYTEM1 # ENTRANCE FOR A GODSP WITH A PASTE
CAF RETDSPY # SET BIT6 TO RETURN TO USER AFTER NVSUB
TCF GOFLASH2
GODSPR TS PLAYTEM1
GODSPR1 CAF DSPONLY
GODSPR2 TS PLAYTEM4
CAF ZERO # * DONT MOVE
TCF GODSPRS1
# CLEANDSP IS USED FOR CLEARING OUT A NORMAL DISPLAY THAT IS PRESENTLY ACTIVE OR A NORMAL DISPLAY THAT IS
# SET UP TO BE STARTED OR RESTARTED.
#
# NORMALLY THE USER WILL NOT NEED TO USE THIS ROUTINE SINCE A NEW NORMAL DISPLAY AUTOMATICALLY CLEARS OUT AN
# OLD DISPLAY.
#
# CALLING SEQUENCE FOR CLEANDSP-
#
# TC BANKCALL
# CADR CLEANDSP
CLEANDSP CAF ZERO
REFLASH TS PLAYTEM1
CAF REDOMASK # FLASH AND PERMIT
TCF GOFLASH2
REGODSP TS PLAYTEM1
CAF REFLSH
TCF GOFLASH2
REGODSPR TS PLAYTEM1
CAF REFLSH
TCF GODSPR2
CLOCPLAY TS PLAYTEM1
CAF CLOCKCON
TCF GOFLASH2
VNFLSH TC UPFLAG
ADRES VNFLAG
## Page 1463
TCF GOFLASH +1
VNFLSHR TC UPFLAG
ADRES VNFLAG
CAF FLSHRQST
TS PLAYTEM4 # IT'S A FLASHING DISPLAY
CAF ZERO # RETURN TO CALLER'S Q +1
TCF GODSPRS1
GOFLASH TS PLAYTEM1
+1 CAF FLSHRQST # LEAVE ONLY FLASH BIT SET
GOFLASH2 TS PLAYTEM4
TC SAVELOCS
TCF MAKEPLAY # BRANCH DIRECT WITH NO SEPARATE JOB CALL
PRIODSPR TS PLAYTEM1
CAF BITS7+4
TCF GODSPRS
PRIODSP TS PLAYTEM1
SETPRIO CAF BITS7+4
TCF GOFLASH2
MAKEPRIO CAF ZERO
TS COPINDEX
TC LINUSCHR
TCF HIPRIO # LINUS RETURN
CA FLAGWRD4
MASK BIT14+7 # IS PRIO IN ENDIDLE OR BUSY
CCS A
TCF PRIOBORT # YES, ABORT
HIPRIO CA FLAGWRD4 # MARK ACTIVE
MASK BIT15+9
EXTEND
BZF ASKIFNRM # NO
SETMARK CAF ZERO
TCF JOBXCHS
ASKIFNRM CA FLAGWRD4 # NORMAL ACTIVE
MASK BIT13+8
EXTEND
BZF OKTOCOPY # NO
## Page 1464
SETNORM CAF ONE
TCF JOBXCHS
OKTOCOPY TC COPYNORM
TC WITCHONE
TC JOBWAKE
TC XCHTOEND
REDOPRIO CA TIME1 # SAVE TIME PRIODSP SENT OUT
TS PRIOTIME
KEEPPRIO CAF ZERO # START UP PRIO DISPLAY
TCF PRIOPLAY
MAKEPLAY CA PRIORITY # SAVE USERS PRIORITY
MASK PRIO37
TS USERPRIO
CAF PRIO33 # RAISE PRIORITY FOR FAST JOBS AFTER WAKE
TC PRIOCHNG
CA PLAYTEM4 # IS IT MARK OR PRIO OR NORM
MASK BITS15+7
CCS A
TCF MAKEPRIO # ITS PRIO
TCF IFLEGAL
TCF MAKEMARK # ITS MARK
IFLEGAL CAF TWO
TS COPINDEX
TC LINUSCHR
TCF OKTOPLAY # LINUS RETURN
CS EBANKTEM
MASK FLSHRQST
CCS A
TCF OKTOPLAY # NO
CA FLAGWRD4 # WAS NORM ASLEEP
MASK NBUSMASK # ARE ANY NORMS ASLEEP
EXTEND
BZF OKTOPLAY # NO
PRIOBORT TC POODOO
OCT 21502 # ILLEGAL FLASHING DISPLAY
OKTOPLAY TC COPIES2
## Page 1465
CA USERPRIO
EXTEND
ROR SUPERBNK
TS RESTREG
CA FLAGWRD4 # PRIO OR MARK GOING
MASK PMMASK
CCS A
TCF GOSLEEPS # YES
TCF +2
TCF GOSLEEPS # MARK GOING
# COULD PUT NORM BUSY CHECK HERE TO SAVE TIME
TC WITCHONE # IS IT NVSUB BUSY, ENDIDLE OR NOONE
TC JOBWAKE
TC XCHTOEND
PLAYJUM1 CAF TWO
PRIOPLAY TS COPINDEX
TCF GOPLAY
EXDSPRET TS PLAYTEM1
CAF BIT15+6
TCF GOFLASH2
GOPERF1 TS NORMTEM1 # STORE DESIRED CHECKLIST VALUE
CAF V01N25 # USED TO DISPLAY CHECKLIST VALUE IN R1
GOPERFS TS PLAYTEM1
CAF PERFMASK # LEAVE ONLY FLASH, PERFORM, BLANKING
TCF GOFLASH2
GOPERF4 TS OPTION1 # DESIRED OPTION CODE
CAF V04N06
TS PLAYTEM1
CAF PERF4MSK # FLASH, PERFORM, AND BLANK R3
TCF GOFLASH2
GOFLASHR TS PLAYTEM1
CAF FLSHRQST # LEAVE ONLY FLASH BIT SET
GODSPRS TS PLAYTEM4
## Page 1466
CAF THREE
GODSPRS1 INHINT # IMMEDIATE RETURN IS CALL CADR +4
TS RUPTREG3
CA PRIORITY # MAKE DISPLAY ONE HIGHER THAN USER
MASK PRIO37
TS NEWPRIO
CA PLAYTEM4 # IS THIS A FLASHING R DISPLAY
MASK FLSHRQST
CCS A
TCF VACDSP # YES, MAKE DSPLAY JOB A VAC
CA NEWPRIO # NO, MAKE DSPLAY JOB A NOVAC
TC NOVAC
EBANK= WHOCARES
2CADR MAKEPLAY
TCF BOTHJOBS
VACDSP CA BBANK
EXTEND
ROR SUPERBNK
TS L
CAF MAKEGEN
TC SPVAC
BOTHJOBS TC SAVELOCS # COPY TEMPS INTO PERMANENT REGISTERS
EXTEND # SAVE NVWORD AND USERS MPAC +2
DCA MPAC +1
INDEX LOCCTR
DXCH MPAC +1
EXTEND # SAVE USERS CADR, FLAGS AND EBANK
DCA MPAC +3
INDEX LOCCTR
DXCH MPAC +3
CA LOCCTR
TS MPAC +5
TC SAVELOCR
RELINT
TCF BANKJUMP # CALL CADR +4
GOPERF1R TS NORMTEM1 # DESIRED CHECKLIST VALUE
CAF V01N25 # DISPLAYS CHECKLIST VALUE IN R1
## Page 1467
GOPERFRS TS PLAYTEM1
CAF PERFMASK # LEAVE ONLY FLASH, PERFORM, BLANKING
TCF GODSPRS
GOPERF2R TS PLAYTEM1 # DESIRED VERB-NOUN TO DISPLAY R1,R2,R3
CAF PERF2MSK
TCF GODSPRS
SAVELOCS INHINT
CS EBANK7 # GETS ALL EBANK BITS OFF
MASK PLAYTEM4
AD EBANK
TS PLAYTEM4
SAVELOCR LXCH Q
TC MAKECADR
TS PLAYTEM3
AD RUPTREG3 # NOT USED FOR NON R ROUTINES
TC L
COPYNORM CAF ZERO
COPIES TS COPINDEX
COPIES2 CA PLAYTEM4 # FLAGWORD
INDEX COPINDEX
TS EBANKSAV # EQUIV TO DSPFLG
MASK CADRMASK # FLASH AND GODSPRET
EXTEND
BZF SKIPADD
CA PLAYTEM3
INDEX COPINDEX
TS CADRFLSH
SKIPADD CA PLAYTEM1 # VERB NOUN
INDEX COPINDEX
TS NVWORD
TCF RELINTQ
GOSLEEPS INDEX COPINDEX
CA PRIOOCT
MASK WAITMASK
TC UPENT2
CS ONE
## Page 1468
AD COPINDEX
TS FACEREG
XCHSLEEP INDEX FACEREG
CAF WAKECADR
TC JOBWAKE # FIND CADR IN JOB AREA
TC XCHTOEND # CAUSES AWAKENED JOB TO GO TO ENDOFJOB
INDEX FACEREG # REPLACE SAME CADR BUT NEW JOB AREA
CAF WAKECADR
TCF JOBSLEEP
JOBXCHS TS FACEREG # CONTROLS TYPE OF DISPLAY PUT TO SLEEP
TC WITCHONE
TC JOBWAKE
CA FACEREG
INDEX LOCCTR
TS FACEREG
CAF XCHQADD
TC XCHNYLOC
INDEX FACEREG
CA MARKOCT
MASK IDLESLEP
TC DOWNENT2
INDEX FACEREG # BIT SHOWS PRIO INTERRUPTED NORM OR MARK
CA MRUPTBIT # BIT5 FOR MARK, BIT4 FOR NORMAL
TC UPENT2
CA FLAGWRD4
MASK MKOVBIT # IF BIT 3 THEN MARK OVER NORM
CCS A
GENMARK TC MARKPLAY # USED AS GENADR FOR JOBWAKE
TCF OKTOCOPY
MARKWAKE CAF ZERO
WAKEPLAY TS TEMPOR2
INDEX TEMPOR2
CA BITS5+11
TC DOWNENT2
INDEX TEMPOR2
CAF WAKECADR
TC JOBWAKE
TCF ENDRET
# ALL .1 RESTARTS BRANCH DIRECTLY TO INITDSP. NORMAL DISPLAYS ARE THE ONLY DISPLAYS ALLOWED TO USE .1 RESTARTS
# INITDSP FIRST RESTORES THE EBANK AND THE SUPERBANK TO THE MOST RECENT NORMAL EBANK AND SUPERBANK.
## Page 1469
# IF THE MOST RECENT NORMAL DISPLAY REQUEST WAS NOT FINISHED, CONTROL IS SENT BACK TO THE LAST NORMAL USER.
# OTHERWISE THE NORMAL DISPLAY SET UP IN THE NORMAL DISPLAY REGS IS STARTED UP IMMEDIATELY.
INITDSP CA EBANKTEM # RESTORE MOST RECECT NORMAL EBANK
TS EBANK
CA RESTREG # SUPERBANK AND JOB PRIORITY
EXTEND # RESTORE SUPERBANK
WRITE SUPERBNK # CHAN 07
MASK PRIO37
TC PRIOCHNG
CS THREE
AD TEMPFLSH
TCF BANKJUMP
PINBRNCH RELINT # FOR GOPIN USERS
CA MARK2PAC # NEEDED TO SAVE MPAC +2 FOR MARK USERS
TS MPAC +2 # ONLY
CA FLAGWRD4 # PINBRANCH CONDITION
MASK PINMASK
CCS A
TCF +3
TCF ERASER # ** NOTHING IN ENDIDLE
TCF MARKPLAY
NORMBNCH TC UPFLAG # SET PINBRANCH BIT
ADRES PINBRFLG
CAF PRIODBIT # PRIO INTERRUPTED
MASK FLAGWRD4
CCS A
TCF KEEPPRIO
TCF PLAYJUM1
NVDSP ZL
TC COPYPACS
CA TEMPOR2 # SET UP BLANK BITS FOR NVMONOPT IN CASE
MASK SEVEN # USER REQUESTS BLANKING MONITOR
ADS L
CS 2NDPERF
INDEX COPINDEX
MASK DSPFLG
INDEX COPINDEX
TS DSPFLG
MASK DCMKPERF
CCS A
## Page 1470
CA OCT2600
TS TEM1
CA MPAC +2
TS MPAC2SAV
TS MARK2PAC # * FOR DISK ONLY *
INDEX COPINDEX
CCS NVWORD
TCF NVDSP1
TCF CLEANEND
CS MARKNV
TS MARKNV # IN CASE MARKPLAY AWAKENED AFTER SLEEPING
MASK LOW7
AD V05N00M1
AD TEM1
NVDSP1 AD ONE
NV50DSP TC NVMONOPT
TCF REST # IF BUSY
TC FLASHOFF # IN CASE OF EXTENDED VERB NON FLASH
TC COPYTOGO # MPACS DESTROYED BY NVSUB
CAF OCT700
TC DOWNENT2
BLANKCHK CA TEMPOR2 # BLANK BITS 1,2,3 IF SET
TC BLANKSUB
TCF NVDSP
PERFCHEK CAF PERFRQST # BIT5 FOR PERFORM
MASK TEMPOR2
CCS A # IS THIS A GOPERF DISPLAY
TCF 1STOR2ND # YES
GOANIDLE CAF FLSHRQST
MASK TEMPOR2
CCS A
TCF FLASHSUB # IT IS
CS TEMPOR2 # IS THIS A GODSPRET
MASK RETDSPY
CCS A
TCF ISITN00
INDEX COPINDEX
CA CADRFLSH
TS MPAC +3
TCF ENDIT
ISITN00 INDEX COPINDEX # IS THIS A PASTE
CA NVWORD
## Page 1471
MASK LOW7 # CHECK MADE FOR PINBRNCH AND PRIO ON MARK
EXTEND
BZF FLASHSUB # YES, ASSUME PASTE ALWAYS ON FLASH
TCF ENDOFJOB # NOT FLASH, NOT GOPERF, THERFORE EXIT
1STOR2ND CA TEMPOR2
MASK 2NDPERF
CCS A
TCF GOANIDLE # SECOND
CA 2NDPERF
INDEX COPINDEX
ADS DSPFLG
ZL
EXTEND # IS IT MARK
BZMF MARKPERF # YES
MASK V99PSTE
EXTEND
BZF V50PASTE
CS NVWORD1 # NVOWRD1= -0 IS V97. NVWORD1= -400 IS V99
AD V97N00
TCF NV50DSP
V50PASTE CAF V50N00
TCF NV50DSP # DISPLAY SECOND PART OF GOPERF
WITCHONE CS BIT5 # TURN OFF KEY RELEASE LIGHT
EXTEND
WAND DSALMOUT
CA FLAGWRD4
MASK NVBUSMSK # IS IT NVSUB ASLEEP
CCS A
CAF ONE
TS L
CAF ZERO
INDEX L
XCH CADRSTOR
TC Q
XCHTOEND CAF ENDINST # TC ENDOFJOB REPLACES GENADR IN LOC FOR
XCHNYLOC XCH LOCCTR # WAS THIS ADDRESS SLEEPING
EXTEND
BZMF RELINTQ # NO
XCH LOCCTR # YES
INDEX LOCCTR
TS LOC
## Page 1472
RELINTQ TCF REQ # BACK TO USER
CLEANEND CAF PRIO32 # ONE LOWER THAN DISPLAYS SLEEPING
TC FINDVAC
EBANK= NVSAVE
2CADR JAMTERM
TCF FLASHSUB +1
ISITPRIO CA FLAGWRD4
MASK ITISMASK # IS PINBRFLG, MARKIDFLG SET
EXTEND
BZF PRIOBORT
TCF ENDOFJOB
REST CCS CADRSTOR # IS SOMEONE IN ENDIDLE
TCF ENDOFJOB # YES
TCF RESTSLEP
TCF ENDOFJOB
RESTSLEP CA GENMASK # SET NVSLEEP BITS
MASK NVBUSMSK
TC UPENT2
NVSUBUSY TC ISCADR+0
TC RELDSPON
INDEX COPINDEX
CAF NVCADR
TS DSPLIST
TC JOBSLEEP
FLASHSUB TC FLASHON
+1 CA COPINDEX # COPINDEX DESTROYED BY ENDIDLE
TS COPMPAC
CA GENMASK
MASK IDLEMASK
TC UPENT2
CCS CADRSTOR # SEE IF SOMEONE ALREADY IN ENDIDLE
TCF ISITPRIO
TCF +2
TCF ISITPRIO
ENDIDLE TC ISCADR+0
CA ENDIDRET
TS CADRSTOR
TC JOBSLEEP
IDLERET1 CS LOWLOAD
AD MPAC # VERBREG
EXTEND
## Page 1473
DIM A
EXTEND
BZF LOADITIS # V21 OR V22 OR V23 ON DSKY
OKTOENT CA FLAGWRD4 # CHECK NATURE OF ENDIDLE RETURN
MASK BIT15/14
CCS A
TCF TIMECHEK # PRIO ENDIDLE RETURN
TCF NORMRET # NORMAL ENDIDLE RETURN
TCF MARKRET # MARK ENDIDLE RETURN
TIMECHEK CA NVWORD
EXTEND
BZF NORMRET
CS TIME1
AD PRIOTIME
CCS A
COM
AD OCT37776
AD ONE
AD -2SEC
EXTEND
BZMF KEEPPRIO
TCF NORMRET
NORMWAKE CAF ONE
TCF WAKEPLAY
ENDRET CCS LOADSTAT # -0=V32 OR E, -1=V33 OR PRO, -2=V34
TCF ENDOFJOB # +1=ENDMARK
ENDIDRET CADR IDLERET1 # CANNOT GET HERE
TCF +1
CA FLAGWRD4 # IS IT A VNFLASH
MASK VNBIT # (BIT2)
AD COPMPAC # AND A NORMAL DISPLAY
AD NEG4
EXTEND
BZF VNRET
CA LOADSTAT
AD TWO
ENDRET1 INDEX COPMPAC
AD CADRFLSH
ENDRET2 TS MPAC +3
CA GENMASK # REMOVE ENDIDLE AND PINBRANCH BITS
MASK PINIDMSK
TC DOWNENT2
CS THREE # BLANK EVERYTHING EXCEPT MM
TC NVSUB
## Page 1474
TCF +1
ENDIT CA USERPRIO # RETURN TO USERS PRIORITY
MASK PRIO37
TC PRIOCHNG
CA MPAC +3
TCF BANKJUMP
VNRET TC DOWNFLAG
ADRES VNFLAG
CA LOADSTAT
AD ONE
CCS A
CAF NEG3 # LOADOSTAT.-0
TCF ENDRET1 # CANNOT GET HERE VIA CCS
TCF TERMFLSH # LOADSTAT=-2
CS ONE # COMPENSATE FOR INCREMENTED Q IN LEAD-IN
TCF ENDRET1 # LOADSTAT=-1
TERMFLSH CAF GOPOOCAD
TCF ENDRET2
LINUSCHR CS PLAYTEM4 # IS THIS A LINUS
MASK REFLSH
CCS A
TCF Q+1 # NO
CS PLAYTEM3 # YES, IS IT ALREADY IN ENDIDLE
INDEX COPINDEX
AD CADRFLSH
EXTEND
BZF +2 # YES
TC Q # NO
CCS DSPLOCK # IS THE ASTRONAUT BUSY
TC ENDOFJOB # END THE NEW DISPLAY, ITS ALREADY ACTIVE
TC Q
# MORE LOGIC COULD BE INCORPORATED HERE TO MAKE SURE A RECYCLE IS A RECYCLAND CONVERSLY THAT A LOAD IS A LOAD.
#
# LASTPLAY CHECKS TO SEE IF (1) THE LAST NORMAL DISPLAY WAS EITHER INTERRUPTED BY A PRIO OR A MARK (MARK
# COULD ONLY HAPPEN DURING PINBRANCH) OR IF (2) THE LAST NORMAL DISPLAY WAS REQUESTED WHILE A HIGHER PRIORITY
# DISPLAY WAS GOING RESULTING IN THE NORMAL BEING PUT TO SLEEP.
#
# IF EITHER OF THE ABOVE 2 CONDITIONS EXISTS, THE NORMAL DISPLAY IS AWAKENED TO GO TO PLAYJUM1 WHICH STARTS
# UP THE MOST RECENT VALID NORMAL DISPLAY. IF THESE 2 CONDITIONS DO NOT EXIST, CONTROL GOES TO PLAYJUM1 WHICH IS
# STARTED IMMEDIATELY WITH THE ASSUMPTION THAT THE MOST RECENT NORMAL DISPLAY IS ALREADY IN-ENDIDLE (DURING A
# PINBRANCH) OR THAT A RESTART HAS OCCURRED AND THE DISPLAY CAN BE STARTED AS A .1 RESTART.
MARKRET CAF MKOVBIT
TC DOWNENT2
## Page 1475
TCF ENDRET
MARKOVER CAF ONE
TS LOADSTAT
CA FLAGWRD4 # IS ENDIDFLG SET
MASK BIT13-14 # IS NORMAL OR PRIO IN ENDIDLE
CCS A
TCF NORMBNCH
NORMRET CA FLAGWRD4 # IS MARK SLEEPING
MASK BITS5+11 # OR WAITING
CCS A
TCF MARKWAKE
CA FLAGWRD4 # NO
MASK BITS4+10 # IS NORMAL INTERRUPTED OR WAITING
CCS A
TCF NORMWAKE # YES
CAF FLSHRQST # NO, WAS IT A FLASH REQUEST
AD RETDSPY # OR GODSPRET
MASK EBANKTEM
CCS A
TCF ENDRET # YES
CA NVSAVE
EXTEND
BZF ENDRET
CAF PRIO15
TC NOVAC
EBANK= NVWORD
2CADR PLAYJUM1
TCF ENDRET
MARSLEEP CA FLAGWRD4 # IS MARK ALREADY IN
MASK BITS5+11
CCS A
TCF ENDOFJOB # YES
TCF GOSLEEPS
LOADITIS INDEX COPMPAC
CA NVWORD
MASK LOW7
COM
AD MPAC +1 # NOUNREG
EXTEND
BZF OKTOENT # NO, THEN LOAD IS VALID
TCF PINBRNCH # YES, ACCEPT LOAD BUT ASK FOR LAST AGAIN
## Page 1476
ERASER CS THREE # BLANK EVERYTHING EXCEPT MM
TC NVSUB
TCF ENDOFJOB
TCF ENDOFJOB
PERFMASK OCT 0036 # FLASH,PERFORM,BLANK R2 AND R3
V01N25 VN 00125
V50N00 VN 5000
PERF2MSK EQUALS BITS4&5 # (OCTAL 30) FLASH, PERFORM
PERF4MSK EQUALS OCT14 # FLASH, BLANK R3
REDOMASK OCT 20010 # BITS 4 AND 14
MARK4MSK OCT 40036 # MARK,PERFORM,FLASH,BLANK 2 AND 3
NVCADR CADR REDOPRIO
WAKECADR CADR MARKPLAY
CADR PLAYJUM1
NBUSMASK OCT 11210
PMMASK OCT 66521
VERBMASK = MID7 # (OCT 37600)
V05N00M1 OCT 1177 # V05 MINUS ONE
GOXDSPF EQUALS GOMARKF
ENDEXT EQUALS ENDMARK
MPAC2SAV EQUALS BANKSET
NVBUSMSK OCT 700
MPERFMSK OCT 40030 # BIT 15,5,4 FOR MARK,PERFORM,FLASH
OCT34300 OCT 34300
BITS15+7 OCT 40100
BITS5+11 OCT 2020 # * DONT MOVE
BITS4+10 OCT 1010 # * DONT MOVE
LOWLOAD EQUALS VBSP2LD
CADRMASK EQUALS OCT50
PINMASK EQUALS 13,14,15
GOPLAY EQUALS NVDSP
#PRIOSAVE EQUALS R1SAVE
COPMPAC EQUALS MPAC +3
TEMPOR2 EQUALS MPAC +4
COPINDEX EQUALS LOC
USERPRIO EQUALS MODE
GENMASK EQUALS MPAC +6
PRIOOCT OCT 20144 # PRIO
MARKOCT OCT 42424 # MARK
OCT 11254 # NORM
IDLESLEP OCT 74700
LINUS EQUALS BLANKET
FACEREG EQUALS MPAC
PLAYTEM1 EQUALS MPAC +1
PLAYTEM3 EQUALS MPAC +3
PLAYTEM4 EQUALS MPAC +4
MAKEGEN GENADR MAKEPLAY
## Page 1477
BIT13+8 OCT 10200
V97N00 VN 09700 # PASTE FOR V97 OR V99
BIT14+7 OCT 20100
CLOCKCON OCT 24030 # FLASH, PERFORM, V99 OR V97 PASTE,REFLASH
PINIDMSK OCT 74040
IDLEMASK EQUALS HIGH4
ITISMASK EQUALS BIT15+6 # *** ENDIDLE ALLOW ***
MARKFMSK EQUALS OT40010
XCHQADD GENADR XCHSLEEP
WAITMASK EQUALS PRIO3 # (OCTAL 3000)
OCT700 EQUALS NVBUSMSK
GOPOOCAD CADR TCGOPOOH
MARK3MSK OCT 40210
MKRQST = BIT15
REFLSH = BIT14
2NDPERF = BIT13
V99PSTE = BIT12
DCMKPERF = BIT8
PRIODSPY = BIT7
RETDSPY = BIT6
PERFRQST = BIT5
FLSHRQST = BIT4
BLNKR3 = BIT3
BLNKR2 = BIT2
BLNKR1 = BIT1
DSPONLY = ZERO