Re: Plus/4 6551 receive routine error?

From: Istvan Hegedus <hegedusishe_at_gmail.com>
Date: Sun, 14 Nov 2021 17:58:48 +0100
Message-ID: <CAJG-dDSwqi5=W6ZAcV6z_9Hsud9zHiEb5k9mD1aDyLwD=US8fQ_at_mail.gmail.com>
If I remember well I have used the serial port as tty terminal in the past
and it was working fine (although probably that does not use a 0x0 byte).
Also at the university a guy has written a SLIP protocol software and could
get IP packets. He has created telnet, ftp and it was working. It was the
subject of his thesis and he has graduated.

Istvan

On Sun, Nov 14, 2021 at 5:47 PM Gerrit Heitsch <gerrit_at_laosinh.s.bawue.de>
wrote:

> On 11/14/21 4:51 PM, Jim Brain wrote:
> >  From USENET last night/this morning:
> >
> >
> > I was going over some of my old CBM files from back in the day, and ran
> > across an error I had found in the Plus 4 kernel rom.  I don't think I
> ever
> > found a way to report it to anyone, so I thought I would see if anything
> > has changed.
> >
> > The error is in the 6551 ACIA servicing routine where a byte is read in
> > from the ACIA:
> >
> > LDA $FD00
> > BEQ EAC2
> > STA $07D5
> >
> > Incoming bytes are first stored at $0FD5, and later moved from there into
> > the input buffer.  But as the rom is written, any null byte (00) received
> > would be later stored as whatever the most recent non-null byte was.  And
> > it's impossible to receive a null byte.  The solution is to reverse the
> > second and third instructions:
> >
> > LDA $FD00
> > STA $07D5
> > BEQ EAC2
> >
> > Or you could duplicate the beginning of the IRQ servicing up to this
> point
> > in your code, with the correction, then jump back into the rom.
>
> Hm... The way I read the datasheet of the 6551, you need to check the
> status register whether a byte is waiting (Bit 3 set) and if yes, grab
> the byte and store it into the buffer. That BEQ doesn't really make
> sense in this context.
>
>   Gerrit
>
>
>
Received on 2021-11-14 20:00:58

Archive generated by hypermail 2.3.0.