
	movem.l a0-a6/d0-d7,-(a7)
	lea Arguments(pc),a1
	cmpi #1,d0
	ble.s Error_HFile
	subq #2,d0

Argument10:
 	move.b (a0)+,(a1)+
	dbf d0,Argument10

	bsr.L OpenDosLibrary
	bsr.L Open_ConHandle

	lea Arguments(pc),a0
Argument20:
	move.b (a0)+,d1
	cmpi.b #"-",d1
	beq.L Options
	bra.s Option_h
Fin_Arguments:
	lea Status_Options(pc),a0
	btst #1,(a0)
	bne.L Do_Cut
	btst #2,(a0)
	bne.L Do_Maj
	btst #3,(a0)
	bne.L Do_Min
	btst #4,(a0)
	bne.L Do_Diff
	btst #5,(a0)
	bne.L Do_Merge
	btst #6,(a0)
	bne.L Do_Ami
	btst #7,(a0)
	bne.L Do_Ibm

	bra.s Option_h
Fin_HFile:
	movem.l (a7)+,a0-a6/d0-d7
	rts

Error_HFile:
	bsr.L OpenDosLibrary
	bsr.L Open_ConHandle
	move.l #Txt1,d2
	move.l #Txt2-txt1,d3
	bsr.L Ecrire_ConHandle
	bra.s fin_HFile

Option_h:
	bsr.s Ecrire_Entete
Option_h1:
	move.l #Txt5,d2
	move.l #Txt6-txt5,d3
	bsr.L Ecrire_ConHandle
	bra.s fin_HFile
Ecrire_Entete:
	move.l #Txt3,d2
	move.l #Txt4-txt3,d3
	bsr.L Ecrire_ConHandle
	rts
Options:
	move.l a0,-(a7)
	bsr.s Ecrire_Entete
	move.l (a7)+,a0
	move.b (a0)+,d1
	cmpi.b #"c",d1
	beq.s Option_c
	cmpi.b #"m",d1
	beq.s Option_m0
	cmpi.b #"M",d1
	beq.s Option_m1
	cmpi.b #"d",d1
	beq.s Option_d
	cmpi.b #"j",d1
	beq.s Option_j
	cmpi.b #"p",d1
	beq.s Option_p
	cmpi.b #"a",d1
	beq.s Option_a
	bra.s Option_h1
Option_c:
	move.b (a0)+,d1
	lea Status_Options(pc),a1
	bset #1,(a1)
	move.b d1,Nombre_Cut
	bsr.s Cherche_FichierArg
	bra.L Fin_Arguments
Option_m0:
	lea Status_Options(pc),a1
	bset #2,(a1)
	bsr.s Cherche_FichierArg
	bra.L Fin_Arguments
Option_M1:
	lea Status_Options(pc),a1
	bset #3,(a1)
	bsr.s Cherche_FichierArg
	bra.L Fin_Arguments
Option_d:
	lea Status_Options(pc),a1
	bset #4,(a1)
	bsr.s Cherche_FichierAux
	bsr.s Cherche_FichierArg
	bra.L Fin_Arguments
Option_j:
	lea Status_Options(pc),a1
	bset #5,(a1)
	bsr.s Cherche_FichierAux
	bsr.s Cherche_FichierArg
	bra.L Fin_Arguments
Option_a:
	lea Status_Options(pc),a1
	bset #6,(a1)
	bsr.s Cherche_FichierArg
	bra.L Fin_Arguments
Option_p:
	lea Status_Options(pc),a1
	bset #7,(a1)
	bsr.s Cherche_FichierArg
	bra.L Fin_Arguments

Cherche_FichierArg:
	lea Fichier_Arg(pc),a2
Cherche_FichierArg10:
	move.b (a0)+,d1
	cmpi.b #" ",d1
	beq.s Cherche_FichierArg10
Cherche_FichierArg20:
	move.b d1,(a2)+
	move.b (a0)+,d1
	tst.b d1
	bne.s Cherche_FichierArg20
	clr.b (a2)
	rts

Cherche_FichierAux:
	lea Fichier_Aux(pc),a2
Cherche_FichierAux10:
	move.b (a0)+,d1
	cmpi.b #" ",d1
	beq.s Cherche_FichierAux10
Cherche_FichierAux20:
	move.b d1,(a2)+
	move.b (a0)+,d1
	cmpi.b #" ",d1
	bne.s Cherche_FichierAux20
	clr.b (a2)
	rts

