https://github.com/virtualagc/virtualagc
Revision 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC, committed by Ron Burkey on 07 August 2022, 15:04:04 UTC
assembly listings from yaASM and yaLEMAP. Added some debugging messages
to 'make install'.  Tweaked debugging messages that VirtualAGC embeds in
'simulate'.  Verified buildability in Mint 21, 20, 19, 17, and verified
buildability using clang in Mint 17.
1 parent 6bb1acc
Raw File
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
SXTMARK.agc
### FILE="Main.annotation"
## Copyright:	Public domain.
## Filename:	SXTMARK.agc
## Purpose:	Part of the source code for Comanche, build 055. It
##		is part of the source code for the Command Module's
##		(CM) Apollo Guidance Computer (AGC), Apollo 11.
## Assembler:	yaYUL
## Reference:	pp. 222-235
## Contact:	Ron Burkey <info@sandroid.org>,
##  		Fabrizio Bernardini <fabrizio@spacecraft.it>
## Website:	http://www.ibiblio.org/apollo.
## Mod history:	16/05/09 FB	Transcription Batch 2 Assignment.
##		2010-08-28 JL	Fixed indentation.
##		2016-12-10 RSB	Proofed comments with octopus/ProoferComments
##				and fixed the errors found.
##		2017-01-18 RSB	Fixed comment-text errors noted while diff'ing
##				vs Colossus 249.
## 		2021-05-30 ABS	20/SXTMK -> 10/SXTMK
##
## The contents of the "Comanche055" files, in general, are transcribed 
## from scanned documents. 
##
##	Assemble revision 055 of AGC program Comanche by NASA
##	2021113-051.  April 1, 1969.  
##
##	This AGC program shall also be referred to as Colossus 2A
##
##	Prepared by
##			Massachusetts Institute of Technology
##			75 Cambridge Parkway
##			Cambridge, Massachusetts
##
##	under NASA contract NAS 9-4065.
##
## Refer directly to the online document mentioned above for further
## information.  Please report any errors to info@sandroid.org.

## Page 222
# PROGRAM NAME - SXTMARK					DATE - 5 APRIL 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS			LOG SECTION SXTMARK
# MOD BY - R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
# 
# FUNCTIONAL DESCRIPTION-
#
#	SXTMARK IS CALLED FROM INTERNAL ROUTINES WHICH MAY REQUIRE STAR OR LANDMARK MARKINGS BY THE ASTRONAUT.  IF
#	THE MARK SYSTEM IS NOT IN USE, SXTMARK RESERVES A VAC AREA FOR MARKING AND REQUESTS EXECUTION OF THE MKVB51
#	ROUTINE VIA THE EXECUTIVE JOB PRIORITY LIST.  R21 USES THIS ROUTINE TO DETERMINE IF THE MARK SYSTEM CAN BE
#	USED.  IF YES, SXTMARK RETURNS TO R21 TO PERFORM ITS OWN MARK REQUESTS VIA THE V51 FLASH.
#
# CALLING SEQUENCE-
#
#	CAF	(NO. MARK REQUESTS IN BITS 1-3 OF A)
#	TC	BANKCALL
#	CADR	SXTMARK
#
# NORMAL EXIT MODE-
#
#	SWRETURN
#
# ALARM OR ABORT EXIT MODE-
#
#	ABORT
#
# OUTPUT-
#
#	1)	MARKSTAT CONTAINS MARK VALUE (BITS 14-12) AND VAC AREA ADDRESS
#	2)	QPRET = VAC AREA POINTER VALUE
#	3)	1ST WORD OF RESERVED VAC AREA SET TO +0
#	4)	PRIO32 PLACED IN A REGISTER
#
# ERASABLE INITIALIZATION-
#
#	1)	BITS 1-3 OF A = NO. MARKS REQUESTED
#	2)	BITS 2,3 OF EXTVBACT = 0
#	3)	A VAC AREA MUST BE AVAILABLE (WORD 1 = ADDRESS OF VAC AREA)
#
# DEBRIS-
#
#	A,Q,L,RUPTREG1,MARKSTAT,QPRET,BIT2 OF EXTVBACT

		BANK	13
		SETLOC	SXTMARKE
		BANK
		
		EBANK=	MRKBUF1
		COUNT	07/SXTMK
		
