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 / CPM / QTERM / QTPAT42.LBR / QT-PCB.ZY / QT-PCB.ZY
Text File  |  2000-06-30  |  2KB  |  81 lines

  1. ; QT-PCB.Z - Patch to solve upload bug in PC Board
  2. ;
  3. ; Due to an intermittent bug in PC Board (the MS-DOS BBS), there are PCB's
  4. ; that will not take uploads. One fix that has been found to work is to
  5. ; add a delay between each character when transmitting the file. This
  6. ; patch when applied to QTERM does just that. The ^\ U user function can
  7. ; be used to specify the amount of delay. 0 is no delay, (use this for
  8. ; everything except uploads), in most cases a value between 5 and 10 will
  9. ; allow an upload to work. Note that uploading scripts can use this: the
  10. ; sequence
  11. ;
  12. ; !u 7
  13. ; !s xky FILENAME.EXT
  14. ; !u 0
  15. ;
  16. ; will enable the delay for just the transmission.
  17.  
  18. .var    free    0x0400        ; where in the patch we can place things
  19.  
  20. .org    0x0134
  21.     ret    z
  22.     jp    delay
  23.  
  24. .org    0x01ce
  25. speed:
  26.  
  27. .org    0x0276            ; patch into the user function
  28.     jp    user        ; go do ours
  29.  
  30. .org    0x027c
  31. ilprmt:
  32.  
  33. .org    free
  34. user:
  35.     call    ilprmt        ; prompt for and get an answer
  36.     db    'Delay? \0'
  37.     ld    hl,0x7f        ; point just before it
  38.     ld    e,0
  39. byp:    inc    hl
  40.     ld    a,(hl)        ; get the next character
  41.     cp    ' '        ; space?
  42.     jr    z,byp        ; yes, skip over it
  43. numlp:    sub    '0'
  44.     cp    10
  45.     jr    nc,usee
  46.     ld    d,a
  47.     ld    a,e
  48.     add    a,a
  49.     add    a,a
  50.     add    a,e
  51.     add    a,a
  52.     add    a,d
  53.     ld    e,a
  54.     inc    hl        ; point to next character
  55.     jr    numlp
  56. usee:    ld    a,e
  57.     ld    (delcon),a
  58.     ret
  59.  
  60. delay:    ld    a,(delcon)
  61.     or    a
  62.     jr    z,incret
  63.     ld    c,a
  64. del1lp:    ld    a,(speed)
  65.     or    a
  66.     jr    nz,spdok
  67.     inc    a
  68. spdok:    ld    b,a
  69. dellp:    ld    hl,150
  70. delhl:    dec    hl
  71.     ld    a,h
  72.     or    l
  73.     jr    nz,delhl
  74.     djnz    dellp
  75.     dec    c
  76.     jr    nz,del1lp
  77. incret:    inc    a
  78.     ret
  79.  
  80. delcon:    db    0
  81.