home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / TERMS / QT43SRC.LBR / RECVK.ZY / RECVK.ZY
Text File  |  2000-06-30  |  3KB  |  259 lines

  1. ; recvk.z - code to receive kermit protocol transfers
  2.  
  3. .incl    "c:vars"
  4. .incl    "c:kermit"
  5.  
  6. .extern    recvk
  7. recvk:
  8.     call    kinit
  9.     call    initrc
  10.     xor    a
  11.     ld    (nn),a
  12.     ld    (numtry),a
  13.     ld    (ksflg),a
  14.     ld    a,(getflg)
  15.     or    a
  16.     call    nz,sndget
  17.     ld    a,'R'
  18. recvlp:    ld    (state),a
  19.     cp    'R'
  20.     jr    nz,norr
  21.     call    rinit
  22.     jr    recvlp
  23. norr:    cp    'F'
  24.     jr    nz,norf
  25.     call    rfile
  26.     jr    recvlp
  27. norf:    cp    'D'
  28.     jr    nz,nord
  29.     call    rdata
  30.     jr    recvlp
  31. nord:    xor    'C'
  32.     ret
  33.  
  34. rinit:
  35.     ld    hl,numtry
  36.     ld    a,(hl)
  37.     inc    (hl)
  38.     cp    MAXTRY + 1
  39.     jr    nc,reta
  40.     call    rpack
  41.     cp    'S'
  42.     jr    nz,noris
  43.     ld    a,(nn)
  44.     cp    c
  45.     jr    nz,retan
  46.     call    rpar
  47.     call    spar
  48.     call    pktok
  49.     ld    a,'Y'
  50.     ld    bc,(nn)
  51.     ld    de,13
  52.     ld    b,d
  53.     call    spack
  54.     ld    hl,numtry
  55.     ld    a,(hl)
  56.     ld    (oldtry),a
  57.     xor    a
  58.     ld    (hl),a
  59.     ld    (getflg),a
  60.     ld    hl,nn
  61.     inc    (hl)
  62.     res    6,(hl)
  63.     ld    a,(cktypq)
  64.     ld    (cktyp),a
  65.     ld    a,'F'
  66.     ret
  67. noris:    or    a
  68.     jr    nz,norif
  69.     call    dtime
  70.     ld    a,(getflg)
  71.     or    a
  72.     jr    z,rinak
  73.     call    sndget
  74.     jr    rierr
  75. rinak:    ld    bc,(nn)
  76.     ld    de,0
  77.     ld    b,e
  78.     ld    a,'N'
  79. sretst:    call    spack
  80. rierr:    call    pkterr
  81.     ld    a,(state)
  82.     ret
  83. norif:    cp    'E'
  84.     jr    nz,retab
  85.     call    prerrp
  86.     jr    reta
  87. retan:    call    dnum
  88.     jr    reta
  89. retab:    call    dbadp
  90.     jr    reta
  91. retar:    call    dtries
  92. reta:    ld    a,'A'
  93.     ret
  94.  
  95. rfile:
  96.     ld    hl,numtry
  97.     ld    a,(hl)
  98.     inc    (hl)
  99.     cp    MAXTRY + 1
  100.     jr    nc,reta
  101.     call    rpack
  102.     cp    'S'
  103.     jr    nz,norfs
  104.     ld    hl,oldtry
  105.     ld    a,(hl)
  106.     inc    (hl)
  107.     cp    MAXTRY + 1
  108.     jr    nc,retar
  109.     ld    a,(nn)
  110.     dec    a
  111.     and    63
  112.     cp    c
  113.     jr    nz,retan
  114.     push    de
  115.     call    spar
  116.     pop    de
  117.     ld    de,13
  118.     ld    b,d
  119. cntsrs:    xor    a
  120.     ld    (numtry),a
  121.     ld    a,'Y'
  122.     jr    sretst
  123. norfs:    cp    'Z'
  124.     jr    nz,norfz
  125.     ld    hl,oldtry
  126.     ld    a,(hl)
  127.     inc    (hl)
  128.     cp    MAXTRY + 1
  129. retanc:    jr    nc,retar
  130.     ld    a,(nn)
  131.     dec    a
  132.     and    63
  133.     xor    c
  134.     jr    nz,retan
  135.     ld    e,a
  136.     ld    d,a
  137.     ld    b,a
  138.     jr    cntsrs
  139. norfz:    cp    'F'
  140.     jr    nz,norff
  141.     ld    a,(nn)
  142.     cp    c
  143. retanz:    jr    nz,retan
  144.     ld    hl,packet
  145.     ld    de,packet + 500
  146.     ld    a,(pack)
  147.     or    a
  148.     jr    z,nopkfn
  149.     call    exprp
  150.     ld    hl,packet + 500
  151. nopkfn:    call    cpmaux
  152.     xor    a
  153.     ld    (ymdmb),a
  154.     call    auxopn
  155.     ld    de,-1
  156.     ld    hl,auxfcb
  157.     call    prfile
  158. pokd:    call    pktok
  159.     ld    a,'Y'
  160.     ld    bc,(nn)
  161.     ld    de,0
  162.     ld    b,e
  163.     call    spack
  164.     ld    hl,numtry
  165.     ld    a,(hl)
  166.     ld    (oldtry),a
  167.     ld    (hl),0
  168.     ld    hl,nn
  169.     inc    (hl)
  170.     res    6,(hl)
  171.     ld    a,'D'
  172.     ret
  173. norff:    cp    'B'
  174. noris1:    jp    nz,noris
  175.     ld    a,(nn)
  176.     xor    c
  177. retnz1:    jr    nz,retanz
  178.     call    pktok
  179.     ld    a,'Y'
  180.     ld    bc,(nn)
  181.     ld    de,0
  182.     ld    b,e
  183.     call    spack
  184.     ld    a,'C'
  185.     ret
  186.  
  187. rdata:
  188.     ld    hl,numtry
  189.     ld    a,(hl)
  190.     inc    (hl)
  191.     cp    MAXTRY + 1
  192. retnc1:    jp    nc,retar
  193.     call    rpack
  194.     cp    'D'
  195.     jr    nz,nordd
  196.     ld    a,(nn)
  197.     cp    c
  198.     jr    z,dnok
  199. ackold:    ld    hl,oldtry
  200.     ld    a,(hl)
  201.     inc    (hl)
  202.     cp    MAXTRY + 1
  203.     jr    nc,retnc1
  204.     ld    a,(nn)
  205.     dec    a
  206.     and    63
  207.     xor    c
  208. retnz2:    jr    nz,retnz1
  209.     ld    e,a
  210.     ld    d,a
  211.     ld    b,a
  212.     jp    cntsrs
  213. dnok:    call    bufemp
  214.     jp    pokd
  215. nordd:    cp    'F'
  216.     jr    z,ackold
  217.     cp    'Z'
  218.     jr    nz,noris1
  219.     ld    a,(nn)
  220.     cp    c
  221.     jr    nz,retnz2
  222.     call    flshw2
  223.     ld    de,auxfcb
  224.     ld    c,close
  225.     call    usrbds
  226.     call    pktok
  227.     ld    hl,nn
  228.     ld    c,(hl)
  229.     inc    (hl)
  230.     res    6,(hl)
  231.     ld    de,0
  232.     ld    b,e
  233.     ld    a,'Y'
  234.     call    spack
  235.     ld    a,'F'
  236.     ret
  237.  
  238. sndget:    ld    bc,(getnam)
  239. ressg:    ld    hl,packet
  240.     ld    de,0xff
  241. sgelp:    ld    a,(bc)
  242.     inc    bc
  243.     ld    (hl),a
  244.     cp    ':'
  245.     jr    z,ressg
  246.     cp    MYQUOTE
  247.     jr    nz,noquot
  248.     inc    hl
  249.     inc    e
  250.     ld    (hl),a
  251. noquot:    inc    hl
  252.     inc    e
  253.     or    a
  254.     jr    nz,sgelp
  255.     ld    b,d
  256.     ld    c,d
  257.     ld    a,'R'
  258.     jp    spack
  259.