INTL 3:770/1 3:770/3
REPLYADDR brain@jbrain.com
REPLYTO 3:770/3.0 UUCP
MSGID: 085d8211
REPLY: <20211114-040302.878.0@George.ssl-us.astraweb.com> 1cb1e1cc
PID: SoupGate-Win32 v1.05
On 11/13/2021 10:03 PM, George wrote:
> 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.
>
> Of course, this being the Plus 4, it may be that nobody would ever care
> about this, but it would be nice to make a record in case anyone ever
> wanted to make other revisions to the ROM, or actually make use of the UART
> capability of the Plus 4.
>
> George Hug
>
I forwarded it the cbm-hackers mailing list, where a bunch of the
technical gurus hang out.
Jim
--
Jim Brain, brain@jbrain.com
RETRO Innovations: Contemporary Gear for Classic Systems
www.go4retro.com
--- SoupGate-Win32 v1.05
* Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)
SEEN-BY: 1/123 14/0 18/200 90/1 103/705 105/81 120/340 123/131 129/305
SEEN-BY: 153/250 757 154/10 218/700 840 220/70 221/1 6 226/17 30 227/114
SEEN-BY: 229/424 426 428 664 700 240/1120 5832 249/1 206 317 400 261/38
SEEN-BY: 267/800 282/1038 301/1 113 317/3 322/757 335/364 340/1000
SEEN-BY: 341/66 342/200 633/280 712/848 770/1 3 100 340 772/210 220
SEEN-BY: 772/230 920/1 4500/1 5058/104
PATH: 770/3 1 218/840 221/6 301/1 229/426
|