Do_Cut:
	move.l #Fichier_Arg,d0
	moveq #0,d1
	move.b Nombre_Cut,d1
	subi.b #$30,d1
	bsr.s Cut
	tst.l d0
	beq.L Error_HFile
	bra.L Fin_Hfile

;
; d0 = Cut(Fichier,Nombre)
;          d0      d1

Cut:
	movem.l a0-a6/d1-d7,-(a7)
	cmpi.b #$2,d1
	blt.L Error_Cut
	cmpi.b #$9,d1
	bgt.L Error_Cut	
	move.l d1,d6		;diviseur
	moveq #0,d4
	move.l d0,d7		;nom
	move.l d0,d1
	bsr.L Lock_Read		;obtenir le lock
	move.l d0,d4
	beq.L Error_Cut
	move.l d4,a5
	moveq #0,d5		;buffer pour InfoBlock
	move.l #1000,d0
	bsr.L AllocMem_CHIP
	move.l d0,d5
	beq.L Error_Cut
	move.l d4,d1
	move.l d5,d2
	bsr.L Examine		;examiner le fichier
	move.l d5,a0
	move.l 124(a0),d4	;taille du fichier
	move.l d5,a1
	move.l #1000,d0
	bsr.L FreeMem
	move.l a5,d1
	bsr.L Unlock

	lea FileHandle1(pc),a0
	clr.l (a0)
	move.l d7,d1
	bsr.L Open_Old
	move.l d0,FileHandle1
	beq.L Error_Cut
	move.l d6,d0
	move.l d4,d1
	bsr.L Divu
	move.l d0,d6
	addq.l #1,d6

	moveq #0,d5
	move.l d6,d0
	bsr.L AllocMem_CHIP
	move.l d0,d5
	beq.s Error_Cut

	move.l d7,a0
Cut05:
	tst.b (a0)+
	bne.L Cut05
	move.b #".",-(a0)
	move.b #".",(a0)+
	move.b #"0",(a0)+ 	
	clr.b (a0)+
	subq.l #2,a0
	move.l a0,a4
	move.l d5,d2
	move.l d6,d3
	bsr.L ReadFichier1	
Cut10:
	move.l d0,d3
	lea FileHandle2(pc),a1
	clr.l (a1)

	move.l d7,d1
	bsr.L Open_New
	move.l d0,FileHandle2
	beq.s Cut50
	move.l d5,d2
	bsr.L WriteFichier2	
	move.l FileHandle2,d1

	bsr.L Close
	addq.b #1,(a4)
	move.l d5,d2
	move.l d6,d3
	bsr.L ReadFichier1	
	tst.l d0
	bne.s Cut10

Cut50:	
	move.l d5,a1
	move.l d6,d0
	bsr.L FreeMem
	move.l FileHandle1,d1
	bsr.L Close
	moveq #-1,d0
Fin_Cut:
	movem.l (a7)+,a0-a6/d1-d7
	rts

Error_Cut:
	moveq #0,d0
	bra.s Fin_Cut

;
; d0 = Divu(Diviseur,Divise)
;	    d0       d1


Divu:
	movem.l d1/d2,-(a7)
	moveq #0,d2
Divu10:
	sub.l d0,d1
	addq.l #1,d2
	cmp.l d0,d1
	bge.s Divu10
	move.l d2,d0
	movem.l (a7)+,d1/d2
	rts

Do_Min:
	move.l #Fichier_Arg,d0
	moveq #1,d1
	bsr.s MajMin
	tst.l d0
	beq.L Error_HFile
	bra.L Fin_Hfile
Do_Maj:
	move.l #Fichier_Arg,d0
	moveq #0,d1
	bsr.s MajMin
	tst.l d0
	beq.L Error_HFile
	bra.L Fin_Hfile
;
; d0 = MajMin(Nom,MAJ/MIN)
;             d0  d1

MajMin:
	movem.l a0-a6/d1-d7,-(a7)
	movem.l d0/d1,-(a7)
	move.l d0,a0
	lea Tmp(pc),a1
	move.l #40,d0
	bsr.L CopyMemQuick
	movem.l (a7)+,d0/d1
	lea Tmp(pc),a0