SXTMARK		INHINT
		TS	RUPTREG1		# NUMBER OF MARKS WANTED
		
		CAF	SIX			# BIT2 = MARKING SYSTEM IN USE
		MASK	EXTVBACT		# BIT3 = EXTENDED VERB IN PROGRESS
		CCS	A
		TC	MKABORT			# SET THEREFORE ABORT
## Page 223
		CAF	BIT2			# NOT SET
		ADS	EXTVBACT		# SET IT, RESET IN ENDMARK
		TC	MARKOK			# YES, FIND VAC AREA
		
MKABORT		TC	BAILOUT
		OCT	01211
MARKOK		CCS	VAC1USE			# FIND VAC AREA
		TC	MKVACFND
		CCS	VAC2USE
		TC	MKVACFND
		CCS	VAC3USE
		TC	MKVACFND
		CCS	VAC4USE
		TC	MKVACFND
		CCS	VAC5USE
		TC	MKVACFND
		TC	BAILOUT
		OCT	01207
		
MKVACFND	AD	TWO			# ADDRESS OF VAC AREA
		TS	MARKSTAT
		INDEX	A
		TS	QPRET			# STORE NEXT AVAILABLE MARK SLOT
		
		CAF	ZERO			# SHOW VAC AREA OCCUPIED
		INDEX	MARKSTAT
		TS	0	-1
		
		TC	CHECKMM			# BACKUP MARK ROUTINE USES SXTMARK
		MM	53
		TCF	+2
		TCF	SWRETURN
		TC	CHECKMM
		MM	54
		TCF	+2
		TCF	SWRETURN
		CAF	BIT12			# DESIRED NUMBER OF MARKS IN 12-14
		EXTEND
		MP	RUPTREG1
		XCH	L
		ADS	MARKSTAT
		
		CAF	PRIO32			# ENTER MARK JOB
		TC	NOVAC
		EBANK=	MARKSTAT
		2CADR	MKVB51
		
		RELINT
		TCF	SWRETURN		# SAME AS MODEEXIT
	
## Page 224
# PROGRAM NAME - MKRELEAS					DATE - 5 APRIL 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS			LOG SECTION SXTMARK
# MOD BY - R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
#
# FUNCTIONAL DESCRIPTION-
#
#	MKRELEAS IS EXECUTED BY INTERNAL ROUTINES TO RELEASE THE MARK SYSTEM TO MAKE IT AVAILABLE TO OTHER INTERNAL
#	SYSTEM ROUTINES.  IT ALSO CLEARS THE COARSE OPTICS FLAG BIT AND DISABLES THE OPTICS ERROR COUNTER.
#
# CALLING SEQUENCE-
#
#	TC	BANKCALL
#	CADR	MKRELEAS
#
# NORMAL EXIT MODE-
#
#	SWRETURN
#
# ALARM OR ABORT EXIT MODE-  NONE
#
# OUTPUT-
#
#	1)	BIT9 OPTMODES SET TO 0
#	2)	OPTIND SET TO -1
#	3)	1ST WORD OF VAC AREA SET TO VAC ADDRESS TO SIGNIFY AVAILABILITY.
#	4)	MARKSTAT CLEARED
#	5)	BIT2 CHANNEL 12 SET TO 0
#
# ERASABLE INITIALIZATION-  NONE
#
# DEBRIS-
#
#	A,MARKSTAT,BIT9 OPTMODES,OPTIND,BIT2 CHANNEL 12

MKRELEAS	CAF	ZERO			# SHOW MARK SYSTEM NOW AVAILABLE
		XCH	MARKSTAT
		MASK	LOW9
		CCS	A
		INDEX	A
		TS	0
MKRLEES		INHINT
		CS	BIT9			# COARSE OPTICS RETURN FLAG.
		MASK	OPTMODES
		TS	OPTMODES
		
		CA	NEGONE
		TS	OPTIND			# KILL COARS OPTICS
		
		CS	BIT2			# DISABLE OPTICS ERROR COUNTER
		EXTEND
		WAND	CHAN12
		
		RELINT
		TC	SWRETURN
