; B5OS-3.INS - Osborne OS-1 insert for BYE5 - 09/15/85
;
;                       6850 ACIA
;
; Note:  This is an insert, not an overlay.  If your OS-1 does not have
;        have the hardware mod to support DTR, (shown below) then set
;        the NODTR option in BYE5 to "YES".  Also set:
;
;                   IMODEM   EQU   YES
;                   NORING   EQU   YES
;
; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
;
; 09/15/85
;
;          Program now supports 2400 bps for the new 2400 bps modems
;          *  Equate added for NUEVO 80 column add-on video board with
;             optional baud rate generator.
;          *  Equate added for new Osborne 1.45 ROM for 2400 bps
;             operation and hardware mods.
;          *  Re-edited hardware mods descriptions
;                                       - Roy Robinson
;
; 08/07/85
;
;          *  Program now runs properly with BYE5 program
;          *  Renamed several labels to more closely match BYE5
;             conventions
;          *  Changed MDOUTP routine with addition of PUSH PSW
;             and POP PSW statements.  MDOUTP routine for Osborne 1
;             clobbers accumulator register when called.
;          *  Changed MDQUIT routine, program now calls
;             RTSNBL and  IMQUIT if IMODEM equate is set true.
;          *  Changed MDINIT routine, program now calls
;             IMINIT if IMODEM equate is set true.
;          *  Changed MDCARCK routine
;                                       - Roy Robinson
;
; 07/17/85  Revised for use with BYE5   - Kevin Murphy
;           (based on file from Roy Robinson)
;                                       - Irv Hoff
;
; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
;
; NOTE:
;       IF YOU USE THE HARWARE MODIFICATION TO THE OZZIE 1.
;       When the Sysop terminates the BYE program with a control C fol-
;       lowed by any other key except 'E' or 'R' from the local console
;       keyboard to go off-line, the Sysop must press the RESET button
;       at the front of the Ozzie and reboot the computer before running
;       the BYE5 program again. This is due to the nature of the 6821
;       PIA input, CB2, which is used for carrier detect in the hardware
;       mod.  Pushing the RESET button triggers the CB2 input for proper
;       use with BYE5.  This reboot should be a minor inconvenience as
;       it is initiated only when the computer is off-line.
;
;                                               - Roy Robinson
;
;
; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
;
; DOCUMENTATION FOR THIS BYE5 INSERT:
;
;-------------------
;
; If you intend to use this insert with none of the hardware modifica-
; tions to the main logic board described below, set the HARDMOD and
; BAUDMOD equates to NO.  You will have the following baud rate values:
; 300 and 1200 bps.  An unmodified Osborne 1 will not work if both the
; HARDMOD and BAUDMOD equates are set to YES.
;
; The NUEVO equate concerns the use of a "piggy-back" 80 column video
; board made by NUEVO ELECTRONICS with an optional baud rate generator.
; NUEVO ELECTRONICS may be contacted at: (713) 341-6001.
;
; The BAUDMOD equate concerns the use of a new ROM monitor chip (ROM
; version 1.45) available from Osborne Computer or your local Osborne
; dealer.  This ROM and the addition of five wire jumpers to your main
; logic board will give you 300/1200/2400 bps serial I/O for the new
; 2400 bps modems.
;
; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
;
; The NUEVO equate:
;
; If you have the NUEVO 80 column video board with the baud rate option
; installed, set the NUEVO equate to YES.  You will then have the fol-
; lowing baud rates available: 300, 1200 2400, bps.
;
; If your NUEVO 80 column board does NOT have the optional baud rate
; generator, set the NEUVO equate to NO.  Since the NUEVO baud rate
; generator is not installed, you will have the following baud rates
; available 300 and 1200 bps.
;
; Contact NUEVO ELECTRONICS if you wish to install the baud rate option
; on your NUEVO 80 column board.
;
; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
;
; The HARDMOD equate:
;
; If you decide to install the DTR and DCD modification to your OS-1
; main logic board, set the HARDMOD equate to YES.  This modification
; can be installed in an Osborne 1 with or without the Osborne or NUEVO
; 80 column video boards.  The modification gives the Osborne 1 the
; ability to force the modem to hang up the phone by dropping the 6850
; ACIA RTS line which is connected to the modem DTR input.
;
; The data carrier detect modification gives the Osborne the ability to
; detect carrier loss within a very short time (usually within a couple
; of seconds) rather than depending on a time-out which can take up to
; 30 seconds or more.
;
; If you do use the DTR and DCD modification, you will need to configure
; a special RS-232 cable from your Osborne 1 serial port to your exter-
; nal modem.  Your modem must support the DTR and DCD input signal lines
; and you must set the modem DTR and DCD switches or program the modem
; internal memory to monitor its DTR and DCD signal inputs.
;
; New RS-232 modem cable to be used with OCC-1 and external modem when
; using DTR control:
;
;
;         OCC-1                        MODEM
;
;        2    RXD                     3    RXD
;        3    TXD                     2    TXD
;        4    DCD (new function)      8    DCD
;        5    RTS (new function)      20   DTR
;        7    GND                     7    GND
;
;       DTR AND DCD SUPPORT MODIFICATION
;
; OSBORNE 1 MAIN LOGIC BOARD TRACE CUTS:
; The Osborne 1 main logic board is organized into zones which are iden-
; tified on the COMPONENT side of the main logic board with LETTERS found
; along the left side of the board and NUMBERS found along the rear of
; the  board (i.e., the 6850 ACIA device is located in zones C4, C5, and
; C6 and the MC1458 device is located in zone E3).  If you are unsure
; how to count pin numbers on IC devices, find a friend who does, attend
; a user group meeting, or take your computer to a computer store/service
; center for further aid.
;
; --------------------------
; Solder Side:
;
; 1.    Cut the trace running from pin 5 to pin 6 on the inner row of
;       pads used to mount the RS-232 female serial connector at the
;       front of the main logic board.  Pin 1 is the pad with a wide
;       ground trace.
;
; Component side:
;
; 2.    Cut the trace from pin 5 of the 6850 ACIA device in zone C4 to
;       resistor R20 (10K ohm) located in zone D5.
;
; 3.    Cut the trace that runs BETWEEN pins 3 and 4 of the 6850 device
;       in zone C4.  Note: pins 3 and 4 do not have visible traces run-
;       ning to them on the component side.
;
; PART ADDITIONS:
; --------------
; Solder side:
;
; 5.    Add a jumper wire from pin 1 of the MC1458 device in zone E3 to
;       pin 5 on the inner row of the RS-232 serial port pads.  Pin 1 is
;       the pad with the wide ground trace.
;
; 6.    Add a jumper wire from pin 3 of the MC1458 device in zone E3 to
;       pin 5 of the same MC1458 device in zone E3.
;
; 7.    Add a jumper wire from pin 5 of the 74LS08 device in zone C1 to
;       pin 10 of the LM3400 device in zone D4.
;
; 8.    Add a jumper wire from pin 4 of the 74LS08 device in zone C1 to
;       pin 1 of the 74LS04 device in zone E20.
;
; 9.    Add a jumper wire from pin 6 of the 74LS08 device in zone C1 to
;       pin 5 of the 74LS04 device in zone A11.
;
; 10.   Add a jumper wire from pin 19 of the 6821 device in zone C15 to
;       pin 6 of the 74LS04 device in zone A11.
;
;
; Using the component side or solder side (whichever side you feel more
; comfortable for mounting  the two - 1/4 watt resistors):
;
; 11.   Mount a 10K ohm resistor from Vcc which is +5 volts (pin 14 of
;       the 74LS02 device in zone D2 is a good solder point) to pin 2 of
;       the MC1458 device in zone E3.
;
; 12.   Mount a 220 ohm resistor from pin 5 of the 6850 ACIA device in
;       zone C4 to pin 2 of the MC1458 device in zone E3.  Pin 2 of the
;       MC1458 device in zone E3 should now have two resistors attached
;       to it.
;
; 13.   Mount a 1K ohm resistor from pin 19 of the 6821 PIA device in
;       zone C15 to Vcc which is +5 volts (pin 16 of the 74LS161 device
;       in zone D18 is a good solder point).
;
; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
;
; The BAUDMOD equate:
;
;               300/1200/2400 BAUD SUPPORT MODIFICATION
;
; This modification now allows you to have 300/1200/2400 bps support un-
; der software control.  The modification involves five jumper wires and
; the installation of a NEW MONITOR ROM - ROM VERSION 1.45.  The code in
; the new ROM has modified the 6821 VIDEO PIA control byte value for
; register A.  The CA2 Peripheral Control Line is now an output control
; line rather than an input status line.  The input status line was used
; with the COMM-PAC/DATA-COMM modems.  The new output control line will
; allow 600/2400 baud operation for the 6850 ACIA serial I/O chip with
; the following hardware modifications to the main logic board:
;
;       On the main logic board - COMPONENT SIDE:
;
; 1.    Remove Jumper J1 found in zone C4 located next to the
;       6821 ACIA chip.
;       This will expose two pins which we will refer to as the
;       Jumper J1 FRONT and REAR pins.
;
;       The FRONT pin is the pin located toward the front edge of
;       the main logic board.  The front edge of the logic board has the
;       printer connectors and video controls mounted at the edge.
;       On the solder side of the main logic board, the FRONT pin
;       has a trace leading to pin 7 of the 74LS161 chip at
;       zone C3.
;       The REAR pin has no trace on the solder side of the board
;       and is located toward the rear edge of the main logic
;       board.
;
;       On the main logic board - SOLDER SIDE
;
; 2.    Add a jumper wire from pin 4 of the 74LS08 chip in zone A5
;       to the REAR pin of J1.
;
; 3.    Add a jumper wire from pin 5 of the 74LS08 chip in zone A5
;       to pin 39 of the 6821 chip in zone C15.
;
; 4.    Add a jumper wire from pin 6 of the 74LS08 chip in zone A5
;       to pin 5 of the 74LS02 chip in zone D2.
;
; 5.    Add a jumper wire from pin 5 of the 74LS02 chip in zone D2
;       to pin 6 of the 74LS02 in zone D2.  Pin 5 now has two
;       jumpers connected to it.
;
; 6.    Add a jumper wire from pin 4 of the 74LS02 chip in zone D2
;       to the FRONT pin of Jumper J1.
;
; With this modification you will now be unable to use the Osborne
; COMM-PAC or CTS DATA-COMM modems.  The CA2 line, originally a modem
; input status line, is now an output control line used to select one
; of two clock frequencies supplied to the ACIA TX and RX clock inputs.
;
;-----------------------------------------------------------------------
;
;
WRKBAUD:DB      16H     ; [*] OCC1 ++
SSTAT:  DB      0       ; RAM location serves as a secondary status
                       ;   register for the 6850 ACIA status register.
                       ;   This secondary RAM register is used because
                       ;   the  6850 ACIA clobbers its own status reg-
                       ;   ister (with regard to TBE and RDA status
                       ;   bits) when data is traveling in both direc-
                       ;   tions via the serial port.  This status bit
                       ;   recognition problem was illustrated with data
                       ;   being output during a display listing to the
                       ;   remote user, and the remote user wished to
                       ;   suspend or abort the screen display by typing
                       ;   a ^S, ^C, or ^K.