MajMin1:
	tst.b (a0)+
	bne.s MajMin1
	move.b #".",-(a0)
	move.b #".",(a0)
	move.b #"t",(a0)+
	move.b #"m",(a0)+
	move.b #"p",(a0)+
	clr.b (a0)+
	move.l d1,d4
	move.l d0,d1
	move.l d0,d3
	move.l #Tmp,d2

	bsr.L Rename

	tst.l d0
	beq.L Error_MajMin	;error
	move.l d3,d1
	bsr.L Open_New		;ouvre le fichier à creer	
	move.l d0,FileHandle1
	beq.L Error_MajMin	;error

	move.l #Tmp,d1
	bsr.L Open_Old		;ouvre le fichier tmp	
	move.l d0,FileHandle2
	beq.L Error_MajMin	;error

	moveq #0,d5
	move.l #20000,d0	;Allocation de 20 K
	bsr.L AllocMem_CHIP	;pour donnees fichier 1 et 2
	move.l d0,d5		;location
	beq.s Error_MajMin	;error	

	move.l d5,d2
	move.l #20000,d3	
	bsr.L ReadFichier2	;lit fichier tmp
MajMin10:
	move.l d0,d3
	subq.l #1,d0
	move.l d5,a0
MajMin20:
	move.b (a0),d1

	cmpi.b #1,d4		;transformer en majuscule
	bne.s MajMin30		;non
	cmpi.b #"a",d1		;< que a
	blt.s MajMin40		;plus petit, on sort
	cmpi.b #"z",d1		;> que z
	bgt.s MajMin40		;plus grand, on sort
	bclr #5,d1		;convertir en majuscule
	bra.s MajMin40
MajMin30:
	cmpi.b #"A",d1		;< que A
	blt.s MajMin40		;plus petit, on sort
	cmpi.b #"Z",d1		;> que Z
	bgt.s MajMin40		;plus grand, on sort
	bset #5,d1		;convertir en minuscule
MajMin40:
	move.b d1,(a0)+
	dbf d0,MajMin20

	move.l d5,d2
	bsr.s WriteFichier1
	move.l d5,d2
	move.l #20000,d3	
	bsr.s ReadFichier2	;lit fichier tmp
	tst.l d0
	bne.s MajMin10

	bsr.s FreeMem_20000
	bsr.s CloseFile1
	bsr.s CloseFile2
	move.l #Tmp,d1
	bsr.L DeleteFile
	tst.l d0
	beq.s Error_MajMin	;error
	
	moveq #-1,d0
Fin_MajMin:
	movem.l (a7)+,a0-a6/d1-d7
	rts

Error_MajMin:
	moveq #0,d0
	bra.s Fin_MajMin
FreeMem_20000:
	move.l #20000,d0
	move.l d5,a1
	bsr.L FreeMem		;Liberer la mem
	rts
ReadFichier1:
	move.l FileHandle1,d1
	bsr.L Read
	rts
WriteFichier2:
	move.l FileHandle2,d1
	bsr.L Write
	rts
ReadFichier2:
	move.l FileHandle2,d1
	bsr.L Read
	rts
WriteFichier1:
	move.l FileHandle1,d1
	bsr.L Write
	rts
CloseFile1:
	move.l FileHandle1,d1
	bsr.L Close
	rts
CloseFile2:
	move.l FileHandle2,d1
	bsr.L Close
	rts
	

Do_Diff:
	move.l #Fichier_Arg,d0
	move.l #Fichier_Aux,d1
	bsr.s Diff
	cmpi.l #2,d0
	beq.L Error_HFile
	tst.l d0
	beq.S Do_Diff10
	move.l #Txt7,d2
	move.l #Txt8-Txt7,d3
	bsr.L Ecrire_ConHandle
	bra.L Fin_Hfile
Do_Diff10:
	move.l #Txt9,d2
	move.l #Txt10-Txt9,d3
	bsr.L Ecrire_ConHandle
	bra.L Fin_Hfile

;
;  Ok = Diff(FileName1,Filename2)
;  d0	     d0        d1	


Diff:
	movem.l a0-a6/d1-d7,-(a7)
	move.l d1,d4		;nom 2d fichier
	move.l d0,d1
	bsr.L Open_Old		;ouvre le 1e fichier	
	move.l d0,FileHandle1
	beq.s Error_Diff1	;error

	moveq #0,d5
	move.l #20000,d0	;Allocation de 20 K
	bsr.L AllocMem_CHIP	;pour donnees fichier 1 et 2
	move.l d0,d5		;location
	bne.s Diff10		;ok	
	bsr.L CloseFile1	;Fermer fichier1
	bra.s Error_Diff	;et error

