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