;720K-lumps!
LibBits=%00000001
;if OpenLib/CloseLib is used, set LibBits!
;Bits 0-7=Dos,Int,Gfx,Con,Icon,MathF,MathT,MathI
;Presume that all macros destroy D0-D1/A0-A1, and preserves all other regs.
;Macros that use supplied work-registers preserve ALL registers.
;When calling a macro, A5 MUST BE INIT-ADR+32768 AND A6 MUST BE $DFF002!
;Most Macros CONTAIN GLOBAL LABELS, so use local only in-between Macro calls.
;Labels to define if relevant macros are used:
;Params (#Max longs)
;CurrHdl (current filehandle storage long)
;Buf (blk.b 81,0) for conversion & input routines
K=1024
INCDIR "CO:"
INCLUDE "Symbols.S"
INCLUDE "Makaron.S"
BufSize=10*11*K
ChunkSize=60*11*K
B:
	INIT
	OPENLIBS
	beq.w Quit
	OPENF CurrHdl-R(a5),#WWName,#_OLD
	beq.w Quit
	GETPARAMS Param-R(a5),#1
	beq.w Usage
	beq.w Quit
	ALLOC #BufSize,_Any		;buffer
	move.l d0,BufP-R(a5)
	beq.w Quit

	OPENF d6,Params-R(a5),#_OLD	;from source file
FileLp:	WRITELN "Press Enter to write Split file. (A+Enter to abort)"
	READF CurrHdl-R(a5),#Buf,#65		;press enter
	subq.w #1,d0
	bgt.w Abort
	OPENF d7,#Fname,#_NEW		;to dest file "Splitfil.?"
	moveq #(ChunkSize/BufSize)-1,d5
ChunkLp:move.w d5,-(SP)
	READF d6,BufP,#BufSize
	bne.s Last
	move.l d0,d5
	WRITEF d7,BufP,d5
	bne.s FErr
	move.w (SP)+,d5
	dbra d5,ChunkLp
	bra.s Cont
FErr:	addq.w #2,SP			;pop d5 off of stack
Cont:	CLOSEF d7
	addq.b #1,FChar-R(a5)		;increase .? char (A,B,C..)
	BRA.W FILELP

Last:	addq.w #2,SP			;pop d5 off of stack
	move.l d0,d5
	beq.s CFiles
	WRITEF d7,BufP,d5		;no bne err is needed cos close below
CFiles:	CLOSEF d7
Abort:	CLOSEF d6			;close big file

	FREE BufP-R(a5),#BufSize
Quit:	CLOSELIBS
	EXIT
	RTS					; !!
****************
Usage:	WRITELNA #Txt0
	bra.s Quit
************ VARS ************
BufP:	dc.l 0
CurrHdl:dc.l 0
Params:	blk.l 1,0
WWName:	dc.b "*",0
FName:	dc.b "SPLITFIL."
FChar:	dc.b "A",0
Buf:	blk.b 81,0
Txt0:	dc.b "Split ",$a9," Photon. Splits a big file into 660K-chunks.",10
	dc.b "CD to the destination dir and type SPLIT <bigfile>",10
	dc.b "Resulting files are called SPLITFIL.A, SPLITFIL.B etc.",0
