home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / bye5 / bye510.fix < prev    next >
Text File  |  1986-08-09  |  2KB  |  80 lines

  1. ; SUBJECT : BYE510 FIX
  2. ;
  3. ; FROM      : IRV HOFF
  4. ;
  5. ; DATE      : 4 AUG 86
  6. ;
  7. ;
  8. ;    NOTE TO SYSOPS:  You may wish to put this little
  9. ;             file in your master BYE510.LBR so
  10. ;             it will be available to anybody
  11. ;             downloading that file.
  12. ;
  13. ;
  14. ;    Several Sysops have mentioned when using BYE510 they were unable
  15. ; to properly operate their local keyboard.  The fix involves (1) moving
  16. ; three lines in the MINP2: area and (2) adding three lines plus a new
  17. ; label in the MSTAT: area.
  18. ;
  19. ;    The problem occurred when those routines were altered to provide
  20. ; proper timeout with the METAL BBS program when nobody had typed on the
  21. ; remote keyboard for some time.  METAL was looping while waiting for a
  22. ; status bit to go high indicating a character could be obtained.  The
  23. ; BYE program(s) had been looping until the character was received.  The
  24. ; METAL program could thus hang up the system for long periods of time
  25. ; if nobody was typing at the other end.
  26.  
  27.  
  28. ;-----------------------------------------------------------------------
  29. ; CHANGE 1
  30. ;-----------------------------------------------------------------------
  31. ;
  32. MINP2:
  33. ;;;    CALL    CONSTAT     ; Check for console input    =>DELETE
  34. ;;;    ORA    A        ; Got console input?        =>DELETE
  35. ;;;    JNZ    CONIN        ; Yep, get the console character=>DELETE
  36.     CALL    MSTAT        ; Nope, check for modem input
  37.     ORA    A        ; Got modem input?
  38.     JZ    MINP2        ; Nope, loop again
  39.     CALL    CONSTAT     ; Check for console input    => ADDED
  40.     ORA    A        ; Got console input?        => ADDED
  41.     JNZ    CONIN        ; Yep, get the console character=> ADDED
  42. MINP3:    CALL    MDINP        ; Yep, get modem character
  43.  
  44.  
  45.  
  46. ;-----------------------------------------------------------------------
  47. ; CHANGE 2
  48. ;-----------------------------------------------------------------------
  49. ;
  50. ; Modem status test and no-activity timer routine
  51. ;
  52. MSTAT:     IF    NOT CPM3
  53.     CALL    BDCHEK        ; Set 6 to safety
  54.      ENDIF            ; NOT CPM3
  55. ;
  56.     CALL    CONSTAT     ; Check local keyboard status    => ADDED
  57.     ORA    A        ;                => ADDED
  58.     JNZ    MSTAT0        ;                => ADDED
  59.     LDA    MDMOFF
  60.     ORA    A
  61.     MVI    A,0
  62.     RNZ            ; Don't let remote input while modem is
  63.                 ; Muted
  64.     CALL    CHECK        ; Check for carrier lost
  65.     CALL    MDINST        ; Get modem input status
  66.     ORA    A        ; Character available?
  67.     JZ    MSTAT1        ; Nope
  68. ;
  69. MSTAT0:             ;              => LABEL ADDED
  70.     PUSH    PSW        ; Yep, save return status
  71.     XRA    A        ; Clear no-activity flag
  72.     STA    MSFLAG
  73.     POP    PSW        ; Restore return status
  74.     RET            ; And return
  75. ;
  76. MSTAT1: LDA    MSFLAG        ; Get the no-activity flag
  77.  
  78.     (etc.)
  79.  
  80.