	.TITLE	UNPACK
	.ENABL	LSB
	.DSABL	GBL
	.GLOBL	RAD	.10

; R2 ->
; 0	- PROTECT
; 2	- NA
; 4	- ME
; 6	- EXT
; 10	- SIZE
; 12	- DBLK
; 14	- DATE
; 
; R1 -> "123456P123SSSSSDDDDDDDDDBBBBB"
;	 UNPACKMAC  12025-Jan-92   10

UNPACK::
	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	MOV	R4,-(SP)
	MOV	#MINI,R1
	MOVB	#' ,6(R1)
	TST	(R2)+
	BPL	1$
	MOVB	#202,6(R1)
1$:	MOV	(R2)+,R0
	CALL	RAD
	ADD	#3,R1
	MOV	(R2)+,R0
	CALL	RAD
	ADD	#4,R1
	MOV	(R2)+,R0
	CALL	RAD
	ADD	#3,R1

	MOV	(R2)+,R0
	MOV	#5,R3
	CALL	.10
	ADD	#5,R1

	TST	(R2)+

	MOV	R1,-(SP)

	MOV	(R2),R0
	BMI	BAD
	ASH	#-5,R0
	BIC	#^C37,R0
	BEQ	BAD
	CMP	R0,#31.
	BGT	BAD
	MOV	#2,R3
	CALL	.10
	ADD	#2,R1

	MOVB	#'-,(R1)+

	MOV	(R2),R3
	ASH	#-10.,R3
	BEQ	BAD
	CMP	R3,#12.
	BGT	BAD
	MOV	#3,R0
	MUL	R0,R3
	ADD	#<MONTH-3>,R3
2$:	MOVB	(R3)+,(R1)+
	SOB	R0,2$

	MOVB	#'-,(R1)+

	MOV	(R2),R0
	BIC	#^C37,R0
	ADD	#72.,R0
	MOV	#2,R3
	CALL	.10
	ADD	#2,R1

	TST	(SP)+

3$:	MOV	-(R2),R0
	MOV	#5,R3
	CALL	.10
	ADD	#5,R1

	MOV	(SP)+,R4
	MOV	(SP)+,R3
	MOV	(SP)+,R2
	MOV	(SP)+,R1
	MOV	(SP)+,R0
	RETURN

BAD:	MOV	(SP)+,R1
	MOV	#9.,R0
4$:	MOVB	#' ,(R1)+
	SOB	R0,4$
	CLR	@R2
	BR	3$

PRPACK::
	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	#MINI,R1
	MOV	R1,R2
	MOV	#6,R0
10$:	CMPB	(R1),#' 
	BEQ	20$
	CMPB	(R1)+,(R2)+
	SOB	R0,10$

20$:	MOVB	#'.,(R2)+

	MOV	#<MINI+6+1>,R1
	MOV	#3,R0
30$:	CMPB	(R1),#' 
	BEQ	40$
	MOVB	(R1)+,(R2)+
	SOB	R0,30$

40$:	MOV	#<MINI+6+1+3>,R1
50$:	CMP	R1,R2
	BEQ	60$
	MOVB	#' ,(R2)+
	BR	50$

60$:	MOV	(SP)+,R2
	MOV	(SP)+,R1
	MOV	(SP)+,R0
	RETURN

	.DSABL	LSB
UNPNX::	MOV	#MINI,R1
	TST	(R2)+
	CALL	1$
	CALL	1$
	MOVB	#'.,(R1)+
	CALL	1$
	CLRB	(R1)
	RETURN

1$:	MOV	(R2)+,R0
	CALL	RAD
	MOV	#3,R0
2$:	CMPB	(R1)+,#<' >
	BEQ	3$
	SOB	R0,2$
	RETURN
3$:	DEC	R1
	RETURN

.UNPACK::
	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	#MINI,R1
	MOVB	#' ,6(R1)
	TST	(R2)+
	BPL	1$
	MOVB	#202,6(R1)
1$:	MOV	(R2)+,R0
	CALL	RAD
	ADD	#3,R1
	MOV	(R2)+,R0
	CALL	RAD
	ADD	#4,R1
	MOV	(R2)+,R0
	CALL	RAD
	MOV	(SP)+,R2
	MOV	(SP)+,R1
	MOV	(SP)+,R0
	RETURN

MONTH:	.ASCII	"JanFebMarAprMayJunJulAugSepOctNovDec"
MINI::	.ASCII	"123456P123SSSSSDDDDDDDDDBBBBB"
	.EVEN
	.END
                                                                                                                                                                                                                                                                                             