## Page 225
# PROGRAM NAME - MARKRUPT					DATE - 5 APRIL 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS			LOG SECTION SXTMARK
# MOD BY - R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
#
# FUNCTIONAL DESCRIPTION-
#	MARKRUPT STORES CDUS,OPTICS AND TIME AND TRANSFERS CONTROL TO THE MARKIT,MARK REJECT OR KEYCOM ROUTINES IF
#	BITS IN CHANNEL 16 ARE SET AS REQUIRED.
#
# CALLING SEQUENCE-
#	ROUTINE ENTERED VIA KEYRUPT2 WHEN MARK,MARK REJECT OR DSKY KEYS DEPRESSED BY THE OPERATOR.
#
# NORMAL EXIT MODE-
#	MARKIT, MKREJECT OR POSTJUMP ROUTINES (MARK, MARK REJECT OR DSKY CODE)
#
# ALARM OR ABORT EXIT MODE-
#	ALARM AND RESUME
#
# OUTPUT-
#	RUPTSTOR+5 = CDUT, RUPTSTOR+3 = CDUS, RUPTSTOR+2 = CDUY,
#	RUPTREG3 = CDUZ, RUPTSTOR+6 = CDUX, RUPTSTOR+1 AND SAMPTIME+1 = TIME1,
#	RUPTSTOR AND SAMPTIME = TIME2
#
# ERASABLE INITIALIZATION-
#	CDUT,CDUS,CDUY,CDUZ,CDUX,TIME2,TIME1,CHANNEL 16 BITS 6,7 OR 1-5
#
# DEBRIS-
#	A,QRUPT,RUPTREG3,SAMPTIME,SAMPTIME+1,RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4 (LOCATION 67)

MARKRUPT	TS	BANKRUPT		# STORE CDUS AND OPTICS NOW
		CA	CDUT
		TS	MKCDUT
		CA	CDUS
		TS	MKCDUS
		CA	CDUY
		TS	MKCDUY
		CA	CDUZ
		TS	MKCDUZ
		CA	CDUX
		TS	MKCDUX
		EXTEND
		DCA	TIME2			# GET TIME
		DXCH	MKT2T1
		EXTEND
		DCA	MKT2T1
		DXCH	SAMPTIME		# RUPT TIME FOR NOUN 65.
		
		XCH	Q
		TS	QRUPT
		
		CAF	BIT6			# SEE IF MARK OR MKREJECT
## Page 226
		EXTEND
		RAND	NAVKEYIN
		CCS	A
		TC	MARKIT			# ITS A MARK
		
		CAF	BIT7			# NOT A MARK, SEE IF MKREJECT
		EXTEND
		RAND	NAVKEYIN
		CCS	A
		TC	MKREJECT		# ITS A MARK REJECT
		
KEYCALL		CAF	OCT37			# NOT MARK OR MKREJECT, SEE IF KEYCODE
		EXTEND
		RAND	NAVKEYIN
		EXTEND
		BZF	+3			# IF NO INBITS
		TC	POSTJUMP
		CADR	KEYCOM			# IT,S A KEY CODE, NOT A MARK.
		
 +3		TC	ALARM			# ALARM IF NO INBITS
		OCT	113
		TC	RESUME
		
## Page 227
# PROGRAM NAME - MARKCONT				DATE - 19 SEPT 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS		LOG SECTION SXTMARK
# MOD BY - R. MELANSON TO ADD DOCUMENTATION		ASSEMBLY SUNDISK REV. 116
#
# FUNCTIONAL DESCRIPTION-
#	MARKCONT IS USED TO PERFORM A SPECIAL MARK FUNCTION FOR R21, TO EXECUTE A SPECIAL DISPLAY OF OPTICS AND TIME OR
#	TO PERFORM A MARK OF A STAR OR LAND SIGHTING BASED UPON FLASHING V-N.
#
# CALLING SEQUENCE-