Diff10:
	moveq #0,d7
Diff11:
	bsr.s Diff20
	move.l d5,d2
	move.l #20000,d3
	bsr.L ReadFichier1
	bsr.s Diff40
	add.b d6,d7
	tst.l d0
	bne.s Diff11
	bsr.L CloseFile1

	move.l d4,d1
	bsr.L Open_Old		;ouvre le 2d fichier	
	move.l d0,FileHandle2
	bne.s Diff60		;ok
	bsr.L FreeMem_20000
	bra.s Error_Diff1	;error

Diff60:
	moveq #0,d4
Diff61:
	bsr.s Diff20
	move.l d5,d2
	move.l #20000,d3
	bsr.L ReadFichier2
	bsr.s Diff40
	add.b d6,d4
	tst.l d0
	bne.s Diff61

	bsr.L CloseFile2
	bsr.L FreeMem_20000
	cmp.b d4,d7
	bne.s Error_Diff

	moveq #-1,d0
Fin_Diff:
	movem.l (a7)+,a0-a6/d1-d7
	rts
Error_Diff:
	moveq #0,d0
	bra.s Fin_Diff
Error_Diff1:
	moveq #2,d0
	bra.s Fin_Diff

Diff20:
	move.l #19999,d1
	move.l d5,a0
Diff30:
	clr.b (a0)+	
	dbf d1,Diff30
	rts

Diff40:
	move.l #19999,d1
	move.l d5,a0
	moveq #0,d6
Diff50:
	add.b (a0)+,d6	
	dbf d1,Diff50
	rts

Do_Merge:
	move.l #Fichier_Arg,d0
	move.l #Fichier_Aux,d1
	bsr.s Merge
	tst.l d0
	beq.L Error_HFile
	bra.L Fin_Hfile

;
;  Ok = Merge(FileName1,Filename2)
;  d0	      d0        d1	


Merge:
	move.l d0,d3
	move.l d1,d4
	bsr.L Open_Old		;ouvre le 2d fichier	
	move.l d0,FileHandle2
	beq.s Error_Merge	;error
	move.l d3,d1
	bsr.L Open_Old		;ouvre le 1e fichier	
	move.l d0,FileHandle1
	bne.s Merge10		;ok
	bsr.L CloseFile2	;error, on ferme 2d fichier
	bra.s Error_Merge	;et on quitte
Merge10:
	move.l FileHandle1,d1
	bsr.L Seek_End		;Position fin fichier1
	moveq #0,d4
	move.l #20000,d0	;Allocation de 20 K
	bsr.L AllocMem_CHIP	;pour donnees fichier2
	move.l d0,d4
	beq.s Error_Merge	;Pas de buffer	

Merge20:
	move.l d4,d2		;Lecture
	move.l #20000,d3	;de 20 k
	bsr.L ReadFichier2	;du fichier 2
	move.l d0,d5		;Nombre d'octets lus
	move.l d0,d3		;Taille
	move.l d4,d2		;Buffer
	bsr.L WriteFichier1	;Ecrire
	tst.l d5
	bne.s Merge20
	
	move.l #20000,d0
	move.l d4,a1
	bsr.L FreeMem		;Liberer la mem
	bsr.L CloseFile1	;Fermer fichier1
	bsr.L CloseFile2	;Fermer fichier2

	moveq #-1,d0
Fin_Merge:
	rts
Error_Merge:
	moveq #0,d0
	bra.s Fin_Merge

Do_Ami:
	move.l #Fichier_Arg,d0
	moveq #0,d1
	bsr.s Ibm
	tst.l d0
	beq.L Error_HFile
	bra.L Fin_Hfile
Do_Ibm:
	move.l #Fichier_Arg,d0
	moveq #1,d1
	bsr.s Ibm
	tst.l d0
	beq.L Error_HFile
	bra.L Fin_Hfile

;
; d0 = Ibm(Nom,0d/0a)
;         d0   d1
;
; d1 = 0   IBM   --> AMIGA
; d1 = 1   AMIGA --> IBM
;

