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 / NUBYE / NUBY-INS.LBR / NUSB-1.IQS / nusb-1.ins
Text File  |  1986-04-26  |  3KB  |  134 lines

  1. ; NUSB-1.INS - Intertec Superbrain overlay file for NUBYE - 04/21/86
  2. ;
  3. ; 8251A and BR1941 baudrate generator
  4. ;
  5. ; NOTE:  This is an insert, not an overlay.
  6. ;
  7. ; ========
  8. ;
  9. ; 04/21/86  Modified for NUBYE
  10. ; 07/17/85  Written for use with BYE5        - Irv Hoff
  11. ;
  12. ; ========
  13. ;
  14. ; The following define the port addresses to use
  15. ;
  16. PORT    EQU    58H        ; Data port
  17. MDCTL1    EQU    PORT+1        ; Status/Control port
  18. BRPORT    EQU    60H        ; CTC baudrate port
  19. ;
  20. ; Baudrate table
  21. ;
  22. BD300    EQU    57H        ; Modem 300,  printer 1200
  23. BD1200    EQU    77H        ; Modem 1200, printer 1200
  24. BD2400    EQU    0A7H        ; Modem 2400, printer 1200
  25. BD9600    EQU    0E7H        ; Modem 9600, printer 1200
  26. ;
  27. ; See if we still have a carrier - if not, return with the zero flag set
  28. ;
  29. MDCARCK:IN    MDCTL1        ; Get status
  30.     ANI    80H        ; Check DSR for carrier from modem
  31.     RET
  32. ;
  33. ; Disconnect and wait for an incoming call.
  34. ;
  35. MDINIT:    MVI    A,10H        ; Clear DTR
  36.     OUT    MDCTL1        ; Causing hangup
  37.     PUSH    B        ; Preserve in case we need it
  38.     MVI    B,20        ; 2 seconds to drop DTR
  39.  
  40. OFFTI:    CALL    DELAY        ; 0.1 second delay
  41.     DCR    B
  42.     JNZ    OFFTI        ; Keep waiting until carrier drops
  43.     POP    B        ; Restore BC
  44.     MVI    A,MDMODE    ; Insure 8251 is out of mode
  45.     OUT    MDCTL1
  46.     XTHL            ; Delay a little
  47.     XTHL            ; Delay a little
  48.     MVI    A,MDRSET    ; Reset the 8251A for new command
  49.     OUT    MDCTL1
  50.     XTHL
  51.     XTHL
  52.     MVI    A,MDSET1    ; Set stop pulse, no parity 8 bits, x16
  53.     OUT    MDCTL1
  54.     XTHL
  55.     XTHL
  56.     MVI    A,17H        ; Reset error flags, RCV, DTR, TX ready
  57.     OUT    MDCTL1
  58.     XTHL
  59.     XTHL
  60. ;
  61.      IF    IMODEM
  62.     CALL    IMINIT        ; Initialize smartmodem
  63.      ENDIF            ; IMODEM
  64. ;
  65.     RET
  66. ;
  67. ; Input a character from the modem port
  68. ;
  69. MDINP:    IN    PORT        ; Get character
  70.     RET
  71. ;
  72. ; Check the status to see if a character is available.    If not, return
  73. ; with the zero flag set.  If yes, use 0FFH to clear the flag.
  74. ;
  75. MDINST:    IN    MDCTL1        ; Get status
  76.     ANI    2        ; Check the receive ready flag
  77.     RZ            ; Return if none
  78.     IN    MDCTL1        ; Get status again
  79.     ANI    30H        ; Check for framing and overrun
  80.     JZ    MDINST1        ; No errors
  81.     MVI    A,17H        ; Reset error flags
  82.     OUT    MDCTL1
  83.     XRA    A        ; Return false
  84.     RET
  85. ;
  86. MDINST1:ORI    0FFH        ; We have a character
  87.     RET
  88. ;
  89. ; Send a character to the modem
  90. ;
  91. MDOUTP:    OUT    PORT        ; Send it
  92.     RET
  93. ;
  94. ; See if the output is ready for another character
  95. ;
  96. MDOUTST:IN    MDCTL1
  97.     ANI    1        ; Check transmit ready flag
  98.     RET
  99. ;
  100. ; Reinitialize the modem and hang up the phone by dropping DTR and
  101. ; leaving it inactive.
  102. ;
  103. MDQUIT:     IF    IMODEM
  104.     CALL    IMQUIT
  105.      ENDIF            ; IMODEM
  106. ;
  107. ; Called by the main program after caller types BYE
  108. ;
  109. MDSTOP:    MVI    A,10H        ; DTR low hangs up phone, keep DTR low
  110.     OUT    MDCTL1        ;   so will not auto-answer at any time
  111.     RET
  112. ;
  113. ; The following routine sets the baudrate.  NUBYE asks for the maximum
  114. ; do not support the particular rate, then simply put in a JMP to
  115. ;
  116. SETINV:    MVI    A,0FFH
  117.     ORA    A        ; Make sure the Zero flag isn't set
  118.     RET
  119. ;
  120. SET300:    MVI    A,BD300        ; Load 300 baud
  121.     JMP    SETSPD
  122. ;
  123. SET1200:MVI    A,BD1200    ; Poke in 1200 bps
  124.     JMP    SETSPD
  125. ;
  126. SET2400:MVI    A,BD2400    ; Load 1200 bps
  127. ;
  128. SETSPD:    OUT    BRPORT
  129.     XRA    A        ; Say it is ok
  130.     RET
  131. ;
  132. ; end of insert
  133. ; -------------
  134.