#	FROM MARKDIF
#
# NORMAL EXIT MODE-
#	TASKOVER
#
# ALARM OR ABORT EXIT MODE-
#	ALARM AND TASKOVER
#
# OUTPUT-
#	1)	FOR R21-
#		EBANK=EBANK7
#		MRKBUF1 TO MRKBUF1+6 = TIME2,TIME1,CDUY,OPTICX,CDUZ,OPTICSY,CDUX OF CURRENT R21 MARK FUNCTION.
#		MRKBUF2 TO MRKBUF2+6 CONTAINS PREVIOUS R21 MARK VALUES.
#	2)	FOR SPECIAL DISPLAY JOB-
#		RUPTREG1 AND MRKBUF1 = CDUS,RUPTREG2 AND MRKBUF1+1 = CDUT.
#		RUPTREG3 AND MRKBUF1+2 = TIME2,RUPTREG4 AND MRKBUF1+3 = TIME1
#	3)	FOR NORMAL MARKING-
#		DECREMENT BITS14-12 OF MARKSTAT BY 1,
#		BIT10 MARKSTAT SET TO 1, INCREMENT QPRET BY 7,
#		STORE TIME2,TIME1,CDUY,CDUS,CDUZ,CDUT AND CDUX IN VAC+1 TO VAC+7
#
# ERASABLE INITIALIZATION-
#	1)	FOR R21-
#		BIT14 OF STATE+2 =1, MRKBUF1 TO MRKBUF1+6, ITEMP1, RUPTREG3,
#		RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4
#	2)	FOR SPECIAL DISPLAY JOB-
#		BIT14 OF STATE+2 =0, MARKSTAT =+0, RUPTREG1,RUPTREG2,RUPTREG3
#		RUPTREG4,RUPTSTOR,RUPTSTOR+1,RUPTSTOR+3,RUPTSTOR+5,
#		BIT12 OF STATE+5 (V59 FLAG), MRKBUF1 THRU MRKBUF1+3
#	3)	FOR NORMAL MARKING-
#		BIT14 OF STATE+2 =0, MARKSTAT =VAC ADDRESS,A REG,ITEMP1,RUPTREG3,
#		RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4
#
# DEBRIS-
#	1)	FOR R21-
#		A, ITEMP1, MRKBUF1, MRKBUF2
#	2)	FOR SPECIAL DISPLAY JOB-
#		A,RUPTREG1,RUPTREG2,RUPTREG3,RUPTREG4,MPAC TO MPAC+3
#	3)	FOR NORMAL MARKING-
#		A,MARKSTAT,ITEMP1,QPRET,VAC+1 TO VAC+7 OF VAC AREA IN USE

## Page 228
MARKCONT	CAF	BIT14
		MASK	STATE	+2		# R21 MARK (SPECIAL MARKING FOR R21)
		EXTEND
		BZF	MARKET			# NOT SET THEREFORE REGULAR MARKING
MARKIT1		CAF	SIX			# SPECIAL FOR R21
		TC	GENTRAN			# TRANSFER MRKBUF1 TO MRKBUF2
		ADRES	MRKBUF1
		ADRES	MRKBUF2
		
		CAF	SIX			# TRANSFER CURRENT MARK DATA TO MARKBUF1
		TC	GENTRAN
		ADRES	MKT2T1
		ADRES	MRKBUF1
		
		TCF	TASKOVER
		
MARKET		CCS	MARKSTAT		# SEE IF MARKS CALLED FOR
		TC	MARK2			# COLLECT MARKS
		
		CAF	TWO			# IS MARKING SYSTEM IN USE (BIT2)
		MASK	EXTVBACT
		EXTEND
		BZF	MARKET3			# MARKING NOT CALLED FOR
		CAF	BIT12
		MASK	STATE	+5		# V59FLAG
		EXTEND
		BZF	MARKET3			# IF V59FLAG NOT SET-MARK UNCALLED FOR
		CAF	PRIO5			# CALIBRATION MARK (SET) FOR P23
		TC	NOVAC			# SPECIAL DISPLAY JOB
		EBANK=	MRKBUF1
		2CADR	MARKDISP
		
		CAF	SIX
		TC	GENTRAN			# TRANSFER MARK DATA TO MARKDOWN
		ADRES	MKT2T1
		ADRES	MARKDOWN
		CAF	SIX
		TC	GENTRAN			# TRANSFER MARK DATA TO MRKBUF1 FOR
		ADRES	MKT2T1			# SPECIAL DISPLAY OF SHAFT AND TRUNNION
		ADRES	MRKBUF1			# IF V59 ACTING
		TCF	TASKOVER
