Re: [cc65] Why does this work in 128 mode but not 64 mode?

From: Spiro Trikaliotis <ml-cc651trikaliotis.net>
Date: 2010-05-01 17:47:39
Hello,

* On Fri, Apr 30, 2010 at 08:18:06AM -0500 Payton Byrd wrote:
>    On Fri, Apr 30, 2010 at 8:14 AM, Mark J. Reed <[1]markjreed@mail.com>
>    wrote:
> 
>      OPEN is not the only kernal call here, you know.  It's all kernal
>      calls.  The OPEN succeeds, but the BSOUT/CHROUT fails.  So I suspect
>      the problem with your code is that you're not checking the return
>      value of cbm_write().
> 
>    The computer completely freezes when calling cbm_write, it's impossible
>    for me to check anything at that point.  According to the C64 PRG, the
>    call to OPEN should have set an error code of 5 as its return value.

That immediately rang a bell, as this behaviour was also seen on
OpenCBM.

On Thu, Nov 19, 2009, Frédéric Brière has the right answer to that on
the OpenCBM-devel list (I hope he does not mind that I am forwarding his
answer here):

> Answering my own questions:
> 
> On Sat, Nov 14, 2009 at 05:22:32PM -0500, Frédéric Brière wrote:
[...] 
> > But my C64 still freezes upon an INPUT# on a missing device, and I have
> > to unplug/plug the serial bus to get the "?Device not present" error.
> > How come they don't exhibit the same behavior if they work the same way?
> 
> That's because the C64 has the same bug that was present in the module;
> it does not check the result of the call at $EDC9 before proceeding with
> the talker-listener reversal.

Thus, this can be considered as a bug of the C64 KERNAL. The C128 has
this fixed. The VIC20 KERNAL behaves the same as the C64.

As I believe other people might have problems: Uz, is it worth to add a
work-around to the cbm I/O runtime library?

Regards,
Spiro.

-- 
Spiro R. Trikaliotis                              http://opencbm.sf.net/
http://www.trikaliotis.net/                     http://www.viceteam.org/
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Sat May 1 17:47:55 2010

This archive was generated by hypermail 2.1.8 : 2010-05-01 17:47:57 CEST