	.TITLE     ***  BDDONE -- PREPARE TO TERMINATE JOB

 

 

 

 

/

/ COPYRIGHT (C) 1976

/ DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

/

/ THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY

/ ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH

/ THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS

/ SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO-

/ VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

/ EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO

/ THESE LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE

/ SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

/

/ THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE

/ WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM-

/ MITMENT BY DIGITIAL EQUIPMENT CORPORATION.

/

/ DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY

/ OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

/

	.TITLE DESCRIPTION AND EDIT HISTORY

 

 

 

 

/

/ BDDONE

/

/ BDDONE SETS UP "ENDMSG" FOR USE BY END....  BDDONE ALSO SETS

/ JOBFND TO +1 IF A $JOB CARD IS THE ONLY CAUSE OF JOB TERMIN-

/ ATION, SO THAT THE NEXT JOB WILL BE RUN.  OTHERWISE JOBFND

/ IS SET TO 0, TERMINATING THE JOB FILE.

/

 

 

 

/

/ 100	20-AUG-76 (EAG)		MULTIACCESS BATCH INITIAL

/				VERSION.

/

	.TITLE MISCELLANEOUS ASSEMBLY CONSTANTS & MACROS

 

 

 

 

/

/ NOTE:  THIS PROGRAM USES NO ASSEMBLY PARAMETERS.  ALL

/	 PARAMETERIZED VALUES ARE OBTAINED FROM THE

/	 RESIDENT SECTION VIA INITIALIZATION CODE.

/

 

 

 

/

/ SPECIAL INSTRUCTIONS:

/

 

.INH=705522			/ INHIBIT INTERRUPTS.

.ENB=705521			/ ENABLE INTERRUPTS.

 

 

 

/

/ DEFINE DEBUGGING AID MACRO:

/

 

	.DEFIN .DEBUG MESSAG,WORD,FORM

	.ENDM

 

	.IFDEF %DEBUG

 

	.DEFIN .DEBUG MESSAG,WORD,FORM

	  .NOLST

	  .GLOBL .DBG

	  JMS* .DBG

	    .ASCII MESSAG@<0>

	    .DSA FORM

	    .DSA WORD

	  .LST

	.ENDM

 

	.ENDC

	.TITLE REFERENCES TO EXECUTIVE'S SCOM AREA

 

 

 

 

/

/ TIME VALUES:

/

 

SSM=160				/ SECONDS SINCE MIDNIGHT.

 

MO=166				/ CURRENT MONTH (1 = JANUARY)



DA=167				/ CURRENT DAY (WITHIN MONTH)



YR=170				/ CURRENT YEAR (0 = 1900)

	.TITLE REFERENCES TO BDRES AND OTHER BATCH OVERLAYS

 

 

 

 

/

/ DEFINE ENTRY POINT TO THIS OVERLAY:

/

 

	.GLOBL BDDONE

 

 

 

/

/ DEFINE ENTRY POINT TO BATCH OVERLAY WHICH

/ BDDONE EXITS TO:

/

 

	.GLOBL BDLGOF

 

 

 

/

/ OTHER LOCATIONS IN BATCH CONTROL VECTOR:

/

 

	.GLOBL JOBFND		/ JOB FOUND & EXECUTING FLAG.

				/ 0 => NO JOB BEING EXECUTED.

				/	(I.E., CURRENT JOB NODE

				/	IMAGE IS INVALID).

				/ 1 => JOB BEING EXECUTED,

				/	START-UP SEQUENCE OR

				/	END-OF-JOB SEQUENCE

				/	IN PROGRESS.

				/ 2 => JOB IS RUNNING.

				/ 3 => BATCH IS SCANNING TO

				/	$ERR CARD (JOB HAS

				/	BEEN KILLED).

 

	.GLOBL JOBERR		/ JOB ERROR FLAGS WORD.  (SEE

				/ BELOW).

 

 

 

/

/ ERROR FLAG BITS WITHIN JOBERR:

/

/	SIGN BIT -- TERMINATE JOB AT NEXT TDV READ.

/

/	ALL OTHER BITS -- INDICATE SOME SPECIFIC CAUSE OF JOB

/			TERMINATION.  MOST BITS ARE SET WHILE