MARKET3		TC	ALARM
		OCT	122			# MARKING NOT CALLED FOR
		TCF	TASKOVER
114ALM		TC	ALARM			# MARK NOT WANTED
		OCT	114
		TCF	TASKOVER
		
## Page 229
# STORE MARK DATA IN MKVAC AND INCREMENT POINTER

MARK2		AD	74K			# SEE IF MARKS WANTED-REDUCE MARKS WANTED
		EXTEND
		BZMF	114ALM			# MARK NOT WANTED-ALARM
		TS	MARKSTAT
		COM
		MASK	BIT10			# SET BIT10 TO ENABLE REJECT
		ADS	MARKSTAT
		
		MASK	LOW9
		TS	ITEMP1
		INDEX	A
		XCH	QPRET			# PICK UP MARK SLOT-POINTER
		TS	ITEMP2			# SAVE CURRENT POINTER
		AD	SEVEN			# INCREMENT POINTER
		INDEX	ITEMP1
		TS	QPRET			# STORE ADVANCED POINTER
		
VACSTOR		EXTEND
		DCA	MKT2T1
		INDEX	ITEMP2
		DXCH	0
		CA	MKCDUY
		INDEX	ITEMP2
		TS	2
		CA	MKCDUS
		INDEX	ITEMP2
		TS	3
		CA	MKCDUZ
		INDEX	ITEMP2
		TS	4
		CA	MKCDUT
		INDEX	ITEMP2
		TS	5
		CA	MKCDUX
		INDEX	ITEMP2
		TS	6
		
		CAF	PRIO34			# IF ALL MARKS MADE FLASH VB50
		MASK	MARKSTAT
		EXTEND
		BZF	+2
		TCF	TASKOVER
		CAF	PRIO32
		TC	NOVAC
		EBANK=	MARKSTAT
		2CADR	MKVB50
		
		TCF	TASKOVER
		
## Page 230
# PROGRAM NAME - MKREJECT					DATE - 5 APRIL 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS			LOG SECTION SXTMARK
# MOD BY - R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
#
# FUNCTIONAL DESCRIPTION-
#	ROUTINE ALLOWS OPERATOR TO REJECT MARK MADE PRIOR TO ACCEPTANCE AND ALLOWS A NEW MARK TO BE MADE BY ASTRONAUT
#
# CALLING SEQUENCE-
#	FROM MARKRUPT IF BIT7 OF CHANNEL 16 IS 1.
#
# NORMAL EXIT MODE-
#	RESUME
#
# ALARM OR ABORT EXIT MODE-
#	ALARM AND RESUME
#
# OUTPUT-
#	1)	FOR R21-
#		MRKBUF1 SET TO -1
#	2)	FOR NORMAL MARKING-
#		BIT10 MARKSTAT =0, INCREMENT NO. MARKS BY 1, DECREMENT QPRET BY 7
#
# ERASABLE INITIALIZATION-
#	1)	FOR R21-
#		BIT14 OF STATE+2 SET TO 1
#	2)	FOR NORMAL MARKING-
#		BIT14 OF STATE+2 SET TO 0, MARKSTAT,QPRET
#
# DEBRIS-
#	1)	FOR R21-
#		A,MARKSTAT,EBANK
#	2)	FOR NORMAL MARKING-
#		A,MARKSTAT,ITEMP1,QPRET

MKREJECT	CAF	BIT14
		MASK	STATE	+2		# R21 MARK (SPECIAL MARKING FOR R21)
		EXTEND
		BZF	MRKREJCT		# NOT SET THEREFORE REGULAR REJECT
		CA	NEGONE			# -1 (FOR R22)
		TS	MRKBUF1			# -0 IN TIME IS FLAG TO R22 SIGNIFYING A
		TC	RESUME			# REJECTED MARK