Ibm:
	movem.l a0-a6/d1-d7,-(a7)
	move.l d1,d4
	move.l d0,d1
	movem.l d0/d1,-(a7)
	move.l d0,a0
	lea Tmp(pc),a1
	move.l #40,d0
	bsr.L CopyMemQuick
	movem.l (a7)+,d0/d1
	lea Tmp(pc),a0
Ibm1:
	tst.b (a0)+
	bne.s Ibm1
	move.b #".",-(a0)
	move.b #".",(a0)
	move.b #"t",(a0)+
	move.b #"m",(a0)+
	move.b #"p",(a0)+
	clr.b (a0)+
	move.l d0,d3
	move.l #Tmp,d2
	bsr.L Rename
	tst.l d0
	beq.L Error_Ibm		;error
	move.l d3,d1
	bsr.L Open_New		;ouvre le fichier à creer	
	move.l d0,FileHandle1
	beq.L Error_Ibm		;error

	move.l #Tmp,d1
	bsr.L Open_Old		;ouvre le fichier tmp	
	move.l d0,FileHandle2
	beq.L Error_Ibm		;error

	moveq #0,d5
	move.l #20000,d0	;Allocation de 20 K
	bsr.L AllocMem_CHIP	;pour donnees fichier 1 et 2
	move.l d0,d5		;location
	beq.L Error_Ibm		;error	

	moveq #0,d6
	move.l #40000,d0	;Allocation de 40 K
	bsr.L AllocMem_CHIP	;pour donnees fichier transform
	move.l d0,d6		;location
	beq.L Error_Ibm		;error	

	move.l d5,d2
	move.l #20000,d3	
	bsr.L ReadFichier2	;lit fichier tmp
Ibm10:
	moveq #0,d3
	subq.l #1,d0
	move.l d5,a0
	move.l d6,a1		;location buffer transf
Ibm20:
	move.b (a0),d1
	addq.l #1,d3		;inc taille

	cmpi.b #1,d4		;transformer en ibm
	bne.L Ibm60

;----------------------------------------------------------------
;  		Transformer en IBM
;----------------------------------------------------------------

	cmpi.b #$a,d1		;ENTER
	beq.L Ibm36		;oui

	cmpi.b #$e9,d1		;é
	beq.s Ibm21
	cmpi.b #$e8,d1		;è
	beq.s Ibm22
	cmpi.b #$ea,d1		;ê
	beq.s Ibm23
	cmpi.b #$eb,d1		;ë
	beq.s Ibm24
	cmpi.b #$e0,d1		;à
	beq.s Ibm25
	cmpi.b #$e2,d1		;â
	beq.s Ibm26
	cmpi.b #$e4,d1		;ä
	beq.s Ibm27
	cmpi.b #$f4,d1		;ô
	beq.s Ibm28
	cmpi.b #$f6,d1		;ö
	beq.s Ibm29
	cmpi.b #$f9,d1		;ù
	beq.s Ibm30
	cmpi.b #$fb,d1		;û
	beq.s Ibm31
	cmpi.b #$fc,d1		;ü
	beq.s Ibm32
	cmpi.b #$ee,d1		;î
	beq.s Ibm33
	cmpi.b #$ef,d1		;ï
	beq.s Ibm34
	cmpi.b #$e7,d1		;ç
	bne.s Ibm40

	move.b #$87,(a1)+	;ç
	bra.s ibm50	
Ibm21:
	move.b #$82,(a1)+	;é
	bra.s ibm50	
Ibm22:
	move.b #$8a,(a1)+	;è
	bra.s ibm50	
Ibm23:
	move.b #$88,(a1)+	;ê
	bra.s ibm50	
Ibm24:
	move.b #$89,(a1)+	;ë
	bra.s ibm50
Ibm25:
	move.b #$85,(a1)+	;à
	bra.s ibm50	
Ibm26:
	move.b #$86,(a1)+	;â
	bra.s ibm50	
Ibm27:
	move.b #$84,(a1)+	;ä
	bra.s ibm50	
Ibm28:
	move.b #$93,(a1)+	;ô
	bra.s ibm50
Ibm29:
	move.b #$94,(a1)+	;é
	bra.s ibm50	
Ibm30:
	move.b #$97,(a1)+	;
	bra.s ibm50	
Ibm31:
	move.b #$96,(a1)+	;
	bra.s ibm50	
Ibm32:
	move.b #$81,(a1)+	;
	bra.s ibm50