;
;-----------------------------------------------------------------------
;
;
HARDMOD EQU     YES     ; YES, if hardware mods have been installed in
                       ;   Osborne O-1 to support DTR and modified DCD.
                       ;   (see installation procedure above)
                       ;
                       ; NO,  if the O-1 is standard (no mods).
                       ;   If NO, you must set the NODTR equate to YES
                       ;   in the main body of the BYE5 program.  You
                       ;   must also use an intelligent modem (one that
                       ;   supports hayes or racal-vadic software com-
                       ;   mand protocol) and set the IMODEM equate to
                       ;   YES in the main body of the BYE5 program.
                       ;
NUEVO   EQU     NO      ; YES, if Nuevo 80 column upgrade WITH baud rate
                       ;   option has been installed.
                       ;   (see discussion above)
                       ;

BAUDMOD EQU     NO      ; YES, if new Osborne ROM version 1.45 and baud
                       ;   rate jumper modification are installed.
                       ;   Do not set to YES if you have not installed
                       ;   new ROM and jumper modification
                       ;   (see discussion above)
                       ;
;-----------------------------------------------------------------------
;
;
STATM   EQU     02A00H
DATA    EQU     02A01H
CDATA   EQU     02C02H
CSTAT   EQU     02C03H
;
;
        IF     HARDMOD