MRKREJCT	CCS	MARKSTAT		# SEE IF MARKS BEING ACCEPTED
		TC	REJECT2
		TC	ALARM			# MARKS NOT BEING ACCEPTED
		OCT	112
		TC	RESUME
		
REJECT2		CS	BIT10			# SEE IF MARK HAD BEEN MADE SINCE LAST
		MASK	MARKSTAT		# REJECT, AND SET BIT10 TO ZERO TO
		XCH	MARKSTAT		# SHOW MARK REJECT
## Page 231
		MASK	BIT10
		CCS	A
		TC	REJECT3
		
		TC	ALARM			# DONT ACCEPT TWO REJECTS TOGETHER
		OCT	110
		TC	RESUME
		
REJECT3		CAF	LOW9			# DECREMENT POINTER TO REJECT MARK
		MASK	MARKSTAT
		TS	ITEMP1
		CS	SEVEN
		INDEX	ITEMP1
		ADS	QPRET			# NEW POINTER
		
		CAF	BIT12			# INCREMENT MARKS WANTED AND IF FIELD
		AD	MARKSTAT		# IS NOW NON-ZERO, CHANGE TO VB51 TO
		XCH	MARKSTAT		# INDICATE MORE MARKS WANTED
		MASK	PRIO34			# INDICATE MORE MARKS WANTED
		CCS	A
		TC	RESUME
		CAF	PRIO32
		TC	NOVAC
		EBANK=	MARKSTAT
		2CADR	MKVB51
		
		TC	RESUME
		
## Page 232
# PROGRAM DESCRIPTION MKVB51 AND MKVB50
#
# AUTHOR-BARNERT DATE-2-15-67 MOD-0
# PURPOSE  FLASH V51N70,V51N43, OR V51 TO REQUEST MARKING,
#	   AND V50N25 R1=16 TO REQUEST TERMINATE MARKING
#
# CALLING SEQUENCE   AS JOB WITHIN SXTMARK
#
# EXIT TO ENDMARK UPON RECEIPT OF V33, V34 CAUSES GOTOPOOH, ENTER
#	   RECYCLES THE DISPLAY
#
# NOTE-	SXTMARK AUTOMATICALLY CHANGES FROM CALLING MKVB51 TO MKVB50 WHEN
#	   SUFFICIENT MARKS HAVE BEEN MADE, AND THE REVERSE WHEN A MARK
#	   REJECT REDUCES THE NUMBER MADE BELOW THAT REQUIRED
#
# SUBROUTINES CALLED- BANKCALL, GOMARK2, GOODEND, ENDMARK, WAITLIST
#
# ALARM OR ABORT MODES - NONE
#
# ERASABLE USED-VERBREG,MARKSTAT,QPRET,DSPTEM1
#
# OUTPUT MARKSTAT = VAC ADDRESS

# QPRET = NO. MARKS

MKVB51		TC	BANKCALL		# CLEAR DISPLAY FOR MARK VERB
		CADR	KLEENEX
		CAF	VB51			# DISPLAY MARK VB51
		TC	BANKCALL
		CADR	GOMARK4
		TCF	TERMSXT			# VB34-TERMINATE
		TCF	ENTANSWR		# V33-PROCEED-MARKING DONE
		TCF	MKVB5X			# ENTER-RECYCLE TO INITIAL MARK DISPLAY
		
TERMSXT		TC	CLEARMRK		# CLEAR MARK ACTIVITY.

		TC	CHECKMM
		MM	03
		TCF	+2
		TC	TERMP03
		TC	POSTJUMP
		CADR	TERM52
		
TERMP03		TC	UPFLAG
		ADRES	TRM03FLG
ENTANSWR	CAF	LOW9			# PUT VAC ADR IN MARKSTAT AND NO. OF
		MASK	MARKSTAT		# MARKS MADE IN QPRET BEFORE LEAVING
		TS	MARKSTAT		# SXTMARK
		COM
		INDEX	MARKSTAT
		AD	QPRET