/			SIMULTANEOUSLY SETTING THE SIGN BIT,

/			THUS STOPPING THE JOB AT NEXT TDV READ.

/			SOME ERRORS ALSO SIMULATE A ^Y, WHICH

/			CAUSES A TDV READ, THUS ABORTING THE

/			JOB IMMEDIATELY.  OTHER ERRORS SET A

/			BIT HERE AND SET JOBFND TO +3, CAUSING

/			A SCAN TO A $ERR CARD, THUS KILLING

/			THE JOB.  NOTE, HOWEVER, THAT A ^Y

/			SHOULD BE SIMULATED AND/OR JOBFND SET

/			TO +3 ONLY IF JOBFND IS CURRENTLY

/			+2 OR +3 (REMEMBER THAT JOBFND RANGES

/			FROM 0 TO +3).  IF JOBFND IS NOT +2

/			OR +3, ONLY THE ERROR FLAG BITS IN

/			JOBERR SHOULD BE SET.  ALSO NOTE THAT

/			ALL MANIPULATIONS OF THESE LOCATIONS

/			MUST TAKE PLACE WITH INTERRUPTS

/			INHIBITED.

/

/ THIS WORD IS PASSED TO THE JOB END PROCESSOR (END...) TO

/ TELL IT THE REASONS FOR JOB TERMINATION.

/

/ IF ANY BIT IN JOBERR IS SET BEFORE THE JOB IS LOGGED IN

/ TO TDV, THE ENTIRE JOB IS ABORTED.  THIS EVEN APPLIES TO

/ ERRORS WHICH NORMALLY CAUSE A SCAN TO A $ERR CARD.

/

/ SPECIFIC BIT DEFINITIONS:

/

 

JE.IN=200000+400000		/ ASSIGNMENT FAILURE WITH

				/ JOB INPUT FILE.

 

JE.SK=100000+400000		/ SEEK ERROR WITH JOB INPUT

				/ FILE.

 

JE.LST=040000+400000		/ ASSIGNMENT FAILURE WITH

				/ JOB LISTING OUTPUT FILE.

 

JE.NTR=020000+400000		/ ENTER ERROR WITH JOB LISTING

				/ OUTPUT FILE.

 

JE.LGN=010000+400000		/ ILLEGAL EXPLICIT LOGIN

				/ DEVICE/UFD SPECIFIED.

 

JE.JOB=004000+400000		/ JOB ATTEMPTED TO READ A $JOB

				/ CARD (JOB TERMINATES, THEN

				/ NEXT JOB IN JOB FILE IS RUN).

 

JE.EOF=002000+400000		/ JOB ATTEMPTED TO READ PAST

				/ END-OF-FILE (ON JOB FILE).

 

JE.END=001000+400000		/ JOB ATTEMPTED TO READ $END

				/ CARD.

 

JE.ERR=000400+400000		/ I/O READ ERROR ENCOUNTERED

				/ ON JOB INPUT FILE.

 

JE.WRT=000200+400000		/ I/O WRITE ERROR ENCOUNTERED

				/ ON LISTING FILE.  ^Y ALSO

				/ SIMULATED.

 

JE.TMA=000040+400000		/ JOB ABORTED BY TIME LIMIT

				/ OVERRUN.  ^Y ALSO SIMULATED.

 

JE.TMS=000020+400000		/ JOB STOPPED BY TIME LIMIT

				/ OVERRUN.

 

JE.TMK=000010			/ JOB KILLED BY TIME LIMIT

				/ OVERRUN.  JOBFND ALSO SET

				/ TO +3.

 

JE.ABRT=000004+400000		/ JOB ABORTED BY OPERATOR.

				/ ^Y ALSO SIMULATED.

 

JE.STP=000002+400000		/ JOB STOPPED BY OPERATOR.

 

JE.KIL=000001			/ JOB KILLED BY OPERATOR.

				/ JOBFND ALSO SET TO +3.

 

 

 

/

/ LOCATIONS WHICH SAVE EVENT VARIABLE VALUES PERTINENT TO

/ SPECIFIC ERRORS FLAGGED IN JOBERR:

/

 

	.GLOBL SK.EV		/ SAVE JOB COMMAND INPUT FILE

				/ SEEK EV VALUE (JE.SK ERROR).

 

	.GLOBL NTR.EV		/ SAVE LISTING OUTPUT FILE EN-

				/ TER EV VALUE (JE.NTR ERROR).

 

	.GLOBL WRT.EV		/ SAVE LISTING OUTPUT FILE

				/ WRITE EV VALUE (JE.WRT

				/ ERROR).

 

 

 

/

/ REFERENCES TO CPB'S AND ASSOCIATED EVENT VARIABLES:

/

 

	.GLOBL IN.CPB,IN.EV	/ CPB TO READ LINE FROM JOB

				/ INTO IN.BFR.

 

 

 

/

/ REFERENCES TO OTHER WORDS IN RESIDENT:

/

 

	.GLOBL RUNTIM		/ LOCATION WHICH ACCUMULATES

				/ THE RUN TIME (SECONDS)

				/ (CLOCK OR REAL TIME MINUS

				/ PARTITION WAIT TIME) FOR

				/ ALL JOBS IN THE CURRENT

				/ JOB FILE.

	.TITLE DEFINE "ENDMSG" TEXT BUFFER

 

 

 

 

/

/ "ENDMSG" IS FORMATTED BY THIS OVERLAY AND LATER PASSED

/ (BY BDLGOF) TO END....  IT CONTAINS INFORMATION DESCRIBING

/ THE CAUSE OF JOB TERMINATION.

/

/ FOR A DESCRIPTION OF ALL THE NUMBERS AND OPERATORS IN THE

/ .BLOCK STATEMENT, SEE THE TEXT BUFFER DEFINITIONS IN THE

/ RESIDENT SECTION.

/

 

 

	.GLOBL ENDMSG		/ DEFINE GLOBAL, SO BDLGOF

				/ CAN REFERENCE.

 

ENDMSG	.BLOCK 101+1+4/5*2+2

	.TITLE BDDONE MAIN ENTRY POINT

 

 

 

 

/

/ MAIN ENTRY POINT TO OVERLAY BDDONE.

/

/ AS STATED ABOVE, ALL THAT BDDONE DOES IS TO FORMAT ENDMSG

/ (LOCATED IN THE RESIDENT SECTION).  SO DO IT!

/

 

 

BDDONE	0

	.DEBUG <"BDDONE ENTERED, JOBERR = ">,JOBERR,21

	.DEBUG <<11><11>"JOBFND = ">,JOBFND,21

/

FMTEND	LAC (ENDMSG)		/ INITIALIZE CHARACTER PACKER

	JMS PCKINI		/ FOR ENDMSG.

/

	LAC* (DA)		/ SAVE CURRENT DATE.

	DAC FMTN.0

/

	LAC* (YR)		/ PACK CURRENT DATE -- YEAR,

	JMS PCKNUM

	  -3

/

	LAC* (MO)		/ MONTH,

	JMS PCKNUM

	  -2

/

	LAC* (DA)		/ AND DAY.

	JMS PCKNUM

	  -2

/

	LAC* (SSM)		/ PACK CURRENT TIME (SSM).

	JMS PCKNUM

	  -5

/

	LAC* (DA)		/ HAS DATE CHANGED?

	SAD FMTN.0

	SKP			/ SKIP IF IT HASN'T

	JMP FMTEND		/ JMP IF DATE HAS CHANGED WHILE

				/ WE WERE PACKING DATE/TIME --

				/ MUST TRY AGAIN TO ENSURE

				/ CONSISTENT TIME AND DATE.

/

	LAC* RUNTIM		/ INSERT JOB FILE RUN TIME.

	JMS PCKNUM

	  -6

/

	LAC* JOBFND		/ DETERMINE JOB STATUS CODE

	AAC -1			/ AT TIME OF JOB TERMINATION.

				/ 0 => JOB NEVER LOGGED IN

				/ 1 => JOB WAS EXECUTING

				/	NORMALLY AT TERMINATION

				/ 2 => JOB WAS SCANNING FOR

				/	$ERROR CARD.

	JMS PCKNUM		/ INSERT TERMINATION CODE.

	  -1

