[comp.protocols.appletalk] REQUEST FOR HELP ON PROGRAMMING WITH MACTCP

STROGYLO@GRPATVX1.BITNET (Dimitris Strogylopoulos) (04/25/91)

Dear friendly Mac Gurus, this is a request for help about programming
with the MACtcp driver from Apple..
 
Problems that appeared to make my life more difficult involve the following:
 
 i) First of all we have problems in using the TCPNotifyProc (the ASR)
    I hope that you have some experience in using it.. and I would like
    to ask you if we can call other subroutines from inside the ASR code...
    (any subroutines or any specific ones...etc.) We have managed to make
    the two MACs II able to exchange strings (like the VAX/VMS Phone utility)
    but after 2 or 3 strings sent the machine hungs...(sometimes with system
    error bombs, ID=10,12)... It once happened that, the code entered the ASR
    routine and when we called another routine from there it didn't pass its
    arguments and then the machine hunged...Maybe it's something to do with
    the pascal void definition
    of the function TCPNotifyProc, as pascal functions pass
    arguments in reverse order than C...(!#@$)
    Something else to ask about ASRs is, that the manual of MACTcp says that
    after the call of the ASR, the D3-D7 and A3-A7 machine registers should be
    preserved...What does this mean ...? Should WE do that by means of writing
    our own code or does the MACTCP driver does that...? If we do that, how we
    do it..? Is it vital for the proper functioning of our code..???
 
ii) Does the use of MultiFinder have any relationship with the strange
    behaviour of the program....?
 
iii) Some talk is necessary about the asychronous calls..? How are they
     implemented...? When an asychronous call is issued, does the parameter
     block pointed at by our pointer enter the driver queue as a node (in the
     classical sense of a queue node) (?) or a copy of it enters the queue..?
     In other words can we use the same parameter block pointer for succesive
     calls to the driver with simply changing the necessary fields in the
     TCPioPB structure...?  Is there a situation that we "touch" the first
     fields of the ioPB structure (the ones concerning the QUEUE, ioTrap..etc.?)
 
 
                          In case you are aware of anything of the above
                          your contribution will be strongly appreciated..
                          Thanks in advance..!
 
 
                                        Dimitris....