*******************************************************************	
* TUS Converter Was Written by:	Printsoft		  *
*		P.o.Box 1290		  *
*		2302BG  Leiden		  *
*		Holland		  *
*				  *
* For Instructions check out the doc File.		  *
*******************************************************************	

	opt o+

	include	"dh0:include/libraries/dos_lib.i"
	include	"dh0:include/exec/exec_lib.i"
 
ExecBase=4
Mode_NewFile=1006
Mode_OldFile=1005	

	Section	Program,Code
	move.l	(ExecBase).w,a6
	lea	Dos_Name,a1
	jsr	_LVOOldOpenLibrary(a6)		
	move.l	d0,Dos_Base
	beq	DosError

	move.l	#Window,d1
	move.l	#Mode_OldFile,d2
	move.l	Dos_Base,a6
	jsr	_LVOOpen(a6)
	move.l	d0,Window_Base
	beq	WindowError

	move.l	Window_Base,d1
	move.l	#Text1,d2
	moveq.l	#19,d3
	jsr	_LVOWrite(a6)		

	move.l	Window_Base,d1
	move.l	#LoadFile,d2
	moveq.l	#80,d3
	jsr	_LVORead(a6)
	lea	LoadFile,a0
	move.b	#0,-1(a0,d0)
	
	move.l	Window_Base,d1
	move.l	#Text2,d2
	moveq.l	#20,d3
	jsr	_LVOWrite(a6)		
	
	move.l	Window_Base,d1
	move.l	#SaveFile,d2
	moveq.l	#80,d3
	jsr	_LVORead(a6)
	lea	SaveFile,a0
	move.b	#0,-1(a0,d0)

	move.l	#LoadFile,d1
	moveq	#-2,d2
	jsr	_LVOLock(a6)
	move.l	d0,LockSave
	beq	FileError
	
	move.l	LockSave,d1
	move.l	#FileInfo,d2
	jsr	_LVOExamine(a6)
	tst.l	d0
	beq	FileError

	lea	FileInfo,a0
	move.l	124(a0),FileLenght
	
	move.l	LockSave,d1
	jsr	_LVOUnLock(a6)

	move.l	(ExecBase).w,a6
	move.l	FileLenght,d0
	move.l	#$10001,d1
	jsr	_LVOAllocMem(a6)
	move.l	d0,SourceMem
	beq	MemError1

	move.l	FileLenght,d0
	move.l	#$10001,d1
	jsr	_LVOAllocMem(a6)
	move.l	d0,DestMem
	beq	MemError2
	
	move.l	Dos_Base,a6
	move.l	#LoadFile,d1
	move.l	#Mode_OldFile,d2
	jsr	_LVOOpen(a6)
	move.l	d0,File_Base
	beq	CanNotOpenFile
	move.l	File_Base,d1
	move.l	SourceMem,d2
	move.l	FileLenght,d3
	jsr	_LVORead(a6)
	move.l	File_Base,d1
	jsr	_LVOClose(a6)

	move.l	SourceMem,a0
	move.l	DestMem,a1
	lea	Tabel,a2
	lea	$dff000,a5
	moveq.l	#0,d0
	Move.l	FileLenght,d1
ConvertLoop
	move.b	(a0)+,d0
	move.b	(a2,d0.w),(a1)+	
	move.b	d0,$180(a5)	
	subq.l	#1,d1	
	bne.s	ConvertLoop

	move.l	#SaveFile,d1
	move.l	#Mode_NewFile,d2
	jsr	_LVOOpen(a6)
	move.l	d0,File_Base
	beq.s	CanNotOpenFile
	move.l	File_Base,d1
	move.l	DestMem,d2
	move.l	FileLenght,d3
	jsr	_LVOWrite(a6)
	move.l	File_Base,d1
	jsr	_LVOClose(a6)
CanNotOpenFile
	move.l	(ExecBase).w,a6
	move.l	DestMem,a1	
	move.l	FileLenght,d0
	jsr	_LVOFreeMem(a6)
MemError2	
	move.l	SourceMem,a1	
	move.l	FileLenght,d0
	jsr	_LVOFreeMem(a6)
MemError1
FileError	
	move.l	Dos_Base,a6
	move.l	Window_Base,d1
	jsr	_LVOClose(a6)
WindowError
	movea.l	(ExecBase).w,a6
	movea.l	Dos_Base,a1
	jsr	_LVOCloseLibrary(a6)
DosError
	moveq.l	#0,d0
	rts

	Section	Data,Data	
Dos_Base	dc.l	0
Window_Base	dc.l	0
LockSave	dc.l	0
SourceMem	dc.l	0
DestMem	dc.l	0
FileLenght	dc.l	0
File_Base	dc.l	0
Window	dc.b	"con:0/75/640/50/ Printsoft's Text Converter",0
Dos_Name	dc.b	"dos.library",0
Text1	dc.b	"Text File To Read :",0
Text2	dc.b	$a,"Text File To Write:",0
Tabel	include	"df0:source/tabel.dev"

	Section	Leeg,BSS
LoadFile	ds.b	80
SaveFile	ds.b	80
FileInfo	ds.l 	260

