;Released as public domain 28-Jan-1996 by the author Dave Dustin

	Section	Owner,Code
	Opt	C+,D+
	Include	mysystem.gs
	Include	library/eclipse.i
	Output	Work:Owner

VERSION	MACRO
	Dc.B	'Falcon CBCS Owner V2.03'
	ENDM
DATE	MACRO
	Dc.B	'18 October 92'
	ENDM
AUTHOR	MACRO
	Dc.B	'(c) 1992  David Dustin'
	ENDM

***************************************************************************
* Notes:
***************************************************************************
Start:	Move.L	D0,_ArgSize
	Move.L	A0,_ArgStart
	Move.L	SP,_SaveStack

	Sub.L	A1,A1
	CALLEXEC	FindTask
	Move.L	D0,A4
	Tst.L	pr_CLI(A4)
	Beq	fromWorkbench


	Lea	DOSLibrary(PC),A1
	Moveq	#0,D0
	CALL	OpenLibrary
	Move.L	D0,_DOSBase

	Lea	ECLIPSELibrary(PC),A1
	Moveq	#EclipseVer,D0
	CALL	OpenLibrary
	Tst.L	D0
	Beq	ExitToDos
	Move.L	D0,_ECLIPSEBase

	Move.L	_ArgStart,A0
	Move.L	_ArgSize,D0

	Cmp.B	#'?',(A0)
	Beq	Exit
	Cmp.B	#1,D0
	Beq	Exit
	Cmp.B	#0,D0
	Beq	Exit

	Lea	FileName,A1
	CALLECLIPSE	CopyData

	Moveq	#0,D1
	Move.L	#TestText,D2
	Move.L	#TestLen,D3
	CALL	OutputText

	Move.L	#FileName,D1
	CALL	GetFile
	Tst.L	D0
	Beq	Exit

	Addq.B	#1,TestNum
	Moveq	#0,D1
	Move.L	#TestText,D2
	Move.L	#TestLen,D3
	CALL	OutputText

.FileFound	Move.L	D0,_FileHandle
	Move.L	D1,_FileInfo

***************************************
Main:	Bsr	SetupSpace

	Move.L	_FileInfo,A0
	Move.L	124(A0),D0
	Moveq	#7,D1
	Lea	FileSize,A0
	CALLECLIPSE	ConvertDecimal
	Lea	BytesText(PC),A0
	Moveq	#6,D0
	CALL	CopyData

	Move.L	_FileInfo,A0
	Addq	#8,A0
	Lea	MyFileName,A1
	Moveq	#60,D0
	CALL	CopyData

	Lea	MyFileName,A0
	Lea	Name,A1
	Moveq	#38,D0
	CALL	CopyData

	Move.L	_FileInfo,A2
	Lea	132(A2),A1
	Lea	TimeText,A0
	CALL	Time12

	Addq	#2,A0

	Lea	132(A2),A1
	CALL	Date

	Move.L	_FileInfo,A0
	Lea	144(A0),A0
	Cmp.B	#0,(A0)
	Beq.S	.SysNameInstead

	Lea	40(A0),A0
	Cmp.L	#0,(A0)
	Bne.S	.NoNameComment

.SysNameInstead	Lea	SysName(PC),A0
	Lea	UpName,A1
	CALL	GetConfigEntry
	Tst.L	D0
	Beq.S	.SysNameUsed
	Lea	TheSys(PC),A0

.NoNameComment	Lea	UpName,A1
	Moveq	#26,D0
	CALL	CopyData

.SysNameUsed	Lea	ViewSpace,A1
	Move.L	#140,D0

.FindEndloop	Subq	#1,A1
	Cmp.B	#':',(A1)
	Beq.S	.FoundEnd
	Cmp.B	#'/',(A1)
	Beq.S	.FoundEnd
	DBra	D0,.FindEndloop
	Bra.S	.NoFilePath

.FoundEnd	Addq	#1,A1