MDDCD   EQU     40H
        ENDIF
;
;
        IF     NOT HARDMOD
MDDCD   EQU     04H
        ENDIF
;
RRDA    EQU     0FEH
MRDA    EQU     1
RTBE    EQU     0FDH
MTBE    EQU     2
;
;
;-----------------------------------------------------------------------
;
; See if we still have a carrier - if not, return with the zero flag set
;
MDCARCK:
        IF     HARDMOD
       DI              ; Disable interrupts
       OUT     0
       LDA     CSTAT   ; Read video PIA status register
       OUT     1
       EI
        ENDIF          ; HARDMOD
;
;
        IF     NOT HARDMOD
       CALL    BNKINS  ; Get modem status
        ENDIF          ; NOT HARDMOD
;
;
       CMA             ; Complement register, DCD bit set with LOSS of
                       ;   carrier.  Most I/O devices use active high.
       ANI     MDDCD   ; Mask out everything but carrier LOSS bit
                       ; Z=1 Lost carrier
                       ; Z=0 Carrier present
       RET
;......
;
;
; Disconnect and wait for an incoming call
;
MDINIT: CALL    RTSDIS  ; Clear RTS causing hangup
       CALL    RTSNBL  ; Turn on DTR so modem can answer phone
       CALL    OFFTIM  ; Wait 2 seconds
