3782 lines
98 KiB
Plaintext
3782 lines
98 KiB
Plaintext
# Copyright: Public domain.
|
|
# Filename: PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
|
|
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
|
|
# It is part of the source code for the Command Module's (CM)
|
|
# Apollo Guidance Computer (AGC), for Apollo 11.
|
|
# Assembler: yaYUL
|
|
# Contact: Ron Burkey <info@sandroid.org>.
|
|
# Website: www.ibiblio.org/apollo.
|
|
# Pages: 307-389
|
|
# Mod history: 2009-05-08 RSB Started adapting from the Colossus249/ file
|
|
# of the same name, using Comanche055 page
|
|
# images. Finished through page 329.
|
|
# 2009-05-09 RSB Finished first draft.
|
|
# 2009-05-20 RSB Corrected a CHKPOOH to CHKP00H.
|
|
#
|
|
# This source code has been transcribed or otherwise adapted from digitized
|
|
# images of a hardcopy from the MIT Museum. The digitization was performed
|
|
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
|
|
# thanks to both. The images (with suitable reduction in storage size and
|
|
# consequent reduction in image quality as well) are available online at
|
|
# www.ibiblio.org/apollo. If for some reason you find that the images are
|
|
# illegible, contact me at info@sandroid.org about getting access to the
|
|
# (much) higher-quality images which Paul actually created.
|
|
#
|
|
# Notations on the hardcopy document read, in part:
|
|
#
|
|
# Assemble revision 055 of AGC program Comanche by NASA
|
|
# 2021113-051. 10:28 APR. 1, 1969
|
|
#
|
|
# This AGC program shall also be referred to as
|
|
# Colossus 2A
|
|
|
|
# Page 307
|
|
# PROGRAM NAME -- KEYBOARD AND DISPLAY PROGRAM
|
|
# MOD NO -- 4 DATE -- 27 APRIL 1967 ASSEMBLY -- PINDISK REV 17
|
|
# MOD BY -- FILENE
|
|
# LOG SECTION -- PINBALL GAME BUTTONS AND LIGHTS
|
|
#
|
|
# FUNCTIONAL DESCRIPTION
|
|
#
|
|
# THE KEYBOARD AND DISPLAY SYSTEM PROGRAM OPERATES UNDER EXECUTIVE
|
|
# CONTROL AND PROCESSES INFORMATION EXCHANGED BETWEEN THE AGC AND THE
|
|
# COMPUTER OPERATOR. THE INPUTS TO THE PROGRAM ARE FROM THE KEYBOARD,
|
|
# FROM INTERNAL PROGRAM, AND FROM THE UPLINK.
|
|
#
|
|
# THE LANGUAGE OF COMMUNICATION WITH THE PROGRAM IS A PAIR OF WORDS
|
|
# KNOWN AS VERB AND NOUN. EACH OF THESE IS REPRESENTED BY A 2 CHARACTER
|
|
# DECIMAL NUMBER. THE VERB CODE INDICATES WHAT ACTION IS TO BE TAKEN, THE
|
|
# NOUN CODE INDICATES TO WHAT THIS ACTION IS APPLIED. NOUNS USUALLY
|
|
# REFER TO A GROUP OF ERASABLE REGISTERS.
|
|
#
|
|
# VERBS ARE GROUPED INTO DISPLAYS, LOADS, MONITORS (DISPLAYS THAT ARE
|
|
# UPDATED ONCE PER SECOND), SPECIAL FUNCTIONS, AND EXTENDED VERBS (THESE
|
|
# ARE OUTSIDE OF THE DOMAIN OF PINBALL AND CAN BE FOUND UNDER LOG SECTION
|
|
# `EXTENDED VERBS').
|
|
#
|
|
# A LIST OF VERBS AND NOUNS IS GIVEN IN LOG SECTION `ASSEMBLY AND
|
|
# OPERATION INFORMATION'.
|
|
#
|
|
# CALLING SEQUENCES --
|
|
#
|
|
# KEYBOARD:
|
|
# EACH DEPRESSION OF A MAIN (NAVIGATION) KEYBOARD BUTTON ACTIVATES
|
|
# INTERRUPT KEYRUPT1 (KEYRUPT2) AND PLACES THE 5 BIT KEY CODE INTO
|
|
# CHANNEL 15 (CHANNEL 16). KEYRUPT1 (KEYRUPT2) PLACES THE KEY
|
|
# CODE INTO MPAC, ENTERS AN EXECUTIVE REQUEST FOR THE KEYBOARD AND DISPLAY
|
|
# PROGRAM (AT `CHARIN'), AND EXECUTES A RESUME.
|
|
#
|
|
# UPLINK:
|
|
# EACH WORD RECEIVED BY THE UPLINK ACTIVATES INTERRUPT UPRUPT, WHICH
|
|
# PLACES THE 5 BIT KEY CODE INTO MPAC, ENTERS AN EXECUTIVE REQUEST FOR THE
|
|
# KEYBOARD AND DISPLAY PROGRAM (AT `CHARIN') AND EXECUTES A RESUME.
|
|
#
|
|
# INTERNAL PROGRAMS:
|
|
# INTERNAL PROGRAMS CALL PINBALL AT `NVSUB' WITH THE DESIRED VERB/NOUN
|
|
# CODE IN A (LOW 7 BITS FOR NOUN, NEXT 7 BITS FOR VERB). DETAILS
|
|
# DESCRIBED ON REMARKS CARDS JUST BEFORE `NVSUB' AND `NVSBWAIT' (SEE
|
|
# SYMBOL TABLE FOR PAGE NUMBERS).
|
|
#
|
|
# NORMAL EXIT MODES --
|
|
#
|
|
# IF PINBALL WAS CALLED BY EXTERNAL ACTION, THERE ARE FOUR EXITS:
|
|
# 1) ALL BUT (2), (3), AND (4) EXIT DIRECTLY TO ENDOFJOB.
|
|
# Page 308
|
|
# 2) EXTENDED VERBS TO TO THE EXTENDED VERB FAN AS PART OF THE
|
|
# PINBALL EXECUTIVE JOB WITH PRIORITY 30000. IT IS THE
|
|
# RESPONSIBILITY OF THE EXTENDED VERB CALLED TO EVENTUALLY
|
|
# CHANGE PRIORITY (IF NECESSARY) AD DO AN ENDOFJOB.
|
|
# ALSO PINBALL IS A NOVAC JOB. EBANK SET FOR COMMON.
|
|
# 3) VERB 37. CHANGE OF PROGRAM (MAJOR MODE) CALLS `V37' IN THE
|
|
# SERVICE ROUTINES AS PART OF THE PINBALL EXEC JOB WITH PRIO
|
|
# 30000. THE NEW PROGRAM CODE (MAJOR MODE) IS LEFT IN A.
|
|
# 4) KEY RELEASE BUTTON CALLS `PINBRNCH' IN THE DISPLAY INTERFACE
|
|
# ROUTINES AS PART OF THE PINBALL EXEC JOB WITH PRIO 30000 IF
|
|
# THE KEY RELEASE LIGHT IS OFF AND `CADRSTOR' IS NOT 40.
|
|
#
|
|
# IF PINBALL WAS CALLED BY INTERNAL PROGRAMS, EXIT FROM PINBALL IS BACK
|
|
# TO CALLING ROUTINE. DETAILS DESCRIBED IN REMARKS CARDS JUST BEFORE
|
|
# `NVSUB' AND `NVSBWAIT' (SEE SYMBOL TABLE FOR PAGE NUMBERS).
|
|
#
|
|
# ALARM OR ABORT EXIT MODES --
|
|
#
|
|
# EXTERNAL INITIATION:
|
|
# IF SOME IMPROPER SEQUENCE OF KEY CODES IS DETECTED, THE OPERATOR
|
|
# ERROR LIGHT IS TURNED ON AND EXIT IS TO `ENDOFJOB'.
|
|
#
|
|
# INTERNAL PROGRAM INITIATION:
|
|
# IF AN ILLEGAL V/N COMBINATION IS ATTEMPTED, AN ABORT IS CAUSED
|
|
# (WITH OCTAL 01501).
|
|
# IF A SECOND ATTEMPT IS MADE TO GO TO SLEEP IN PINBALL, AN ABORT IS
|
|
# CAUSED (WITH OCTAL 01206). THERE ARE TWO WAYS TO GO TO SLEEP IN PINBALL:
|
|
# 1) ENDIDLE OR DATAWAIT.
|
|
# 2) NVSBWAIT, PRENVBSY, OR NVSUBUSY.
|
|
#
|
|
# CONDITIONS LEADING TO THE ABOVE ARE DESCRIBED IN FORTHCOMING MIT/IL
|
|
# E-REPORT DESCRIBING KEYBOARD AND DISPLAY OPERATION FOR 278.
|
|
#
|
|
# OUTPUT --
|
|
#
|
|
# INFORMATION TO BE SENT TO THE DISPLAY PANEL IS LEFT IN THE `DSPTAB'
|
|
# BUFFERS REGISTERS (UNDER EXEC CONTROL). `DSPOUT' (A PART OF T4RUPT)
|
|
# HANDLES THE PLACING OF THE `DSPTAB' INFORMATION INTO OUTPUT CHANNEL 10
|
|
# IN INTERRUPT.
|
|
#
|
|
# ERASABLE INITIALIZATION --
|
|
#
|
|
# FRESH START AND RESTART INITIALIZE THE NECESSARY E REGISTERS FOR
|
|
# PINBALL IN `STARTSUB'. REGISTERS ARE: DSPTAB BUFFER, CADRSTOR,
|
|
# REQRET, CLPASS, DSPLOCK, MONSAVE, MONSAVE1, VERBREG, NOUNREG, DSPLIST,
|
|
# DSPCOUNT, NOUT.
|
|
#
|
|
# Page 309
|
|
# A COMPLETE LIST OF ALL THE ERASABLES (BOTH RESERVED AND TEMPORARIES) FOR
|
|
# PINBALL IS GIVEN BELOW.
|
|
#
|
|
# THE FOLLOWING ARE OF GENERAL INTEREST --
|
|
#
|
|
# REMARKS CARDS PRECEDE THE REFERENCED SYMBOL DEFINITION. SEE SYMBOL
|
|
# TABLE TO FIND APPROPRIATE PAGE NUMBERS.
|
|
#
|
|
# NVSUB CALLING POINT FOR INTERNAL USE OF PINBALL.
|
|
# OF RELATED INTEREST NVSBWAIT
|
|
# NVSUBUSY
|
|
# PRENVBSY
|
|
#
|
|
# ENDIDLE ROUTINE FOR INTERNAL PROGRAMS WISHING TO TO SLEEP WHILE
|
|
# AWAITING OPERATOR'S RESPONSE.
|
|
#
|
|
# DSPMM ROUTINE BY WHICH AN INTERNAL PROGRAM MAY DISPLAY A DECIMAL
|
|
# PROGRAM CODE (MAJOR MODE) IN THE PROGRAM (MAJOR MODE) LIGHT
|
|
# (DSPMM DOES NOT DISPLAY DIRECTLY BUT ENTERS EXEC REQUEST
|
|
# FOR DSPMMJB WITH PRIO 30000 AND RETURNS TO CALLER.)
|
|
#
|
|
# BLANKSUB ROUTINE BY WHICH AN INTERNAL PROGRAM MAY BLANK ANY
|
|
# COMBINATION OF THE DISPLAY REGISTERS R1, R2, R3.
|
|
#
|
|
# JAMTERM ROUTINE BY WHICH AN INTERNAL PROGRAM MAY PERFORM THE
|
|
# JAMPROC TERMINATE (V 34) OR PROCEED (V33) FUNCTION.
|
|
#
|
|
# MONITOR VERBS FOR PERIODIC (1 PER SEC) DISPLAY.
|
|
#
|
|
# PLEASE PERFORM, PLEASE MARK SITUATIONS
|
|
# REMARKS DESCRIBING HOW AN INTERNAL ROUTINE SHOULD HANDLE
|
|
# THESE SITUATIONS CAN BE FOUND JUST BEFORE `NVSUB' (SEE
|
|
# SYMBOL TABLE FOR PAGE NUMBER).
|
|
#
|
|
# THE NOUN TABLE FORMAT IS DESCRIBED ON A PAGE OF REMARKS CARDS JUST
|
|
# BEFORE `DSPABC' (SEE SYMBOL TABLE FOR PAGE NUMBER).
|
|
#
|
|
# THE NOUN TABLES THEMSELVES ARE FOUND IN LOG SECTION `PINBALL NOUN
|
|
# TABLES'.
|
|
#
|
|
# FOR FURTHER DETAILS ABOUT OPERATION OF THE KEYBOARD AND DISPLAY SYSTEM
|
|
# PROGRAM, SEE THE MISSION PLAN AND/OR MIT/IL E-2129
|
|
# DESCRIBING KEYBOARD AND DISPLAY OPERATION FOR 278.
|
|
# (Note that this doc by Green and Filene is/was available online at
|
|
# http://hrst.mit.edu/hrs/apollo/public/archive/1706.pdf --- RSB 6/2004.)
|
|
#
|
|
# THE FOLLOWING QUOTATION IS PROVIDED THROUGH THE COURTESY OF THE AUTHORS.
|
|
#
|
|
# "IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT
|
|
# Page 310
|
|
# USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO
|
|
# CHRISTIAN EAR CAN ENDURE TO HEAR."
|
|
# HENRY 6, ACT 2, SCENE 4
|
|
|
|
# THE FOLLOWING ASSIGNMENTS FOR PINBALL ARE MADE ELSEWHERE
|
|
|
|
# RESERVED FOR PINBALL EXECUTIVE ACTION
|
|
#
|
|
#DSPCOUNT ERASE # DISPLAY POSITION INDICATOR
|
|
#DECBRNCH ERASE # +DEC, -DEC, OCT INDICATOR
|
|
#VERBREG ERASE # VERB CODE
|
|
#NOUNREG ERASE # NOUN CODE
|
|
#XREG ERASE # R1 INPUT BUFFER
|
|
#YREG ERASE # R2 INPUT BUFFER
|
|
#ZREG ERASE # R3 INPUT BUFFER
|
|
#XREGLP ERASE # LO PART OF XREG (FOR DEC CONV ONLY)
|
|
#YREGLP ERASE # LO PART OF YREG (FOR DEC CONV ONLY)
|
|
#HITEMOUT = YREGLP # TEMP FOR DISPLAY OF HRS,MIN,SEC
|
|
# # MUST = LOTEMOUT-1.
|
|
#ZREGLP ERASE # LO PART OF ZREG (FOR DEC CONV ONLY)
|
|
#LOTEMOUT = ZREGLP # TEMP FOR DISPLAY OF HRS,MIN,SEC
|
|
# # MUST = HITEMOUT+1
|
|
#MODREG ERASE # MODE CODE
|
|
#DSPLOCK ERASE # KEYBOARD/SUBROUTINE CALL INTERLOCK
|
|
#REQRET ERASE # RETURN REGISTER FOR LOAD
|
|
#LOADSTAT ERASE # STATUS INDICATOR FOR LOADTST
|
|
#CLPASS ERASE # PASS INDICATOR FOR CLEAR
|
|
#NOUT ERASE # ACTIVITY COUNTER FOR DSPTAB
|
|
#NOUNCADR ERASE # MACHINE CADR FOR NOUN
|
|
#MONSAVE ERASE # N/V CODE FOR MONITOR. (= MONSAVE1-1)
|
|
#MONSAVE1 ERASE # NOUNCADR FOR MONITOR (MATBS1) = MONSAVE+1
|
|
#MONSAVE2 ERASE # NVMONOPT OPTIONS
|
|
#DSPTAB ERASE +13D # 0-10, DISPLAY PANEL BUFFER 11-13, C RELAYS.
|
|
#CADRSTOR ERASE # ENDIDLE STORAGE
|
|
#NVQTEM ERASE # NVSUB STORAGE FOR CALLING ADDRESS
|
|
# # MUST = NVBNKTEM-1.
|
|
#NVBNKTEM ERASE # NVSUB STORAGE FOR CALLING BANK
|
|
# # MUST = NVQTEM+1
|
|
#VERBSAVE ERASE # NEEDED FOR RECYCLE
|
|
#DSPLIST ERASE # WAITING REG FOR DSP SYST INTERNAL USE
|
|
#EXTVBACT ERASE # EXTENDED VERB ACTIVITY INTERLOCK
|
|
#DSPTEM1 ERASE +2 # BUFFER STORAGE AREA 1 (MOSTLY FOR TIME)
|
|
#DSPTEM2 ERASE +2 # BUFFER STORAGE AREA 2 (MOSTLY FOR DEG)
|
|
#
|
|
# END OF ERASABLES RESERVED FOR PINBALL EXECUTIVE ACTION.
|
|
#
|
|
# TEMPORARIES FOR PINBALL EXECUTIVE ACTION
|
|
# Page 311
|
|
#DSEXIT = INTB15+ # RETURN FOR DSPIN
|
|
#EXITEM = INTB15+ # RETURN FOR SCALE FACTOR ROUTINE SELECT
|
|
#BLANKRET = INTB15+ # RETURN FOR 2BLANK
|
|
#WRDRET = INTBIT15 # RETURN FOR 5BLANK.
|
|
#WDRET = INTBIT15 # RETURN FOR DSPWD
|
|
#DECRET = INTBIT15 # RETURN FOR PUTCOM(DEC LOAD)
|
|
#21/22REG = INTBIT15 # TEMP FOR CHARIN
|
|
#UPDATRET = POLISH # RETURN FOR UPDATNN, UPDATVB
|
|
#CHAR = POLISH # TEMP FOR CHARIN
|
|
#ERCNT = POLISH # COUNTER FOR ERROR LIGHT RESET
|
|
#DECOUNT = POLISH # COUNTER FOR SCALING AND DISPLAY (DEC)
|
|
#SGNON = VBUF # TEMP FOR +,- ON
|
|
#NOUNTEM = VBUF # COUNTER FOR MIXNOUN FETCH
|
|
#DISTEM = VBUF # COUNTER FOR OCTAL DISPLAY VERB
|
|
#DECTEM = VBUF # COUNTER FOR FETCH (DEC DISPLAY VERBS)
|
|
#SGNOFF = VBUF +1 # TEMP FOR +,- ON
|
|
#NVTEMP = VBUF +1 # TEMP FOR NVSUB
|
|
#SFTEMP1 = VBUF +1 # STORAGE FOR SF CONST HI PART (=SFTEMP2-1)
|
|
#HITEMIN = VBUF +1 # TEMP FOR LOAD OF HRS,MIN,SEC
|
|
# # MUST = LOTEMIN-1.
|
|
#CODE = VBUF +2 # FOR DSPIN
|
|
#SFTEMP2 = VBUF +2 # STORAGE FOR SF CONST LO PART (=SFTEMP1+1)
|
|
#LOTEMIN = VBUF +2 # TEMP FOR LOAD OF HRS,MIN,SEC
|
|
# # MUST = HITEMIN+1
|
|
#MIXTEMP = VBUF +3 # FOR MIXNOUN DATA
|
|
#SIGNRET = VBUF +3 # RETURN FOR +,- ON
|
|
# ALSO MIXTEMP+1 = VBUF+4, MIXTEMP+2 = VBUF+5
|
|
#ENTRET = DOTINC # EXIT FROM ENTER
|
|
#WDONT = DOTRET # CHAR COUNTER FOR DSPWD
|
|
#INREL = DOTRET # INPUT BUFFER SELECTOR (X,Y,Z, REG )
|
|
#DSPMMTEM = MATINC # DSPCOUNT SAVE FOR DSPMM
|
|
#MIXBR = MATINC # INDICATOR FOR MIXED OR NORMAL NOUN
|
|
#TEM1 ERASE # EXEC TEMP
|
|
#DSREL = TEM1 # REL ADDRESS FOR DSPIN
|
|
#TEM2 ERASE # EXEC TEMP
|
|
#DSMAG = TEM2 # MAGNITUDE STORE FOR DSPIN
|
|
#IDADDTEM = TEM2 # MIXNOUN INDIRECT ADDRESS STORAGE
|
|
#TEM3 ERASE # EXEC TEMP
|
|
#COUNT = TEM3 # FOR DSPIN
|
|
# Page 312
|
|
#TEM4 ERASE # EXEC TEMP
|
|
#LSTPTR = TEM4 # LIST POINTER FOR GRABUSY
|
|
#RELRET = TEM4 # RETURN FOR RELDSP
|
|
#FREERET = TEM4 # RETURN FOR FREEDSP
|
|
#DSPWDRET = TEM4 # RETURN FOR DSPSIGN
|
|
#SEPSCRET = TEM4 # RETURN FOR SEPSEC
|
|
#SEPMNRET = TEM4 # RETURN FOR SEPMIN
|
|
#TEM5 ERASE # EXEC TEMP
|
|
#NOUNADD = TEM5 # TEMP STORAGE FOR NOUN ADDRESS
|
|
#NNADTEM ERASE # TEMP FOR NOUN ADDRESS TABLE ENTRY
|
|
#NNTYPTEM ERASE # TEMP FOR NOUN TYPE TABLE ENTRY
|
|
#IDAD1TEM ERASE # TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
|
|
# # MUST = IDAD2TEM-1, = IDAD3TEM-2
|
|
#IDAD2TEM ERASE # TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
|
|
# # MUST = IDAD1TEM+1, IDAD3TEM-1.
|
|
#IDAD3TEM ERASE # TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
|
|
# # MUST = IDAD1TEM+2, IDAD2TEM+1.
|
|
#RUTMXTEM ERASE # TEMP FOR SF ROUT TABLE ENTRY (MIXNN ONLY)
|
|
#
|
|
# END OF TEMPORARIES FOR PINBALL EXECUTIVE ACTION.
|
|
#
|
|
# ADDITIONAL TEMPORARIES FOR PINBALL EXECUTIVE ACTION
|
|
#
|
|
# MPAC, THRU MPAC +6
|
|
# BUF, +1, +2
|
|
# BUF2, +1, +2
|
|
# MPTEMP
|
|
# ADDRWD
|
|
#
|
|
# END OF ADDITIONAL TEMPS FOR PINBALL EXEC ACTION
|
|
#
|
|
# RESERVED FOR PINBALL INTERRUPT ACTION
|
|
#
|
|
#DSPCNT ERASE # COUNTER FOR DSPOUT
|
|
#UPLOCK ERASE # BIT1 = UPLINK INTERLOCK (ACTIVATED BY
|
|
# # RECEPTION OF A BAD MESSAGE IN UPLINK)
|
|
#
|
|
# END OF ERASABLES RESERVED FOR PINBALL INTERRUPT ACTION
|
|
#
|
|
# TEMPORARIES FOR PINBALL INTERRUPT ACTION
|
|
#
|
|
#KEYTEMP1 = WAITEXIT # TEMP FOR KEYRUPT, UPRUPT
|
|
#DSRUPTEM = WAITEXIT # TEMP FOR DSPOUT
|
|
#KEYTEMP2 = RUPTAGN # TEMP FOR KEYRUPT, UPRUPT
|
|
#
|
|
# END OF TEMPORARIES FOR PINBALL INTERRUPT ACTION
|
|
|
|
# Page 313
|
|
# THE INPUT CODES ASSUMED FOR THE KEYBOARD ARE,
|
|
# 0 10000
|
|
# 1 00001
|
|
# 9 01001
|
|
# VERB 10001
|
|
# ERROR RES 10010
|
|
# KEY RLSE 11001
|
|
# + 11010
|
|
# - 11011
|
|
# ENTER 11100
|
|
# CLEAR 11110
|
|
# NOUN 11111
|
|
#
|
|
# OUTPUT FORMAT FOR DISPLAY PANEL. SET OUT0 TO AAAABCCCCCDDDDD.
|
|
# A'S SELECTS A RELAYWORD. THIS DETERMINES WHICH PAIR OF CHARACTERS ARE
|
|
# ENERGIZED.
|
|
# B FOR SPECIAL RELAYS SUCH AS SIGNS ETC.
|
|
# C'S 5 BIT RELAY CODE FOR LEFT CHAR OF PAIR SELECTED BY RELAYWORD.
|
|
# D'S 5 BIT RELAY CODE FOR RIGHT CHAR OF PAIR SELECTED BY RELAYWORD.
|
|
#
|
|
# THE PANEL APPEARS AS FOLLOWS,
|
|
# MD1 MD2 (MAJOR MODE)
|
|
# VD1 VD2 (VERB) ND1 ND2 (NOUN)
|
|
# R1D1 R1D2 R1D3 R1D4 R1D5 (R1)
|
|
# R2D1 R2D2 R2D3 R2D4 R2D5 (R2)
|
|
# R3D1 R3D2 R3D3 R3D4 R3D5 (R3)
|
|
#
|
|
# EACH OF THESE IS GIVEN A DSPCOUNT NUMBER FOR USE WITHIN COMPUTATION ONLY
|
|
#
|
|
# MD1 25 R2D1 11 ALL ARE OCTAL
|
|
# MD2 24 R2D2 10
|
|
# VD1 23 R2D3 7
|
|
# VD2 22 R2D4 6
|
|
# ND1 21 R2D5 5
|
|
# ND2 20 R3D1 4
|
|
# R1D1 16 R3D2 3
|
|
# R1D2 15 R3D3 2
|
|
# R1D3 14 R3D4 1
|
|
# R1D4 13 R3D5 0
|
|
# R1D5 12
|
|
#
|
|
# THERE IS AN 11-REGISTER TABLE (DSPTAB) FOR THE DISPLAY PANEL.
|
|
#
|
|
# DSPTAB RELAYWD BIT11 BITS 10-6 BITS 5-1
|
|
# RELADD
|
|
# 10 1011 MD1 (25) MD2 (24)
|
|
# 9 1010 VD1 (23) VD2 (22)
|
|
# 8 1001 ND1 (21) ND2 (20)
|
|
# 7 1000 R1D1 (16)
|
|
# Page 314
|
|
# 6 0111 +R1 R1D2 (15) R1D3 (14)
|
|
# 5 0110 -R1 R1D4 (13) R1D5 (12)
|
|
# 4 0101 +R2 R2D1 (11) R2D2 (10)
|
|
# 3 0100 -R2 R2D3 (7) R2D4 (6)
|
|
# 2 0011 R2D5 (5) R3D1 (4)
|
|
# 1 0010 +R3 R3D2 (3) R3D3 (2)
|
|
# 0 0001 -R3 R3D4 (1) R3D5 (0)
|
|
# 0000 NO RELAYWORD
|
|
#
|
|
# THE 5-BIT OUTOUT RELAY CODES ARE:
|
|
#
|
|
# BLANK 00000
|
|
# 0 10101
|
|
# 1 00011
|
|
# 2 11001
|
|
# 3 11011
|
|
# 4 01111
|
|
# 5 11110
|
|
# 6 11100
|
|
# 7 10011
|
|
# 8 11101
|
|
# 9 11111
|
|
#
|
|
# OUTPUT BITS USED BY PINBALL:
|
|
#
|
|
# KEY RELEASE LIGHT -- BIT 5 OF CHANNEL 11
|
|
# VERB/NOUN FLASH -- BIT 6 OF CHANNEL 11
|
|
# OPERATOR ERROR LIGHT -- BIT 7 OF CHANNEL 11
|
|
|
|
# Page 315
|
|
# START OF EXECUTIVE SECTION OF PINBALL
|
|
|
|
BANK 40
|
|
SETLOC PINBALL1
|
|
BANK
|
|
|
|
COUNT 40/PIN
|
|
|
|
CHARIN CAF ONE # BLOCK DISPLAY SYST
|
|
XCH DSPLOCK # MAKE DSP SYST BUSY, BUT SAVE OLD
|
|
TS 21/22REG # C(DSPLOCK) FOR ERROR LIGHT RESET.
|
|
CCS CADRSTOR # ALL KEYS EXCEPT ER TURN ON KR LITE IF
|
|
TC +2 # CADRSTOR IS FULL. THIS REMINDS OPERATOR
|
|
TC CHARIN2 # TO RE-ESTABLISH A FLASHING DISPLAY
|
|
CS ELRCODE1 # WHICH HE HAS OBSCURED WITH DISPLAYS OF
|
|
AD MPAC # HIS OWN (SEE REMARKS PRECEDING ROUTINE
|
|
EXTEND # VBRELDSP).
|
|
BZF CHARIN2
|
|
TC RELDSPON
|
|
CHARIN2 XCH MPAC
|
|
TS CHAR
|
|
INDEX A
|
|
TC +1 # INPUT CODE FUNCTION
|
|
TC CHARALRM # 0
|
|
TC NUM # 1
|
|
TC NUM # 2
|
|
TC NUM # 3
|
|
TC NUM # 4
|
|
TC NUM # 5
|
|
TC NUM # 6
|
|
TC NUM # 7
|
|
TC 89TEST # 10 8
|
|
TC 89TEST # 11 9
|
|
TC CHARALRM # 12
|
|
TC CHARALRM # 13
|
|
TC CHARALRM # 14
|
|
TC CHARALRM # 15
|
|
TC CHARALRM # 16
|
|
TC CHARALRM # 17
|
|
TC NUM -2 # 20 0
|
|
TC VERB # 21 VERB
|
|
TC ERROR # 22 ERROR LIGHT RESET
|
|
TC CHARALRM # 23
|
|
TC CHARALRM # 24
|
|
TC CHARALRM # 25
|
|
TC CHARALRM # 26
|
|
TC CHARALRM # 27
|
|
TC CHARALRM # 30
|
|
TC VBRELDSP # 31 KEY RELEASE
|
|
# Page 316
|
|
TC POSGN # 32 +
|
|
TC NEGSGN # 33 -
|
|
TC ENTERJMP # 34 ENTER
|
|
TC CHARALRM # 35
|
|
TC CLEAR # 36 CLEAR
|
|
TC NOUN # 37 NOUN
|
|
|
|
ELRCODE1 OCT 22
|
|
ENTERJMP TC POSTJUMP
|
|
CADR ENTER
|
|
|
|
89TEST CCS DSPCOUNT
|
|
TC +4 # +
|
|
TC +3 # +0
|
|
TC ENDOFJOB # - BLOCK DATA IN IF DSPCOUNT IS - OR -0
|
|
TC ENDOFJOB # -0
|
|
CAF THREE
|
|
MASK DECBRNCH
|
|
CCS A
|
|
TC NUM # IF DECBRNCH IS +, 8 OR 9 OK
|
|
TC CHARALRM # IF DECBRNCH IS +0, REJECT 8 OR 9
|
|
|
|
# NUM ASSEMBLES OCTAL 3 BITS AT A TIME. FOR DECIMAL IT CONVERTS INCOMING
|
|
# WORD AS A FRACTION, KEEPING RESULTS TO DP.
|
|
# OCTAL RESULTS ARE LEFT IN XREG, YREG, OR ZREG. HI PART OF DEC IN XREG,
|
|
# YREG, ZREG. THE LOW PARTS IN XREGLP, YREGLP, OR ZREGLP.
|
|
# DECBRNCH IS LEFT AT +0 FOR OCT, +1 FOR + DEC, +2 FOR - DEC.
|
|
# IF DSPCOUNT WAS LEFT -, NO MORE DATA IS ACCEPTED.
|
|
|
|
CAF ZERO
|
|
TS CHAR
|
|
NUM CCS DSPCOUNT
|
|
TC +4 # +
|
|
TC +3 # +0
|
|
TC +1 # -BLOCK DATA IN IF DSPCOUNT IS -
|
|
TC ENDOFJOB # -0
|
|
TC GETINREL
|
|
CCS CLPASS # IF CLPASS IS + OR +0, MAKE IT +0.
|
|
CAF ZERO
|
|
TS CLPASS
|
|
TC +1
|
|
INDEX CHAR
|
|
CAF RELTAB
|
|
MASK LOW5
|
|
TS CODE
|
|
CA DSPCOUNT
|
|
TS COUNT
|
|
TC DSPIN
|
|
# Page 317
|
|
CAF THREE
|
|
MASK DECBRNCH
|
|
CCS A # +0, OCTAL. +1, + DEC. +2, - DEC.
|
|
TC DECTOBIN # +
|
|
INDEX INREL # +0 OCTAL
|
|
XCH VERBREG
|
|
TS CYL
|
|
CS CYL
|
|
CS CYL
|
|
XCH CYL
|
|
AD CHAR
|
|
TC ENDNMTST
|
|
DECTOBIN INDEX INREL
|
|
XCH VERBREG
|
|
TS MPAC # SUM X 2EXP-14 IN MPAC
|
|
CAF ZERO
|
|
TS MPAC +1
|
|
CAF TEN # 10 X 2EXP-14
|
|
TC SHORTMP # 10SUM X 2EXP-28 IN MPAC, MPAC+1
|
|
XCH MPAC +1
|
|
AD CHAR
|
|
TS MPAC +1
|
|
TC ENDNMTST # NO OF
|
|
ADS MPAC # OF MUST BE 5TH CHAR
|
|
TC DECEND
|
|
ENDNMTST INDEX INREL
|
|
TS VERBREG
|
|
CS DSPCOUNT
|
|
INDEX INREL
|
|
AD CRITCON
|
|
EXTEND
|
|
BZF ENDNUM # -0, DSPCOUNT = CRITCON
|
|
TC MORNUM # -, DSPCOUNT G/ CRITCON
|
|
ENDNUM CAF THREE
|
|
MASK DECBRNCH
|
|
CCS A
|
|
TC DECEND
|
|
ENDALL CS DSPCOUNT # BLOCK NUMIN BY PLACING DSPCOUNT
|
|
TC MORNUM +1 # NEGATIVELY
|
|
DECEND CS ONE
|
|
AD INREL
|
|
EXTEND
|
|
BZMF ENDALL # IF INREL=0,1 (VBREG,NNREG) LEAVE WHOLE
|
|
TC DMP # IF INREL=2,3,4 (R1,R2,R3), CONVERT TO FRAC
|
|
# MULT SUM X 2EXP-28 IN MPAC, MPAC+1 BY
|
|
ADRES DECON # 2EXP14/10EXP5, GIVES (SUM/10EXP5)X2EXP-14
|
|
CAF THREE # IN MPAC, +1, +2.
|
|
MASK DECBRNCH
|
|
INDEX A
|
|
TC +0
|
|
# Page 318
|
|
TC +DECSGN
|
|
EXTEND # - CASE
|
|
DCS MPAC +1
|
|
DXCH MPAC +1
|
|
+DECSGN XCH MPAC +2
|
|
INDEX INREL
|
|
TS XREGLP -2
|
|
XCH MPAC +1
|
|
INDEX INREL
|
|
TS VERBREG
|
|
TC ENDALL
|
|
MORNUM CCS DSPCOUNT # DECREMENT DSPCOUNT
|
|
TS DSPCOUNT
|
|
TC ENDOFJOB
|
|
|
|
CRITCON OCT 22 # (DEC 18)
|
|
OCT 20 # (DEC 16)
|
|
OCT 12 # (DEC 10)
|
|
OCT 5
|
|
OCT 0
|
|
|
|
DECON 2DEC 1 E-5 B14 # 2EXP14/10EXP5 = .16384 DEC
|
|
|
|
# GETINREL GETS PROPER DATA REG REL ADDRESS FOR CURRENT C(DSPCOUNT) AND
|
|
# PUTS IN INTO INREL. +0 VERBREG, 1 NOUNREG, 2 XREG, 3 YREG, 4 ZREG.
|
|
|
|
GETINREL INDEX DSPCOUNT
|
|
CAF INRELTAB
|
|
TS INREL # (A TEMP. REG)
|
|
TC Q
|
|
|
|
INRELTAB OCT 4 # R3D5 (DSPCOUNT = 0)
|
|
OCT 4 # R3D4 =(1)
|
|
OCT 4 # R3D3 =(2)
|
|
OCT 4 # R3D2 =(3)
|
|
OCT 4 # R3D1 =(4)
|
|
OCT 3 # R2D5 =(5)
|
|
OCT 3 # R2D4 =(6)
|
|
OCT 3 # R2D3 =(7)
|
|
OCT 3 # R2D2 =(8D)
|
|
OCT 3 # R2D1 =(9D)
|
|
OCT 2 # R1D5 =(10D)
|
|
OCT 2 # R1D4 =(11D)
|
|
OCT 2 # R1D3 =(12D)
|
|
OCT 2 # R1D2 =(13D)
|
|
OCT 2 # R1D1 =(14D)
|
|
TC CCSHOLE # NO DISCOUNT NUMBER = 15D
|
|
OCT 1 # ND2 =(16D)
|
|
# Page 319
|
|
OCT 1 # ND1 =(17D)
|
|
OCT 0 # VD2 =(18D)
|
|
OCT 0 # VD1 =(19D)
|
|
|
|
VERB CAF ZERO
|
|
TS VERBREG
|
|
CAF VD1
|
|
NVCOM TS DSPCOUNT
|
|
TC 2BLANK
|
|
CAF ONE
|
|
TS DECBRNCH # SET FOR DEC V/N CODE
|
|
CAF ZERO
|
|
TS REQRET # SET FOR ENTPAS0
|
|
CAF ENDINST # IF DSPALARM OCCURS BEFORE FIRST ENTPAS0
|
|
TS ENTRET # OR NVSUB, ENTRET MUST ALREADY BE SET
|
|
# TO TC ENDOFJOB
|
|
TC ENDOFJOB
|
|
NOUN CAF ZERO
|
|
TS NOUNREG
|
|
CAF ND1 # ND1, OCT 21 (DEC 17)
|
|
TC NVCOM
|
|
|
|
NEGSGN TC SIGNTEST
|
|
TC -ON
|
|
CAF TWO
|
|
BOTHSGN INDEX INREL # SET DEC COMP BIT TO 1 (IN DECBRNCH)
|
|
AD BIT7 # BIT 5 FOR R1. BIT 4 FOR R2.
|
|
ADS DECBRNCH # BIT 3 FOR R3.
|
|
FIXCLPAS CCS CLPASS # IF CLPASS IS + OR +0. MAKE IT +0.
|
|
CAF ZERO
|
|
TS CLPASS
|
|
TC +1
|
|
TC ENDOFJOB
|
|
|
|
POSGN TC SIGNTEST
|
|
TC +ON
|
|
CAF ONE
|
|
TC BOTHSGN
|
|
|
|
+ON LXCH Q
|
|
TC GETINREL
|
|
INDEX INREL
|
|
CAF SGNTAB -2
|
|
TS SGNOFF
|
|
AD ONE
|
|
TS SGNON
|
|
SGNCOM CAF ZERO
|
|
TS CODE
|
|
# Page 320
|
|
XCH SGNOFF
|
|
TC 11DSPIN
|
|
CAF BIT11
|
|
TS CODE
|
|
XCH SGNON
|
|
TC 11DSPIN
|
|
TC L
|
|
-ON LXCH Q
|
|
TC GETINREL
|
|
INDEX INREL
|
|
CAF SGNTAB -2
|
|
TS SGNON
|
|
AD ONE
|
|
TS SGNOFF
|
|
TC SGNCOM
|
|
|
|
SGNTAB OCT 5 # -R1
|
|
OCT 3 # -R2
|
|
OCT 0 # -R3
|
|
|
|
SIGNTEST LXCH Q # ALLOWS +,- ONLY WHEN DSPCOUNT=R1D1,
|
|
CAF THREE # R2D1, OR R3D1. ALLOWS ONLY FIRST OF
|
|
MASK DECBRNCH # CONSECUTIVE +/- CHARACTERS.
|
|
CCS A # IF LOW2 BITS OF DECBRNCH NOT 0. SIGN
|
|
TC ENDOFJOB # FOR THIS WORD ALREADY IN. REJECT.
|
|
CS R1D1
|
|
TC SGNTST1
|
|
CS R2D1
|
|
TC SGNTST1
|
|
CS R3D1
|
|
TC SGNTST1
|
|
TC ENDOFJOB # NO MATCH FOUND. SIGN ILLEGAL
|
|
SGNTST1 AD DSPCOUNT
|
|
EXTEND
|
|
BZF +2 # MATCH FOUND
|
|
TC Q
|
|
TC L # SIGN LEGAL
|
|
|
|
# CLEAR BLANKS WHICH R1, R2, R3 IS CURRENT OR LAST TO BE DISPLAYED (PERTINENT
|
|
# XREG, YREG, ZREG IS CLEARED). SUCCESSIVE CLEARS TAKE CARE OF EACH RX
|
|
# L/ RC UNTIL R1 IS DONE. THEN NO FURTHER ACTION.
|
|
#
|
|
# THE SINGLE COMPONENT LOAD VERBS ALLOW ONLY THE SINGLE RC THAT IS
|
|
# APPROPRIATE TO BE CLEARED.
|
|
#
|
|
# CLPASS +0 PASS0, CAN BE BACKED UP
|
|
# +NZ HIPASS, CAN BE BACKED UP
|
|
# -NZ PASS0, CANNOT BE BACKED UP
|
|
# Page 321
|
|
CLEAR CCS DSPCOUNT
|
|
AD ONE
|
|
TC +2
|
|
AD ONE
|
|
INDEX A # DO NOT CHANGE DSPCOUNT BECAUSE MAY LATER
|
|
CAF INRELTAB # FAIL LEGALTST.
|
|
TS INREL # MUST SET INREL, EVEN FOR HIPASS.
|
|
CCS CLPASS
|
|
TC CLPASHI # +
|
|
TC +2 # +0 IF CLPASS IS +0 OR -, IT IS PASS0
|
|
TC +1 # -
|
|
CA INREL
|
|
TC LEGALTST
|
|
TC CLEAR1
|
|
CLPASHI CCS INREL
|
|
TS INREL
|
|
TC LEGALTST
|
|
CAF DOUBLK +2 # +3 TO - NUMBER, BACKS DATA REQUESTS.
|
|
ADS REQRET
|
|
CA INREL
|
|
TS MIXTEMP # TEMP STORAGE FOR INREL
|
|
EXTEND
|
|
DIM VERBREG # DECREMENT VERB AND RE-DISPLAY
|
|
TC BANKCALL
|
|
CADR UPDATVB
|
|
CA MIXTEMP
|
|
TS INREL # RESTORE INREL
|
|
CLEAR1 TC CLR5
|
|
INCR CLPASS # ONLY IF CLPASS IS + OR +0
|
|
TC ENDOFJOB # SET FOR HIGHER PASS.
|
|
CLR5 LXCH Q # USED 5BLANK BUT AVOIDS ITS TC GETINREL
|
|
TC 5BLANK +2
|
|
LEGALTST AD NEG2
|
|
CCS A
|
|
TC Q # LEGAL INREL G/2
|
|
TC CCSHOLE
|
|
TC ENDOFJOB # ILLEGAL INREL=0,1
|
|
TC Q # LEGAL INREL=2
|
|
|
|
# 5BLANK BLANKS 5 CHAR DISPLAY WORD IN R1, R2, OR R3. IT ALSO ZEROES XREG,
|
|
# YREG, OR ZREG. PLACE ANY + DSPCOUNT NUMBER FOR PERTINENT RC INTO DSPCOUNT.
|
|
# DSPCOUNT IS LEFT SET TO LEFT MOST DSP NUMB FOR RC JUST BLANKED.
|
|
|
|
TS DSPCOUNT # NEEDED FOR BLANKSUB
|
|
5BLANK LXCH Q
|
|
TC GETINREL
|
|
CAF ZERO
|
|
INDEX INREL
|
|
TS VERBREG # ZERO X, Y, Z, REG.
|
|
# Page 322
|
|
INDEX INREL
|
|
TS XREGLP -2
|
|
TS CODE
|
|
INDEX INREL # ZERO PERTINENT DEC COMP BIT.
|
|
CS BIT7 # PROTECT OTHERS
|
|
MASK DECBRNCH
|
|
MASK BRNCHCON # ZERO LOW 2 BITS.
|
|
TS DECBRNCH
|
|
INDEX INREL
|
|
CAF SINBLANK -2 # BLANK ISOLATED CHAR SEPARATELY
|
|
TS COUNT
|
|
TC DSPIN
|
|
5BLANK1 INDEX INREL
|
|
CAF DOUBLK -2
|
|
TS DSPCOUNT
|
|
TC 2BLANK
|
|
CS TWO
|
|
ADS DSPCOUNT
|
|
TC 2BLANK
|
|
INDEX INREL
|
|
CAF R1D1 -2
|
|
TS DSPCOUNT # SET DSPCOUNT TO LEFT MOST DSP NUMBER
|
|
TC L # OF REG. JUST BLANKED
|
|
|
|
SINBLANK OCT 16 # DEC 14
|
|
OCT 5
|
|
OCT 4
|
|
DOUBLK OCT 15 # DEC 13
|
|
OCT 11 # DEC 9
|
|
OCT 3
|
|
|
|
BRNCHCON OCT 77774
|
|
|
|
# 2BLANK BLANKS TWO CHAR. PLACE DSP NUMBER OF LEFT CHAR OF THE PAIR INTO
|
|
# DSPCOUNT. THIS NUMBER IS LEFT IN DSPCOUNT
|
|
|
|
2BLANK CA DSPCOUNT
|
|
TS SR
|
|
CS BLANKCON
|
|
INHINT
|
|
INDEX SR
|
|
XCH DSPTAB
|
|
EXTEND
|
|
BZMF +2 # IF OLD CONTENTS -, NOUT OK
|
|
INCR NOUT # IF OLD CONTENTS +, +1 TO NOUT
|
|
RELINT # IF -, NOUT OK
|
|
TC Q
|
|
BLANKCON OCT 4000
|
|
|
|
# Page 323
|
|
# ENTER PASS 0 IS THE EXECUTE FUNCTION. HIGHER ORDER ENTERS ARE TO LOAD
|
|
# DATA. THE SIGN OF REQRET DETERMINES THE PASS, + FOR PASS 0, - FOR HIGHER
|
|
# PASSES
|
|
#
|
|
# MACHINE CADR TO BE SPECIFIED (MCTBS) NOUNS DESIRE AN ECADR TO BE LOADED
|
|
# WHEN USED WITH LOAD VERBS, MONITOR VERBS, OR DISPLAY VERBS (EXCEPT
|
|
# VERB = FIXED MEMORY DISPLAY, WHICH REQUIRES AN FCADR).
|
|
|
|
BANK 41
|
|
SETLOC PINBALL2
|
|
BANK
|
|
|
|
COUNT 41/PIN
|
|
|
|
NVSUBB TC NVSUB1 # STANDARD LEAD INS. DON'T MOVE.
|
|
LOADLV1 TC LOADLV
|
|
|
|
# END OF STANDARD LEAD INS.
|
|
|
|
ENTER CAF ZERO
|
|
TS CLPASS
|
|
CAF ENDINST
|
|
TS ENTRET
|
|
CCS REQRET
|
|
TC ENTPAS0 # IF +, PASS 0
|
|
TC ENTPAS0 # IF +, PASS 0
|
|
TC +1 # IF -, NOT PASS 0
|
|
ENTPASHI CAF MMADREF
|
|
AD REQRET # IF L/ 2 CHAR IN FOR MM CODE, ALARM
|
|
EXTEND # AND RECYCLE (DECIDE AT MCHANG+1).
|
|
BZF ACCEPTWD
|
|
CAF THREE # IF DEC, ALARM IF L/ 5 CHAR IN FOR DATA,
|
|
MASK DECBRNCH # BUT LEAVE REQRET - AND FLASH ON, SO
|
|
CCS A # OPERATOR CAN SUPPLY MISSING NUMERICAL
|
|
TC +2 # CHARACTERS AND CONTINUE.
|
|
TC ACCEPTWD # OCTAL. ANY NUMBER OF CHAR OK.
|
|
CCS DSPCOUNT
|
|
TC GODSPALM # LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
|
|
TC GODSPALM # LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
|
|
TC +1 # 5 CHAR IN (DSPCOUNT IS -)
|
|
ACCEPTWD CS REQRET # 5 CHAR IN (DSPCOUNT IS -)
|
|
TS REQRET # SET REQRET +.
|
|
TC FLASHOFF
|
|
TC REQRET
|
|
|
|
ENTEXIT = ENTRET
|
|
|
|
MMADREF ADRES MMCHANG +1 # ASSUMES TC REQMM AT MMCHANG.
|
|
|
|
# Page 324
|
|
LOWVERB DEC 28 # LOWER VERB THAT AVOIDS NOUN TEST.
|
|
|
|
ENTPAS0 CAF ZERO # NOUN VERB SUB ENTERS HERE
|
|
TS DECBRNCH
|
|
CS VD1 # BLOCK FURTHER NUM CHAR, SO THAT STRAY
|
|
TS DSPCOUNT # CHAR DO NOT GET INTO VERB OR NOUN LTS.
|
|
TESTVB CS VERBREG # IF VERB IS G/E LOWVB, SKIP NOUN TEST.
|
|
TS VERBSAVE # SAVE VERB FOR POSSIBLE RECYCLE.
|
|
AD LOWVERB # LOWVERB - VB
|
|
EXTEND
|
|
BZMF VERBFAN # VERB G/ E LOWVERB
|
|
TESTNN EXTEND # VERB L/ LOWVERB
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
|
|
DXCH Z # ROUTINE.
|
|
INDEX MIXBR
|
|
TC +0
|
|
TC +2 # NORMAL
|
|
TC MIXNOUN # MIXED
|
|
CCS NNADTEM # NORMAL
|
|
TC VERBFAN -2 # NORMAL IF +
|
|
TC GODSPALM # NOT IN USE IF +0
|
|
TC REQADD # SPECIFY MACHINE CADR IF -
|
|
INCR NOUNCADR # AUGMENT MACHINE CADR IF -0
|
|
TC SETNADD # ECADR FROM NOUNCADR, SETS ED, NOUNADD.
|
|
TC INTMCTBS +2
|
|
REQADD CAF BIT15 # SET CLPASS FOR PASS 0 ONLY
|
|
TS CLPASS
|
|
CS ENDINST # TEST IF REACHED HERE FROM INTERNAL OR
|
|
AD ENTEXIT # FROM EXTERNAL
|
|
EXTEND
|
|
BZF +2 # EXTERNAL MACH CADR TO BE SPECIFIED
|
|
TC INTMCTBS
|
|
TC REQDATZ # EXTERNAL MACH CADR TO BE SPECIFIED
|
|
CCS DECBRNCH # ALARM AND RECYCLE IF DECIMAL USED
|
|
TC ALMCYCLE # FOR MCTBS.
|
|
CS VD1 # OCTAL USED OK
|
|
TS DSPCOUNT # BLOCK NUM CHAR IN
|
|
CCS CADRSTOR
|
|
TC +3 # EXTERNAL MCTBS DISPLAY WILL LEAVE FLASH
|
|
TC USEADD # ON IF ENDIDLE NOT = +0.
|
|
TC +1
|
|
TC FLASHON
|
|
USEADD XCH ZREG
|
|
TC SETNCADR # ECADR INTO NOUNCADR. SET EB, NOUNADD.
|
|
EXTEND
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TAB E READING
|
|
DXCH Z # ROUTINE.
|
|
TC VERBFAN
|
|
|
|
EBANK= DSPCOUNT
|
|
# Page 325
|
|
LODNNLOC 2CADR LODNNTAB
|
|
|
|
NEG5 OCT 77772
|
|
|
|
INTMCTBS CA MPAC +2 # INTERNAL MACH CADR TO BE SPECIFIED.
|
|
TC SETNCADR # ECADR INTO NOUNCADR. SET EB, NOUNADD.
|
|
CS FIVE # NVSUB CALL LEFT CADR IN MPAC+2 FOR MACH
|
|
AD VERBREG # CADR TO BE SPECIFIED.
|
|
EXTEND
|
|
BZF VERBFAN # DON'T DISPLAY CADR IF VB = 05.
|
|
CAF R3D1 # VB NOT = 05. DISPLAY CADR.
|
|
TS DSPCOUNT
|
|
CA NOUNCADR
|
|
TC DSPOCTWO
|
|
TC VERBFAN
|
|
|
|
AD ONE
|
|
TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
|
|
VERBFAN CS LST2CON
|
|
AD VERBREG # VERB -- LST2CON
|
|
CCS A
|
|
AD ONE # VERB G/ LST2CON
|
|
TC +2
|
|
TC VBFANDIR # VERB L/ LST2CON
|
|
TS MPAC
|
|
TC RELDSP # RELEASE DISPLAY SYST
|
|
TC POSTJUMP # GO TO GOEXTVB WITH VB=40 IN MPAC.
|
|
CADR GOEXTVB
|
|
LST2CON DEC 40 # FIRST LIST2 VERB (EXTENDED VERB)
|
|
|
|
VBFANDIR INDEX VERBREG
|
|
CAF VERBTAB
|
|
TC BANKJUMP
|
|
|
|
VERBTAB CADR GODSPALM # VB00 ILLEGAL
|
|
CADR DSPA # VB01 DISPLAY OCT COMP 1 (R1)
|
|
CADR DSPB # VB02 DISPLAY OCT COMP 2 (R1)
|
|
CADR DSPC # VB03 DISPLAY OCT COMP 3 (R1)
|
|
CADR DSPAB # VB04 DISPLAY OCT COMP 1,2 (R1,R2)
|
|
CADR DSPABC # VB05 DISPLAY OCT COMP 1,2,3 (R1,R2,R3)
|
|
CADR DECDSP # VB06 DECIMAL DISPLAY
|
|
CADR DSPDPDEC # VB07 DP DECIMAL DISPLAY (R1,R2)
|
|
CADR GODSPALM # VB08 SPARE
|
|
CADR GODSPALM # VB09 SPARE
|
|
CADR DSPALARM # VB10 SPARE
|
|
CADR MONITOR # VB11 MONITOR OCT COMP 1 (R1)
|
|
CADR MONITOR # VB12 MONITOR OCT COMP 2 (R1)
|
|
CADR MONITOR # VB13 MONITOR OCT COMP 3 (R1)
|
|
CADR MONITOR # VB14 MONITOR OCT COMP 1,2 (R1,R2)
|
|
# Page 326
|
|
CADR MONITOR # VB15 MONITOR OCT COMP 1,2,3 (R1,R2,R3)
|
|
CADR MONITOR # VB16 MONITOR DECIMAL
|
|
CADR MONITOR # VB17 MONITOR DP DEC (R1,R2)
|
|
CADR GODSPALM # VB18 SPARE
|
|
CADR GODSPALM # VB19 SPARE
|
|
CADR GODSPALM # VB20 SPARE
|
|
CADR ALOAD # VB21 LOAD COMP 1 (R1)
|
|
CADR BLOAD # VB22 LOAD COMP 2 (R2)
|
|
CADR CLOAD # VB23 LOAD COMP 3 (R3)
|
|
CADR ABLOAD # VB24 LOAD COMP 1,2 (R1,R2)
|
|
CADR ABCLOAD # VB25 LOAD COMP 1,2,3 (R1,R2,R3)
|
|
CADR GODSPALM # VB26 SPARE
|
|
CADR DSPFMEM # VB27 FIXED MEMORY DISPLAY
|
|
# THE FOLLOWING VERBS MAKE NO NOUN TEST
|
|
CADR GODSPALM # VB28 SPARE
|
|
CADR GODSPALM # VB29 SPARE
|
|
REQEXLQC CADR VBRQEXEC # VB30 REQUEST EXECUTIVE
|
|
CADR VBRQWAIT # VB31 REQUEST WAITLIST
|
|
CADR VBRESEQ # VB32 RESEQUENCE
|
|
CADR VBPROC # VB33 PROCEED WITHOUT DATA
|
|
CADR VBTERM # VB34 TERMINATE CURRENT TEST OR LOAD REQ
|
|
CADR VBTSTLTS # VB35 TEST LIGHTS
|
|
CADR SLAP1 # VB36 FRESH START
|
|
CADR MMCHANG # VB37 CHANGE MAJOR MODE
|
|
CADR GODSPALM # VB38 SPARE
|
|
CADR GODSPALM # VB39 SPARE
|
|
|
|
# THE LIST2 VERBFAN IS LOCATED IN THE EXTENDED VERB BANK.
|
|
# Page 327
|
|
# NNADTAB CONTAINS A RELATIVE ADDRESS, IDADDREL (IN LOW 10 BITS), REFERRING
|
|
# TO WHERE 3 CONSECUTIVE ADDRESSES ARE STORED (IN IDADDTAB).
|
|
# MIXNOUN GETS DATA AND STORES IN MIXTEMP,+1,+2. IT SETS NOUNADD FOR
|
|
# MIXTEMP.
|
|
|
|
MIXNOUN CCS NNADTEM
|
|
TC +4 # + IN USE
|
|
TC GODSPALM # +0 NOT IN USE
|
|
TC +2 # - IN USE
|
|
TC +1 # -0 IN USE
|
|
CS SIX
|
|
AD VERBREG
|
|
EXTEND
|
|
BZMF +2 # VERB L/E 6
|
|
TC VERBFAN # AVOID MIXNOUN SWAP IF VB NOT = DISPLAY
|
|
CAF TWO
|
|
MIXNN1 TS DECOUNT
|
|
AD MIXAD
|
|
TS NOUNADD # SET NOUNADD TO MIXTEMP +K
|
|
INDEX DECOUNT # GET IDADDTAB ENTRY FOR COMPONENT K
|
|
CA IDAD1TEM # OF NOUN.
|
|
TS NOUNTEM
|
|
# TEST FOR DP (FOR OCT DISPLAY). IF SO, GET
|
|
# MINOR PART ONLY.
|
|
TC SFRUTMIX # GET SF ROUT NUMBER IN A
|
|
TC DPTEST
|
|
TC MIXNN2 # NO DP
|
|
INCR NOUNTEM # DP GET MINOR PART
|
|
MIXNN2 CA NOUNTEM
|
|
MASK LOW11 # ESUBK (NO DP) OR (ESUBK)+1 FOR DP.
|
|
TC SETEBANK # SET EBANK, LEAVE EADRES IN A.
|
|
INDEX A # PICK UP C(ESUBK) NOT DP.
|
|
CA 0 # OR C((ESUBK)+1) FOR DP MINOR PART
|
|
INDEX NOUNADD
|
|
XCH 0 # STORE IN MIXTEM + K
|
|
CCS DECOUNT
|
|
TC MIXNN1
|
|
TC VERBFAN
|
|
|
|
MIXAD TC MIXTEMP
|
|
|
|
# DPTEST ENTER WITH SF ROUT NUMBER IN A.
|
|
# RETURNS TO L+1 IF NO DP.
|
|
# RETURNS TO L+2 IF DP.
|
|
|
|
DPTEST INDEX A
|
|
TCF +1
|
|
TC Q # OCTAL ONLY NO DP
|
|
TC Q # FRACT NO DP
|
|
# Page 328
|
|
TC Q # DEG NO DP
|
|
TC Q # ARITH NO DP
|
|
TCF DPTEST1 # DP1OUT
|
|
TCF DPTEST1 # DP2OUT
|
|
TC Q # OPDEG NO DP
|
|
TCF DPTEST1 # DP3OUT
|
|
TC Q # HMS NO DP
|
|
TC Q # M/S NO DP
|
|
TCF DPTEST1 # DP4OUT
|
|
TC Q # ARITH1 NO DP
|
|
TC Q # 2INTOUT NO DP TO GET HI PART IN MPAC
|
|
TCF DPTEST1 # DPFRACOT
|
|
DPTEST1 INDEX Q
|
|
TC 1 # RETURN TO L+2
|
|
|
|
REQDATX CAF R1D1
|
|
TCF REQCOM
|
|
REQDATY CAF R2D1
|
|
TCF REQCOM
|
|
REQDATZ CAF R3D1
|
|
REQCOM TS DSPCOUNT
|
|
CS Q
|
|
TS REQRET
|
|
TC BANKCALL
|
|
CADR 5BLANK
|
|
TC FLASHON
|
|
ENDRQDAT TC ENTEXIT
|
|
|
|
TS NOUNREG
|
|
UPDATNN XCH Q
|
|
TS UPDATRET
|
|
EXTEND
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
|
|
DXCH Z # ROUTINE.
|
|
CCS NNADTEM
|
|
AD ONE # NORMAL
|
|
TCF PUTADD
|
|
TCF PUTADD +1 # MCTBS DON'T CHANGE NOUNADD
|
|
TCF PUTADD +1 # MCTBI DON'T CHANGE NOUNADD
|
|
PUTADD TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
|
|
CAF ND1
|
|
TS DSPCOUNT
|
|
CA NOUNREG
|
|
TCF UPDAT1
|
|
|
|
TS VERBREG
|
|
UPDATVB XCH Q
|
|
TS UPDATRET
|
|
CAF VD1
|
|
# Page 329
|
|
TS DSPCOUNT
|
|
CA VERBREG
|
|
UPDAT1 TC POSTJUMP # CAN'T USE SWCALL TO GO TC DSPDECVN, SINCE
|
|
CADR GOVNUPDT # UPDATVB CAN ITSELF BE CALLED BY SWCALL.
|
|
TC UPDATRET
|
|
|
|
GOALMCYC TC ALMCYCLE # NEEDED BECAUSE BANKJUMP CAN'T HANDLE F/F.
|
|
|
|
GODSPALM TC POSTJUMP
|
|
CADR DSPALARM
|
|
|
|
# Page 330
|
|
# NOUN TABLES
|
|
#
|
|
# NOUN CODE L/40, NORMAL NOUN CASE. NOUN CODE G/E 40, MIXED NOUN CASE.
|
|
# FOR NORMAL CASE, NNADTAB CONTAINS ONE ECADR FOR EACH NOUN.
|
|
# +0 INDICATES NOUN NOT USED. - ENTRY INDICATES MACHINE CADR (E OR F) TO
|
|
# BE SPECIFIED. -1 INDICATES CHANNEL TO BE SPECIFIED. -0 INDICATES AUGMENT
|
|
# OF LAST MACHINE CADR SUPPLIED.
|
|
#
|
|
# FOR MIXED CASE, NNADTAB CONTAINS ONE INDIRECT ADDRESS (IDADDREL) IN LOW
|
|
# 10 BITS, AND THE COMPONENT CODE NUMBER IN THE HIGH 5 BITS.
|
|
#
|
|
# NNTYPTAB IS A PACKED TABLE OF THE FORM MMMMMNNNNNPPPPP.
|
|
#
|
|
# FOR THE NORMAL CASE, M'S ARE THE COMPONENT CODE NUMBER.
|
|
# N'S ARE THE SF ROUTINE CODE NUMBER.
|
|
# P'S ARE THE SF CONSTANT CODE NUMBER.
|
|
#
|
|
# MIXED-CASE, M'S ARE THE SF CONSTANT3 CODE NUMBER 3 COMPONENT CASE
|
|
# N'S ARE THE SF CONSTANT2 CODE NUMBER
|
|
# P'S ARE THE SF CONSTANT1 CODE NUMBER
|
|
# N'S ARE THE SF CONSTANT2 CODE NUMBER 2 COMPONENT CASE
|
|
# P'S ARE THE SF CONSTANT1 CODE NUMBER
|
|
# P'S ARE THE SF CONSTANT1 CODE NUMBER 1 COMPONENT CASE
|
|
#
|
|
# THERE IS ALSO AN INDIRECT ADDRESS TABLE (IDADDTAB) FOR MIXED CASE ONLY
|
|
# EACH ENTRY CONTAINS ONE ECADR. IDADDREL IS THE RELATIVE ADDRESS OF
|
|
# THE FIRST OF THESE ENTRIES.
|
|
#
|
|
# THERE IS ONE ENTRY IN THIS TABEL FOR EACH COMPONENT OF A MIXED NOUN
|
|
# THEY ARE LISTED IN ORDER OF ASCENDING K.
|
|
#
|
|
# THERE IS ALSO A SCALE FACTOR ROUTINE NUMBER TABLE (RUTMXTAB) FOR MIXED
|
|
# CASE ONLY. THERE IS ONE ENTRY PER MIXED NOUN. THE FORM IS,
|
|
#
|
|
# QQQQQRRRRRSSSSS
|
|
#
|
|
# Q'S ARE THE SF ROUTINE 3 CODE NUMBER 3 COMPONENT CASE
|
|
# R'S ARE THE SF ROUTINE 2 CODE NUMBER
|
|
# S'S ARE THE SF ROUTINE 1 CODE NUMBER
|
|
# R'S ARE THE SF ROUTINE 2 CODE NUMBER 2 COMPONENT CASE
|
|
# S'S ARE THE SF ROUTINE 1 CODE NUMBER
|
|
#
|
|
# IN OCTAL DISPLAY AND LOAD (OCT OR DEC) VERBS, EXCLUDE USE OF VERBS WHOSE
|
|
# COMPONENT NUMBER IS GREATER THAN THE NUMBER OF COMPONENTS IN NOUN.
|
|
# (ALL MACHINE ADDRESS TO BE SPECIFIED NOUNS ARE 3 COMPONENT.)
|
|
#
|
|
# IN MULTI-COMPONENT LOAD VERBS, NO MIXING OF OCTAL AND DECIMAL DATA
|
|
# COMPONENT WORDS IS ALLOWED. ALARM IF VIOLATION.
|
|
#
|
|
# IN DECIMAL LOADS OF DATA, 5 NUMERICAL CHARACTERS MUST BE KEYED IN
|
|
# BEFORE EACH ENTER. IF NOT, ALARM.
|
|
|
|
# Page 331
|
|
# DISPLAY VERBS
|
|
|
|
DSPABC CS TWO
|
|
TC COMPTEST
|
|
INDEX NOUNADD
|
|
CS 2
|
|
XCH BUF +2
|
|
DSPAB CS ONE
|
|
TC COMPTEST
|
|
INDEX NOUNADD
|
|
CS 1
|
|
XCH BUF +1
|
|
DSPA TC DECTEST
|
|
TC TSTFORDP
|
|
INDEX NOUNADD
|
|
CS 0
|
|
DSPCOM1 XCH BUF
|
|
TC DSPCOM2
|
|
DSPB CS ONE
|
|
TC DCOMPTST
|
|
INDEX NOUNADD
|
|
CS 1
|
|
TC DSPCOM1
|
|
DSPC CS TWO
|
|
TC DCOMPTST
|
|
INDEX NOUNADD
|
|
CS 2
|
|
TC DSPCOM1
|
|
DSPCOM2 CS TWO # A B C AB ABC
|
|
AD VERBREG # -1 -0 +1 +2 +3 IN A
|
|
CCS A # +0 +0 +0 +1 +2 IN A AFTER CCS
|
|
TC DSPCOM3
|
|
TC ENTEXIT
|
|
TC +1
|
|
DSPCOM3 TS DISTEM # +0 +1 +2 INTO DISTEM
|
|
INDEX A
|
|
CAF R1D1
|
|
TS DSPCOUNT
|
|
INDEX DISTEM
|
|
CS BUF
|
|
TC DSPOCTWO
|
|
XCH DISTEM
|
|
TC DSPCOM2 +2
|
|
|
|
# COMPTEST ALARMS IF COMPONENT NUMBER OF VERB (LOAD OR OCT DISPLAY) IS
|
|
# GREATER THAN THE HIGHEST COMPONENT NUMBER OF NOUN.
|
|
|
|
COMPTEST TS SFTEMP1 # VERB COMP
|
|
LXCH Q
|
|
COMPTST1 TC GETCOMP
|
|
TC LEFT5
|
|
MASK THREE # NOUN COMP
|
|
# Page 332
|
|
AD SFTEMP1 # NOUN COMP -- VERB COMP
|
|
CCS A
|
|
TC L # NOUN COMP G/ VERB COMP
|
|
TC CCSHOLE
|
|
TC GODSPALM # NOUN COMP L/ VERB COMP
|
|
NDCMPTST TC L # NOUN COMP = VERB COMP
|
|
|
|
# DCOMPTST ALARMS IF DECIMAL ONLY BIT (BIT4 OF COMP CODE NUMBER) = 1.
|
|
# IF NOT, IT PERFORMS REGULAR COMPTEST.
|
|
|
|
DCOMPTST TS SFTEMP1 # - VERB COMP
|
|
LXCH Q
|
|
TC DECTEST
|
|
TC COMPTST1
|
|
|
|
DECTEST EXTEND # ALARMS IF DEC ONLY BIT = 1 (BIT4 OF COMP
|
|
QXCH MPAC +2 # CODE NUMBER). RETURNS IF NOT.
|
|
TC GETCOMP
|
|
MASK BIT14
|
|
CCS A
|
|
TC GODSPALM
|
|
TC MPAC +2
|
|
|
|
DCTSTCYC LXCH Q # ALARMS AND RECYCLES IF DEC ONLY BIT = 1
|
|
TC GETCOMP # (BIT4 OF COMP CODE NUMBER). RETURNS
|
|
MASK BIT14 # IF NOT. USED BY LOAD VERBS.
|
|
CCS A
|
|
TC ALMCYCLE
|
|
TC L
|
|
|
|
# NOUNTEST ALARMS IF NO-LOAD BIT (BIT5 OF COMP CODE NUMBER) = 1.
|
|
# IF NOT, IT RETURNS.
|
|
|
|
NOUNTEST LXCH Q
|
|
TC GETCOMP
|
|
CCS A
|
|
TC L
|
|
TC L
|
|
TC GODSPALM
|
|
|
|
TSTFORDP LXCH Q # TEST FOR DP. IF SO, GET MINOR PART ONLY.
|
|
CA NNADTEM
|
|
AD ONE # IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
|
|
EXTEND
|
|
BZF CHANDSP
|
|
INDEX MIXBR
|
|
TC +0
|
|
TC +2 # NORMAL
|
|
# Page 333
|
|
TC L # MIXED CASE ALREADY HANDLED IN MIXNOUN
|
|
TC SFRUTNOR
|
|
TC DPTEST
|
|
TC L # NO DP
|
|
INCR NOUNADD # DP E+1 INTO NOUNADD FOR MINOR PART.
|
|
TC L
|
|
|
|
CHANDSP CA NOUNCADR
|
|
MASK LOW9
|
|
EXTEND
|
|
INDEX A
|
|
READ 0
|
|
CS A
|
|
TCF DSPCOM1
|
|
|
|
COMPICK ADRES NNTYPTEM
|
|
ADRES NNADTEM
|
|
|
|
GETCOMP INDEX MIXBR # NORMAL MIXED
|
|
CAF COMPICK -1 # ADRES NNTYPTEM ADRES NNADTEM
|
|
INDEX A
|
|
CA 0 # C(NNTYPTEM) C(NNADTEM)
|
|
MASK HI5 # GET HI5 OF NNTYPTAB (NORM) OF NNADTAB (MIX)
|
|
TC Q
|
|
|
|
DECDSP TC GETCOMP
|
|
TC LEFT5
|
|
MASK THREE
|
|
TS DECOUNT # COMP NUMBER INTO DECOUNT
|
|
DSPDCGET TS DECTEM # PICKS UP DATA
|
|
AD NOUNADD # DECTEM 1COMP +0, 2COMP +1, 3COMP +2
|
|
INDEX A
|
|
CS 0
|
|
INDEX DECTEM
|
|
XCH XREG # CAN'T USE BUF SINCE DMP USES IT.
|
|
CCS DECTEM
|
|
TC DSPDCGET # MORE TO GET
|
|
DSPDCPUT CAF ZERO # DISPLAYS DATA
|
|
TS MPAC +1 # DECOUNT 1COMP +0, 2COMP +1, 3COMP +2
|
|
TS MPAC +2
|
|
INDEX DECOUNT
|
|
CAF R1D1
|
|
TS DSPCOUNT
|
|
INDEX DECOUNT
|
|
CS XREG
|
|
TS MPAC
|
|
TC SFCONUM # 2X (SF CON NUMB) IN A
|
|
# Page 334
|
|
TS SFTEMP1
|
|
EXTEND # SWITCH BANKS TO SF CONSTANT TABLE
|
|
DCA GTSFOUTL # READING ROUTINE.
|
|
DXCH Z # LOADS SFTEMP1, SFTEMP2
|
|
INDEX MIXBR
|
|
TC +0
|
|
TC DSPSFNOR
|
|
TC SFRUTMIX
|
|
TC DECDSP3
|
|
|
|
DSPSFNOR TC SFRUTNOR
|
|
TC DECDSP3
|
|
|
|
EBANK= DSPCOUNT
|
|
GTSFOUTL 2CADR GTSFOUT
|
|
|
|
DSPDCEND TC BANKCALL # ALL SFOUT ROUTINES END HERE
|
|
CADR DSPDECWD
|
|
CCS DECOUNT
|
|
TC +2
|
|
TC ENTEXIT
|
|
TS DECOUNT
|
|
TC DSPDCPUT # MORE TO DISPLAY
|
|
|
|
DECDSP3 INDEX A
|
|
CAF SFOUTABR
|
|
TC BANKJUMP
|
|
|
|
SFOUTABR CADR PREDSPAL # ALARM IF DEC DISP WITH OCTAL ONLY NOUN
|
|
CADR DSPDCEND
|
|
CADR DEGOUTSF
|
|
CADR ARTOUTSF
|
|
CADR DP1OUTSF
|
|
CADR DP2OUTSF
|
|
CADR OPDEGOUT
|
|
CADR DP3OUTSF
|
|
CADR HMSOUT
|
|
CADR M/SOUT
|
|
CADR DP2OUTSF
|
|
CADR AROUT1SF
|
|
CADR 2INTOUT
|
|
CADR DPFRACOT
|
|
ENDRTOUT EQUALS
|
|
|
|
# THE FOLLOWING IS ATYPICAL SF ROUTINE. IT USES MPAC. LEAVES RESULTS
|
|
# IN MPAC, MPAC+1. ENDS WITH TC DSPDCEND
|
|
|
|
# Page 335
|
|
|
|
SETLOC BLANKCON +1
|
|
|
|
COUNT 40/PIN
|
|
# DEGOUTSF SCALES BY .18 THE LOW 14 BITS OF ANGLE, ADDING .18 FOR
|
|
# NUMBERS IN THE NEGATIVE (AGC) RANGE.
|
|
|
|
DEGOUTSF CAF ZERO
|
|
TS MPAC +2 # SET INDEX FOR FULL SCALE.
|
|
TC FIXRANGE
|
|
TC +2 # NO AUGMENT NEEDED (SFTEMP1 AND 2 ARE 0)
|
|
TC SETAUG # SET AUGMENTER ACCORDING TO C(MPAC +2)
|
|
TC DEGCOM
|
|
|
|
# OPDEGOUT SCALES BY .45 (THE RANGE IS 90 DEGREES) AND ADDS A 20 DEG BIAS.
|
|
|
|
OPDEGOUT CCS MPAC # RANGE IS 90 DEG
|
|
XCH MPAC # IF POS OR POS 0 THEN ADD BIAS AND
|
|
TC +3 # CORRECT FOR POSSIBLE OVERFLOW
|
|
TC NEGOPT # IF NEG NON ZERO
|
|
AD NEG1 # IF NEG ZERO SUBTRACT 1
|
|
AD 20BIAS
|
|
BIASCOM TS MPAC # TEST FOR OVERFLOW
|
|
TC +3 # NO OVFLOW
|
|
CAF BIT15 # IF OVFLOW
|
|
ADS MPAC
|
|
CAF TWO # SET MULTIPLIER TO .45
|
|
TC DEGOUTSF +1
|
|
|
|
NEGOPT XCH MPAC # NEGATIVE CASE
|
|
AD 20BIAS
|
|
CCS A
|
|
TC BIASCOM # IF POS THEN SUBTRACT 1 BECASUE OF 2SCOM
|
|
TC CCSHOLE
|
|
AD ONE # IF NEG RESTORE SUM
|
|
COM # IF NEG 0 LEAVE NEG 0
|
|
TC BIASCOM
|
|
|
|
SETAUG EXTEND # LOADS SFTEMP1 AND SFTEMP2 WITH THE
|
|
INDEX MPAC +2 # DP AUGMENTER CONSTANT
|
|
DCA DEGTAB
|
|
DXCH SFTEMP1
|
|
TC Q
|
|
|
|
FIXRANGE CCS MPAC # IF MPAC IS + RETURN TO L+1
|
|
TC Q # IF MPAC IS - RETURN TO L+2 AFTER
|
|
TC Q # MASKING OUT THE SIGN BIT
|
|
TCF +1
|
|
CS BIT15
|
|
MASK MPAC
|
|
# Page 336
|
|
TS MPAC
|
|
INDEX Q
|
|
TC 1
|
|
|
|
DEGCOM EXTEND # LOADS MULTIPLIER, DOES SHORTMP, AND
|
|
INDEX MPAC +2 # ADDS AUTMENTER.
|
|
DCA DEGTAB
|
|
DXCH MPAC # ADJUSTED ANGLE IN A
|
|
TC SHORTMP
|
|
DXCH SFTEMP1
|
|
DAS MPAC
|
|
TC SCOUTEND
|
|
|
|
DEGTAB OCT 05605 # HI PART OF .18
|
|
OCT 03656 # LOW PART OF .18
|
|
OCT 16314 # HI PART OF .45
|
|
OCT 31463 # LO PART OF .45
|
|
|
|
20BIAS OCT 16040 # 20 DEG BIAS FOR OPTICS
|
|
|
|
ARTOUTSF DXCH SFTEMP1 # ASSUMES POINT AT LEFT OF DP SFCON
|
|
DXCH MPAC
|
|
TC PRSHRTMP # IF C(A) = -0, SHORTMP FAILS TO GIVE -0.
|
|
SCOUTEND TC POSTJUMP
|
|
CADR DSPDCEND
|
|
|
|
AROUT1SF DXCH SFTEMP1 # ASSUMES POINT BETWEEN HI AND LO PARTS OF
|
|
DXCH MPAC # DP SFCON. SHIFTS RESULTS LEFT 14, BY
|
|
TC PRSHRTMP # TAKING RESULTS FROM MPAC+1, MPAC+2.
|
|
TC L14/OUT
|
|
|
|
DP1OUTSF TC DPOUT # SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
|
|
L14/OUT XCH MPAC +2 # IN SFTEMP1, SFTEMP2. THEN SCALE RESULT
|
|
XCH MPAC +1 # BY B14
|
|
TS MPAC
|
|
TC SCOUTEND
|
|
|
|
DP2OUTSF TC DPOUT # SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
|
|
TC SCOUTEND
|
|
|
|
DP3OUTSF TC DPOUT # ASSUMES POINT BETWEEN BITS 7-8 OF HIGH
|
|
CAF SIX # LEFT BY 7, ROUNDS MPAC+2 INTO MPAC+1
|
|
TC TPLEFTN # SHIFT LEFT 7.
|
|
TC SCOUTEND
|
|
|
|
# Page 337
|
|
|
|
MPAC+6 = MPAC +6 # USE MPAC +6 INSTEAD OF OVFIND
|
|
|
|
DPOUT XCH Q
|
|
TS MPAC+6
|
|
TC READLO # GET FRESH DATA FOR BOTH HI AND LO.
|
|
TC TPAGREE # MAKE DP DATA AGREE
|
|
TC DMP
|
|
ADRES SFTEMP1
|
|
TC MPAC+6
|
|
|
|
# THE FOLLOWING ROUTINE DISPLAYS TWO CONTIGUOUS SP POSITIVE INTEGERS
|
|
# AS TWO POSITIVE DECIMAL INTEGERS IN RXD1-RXD2 AND RXD4-RXD5 (RXD3 IS
|
|
# BLANKED). THE INTEGER IN THE LOWER NUMBERED ADDRESS IS DISPLAYED IN
|
|
# RXD1-RXD2.
|
|
|
|
2INTOUT TC 5BLANK # TO BLANK RXD3
|
|
TC +ON # TURN ON + SIGN
|
|
CA MPAC
|
|
TC DSPDECVN # DISPLAY 1ST INTEGER (LIKE VERB AND NOUN)
|
|
CS THREE
|
|
INDEX DECOUNT
|
|
AD R1D1 # RXD4
|
|
TS DSPCOUNT
|
|
TC READLO # GET 2ND INTEGER
|
|
CA MPAC +1
|
|
TC DSPDECVN # DISPLAY 2ND INTEGER (LIKE VERB AND NOUN)
|
|
TC POSTJUMP
|
|
CADR DSPDCEND +2
|
|
|
|
DPFRACOT TC READLO # DP FRACTION TO MPAC,+1
|
|
TC SCOUTEND
|
|
|
|
# READLO PICKS UP FRESHDATA FOR BOTH HI AND LO AND LEAVES IT IN
|
|
# MPAC, MPAC+1. THIS IS NEEDED FOR TIME DISPLAY. IT ZEROES MPAC+2, BUT
|
|
# DOES NOT FORCE TPAGREE.
|
|
|
|
READLO XCH Q
|
|
TS TEM4
|
|
INDEX MIXBR
|
|
TC +0
|
|
TC RDLONOR
|
|
INDEX DECOUNT
|
|
CA IDAD1TEM # GET IDADDTAB ENTRY FOR COMP K OF NOUN.
|
|
MASK LOW11 # E SUBK
|
|
TC SETEBANK # SET EB, LEAVE EADRES IN A
|
|
READLO1 EXTEND # MIXED NORMAL
|
|
INDEX A # C(ESUBK) C(E)
|
|
DCA 0 # C(E SUBK)+1) C(E+1)
|
|
DXCH MPAC
|
|
# Page 338
|
|
CAF ZERO
|
|
TS MPAC +2
|
|
TC TEM4
|
|
|
|
RDLONOR CA NOUNADD # E
|
|
ENDRDLO TC READLO1
|
|
|
|
BANK 42
|
|
SETLOC PINBALL3
|
|
BANK
|
|
|
|
COUNT 42/PIN
|
|
|
|
HMSOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
|
|
CADR READLO # MPAC+1.
|
|
TC TPAGREE # MAKE DP DATA AGREE.
|
|
TC SEPSECNR # LEAVE FRACT SEC/60 IN MPAC, MPAC+1. LEAVE
|
|
# WHOLE MIN IN BIT13 OF LOTEMOUT AND ABOVE
|
|
TC DMP # USE ONLY FRACT SEC/60 MOD 60
|
|
ADRES SECON2 # MULT BY .06
|
|
CAF R3D1 # GIVES CENTI-SEC/10EXP5 MOD 60
|
|
TS DSPCOUNT
|
|
TC BANKCALL # DISPLAY SEC MOD 60
|
|
CADR DSPDECWD
|
|
TC SEPMIN # REMOVE REST OF SECONDS
|
|
CAF MINCON2 # LEAVE FRACT MIN/60 IN MPAC+1. LEAVE
|
|
XCH MPAC # WHOLE HOURS IN MPAC.
|
|
TS HITEMOUT # SAVE WHOLE HOURS.
|
|
CAF MINCON2 +1
|
|
XCH MPAC +1 # USE ONLY FRACT MIN/60 MOD 60
|
|
TC PRSHRTMP # IF C(A) = -0, SHORTMP FAILS TO GIVE -0.
|
|
# MULT BY .0006
|
|
CAF R2D1 # GIVE MIN/10EXP5 MOD 60
|
|
TS DSPCOUNT
|
|
TC BANKCALL # DISPLAY MIN MOD 60
|
|
CADR DSPDECWD
|
|
EXTEND # MINUTES, SECONDS HAVE BEEN REMOVED
|
|
DCA HRCON1
|
|
DXCH MPAC
|
|
CA HITEMOUT # USE WHOLE HOURS
|
|
TC PRSHRTMP # IF C(A) = -0, SHORTMP FAILS TO GIVE -0.
|
|
# MULT BY .16384
|
|
CAF R1D1 # GIVES HOURS/10EXP5
|
|
TS DSPCOUNT
|
|
TC BANKCALL # USE REGULAR DSPDECWD WITH ROUND OFF.
|
|
CADR DSPDECWD
|
|
TC ENTEXIT
|
|
|
|
SECON1 2DEC* 1.666666666 E-4 B12* # 2EXP12/6000
|
|
# Page 339
|
|
SECON2 OCT 01727 # .06 FOR SECONDS DISPLAY
|
|
OCT 01217
|
|
MINCON2 OCT 00011 # .0006 FOR MINUTES DISPLAY
|
|
OCT 32445
|
|
MINCON1 OCT 02104 # .06..66 UPPED BY 2EXP-2B
|
|
OCT 10422
|
|
HRCON1 2DEC .16384
|
|
OCT 00000
|
|
RNDCON OCT 00062 # .5 SEC
|
|
|
|
M/SOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
|
|
CADR READLO # MPAC+1.
|
|
TC TPAGREE # MAKE DP DATA AGREE
|
|
CCS MPAC # IF MAG OF (MPAC, MPAC+1) G/ 59 M 59 S.
|
|
TC +2 # DISPLAY 59B59, WITH PROPER SIGN.
|
|
TC M/SNORM # MPAC = +0. L/ 59M58.5S
|
|
AD M/SCON1 # - HI PART OF (59M58.5) +1 FOR CCS
|
|
CCS A # MAG OF MPAC - HI PART OF (59M58.5S)
|
|
TC M/SLIMIT # G/ 59M58.5S
|
|
TC M/SNORM # ORIGINAL MPAC = -0. L/59M58.5S
|
|
TC M/SNORM # L/ 59M58.5S
|
|
CCS MPAC +1 # MAG OF MPAC = HI PART OF 59M58.5S
|
|
TC +2
|
|
TC M/SNORM # MPAC+1 = +0. L/ 59M58.5S
|
|
AD M/SCON2 # - LO PART OF (59M58.5S) +1 FOR CCS
|
|
CCS A # MAG OF MPAC+1 - LO PART OF (59M58.5S)
|
|
TC M/SLIMIT # G/ 59M58.5S
|
|
TC M/SNORM # ORIGINAL MPAC+1 = -0. L/ 49M58.5S
|
|
TC M/SNORM # L/ 59M58.5S
|
|
M/SLIMIT CCS MPAC # = 59M58.5S LIMIT
|
|
CAF M/SCON3 # MPAC CANNOT BE +/- 0 AT THIS POINT.
|
|
TC +LIMIT # FORCE MPAC, MPAC+1 TO +/- 59M58.5S
|
|
CS M/SCON3
|
|
TS MPAC # WILL DISPLAY 59M59S IN DSPDECNR
|
|
CS M/SCON3 +1
|
|
LIMITCOM TS MPAC +1
|
|
CAF NORMADR # SET RETURN TO M/SNORM+1.
|
|
TC SEPSECNR +1
|
|
+LIMIT TS MPAC
|
|
CAF M/SCON3 +1
|
|
TC LIMITCOM
|
|
M/SNORM TC SEPSEC # LEAVE FRACT SEC/60 IN MPAC,MPAC+1. LEAVE
|
|
# WHOLE MIN IN BIT13 OF LOTEMOUT AND ABOVE
|
|
CAF HISECON # USE ONLY FRACT SEC/60 MOD 60
|
|
TC SHORTMP # MULT BY .6 + 2EXP-14
|
|
CS THREE # GIVES SEC/100 MOD 60
|
|
ADS DSPCOUNT # DSPCOUNT ALREADY SET TO RXD1
|
|
TC BANKCALL # DISPLAY SEC MOD 60 IN D4D5.
|
|
# Page 340
|
|
CADR DSPDC2NR
|
|
CAF ZERO
|
|
TS CODE
|
|
CS TWO
|
|
INDEX DECOUNT
|
|
AD R1D1 # RXD3
|
|
TS COUNT
|
|
TC BANKCALL # BLANK MIDDLE CHAR
|
|
CADR DSPIN
|
|
TC SEPMIN # REMOVE REST OF SECONDS
|
|
XCH MPAC +1 # LEAVE FRACT MIN/60 IN MPAC+1
|
|
EXTEND # USE ONLY FRACT MIN/60 MOD 60
|
|
MP HIMINCON # MULT BY .6 + 2EXP-7
|
|
DXCH MPAC # GIVES MIN/100 MOD 60
|
|
INDEX DECOUNT
|
|
CAF R1D1 # RXD1
|
|
TS DSPCOUNT
|
|
TC BANKCALL # DISPLAY MIN MOD 60 IN D1D2.
|
|
CADR DSPDC2NR
|
|
TC POSTJUMP
|
|
CADR DSPDCEND +2
|
|
|
|
HISECON OCT 23147 # .6 + 2EXP-14
|
|
HIMINCON OCT 23346 # .6 + 2EXP-7
|
|
|
|
M/SCON1 OCT 77753 # - HI PART OF (59M58.5S)
|
|
M/SCON2 OCT 41126 # - LO PART OF (59M58.5S)
|
|
NORMADR ADRES M/SNORM +1
|
|
M/SCON3 OCT 00025 # 59M 59.5S
|
|
OCT 37016
|
|
|
|
SEPSEC CCS MPAC +1 # IF +, ROUND BY ADDING .5 SEC
|
|
TCF POSEC # IF -, ROUND BY SUBTRACING .5 SEC
|
|
TCF POSEC # FINDS TIME IN MPAC, MPAC+1
|
|
TCF +1 # ROUNDS OFF BY +/- .5 SEC
|
|
EXTEND # LEAVES WHOLE MIN IN BIT13 OF
|
|
DCS RNDCON -1 # LOTEMOUT AND ABOVE.
|
|
SEPSEC1 DAS MPAC # LEAVES FRACT SEC/60 IN MPAC, MPAC+1.
|
|
TCF SEPSECNR
|
|
POSEC EXTEND
|
|
DCA RNDCON -1
|
|
TCF SEPSEC1
|
|
SEPSECNR XCH Q # THIS ENTRY AVOIDS ROUNDING BY .5 SEC
|
|
TS SEPSCRET
|
|
TC DMP # MULT BY 2EXP12/6000
|
|
ADRES SECON1 # GIVES FRACT SEC/60 IN BIT12 OF MPAC+1
|
|
EXTEND # AND BELOW.
|
|
DCA MPAC # SAVE MINUTES AND HOURS
|
|
DXCH HITEMOUT
|
|
# Page 341
|
|
TC TPSL1
|
|
TC TPSL1 # GIVES FRACT SEC/60 IN MPAC+1, MPAC+2.
|
|
CAF ZERO
|
|
XCH MPAC +2 # LEAVE FRACT SEC/60 IN MPAC, MPAC+1.
|
|
XCH MPAC +1
|
|
XCH MPAC
|
|
TC SEPSCRET
|
|
|
|
SEPMIN XCH Q # FIND WHOLE MINUTES IN BIT13
|
|
TS SEPMNRET # OF LOTEMOUT AND ABOVE.
|
|
CA LOTEMOUT # REMOVES REST OF SECONDS.
|
|
EXTEND # LEAVES FRACT MIN/60 IN MPAC+1.
|
|
MP BIT3 # LEAVES WHOLE HOURS IN MPAC.
|
|
EXTEND # SR 12, THROW AWAY LP.
|
|
MP BIT13 # SR 2, TAKE FROM LP. = SL 12.
|
|
LXCH MPAC +1 # THIS FORCES BITS 12-1 TO 0 IF +.
|
|
# FORCES BITS 12-1 TO 1 IF -.
|
|
CA HITEMOUT
|
|
TS MPAC
|
|
TC DMP # MULT BY 1/15
|
|
ADRES MINCON1 # GIVES FRACT MIN/60 IN MPAC+1.
|
|
ENDSPMIN TC SEPMNRET # GIVES WHOLE HOURS IN MPAC.
|
|
|
|
# THIS IS A SPECIAL PURPOSE VERB FOR DISPLAYING A DOUBLE PRECISION AGC
|
|
# WORD AS 10 DECIMAL DIGITS ON THE AGC DISPLAY PANEL. IT CAN BE USED WITH
|
|
# ANY NOUN, EXCEPT MIXED NOUNS. IT DISPLAYS THE CONTENTS
|
|
# OF THE REGISTER NOUNADD IS POINTING TO. IF USED WITH NOUNS WHICH ARE
|
|
# INHERENTLY NOT DP SUCH AS THE CDU COUNTERS THE DISPLAY WILL BE GARBAGE.
|
|
# DISPLAY IS IN R1 AND R2 ONLY WITH THE SIGN IN R1.
|
|
|
|
SETLOC ENDRDLO +1
|
|
|
|
COUNT 40/PIN
|
|
|
|
DSPDPDEC INDEX MIXBR
|
|
TC +0
|
|
TC +2 # NORMAL NOUN
|
|
TC DSPALARM
|
|
EXTEND
|
|
INDEX NOUNADD
|
|
DCA 0
|
|
DXCH MPAC
|
|
CAF R1D1
|
|
TS DSPCOUNT
|
|
CAF ZERO
|
|
TS MPAC +2
|
|
TC TPAGREE
|
|
# Page 342
|
|
TC DSP2DEC
|
|
ENDDPDEC TC ENTEXIT
|
|
|
|
# Page 343
|
|
|
|
# LOAD VERBS IF ALARM CONDITION IS DETECTED DURING EXECUTE,
|
|
# CHECK FAIL LIGHT IS TURNED ON AND ENDOFJOB. IF ALARM CONDITION IS
|
|
# DETECTED DURING ENTER OF DATA, CHECK FAIL IS TURNED ON AND IT RECYCLES
|
|
# TO EXECUTE OF ORIGINAL LOAD VERB. RECYCLE CAUSED BY 1) DECIMAL MACHINE
|
|
# CADR 2) MIXTURE OF OCTAL/DECIMAL DATA 3) OCTAL DATA INTO DECIMAL
|
|
# ONLY NOUN 4) DEC DATA INTO OCT ONLY NOUN 5) DATA TOO LARGE FOR SCALE
|
|
# 6) FEWER THAN 3 DATA WORDS LOADED FOR HRS, MIN, SEC NOUN.8 (2)-(6) ALARM
|
|
# AND RECYCLE OCCUR AT FINAL ENTER OF SET. (1) ALARM AND RECYCLE OCCUR AT
|
|
# ENTER OF CADR.
|
|
|
|
SETLOC ENDRTOUT
|
|
|
|
COUNT 41/PIN
|
|
|
|
ABCLOAD CS TWO
|
|
TC COMPTEST
|
|
TC NOUNTEST # TEST IF NOUN CAN BE LOADED.
|
|
CAF VBSP1LD
|
|
TC UPDATVB -1
|
|
TC REQDATX
|
|
CAF VBSP2LD
|
|
TC UPDATVB -1
|
|
TC REQDATY
|
|
CAF VBSP3LD
|
|
TC UPDATVB -1
|
|
TC REQDATZ
|
|
|
|
PUTXYZ CS SIX # TEST THAT THE 3 DATA WORDS LOADED ARE
|
|
TC ALLDC/OC # ALL DEC OR ALL OCT.
|
|
EXTEND
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
|
|
DXCH Z # ROUTINE.
|
|
CAF ZERO # X COMP
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 0
|
|
CAF ONE # Y COMP
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 1
|
|
CAF TWO # Z COMP
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 2
|
|
CS SEVEN # IF NOUN 7 HAS JUST BEEN LOADED, SET
|
|
AD NOUNREG # FLAG BITS AS SPECIFIED.
|
|
EXTEND
|
|
BZF +2
|
|
# Page 344
|
|
TC LOADLV
|
|
CA XREG # ECADR OF ERASABLE CELL
|
|
TC SETNCADR +1 # SET EBANK, NOUNADD
|
|
CA ZREG # ZERO TO RESET BITS. NON-ZERO TO SET BITS
|
|
INHINT
|
|
EXTEND
|
|
BZF BITSOFF
|
|
INDEX NOUNADD
|
|
CS 0
|
|
MASK YREG # BITS TO BE PROCESSED
|
|
INDEX NOUNADD
|
|
ADS 0 # SET BITS.
|
|
TC BITSOFF1
|
|
|
|
BITSOFF CS YREG # BITS TO BE PROCESSED
|
|
INDEX NOUNADD
|
|
MASK 0
|
|
INDEX NOUNADD
|
|
TS 0 # RESET BITS
|
|
BITSOFF1 RELINT
|
|
TC LOADLV
|
|
|
|
ABLOAD CS ONE
|
|
TC COMPTEST
|
|
TC NOUNTEST # TEST IF NOUN CAN BE LOADED
|
|
CAF VBSP1LD
|
|
TC UPDATVB -1
|
|
TC REQDATX
|
|
CAF VBSP2LD
|
|
TC UPDATVB -1
|
|
TC REQDATY
|
|
PUTXY CS FIVE # TEST THAT THE 2 DATA WORDS LOADED ARE
|
|
TC ALLDC/OC # ALL DEC OR ALL OCT.
|
|
EXTEND
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
|
|
DXCH Z # ROUTINE.
|
|
CAF ZERO # X COMP
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 0
|
|
CAF ONE # Y COMP
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 1
|
|
TC LOADLV
|
|
|
|
ALOAD TC REQDATX
|
|
EXTEND
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
|
|
DXCH Z # ROUTINE.
|
|
CAF ZERO # X COMP
|
|
# Page 345
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 0
|
|
TC LOADLV
|
|
|
|
BLOAD CS ONE
|
|
TC COMPTEST
|
|
CAF BIT15 # SET CLPASS FOR PASS0 ONLY
|
|
TS CLPASS
|
|
TC REQDATY
|
|
EXTEND
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
|
|
DXCH Z # ROUTINE.
|
|
CAF ONE
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 1
|
|
TC LOADLV
|
|
|
|
CLOAD CS TWO
|
|
TC COMPTEST
|
|
CAF BIT15 # SET CLPASS FOR PASS0 ONLY
|
|
TS CLPASS
|
|
TC REQDATZ
|
|
EXTEND
|
|
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
|
|
DXCH Z # ROUTINE.
|
|
CAF TWO
|
|
TC PUTCOM
|
|
INDEX NOUNADD
|
|
TS 2
|
|
TC LOADLV
|
|
|
|
LOADLV CAF ZERO
|
|
TS DECBRNCH
|
|
CS ZERO
|
|
TS LOADSTAT
|
|
TC RELDSP # RELEASE FOR PRIORITY DISPLAY PROBLEM.
|
|
CS VD1 # TO BLOCK NUMERICAL CHARACTERS AND
|
|
TS DSPCOUNT # CLEARS AFTER A COMPLETED LOAD
|
|
TC POSTJUMP # AFTER COMPLETED LOAD, GO TO RECALTST
|
|
CADR RECALTST # TO SEE IF THERE IS RECALL FROM ENDIDLE.
|
|
|
|
VBSP1LD DEC 21 # VB21 = ALOAD
|
|
VBSP2LD DEC 22 # VB22 = BLOAD
|
|
VBSP3LD DEC 23 # VB23 = CLOAD
|
|
|
|
ALLDC/OC TS DECOUNT # TESTS THAT DATA WORDS LOADED ARE EITHER
|
|
CS DECBRNCH # ALL DEC OR ALL OCT. ALARMS IF NOT.
|
|
# Page 346
|
|
TS SR
|
|
CS SR
|
|
CS SR # SHIFTED RIGHT 2
|
|
CCS A # DEC COMP BITS IN LOW 3
|
|
TCF +2 # SOME ONES IN LOW 3
|
|
TC Q # ALL ZEROS. ALL OCTAL. OK
|
|
AD DECOUNT # DEC COMP = 7 FOR 3COMP, =6 FOR 2COMP
|
|
EXTEND # (BUT IT HAS BEEN DECREMENTED BY CCS)
|
|
BZF +2 # MUST MATCH 6 FOR 3COMP, 5 FOR 2COMP.
|
|
TC ALMCYCLE # ALARM AND RECYCLE.
|
|
GOQ TC Q # ALL REQUIRED ARE DEC. OK
|
|
|
|
SFRUTNOR XCH Q # GETS SF ROUTINE NUMBER FOR NORMAL CASE
|
|
TS EXITEM # CAN'T USE L FOR RETURN. TSTFORDP USES L.
|
|
CAF MID5
|
|
MASK NNTYPTEM
|
|
TC RIGHT5
|
|
TC EXITEM # SF ROUTINE NUMBER IN A
|
|
|
|
SFRUTMIX XCH Q # GETS SF ROUTINE NUMBER FOR MIXED CASE
|
|
TS EXITEM
|
|
INDEX DECOUNT
|
|
CAF DISPLACE # PUT TC GOQ, TC RIGHT5, OR TC LEFT5 IN L
|
|
TS L
|
|
INDEX DECOUNT
|
|
CAF LOW5 # LOW5, MID5, OR HI5 IN A
|
|
MASK RUTMXTEM # GET HI5, MID5, OR LOW5 OF RUTMXTAB ENTRY
|
|
INDEX L
|
|
TC 0
|
|
|
|
# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
|
|
|
|
SFRET1 TC EXITEM # SF ROUTINE NUMBER IN A
|
|
|
|
SFCONUM XCH Q # GETS 2X(SF CONSTANT NUMBER)
|
|
TS EXITEM
|
|
INDEX MIXBR
|
|
TC +0
|
|
TC CONUMNOR # NORMAL NOUN
|
|
INDEX DECOUNT # MIXED NOUN
|
|
CAF DISPLACE
|
|
TS L # PUT TC GOQ, TC RIGHT5, OR TC LEFT5 IN L
|
|
INDEX DECOUNT
|
|
CAF LOW5
|
|
MASK NNTYPTEM
|
|
INDEX L
|
|
TC 0
|
|
|
|
# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
|
|
|
|
SFRET DOUBLE # 2X(SF CONSTANT NUMBER) IN A
|
|
TC EXITEM
|
|
|
|
# Page 347
|
|
|
|
DISPLACE TC GOQ
|
|
TC RIGHT5
|
|
TC LEFT5
|
|
|
|
CONUMNOR CAF LOW5 # NORMAL NOUN ALWAYS GETS LOW 5 OF
|
|
MASK NNTYPTEM # NNTYPTAB FOR SF CONUM.
|
|
DOUBLE
|
|
TC EXITEM # 2X(SF CONSTANT NUMBER) IN A
|
|
|
|
PUTCOM TS DECOUNT
|
|
XCH Q
|
|
TS DECRET
|
|
CAF ZERO
|
|
TS MPAC+6
|
|
INDEX DECOUNT
|
|
XCH XREGLP
|
|
TS MPAC +1
|
|
INDEX DECOUNT
|
|
XCH XREG
|
|
TS MPAC
|
|
INDEX MIXBR
|
|
TC +0
|
|
TC PUTNORM # NORMAL NOUN
|
|
|
|
# IF MIXNOUN, PLACE ADDRESS FOR COMPONENT K INTO NOUNADD, SET EBANK BITS.
|
|
|
|
INDEX DECOUNT # GET IDADDTAB ENTRY FOR COMPONENT K
|
|
CA IDAD1TEM # OF NOUN.
|
|
MASK LOW11 # (ECADR)SUBK FOR CURRENT COMP OF NOUN
|
|
TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
|
|
EXTEND # C(NOUNADD) IN A UPON RETURN
|
|
SU DECOUNT # PLACE (ESUBK)-K INTO NOUNADD
|
|
TS NOUNADD
|
|
CCS DECBRNCH
|
|
TC PUTDECSF # + DEC
|
|
TC DCTSTCYC # +0 OCTAL
|
|
TC SFRUTMIX # TEST IF DEC ONLY BIT = 1. IF SO,
|
|
TC DPTEST # ALARM AND RECYCLE. IF NOT, CONTINUE.
|
|
TC PUTCOM2 # NO DP
|
|
# TEST FOR DP SCALE FOR OCT LOAD. IF SO,
|
|
# +0 INTO MAJOR PART. SET NOUNADD FOR
|
|
# LOADING OCTAL WORD INTO MINOR PART.
|
|
PUTDPCOM INCR NOUNADD # DP (ESUBK)-K+1 OR E+1
|
|
CA NOUNADD # NOUNADD NOW SET FOR MINOR PART
|
|
ADS DECOUNT # (ESUBK)+1 OR E+1 INTO DECOUNT
|
|
CAF ZERO # NOUNADD SET FOR MINOR PART
|
|
INDEX DECOUNT
|
|
TS 0 -1 # ZERO MAJOR PART(ESUBK OR E)
|
|
TC PUTCOM2
|
|
|
|
PUTNORM TC SETNADD # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
|
|
# Page 348
|
|
CCS DECBRNCH
|
|
TC PUTDECSF # + DEC
|
|
TC DCTSTCYC # +0 OCTAL
|
|
TC SFRUTNOR # TEST IF DEC ONLY BIT (garbled). IF SO,
|
|
TC DPTEST # ALARM AND RECYCLE. IF NOT, CONTINUE.
|
|
TC PUTCOM2 -4 # NO DP
|
|
CAF ZERO # DP
|
|
TS DECOUNT
|
|
TC PUTDPCOM
|
|
|
|
CA NNADTEM
|
|
AD ONE # IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
|
|
EXTEND
|
|
BZF CHANLOAD
|
|
PUTCOM2 XCH MPAC
|
|
TC DECRET
|
|
|
|
EBANK= DSPCOUNT
|
|
GTSFINLC 2CADR GTSFIN
|
|
|
|
CHANLOAD CS SEVEN # DON'T LOAD CHAN 7. (IT'S SUPERBANK).
|
|
AD NOUNCADR
|
|
EXTEND
|
|
BZF LOADLV
|
|
CA NOUNCADR
|
|
MASK LOW9
|
|
XCH MPAC
|
|
EXTEND
|
|
INDEX MPAC
|
|
WRITE 0
|
|
TC LOADLV
|
|
|
|
# PUTDECSF FINDS MIXBR AND DECOUNT STILL SET FROM PUTCOM.
|
|
|
|
PUTDECSF TC SFCONUM # 2X(SF CON NUMB) IN A
|
|
TS SFTEMP1
|
|
EXTEND # SWITCH BANKS TO SF CONSTANT TABLE
|
|
DCA GTSFINLC # READING ROUTINE.
|
|
DXCH Z # LOADS SFTEMP1, SFTEMP2.
|
|
INDEX MIXBR
|
|
TC +0
|
|
TC PUTSFNOR
|
|
TC SFRUTMIX
|
|
TC PUTDCSF2
|
|
PUTSFNOR TC SFRUTNOR
|
|
|
|
PUTDCSF2 INDEX A
|
|
# Page 349
|
|
CAF SFINTABR
|
|
TC BANKJUMP # SWITCH BANKS FOR EXPANSION ROOM
|
|
SFINTABR CADR GOALMCYC # ALARM AND RECYCLE IF DEC LOAD
|
|
# WITH OCTAL ONLY NOUN.
|
|
CADR BINROUND
|
|
CADR DEGINSF
|
|
CADR ARTHINSF
|
|
CADR DPINSF
|
|
CADR DPINSF2
|
|
CADR OPTDEGIN
|
|
CADR DPINSF # SAME AS ARITHDP1
|
|
CADR HMSIN
|
|
CADR DSPALARM # MIN/SEC CAN'T BE LOADED.
|
|
CADR DPINSF4
|
|
CADR ARTIN1SF
|
|
CADR DSPALARM # 2INTOUT CAN'T BE LOADED.
|
|
CADR DPFRACIN
|
|
ENDRUTIN EQUALS
|
|
|
|
# SCALE FACTORS FOR THOSE ROUTINES NEEDING THEM ARE AVAILABLE IN SFTEMP1.
|
|
# ALL SFIN ROUTINES USE MPAC MPAC+1. LEAVE RESULT IN A. END WITH TC DECRET.
|
|
|
|
SETLOC ENDDPDEC +1
|
|
|
|
COUNT 40/PIN
|
|
|
|
# DEGINSF APPLIES 1000/180 * 5.55555(10) = 5.43434(8)
|
|
|
|
DEGINSF TC DMP # SF ROUTINE FOR DEC DEGREES
|
|
ADRES DEGCON1 # MULT BY 5.5 5(10)X2EXP-3
|
|
CCS MPAC +1 # THIS ROUNDS OFF MPAC+1 BEFORE SHIFT
|
|
CAF BIT11 # LEFT 3, AND CAUSES 360.00 TO OF/UF
|
|
TC +2 # WHEN SHIFTED LEFT AND ALARM.
|
|
CS BIT11
|
|
AD MPAC +1
|
|
TC 2ROUND +2
|
|
TC TPSL1 # LEFT 1
|
|
DEGINSF2 TC TPSL1 # LEFT 2
|
|
TC TESTOFUF
|
|
TC TPSL1 # RETURNS IF NO OF/UF (LEFT3)
|
|
CCS MPAC
|
|
TC SIGNFIX # IF +, GO TO SIGNFIX
|
|
TC SIGNFIX # IF +0, GO TO SIGNFIX
|
|
COM # IF -, USE -MAGNITUDE +1
|
|
TS MPAC # IF -0, USE +0
|
|
SIGNFIX CCS MPAC+6
|
|
TC SGNTO1 # IF OVERFLOW
|
|
TC ENDSCALE # NO OVERFLOW/UNDERFLOW
|
|
# Page 350
|
|
CCS MPAC # IF UF FORCE SIGN TO 0 EXCEPT -180
|
|
TC CCSHOLE
|
|
TC NEG180
|
|
TC +1
|
|
XCH MPAC
|
|
MASK POSMAX
|
|
TS MPAC
|
|
ENDSCALE TC POSTJUMP
|
|
CADR PUTCOM2
|
|
|
|
NEG180 CS POSMAX
|
|
TC ENDSCALE -1
|
|
|
|
SGNTO1 CS MPAC # IF OF FORCE SIGN TO 1
|
|
MASK POSMAX
|
|
CS A
|
|
TC ENDSCALE -1
|
|
|
|
DEGCON1 2DEC 5.555555555 B-3
|
|
|
|
DEGCON2 2DEC 2.222222222 B-2
|
|
|
|
NEG.2 OCT -06250 # = .197753906 I.E., THE BIAS SCALED
|
|
|
|
ARTHINSF TC DMP # SCALES MPAC, +1 BY SFTEMP1, SFTEMP2.
|
|
ADRES SFTEMP1 # ASSUMES POINT BETWEEN HI AND LO PARTS
|
|
XCH MPAC +2 # OF SFCON. SHIFTS RESULTS LEFT BY 14.
|
|
XCH MPAC +1 # (BY TAKING RESULTS FROM MPAC+1, MPAC+2)
|
|
XCH MPAC
|
|
EXTEND
|
|
BZF BINROUND
|
|
TC ALMCYCLE # TOO LARGE A LOAD. ALARM AND RECYCLE.
|
|
BINROUND TC 2ROUND
|
|
TC TESTOFUF
|
|
TC ENDSCALE # RETURNS IF NO OF/UF
|
|
|
|
ARTIN1SF TC DMP # SCALES MPAC, +1 BY SFTEMP1, SFTEMP2.
|
|
ADRES SFTEMP1 # ROUNDS MPAC+1 INTO MPAC.
|
|
TC BINROUND
|
|
|
|
OPTDEGIN CCS MPAC # OPTICS SCALING ROUTINE
|
|
TC +4
|
|
TC +3
|
|
TC ALMCYCLE # REJECT -- INPUT. ALARM AND RECYCLE.
|
|
TC ALMCYCLE # REJECT -- INPUT. ALARM AND RECYCLE.
|
|
OPDEGIN2 CAF NEG.2 # RANGE IS 90 DEG
|
|
ADS MPAC # SUBTRACT BIAS
|
|
# Page 351
|
|
TC DMP # MULT BY 100 / 45 B-2
|
|
ADRES DEGCON2
|
|
CAF BIT12 # ROUND AS IN DEGINSF
|
|
AD MPAC +1
|
|
TC 2ROUND +2
|
|
TC DEGINSF2
|
|
|
|
DPINSF TC DMP # SCALES MPAC, MPAC +1 BY SFTEMP1,
|
|
ADRES SFTEMP1 # SFTEMP. STORES LOW PART OF RESULT
|
|
XCH MPAC +2 # IN (E SUBK) +1 OR E+1
|
|
DOUBLE
|
|
TS MPAC +2
|
|
CAF ZERO
|
|
AD MPAC +1
|
|
TC 2ROUND +2
|
|
TC TESTOFUF
|
|
DPFRACIN INDEX MIXBR # RETURNS IF NO OF/UF
|
|
TC +0
|
|
TC DPINORM
|
|
CA DECOUNT # MIXED NOUN
|
|
DPINCOM AD NOUNADD # MIXED NORMAL
|
|
TS Q # E SUBK E
|
|
XCH MPAC +1
|
|
INDEX Q
|
|
TS 1 # PLACE LOW PART IN
|
|
TC ENDSCALE # (E SUBK) +1 MIXED
|
|
|
|
DPINORM CAF ZERO # E +1 NORMAL
|
|
TC DPINCOM
|
|
|
|
DPINSF2 TC DMP # ASSUMES POINT BETWEEN BITS 7-8 OF HIGH
|
|
ADRES SFTEMP1 # PART OF SF CONST. DPINSF2 SHIFTS RESULTS
|
|
CAF SIX # LEFT BY 7, ROUNDS MPAC+2 INTO MPAC+1
|
|
TC TPLEFTN # SHIFT LEFT 7.
|
|
TC DPINSF +2
|
|
|
|
DPINSF4 TC DMP # ASSUMES POINT BETWEEN BITS 11-12 OF HIGH
|
|
ADRES SFTEMP1 # PART OF SF CONST. DPINSF2 SHIFTS RESULTS
|
|
CAF TWO # LEFT BY 3, ROUNDS MPAC+2 INTO MPAC+1.
|
|
TC TPLEFTN # SHIFT LEFT 3.
|
|
TC DPINSF +2
|
|
|
|
TPLEFTN XCH Q # SHIFTS MPAC, +1, +2 LEFT N. SETS OVFIND
|
|
TS SFTEMP2 # TO +1 FOR OF, -1 FOR UF.
|
|
XCH Q # CALL WITH N-1 IN A.
|
|
LEFTNCOM TS SFTEMP1 # LOOP TIME .37 MSEC.
|
|
TC TPSL1
|
|
CCS SFTEMP1
|
|
# Page 352
|
|
TC LEFTNCOM
|
|
TC SFTEMP2
|
|
|
|
2ROUND XCH MPAC +1
|
|
DOUBLE
|
|
TS MPAC +1
|
|
TC Q # IF MPAC+1 DOES NOT OF/UF
|
|
AD MPAC
|
|
TS MPAC
|
|
TC Q # IF MPAC DOES NOT OF/UF
|
|
TS MPAC+6
|
|
2RNDEND TC Q
|
|
|
|
TESTOFUF CCS MPAC+6 # RETURNS IF NO OF/UF
|
|
TC ALMCYCLE # OF ALARM AND RECYCLE.
|
|
TC Q
|
|
TC ALMCYCLE # UF ALARM AND RECYCLE.
|
|
|
|
SETLOC ENDSPMIN +1
|
|
|
|
COUNT 42/PIN
|
|
|
|
HMSIN TC ALL3DEC # IF ALL 3 WORDS WERE NOT LOADED, ALARM.
|
|
TC DMP # XREG, XREGLP (=HOURS) WERE ALREADY PUT
|
|
ADRES WHOLECON # INTO MPAC, MPAC+1.
|
|
TC RND/TST # ROUND OFF TO WHOLE HRS IN MPAC+1.
|
|
CAF ZERO # ALARM IF MPAC NON ZERO (G/ 16383).
|
|
TS MPAC +2
|
|
CAF HRCON
|
|
TS MPAC
|
|
CAF HRCON +1
|
|
XCH MPAC +1
|
|
TC SHORTMP
|
|
TC MPACTST # ALARM IF MPAC NON ZERO (G/ 745)
|
|
DXCH MPAC +1 # STORE HOURS CONTRIBUTION
|
|
DXCH HITEMIN
|
|
CA YREG # PUT YREG, YREGLP INTO MPAC, +1.
|
|
LXCH YREGLP
|
|
DXCH MPAC
|
|
TC DMP
|
|
ADRES WHOLECON
|
|
TC RND/TST # ROUND OFF TO WHOLE MIN IN MPAC+1
|
|
CS 59MIN # ALARM IF MPAC NON ZERO (G/16383)
|
|
TC SIZETST # ALARM IF MPAC+1 G/ 59MIN
|
|
XCH MPAC +1
|
|
EXTEND
|
|
MP MINCON # LEAVES MINUTES CONTRIBUTION IN A,L
|
|
# Page 353
|
|
DAS HITEMIN # ADD IN MINUTES CONTRIBUTION
|
|
EXTEND # IF THIS DAS OVERFLOWS, G/ 745 HR,39MIN
|
|
BZF +2
|
|
TC ALMCYCLE
|
|
CA ZREG # PUT ZREG, ZREGLP INTO MPAC +1.
|
|
LXCH ZREGLP
|
|
DXCH MPAC
|
|
TC DMP
|
|
ADRES WHOLECON
|
|
TC RND/TST # ROUND OFF TO WHOLE CENTI-SEC IN MPAC+1
|
|
CS 59.99SEC # ALARM IF MPAC NON ZERO (G/163.83 SEC)
|
|
TC SIZETST # ALARM IF MPAC+1 G/59.99 SEC
|
|
DXCH HITEMIN # ADD IN SECONDS CONTRIBUTION
|
|
DAS MPAC # IF THIS DAS OVERFLOWS,
|
|
EXTEND # G/ 745 HR, 39 MIN, 14.59 SEC.
|
|
BZF +2
|
|
TC ALMCYCLE # ALARM AND RECYCLE
|
|
CAF ZERO
|
|
TS MPAC +2
|
|
TC TPAGREE
|
|
DXCH MPAC
|
|
INDEX NOUNADD
|
|
DXCH 0
|
|
TC POSTJUMP
|
|
CADR LOADLV
|
|
|
|
WHOLECON OCT 00006 # (10EXP5/2EXP14)2EXP14
|
|
OCT 03240
|
|
HRCON OCT 00025 # 1 HOUR IN CENTI-SEC
|
|
OCT 37100
|
|
MINCON OCT 13560 # 1 MINUTE IN CENTI-SEC
|
|
59MIN OCT 00073 # 59 AS WHOLE
|
|
59.99SEC OCT 13557 # 5999 SENTI-SEC
|
|
|
|
RND/TST XCH MPAC +2 # ROUNDS MPAC+2 INTO MPAC+1.
|
|
DOUBLE # ALARMS IF MPAC NOT 0
|
|
TS MPAC +2
|
|
CAF ZERO
|
|
AD MPAC +1
|
|
TS MPAC +1
|
|
CAF ZERO
|
|
AD MPAC # CAN'T OVFLOW
|
|
XCH MPAC
|
|
MPACTST CCS MPAC # ALARM IF MPAC NON ZERO
|
|
TC ALMCYCLE # ALARM AND RECYCLE
|
|
TC Q
|
|
TC ALMCYCLE # ALARM AND RECYCLE
|
|
TC Q
|
|
|
|
# Page 354
|
|
|
|
SIZETST TS MPAC +2 # CALLED WITH - CON IN A
|
|
CCS MPAC +1 # GET MAG OF MPAC+1
|
|
AD ONE
|
|
TCF +2
|
|
AD ONE
|
|
AD MPAC +2
|
|
EXTEND # MAG OF MPAC+1 - CON
|
|
BZMF +2
|
|
TC ALMCYCLE # MAG OF MPAC+1 G/ CON. ALARM AND RECYCLE.
|
|
TC Q # MAG OF MPAC+1 L/= CON
|
|
|
|
# ALL3DEC TESTS THAT ALL 3 WORDS ARE LOADED IN DEC (FOR HMSIN).
|
|
# ALARM IF NOT. (TEST THAT BITS 3,4,5 OF DECBRNCH ARE ALL = 1).
|
|
|
|
ALL3DEC CS OCT34BAR # GET BITS 3,4,5 IN A
|
|
MASK DECBRNCH # GET BITS 3,4,5 OF DECBRNCH IN A
|
|
AD OCT34BAR # BITS 3,4,5 OF DECBRNCH MUST ALL = 1
|
|
CCS A
|
|
TC FORCEV25
|
|
OCT34BAR OCT 77743
|
|
TC FORCEV25
|
|
TC Q
|
|
|
|
FORCEV25 CS OCT31 # FORCE VERB 25 TO BE EXECUTED BY RECYCLE
|
|
TS VERBSAVE # IN CASE OPERATOR EXECUTED A LOWER LOAD
|
|
TC ALMCYCLE # VERB. ALARM AND RECYCLE.
|
|
ENDHMSS EQUALS
|
|
|
|
# Page 355
|
|
# MONITOR ALLOWS OTHER KEYBOARD ACTIVITY. IT IS ENDED BY VERB TERMINATE,
|
|
# VERB PROCEED WITHOUT DATA, VERB RESEQUENCE,
|
|
# ANOTHER MONITOR, OR ANY NVSUB CALL THAT PASSES THE DSPLOCK (PROVIDED
|
|
# THAT THE OPERATOR HAS SOMEHOW ALLOWED THE ENDING OF A MONITOR WHICH
|
|
# HE HAS INITIATED THROUGH THE KEYBOARD).
|
|
#
|
|
# MONITOR ACTION IS SUSPENDED, BUT NOT ENDED, BY ANY KEYBOARD ACTION.
|
|
# EXCEPT ERROR LIGHT RESET. IT BEGINS AGAIN WHEN KEY RELEASE IS PERFORMED.
|
|
# MONITOR SAVES THE NOUN AND APPROPRIATE DISPLAY VERB IN MONSAVE. IT SAVES
|
|
# NOUNCADR IN MONSAVE1, IF NOUN = MACHINE CADR TO BE SPECIFIED. BIT 15 OF
|
|
# MONSAVE1 IS THE KILL MONITOR SIGNAL (KILLER BIT). BIT 14 OF MONSAVE1
|
|
# INDICATES THE CURRENT MONITOR WAS EXTERNALLY INITIATED (EXTERNAL
|
|
# MONITOR BIT). IT IS TURNED OFF BY RELDSP AND KILMONON.
|
|
#
|
|
# MONSAVE INDICATES IF MONITOR IS ON (+=ON, +0=OFF)
|
|
# IF MONSAVE IS +, MONITOR ENTERS NO REQUEST, BUT TURNS KILLER BIT OFF.
|
|
# IF MONSAVE IS +0, MONITOR ENTERS REQUEST AND TURNS KILLER BIT OFF.
|
|
#
|
|
# NVSUB (IF EXTERNAL MONITOR BIT IS OFF), VB=PROCEED WITHOUT DATA,
|
|
# VB=RESEQUENCE, AND VB=TERMINATE TURN KILL MONITOR BIT ON.
|
|
#
|
|
# IF KILLER BIT IS ON, MONREQ ENTERS NO FURTHER REQUESTS, ZEROS MONSAVE
|
|
# AND MONSAVE1 (TURNING OFF KILLER BIT AND EXTERNAL MONITOR BIT).
|
|
#
|
|
# MONITOR DOESN'T TEST FOR MATBS SINCE NVSUB CAN HANDLE INTERNAL MATBS NOW.
|
|
|
|
SETLOC ENDRUTIN
|
|
|
|
COUNT 41/PIN
|
|
|
|
MONITOR CS BIT15/14
|
|
MASK NOUNCADR
|
|
MONIT1 TS MPAC +1 # TEMP STORAGE
|
|
CS ENTEXIT
|
|
AD ENDINST
|
|
CCS A
|
|
TC MONIT2
|
|
BIT15/14 OCT 60000
|
|
TC MONIT2
|
|
CAF BIT14 # EXTERNALLY INITIATED MONITOR.
|
|
ADS MPAC +1 # SET BIT 14 FOR MONSAVE1.
|
|
CAF ZERO
|
|
TS MONSAVE2 # ZERO NVMONOPT OPTIONS
|
|
MONIT2 CAF LOW7
|
|
MASK VERBREG
|
|
TC LEFT5
|
|
TS CYL
|
|
CS CYL
|
|
XCH CYL
|
|
AD NOUNREG
|
|
TS MPAC # TEMP STORAGE
|
|
# Page 356
|
|
CAF ZERO
|
|
TS DSPLOCK # +0 INTO DSPLOCK SO MONITOR CAN RUN.
|
|
CCS CADRSTOR # TURN OFF KR LITE IF CADRSTOR AND DSPLIST
|
|
TC +2 # ARE BOTH EMPTY. (LITE COMES ON IF NEW
|
|
TC RELDSP1 # MONITOR IS KEYED IN OVER OLD MONITOR.)
|
|
INHINT
|
|
CCS MONSAVE
|
|
TC +5 # IF MONSAVE WAS +, NO REQUEST
|
|
CAF ONE # IF MONSAVE WAS 0, REQUEST MONREQ
|
|
TC WAITLIST
|
|
EBANK= DSPCOUNT
|
|
2CADR MONREQ
|
|
|
|
DXCH MPAC # PLACE MONITOR VERB AND NOUN INTO MONSAVE
|
|
DXCH MONSAVE # ZERO THE KILL MONITOR BIT
|
|
RELINT # SET UP EXTERNAL MONITOR BIT
|
|
TC ENTRET
|
|
|
|
MONREQ TC LODSAMPT # CALLED BY WAITLIST
|
|
CCS MONSAVE1 # TIME IS SNATCHED N RUPT FOR NOUN 65
|
|
TC +4 # IF KILLER BIT = 0, ENTER REQUESTS
|
|
TC +3 # IF KILLER BIT = 0, ENTER REQUESTS
|
|
TC KILLMON # IF KILLER BIT = 1, NO REQUESTS.
|
|
TC KILLMON # IF KILLER BIT = 1, NO REQUESTS.
|
|
CAF MONDEL
|
|
TC WAITLIST # ENTER WAITLIST REQUEST FOR MONREQ
|
|
EBANK= DSPCOUNT
|
|
2CADR MONREQ
|
|
|
|
CAF CHRPRIO
|
|
TC NOVAC # ENTER EXEC REQUEST FOR MONDO
|
|
EBANK= DSPCOUNT
|
|
2CADR MONDO
|
|
|
|
TC TASKOVER
|
|
|
|
KILLMON CAF ZERO # ZERO MONSAVE AND TURN KILLER BIT OFF
|
|
TS MONSAVE
|
|
TS MONSAVE1 # TURN OFF KILL MONITOR BIT.
|
|
TC TASKOVER # TURN OFF EXTERNAL MONITOR BIT.
|
|
MONDEL OCT 144 # FOR 1 SEC MONITOR INTERVALS.
|
|
|
|
MONDO CCS MONSAVE1 # CALLED BY EXEC
|
|
TC +4 # IF KILLER BIT = 0, CONTINUE
|
|
TC +3 # IF KILLER BIT = 0, CONTINUE
|
|
TC ENDOFJOB # IN CASE TERMINATE CAME SINCE LAST MONREQ
|
|
TC ENDOFJOB # IN CASE TERMINATE CAME SINCE LAST MONREQ
|
|
CCS DSPLOCK
|
|
# Page 357
|
|
TC MONBUSY # NVSUB IS BUSY
|
|
CAF LOW7
|
|
MASK MONSAVE
|
|
TC UPDATNN -1 # PLACE NOUN INTO NOUNREG AND DISPLAY IT
|
|
CAF MID7
|
|
MASK MONSAVE # CHANGE MONITOR VERB TO DISPLAY VERB
|
|
AD MONREF # -DEC10, STARTING IN BIT8
|
|
TS EDOP # RIGHT 7
|
|
CA EDOP
|
|
TS VERBREG
|
|
CAF MONBACK # SET RETURN TO PASTEVB AFTER DATA DISPLAY
|
|
TS ENTRET
|
|
CS BIT15/14
|
|
MASK MONSAVE1 # PUT ECADR INTO MPAC +2. INTMCTBS WILL
|
|
TS MPAC +2 # DISPLAY IT AND SET NOUNCADR, NOUNADD,
|
|
ENDMONDO TC TESTNN # EBANK.
|
|
|
|
BLOCK 2
|
|
|
|
SETLOC FFTAG8
|
|
BANK
|
|
|
|
COUNT 02/PIN
|
|
|
|
PASTEVB CAF MID7
|
|
MASK MONSAVE2 # NVMONOPT PASTE OPTION
|
|
EXTEND
|
|
BZF +2
|
|
TC PASTEOPT # PASTE PLEASE VERB FOR NVMONOPT
|
|
CA MONSAVE # PASTE MONITOR VERB -- PASTE OPTION IS 0
|
|
PASTEOPT TS EDOP # RIGHT 7
|
|
CA EDOP # PLACE MONITOR VERB OR PLEASE VERB INTO
|
|
TC BANKCALL # VERBREG AND DISPLAY IT.
|
|
CADR UPDATVB -1
|
|
CAF ZERO # ZERO REQRET SO THAT PASTED VERBS CAN
|
|
TS REQRET # BE EXECUTED BY OPERATOR.
|
|
CA MONSAVE2
|
|
TC BLANKSUB # PROCESS NVMONOPT BLANK OPTION IF ANY
|
|
TC +1
|
|
ENDPASTE TC ENDOFJOB
|
|
|
|
MID7 OCT 37600
|
|
|
|
SETLOC ENDMONDO +1
|
|
COUNT 41/PIN
|
|
|
|
MONREF OCT 75377 # -DEC10, STARTING IN BIT8
|
|
MONBACK ADRES PASTEVB
|
|
|
|
# Page 358
|
|
MONBUSY TC RELDSPON # TURN KEY RELEASE LIGHT
|
|
TC ENDOFJOB
|
|
|
|
# DSPFMEM IS USED TO DISPLAY (IN OCTAL) ANY FIXED REGISTER.
|
|
# IT IS USED WITH NOUN = MACHINE CADR TO BE SPECIFIED. THE FCADR OF THE
|
|
# DESIRED LOCATION IS THEN PUNCHED IN. IT HANDLES F/F (FCADR 4000-7777)
|
|
#
|
|
# FOR BANKS L/E 27, THIS IS ENOUGH.
|
|
#
|
|
# FOR BANKS G/E 30, THE THIRD COMPONENT OF NOUN 26 (PRIO, ADRES, BBCON)
|
|
# MUST BE PRELOADED WITH THE DESIRED SUPERBANK BITS (BITS 5,6,7).
|
|
# V23N26 SHOULD BE USED.
|
|
#
|
|
# SUMMARY
|
|
# FOR BANKS L/E 27, V27N01E(FCADR)E
|
|
# FOR BANKS G/E 30, V23N26E(SUPERBITS)E V27N01E(FCADR)E
|
|
|
|
DSPFMEM CAF R1D1 # IF F/F, DATACALL USES BANK 02 OR 03.
|
|
TS DSPCOUNT
|
|
CA DSPTEM1 +2 # SUPERBANK BITS WERE PRELOADED INTO
|
|
TS L # 3RD COMPONENT OF NOUN 26.
|
|
CA NOUNCADR # ORIGINAL FCADR LOADED STILL IN NOUNCADR.
|
|
TC SUPDACAL # CALL WITH FCADR IN A, SUPERBITS IN L.
|
|
TC DSPOCTWO
|
|
ENDSPF TC ENDOFJOB
|
|
|
|
# Page 359
|
|
# WORD DISPLAY ROUTINES
|
|
SETLOC TESTOFUF +4
|
|
COUNT 40/PIN
|
|
|
|
DSPSIGN XCH Q
|
|
TS DSPWDRET
|
|
CCS MPAC
|
|
TC +8D
|
|
TC +7
|
|
AD ONE
|
|
TS MPAC
|
|
TC -ON
|
|
CS MPAC +1
|
|
TS MPAC +1
|
|
TC DSPWDRET
|
|
TC +ON
|
|
TC DSPWDRET
|
|
|
|
DSPRND EXTEND # ROUND BY 5 EXP-6
|
|
DCA DECROUND -1
|
|
DAS MPAC
|
|
EXTEND
|
|
BZF +4
|
|
EXTEND
|
|
DCA DPOSMAX
|
|
DXCH MPAC
|
|
TC Q
|
|
|
|
# DSPDECWD CONVERTS C(MPAC,MPAC+1) INTO A SIGN AND 5 CHAR DECIMAL
|
|
# STARTING IN LOC SPECIFIED IN DSPCOUNT. IT ROUNDS BY 5 EXP-6.
|
|
|
|
DSPDECWD XCH Q
|
|
TS WDRET
|
|
TC DSPSIGN
|
|
TC DSPRND
|
|
CAF FOUR
|
|
DSPDCWD1 TS WDCNT
|
|
CAF BINCON
|
|
TC SHORTMP
|
|
TRACE1 INDEX MPAC
|
|
CAF RELTAB
|
|
MASK LOW5
|
|
TS CODE
|
|
CAF ZERO
|
|
XCH MPAC +2
|
|
XCH MPAC +1
|
|
TS MPAC
|
|
XCH DSPCOUNT
|
|
TRACE1S TS COUNT
|
|
# Page 360
|
|
CCS A # DECREMENT DSPCOUNT EXCEPT AT +0
|
|
TS DSPCOUNT
|
|
TC DSPIN
|
|
CCS WDCNT
|
|
TC DSPDCWD1
|
|
CS VD1
|
|
TS DSPCOUNT
|
|
TC WDRET
|
|
|
|
OCT 00000
|
|
DECROUND OCT 02476
|
|
|
|
# DSPDECNR CONVERTS C(MPAC,MPAC+1) INTO A SIGN AND 5 CHAR DECIMAL
|
|
# STARTING IN LOC SPECIFIED IN DSPCOUNT. IT DOES NOT ROUND
|
|
|
|
DSPDECNR XCH Q
|
|
TS WDRET
|
|
TC DSPSIGN
|
|
TC DSPDCWD1 -1
|
|
|
|
# DSPDC2NR CONVERTS C(MPAC,MPAC+1) INTO A SIGN AND 2 CHAR DECIMAL
|
|
# STARTING IN LOC SPECIFIED IN DSPCOUNT. IT DOES NOT ROUND
|
|
|
|
DSPDC2NR XCH Q
|
|
TS WDRET
|
|
TC DSPSIGN
|
|
CAF ONE
|
|
TC DSPDCWD1
|
|
|
|
# DSP2DEC CONVERTS C(MPAC) AND C(MPAC+1) INTO A SIGN AND 10 CHAR DECIMAL
|
|
# STARTING IN THE LOC SPECIFIED IN DSPCOUNT.
|
|
|
|
DSP2DEC XCH Q
|
|
TS WDRET
|
|
CAF ZERO
|
|
TS CODE
|
|
CAF THREE
|
|
TC 11DSPIN # -R2 OFF
|
|
CAF FOUR
|
|
TC 11DSPIN # +R2 OFF
|
|
TC DSPSIGN
|
|
CAF R2D1
|
|
END2DEC TC DSPDCWD1
|
|
|
|
# DSPDECVN DISPLAYS C(A) UPON ENTRY AS A 2 CHAR DECIMAL BEGINNING IN THE
|
|
# DSP LOC SPECIFIED IN DSPCOUNT.
|
|
#
|
|
# C(A) SHOULD BE IN FORM N X 2EXP-14. THIS IS SCALED TO FORM N/100 BEFORE
|
|
# DISPLAY CONVERSION.
|
|
# Page 361
|
|
|
|
DSPDECVN EXTEND
|
|
MP VNDSPCON # MULT BY .01
|
|
LXCH MPAC # TAKE RESULTS FROM L. (MULT BY 2EXP14).
|
|
CAF ZERO
|
|
TS MPAC +1
|
|
XCH Q
|
|
TS WDRET
|
|
TC DSPDC2NR +3 # NO SIGN, NO ROUND, 2 CHAR
|
|
|
|
VNDSPCON OCT 00244 # .01 ROUNDED UP
|
|
|
|
GOVNUPDT TC DSPDECVN # THIS IS NOT FOR GENERAL USE. REALLY PART
|
|
TC POSTJUMP # OF UPDATVB.
|
|
CADR UPDAT1 +2
|
|
|
|
ENDECVN EQUALS
|
|
|
|
SETLOC ENDSPF +1
|
|
COUNT 41/PIN
|
|
|
|
# DSPOCTWD DISPLAYS C(A) UPON ENTRY AS A 5 CHAR OCT STARTING IN THE DSP
|
|
# CHAR SPECIFIED IN DSPCOUNT. IT STOPS AFTER 5 CHAR HAVE BEEN DISPLAYED.
|
|
|
|
DSPOCTWO TS CYL
|
|
XCH Q
|
|
TS WDRET # MUST USE SAME RETURN AS DSP2BIT.
|
|
CAF BIT14 # TO BLANK SIGNS
|
|
ADS DSPCOUNT
|
|
CAF FOUR
|
|
WDAGAIN TS WDCNT
|
|
CS CYL
|
|
CS CYL
|
|
CS CYL
|
|
CS A
|
|
MASK DSPMSK
|
|
INDEX A
|
|
CAF RELTAB
|
|
MASK LOW5
|
|
TS CODE
|
|
XCH DSPCOUNT
|
|
TS COUNT
|
|
CCS A # DECREMENT DSPCOUNT EXCEPT AT +0
|
|
TS DSPCOUNT
|
|
TC POSTJUMP
|
|
CADR DSPOCTIN
|
|
OCTBACK CCS WDCNT
|
|
TC WDAGAIN # +
|
|
DSPLV CS VD1 # TO BLOCK NUMERICAL CHARACTERS, CLEARS,
|
|
# Page 362
|
|
TS DSPCOUNT # AND SIGNS AFTER A COMPLETED DISPLAY.
|
|
TC WDRET
|
|
|
|
DSPMSK = SEVEN
|
|
|
|
# DSP2BIT DISPLAYS C(A) UPON ENTRY AS A 2 CHAR OCT BEGINNING IN THE DSP
|
|
# LOC SPECIFIED IN DSPCOUNT BY PRE CYCLING RIGHT C(A) AND USING THE LOGIC
|
|
# OF THE 5 CHAR OCTAL DISPLAY
|
|
|
|
DSP2BIT TS CYR
|
|
XCH Q
|
|
TS WDRET
|
|
CAF ONE
|
|
TS WDCNT
|
|
CS CYR
|
|
CS CYR
|
|
XCH CYR
|
|
TS CYL
|
|
TC WDAGAIN +5
|
|
|
|
# FOR DSPIN PLACE 0/25 OCT INTO COUNT, 5 BIT RELAY CODE INTO CODE. BOTH
|
|
# ARE DESTROYED. IF BIT14 OF COUNT IS 1, SIGN IS BLANKED WITH LEFT CHAR.
|
|
# FOR DSPIN1 PLACE 0,1 INTO BIT11 OF CODE, 2 INTO COUNT, REL ADDRESS OF
|
|
# DSPTAB ENTRY INTO DSREL.
|
|
|
|
SETLOC ENDECVN
|
|
|
|
COUNT 40/PIN
|
|
|
|
DSPIN XCH Q # CAN'T USE L FOR RETURN, SINCE MANY OF THE
|
|
TS DSEXIT # ROUTINES CALLING DSPIN USE L AS RETURN.
|
|
CAF LOW5
|
|
MASK COUNT
|
|
TS SR
|
|
XCH SR
|
|
TS DSREL
|
|
CAF BIT1
|
|
MASK COUNT
|
|
CCS A
|
|
TC +2 # LEFT IF COUNT IS ODD
|
|
TC DSPIN1 -1 # RIGHT IF COUNT IS EVEN
|
|
XCH CODE
|
|
TC SLEFT5 # DOES NOT USE CYL
|
|
TS CODE
|
|
CAF BIT14
|
|
MASK COUNT
|
|
CCS A
|
|
CAF TWO # BIT14 = 1, BLANK SIGN
|
|
# Page 363
|
|
AD ONE # BIT14 = 0, LEAVE SIGN ALONE
|
|
TS COUNT # +0 INTO COUNT FOR RIGHT
|
|
# +1 INTO COUNT FOR LEFT (SIGN LEFT ALONE)
|
|
# +3 INTO COUNT FOR LEFT (TO BLANK SIGN)
|
|
DSPIN1 INHINT
|
|
INDEX DSREL
|
|
CCS DSPTAB
|
|
TC +2 # IF +
|
|
TC CCSHOLE
|
|
AD ONE # IF -
|
|
TS DSMAG
|
|
INDEX COUNT
|
|
MASK DSMSK
|
|
EXTEND
|
|
SU CODE
|
|
EXTEND
|
|
BZF DSLV # SAME
|
|
DFRNT INDEX COUNT
|
|
CS DSMSK # MASK WITH 77740, 76037, 76777, OR 74037
|
|
MASK DSMAG
|
|
AD CODE
|
|
CS A
|
|
INDEX DSREL
|
|
XCH DSPTAB
|
|
EXTEND
|
|
BZMF DSLV # DSPTAB ENTRY WAS -
|
|
INCR NOUT # DSPTAB ENTRY WAS +
|
|
DSLV RELINT
|
|
TC DSEXIT
|
|
|
|
DSMSK OCT 37
|
|
OCT 1740
|
|
OCT 2000
|
|
OCT 3740
|
|
|
|
# FOR 11DSPIN, PUT REL ADDRESS OF DSPTAB ENTRY INTO A, 1 IN BIT11 OR 0 IN
|
|
# BIT11 OF CODE.
|
|
|
|
11DSPIN TS DSREL
|
|
CAF TWO
|
|
TS COUNT
|
|
XCH Q # MUST USE SAME RETURN AS DSPIN
|
|
TS DSEXIT
|
|
TC DSPIN1
|
|
|
|
DSPOCTIN TC DSPIN # SO DSPOCTWD DOESN'T USE SWCALL
|
|
CAF +2
|
|
TC BANKJUMP
|
|
# Page 364
|
|
ENDSPOCT CADR OCTBACK
|
|
|
|
# DSPALARM FINDS TC NVSUBEND IN ENTRET FOR NVSUB INITIATED ROUTINES
|
|
# ABORT WITH 01501.
|
|
#
|
|
# DSPALARM FINDS TC ENDOFJOB IN ENTRET FOR KEYBOARD INITIATED ROUTINES.
|
|
# DC TC ENTRET.
|
|
|
|
PREDSPAL CS VD1
|
|
TS DSPCOUNT
|
|
DSPALARM CS NVSBENDL
|
|
AD ENTEXIT
|
|
EXTEND
|
|
BZF CHARALRM +2
|
|
CS MONADR # IF THIS IS A MONITOR, KILL IT
|
|
AD ENTEXIT
|
|
EXTEND
|
|
BZF +2
|
|
TC CHARALRM
|
|
TC KILMONON
|
|
TC FALTON
|
|
TC PASTEVB # PUT MONITOR VERB BACK IN VERBREG
|
|
CHARALRM TC FALTON # NOT NVSUB INITATED TURN ON OPR ERROR
|
|
TC ENDOFJOB
|
|
TC P00DOO
|
|
OCT 01501
|
|
MONADR GENADR PASTEVB
|
|
NVSBENDL TC NVSUBEND
|
|
|
|
# ALMCYCLE TURNS ON CHECK FAIL LIGHT, REDISPLAYS THE ORIGINAL VERB THAT
|
|
# WAS EXECUTED, AND RECYCLES TO EXECUTE THE ORIGINAL VERB/NOUN COMBINATION
|
|
# THAT WAS LAST EXECUTED. USED FOR BAD DATA DURING LOAD VERBS AND BY
|
|
# MCTBS. ALSO BY MMCHANG IF 2 NUMERICAL CHARACTERS WERE NOT PUNCHED IN
|
|
# FOR MM CODE
|
|
|
|
SETLOC MID7 +1
|
|
COUNT 02/PIN
|
|
|
|
ALMCYCLE TC FALTON # TURN ON CHECK FAIL LIGHT.
|
|
CS VERBSAVE # GET ORIGINAL VERB THAT WAS EXECUTED
|
|
TS REQRET # SET FOR ENTPAS0
|
|
TC BANKCALL # PUTS ORIGINAL VERB INTO VERBREG AND
|
|
CADR UPDATVB -1 # DISPLAYS IT IN VERB LIGHTS.
|
|
TC POSTJUMP
|
|
ENDALM CADR ENTER
|
|
|
|
# MMCHANG USES NOUN DISPLAY UNTIL ENTER. THEN IT USES MODE DISP.
|
|
# IT GOES TO MODROUT WITH THE NEW M M CODE IN A, BUT NOT DISPLAYED IN
|
|
# Page 365
|
|
# MM LIGHTS.
|
|
#
|
|
# IT DEMANDS 2 NUMERICAL CHARACTERS BE PUNCHED IN FOR NEW MM CODE.
|
|
# IF NOT, IT RECYCLES.
|
|
|
|
SETLOC DSP2BIT +10D
|
|
|
|
COUNT 41/PIN
|
|
|
|
MMCHANG TC REQMM # ENTPASHI ASSUMES THE TC REQMM AT MMCHANG
|
|
# IF THIS MOVES AT ALL, MUST CHANGE
|
|
# MMADREF AT ENTPASHI.
|
|
CAF BIT5 # OCT20 = ND2.
|
|
AD DSPCOUNT # DSPCOUNT MUST = -ND2.
|
|
EXTEND # DEMAND THAT 2 NUM CHAR WERE PUNCHED IN.
|
|
BZF +2
|
|
TC ALMCYCLE # DSPCOUNT NOT= -ND2. ALARM AND RECYCLE.
|
|
CAF ZERO # DSPCOUNT = -ND2.
|
|
XCH NOUNREG
|
|
TS MPAC
|
|
CAF ND1
|
|
TS DSPCOUNT
|
|
TC BANKCALL
|
|
CADR 2BLANK
|
|
CS VD1 # BLOCK NUM CHAR IN
|
|
TS DSPCOUNT
|
|
CA MPAC
|
|
TC POSTJUMP
|
|
CADR MODROUTB # GO THRU STANDARD LOC.
|
|
|
|
MODROUTB = V37
|
|
REQMM CS Q
|
|
TS REQRET
|
|
CAF ND1
|
|
TS DSPCOUNT
|
|
CAF ZERO
|
|
TS NOUNREG
|
|
TC BANKCALL
|
|
CADR 2BLANK
|
|
TC FLASHON
|
|
CAF ONE
|
|
TS DECBRNCH # SET FOR DEC
|
|
TC ENTEXIT
|
|
|
|
# VBRQEXEC ENTERS REQUEST TO EXEC FOR ANY ADDRESS WITH ANY PRIORITY.
|
|
# IT DOES ENDOFJOB AFTER ENTERING REQUEST. DISPLAY SYST IS RELEASED.
|
|
# IT ASSUMES NOUN 26 HAS BEEN PRELOADED WITH
|
|
# COMPONENT 1 PRIORITY (BITS 10-14) BIT1=0 FOR NOVAC, BIT1=1 FOR FINDVAC.
|
|
# COMPONENT 2 JOB ADRES (12 BIT)
|
|
# Page 366
|
|
# COMPONENT 3 BBCON
|
|
|
|
VBRQEXEC CAF BIT1
|
|
MASK DSPTEM1
|
|
CCS A
|
|
TC SETVAC # IF BIT1 = 1, FINDVAC
|
|
CAF TCNOVAC # IF BIT1 = 0, NOVAC
|
|
REQEX1 TS MPAC # TC NOVAC OR TC FINDVAC INTO MPAC
|
|
CS BIT1
|
|
MASK DSPTEM1
|
|
TS MPAC +4 # PRIO INTO MPAC+4 AS A TEMP
|
|
REQUESTC TC RELDSP
|
|
CA ENDINST
|
|
TS MPAC +3 # TC ENDOFJOB INTO MPAC+3
|
|
EXTEND
|
|
DCA DSPTEM1 +1 # JOB ADRES INTO MPAC+1
|
|
DXCH MPAC +1 # BBCON INTO MPAC+2
|
|
CA MPAC +4 # PRIO IN A
|
|
INHINT
|
|
TC MPAC
|
|
|
|
SETVAC CAF TCFINDVC
|
|
TC REQEX1
|
|
|
|
# VBRQWAIT ENTERS REQUEST TO WAITLIST FOR ANY ADDRESS WITH ANY DELAY.
|
|
# IT DOES ENDOFJOB AFTER ENTERING REQUEST. DISPLAY SYST IS RELEASED.
|
|
# IT ASSUMES NOUN 26 HAS BEEN PRELOADED WITH
|
|
# COMPONENT 1 DELAY (LOW BITS)
|
|
# COMPONENT 2 TASK ADRES (12 BIT)
|
|
# COMPONENT 3 BBCON
|
|
|
|
VBRQWAIT CAF TCWAIT
|
|
TS MPAC # TC WAITLIST INTO MPAC
|
|
CA DSPTEM1 # TIME DELAY
|
|
ENDRQWT TC REQUESTC -1
|
|
|
|
# REQUESTC WILL PUT TASK ADRES INTO MPAC+1, BBCON INTO MPAC+2,
|
|
# TC ENDOFJOB INTO MPAC+3. IT WILL TAKE TIME DELAY OUT OF MPAC+4 AND
|
|
# LEAVE IT IN A, INHINT AND TC MPAC.
|
|
|
|
SETLOC NVSBENDL +1
|
|
COUNT 40/PIN
|
|
|
|
VBPROC CAF ONE # PROCEED WITHOUT DATA
|
|
TS LOADSTAT
|
|
TC KILMONON # TURN ON KILL MONITOR BIT
|
|
TC RELDSP
|
|
TC FLASHOFF
|
|
TC RECALTST # SEE IF THERE IS ANY RECALL FROM ENDIDLE
|
|
|
|
# Page 367
|
|
VBTERM CS ONE
|
|
TC VBPROC +1 # TERM VERB SETS LOADSTAT NEG
|
|
|
|
# PROCKEY PERFORMS THE SAME FUNCTION AS VBPROC. IT MUST BE CALLED UNDER
|
|
# EXECUTIVE CONTROL, WITH CHRPRIO.
|
|
|
|
PROCKEY CAF ZERO # SET REQRET FOR ENTER PASS 0.
|
|
TS REQRET
|
|
CS VD1 # BLOCK NUMERICAL CHARACTERS, SIGNS, CLEAR
|
|
TS DSPCOUNT
|
|
TC VBPROC
|
|
|
|
# VBRESEQ WAKES ENDIDLE AT SAME LINE AS FINAL ENTER OF LOAD (L+3).
|
|
# (MAIN USE IS INTENDED AS RESPONSE TO INTERNALLY INITIATED FLASHING
|
|
# DISPLAYS IN ENDIDLE. SHOULD NOT BE USED WITH LOAD VERBS, PLEASE PERFORM,
|
|
# OR PLEASE MARK VERBS BECAUSE THEY ALREADY USE L+3 IN ANOTHER CONTEXT.)
|
|
|
|
VBRESEQ CS ZERO # MAKE IT LOOK LIKE DATA IN.
|
|
TC VBPROC +1
|
|
|
|
# FLASH IS TURNED OFF BY PROCEED WITHOUT DATA, TERMINATE, RESEQUENCE,
|
|
# END OF LOAD.
|
|
# Page 368
|
|
|
|
# KEY RELEASE ROUTINE
|
|
#
|
|
# THIS ROUTINE ALWAYS TURNS OFF THE UPACT LIGHT AND ALWAYS CLEARS DSPLOCK.
|
|
#
|
|
# THE HIGHEST PRIORITY FUNCTION OF THE KEY RELEASE BUTTON IS THE
|
|
# UNSUSPENDING OF A SUSPENDED MONITOR WHICH WAS EXTERNALLY INITIATED.
|
|
# THIS FUNCTION IS ACCOMPLISHED BY CLEARING DSPLOCK AND TURNING OFF
|
|
# THE KEY RELEASE LIGHT IF BOTH DSPLIST AND CADRSTOR ARE EMPTY.
|
|
#
|
|
# IF NO SUCH MONITOR EXISTS, THEN RELDSP IS EXECUTED TO CLEAR DSPLOCK
|
|
# AND THE EXTERNAL MONITOR BIT (FREEING THE DISPLAY SYSTEM FOR INTERNAL
|
|
# USE), TURN OFF THE KEY RELEASE LIGHT, AND WAKE UP ANY JOB IN DSPLIST.
|
|
#
|
|
# IN ADDITION IF THERE IS A JOB IN ENDIDLE, THEN CONTROL IS TRANSFERRED
|
|
# TO PINBRNCH (IN DISPLAY INTERFACE ROUTINE) TO RE-EXECUTE THE SERIES OF
|
|
# NVSUB CALLS ETC. THAT PRECEDED THE ENDIDLE CALL STILL AWAITING RESPONSE.
|
|
# THIS FEATURE IS INTENDED FOR USE WHEN THE OPERATOR HAS BEEN REQUESTED TO
|
|
# RESPOND TO SOME INTERNAL ACTION THAT USED ENDIDLE, BUT HE HAS WRITTEN
|
|
# OVER THE INFORMATION ON THE DISPLAY PANEL BY SOME DISPLAYS OF HIS OWN
|
|
# INITIATION WHICH DO NOT SERVE AS RESPONSES. HITTING KEYRLSE WILL
|
|
# RE-ESTABLISH THE DISPLAYS TO THE STATE THEY WERE IN BEOFRE HE OBSCURED
|
|
# THEM, SO THAT HE CAN SEE THE WAITING REQUEST. THIS WORKS ONLY FOR
|
|
# INTERNAL PROGRAMS THAT USED ENDIDLE THROUGH MARGARET'S DISPLAY
|
|
# SUBROUTINES.
|
|
|
|
VBRELDSP CS BIT3
|
|
EXTEND
|
|
WAND DSALMOUT # TURN OF UPACT LITE
|
|
CCS 21/22REG # OLD DSPLOCK
|
|
CAF BIT14
|
|
MASK MONSAVE1 # EXTERNAL MONITOR BIT (EMB)
|
|
CCS A
|
|
TC UNSUSPEN # OLD DSPLOCK AND EMB BOTH 1, UNSUSPEND,
|
|
TSTLTS4 TC RELDSP # NOT UNSUSPENDING EXTERNAL MONITOR
|
|
CCS CADRSTOR # RELEASE DISPLAY SYSTEM AND
|
|
TC +2 # DO RE-ESTABLISH IF CADRSTOR IS FULL.
|
|
TC ENDOFJOB
|
|
TC POSTJUMP
|
|
CADR PINBRNCH
|
|
UNSUSPEN CAF ZERO # EXTERNAL MONITOR IS SUSPENDED,
|
|
TS DSPLOCK # JUST UNSUSPEND IT BY CLEARING DSPLOCK.
|
|
CCS CADRSTOR # TURN KEY RELEASE LIGHT OFF IF BOTH
|
|
TC ENDOFJOB # CADRSTOR AND DSPLIST ARE EMPTY.
|
|
TC RELDSP1
|
|
TC ENDOFJOB
|
|
|
|
ENDRELDS EQUALS
|
|
|
|
# Page 369
|
|
# NVSUB IS USED FOR SUBROUTINE CALLS FROM WITHIN COMPUTER. IT CAN BE
|
|
# USED TO CALL THE COMBINATION OF ANY DISPLAY, LOAD, OR MONITOR VERB
|
|
# TOGETHER WITH ANY NOUN AVAILABLE TO THE KEYBOARD.
|
|
# PLACE 0VVVVVVVNNNNNNN INTO A.
|
|
# V'S ARE THE 7-BIT VERB CODE. N'S ARE THE 7-BIT NOUN CODE.
|
|
#
|
|
# IF NVSUB IS CALLED WITH THE FOLLOWING NEGATIVE NUMBERS (RATHER THAN THE
|
|
# VERB-NOUN CODE) IN A, THEN THE DISPLAY IS BLANKED AS FOLLOWS ---
|
|
# -4 FULL BLANK, -3 LEAVE MODE, -2 LEAVE MODE AND VERB, -1 BLANK R'S ONLY.
|
|
#
|
|
# NVSUB CAN BE USED WITH MACHINE CADR TO BE SPECIFIED BY PLACING THE CADR INTO
|
|
# MPAC+2 BEFORE THE STANDARD NVSUB CALL.
|
|
#
|
|
# NVSUB RETURNS TO 2+ CALLING LOC AFTER PERFORMING TASK, IF DISPLAY
|
|
# SYSTEM IS AVAILABLE. THE NEW NOUN AND VERB CODES ARE DISPLAYED.
|
|
# IF V'S =0, THE NEW NOUN CODE IS DISPLAYED ONLY (RETURN WITH NO FURTHER
|
|
# ACTION). IF N'S =0, THE NEW VERB CODE IS DISPLAYED ONLY (RETURN WITH NO
|
|
# FURTHER ACTION).
|
|
#
|
|
# IT RETURNS TO 1+ CALLING LOC WITHOUT PERFORMING TASK, IF DISPLAY
|
|
# SYSTEM IS BLOCKED (NOTHING IS DISPLAYED IN THIS CASE).
|
|
# IT DOES TC ABORT (WITH OCT 01501) IF IT ENCOUNTERS A DISPLAY PROGRAM
|
|
# ALARM CONDITION BEFORE RETURN TO CALLER.
|
|
#
|
|
# THE DISPLAY SYSTEM IS BLOCKED BY THE DEPRESSION OF ANY
|
|
# KEY, EXCEPT ERROR LIGHT RESET.
|
|
# IT IS RELEASED BY THE KEY RELEASE BUTTON, ALL EXTENDED VERBS,
|
|
# PROCEED WITHOUT DATA, TERMINATE, RESEQUENCE, INITIALIZE EXECUTIVE,
|
|
# RECALL PART OF RECALTST IF ENDIDLE WAS USED,
|
|
# VB = REQUEST EXECUTIVE, VB = REQUEST WAITLIST,
|
|
# MONITOR SET UP.
|
|
#
|
|
# THE DISPLAY SYSTEM IS ALSO BLOCKED BY THE EXTERNAL MONITOR BIT, WHICH
|
|
# INDICATES AND EXTERNALLY INITIATED MONITOR IS RUNNING (SEE MONITOR).
|
|
#
|
|
# A NVSUB CALL THAT PASSES DSPLOCK AND THE EXTERNAL MONITOR BIT ENDS OLD
|
|
# MONITOR.
|
|
#
|
|
# DSPLOCK IS THE INTERLOCK FOR USE OF KEYBOARD AND DISPLAY SYSTEM WHICH
|
|
# LOCKS OUT INTERNAL USE WHENEVER THERE IS EXTERNAL KEYBOARD ACTION.
|
|
#
|
|
# NVSUB SHOULD BE USED TWICE IN SUCCESSION FOR `PLEASE PERFORM' SITUATIONS
|
|
# (SIMILARLY FOR PLEASE MARK). FIRST PLACE THE CODED NUMBER FOR WHAT
|
|
# ACTION IS DESIRED OF OPERATOR INTO THEREGISTERS REFERRED TO BY THE
|
|
# `CHECKLIST' NOUN. GO TO NVSUB WITH A DISPLAY VERB AND THE `CHECKLIST'
|
|
# NOUN. GO TO NVSUB AGAIN WITH THE `PLEASE PERFORM' VERB AND ZEROS IN THE
|
|
# LOW 7 BITS. THIS `PASTES UP' THE `PLEASE PERFORM' VERB INTO THE VERB
|
|
# LIGHTS.
|
|
#
|
|
# NVMONOPT IS AN ENTRY SIMILAR TO NVSUB, BUT REQUIRING AN ADDITIONAL
|
|
# Page 370
|
|
# PARAMETER IN L. IT SHOULD BE USED ONLY WITH A MONITOR VERB-NOUN CODE IN
|
|
# A. AFTER EACH MONITOR DISPLAY A *PLEASE* VERB WILL BE PASTED IN THE VERB
|
|
# LIGHTS OR DATA WILL BE BLANKED (OR BOTH) ACCORDING TO THE OPTIONS
|
|
# SPECIFIED IN L. IF BITS 8-14 OF L ARE OTHER THAN ZERO, THEN THEY WILL
|
|
# BE INTERPRETED AS A VERB CODE AND PASTED IN THE VERB LIGHTS. (THIS VERB
|
|
# CODE SHOULD DESIGNATE ONE OF THE *PLEASE* VERBS.) IF BITS 1-3 OF L ARE
|
|
# OTHER THAN ZERO, THEN THEY WILL BE USED BO BLANK DATA BY BEING FED TO
|
|
# BLANKSUB. IF NVMONOPT IS USED WITH A VERB OTHER THAN A MONITOR VERB,
|
|
# THE PARAMETER IN L HAS NO EFFECT.
|
|
#
|
|
# NVSUB IN FIXED-FIXED PLACES 2+CALLING LOC INTO NVQTEM, TC NVSUBEND INTO
|
|
# ENTRET. (THIS WILL RESTORE OLD CALLING BANK BITS)
|
|
|
|
SETLOC ENDALM +1
|
|
|
|
COUNT 02/PIN
|
|
|
|
NVSUB LXCH 7 # ZERO NVMONOPT OPTIONS
|
|
NVMONOPT TS NVTEMP
|
|
CAF BIT14
|
|
MASK MONSAVE1 # EXTERNAL MONITOR BIT
|
|
AD DSPLOCK
|
|
CCS A
|
|
TC Q # DSP SYST BLOCKED. RET TO 1. CALLING LOC
|
|
CAF ONE # DSP SYST AVAILABLE.
|
|
NVSBCOM AD Q
|
|
TS NVQTEM # 2+ CALLING LOC INTO NVQTEM
|
|
LXCH MONSAVE2 # STORE NVMONOPT OPTIONS
|
|
TC KILMONON # TURN ON KILL MONITOR BIT
|
|
NVSUBCOM CAF NVSBBBNK
|
|
|
|
XCH BBANK
|
|
EXTEND # SAVE OLD SUPERBITS
|
|
ROR SUPERBNK
|
|
TS NVBNKTEM
|
|
CAF PINSUPBT
|
|
EXTEND
|
|
WRITE SUPERBNK
|
|
TC NVSUBB # GO TO NVSUB1 THRU STANDARD LOC
|
|
EBANK= DSPCOUNT
|
|
NVSBBBNK BBCON NVSUB1
|
|
|
|
PINSUPBT = NVSBBBNK # CONTAINS THE PINBALL SUPERBIT.
|
|
|
|
NVSUBEND DXCH NVQTEM # NVBNKTEM MUST = NVQTEM+1
|
|
TC SUPDXCHZ # DTCB WITH SUPERBIT SWITCHING
|
|
|
|
SETLOC ENDRQWT +1
|
|
|
|
COUNT 41/PIN
|
|
# Page 371
|
|
|
|
# BLANKDSP BLANKS DISPLAY ACCORDING TO OPTION NUMBER IN NVTEMP AS FOLLOWS:
|
|
# -4 FULL BLANK, -3 LEAVE MODE, -2 LEAVE MODE AND VERB, -1 BLANK R'S ONLY.
|
|
|
|
BLANKDSP AD SEVEN # 7,8,9, OR 10 (A HAD 0,1,2,OR 3)
|
|
INHINT
|
|
TS CODE # BLANK SPECIFIED DSPTABS
|
|
CS BIT12
|
|
INDEX CODE
|
|
XCH DSPTAB
|
|
CCS A
|
|
INCR NOUT
|
|
TC +1
|
|
CCS CODE
|
|
TC BLANKDSP +2
|
|
RELINT
|
|
INDEX NVTEMP
|
|
TC +5
|
|
TC +1 # NVTEMP HAS -4 (NEVER TOUCH MODREG)
|
|
TS VERBREG # -3
|
|
TS NOUNREG # -2
|
|
TS CLPASS # -1
|
|
CS VD1
|
|
TS DSPCOUNT
|
|
TC FLASHOFF # PROTECT AGAINST INVISIBLE FLASH
|
|
TC ENTSET -2 # ZEROS REQRET
|
|
|
|
NVSUB1 CAF ENTSET # IN BANK
|
|
TS ENTRET # SET RETURN TO NVSUBEND
|
|
CCS NVTEMP # WHAT NOW
|
|
TC +4 # NORMAL NVSUB CALL (EXECUTE VN OR PASTE)
|
|
TC GODSPALM
|
|
TC BLANKDSP # BLANK DISPLAY AS SPECIFIED
|
|
TC GODSPALM
|
|
CAF LOW7
|
|
MASK NVTEMP
|
|
TS MPAC +3 # TEMP FOR NOUN (CAN'T USE MPAC. DSPDECVN
|
|
CA NVTEMP # USES MPAC, +1, +2).
|
|
TS EDOP # RIGHT 7
|
|
CA EDOP
|
|
TS MPAC +4 # TEMP FOR VERB (CAN'T USE MPAC+1. DSPDECVN
|
|
# USES MPAC, +1, +2)
|
|
CCS MPAC +3 # TEST NOUN
|
|
TC NVSUB2 # IF NOUN NOT +0, GO ON
|
|
CA MPAC +4
|
|
TC UPDATVB -1 # IF NOUN = +0, DISPLAY VERB. THEN RETURN
|
|
CAF ZERO # ZERO REQRET SO THAT PASTED VERBS CAN
|
|
TS REQRET # BE EXECUTED BY OPERATOR.
|
|
ENTSET TC NVSUBEND
|
|
NVSUB2 CCS MPAC +4 # TEST VERB
|
|
TC +4 # IF VERB NOT +0, GO ON
|
|
# Page 372
|
|
CA MPAC +3
|
|
TC UPDATNN -1 # IF VERB = +0, DISPLAY NOUN. THEN RETURN
|
|
TC NVSUBEND
|
|
CA MPAC +2 # TEMP FOR MACH CADR TO BE SPEC. (DSPDECVN
|
|
TS MPAC +5 # USES MPAC, +1, +2)
|
|
CA MPAC +4
|
|
TC UPDATVB -1 # IF BOTH NOUN AND VERB NOT +0, DISPLAY
|
|
CA MPAC +3 # BOTH AND GO TO ENTPAS0.
|
|
TC UPDATNN -1
|
|
CAF ZERO
|
|
TS LOADSTAT # SET FOR WAITING FOR DATA CONDITION
|
|
TS CLPASS
|
|
TS REQRET # SET REQRET FOR PASS 0.
|
|
CA MPAC +5 # RESTORES MACH CADR TO BE SPEC TO MPAC+2
|
|
TS MPAC +2 # FOR USE IN INTMCTBS (IN ENTPAS0).
|
|
ENDNVSB1 TC ENTPAS0
|
|
|
|
# IF INTERNAL MACH CADR TO BE SPECIFIED, MPAC+2 WILL BE PLACED INTO
|
|
# NOUNCADR IN ENTPAS0 (INTMCTBS).
|
|
|
|
SETLOC NVSUBEND +2
|
|
COUNT 02/PIN
|
|
# FORCE BIT 15 OF MONSAVE1 TO .
|
|
KILMONON CAF BIT15 # THIS IS THE KILL MONITOR BIT.
|
|
TS MONSAVE1 # TURN OFF BIT 14, THE EXTERNAL
|
|
# MONITOR BIT.
|
|
TC Q
|
|
|
|
# LOADSTAT +0 INACTIVE (WAITING FOR DATA). SET BY NVSUB
|
|
# +1 PROCEED NO DATA. SET BY SPECIAL VERB
|
|
# -1 TERMINATE. SET BY SPECIAL VERB.
|
|
# -0 DATA IN. SET BY END OF LOAD ROUTINE.
|
|
# OR RESEQUENCE. SET BY VERB 32
|
|
#
|
|
# L TO ENDIDLE (FIXED FIXED).
|
|
# ROUTINES THAT REQUEST LOADS THROUGH NVSUB SHOULD USE ENDIDLE WHILE
|
|
# WAITING FOR THE DATA TO BE LOADED. ENDIDLE PUTS CURRENT JOB TO SLEEP.
|
|
# ENDIDLE CANNOT BE CALLED FROM ERASABLE OR F/F MEMORY,
|
|
# SINCE JOB SLEEP AND JOBWAKE CAN HANDLE ONLY FIXED BANKS.
|
|
# RECALTST TESTS LOADSTAT AND WAKES JOB UP TO,
|
|
# L+1 FOR TERMINATE
|
|
# L+2 FOR PROCEED WITHOUT DATA
|
|
# L+3 FOR DATA IN, OR RESEQUENCE
|
|
# IT DOES NOTHING IF LOADSTAT INDICATES WAITING FOR DTA.
|
|
# Page 373
|
|
#
|
|
# ENDIDLE ABORTS (WITH CODE 1206) IF A SECOND JOB ATTEMPTS TO GO TO SLEEP
|
|
# IN PINBALL. IN PARTICULAR, IF AN ATTEMPT IS MADE TO GO TO ENDIDLE WHEN
|
|
# 1) CADRSTOR NOT= +0. THIS IS THE CASE WHERE THE CAPACITY OF ENDIDLE IS
|
|
# EXCEEDED. (+-NZ INDICATES A JOB IS ALREADY ASLEEP DUE TO ENDIDDLE.)
|
|
# 2) DSPLIST NOT= +0. THIS INDICATES A JOB IS ALREADY ASLEEP DUE TO
|
|
# NVSUBUSY.
|
|
|
|
ENDIDLE LXCH Q # RETURN ADDRESS INTO L.
|
|
TC ISCADR+0 # ABORT IF CADRSTOR NOT= +0.
|
|
TC ISLIST+0 # ABORT IF DSPLIST NOT= +0
|
|
CA L # DON'T SET DSPLOC TO 1 SO CAN USE
|
|
MASK LOW10 # ENDIDLE WITH NVSUB INITIATE MONITOR.
|
|
AD FBANK # SAME STRATEGY FOR CADR AS MAKECADR.
|
|
TS CADRSTOR
|
|
TC JOBSLEEP
|
|
|
|
ENDINST TC ENDOFJOB
|
|
|
|
ISCADR+0 CCS CADRSTOR # ABORTS (CODE 01206) IF CADRSTOR NOT= +0.
|
|
TC DSPABORT # RETURNS IF CADRSTOR = +0.
|
|
TC Q
|
|
TC DSPABORT
|
|
|
|
ISLIST+0 CCS DSPLIST # ABORTS (CODE 01206) IF DSPLIST NOT= +0.
|
|
TC DSPABORT # RETURNS IF DSPLIST = +0.
|
|
TC Q
|
|
DSPABORT TC P00DOO
|
|
OCT 01206
|
|
|
|
# JAMTERM ALLOWS PROGRAMS TO PERFORM THE TERMINATE FUNCTION.
|
|
# IT DOES ENDOFJOB.
|
|
|
|
JAMTERM CAF PINSUPBT
|
|
EXTEND
|
|
WRITE SUPERBNK
|
|
CAF 34DEC
|
|
TS REQRET # LEAVE ENTER SET FOR ENTPASS0.
|
|
CS VD1
|
|
TS DSPCOUNT
|
|
TC POSTJUMP
|
|
CADR VBTERM
|
|
|
|
34DEC DEC 34
|
|
|
|
# JAMPROC ALLOWS PROGRAMS TO PERFORM THE PROCEED/PROCEED WITHOUT DATA
|
|
# FUNCTION. IT DOES ENDOFJOB.
|
|
# Page 374
|
|
|
|
JAMPROC CAF PINSUPBT
|
|
EXTEND
|
|
WRITE SUPERBNK
|
|
CAF 33DEC
|
|
TS REQRET # LEAVE ENTER SET FOR ENTPASS0.
|
|
CS VD1
|
|
TS DSPCOUNT
|
|
TC POSTJUMP
|
|
CADR VBPROC
|
|
|
|
33DEC DEC 33
|
|
|
|
# BLANKSUB BLANKS ANY COMBINATION OF R1, R2, R3.
|
|
# CALL WITH BLANKING CODE IN A.
|
|
# BIT1=1 BLANKS R1, BIT2=1 BLANKS R2, BIT3=1 BLANKS R3.
|
|
# ANY COMBINATION OF THESE BITS IS ACCEPTED.
|
|
#
|
|
# DSPCOUNT IS RESTORED TO STATE IT WAS IN BEFORE BLANKSUB WAS EXECUTED.
|
|
|
|
BLANKSUB MASK SEVEN
|
|
TS NVTEMP # STORE BLANKING CODE IN NVTEMP.
|
|
CAF BIT14
|
|
MASK MONSAVE1 # EXTERNAL MONITOR BIT
|
|
AD DSPLOCK
|
|
CCS A
|
|
TC Q # DSP SYST BLOCKED. RET TO 1+ CALLING LOC
|
|
INCR Q # DSP SYST AVAILABLE
|
|
# SET RETURN FOR 2+ CALLING LOC
|
|
CCS NVTEMP
|
|
TCF +2
|
|
TC Q # NOTHING TO BLANK. RET TO 2+ CALLING LOC
|
|
LXCH Q # SET RETURN FOR 2 + CALLING LOC
|
|
CAF BLNKBBNK
|
|
XCH BBANK
|
|
EXTEND
|
|
ROR SUPERBNK # SAVE OLD SUPERBITS.
|
|
DXCH BUF
|
|
CAF PINSUPBT
|
|
EXTEND
|
|
WRITE SUPERBNK
|
|
TC BLNKSUB1
|
|
|
|
EBANK= DSPCOUNT
|
|
BLNKBBNK BBCON BLNKSUB1
|
|
ENDBLFF EQUALS
|
|
|
|
SETLOC ENDRELDS
|
|
COUNT 40/PIN
|
|
|
|
# Page 375
|
|
BLNKSUB1 CA DSPCOUNT # SAVE OLD DSPCOUNT FOR LATER RESTORATION
|
|
TS BUF +2
|
|
CAF BIT1 # TEST BIT1. SEE IF R1 TO BE BLANKED.
|
|
TC TESTBIT
|
|
CAF R1D1
|
|
TC 5BLANK -1
|
|
CAF BIT2 # TEST BIT2. SEE IF R2 TO BE BLANKED.
|
|
TC TESTBIT
|
|
CAF R2D1
|
|
TC 5BLANK -1
|
|
CAF BIT3 # TEST BIT3. SEE IF R3 TO BE BLANKED.
|
|
TC TESTBIT
|
|
CAF R3D1
|
|
TC 5BLANK -1
|
|
CA BUF +2 # RESTORE DSPCOUNT TO STATE IT HAD
|
|
TS DSPCOUNT # BEFORE BLANKSUB.
|
|
DXCH BUF # CALL L+2 DIRECTORY.
|
|
TC SUPDXCHZ +1 # DTCB WITH SUPERBIT SWITCHING
|
|
|
|
TESTBIT MASK NVTEMP # NVTEMP CONTAINS BLANKING CODE
|
|
CCS A
|
|
TC Q # IF CURRENT BIT = 1, RETURN TO L+1.
|
|
INDEX Q # IF CURRENT BIT = 0, RETURN TO L+3.
|
|
TC 2
|
|
|
|
ENDBSUB1 EQUALS
|
|
|
|
# DSPMM DOES NOT DISPLAY MODREG DIRECTLY. IT PUTS IN EXEC REQUEST WITH
|
|
# PRIO 30000 FOR DSPMMJB AND RETURNS TO CALLER.
|
|
#
|
|
# IF MODREG CONTAINS -0, DSPMMJB BLANKS THE MODE LIGHTS.
|
|
#
|
|
# DSPMM MUST BE IN BANK 27 OR LOWER, SO IT CAN BE CALLED VIA BANKCALL.
|
|
|
|
BANK 7
|
|
SETLOC PINBALL4
|
|
BANK
|
|
|
|
COUNT 07/PIN
|
|
|
|
DSPMM XCH Q
|
|
TS MPAC
|
|
INHINT
|
|
CAF CHRPRIO
|
|
TC NOVAC
|
|
EBANK= DSPCOUNT
|
|
2CADR DSPMMJB
|
|
|
|
RELINT
|
|
# Page 376
|
|
ENDSPMM TC MPAC
|
|
|
|
# DSPMM PLACE MAJOR MODE CODE INTO MODREG
|
|
|
|
SETLOC ENDBSUB1
|
|
|
|
COUNT 40/PIN
|
|
|
|
DSPMMJB CAF MD1 # GETS HERE THRU DSPMM
|
|
XCH DSPCOUNT
|
|
TS DSPMMTEM # SAVE DSPCOUNT
|
|
CCS MODREG
|
|
AD ONE
|
|
TC DSPDECVN # IF MODREG IS + OR +0, DISPLAY MODREG
|
|
TC +2 # IF MODREG IS -NZ, DO NOTHING
|
|
TC 2BLANK # IF MODREG IS -0, BLANK MM
|
|
XCH DSPMMTEM # RESTORE DSPCOUNT
|
|
TS DSPCOUNT
|
|
TC ENDOFJOB
|
|
|
|
# RECALTST IS ENTERED DIRECTLY AFTER DATA IS LOADED (OR RESEQUENCE VERB IS
|
|
# EXECUTED), TERMINATE VERB IS EXECUTED, OR PROCEED WITHOUT DATA VERB IS
|
|
# EXECUTED. IT WAKES UP JOB THAT DID TC ENDIDLE.
|
|
#
|
|
# IF CADRSTOR NOT= +0, IT PUTS +0 INTO DSPLOCK, AND TURNS OFF KEY RLSE
|
|
# LIGHT IF DSPLIST IS EMPTY (LEAVES KEY RLSE LIGHT ALONE IF NOT EMPTY).
|
|
|
|
RECALTST CCS CADRSTOR
|
|
TC RECAL1
|
|
TC ENDOFJOB # NORMAL EXIT IF KEYBOARD INITIATED
|
|
RECAL1 CAF ZERO
|
|
XCH CADRSTOR
|
|
INHINT
|
|
TC JOBWAKE
|
|
CCS LOADSTAT
|
|
TC DOPROC # + PROCEED WITHOUT DATA
|
|
TC ENDOFJOB # PATHOLOGICAL CASE EXIT
|
|
TC DOTERM # - TERMINATE
|
|
CAF TWO # -0 DATA IN OR RESEQUENCE
|
|
RECAL2 INDEX LOCCTR
|
|
AD LOC # LOC IS + FOR BASIC JOBS
|
|
INDEX LOCCTR
|
|
TS LOC
|
|
CA NOUNREG # SAVE VERB IN MPAC, NOUN IN MPAC+1 AT
|
|
TS L # TIME OF RESPONSE TO ENDIDLE FOR
|
|
CA VERBREG # POSSIBLE LATER TESTING BY JOB THAT HAS
|
|
INDEX LOCCTR # BEEN WAKED UP.
|
|
DXCH MPAC
|
|
RELINT
|
|
# Page 377
|
|
RECAL3 TC RELDSP
|
|
TC ENDOFJOB
|
|
|
|
DOTERM CAF ZERO
|
|
TC RECAL2
|
|
|
|
DOPROC CAF ONE
|
|
TC RECAL2
|
|
|
|
SBANK= LOWSUPER
|
|
# Page 378
|
|
# MISCELLANEOUS SERVICE ROUTINES IN FIXED/FIXED
|
|
|
|
SETLOC ENDBLFF
|
|
|
|
COUNT 02/PIN
|
|
|
|
# SETNCADR E CADR ARRIVES IN A. IT IS STORED IN NOUNCADR. EBANK BITS
|
|
# ARE SET. E ADRES IS DERIVED AND PUT INTO NOUNADD.
|
|
|
|
SETNCADR TS NOUNCADR # STORE ECADR
|
|
TS EBANK # SET EBANK BITS
|
|
MASK LOW8
|
|
AD OCT1400
|
|
TS NOUNADD # PUT E ADRES INTO NOUNADD
|
|
TC Q
|
|
|
|
# SETNADD GETS E CADR FROM NOUNCADR, SETS EBANK BITS, DERIVES
|
|
# E ADRES AND PUTS IT INTO NOUNADD.
|
|
|
|
SETNADD CA NOUNCADR
|
|
TCF SETNCADR +1
|
|
|
|
# SETEBANK E CADR ARRIVES IN A. EBANK BITS ARE SET. E ADRES IS
|
|
# DERIVED AND LEFT IN A.
|
|
|
|
SETEBANK TS EBANK # SET EBANK BITS
|
|
MASK LOW8
|
|
AD OCT1400 # E ADRES LEFT IN A
|
|
TC Q
|
|
|
|
R1D1 OCT 16 # THESE 3 CONSTANTS FORM A PACKED TABLE.
|
|
R2D1 OCT 11 # DON'T SEPARATE.
|
|
R3D1 OCT 4
|
|
|
|
RIGHT5 TS CYR
|
|
CS CYR
|
|
CS CYR
|
|
CS CYR
|
|
CS CYR
|
|
XCH CYR
|
|
TC Q
|
|
|
|
LEFT5 TS CYL
|
|
CS CYL
|
|
CS CYL
|
|
CS CYL
|
|
# Page 379
|
|
CS CYL
|
|
XCH CYL
|
|
TC Q
|
|
|
|
SLEFT5 DOUBLE
|
|
DOUBLE
|
|
DOUBLE
|
|
DOUBLE
|
|
DOUBLE
|
|
TC Q
|
|
|
|
LOW5 OCT 37 # THESE 3 CONSTANTS FORM A PACKED TABLE.
|
|
MID5 OCT 1740 # DON'T SEPARATE.
|
|
HI5 OCT 76000 # MUST STAY HERE
|
|
|
|
TCNOVAC TC NOVAC
|
|
TCWAIT TC WAITLIST
|
|
TCTSKOVR TC TASKOVER
|
|
TCFINDVC TC FINDVAC
|
|
|
|
CHRPRIO OCT 30000 # EXEC PRIORITY OF CHARIN
|
|
|
|
LOW11 OCT 3777
|
|
B12-1 EQUALS LOW11
|
|
LOW8 OCT 377
|
|
|
|
VD1 OCT 23 # THESE 3 CONSTANTS FORM A PACKED TABLE.
|
|
ND1 OCT 21 # DON'T SEPARATE.
|
|
MD1 OCT 25
|
|
|
|
BINCON DEC 10
|
|
|
|
FALTON CA BIT7 # TURN ON OPERATOR ERROR LIGHT.
|
|
EXTEND
|
|
WOR DSALMOUT # BIT 7 OF CHANNEL 11
|
|
TC Q
|
|
|
|
FALTOF CS BIT7 # TURN OFF OPERATOR ERROR LIGHT
|
|
EXTEND
|
|
WAND DSALMOUT # BIT 7 OF CHANNEL 11
|
|
TC Q
|
|
|
|
RELDSPON CAF BIT5 # TURN ON KEY RELEASE LIGHT
|
|
EXTEND
|
|
WOR DSALMOUT # BIT 5 OF CHANNEL 11
|
|
TC Q
|
|
|
|
# Page 380
|
|
LODSAMPT EXTEND
|
|
DCA TIME2
|
|
DXCH SAMPTIME
|
|
TC Q
|
|
|
|
TPSL1 EXTEND # SHIFTS MPAC, +1, +2 LEFT 1
|
|
DCA MPAC +1 # LEAVES OVFIND SET TO +/- 1 FOR OF/UF
|
|
DAS MPAC +1
|
|
AD MPAC
|
|
ADS MPAC
|
|
TS 7 # TS A DOES NOT CHANGE A ON OF/UF.
|
|
TC Q # NO NET OF/UF
|
|
TS MPAC+6 # MPAC +6 SET TO +/- 1 FOR OF/UF
|
|
TC Q
|
|
|
|
# IF MPAC, +1 ARE EACH +NZ OR +0 AND C(A)=-0, SHORTMP WRONGLY GIVES +0.
|
|
# IF MPAC, +1 ARE EACH -NZ OR -0 AND C(A)=+0, SHORTMP WRONGLY GIVES +0.
|
|
# PRSHRTMP FIXES FIRST CASE ONLY, BY MERELY TESTING C(A) AND IF IT = -0,
|
|
# SETTING RESULT TO -0.
|
|
#
|
|
# (DO NOT USE PRSHRTMP UNLESS MPAC, +1 ARE EACH +NZ OR +0, AS THEY ARE
|
|
# WHEN THEY CONTAIN THE SF CONSTANTS.)
|
|
|
|
PRSHRTMP TS MPTEMP
|
|
CCS A
|
|
CA MPTEMP # C(A) +, DO REGULAR SHORTMP
|
|
TCF SHORTMP +1 # C(A) +0, DO REGULAR SHORTMP
|
|
TCF -2 # C(A) -, DO REGULAR SHORTMP
|
|
CS ZERO # C(A) -0, FORCE RESULT TO -0 AND RETURN.
|
|
TS MPAC
|
|
TS MPAC +1
|
|
TS MPAC +2
|
|
TC Q
|
|
|
|
FLASHON CAF BIT6 # TURN ON V/N FLASH
|
|
EXTEND # BIT 6 OF CHANNEL 11
|
|
WOR DSALMOUT
|
|
TC Q
|
|
|
|
FLASHOFF CS BIT6 # TURN OFF V/N FLASH
|
|
EXTEND
|
|
WAND DSALMOUT # BIT 6 OF CHANNEL 11
|
|
TC Q
|
|
|
|
# Page 381
|
|
# INTERNAL USE OF KEYBOARD AND DISPLAY PROGRAM.
|
|
#
|
|
# USER MUST SCHEDULE CALLS TO NVSUB SO THAT THERE IS NO CONFLICT OF USE OR
|
|
# CONFUSION TO OPERATOR. THE OLD CRABLOCK (INTERNAL/INTERNAL INTERLOCK)
|
|
# HAS BEEN REMOVED AND THE INTERNAL USER NO LONGER HAS THE PROTECTION THIS
|
|
# OFFERED.
|
|
#
|
|
# THERE ARE TWO WAYS A JOB CAN BE PUT TO SLEEP BY THE KEYBOARD + DISPLAY
|
|
# PROGRAM. 1) BY ENDIDLE
|
|
# 2) BY NVSUBUSY
|
|
# THE BASIC CONVENTION IS THAT ONLY ONE JOB WILL BE PERITTED ASLEEP VIA
|
|
# THE KEYBOARD + DISPLAY PROGRAM AT A TIME. IF A JOB ATTEMPTS TO GO TO
|
|
# SLEEP BY MEANS OF (1) OR (2) AND THERE IS ALREADY AJOB ASLEEP THAT WAS
|
|
# PUT TO SLEEP BY (1) OR (2), THEN AN ABORT IS CAUSED.
|
|
#
|
|
# THE CALLING SEQUENCE FOR NVSUB IS
|
|
# CAF V/N
|
|
# L TC NVSUB
|
|
# L+1 RETURN HERE IF OPERATOR HAS INTERVENED
|
|
# L+2 RETURN HERE AFTER EXECUTION
|
|
#
|
|
# A ROUTINE CALLED NVSUBUSY IS PROVIDED (USE IS OPTIONAL) TO PUT
|
|
# YOUR JOB TO SLEEP UNTIL THE OPERATOR RELEASES THE KEYBOARD + DISPLAY
|
|
# SYSTEM. NVSUBUSY ALSO TURNS ON THE KEY RELEASE LIGHT.
|
|
# NVSUBUSY CANNOT BE CALLED FROM ERASABLE OR F/F MEMORY,
|
|
# SINCE JOBSLEEP AND JOBWAKE CAN HANDLE ONLY FIXED BANKS.
|
|
#
|
|
# THE CALLING SEQUENCE IS
|
|
# CAF WAKEFCADR
|
|
# TC NVSUBUSY
|
|
# .
|
|
#
|
|
# NVSUBUSY IS INTENDED FOR USE WHEN AN INTERNAL PROGRAM FINDS THE OPERATOR
|
|
# IS NOT USING THE KEYBOARD + DISPLAY PROGRAM (BY HIS OWN INITIATION). IT IS
|
|
# NOT INTENDED FOR USE WHEN ONE INTERNAL PROGRAM FINDS ANOTHER INTERNAL
|
|
# PROGRAM USING THE KEYBOARD + DISPLAY PROGRAM.
|
|
#
|
|
# NVSUBUSY ABORTS (WITH CODE 01206) IF A SECOND JOB ATTEMPTS TO GO TO
|
|
# SLEEP IN PINBALL. IN PARTICULAR, IF AN ATTEMPT IS MAKE TO GO TO NVSUBUSY
|
|
# WHEN
|
|
#
|
|
# 1) DSPLIST NOT= +0. THIS IS THE CASE WHERE THE CAPACITY FO THE DSPLIST
|
|
# IS EXCEEDED.
|
|
# 2) CADRSTOR NOT= +0. THIS INDICATES THAT A JOB IS ALREADY USING
|
|
# Page 382
|
|
# ENDIDLE. (+-NZ INDICATES A JOB IS ALREADY ASLEEP DUE TO ENDIDLE.)
|
|
|
|
PRENVBSY CS 2K+3 # SPECIAL ENTRANCE FOR ROUTINES IN FIXED
|
|
AD Q # BANKS ONLY DESIRING THE FCADR OF (LOC
|
|
AD FBANK # FROM WHICH THE TC PRENVBSY WAS DONE) -2
|
|
NVSUBUSY TC POSTJUMP # TO BE ENTERED.
|
|
CADR NVSUBSY1
|
|
2K+3 OCT 2003
|
|
|
|
# NVSUBSY1 MUST BE IN BANK 27 OR LOWER, SO IT WILL PUT CALLER TO SLEEP
|
|
# WITH HIS PROPER SUPERBITS.
|
|
|
|
SETLOC ENDSPMM +1
|
|
COUNT 07/PIN
|
|
|
|
NVSUBSY1 TS L
|
|
TC ISCADR+0 # ABORT IF CADRSTOR NOT= +0.
|
|
TC ISLIST+0 # ABORT IF DSPLIST NOT= +0.
|
|
TC RELDSPON
|
|
CA L
|
|
TS DSPLIST
|
|
ENDNVBSY TC JOBSLEEP
|
|
|
|
# NVSBWAIT IS A SPECIAL ENTRANCE FOR ROUTINES IN FIXED BANKS ONLY. IF
|
|
# SYSTEM IS NOT BUSY, IT EXECUTES V/N AND RETURNS TO L+1 (L= LOC FROM
|
|
# WHICH THE TC NVSBWAIT WAS DONE). IF SYSTEM IS BUSY, IT PUTS CALLING JOB
|
|
# TO SLEEP WITH L-1 GOING INTO LIST FOR EVENTUAL WAKING UP WHEN SYSTEM
|
|
# IS NOT BUSY.
|
|
|
|
SETLOC NVSUBUSY +3
|
|
COUNT 02/PIN
|
|
|
|
NVSBWAIT LXCH 7 # ZERO NVMONOPT OPTIONS
|
|
TS NVTEMP
|
|
CAF BIT14
|
|
MASK MONSAVE1 # EXTERNAL MONITOR BIT
|
|
AD DSPLOCK
|
|
CCS A
|
|
TCF NVSBWT1 # BUSY
|
|
TCF NVSBCOM # FREE. NVSUB WILL SAVE L+1 FOR RETURN
|
|
# AFTER EXECUTION.
|
|
NVSBWT1 INCR Q # L+2. PRENVBSY WILL PUT L-1 INTO LIST AND
|
|
TCF PRENVBSY # GO TO SLEEP.
|
|
|
|
# RELDSP IS USED BY VBPROC, VBTERM, VBRQEXEC, VBRQWAIT, VBRELDSP, EXTENDED
|
|
# VERB DISPATCHER, VBRESEQ, RECALTST.
|
|
#
|
|
# RELDSP1 IS USED BY MONITOR SET UP, VBRELDSP.
|
|
|
|
RELDSP XCH Q # SET DSPLOCK TO +0, TURN RELDSP LIGHT
|
|
# Page 383
|
|
TS RELRET # OFF, SEARCH DSPLIST
|
|
CS BIT14
|
|
INHINT
|
|
MASK MONSAVE1
|
|
TS MONSAVE1 # TURN OFF EXTERNAL MONITOR BIT
|
|
CCS DSPLIST
|
|
TC +2
|
|
TC RELDSP2 # LIST EMPTY
|
|
CAF ZERO
|
|
XCH DSPLIST
|
|
TC JOBWAKE
|
|
RELDSP2 RELINT
|
|
CS BIT5 # TURN OFF KEY RELEASE LIGHT
|
|
EXTEND # (BIT 5 OF CHANNEL 11)
|
|
WAND DSALMOUT
|
|
CAF ZERO
|
|
TS DSPLOCK
|
|
TC RELRET
|
|
RELDSP1 XCH Q # SET DSPLOCK TO +0. NO DSPLIST SEARCH.
|
|
TS RELRET # TURN KEY RLSE LIGHT OFF IF DSPLIST IS
|
|
# EMPTY. LEAVE KEY RLSE LIGHT ALONE IF
|
|
# DSPLIST IS NOT EMPTY.
|
|
CCS DSPLIST
|
|
TC +2 # + NOT EMPTY. LEAVE KEY RLSE LIGHT ALONE.
|
|
TC RELDSP2 # +0 EMPTY. TURN OFF KEY RLSE LIGHT
|
|
CAF ZERO # - NOT EMPTY. LEAVE KEY RLSE LIGHT ALONE
|
|
TS DSPLOCK
|
|
TC RELRET
|
|
|
|
ENDPINBF EQUALS
|
|
|
|
# Page 384
|
|
# PINTEST IS NEEDED FOR AUTO CHECK OF PINBALL.
|
|
|
|
PINTEST EQUALS LST2FAN
|
|
|
|
# Page 385
|
|
# VBTSTLTS TURNS ON ALL DISPLAY PANEL LIGHTS. AFTER 5 SEC, IT TURNS
|
|
# OFF THE CAUTION AND STATUS LIGHTS.
|
|
|
|
SETLOC ENDNVSB1 +1
|
|
|
|
COUNT 41/PIN
|
|
|
|
VBTSTLTS TC BANKCALL
|
|
CADR CHKP00H
|
|
|
|
INHINT
|
|
CS BIT1 # SET BIT 1 OF IMODES33 SO IMUMON WON'T
|
|
MASK IMODES33 # TURN OUT ANY LAMPS.
|
|
AD BIT1
|
|
TS IMODES33
|
|
|
|
CAF TSTCON1 # TURN ON UPLINK ACTIVITY, TEMP, KEY RLSE,
|
|
EXTEND # V/N FLASH, OPERATOR ERROR.
|
|
WOR DSALMOUT
|
|
CAF TSTCON2 # TURN ON NO ATT, GIMBAL LOCK, TRACKER,
|
|
TS DSPTAB +11D # PROG ALM.
|
|
CAF BIT10 # TURN ON TEST ALARM OUTBIT
|
|
EXTEND
|
|
WOR CHAN13
|
|
CAF TEN
|
|
TSTLTS1 TS ERCNT
|
|
CS FULLDSP
|
|
INDEX ERCNT
|
|
TS DSPTAB
|
|
CCS ERCNT
|
|
TC TSTLTS1
|
|
CS FULLDSP1
|
|
TS DSPTAB +1 # TURN ON 3 PLUS SIGNS
|
|
TS DSPTAB +4
|
|
TS DSPTAB +6
|
|
CAF ELEVEN
|
|
TS NOUT
|
|
CAF SHOLTS
|
|
TC WAITLIST
|
|
EBANK= DSPTAB
|
|
2CADR TSTLTS2
|
|
|
|
TC ENDOFJOB # DSPLOCK IS LEFT BUSY (FROM KEYBOARD
|
|
# ACTION) UNTIL TSTLTS3 TO INSURE THAT
|
|
# LIGHTS TEST WILL BE SEEN.
|
|
|
|
FULLDSP OCT 05675 # DISPLAY ALL 8'S
|
|
FULLDSP1 OCT 07675 # DISPLAY ALL 8'S AND +
|
|
TSTCON1 OCT 00175
|
|
# Page 386
|
|
# UPLINK ACTIVITY, TEMP, KEY RLSE,
|
|
# V/N FLASH, OPERATOR ERROR.
|
|
TSTCON2 OCT 40650 # DSPTAB+11D BITS 4,6,8,9,
|
|
# NO ATT, GIMBAL LOCK, TRACKER, PROG ALM.
|
|
TSTCON3 OCT 00115 # CHAN 11 BITS 1, 3, 4, 7.
|
|
# UPLINK ACITIVY, TEMP, OPERATOR ERROR.
|
|
SHOLTS OCT 764 # 5 SEC
|
|
|
|
TSTLTS2 CAF CHRPRIO # CALLED BY WAITLIST
|
|
TC NOVAC
|
|
EBANK= DSPTAB
|
|
2CADR TSTLTS3
|
|
|
|
TC TASKOVER
|
|
|
|
TSTLTS3 CS TSTCON3 # CALLED BY EXECUTIVE
|
|
INHINT
|
|
EXTEND # TURN OFF UPLINK ACTIVITY, TEMP,
|
|
WAND DSALMOUT # OPERATOR ERROR.
|
|
CS BIT10 # TURN OFF TEST ALARM OUTBIT
|
|
EXTEND
|
|
WAND CHAN13
|
|
CAF BIT4 # MAKE NO ATT FOLLOW BIT 4 OF CHANNEL 12
|
|
EXTEND # (NO TT LIGHT ON IF IN COARSE ALIGN)
|
|
RAND CHAN12
|
|
AD BIT15 # TURN OFF AUTO, HOLD, FREE, SPARE,
|
|
TS DSPTAB +11D # GIMBAL LOCK, SPARE, TRACKER, PROG ALM
|
|
CS 13-11,1 # SET BITS TO INDICATE ALL LAMPS OUT. TEST
|
|
MASK IMODES33 # LIGHTS COMPLETE.
|
|
AD PRIO16
|
|
TS IMODES33
|
|
|
|
CS OCT55000
|
|
MASK IMODES30
|
|
AD PRIO15 # 15000.
|
|
TS IMODES30
|
|
|
|
CS OPTMODES
|
|
MASK BIT7
|
|
ADS OPTMODES
|
|
RELINT
|
|
|
|
TC BANKCALL # REDISPLAY C(MODREG)
|
|
CADR DSPMM
|
|
TC KILMONON # TURN ON KILL MONITOR BIT.
|
|
TC FLASHOFF # TURN OFF V/N FLASH.
|
|
TC POSTJUMP # DOES RELDSP AND GOES TO PINBRNCH IF
|
|
CADR TSTLTS4 # ENDIDLE IS AWAITING OPERATOR RESPONSE.
|
|
# Page 387
|
|
13-11,1 OCT 16001
|
|
OCT55000 OCT 55000
|
|
ENDPINS2 EQUALS
|
|
|
|
# Page 388
|
|
# ERROR LIGHT RESET (RSET) TURNS OFF:
|
|
# UPLINK ACTIVITY, AUTO, HOLD, FREE, OPERATOR ERROR,
|
|
# PROG ALM, TRACKER FAIL.
|
|
#
|
|
# LEAVES GIMBAL LOCK AND NO ATT ALONE.
|
|
#
|
|
# IT ALSO ZEROS THE `TEST ALARM' OUT BIT, WHICH TURNS OFF STBY, RESTART.
|
|
# IT ALSO SETS `CAUTION RESET' TO 1.
|
|
# IT ALSO FORCES BIT 12 OF ALL DSPTAB ENTRIES TO 1.
|
|
|
|
SETLOC DOPROC +2
|
|
COUNT 40/PIN
|
|
|
|
ERROR XCH 21/22REG # RESTORE ORIGINAL C(DSPLOCK). THUS ERROR
|
|
TS DSPLOCK # LIGHT RESET LEAVES DSPLOCK CHANGED.
|
|
INHINT
|
|
CAF BIT10 # TURN ON `CAUTION RESET' OUTBIT
|
|
EXTEND
|
|
WOR DSALMOUT # BIT10 CHAN 11
|
|
CAF GL+NOATT # LEAVE GIMBAL LOCK AND NO ATT INTACT,
|
|
MASK DSPTAB +11D # TURNING OFF AUTO, HOLD, FREE,
|
|
AD BIT15 # PROG ALARM, AND TRACKER.
|
|
TS DSPTAB +11D
|
|
CS PRIO16 # RESET FAIL BITS WHICH GENERATE PROG
|
|
MASK IMODES33 # ALARM SO THAT IF THE FAILURE STILL
|
|
AD PRIO16 # EXISTS, THE ALARM WILL COME BACK.
|
|
TS IMODES33
|
|
CS BIT10
|
|
MASK IMODES30
|
|
AD BIT10
|
|
TS IMODES30
|
|
|
|
CS OPTMODES
|
|
MASK BIT7
|
|
ADS OPTMODES
|
|
CS BIT10 # TURN OFF 'TEST ALARM' OUTBIT
|
|
EXTEND
|
|
WAND CHAN13
|
|
CS ERCON # TURN OFF UPLINK ACTIVITY,
|
|
EXTEND # OPERATOR ERROR.
|
|
WAND DSALMOUT
|
|
TSTAB CAF BINCON # (DEC 10)
|
|
TS ERCNT # ERCNT = COUNT
|
|
INHINT
|
|
INDEX ERCNT
|
|
CCS DSPTAB
|
|
AD ONE
|
|
TC ERPLUS
|
|
AD ONE
|
|
ERMINUS CS A
|
|
MASK NOTBIT12
|
|
TC ERCOM
|
|
# Page 389
|
|
ERPLUS CS A
|
|
MASK NOTBIT12
|
|
CS A # MIGHT WANT TO RESET CLPASS, DECBRNCH,
|
|
ERCOM INDEX ERCNT # ETC.
|
|
TS DSPTAB
|
|
RELINT
|
|
CCS ERCNT
|
|
TC TSTAB +1
|
|
CAF ZERO
|
|
TS FAILREG
|
|
TS FAILREG +1
|
|
TS FAILREG +2
|
|
TS SFAIL
|
|
TC ENDOFJOB
|
|
|
|
ERCON OCT 104 # CHAN 11 BITS 3,7.
|
|
# UPLINK ACTIVITY, AND OPERATOR ERROR.
|
|
BITS6,8 OCT 240
|
|
GL+NOATT OCT 00050 # NO ATT AND GIMBAL LOCK LAMPS
|
|
NOTBIT12 OCT 73777
|
|
|
|
ENDPINS1 EQUALS
|
|
|
|
SBANK= LOWSUPER
|
|
|