.NoFilePath	Move.L	A1,_NameStart

	Lea	InfoName(PC),A0
	Bsr	GetNewFile
	Bne.S	.NoInfoFile

	Lea	MyFileName,A0
	Move.L	_TempFileStart,A1
	CALL	FindData

	Tst.L	D0
	Bne.S	.NoInfo

.FindLoop	Move.B	(A1)+,D0
	Cmp.B	#10,D0
	Beq.S	.NoInfo
	Cmp.B	#' ',D0
	Beq.S	.FindLoop

	Lea	-1(A1),A0
	Lea	InfoText,A1
	Moveq	#70,D0
	CALL	CopyData

.NoInfo	Move.L	_TempFileStart,A1
	Move.L	_TempFileSize,D0
	CALLEXEC	FreeMem

.NoInfoFile

***************************************
	Moveq	#0,D1
	Move.L	#PrintSpace,D2
	Move.L	#PrintSpaceLen,D3
	CALLECLIPSE	OutputText

***************************************
	Cmp.B	#' ',InfoText
	Beq	.NoInfoFile2

	Lea	InfoName2(PC),A0
	Bsr	GetNewFile
	Bne.S	.NoInfoFile2

	Lea	MyFileName,A0
	Move.L	_TempFileStart,A1
	CALL	FindData

	Tst.L	D0
	Bne.S	.NoInfo2

	Move.L	A1,_TempPointer

	Moveq	#0,D1
	Move.L	#EndText,D2
	Moveq	#0,D3
	CALL	OutputText

	Moveq	#0,D1
	Move.L	#ExtraInfo,D2
	Move.L	#ExtraInfoLen,D3
	CALL	OutputText

	Moveq	#0,D3
	Move.L	_TempPointer,D2
	Move.L	D2,A0

.Findloop	Move.B	(A0)+,D0
	Cmp.B	#0,D0
	Beq.S	.TypeExtraInfo
	Addq	#1,D3
	Cmp.B	#'-',D0
	Bne.S	.Findloop
	Cmp.B	#'-',(A0)
	Bne.S	.Findloop
	Cmp.B	#'-',1(A0)
	Bne.S	.Findloop
	Subq	#1,D3

.TypeExtraInfo	Moveq	#0,D1
	CALL	OutputText

.NoInfo2	Move.L	_TempFileStart,A1
	Move.L	_TempFileSize,D0
	CALLEXEC	FreeMem

.NoInfoFile2
***************************************
	Lea	ViewText(PC),A0
	Lea	ViewSpace,A1
	Moveq	#ViewTextLen,D0
	CALLECLIPSE	CopyData

	Lea	ViewSpace,A0
	CALL	LogTag

Error:	Move.L	_FileHandle,D1
	CALLDOS	Close

Exit:	Move.L	_ECLIPSEBase,A1
	CALLEXEC	CloseLibrary

ExitToDos:	Move.L	_DOSBase,A1
	CALLEXEC	CloseLibrary

	Moveq	#0,D0
	Move.L	_SaveStack,SP
	Rts

***************************************************************************
GetNewFile:	Move.L	_NameStart,A1
	Moveq	#13,D0
	CALLECLIPSE	CopyData
	Move.B	#0,(A1)

	Moveq	#0,D0
	Lea	FileName,A0
	Lea	_TempFileStart,A1
	Lea	_TempFileSize,A2
	CALL	ReadFile
	Tst.L	D0
	Rts

***************************************************************************
fromWorkbench:	Lea	pr_MsgPort(A4),A0
	CALLEXEC	WaitPort
	Lea	pr_MsgPort(A4),A0
	CALL	GetMsg
	Move.L	D0,A1

	CALL	Forbid
	CALL	ReplyMsg
	Move.L	_SaveStack,SP
	Rts

***************************************************************************
SetupSpace:	Lea	PrintSpace,A0
	Move.L	#ClearSpaceLen-1,D0