Ibm33:
	move.b #$8c,(a1)+	;
	bra.s ibm50	
Ibm34:
	move.b #$8b,(a1)+	;
	bra.s ibm50	
	
Ibm36:
	move.b #$d,(a1)+	;on ajoute 0d
	move.b #$a,(a1)+	;on ajoute 0a
	addq.l #1,d3		;inc taille
	bra.s Ibm50
Ibm40:
	move.b d1,(a1)+
Ibm50:
	move.b d1,(a0)+
	dbf d0,Ibm20
	bra.L Ibm90

;----------------------------------------------------------------
;  		Transformer en AMIGA
;----------------------------------------------------------------

Ibm60:
	cmpi.b #$d,d1
	beq.L Ibm80

	cmpi.b #$82,d1		;
	beq.s Ibm61
	cmpi.b #$8a,d1		;
	beq.s Ibm62
	cmpi.b #$88,d1		;
	beq.s Ibm63
	cmpi.b #$89,d1		;
	beq.s Ibm64
	cmpi.b #$85,d1		;
	beq.s Ibm65
	cmpi.b #$86,d1		;
	beq.s Ibm66
	cmpi.b #$84,d1		;
	beq.s Ibm67
	cmpi.b #$93,d1		;
	beq.s Ibm68
	cmpi.b #$94,d1		;
	beq.s Ibm69
	cmpi.b #$97,d1		;
	beq.s Ibm70
	cmpi.b #$96,d1		;
	beq.s Ibm71
	cmpi.b #$81,d1		;
	beq.s Ibm72
	cmpi.b #$8c,d1		;
	beq.s Ibm73
	cmpi.b #$8b,d1		;
	beq.s Ibm74
	cmpi.b #$87,d1		;
	bne.s Ibm40

	move.b #$e7,(a1)+
	bra.s Ibm50	

Ibm61:
	move.b #$e9,(a1)+
	bra.s Ibm50	
Ibm62:
	move.b #$e8,(a1)+
	bra.s Ibm50	
Ibm63:
	move.b #$ea,(a1)+
	bra.L Ibm50	
Ibm64:
	move.b #$eb,(a1)+
	bra.L Ibm50	
Ibm65:
	move.b #$e0,(a1)+
	bra.L Ibm50	
Ibm66:
	move.b #$e2,(a1)+
	bra.L Ibm50	
Ibm67:
	move.b #$e4,(a1)+
	bra.L Ibm50	
Ibm68:
	move.b #$f4,(a1)+
	bra.L Ibm50	
Ibm69:
	move.b #$f6,(a1)+
	bra.L Ibm50	
Ibm70:
	move.b #$f9,(a1)+
	bra.L Ibm50	
Ibm71:
	move.b #$fb,(a1)+
	bra.L Ibm50	
Ibm72:
	move.b #$fc,(a1)+
	bra.L Ibm50	
Ibm73:
	move.b #$ee,(a1)+
	bra.L Ibm50	
Ibm74:
	move.b #$ef,(a1)+
	bra.L Ibm50	

Ibm80:
	move.l a0,a2
	addq.l #1,a2
	cmpi.b #$a,(a2)
	bne.L Ibm40
	moveq #10,d1
	addq.l #1,a0	
	subq.l #1,d3
	bra.L Ibm40

Ibm90:
	move.l d6,d2
	bsr.L WriteFichier1
	move.l d5,d2
	move.l #20000,d3	
	bsr.L ReadFichier2	;lit fichier tmp
	tst.l d0
	bne.L Ibm10

	move.l #40000,d0
	move.l d6,a1
	bsr.L FreeMem		;Liberer la mem
	bsr.L FreeMem_20000
	bsr.L CloseFile1
	bsr.L CloseFile2
	move.l #Tmp,d1
	bsr.L DeleteFile
	tst.l d0
	beq.s Error_Ibm		;error
	
	moveq #-1,d0
Fin_Ibm:
	movem.l (a7)+,a0-a6/d1-d7
	rts

Error_Ibm:
	moveq #0,d0
	bra.s Fin_Ibm

Open_ConHandle:
	bsr.s Output
	move.l d0,ConHandle
	rts

Open_Old:
	move.l #1005,d2
	bsr.s Open
	rts
Open_New:
	move.l #1006,d2
	bsr.s Open
	rts