/

	.INH			/// SET JOBFND TO +1 IF JOBERR

	DZM* JOBFND		/// IS JE.JOB, +0 IF ANY OTHER

	LAC* JOBERR		/// ERROR FLAGS ARE SET.

	SAD (JE.JOB)		///

	ISZ* JOBFND		///

	.ENB			///

	DZM* JOBERR		/// ALSO CLEAR JOBERR AT THIS

				/// POINT.

/

	LMQ

	LAW -22

	DAC FMTN.0

/

FMTN.A	CLAC!LLS+1		/ SHIFT NEXT FLAG INTO AC.

	SZA!CLA			/ SKIP IF FLAG CLEAR.

	AAC 124-106		/ FLAG SET -- PACK "T".

	AAC 106			/ FLAG CLEAR -- PACK "F".

	JMS PACK57		/ PACK THE FLAG

	ISZ FMTN.0

	JMP FMTN.A

/

	LAC* SK.EV		/ PACK JOB INPUT FILE SEEK

	SPA!CLA			/ EVENT VARIABLE VALUE AS

	AAC 55-53		/ A SIGNED DECIMAL NUMBER.

	AAC 53

	JMS PACK57

	LAC* SK.EV

	SPA

	TCA

	JMS PCKNUM

	  -6

/

	LAC* NTR.EV		/ PACK JOB LISTING FILE ENTER

	SPA!CLA			/ EVENT VARIABLE VALUE AS

	AAC 55-53		/ A SIGNED DECIMAL NUMBER.

	AAC 53

	JMS PACK57

	LAC* NTR.EV

	SPA

	TCA

	JMS PCKNUM

	  -6

/

	LAC* IN.EV		/ PACK JOB INPUT FILE READ

	SPA!CLA			/ EVENT VARIABLE VALUE AS

	AAC 55-53		/ A SIGNED DECIMAL NUMBER.

	AAC 53			/ NOTE THAT AFTER A READ ERROR

	JMS PACK57		/ OCCURS, THE JOB IS TERMINATED

	LAC* IN.EV		/ AND NO FURTHER READS ARE

	SPA			/ ISSUED.  THEREFORE, IN.EV

	TCA			/ STILL CONTAINS THE E.V. VALUE

	JMS PCKNUM		/ FROM THE READ ERROR.

	  -6

/

	LAC* WRT.EV		/ PACK LISTING FILE WRITE

	SPA!CLA			/ EVENT VARIABLE VALUE AS

	AAC 55-53		/ A SIGNED DECIMAL NUMBER.

	AAC 53

	JMS PACK57

	LAC* WRT.EV

	SPA

	TCA

	JMS PCKNUM

	  -6

/

	JMS PCKFIN		/ ALL DONE!

	.DEBUG <<11><11>"ENDMSG:  ">,ENDMSG,50

	JMS* BDLGOF		/ GO LOGOFF FROM TDV.

 

 

 

FMTN.0	0			/ TEMPORARY USED ABOVE.

	.TITLE PACK57 -- SUBR. TO PACK 5/7 ASCII CHARACTERS

 

 

 

 

/

/ THIS SUBROUTINE PACKS A CHARACTER INTO A 5/7 ASCII TEXT

/ BUFFER (I.E., AN IOPS ASCII LINE BUFFER).  SUBROUTINE

/ PCKINI MUST BE CALLED BEFORE THIS ROUTINE IS CALLED, TO

/ INITIALIZE VARIOUS POINTERS, AND SUBROUTINE PCKFIN MUST

/ BE CALLED AFTERWARDS, TO PACK A CARRAIGE RETURN AND SET UP

/ THE WORD PAIR COUNT.

/

/ THIS ROUTINE EXPECTS THE ASCII CHARACTER IN THE LOW 7 BITS

/ OF THE AC.  THE HIGH BITS OF THE AC ARE IGNORED.

/

/ CALLING SEQUENCE:

/	LAC (CHARACTER)

/	JMS PACK57

/

/ REGISTERS ALTERED:

/	AC, LINK, SC (STEP-COUNTER)

/

/ VALUES RETURNED:

/	NONE

/

 

 

PACK57	0

	AND (177)		/ MASK OUT UNWANTED BITS.

	CLL			/ CLEAR LINK FOR ALS INSTR.

	XCT* PCK5.0		/ DO CHAR. ACTION.  EITHER ALS

				/ INSTR. OR JMP TO PCK5.E OR

				/ PCK5.F.  PCK5.0 POINTS TO

				/ TABLE PCK5.C.

	XOR* PCK5.1		/ MERGE CHAR. INTO WORD.

