3 bug fixes#113
Conversation
…e iec_tx_byte expects it * iec_tx_flush calls iec_tx_dispatch, because JiffyDOS protocol can be in use. * jiffydos_tx_byte now preserves VIC-II page during last tuple of a byte
|
Yes certainly.
So because the Open ROM implementation uses a different variable than the original ROM, CIOUT has to be adapted as well. If you store in BSOUR while iec_tx_byte expects it in TBTCNT, it just doesn't work. |
|
So the proper fix would be to adapt |
|
Yes, if you want to make the code more similar to the original KERNAL, this is what needs to be done. However, I don't believe using TBTCNT is inherently broken: It can work and it makes the code more different from the original, so might be an advantage from a copyrights point of view. It is a matter of taste: If you want all zero page locations to have their original function, iec_tx_byte (and its JiffyDOS counterpart) need to be changed. |
|
If you think this change would be too risky/problematic, we keep it this way for now - but please add appropriate comment in |
|
Changing from TBTCNT to BSOUR would certainly require a lot more extensive testing, for example LOAD/SAVE also uses these routines and would need modification+testing. So this one line change is certainly the fastest and lowest-risk fix at the moment. A good approach would be to keep it this way and migrate if future problems are discovered. I have added a notice in both ciout.s and STATUS.md. |
|
|
||
| ## Serial buffer byte location | ||
|
|
||
| The KERNAL CIOUT routine buffers the byte to be sent into a zero page location, because only when the next byte is sent |
|
One more thing - we have a tool which detects similarities between out code and the original ROMs (see https://github.com/MEGA65/open-roms/blob/master/README.md#defending-against-potential-copyright-infringement-claims), to use it one needs to put
Could you also add an explanation file, similar to https://github.com/MEGA65/open-roms/blob/master/strings/0000000003 (file needs to be named |

Hello,
The low-level serial API cannot work as it is now, due to a few bugs. 3 bug fixes in the serial code:
With these changes the code works and is able to do serial communication.