home *** CD-ROM | disk | FTP | other *** search
- ; 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
- ;-----------------------------------------------------------------------