;
        IF      IMODEM
       CALL    IMINIT  ; Initialize smartmodem
        ENDIF          ; IMODEM
;
        IF     HARDMOD
       CALL    INITCAR ; Reset carrier detect input on 6821 video PIA
        ENDIF          ; HARDMOD
;
       RET
;.....
;
;
; Input a character from the modem port
;
MDINP:  CALL    BNKIND  ; Input data from RS-232 serial port
       PUSH    PSW     ; Save the character
       LDA     SSTAT   ; Load secondary ACIA status register from RAM
       ANI     RRDA    ; Mask the RDA bit (reset RDA bit in secondary
                       ;   register)
       STA     SSTAT   ; Save our updated status register in RAM
       POP     PSW     ; Recover the character
       RET             ; Return to sender
;.....
;
;
; Check the status to see if a character is available.  If not, return
; with the zero flag set.  If yes, use 0FFH to clear the flag.
;
MDINST: PUSH    B       ; Save BC registers
       LDA     SSTAT   ; Load secondary ACIA status register
                       ;   (contains status of ACIA from last ACIA
                       ;   operation)
       MOV     B,A     ; Save it in register B
       CALL    BNKINS  ; Input current ACIA status register
       ORA     B       ; Perform an OR operation on both former
                       ;   as well as present ACIA register states.
       STA     SSTAT   ; Save updated ACIA register state in secondary
                       ;   ACIA register
       ANI     MRDA    ; Mask RDA bit
       POP     B       ; Recover former BC registers
       RZ              ; Nothing?  Return to sender with Z-flag set
       ORI     0FFH    ; We got something....
       RET             ; Return to sender with Z-flag not set
;.....
;
;
; Send a character to the modem
;
MDOUTP: PUSH    PSW
       CALL    BNKOUTD ; Output data to RS-232 serial port
       LDA     SSTAT   ; Load secondary ACIA register
       ANI     RTBE    ; Mask the TBE bit
       STA     SSTAT   ; Save secondary ACIA register (now updated)
       POP     PSW
       RET             ; Return to sender
;.....
;
;
; Check the status to see if ACIA can output a character.  If not,
; return with the zero flag set.  If yes, use 0FFH to clear the flag.
;
MDOUTST:PUSH    B       ; Save BC registers
       CALL    BNKINS  ; Get present ACIA status register
       MOV     B,A     ; Move it to 'B' register
       LDA     SSTAT   ; Get secondary ACIA status register
       ORA     B       ; Perform an OR operation on present and former
                       ;   ACIA status register states
       STA     SSTAT   ; Save updated ACIA status register in secondary
                       ;   ACIA status register
       ANI     MTBE    ; Mask the TBE bit
       POP     B       ; Recover the former BC registers
       RZ              ; Transmit buffer not empty so return
                       ;   to sender with Z-flag set
       ORI     0FFH    ; If empty...
       RET             ; Ready to send character
;.....
;
;
; Reinitialize the modem and hang up the phone by dropping RTS and
; leaving it inactive
;
MDQUIT: CALL    RTSDIS  ; Disable RTS output, forcing modem to hang-up
;
        IF     IMODEM
       CALL    RTSNBL  ; Turn on RTS so modem can be programmed
       CALL    IMQUIT  ; If a smartmodem, tell it to shut down
        ENDIF          ; IMODEM
;
;
; Called by the main program after caller types BYE
;
MDSTOP: CALL    RTSDIS  ; Disable RTS causing modem hangup
;
       RET
;.....
;
;
; Initialize the 6850 ACIA and disable RTS line which serves as DTR
; control for the modem
;
RTSDIS:
;
       MVI     A,57H   ; IRQ disabled
                       ; RTS disabled (valid for modified/unmodified
                       ; O-1)
                       ;    with HARDMOD on, modem forced to hang up
                       ;    with HARDMOD off, modem is disconnects
                       ; 8 data bits, 1 stop bit, MRESET
       CALL    BNKOUTS
