Hi
The routines SETUP and COUT are ROM routines.
SETUP passes the first byte to the clock generator and the
remaining to the command port of the 8251. The command/status
port is 1 while the data is 0.
COUT sends text to a video board.
The second COUT never seems to get executed?? I give plenty
of time between characters because I send then manually.
The board can do interrupt driven serial but that didn't seem to
work so I went for the simpler polling method.
DI
CALL SETUP
; .DB $01F ; 9600
; .DB $01D ; 4800
.DB $01B ; 2400
; .DB $019 ; 1200
.DB $0AA ; SYNC
.DB $0AA ; SYNC
.DB $040 ; RESET
.DB $0CE ; 2STOP, NO PARITY, 8BIT , X16
.DB $010 ; CLEAR ERRORS
.DB 0
MVI A,$027 ; RTD, DTR AND REC-EN TX-EN
OUT 1
CALL TIN
CALL COUT ; This works
CALL TIN
CALL COUT ; never gets here
......................................
TIN:
IN 1
ANI 2
JZ TIN
IN 0
RET
From: thrashbarg at
kaput.homeunix.org
To: cctalk at
classiccmp.org
Date: Mon, 28 Apr 2008 01:15:04 +0930
Subject: Re: 8251 troubles
On Sun, 2008-04-27 at 08:23 -0700, dwight elvey wrote:
Hi
I've got a funny problem with a 8251.
I've been writing 8080 code and seem to have a strange
problem.
I initialize the chip in async mode. I have a light box on the
serial wire. It is initialized to both send and recieve.
I send one character to the 8251 and it passes it to the software
on the 8080 side. I display it on the 8080 side.
I then send another character to the 8251. Nothing happens.
It won't receive until I reset it.
None of the status lights change. I can see the data light flicker.
It could be a bad part but it just doesn't seem that it would
work once and then fail to work for the second character.
It just doesn't make sense.
Is there something I'm missing about the 8251.
Dwight
That could be caused by a lot of things. Could you post the relevant
code?
_________________________________________________________________
Express yourself wherever you are. Mobilize!
http://www.gowindowslive.com/Mobile/Landing/Messenger/Default.aspx?Locale=e…