;
; d1 : Nom  
;
Open:
	move.l DosBase(pc),a6
	jsr -30(a6)
	rts
;
; d1 : Handle
;
Close:
	move.l DosBase(pc),a6
	jsr -36(a6)
	rts
;
; d1 : Handle  d2 : buffer  d3 : longueur
;
Read:
	move.l DosBase(pc),a6
	jsr -42(a6)
	rts
;
; d1 : Handle  d2 : buffer  d3 : longueur
;
Ecrire_ConHandle:
	move.l ConHandle(pc),d1
	bsr.s Write
	rts
Write:
	move.l DosBase(pc),a6
	jsr -48(a6)
	rts
Output:
	move.l DosBase(pc),a6
	jsr -60(a6)
	rts
Seek_End:
	moveq #1,d3
	bsr.s Seek
	rts
;
; d1 : Handle  d2 : Position  d3 : Offset
;
Seek:
	moveq #0,d2
	move.l DosBase(pc),a6
	jsr -66(a6)
	rts
;
; d1 : Nom
;
DeleteFile:
	move.l DosBase(pc),a6
	jsr -72(a6)
	rts
;
; d1 : Ancien Nom  d2 : Nouveau Nom
;
Rename:
	move.l DosBase(pc),a6
	jsr -78(a6)
	rts
Lock_Read:
	moveq #-2,d2
	bsr.s Lock
	rts
;
; d1 : Nom  d2 : Type
;
Lock:
	move.l DosBase(pc),a6
	jsr -84(a6)
	rts
;
; d1 : Lock
;
UnLock:	
	move.l DosBase(pc),a6
	jsr -90(a6)
	rts
;
; d1 : Lock  d2 : InfoBlock
;
Examine:
	move.l DosBase(pc),a6
	jsr -102(a6)
	rts

OpenDosLibrary:
	lea DosLib(pc),a1
	bsr.s OldOpenLibrary
	move.l d0,DosBase
	rts
;
; a1 : Library
;
OldOpenLibrary:
	move.l $4.w,a6
	jsr -408(a6)
	rts

AllocMem_CHIP:
	move.l #$10002,d1
	bsr.s AllocMem
	rts
;
; d0 : taille  d1 : requirement
;
AllocMem:
	move.l $4.w,a6
	jsr -198(a6)
	rts

;
; a1 : Memory block  d0 : taille
;
FreeMem:
	move.l $4.w,a6
	jsr -210(a6)
	rts
;
; a0 : Source  a1 : Dest  d0 : Taille 
;       

CopyMemQuick:
	move.l $4.w,a6
	jsr -630(a6)
	rts

Nombre_Cut:
	dc.b 0,0
ConHandle:
	dc.l 0
DosBase:
	dc.l 0
Status_Options:
	dc.l 0
; 1 : couper
; 2 : minuscule
; 3 : majuscule
; 4 : difference
; 5 : merge

FileHandle1:
	dc.l 0
FileHandle2:
	dc.l 0
Arguments:
	blk.b 80,0
Fichier_Arg:
	blk.b 80,0
Fichier_Aux:
	blk.b 80,0
Tmp:
	blk.b 40,0
DosLib:
	dc.b "dos.library",0
Txt1:
	dc.b "  Erreur !",10,0
Txt2:
Txt3:
	dc.b "HFile V1.0 - Copyright © Thibaut MAQUET. ",$a,0
Txt4:
Txt5:
	dc.b $a
	dc.b "  HFile est un petit utilitaire destiné à effectuer certaines manipulations",$a
	dc.b "  sur des fichiers. (Fusionner, couper, transformer ...)",$a
	dc.b "  Syntaxe : HFile -option fichier",$a
	dc.b $a
	dc.b "  Liste des options disponibles :",$a,$a
	dc.b "  -a           : PC -> AMIGA",$a
	dc.b "  -cn          : couper en n parties (2-9)",$a
	dc.b "  -dFichier    : comparer deux fichiers",$a
	dc.b "  -jFichier    : joindre deux fichiers",$a
	dc.b "  -m           : convertir en minuscules",$a
	dc.b "  -M           : convertir en majuscules",$a
	dc.b "  -p           : AMIGA -> PC",$a,0
Txt6:
Txt7:
	dc.b "Les fichiers sont identiques.",$a,0
Txt8:
Txt9:
	dc.b "Les fichiers sont diffèrents.",$a,0
Txt10:
