;ProfiPacket - packet radio terminal program
;Copyright (C) 1999  Alexander Feigl
;
;This program is free software; you can redistribute it and/or modify
;it under the terms of the GNU General Public License as published by
;the Free Software Foundation; either version 2 of the License, or
;(at your option) any later version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
;
;Author:
;
;Alexander Feigl
;Burachstraße 51
;
;D-88250 Weingarten
;
;EMail : Alexander.Feigl@gmx.de

                CPU M68000
                SNMAOPT Q+,P+,A+,B-,S+,M+
                NOLIST


_LVOFindTask=-$126


                incdir "sys:include/"
                include "exec/tasks.i"
                include "utility/hooks.i"
		include "intuition/classes.i"

                include "global.i"

                                        XDEF GUI_RefreshPacketHead
                                        XDEF GUI_RefreshConnectHead
                                        XDEF GUI_DisplayEventWindow
                                        XDEF GUI_RedisplayFileTransfer
                                        XDEF MAIN_InitalizeChannels
                                        XDEF QSO_ParseSID
                                        XDEF QSO_TransmitSID
                                        XDEF QSO_FillUserdata
                                        XDEF QSO_WriteUserdata
                                        XDEF QSO_GetText


                                        XREF PACK_UpdateTNCTime
                                        XREF QSO_DoPoll
                                        XREF PACK_DoPoll
                                        XDEF GUI_GetString
                                        XREF MAIN_HardwareInitChan

                                        XREF QSO_SendData
                                        XREF QSO_StartExtServer
                                        XREF QSO_SendCommandUser
                                        XREF QSO_SendCommand
                                        XREF QSO_SendDataUser
                                        XREF QSO_ForceTransmit
                                        XREF QSO_TransmitText


                                        XREF PACK_SetMonitorUnit


                                        XDEF QSO_OpenUser
                                        XDEF QSO_OpenUser_SSID
                                        XDEF QSO_OpenUser_Try
                                        XDEF QSO_OpenStandardUser
                                        XDEF QSO_CloseUser
                                        XDEF QSO_ChangeUser
                                        XDEF QSO_RemoveUser
                                        XDEF QSO_InitalizeUsers
                                        XDEF QSO_CleanupUsers
                                        XDEF QSO_HandleSID

                                        XREF QSO_ValidateLocator
                                        XREF QSO_SendPassword


                                        XREF _GUI_RefreshPacketHead
                                        XREF _GUI_RefreshConnectHead
                                        XREF _GUI_DisplayEventWindow
                                        XREF _GUI_RedisplayFileTransfer
                                        XREF _MAIN_InitalizeChannels
                                        XREF _QSO_TransmitSID
                                        XREF _QSO_ParseSID
                                        XREF _QSO_FillUserdata
                                        XREF _QSO_WriteUserdata
                                        XREF _QSO_GetText


                                        XDEF _PACK_UpdateTNCTime
                                        XDEF _QSO_DoPoll
                                        XDEF _PACK_DoPoll

                                        XREF _GUI_String
                                        XDEF _QSO_SendCommandUser
                                        XDEF _QSO_SendCommand
                                        XDEF _QSO_SendDataUser
                                        XDEF _QSO_StartExtServer
                                        XDEF _QSO_TransmitText
                                        XDEF _QSO_SendPassword

                                        XDEF _PACK_SetMonitorUnit


                                        XREF _QSO_OpenUser
                                        XREF _QSO_OpenUser_SSID
                                        XREF _QSO_OpenUser_Try
                                        XREF _QSO_OpenStandardUser
                                        XREF _QSO_CloseUser
                                        XREF _QSO_ChangeUser
                                        XREF _QSO_RemoveUser
                                        XREF _QSO_InitalizeUsers
                                        XREF _QSO_CleanupUsers
                                        XREF _QSO_HandleSID

                                        XDEF _QSO_ValidateLocator
                                        XDEF _MAIN_HardwareInitChannel
                                        XDEF _QSO_SendData
                                        XDEF _QSO_ForceTransmit

                                        XDEF _CallMenu
                                        XDEF _PutRawDoFmt

                                        XDEF _SVO_Cleanup
                                        XDEF _SVO_AbortServer
                                        XDEF _SVO_AskAudio
                                        XDEF _SVO_GetServerType


                                        XDEF _Dispatcher_Entry

                XDEF _FillHookA4
                XDEF _FillHook

;void FillHookA4(void);
;void FillHook(struct Hook *MyHook,void (*Function)(),void *FunctionData);

;/* Hookfunc: struct Hook *MyHook,void *Param,void *Object,void *Data) */


			SECTION ".text",CODE

_SVO_Cleanup            exg a4,a5
                        move.l 4(sp),d0
                        movem.l a6/a5,-(sp)
                        move.l _QSOBase(a5),a5
                        move.l d0,a6
                        jsr _SVOCleanup(a6)
                        movem.l (sp)+,a6/a5
                        exg a4,a5
                        rts

_SVO_AbortServer        exg a4,a5
                        move.l 4(sp),d0
                        movem.l a6/a5,-(sp)
                        move.l _QSOBase(a5),a5
                        move.l d0,a6
                        jsr _SVOAbortServer(a6)
                        movem.l (sp)+,a6/a5
                        exg a4,a5
                        rts

_SVO_AskAudio           exg a4,a5
                        move.l 4(sp),d1
                        move.l 8(sp),d0
                        movem.l a6/a5,-(sp)
                        move.l _QSOBase(a5),a5
                        move.l d1,a6
                        jsr _SVOAskAudio(a6)
                        movem.l (sp)+,a6/a5
                        exg a4,a5
                        rts

_SVO_GetServerType      exg a4,a5
                        move.l 4(sp),d1
                        movem.l a6/a5,-(sp)
			move.l _QSOBase(a5),a5
                        move.l d1,a6
                        jsr _SVOGetServerType(a6)
                        movem.l (sp)+,a6/a5
                        exg a4,a5
                        rts


_CallMenu               move.l 4(sp),a0
                        movem.l d2-d7/a2-a6,-(sp)
                        move.l a4,a5
                        jsr (a0)
                        movem.l (sp)+,d2-d7/a2-a6
                        rts

_PutRawDoFmt            move.b d0,(A3)+
                        clr.b (a3)
                        rts



GUI_RefreshConnectHead             exg a4,a5
                                                jsr _GUI_RefreshConnectHead
                                                exg a4,a5
                                                rts

GUI_RefreshPacketHead             exg a4,a5
                                                jsr _GUI_RefreshPacketHead
                                                exg a4,a5
                                                rts



GUI_DisplayEventWindow          exg a4,a5
                                move.l a0,-(sp)
                                jsr _GUI_DisplayEventWindow
                                move.l (sp)+,a0
                                exg a4,a5
                                rts
GUI_RedisplayFileTransfer       exg a4,a5
                                move.l d0,-(sp)
                                jsr _GUI_RedisplayFileTransfer
                                move.l (sp)+,d0
                                exg a4,a5
                                rts

MAIN_InitalizeChannels          exg a4,a5
                                jsr _MAIN_InitalizeChannels
                                exg a4,a5
                                rts


_QSO_TransmitText               move.l d2,-(sp)
                                move.l 8(sp),a0
                                move.l 12(sp),d0
                                move.l 16(sp),d1
                                move.l 20(sp),d2
                                exg a4,a5
                                jsr QSO_TransmitText
                                exg a4,a5
                                move.l (sp)+,d2
                                rts

_PACK_SetMonitorUnit            exg a4,a5
                                move.l 4(sp),d0
                                jsr PACK_SetMonitorUnit
                                exg a4,a5
                                rts



_PACK_UpdateTNCTime                             exg a4,a5
                                                movem.l d2-d7/a2-a6,-(sp)
                                                jsr PACK_UpdateTNCTime
                                                movem.l (sp)+,d2-d7/a2-a6
                                                exg a4,a5
                                                rts
                                        
_QSO_DoPoll                             exg a4,a5
                                                movem.l d2-d7/a2-a6,-(sp)
                                                jsr QSO_DoPoll
                                                movem.l (sp)+,d2-d7/a2-a6
                                                exg a4,a5
                                                rts
_PACK_DoPoll                    exg a4,a5
                                                movem.l d2-d7/a2-a6,-(sp)
                                                jsr PACK_DoPoll
                                                movem.l (sp)+,d2-d7/a2-a6
                                                exg a4,a5
                                                rts
                                                



_MAIN_HardwareInitChannel               exg a4,a5
                                        move.l 4(sp),d0
                                        jsr MAIN_HardwareInitChan
                                        exg a4,a5
                                        rts





GUI_GetString		     exg a4,a5
			     move.l d0,-(sp)
			     jsr _GUI_String
                             addq.l #4,sp
                             exg a4,a5
                             rts



_QSO_SendCommandUser                            exg a4,a5
                                                move.l 4(sp),d0
                                                move.l 8(sp),d1
                                                move.l 12(sp),a0
                                                movem.l d2-d7/a2-a6,-(sp)
                                                jsr QSO_SendCommandUser
                                                movem.l (sp)+,d2-d7/a2-a6
                                                exg a4,a5               
                                                rts

_QSO_SendCommand                                exg a4,a5
                                                move.l 4(sp),d0
                                                move.l 8(sp),d1
                                                move.l 12(sp),a0
                                                movem.l d2-d7/a2-a6,-(sp)
                                                jsr QSO_SendCommand
                                                movem.l (sp)+,d2-d7/a2-a6
                                                exg a4,a5               
                                                rts


_QSO_ForceTransmit      exg a4,a5
                        move.l 4(sp),d0
                        jsr QSO_ForceTransmit
                        exg a4,a5
                        rts




_QSO_StartExtServer                             exg a4,a5
                                                move.l 4(sp),d0
                                                move.l 8(sp),d1
                                                move.l 12(sp),a0
                                                move.l 16(sp),a1
                                                jsr QSO_StartExtServer
                                                exg a4,a5                                                exg a4,a5
                                                rts


_QSO_SendDataUser                               exg a4,a5
                                                move.l 4(sp),d0
                                                move.l 8(sp),d1
                                                move.l 12(sp),a0
                                                movem.l d2-d7/a2-a6,-(Sp)
                                                jsr QSO_SendDataUser
                                                movem.l (sp)+,d2-d7/a2-a6
                                                exg a4,a5                                                exg a4,a5
                                                rts



_QSO_SendPassword               exg a4,a5
                                move.l 4(sp),d0
                                move.l 8(sp),a0
                                jsr QSO_SendPassword
                                exg a4,a5
                                rts


QSO_OpenUser                   exg a4,a5
                                move.l a0,-(sp)
                                jsr _QSO_OpenUser
                                addq.l #4,sp
                                exg a4,a5
                                rts

QSO_OpenUser_SSID               exg a4,a5
                                move.l a0,-(sp)
                                jsr _QSO_OpenUser_SSID
                                addq.l #4,sp
                                exg a4,a5
                                rts
QSO_OpenUser_Try                exg a4,a5
                                move.l a0,-(sp)
                                jsr _QSO_OpenUser_Try
                                addq.l #4,sp
                                exg a4,a5
                                rts
QSO_OpenStandardUser            exg a4,a5
                                jsr _QSO_OpenStandardUser
                                exg a4,a5
                                rts
QSO_CloseUser                   exg a4,a5
                                move.l a0,-(sp)
                                jsr _QSO_CloseUser
                                addq.l #4,sp
                                exg a4,a5
                                rts
QSO_RemoveUser                  exg a4,a5
                                move.l a0,-(sp)
                                jsr _QSO_RemoveUser
                                addq.l #4,sp
                                exg a4,a5
                                rts
QSO_ChangeUser                  exg a4,a5
                                move.l a0,-(sp)
                                jsr _QSO_ChangeUser
                                addq.l #4,sp
                                exg a4,a5
                                rts

QSO_InitalizeUsers              exg a4,a5
                                jsr _QSO_InitalizeUsers
                                exg a4,a5
                                rts

QSO_CleanupUsers                exg a4,a5
                                jsr _QSO_CleanupUsers
                                exg a4,a5
                                rts


QSO_HandleSID                   exg a4,a5
                                move.l a1,-(sp)
                                move.l a0,-(sp)
                                jsr _QSO_HandleSID
                                addq.l #8,sp
                                exg a4,a5
                                rts


QSO_FillUserdata                exg a4,a5
                                move.l d2,-(sp)
                                move.l d1,-(sp)
                                move.l d0,-(sp)
                                move.l a2,-(sp)
                                move.l a1,-(sp)
                                move.l a0,-(sp)
                                jsr _QSO_FillUserdata
                                add.l #24,a7
                                exg a4,a5
                                rts

QSO_WriteUserdata               exg a4,a5
                                move.l d2,-(sp)
                                move.l d1,-(sp)
                                move.l d0,-(sp)
                                move.l a2,-(sp)
                                move.l a1,-(sp)
                                move.l a0,-(sp)
                                jsr _QSO_WriteUserdata
                                add.l #24,a7
                                exg a4,a5
                                rts


QSO_GetText                     exg a4,a5
                                move.l d0,-(Sp)
                                move.l a2,-(sp)
                                move.l a0,-(sp)
                                move.l a1,-(sp)
                                jsr _QSO_GetText
                                add.l #16,a7
                                exg a4,a5
                                rts

_QSO_ValidateLocator            exg a4,a5
                                move.l 4(sp),a0
                                jsr QSO_ValidateLocator
                                exg a4,a5
                                rts

_QSO_SendData                           exg a4,a5
                                        move.l 4(sp),d0
                                        move.l 8(sp),d1
                                        move.l 12(sp),a0
                                        jsr QSO_SendData
                                        exg a4,a5
                                        rts





QSO_TransmitSID         exg a4,a5
                        move.l a0,-(sp)
                        move.l d0,-(sp)
                        jsr _QSO_TransmitSID
                        addq.l #8,a7
                        exg a4,a5
                        rts

QSO_ParseSID            exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _QSO_ParseSID
                        addq.l #8,a7
                        exg a4,a5
                        rts


_FillHookA4     move.l a6,-(sp)
                sub.l a1,a1
                move.l $4,a6
                jsr _LVOFindTask(a6)
                move.l d0,a0
                move.l a4,TC_Userdata(a0)
                move.l (sp)+,a6
                rts
                
_FillHook       move.l 4(sp),a0
                lea HookAsm(pc),a1
                clr.l MLN_SUCC(a0)
                clr.l MLN_PRED(a0)
                move.l a1,h_Entry(a0)
                move.l 8(sp),h_SubEntry(a0)
                move.l 12(sp),h_Data(a0)
                rts


HookAsm         move.l a4,-(sp)
                movem.l d0-d1/a0-a1/a6,-(sp)
                move.l $4,a6
                sub.l a1,a1
                jsr _LVOFindTask(a6)
                move.l d0,a0
                move.l TC_Userdata(a0),a4
                movem.l (sp)+,d0-d1/a0-a1/a6
                
                move.l h_Data(a0),-(sp)         ;Data
                move.l a2,-(sp)                 ;Object 
                move.l a1,-(Sp)                 ;Parampacket
                move.l a0,-(sp)                 ;Hook
                lea .SubCallReturn(pc),a1
                move.l a1,-(sp)
                move.l h_SubEntry(a0),-(sp)
                rts
.SubCallReturn  add.l #16,a7
                move.l (sp)+,a4
                rts
                








_Dispatcher_Entry         move.l a4,-(sp)
                movem.l d0-d1/a0-a1/a6,-(sp)
                move.l $4,a6
                sub.l a1,a1
                jsr _LVOFindTask(a6)
                move.l d0,a0
                move.l TC_Userdata(a0),a4
                movem.l (sp)+,d0-d1/a0-a1/a6
                move.l a1,-(sp)                 ;Msg
                move.l a2,-(Sp)                 ;Obj
                move.l a0,-(sp)                 ;IClass
                move.l cl_UserData(a0),a0
                jsr (a0)
                add.l #12,a7
                move.l (sp)+,a4
                rts



                XREF PACK_Cleanup
                XDEF _PACK_Cleanup
_PACK_Cleanup   exg a4,a5
                jsr PACK_Cleanup
                exg a4,a5
                rts





;********************** Interface for Mail.c*********************

                XDEF MAIL_SendMail
                XDEF MAIL_CloseMail
                XDEF MAIL_SetMailTitle
                XDEF MAIL_WriteMail
                XDEF MAIL_OpenMail
                XDEF MAIL_GetNumberMail
                XDEF MAIL_GetMailBid
                XDEF MAIL_GetMailFm
                XDEF MAIL_GetMailTo
                XDEF MAIL_GetMailAt
                XDEF MAIL_GetMailDate
                XDEF MAIL_GetMailStatus
                XDEF MAIL_GetMailBytes
                XDEF MAIL_GetMailTitle
                XDEF MAIL_GetMailHRoute
                XDEF MAIL_TestForMail
                XDEF MAIL_SearchMail
                XDEF MAIL_GetMailLines
                XDEF MAIL_ReadMail
                XDEF MAIL_ReadMailLine
                XDEF MAIL_MarkAsRead
                XDEF MAIL_MarkAsForward
                XDEF MAIL_MarkAsIncomp
                XDEF MAIL_MarkAs7Plus
                XDEF MAIL_MarkAsWantAck
                XDEF MAIL_GetMailDateTxt
                XDEF MAIL_GetMailStatusTxt
                XDEF MAIL_KillMail
                XDEF MAIL_GetBoxCall
                XDEF MAIL_SearchMailBid
                XDEF MAIL_GetLatestMail
                XDEF MAIL_ComposeRLine
                XDEF MAIL_SetNotForward
                XDEF MAIL_GetForwardDest
                XDEF MAIL_RemoveFMail
                XDEF MAIL_GetNextFMail
                XDEF MAIL_SendMailFile
                XDEF MAIL_TestPrivateMail
                XDEF MAIL_TestForwardTime


                XREF _MAIL_ForwardMail
                XREF _MAIL_RemoveFMail
                XREF _MAIL_WriteMail
                XREF _MAIL_GetFreeMail
                XREF _MAIL_GetBoxCall
                XREF _MAIL_ComposeRLine
                XREF _MAIL_SendMail
                XREF _MAIL_GetLatestMail
                XREF _MAIL_CloseMail
                XREF _MAIL_OpenMail
                XREF _MAIL_SetMailTitle
                XREF _MAIL_SetNotForward
                XREF _MAIL_GetNumberMail
                XREF _MAIL_GetMailBid
                XREF _MAIL_GetMailFm
                XREF _MAIL_GetMailTo
                XREF _MAIL_GetMailAt
                XREF _MAIL_GetMailTitle
                XREF _MAIL_GetMailDate
                XREF _MAIL_GetMailStatus
                XREF _MAIL_GetMailHRoute
                XREF _MAIL_GetNumberMail
                XREF _MAIL_GetMailBytes
                XREF _MAIL_TestForMail
                XREF _MAIL_ReadMail
                XREF _MAIL_ReadMailLine
                XREF _MAIL_GetForwardDest
                XREF _MAIL_GetNextFMail
                XREF _MAIL_GetMailDateTxt
                XREF _MAIL_GetMailLines
                XREF _MAIL_SearchMail
                XREF _MAIL_MarkAsRead
                XREF _MAIL_MarkAsForward
                XREF _MAIL_MarkAsIncomp
                XREF _MAIL_MarkAs7Plus
                XREF _MAIL_MarkAsWantAck
                XREF _MAIL_KillMail
                XREF _MAIL_SearchMailBid
                XREF _MAIL_SendMailFile
                XREF _MAIL_TestPrivateMail
                XREF _MAIL_TestForwardTime

MAIL_TestPrivateMail            exg a4,a5

                                move.l a0,-(sp)
                                jsr _MAIL_TestPrivateMail
                                addq.l #4,sp
                                exg a4,a5
                                rts


MAIL_SendMailFile              exg a4,a5

                                move.l d4,-(sp)
                                move.l d3,-(sp)
                                move.l d2,-(sp)
                                move.l a4,-(sp)
                                move.l a3,-(sp)
                                move.l a2,-(sp)
                                move.l a1,-(sp)
                                move.l a0,-(sp)
                                move.l d1,-(sp)
                                move.l d0,-(sp)
                                jsr _MAIL_SendMailFile
                                add.l #4*10,sp
                                exg a4,a5
                                rts


MAIL_GetBoxCall         exg a4,a5
                        jsr _MAIL_GetBoxCall
                        exg a4,a5
                        rts



MAIL_ComposeRLine       exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_ComposeRLine
                        addq.l #8,sp
                        exg a4,a5
                        rts




MAIL_SendMail           exg a4,a5
                        move.l d1,-(sp)
                        move.l d0,-(sp)
                        move.l a2,-(sp)
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_SendMail
                        add.l #5*4,sp
                        exg a4,a5
                        rts

MAIL_GetLatestMail      exg a4,a5
                        jsr _MAIL_GetLatestMail
                        exg a4,a5
                        rts


MAIL_CloseMail          exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_CloseMail
                        addq.l #4,sp
                        exg a4,a5
                        rts





MAIL_WriteMail          exg a4,a5
                        move.l d0,-(sp)
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_WriteMail
                        add.l #12,sp
                        exg a4,a5
                        rts




MAIL_OpenMail           exg a4,a5
                        move.l a0,-(sp)
                        move.l d0,-(sp)
                        jsr _MAIL_OpenMail
                        addq.l #8,sp
                        exg a4,a5
                        rts


MAIL_GetForwardDest     exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_GetForwardDest
                        addq.l #8,sp
                        exg a4,a5
                        rts

MAIL_RemoveFMail        exg a4,a5
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_RemoveFMail
                        addq.l #8,sp
                        exg a4,a5
                        rts

MAIL_GetNextFMail       exg a4,a5
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_GetNextFMail
                        addq.l #8,sp
                        exg a4,a5
                        rts

MAIL_SetMailTitle       exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_SetMailTitle
                        addq.l #8,sp
                        exg a4,a5
                        rts

MAIL_SetNotForward      exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_SetNotForward
                        addq.l #8,sp
                        exg a4,a5
                        rts

MAIL_GetNumberMail      move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetNumberMail
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailBid         move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailBid
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailFm          move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailFm
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailTo          move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailTo
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailAt          move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailAt
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailTitle       move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailTitle
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailDate        move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailDate
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailStatus      move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailStatus
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_GetMailHRoute      move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailHRoute
                        exg a4,a5
                        addq.l #4,sp
                        rts


MAIL_GetMailStatusTxt   move.l a1,-(sp)
                        move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetNumberMail
                        exg a4,a5
                        addq.l #8,sp
                        rts

MAIL_GetMailBytes       move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_GetMailBytes
                        exg a4,a5
                        addq.l #4,sp
                        rts


MAIL_TestForMail        move.l a0,-(sp)
                        exg a4,a5
                        jsr _MAIL_TestForMail
                        exg a4,a5
                        addq.l #4,sp
                        rts

MAIL_SearchMail         exg a4,a5
                        move.l d1,-(sp)
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_SearchMail
                        add.l #12,a7
                        exg a4,a5
                        rts

MAIL_GetMailLines       exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        move.l d1,-(sp)
                        move.l d0,-(sp)
                        jsr _MAIL_GetMailLines
                        add.l #16,a7
                        exg a4,a5
                        rts

MAIL_ReadMail           exg a4,a5
                        move.l d0,-(Sp)
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_ReadMail
                        add.l #12,sp
                        exg a4,a5
                        rts

MAIL_ReadMailLine       exg a4,a5
                        move.l d0,-(sp)
                        move.l a1,-(Sp)
                        move.l a0,-(sp)
                        jsr _MAIL_ReadMailLine
                        add.l #12,sp
                        exg a4,a5
                        rts

MAIL_MarkAsRead         exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_MarkAsRead
                        addq.l #4,sp
                        exg a4,a5
                        rts
MAIL_MarkAsForward      exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_MarkAsForward
                        addq.l #4,sp
                        exg a4,a5
                        rts

MAIL_MarkAsIncomp       exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_MarkAsIncomp
                        addq.l #4,sp
                        exg a4,a5
                        rts
MAIL_MarkAs7Plus        exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_MarkAs7Plus
                        addq.l #4,sp
                        exg a4,a5
                        rts
MAIL_MarkAsWantAck      exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_MarkAsWantAck
                        addq.l #4,sp
                        exg a4,a5
                        rts

MAIL_GetMailDateTxt     exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIL_GetMailDateTxt
                        exg a4,a5
                        addq.l #8,sp
                        rts

MAIL_KillMail           exg a4,a5
                        move.l a0,-(sp)
                        move.l d0,-(sp)
                        jsr _MAIL_KillMail
                        exg a4,a5
                        addq.l #8,sp
                        rts

MAIL_SearchMailBid      exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_SearchMailBid
                        exg a4,a5
                        addq.l #4,sp
                        rts


MAIL_TestForwardTime    exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIL_TestForwardTime
                        exg a4,a5
                        addq.l #4,sp
                        rts



;*******************************Interface for Main.c ****************


                XDEF MAIN_Init
                XDEF MAIN_Cleanup
                XDEF MAIN_SetDefaultPrefs
                XDEF MAIN_CleanupChannel
                XREF _MAIN_AddTimeStamp
                XDEF MAIN_AddTimeStamp
                XREF _MAIN_TestTimeStamp
                XDEF MAIN_TestTimeStamp
                XREF _MAIN_HardwareInitChan
                XDEF MAIN_HardwareInitChan
                XREF _MAIN_LongToString
                XDEF MAIN_LongToString
                XDEF MAIN_WriteServBuffer
                XDEF MAIN_TestServBuffer
                XDEF MAIN_TestServBufferLin
                XDEF MAIN_ReadServBuffer
                XDEF MAIN_ResetFileTransfer
                XDEF MAIN_RecalcFileTransfer
                XDEF MAIN_ConvertToPC
                XDEF MAIN_ConvertToAmiga
                XDEF MAIN_ConvertToPCLen
                XDEF MAIN_ConvertToAmigaLen
                XDEF MAIN_GetSecondsAgo
                XDEF MAIN_GetConnectMsgNr
                XDEF MAIN_GetConnectMsg
                XDEF MAIN_KillAllServers
                XREF _MAIN_SetDefaultPrefs
                XREF _MAIN_GetMaxChannel
                XREF MAIN_InitalizeChannels
                XREF _MAIN_GetSecondsAgo
                XREF _MAIN_ConvertToAmiga
                XREF _MAIN_ConvertToPC
                XREF _MAIN_ConvertToAmigaLen
                XREF _MAIN_ConvertToPCLen
                XREF _MAIN_ResetFileTransfer
                XREF _MAIN_RecalcFileTransfer
                XREF _MAIN_CleanupChannel
                XREF _MAIN_ReadServBuffer
                XREF _MAIN_TestServBuffer
                XREF _MAIN_WriteServBuffer
                XREF _MAIN_TestServBufferLin
                XREF _MAIN_Cleanup
                XREF _MAIN_KillAllServers
                XREF _MAIN_FreeAllBuffers
                XREF _MAIN_GetConnectMsg
                XREF _MAIN_GetConnectMsgNr
                XREF _MAIN_Init


MAIN_Init               exg a4,a5
                        jsr _MAIN_Init
                        exg a4,a5
                        rts

MAIN_Cleanup            exg a4,a5
                        jsr _MAIN_Cleanup
                        exg a4,a5
                        rts


MAIN_KillAllServers     exg a4,a5
                        jsr _MAIN_KillAllServers
                        exg a4,a5
                        rts

MAIN_FreeAllBuffers     exg a4,a5
                        jsr _MAIN_FreeAllBuffers
                        exg a4,a5
                        rts

MAIN_CleanupChannel     exg a4,a5
                        move.l d0,-(sp)
                        jsr _MAIN_CleanupChannel
                        addq.l #4,sp
                        exg a4,a5
                        rts

MAIN_HardwareInitChan   exg a4,a5
                        move.l d0,-(sp)
                        jsr _MAIN_HardwareInitChan
                        addq.l #4,sp
                        exg a4,a5
                        rts

MAIN_SetDefaultPrefs    exg a4,a5
                        jsr _MAIN_SetDefaultPrefs
                        exg a4,a5
                        rts

MAIN_AddTimeStamp       exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIN_AddTimeStamp
                        addq.l #8,sp
                        exg a4,a5
                        rts
MAIN_TestTimeStamp      exg a4,a5
                        move.l a1,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIN_TestTimeStamp
                        addq.l #8,sp
                        exg a4,a5
                        rts


MAIN_LongToString       exg a4,a5
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIN_LongToString
                        addq.l #8,sp
                        exg a4,a5
                        rts


MAIN_WriteServBuffer    exg a4,a5
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        move.l a1,-(sp)
                        jsr _MAIN_WriteServBuffer
                        add.l #12,a7
                        exg a4,a5
                        rts

MAIN_TestServBuffer     exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIN_TestServBuffer
                        addq.l #4,sp
                        exg a4,a5
                        rts


