home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / dirs / xprzmodem_459.lzh / XprZmodem / callbacks.a < prev    next >
Text File  |  1991-02-18  |  3KB  |  201 lines

  1. ; Glue to call XPR callback functions in comm program from inside XPR library.
  2. ; This protects our registers from potential bugs in the comm program
  3. ; which might change them in unexpected ways.  The prototypes in xprzmodem.h
  4. ; put all arguments into the registers required by the XPR spec, so we don't
  5. ; have to move anything around here.
  6.  
  7.     INCLUDE    "exec/types.i"
  8.  
  9.     ; Entry points
  10.     XDEF    _xpr_fopen
  11.     XDEF    _xpr_fclose
  12.     XDEF    _xpr_fread
  13.     XDEF    _xpr_fwrite
  14.     XDEF    _xpr_sread
  15.     XDEF    _xpr_swrite
  16.     XDEF    _xpr_sflush
  17.     XDEF    _xpr_update
  18.     XDEF    _xpr_chkabort
  19.     XDEF    _xpr_chkmisc
  20.     XDEF    _xpr_gets
  21.     XDEF    _xpr_setserial
  22.     XDEF    _xpr_ffirst
  23.     XDEF    _xpr_fnext
  24.     XDEF    _xpr_finfo
  25.     XDEF    _xpr_fseek
  26.     XDEF    _xpr_options
  27.     XDEF    _xpr_unlink
  28.     XDEF    _xpr_squery
  29.     XDEF    _xpr_getptr
  30.  
  31.     ; XPR interface structure
  32.     STRUCTURE XPR_IO,0
  33.     APTR    XPR_FILENAME
  34.     APTR    XPR_FOPEN
  35.     APTR    XPR_FCLOSE
  36.     APTR    XPR_FREAD
  37.     APTR    XPR_FWRITE
  38.     APTR    XPR_SREAD
  39.     APTR    XPR_SWRITE
  40.     APTR    XPR_SFLUSH
  41.     APTR    XPR_UPDATE
  42.     APTR    XPR_CHKABORT
  43.     APTR    XPR_CHKMISC
  44.     APTR    XPR_GETS
  45.     APTR    XPR_SETSERIAL
  46.     APTR    XPR_FFIRST
  47.     APTR    XPR_FNEXT
  48.     APTR    XPR_FINFO
  49.     APTR    XPR_FSEEK
  50.     LONG    XPR_EXTENSION
  51.     APTR    XPR_DATA
  52.     APTR    XPR_OPTIONS
  53.     APTR    XPR_UNLINK
  54.     APTR    XPR_SQUERY
  55.     APTR    XPR_GETPTR
  56.     LABEL    XPR_IO_SIZEOF
  57.  
  58.     SECTION    text,code
  59.  
  60. _xpr_fopen:
  61.     movem.l    d2-d7/a2-a6,-(sp)
  62.     movea.l    XPR_FOPEN(a3),a6
  63.     jsr    (a6)
  64.     movem.l    (sp)+,d2-d7/a2-a6
  65.     rts
  66.  
  67. _xpr_fclose:
  68.     movem.l    d2-d7/a2-a6,-(sp)
  69.     movea.l    XPR_FCLOSE(a3),a6
  70.     jsr    (a6)
  71.     movem.l    (sp)+,d2-d7/a2-a6
  72.     rts
  73.  
  74. _xpr_fread:
  75.     movem.l    d2-d7/a2-a6,-(sp)
  76.     movea.l    XPR_FREAD(a3),a6
  77.     jsr    (a6)
  78.     movem.l    (sp)+,d2-d7/a2-a6
  79.     rts
  80.  
  81. _xpr_fwrite:
  82.     movem.l    d2-d7/a2-a6,-(sp)
  83.     movea.l    XPR_FWRITE(a3),a6
  84.     jsr    (a6)
  85.     movem.l    (sp)+,d2-d7/a2-a6
  86.     rts
  87.  
  88. _xpr_sread:
  89.     movem.l    d2-d7/a2-a6,-(sp)
  90.     movea.l    XPR_SREAD(a3),a6
  91.     jsr    (a6)
  92.     movem.l    (sp)+,d2-d7/a2-a6
  93.     rts
  94.  
  95. _xpr_swrite:
  96.     movem.l    d2-d7/a2-a6,-(sp)
  97.     movea.l    XPR_SWRITE(a3),a6
  98.     jsr    (a6)
  99.     movem.l    (sp)+,d2-d7/a2-a6
  100.     rts
  101.  
  102. _xpr_sflush:
  103.     movem.l    d2-d7/a2-a6,-(sp)
  104.     movea.l    XPR_SFLUSH(a3),a6
  105.     jsr    (a6)
  106.     movem.l    (sp)+,d2-d7/a2-a6
  107.     rts
  108.  
  109. _xpr_update:
  110.     movem.l    d2-d7/a2-a6,-(sp)
  111.     movea.l    XPR_UPDATE(a3),a6
  112.     jsr    (a6)
  113.     movem.l    (sp)+,d2-d7/a2-a6
  114.     rts
  115.  
  116. _xpr_chkabort:
  117.     movem.l    d2-d7/a2-a6,-(sp)
  118.     movea.l    XPR_CHKABORT(a3),a6
  119.     jsr    (a6)
  120.     movem.l    (sp)+,d2-d7/a2-a6
  121.     rts
  122.  
  123. _xpr_chkmisc:
  124.     movem.l    d2-d7/a2-a6,-(sp)
  125.     movea.l    XPR_CHKMISC(a3),a6
  126.     jsr    (a6)
  127.     movem.l    (sp)+,d2-d7/a2-a6
  128.     rts
  129.  
  130. _xpr_gets:
  131.     movem.l    d2-d7/a2-a6,-(sp)
  132.     movea.l    XPR_GETS(a3),a6
  133.     jsr    (a6)
  134.     movem.l    (sp)+,d2-d7/a2-a6
  135.     rts
  136.  
  137. _xpr_setserial:
  138.     movem.l    d2-d7/a2-a6,-(sp)
  139.     movea.l    XPR_SETSERIAL(a3),a6
  140.     jsr    (a6)
  141.     movem.l    (sp)+,d2-d7/a2-a6
  142.     rts
  143.  
  144. _xpr_ffirst:
  145.     movem.l    d2-d7/a2-a6,-(sp)
  146.     movea.l    XPR_FFIRST(a3),a6
  147.     jsr    (a6)
  148.     movem.l    (sp)+,d2-d7/a2-a6
  149.     rts
  150.  
  151. _xpr_fnext:
  152.     movem.l    d2-d7/a2-a6,-(sp)
  153.     movea.l    XPR_FNEXT(a3),a6
  154.     jsr    (a6)
  155.     movem.l    (sp)+,d2-d7/a2-a6
  156.     rts
  157.  
  158. _xpr_finfo:
  159.     movem.l    d2-d7/a2-a6,-(sp)
  160.     movea.l    XPR_FINFO(a3),a6
  161.     jsr    (a6)
  162.     movem.l    (sp)+,d2-d7/a2-a6
  163.     rts
  164.  
  165. _xpr_fseek:
  166.     movem.l    d2-d7/a2-a6,-(sp)
  167.     movea.l    XPR_FSEEK(a3),a6
  168.     jsr    (a6)
  169.     movem.l    (sp)+,d2-d7/a2-a6
  170.     rts
  171.  
  172. _xpr_options:
  173.     movem.l    d2-d7/a2-a6,-(sp)
  174.     movea.l    XPR_OPTIONS(a3),a6
  175.     jsr    (a6)
  176.     movem.l    (sp)+,d2-d7/a2-a6
  177.     rts
  178.  
  179. _xpr_unlink:
  180.     movem.l    d2-d7/a2-a6,-(sp)
  181.     movea.l    XPR_UNLINK(a3),a6
  182.     jsr    (a6)
  183.     movem.l    (sp)+,d2-d7/a2-a6
  184.     rts
  185.  
  186. _xpr_squery:
  187.     movem.l    d2-d7/a2-a6,-(sp)
  188.     movea.l    XPR_SQUERY(a3),a6
  189.     jsr    (a6)
  190.     movem.l    (sp)+,d2-d7/a2-a6
  191.     rts
  192.  
  193. _xpr_getptr:
  194.     movem.l    d2-d7/a2-a6,-(sp)
  195.     movea.l    XPR_GETPTR(a3),a6
  196.     jsr    (a6)
  197.     movem.l    (sp)+,d2-d7/a2-a6
  198.     rts
  199.  
  200.     END
  201.