## Page 233
		EXTEND
		BZMF	JAMIT			# NO MARKS MADE, SHOW IT IN QPRET, R53
		EXTEND				#	WILL PICK IT UP AND RECYCLE
		MP	BIT12			# THIS PUTS NUMBER MARKS-1 IN A
		AD	ONE
JAMIT		INDEX	MARKSTAT		# STORE NO OF MARKS MADE
		TS	QPRET
		INHINT				# SERVICE OPTSTALL INTERFACE WITH
		CAF	FIVE
		TC	WAITLIST
		EBANK=	MARKSTAT
		2CADR	ENDMARKS
		
		TC	ENDMARK			# KNOCKS DOWN MARKING FLAG + DOES ENDOFJOB
		
ENDMARKS	CAF	ONE
		TC	IBNKCALL
		CADR	GOODEND
MKVB5X		CAF	PRIO34
		MASK	MARKSTAT		# RE-DISPLAY VB51 IF MORE MARKS WANTED
		CCS	A			# AND VB50 IF ALL IN
		TCF	MKVB51			
MKVB50		CAF	R1D1			# OCT 16
		TS	DSPTEM1
		CAF	V50N25
		TCF	MKVB51	+3
		
V50N25		VN	5025
VB51		VN	5100
OCT37		=	LOW5

# PROGRAM NAME - MARKIT				DATE - 19 SEPT 1967
#
# CALLING SEQUENCE
#	FROM MARKRUPT IF CHAN 16 BIT 6 = 1
#
# EXIT
#	RESUME
#
# INPUT
#	CDUCHKWD.  ALSO ALL INITIALIZATION FOR MARKCONT
#
# OUTPUT
#	MKT2T1,MKCDUX,MKCDUY,MKCDUZ,MKCDUS,MKCDUT
#
# ALARM EXIT
#	NONE

MARKIT		CCS	CDUCHKWD
		TCF	+3			# DELAY OF CDUCHKWD CS IF PNZ
## Page 234
		TCF	+2
		CAF	ZERO
		AD	ONE			# 10 MS IF NO CHECK
		TC	WAITLIST
		EBANK=	MRKBUF1
		2CADR	MARKDIF
		
		TCF	RESUME
		
		SETLOC	SXTMARK1
		BANK
		
		COUNT	10/SXTMK
		
# PROGRAM NAME - MARKDIF			DATE- 19 SEPT 1967
#
# CALLING SEQUENCE
#	WAITLIST FROM MARKIT
#
# EXIT
#	TASKOVER OT IBNKCALL TO MARKCONT
#
# INPUT
# 	OUTPUT FROM MARKIT, INPUT TO MARKCONT, CDUCHKWD
#
# OUTPUT
#	RUPTSTOR - RUPTSTOR+3, RUPTREG3, RUPTSTOR+5 - RUPTSTOR+6
#
# ALARM EXIT
#	ALARM AND TASKOVER

MARKDIF		CA	CDUCHKWD		# IF DELAY CHECK IS ZERO OR NEG, ACP MARK
		EXTEND
		BZMF	MKACPT
		CS	BIT1
		TS	MKNDX			# SET INDEX -1
		CA	MKCDUX
		TC	DIFCHK			# SEE IF VEHICLE RATE TO MUCH AT MARK
		CA	MKCDUY
		TC	DIFCHK
		CA	MKCDUZ
		TC	DIFCHK
		
MKACPT		TC	IBNKCALL
		CADR	MARKCONT		# MARK DATA OK, WHAT DO WE DO WITH IT
		
DIFCHK		INCR	MKNDX			# INCREMENT INDEX

		EXTEND
		INDEX	MKNDX
## Page 235
		MSU	CDUX			# GET MARK(ICDU) - CURRENT(ICDU)
		CCS	A
		TCF	+4
		TC	Q
		TCF	+2
		TC	Q
		AD	NEG2			# SEE IF DIFFERENCE GREATER THAN 3 BITS
		EXTEND
		BZMF	-3			# NOT GREATER
		
		TC	ALARM			# COUPLED WITH PROGRAM ALARM
		OCT	00121
		
		TCF	TASKOVER		# DO NOT ACCEPT
		

back to top