PCK5.A	ISZ PCK5.0		/ BUMP CHAR. ACTION POINTER.

PCK5.B	DAC* PCK5.1		/ STORE WORD CONTAINING CHAR.

	JMP* PACK57		/ RETURN!

 

 

/ CHARACTER ACTION TABLE.  THE XCT INSTRUCTION ABOVE PERFORMS

/ AN INSTRUCTION FROM THIS TABLE VIA A POINTER IN PCK5.0.

/ SIMPLE CASES SHIFT CHAR. INTO POSITION, OTHERS JMP TO

/ ACTION ROUTINES.

 

PCK5.C	ALS+10			/ ACTION FOR CHAR. 4

	CLL!RAL			/ ACTION FOR CHAR. 5

PCK5.D	JMP PCK5.E		/ ACTION FOR CHAR. 1

	ALS+4			/ ACTION FOR CHAR. 2

	JMP PCK5.F		/ ACTION FOR CHAR. 3

 

 

/ ACTION FOR CHARACTER 1

 

PCK5.E	ISZ PCK5.1		/ BUMP WORD POINTER

	ALS+13			/ SHIFT CHAR. INTO POSITION.

	JMP PCK5.A		/ GO STORE CHAR.

 

 

/ ACTION FOR CHARACTER 3 (THE SPLIT CHARACTER)

 

PCK5.F	CLL!RAR			/ SHIFT FIRST PART OF CHAR.

	RTR			/ INTO POSITION.

	DAC PCK5.2		/ SAVE REST OF CHAR. FOR LATER.

	AND (17)		/ MASK OUT FIRST PART.

	XOR* PCK5.1		/ MERGE INTO WORD.

	DAC* PCK5.1

	LAC (PCK5.C)		/ RESET CHAR. ACTION POINTER.

	DAC PCK5.0

	ISZ PCK5.1		/ BUMP WORD POINTER.

	LAW 760000		/ MASK OUT REMAINDER OF CHAR.

	AND PCK5.2

	RAR			/ ROTATE INTO POSITION.

	JMP PCK5.B		/ AND GO STORE THE WORD.

 

 

 

PCK5.0	-1			/ CHARACTER ACTION POINTER.

				/ POINTS TO TABLE PCK5.C ABOVE.

 

PCK5.1	-1			/ WORD POINTER.  POINTS TO WORD

				/ CONTAINING THE LAST (LOW-

				/ ORDER) BIT OF LAST CHARACTER

				/ INSERTED.

 

PCK5.2	0			/ TEMPORARY

 

PCK5.3	-1			/ BUFFER POINTER.  POINTS TO

				/ LINE BUFFER HEADER WORD.

				/ USED BY PCKFIN.

	.TITLE     PCKINI -- INITIALIZE 5/7 ASCII PACKING

 

 

 

 

/

/ SUBROUTINE TO INITIALIZE ROUTINE PACK57 FOR 5/7 ASCII

/ PACKING.  CALL WITH ADDRESS OF LINE BUFFER HEADER IN

/ AC.  NOTE THAT A TWO WORD LINE BUFFER HEADER (AS IN

/ I/O BUFFERS) IS ASSUMED.

/

/ CALLING SEQUENCE:

/	LAC (LINE BUFFER HEADER ADDRESS)

/	JMS PCKINI

/

/ REGISTERS ALTERED:

/	AC, LINK

/

/ VALUES RETURNED:

/	NONE

/

 

 

PCKINI	0

	DAC PCK5.3		/ STORE BUFFER POINTER.

	IAC

	DAC PCK5.1		/ AND WORD POINTER.

	LAC (PCK5.D)

	DAC PCK5.0		/ SET UP CHARACTER ACTION PTR.

	JMP* PCKINI

	.TITLE     PCKFIN -- FINISH 5/7 ASCII PACKING

 

 

 

 

/

/ THIS SUBROUTINE IS CALLED WHEN 5/7 ASCII PACKING IS

/ FINISHED.  IT PACKS A CARRAIGE RETURN INTO THE TEXT BUFFER

