Hello! Ruud@Baltissen.org wrote: >> * If flag not set, call IEEE first. ..... > Even a better idea! > The only disadvantage of the flag is that you need to reserve a > byte, but which one? That is something to be discussed. Yes, this is true. I had more luck here because I used some of the unused screen mnemory bytes - the screen takes 2000 bytes and you have 2048, so some are free and I highly doubt any CBM-II software would like to overwrite them (I might be wrong of course). On the C64, the sprite pointers sit there, and generally it's hard to find a byte that is not used by any of the millions available C64 applications. > I'm going to program two versions anyway: the "IEEE first" one and > this "flag" one. So anybody can pick his favourite Well, it's not that easy. The problem is, not all IEEE operations will return a timeout or whatever error when the device is not present. And a IEEE transmission requires many calls. First you call LISTEN, then you send a secondary address, then you send some bytes, then UNLISTEN. As I recall, only some of these will return a meaningful error when the device is not present, because most of the time, these operations just set some bits on the IEEE port and do not wait for the device to answer (I recall vaguely that at least the secondary address routine did that). So you need the flag to remember the device status for the other calls. And even if you managed to did it without the flag, simply waiting for the IEEE timeout on every function call before switching to IEC (remember, the bytes are sent one at a time! each byte requires a separate function call and separate wait for IEEE timeout then!) will make the IEC operation from "painfully slow" to "unimaginably slow". If you need, I can dig my old code and try to remember what exacly happened there and why I did this the way I did. Regards, Michau. Message was sent through the cbm-hackers mailing listReceived on 2014-11-07 13:00:03
Archive generated by hypermail 2.2.0.