MAIN_TestServBufferLin  exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIN_TestServBufferLin
                        addq.l #4,sp
                        exg a4,a5
                        rts

MAIN_ReadServBuffer     exg a4,a5
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        move.l a1,-(sp)
                        jsr _MAIN_ReadServBuffer
                        add.l #12,sp
                        exg a4,a5
                        rts

MAIN_ConvertToPC        exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIN_ConvertToPC
                        addq.l #4,sp
                        exg a4,a5
                        rts
MAIN_ConvertToAmiga     exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIN_ConvertToAmiga
                        addq.l #4,sp
                        exg a4,a5
                        rts

MAIN_ConvertToPCLen     exg a4,a5
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIN_ConvertToPCLen
                        addq.l #8,sp
                        exg a4,a5
                        rts

MAIN_ConvertToAmigaLen  exg a4,a5
                        move.l d0,-(sp)
                        move.l a0,-(sp)
                        jsr _MAIN_ConvertToAmigaLen
                        addq.l #8,sp
                        exg a4,a5
                        rts

MAIN_GetSecondsAgo      exg a4,a5
                        move.l a0,-(sp)
                        jsr _MAIN_GetSecondsAgo
                        addq.l #4,sp
                        exg a4,a5
                        rts

MAIN_GetConnectMsgNr    exg a4,a5
                        jsr _MAIN_GetConnectMsgNr
                        exg a4,a5
                        rts

MAIN_GetConnectMsg      exg a4,a5
                        jsr _MAIN_GetConnectMsg
                        exg a4,a5
                        rts

MAIN_ResetFileTransfer  exg a4,a5
                        move.l d0,-(sp)
                        jsr _MAIN_ResetFileTransfer
                        addq.l #4,sp
                        exg a4,a5
                        rts


MAIN_RecalcFileTransfer exg a4,a5
                        move.l d0,-(sp)
                        jsr _MAIN_RecalcFileTransfer
                        addq.l #4,sp
                        exg a4,a5
                        rts

;*************************Interface for Audio.c******************

                        XDEF AUDIO_Cleanup
                        XDEF AUDIO_Effect_C
                        XDEF AUDIO_Effect

                        XREF _AUDIO_Cleanup
                        XREF _AUDIO_Effect_C
                        XREF _AUDIO_Effect

AUDIO_Cleanup           exg a4,a5
                        jsr _AUDIO_Cleanup
                        exg a4,a5
                        rts                     
                        

AUDIO_Effect_C          move.l d1,-(sp) 
                        move.l d0,-(sp)
                        exg a4,a5
                        jsr _AUDIO_Effect_C
                        addq.l #8,sp
                        exg a4,a5
                        rts

AUDIO_Effect            move.l a0,-(sp)
                        move.l d0,-(sp)
                        exg a4,a5
                        jsr _AUDIO_Effect
                        addq.l #8,sp
                        exg a4,a5
                        rts


;****************************** Interface for GUI **********************



			XDEF GUI_GetLanguageTable
			XREF _GetLanguageTable
GUI_GetLanguageTable    exg a4,a5
                        jsr _GetLanguageTable
                        exg a4,a5
                        rts

                        XDEF GUI_WriteToQSO            
                        XREF _GUI_WriteToQSO
GUI_WriteToQSO          exg a4,a5
                        move.l d2,-(sp)
                        move.l d0,-(Sp)
                        move.l d1,-(sp)
                        move.l a0,-(sp)
                        jsr _GUI_WriteToQSO
                        add.l #16,sp
                        exg a4,a5
                        rts


                        XDEF GUI_GeneralError
                        XREF _GUI_GeneralError

GUI_GeneralError        exg a4,a5
                        move.l d0,-(sp)
                        jsr _GUI_GeneralError
                        move.l (sp)+,d0 
                        exg a4,a5
                        rts


                        XREF _GUI_ChangeHardStatus
                        XDEF GUI_ChangeHardStatus

GUI_ChangeHardStatus    move.l d2,-(sp)
                        move.l d1,-(sp)
                        move.l d0,-(sp)
                        exg a4,a5
                        jsr _GUI_ChangeHardStatus
                        exg a4,a5 
                        add.l #12,sp
                        rts
