Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!decvax!harpo!seismo!hao!hplabs!sri-unix!Kenny.G8ARCH%system-m.phoenix.honeywell@BRL.ARPA From: Kenny.G8ARCH%system-m.phoenix.honeywell@BRL.ARPA@sri-unix.UUCP Newsgroups: net.micro.cpm Subject: Altos 5-5D Computer Message-ID: <1864@sri-arpa.UUCP> Date: Mon, 6-Jun-83 23:35:00 EDT Article-I.D.: sri-arpa.1864 Posted: Mon Jun 6 23:35:00 1983 Date-Received: Sat, 11-Jun-83 18:19:45 EDT Lines: 60 From: Kevin B. KennyIn-Reply-To: Subject: Altos 5-5D Computer Date: 28 April 1983 21:49 EDT From: Eric J. Swenson To: info-cpm@brl, info-micro@brl The ALTOS serial ports are as follows: CHIP DEVICE CONNECTOR STATUS DATA Z80A-SIO Console #2 JD 2C 2D Console #1 JC 2E 2F Z80A-DART Console #3 JB 1C 1D Printer JA 1E 1F If you're going to do I/O directly, there are some things to watch out for, since the ALTOS BIOS is interrupt-driven. If you just start doing IN's and OUT's you'll confuse it with extraneous interrupts (and probably hang the system). I recommend using console 2 (JD) as the modem port, if you have a choice, since the Mostek SIO is more forgiving than the Zilog DART. One sequence that works for me is to send the following to the status port to configure the SIO: 18H ; Channel reset. (get rid of any funny conditions) 01H ; Select register 1 04H ; Disable the SIO interrupts 04H ; Select register 4 44H ; Set x16 clock, one stop bit, no parity. 03H ; Select register 3 0C1H ; Receiver enabled always, bytesize = 8 bits, no parity. 05H ; Select register 5 68H ; Transmitter enabled always, bytesize = 8 bits, no parity. I put all this junk in a file called SETMODEM.COM that I run once to initialize things after power up. Following this, an IN from the status port will have bit 2 (04H) on if the SIO is ready to send a character, and bit 0 (01H) ON if a character is ready for the CPU to read. If you ever need to give the SIO channel back to the BIOS, send the status port the sequence: 18H ; Channel reset 01H ; Select register 1 1FH ; Interrupt on received characters, parity does not affect ; vector, status does affect vector, transmission interrupt ; enable, external/status interrupt enable. and then hope for the best. It usually works for me, but I don't do it very often. Hope this helps /k**2