home *** CD-ROM | disk | FTP | other *** search
- The Osborne I's uart is memory mapped in bank 2 at locations
- 02A00H and 02A01H. The traditional way of getting at the port
- was to have some assembly language code located above 04000H.
- This code normally takes the form of:
-
- DI
- OUT 00H
-
- To change back you have used the following:
-
- OUT 01H
- EI
-
- The uart is mapped with 02A00H as the status/control word and
- 02A01H as the data word. So to write some data to the data port
- of the uart, the following code would have been used:
-
- DI
- OUT 00H
- STA 02A01H
- OUT 01H
- EI
-
- This is the new method that uses code that is already in the BIOS
- and the ROM. What you have to do is set up somthing like the
- following code:
-
- ;Output a control word to the 6850 chip
-
- CTLPOUT:
- MOV C,A ;Put the character in C
- LXI D,013CH
- JMP SWITCH
-
- ;Input the status of the 6850 chip
-
- STATUS: LXI D,0181H
- CALL SWITCH
- RET ;The status will be in A
-
- ;Output a charater to the 232 port
-
- DTLPOUT:
- MOV C,A ;Put the charater in C
- LXI D,010FH
- JMP SWITCH
-
- ;Input a character from the 232 port
-
- DTLPIN: LXI D,0115H
- CALL SWITCH
- RET ;The character will be in A
-
- SWITCH: LDA SWITCH1+2
- ORA A
- RZ ;Nont installed yet
- SWITCH1:
- JMP 0036H ;The 00 is replaced by INIT
-
- ;END OF CODE
-
- The code should be installed with the following code:
-
- INIT: LDA 0002H ;High order bit of the BIOS addr
- STA SWITCH1+2
- RET
-
- ;END OF CODE
-
- When using this method of getting to the 6850 chip, you should
- always call the STATUS routine before calling DTLPIN because
- DTLPIN will wait for a character and if there is no character for
- a while, the program will be locked up. The code that is used to
- mask off and check the status bits is still the best way of
- checking for Ready-for-the-next-character and Character-is-
- waiting.
-
- The data words are the usual ascii characters. The data for the
- control word is in the first chart. The status word definitions
- are in the second chart.
-
- In the following charts, CR0 is the least significant bit and CR7
- is the most significant bit.
-
-
- CR7 FUNCTION
-
- X Is not used on the Osborne.
-
- CR6 CR5 FUNCTION
-
- 0 0 Enables the internal modem port on the Osborne.
- 0 1 Not used on the Osborne.
- 1 0 This is the normal setting.
- 1 1 Transmits a BREAK level on the data output.
-
- CR4 CR3 CR2 FUNCTION
-
- 0 0 0 7 Bits, Even parity, 2 Stop bits
- 0 0 1 7 Bits, Odd parity, 2 Stop bits
- 0 1 0 7 Bits, Even parity, 1 Stop bit
- 0 1 1 7 Bits, Odd parity, 1 Stop bit
- 1 0 0 8 Bits, No parity, 2 Stop bits
- 1 0 1 8 Bits, No parity, 1 Stop bit
- 1 1 0 8 Bits, Even parity, 1 Stop bit
- 1 1 1 8 Bits, Odd parity, 1 Stop bit
-
- CR1 CR0 FUNCTION
-
- 0 0 19,200 Baud
- 0 1 1200 Baud
- 1 0 300 Baud
- 1 1 Master Reset
-
- A Master Reset (03H) must be written to the uart before a new
- setting is sent and as the first thing written to the uart after
- the program starts. The 19,200 baud setting does not seem to
- work on the Osborne I.
-
- CR0
- 0 Data not available
- 1 Data available
-
- CR1
- 0 Not ready for new data
- 1 Ready for new data
-
- CR2
- 0 Carrier present
- 1 Carrier lost
-
- CR3
- 0 Clear to send (hooked to the CTS line)
- 1 Not clear to send
-
- CR4
- 0 No framing error
- 1 Framing error
-
- CR5
- 0 No overrun error
- 1 Overrun error
-
- CR6
- 0 No parity error
- 1 Parity error
-
- CR7
- X Not used on the Osborne I
-
-
- I hope that this code modification will make it easier for you to
- install a term program on your system.
-
- he Osborne I
-
-
- I hope that this code modification will make it easier for you to
- install a term program on