.loop	Move.B	#' ',(A0)+
	DBra	D0,.loop

	Moveq	#10,D0
	Move.B	D0,PrintSpace
	Move.B	D0,PrintSpace+1
	Move.B	D0,Return1
	Move.B	D0,Return2
	Move.B	D0,Return3
	Move.B	D0,Return4

	Lea	FileNameTxt(PC),A0
	Lea	FileText,A1
	Moveq	#FileNameTxtLen,D0
	CALLECLIPSE	CopyData

	Lea	SizeText,A1
	Moveq	#FileSizeTxtLen,D0
	CALL	CopyData

	Lea	UpLoadText,A1
	Moveq	#UpLoadedTxtLen,D0
	CALL	CopyData

	Lea	UpDateText,A1
	Moveq	#UpDateTxtLen,D0
	CALL	CopyData

	Lea	InfoText2,A1
	Moveq	#InfoTxtLen,D0
	CALL	CopyData

	Lea	EndText2,A1
	Moveq	#EndTxtLen,D0
	CALL	CopyData

	Rts

***************************************************************************
***************************************************************************
***************************************************************************
VerString:	Dc.B	0,'$VER: '
	VERSION
	Dc.B	' ('
	DATE
	Dc.B	')',0

***************************************
DOSLibrary:	DOSNAME
ECLIPSELibrary:	EclipseName
TestText:	Dc.B	'test point #'
TestNum:	Dc.B	'1'
TestLen	Equ	*-TestText
ViewText:	Dc.B	'Examined file: '
ViewTextLen	Equ	*-ViewText
BytesText:	Dc.B	' bytes',0
InfoName:	Dc.B	'Files.BBS',0
InfoName2:	Dc.B	'FilesInfo.BBS',0
TheSys:	Dc.B	'The '
SysName:	Dc.B	'sysop',0
FileNameTxt:	Dc.B	'[33;1mFileName:[0;37m'
FileNameTxtLen	Equ	*-FileNameTxt
FileSizeTxt:	Dc.B	'[33;1mSize:[0;37m'
FileSizeTxtLen	Equ	*-FileSizeTxt
UpLoadedTxt:	Dc.B	'[33;1mUpLoaded by[0;37m'
UpLoadedTxtLen	Equ	*-UpLoadedTxt
UpDateTxt:	Dc.B	'[33;1mUpLoaded:[0;37m'
UpDateTxtLen	Equ	*-UpDateTxt
InfoTxt	Dc.B	'[33;1mInfo:[0;37m'
InfoTxtLen	Equ	*-InfoTxt
EndTxt:	Dc.B	'[1m---------------------[0m'
EndTxtLen	Equ	*-EndTxt
ExtraInfo:	Dc.B	'[33;1mExtra Information:[0;37m'
ExtraInfoLen	Equ	*-ExtraInfo
	Even

***************************************
	Section	DataSpace,BSS

_ArgSize:	Ds.L	1
_ArgStart:	Ds.L	1
_SaveStack:	Ds.L	1
_OutputHandle:	Ds.L	1
_FileInfo:	Ds.L	1
_FileHandle:	Ds.L	1
_TempFileStart:	Ds.L	1
_TempFileSize:	Ds.L	1
_NameStart:	Ds.L	1
_TempPointer:	Ds.L	1
_DOSBase:	Ds.L	1
_ECLIPSEBase:	Ds.L	1

FileName:	Ds.B	142
ViewSpace:	Ds.B	ViewTextLen
MyFileName:	Ds.B	60

PrintSpace:	Ds.B	2
FileText:	Ds.B	FileNameTxtLen+1
Name:	Ds.B	38
SizeText:	Ds.B	FileSizeTxtLen+1
FileSize:	Ds.B	18
Return1:	Ds.B	1
UpLoadText:	Ds.B	UpLoadedTxtLen+1
UpName:	Ds.B	32
UpDateText:	Ds.B	UpDateTxtLen+1
TimeText	Ds.B	18
Return2:	Ds.B	1
InfoText2:	Ds.B	InfoTxtLen+1
InfoText:	Ds.B	72
Return3:	Ds.B	1
PrintSpaceLen	Equ	*-PrintSpace
EndText:	Ds.B	30
EndText2:	Ds.B	EndTxtLen
Return4:	Ds.B	1
ClearSpaceLen	Equ	*-PrintSpace
	Even