;
OFFTIM: PUSH    B       ;2 second delay after dropping the ACIA RTS line
       MVI     B,20    ;(which is DTR to the modem)
;

OFFTI:
       CALL    DELAY
       DCR     B
       JNZ     OFFTI
       POP     B
       RET
;.....
;
;
; Reset video 6820 PIA register for future detection of lost carrier
;
INITCAR:
       DI
       OUT     0
       LDA     CDATA   ; Read video pia data register to reset cb2 bit
       OUT     1
       EI
       RET
;.....
;
;
RTSNBL: LDA     WRKBAUD ; ACIA reset, set RTS state, set data parameters
       CALL    BNKOUTS
       RET
;.....
;
;
BNKINS: DI              ; Disable interrupts
       OUT     0       ; Switch banks to shadow memory bank
       LDA     STATM   ; Read ACIA status register (memory mapped)
       OUT     1       ; Switch banks back to program memory bank
       EI              ; Re-enable interrupts
       RET             ; Go home
;.....
;
;
BNKIND: DI              ; Disable interrupts
       OUT     0       ; Switch banks to shadow memory bank
       LDA     DATA    ; Read ACIA data register (memory mapped)
       OUT     1       ; Switch banks back to program memory bank
       EI              ; Reenable interrupts
       RET             ; Go home
;.....
;
;
BNKOUTS:DI              ; Disable interrupts
       OUT     0       ; Switch banks to shadow memory bank
       STA     STATM   ; Write data to ACIA control register (memory
                       ;   mapped)
       OUT     1       ; Switch banks to program memory bank
       EI              ; Reenable interrupts
       RET             ; Go home
;.....
;
;
BNKOUTD:DI              ; Disable interrupts
       OUT     0       ; Switch banks to shadow memory bank
       STA     DATA    ; Write data to ACIA data register (memory
                       ;   mapped)
       OUT     1       ; Switch banks to program memory bank
       EI              ; Reenable interrupts
       RET             ; Go home
;.....
;
;
; The following routines set the baudrate.  BYE5 would like the maximum
; speed you have available for controlling your modem.
;
;       the code below is for an osborne without the nuevo 80 column
;       video board and without the 1.45 ROM
;
        IF NOT NUEVO AND NOT BAUDMOD AND NOT HARDMOD
SET300:
       MVI     A,56H   ; IRQ disabled, RTS disabled (required for
                       ;   non-modified O-1)
                       ; 8 data bits, 1 stop bit, 64X clock
       JMP     SETBAUD
;
SET1200:
       MVI     A,55H   ; IRQ disabled, RTS disabled (required for
                       ;   non-modified O-1)
                       ; 8 data bits, 1 stop bit, 16X clock
        ENDIF          ; NOT NUEVO AND NOT BAUDMOD AND NOT HARDMOD
;
        IF NOT NUEVO AND NOT BAUDMOD AND HARDMOD
SET300: MVI     A,16H   ; IRQ disabled, RTS enabled (required for
                       ;   modified O-1)
                       ; 8 data bits, 1 stop bit, 64X clock
       JMP     SETBAUD
;
SET1200:
       MVI     A,15H   ; IRQ disabled, RTS enabled (required for
                       ;   modified O-1)
                       ; 8 data bits, 1 stop bit, 16X clock
        ENDIF          ; NOT NUEVO AND NOT BAUDMOD AND HARMOD
;
        IF NOT NUEVO AND NOT BAUDMOD
SETBAUD:
       STA     WRKBAUD ; Save incoming baud rate and ACIA parameters
       CALL    BNKOUTS
       XRA     A       ; Show baudrate was ok
       RET
;
SET2400 EQU     $       ; The unmodified OS-1 doesn't like 2400
;
SETINV: MVI     A,0FFH  ; Return bad
       ORA     A       ; Show baudrate was unacceptable
       RET
        ENDIF          ; NOT NUEVO AND NOT BAUDMOD
;...
;
;
; The following code is for an osborne with the ROM 1.45 and baudrate
; mods
;
        IF     BAUDMOD AND NOT NUEVO
SET300:
        ENDIF                  ; BAUDMOD AND NOT NUEVO
;
        IF     BAUDMOD AND NOT NUEVO AND HARDMOD
       MVI     C,16H           ; X64 clock, 8 DB 1 SB, RTS active
        ENDIF                  ; BAUDMOD AND NOT NUEVO AND HARDMOD
;
        IF     BAUDMOD AND NOT NUEVO AND NOT HARDMOD
       MVI     C,56H           ; X64 clock, 8 DB 1 SB, RTS inactive
        ENDIF                  ; BAUDMOD AND NOT NUEVO AND NOT HARDMOD
;
        IF     BAUDMOD AND NOT NUEVO
       MVI     B,3FH           ; Get low baud VIDEO PIA value
       JMP     SETBAUD         ; Load PIA and ACIA control bytes
;
SET1200:
        ENDIF                  ; BAUDMOD AND NOT NUEVO
;
        IF     BAUDMOD AND NOT NUEVO AND HARDMOD
       MVI     C,15H           ; X16 clock, 8 DB 1 SB, RTS active
        ENDIF                  ; BAUDMOD AND NOT NUEVO AND HARDMOD
;
        IF     BAUDMOD AND NOT NUEVO AND NOT HARDMOD
       MVI     C,55H           ; X16 clock, 8 DB 1 SB, RTS inactive
        ENDIF                  ; BAUDMOD AND NOT NUEVO AND NOT HARDMOD
;
        IF     BAUDMOD AND NOT NUEVO
       MVI     B,3FH           ; Get low baud VIDEO PIA value
       JMP     SETBAUD         ; Load PIA and ACIA control bytes
;
SET2400:
        ENDIF                  ; BAUDMOD AND NOT NUEVO
;
        IF     BAUDMOD AND NOT NUEVO AND HARDMOD
       MVI     C,15H           ; X16 clock, 8 DB 1 SB, RTS active
        ENDIF                  ; BAUDMOD AND NOT NUEVO AND HARDMOD
;
        IF     BAUDMOD AND NOT NUEVO AND NOT HARDMOD
       MVI     C,55H           ; X16 clock, 8 DB 1 SB, RTS inactive
        ENDIF                  ; BAUDMOD AND NOT NUEVO AND NOT HARDMOD
;
        IF     BAUDMOD AND NOT NUEVO
       MVI     B,37H           ; Get high baud VIDEO PIA value
;
SETBAUD:
       MOV     A,B             ; Load Acc with PIA baud rate speed value
       DI
       OUT     0               ; Switch to alternate bank
       STA     2C01H           ; Output data to VIDEO PIA control
                               ;   register A
       OUT     1               ; Switch to main bank
       EI
;
       MOV     A,C             ; Load Acc with ACIA control byte
       STA     WRKBAUD         ; Save incoming ACIA control byte
       CALL    BNKOUTS
       XRA     A               ; Show baudrate was ok
       RET
        ENDIF                  ; BAUDMOD AND NOT NUEVO
;...
;
;
; The code below is for an Osborne with Nuevo 80-column video board
; installed
;
        IF NUEVO AND NOT BAUDMOD
SET300:
       MVI     A,05H   ; 300 bps byte
       JMP     SETBAUD1
;
SET1200:
       MVI     A,07H   ; 1200 bps byte
       JMP     SETBAUD1
;
SET2400:
       MVI     A,0AH   ; 2400 bps byte
;
SETBAUD1:
       OUT     06H     ; Send to Nuevo baud rate generator port
        ENDIF          ; NUEVO AND NOT BAUDMOD
;
        IF NUEVO AND NOT BAUDMOD AND NOT HARDMOD
       MVI     A,55H   ; IRQ disabled, RTS disabled (required for
                       ;   non-modified O-1)
                       ; 8 data bits, 1 stop bit, 16X clock
        ENDIF          ; NUEVO AND NOT BAUDMOD AND NOT HARDMOD
;
        IF NUEVO AND NOT BAUDMOD AND HARDMOD
       MVI     A,15H   ; IRQ disabled, RTS enabled (required for
                       ;   modified O-1)
                       ; 8 data bits, 1 stop bit, 16X clock
        ENDIF          ; NUEVO AND NOT BAUDMOD AND HARDMOD
;
        IF NUEVO AND NOT BAUDMOD
SETBAUD:
       STA     WRKBAUD ; Save incoming baud rate and ACIA parameters
       CALL    BNKOUTS
       XRA     A       ; Show baudrate was ok
       RET
        ENDIF          ; NUEVO AND NOT BAUDMOD
;
;
;                      end
;-----------------------------------------------------------------------