/ FOR USE AS A LINE TERMINATOR.  THEN IT CALCULATES THE WORD

/ PAIR COUNT AND SETS THE LINE BUFFER HEADER WORD APPRO-

/ PRIATELY.  THE DATA MODE (IN THE LINE BUFFER HEADER WORD)

/ IS SET TO IOPS ASCII.

/

/ CALLING SEQUENCE:

/	JMS PCKFIN

/

/ REGISTERS ALTERED:

/	AC, LINK, SC (STEP-COUNTER)

/

/ VALUES RETURNED:

/	NONE (EXCEPT COMPLETED TEXT BUFFER)

/

 

 

PCKFIN	0

	LAC (15)		/ PACK CARRAIGE RETURN LINE

	JMS PACK57		/ TERMINATOR.

	LAC PCK5.3		/ PICK UP BUFFER ADDRESS.

	TCA

	TAD PCK5.1		/ CALCULATE WORD PAIR COUNT,

	CLL!RAR			/ POSITION IN HIGH HALF OF

	SWHA			/ WORD, THEN SET IOPS ASCII

	TAD (1002)		/ DATA MODE AND ALLOW FOR

	DAC* PCK5.3		/ HEADER WORD PAIR.

	JMP* PCKFIN

	.TITLE     PCKNUM -- PACK A DECIMAL NUMBER

 

 

 

 

/

/ THIS ROUTINE ACCEPTS A BINARY NUMBER AND A CHARACTER OR

/ DIGIT COUNT.  THE NUMBER IS CONVERTED TO A DECIMAL ASCII

/ STRING WITH THE APPROPRIATE NUMBER OF DIGITS, AND THE

/ DIGITS PACKED USING SUBROUTINE PACK57.  IF THE NUMBER

/ IS LARGER THAN THE SPECIFIED NUMBER OF DECIMAL DIGITS,

/ THE HIGH ORDER DIGITS ARE LOST.  LEADING ZEROS ARE PACKED

/ WITHOUT MODIFICATION.

/

/ THE BINARY NUMBER IS PASSED IN THE AC.  THE CHARACTER OR

/ DIGIT COUNT IS SPECIFIED BY AN INSTRUCTION WHICH IMMED-

/ IATELY FOLLOWS THE JMS.  THIS INSTRUCTION SHOULD LOAD THE

/ AC WITH THE TWOS COMPLEMENT OF THE DIGIT COUNT.  IT WILL

/ USUALLY BE A LAW INSTRUCTION.

/

/ CALLING SEQUENCE:

/	LAC (NUMBER)

/	JMS PCKNUM

/	  LAW -DIGIT COUNT

/

/ REGISTERS ALTERED:

/	AC, LINK, MQ, SC

/

/ VALUES RETURNED:

/	NONE

/

 

 

PCKNUM	0

	DAC PCKN.0		/ SAVE NUMBER TO BE PACKED.

	XCT* PCKNUM		/ FETCH DIGIT COUNT.

	DAC PCKN.1		/ SET UP DIGIT COUNTER.

PCKN.A	LAC PCKN.1		/ COPY DIGIT COUNTER TO

	DAC PCKN.2		/ DIVISION COUNTER.

	LAC PCKN.0		/ SET UP FOR DIVISION LOOP.

	LMQ!CLAC

PCKN.B	SLK!CLAC!DIV		/ DIVIDE NUMBER BY 10. THE

	  12			/ APPROPRIATE NUMBER OF TIMES,

	ISZ PCKN.2		/ LEAVING FINAL REMAINDER (THE

	JMP PCKN.B		/ DIGIT) IN THE AC.

	AAC 60			/ CONVERT DIGIT TO ASCII.

	JMS PACK57		/ PACK IT AWAY.

	ISZ PCKN.1		/ PACKED ALL DIGITS?

	JMP PCKN.A		/ JMP IF NOT -- LOOP FOR NEXT.

	JMP* PCKNUM		/ DONE -- RETURN.

 

 

 

PCKN.0	0			/ TEMPORARY TO SAVE NUMBER TO

				/ BE PACKED.

 

PCKN.1	0			/ DIGIT COUNTER.

 

PCKN.2	0			/ DIVISION COUNTER.

 

 

 

	.END
