Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I'm reading from ATA several times, but when I read .data, this appears. I can read something like Exception, but I have all exception handlers set and I'm sure this is not in handler code. I also masked all PIC interrupts, but this still appears...
Well, I have an idea of what's going on - specifically, one of your print routines is written such that it's just dumping the entire string directly to memory without adding attribute bytes, or something is using the start of video memory as a buffer when it shouldn't be, giving the same result - but I can also tell you that the issue isn't in the code you posted.
ohhhh no. The ONLY mistake I've done was writing directly to virtual address, without adding image base. BTW there's a video memory on 0x3000 or 0x4000? And of course, I didn't commented it out. I removed it and it was less memory waqsting than the code I currently have.
BTW why did the output work with 0x3000?
MDenham wrote:Well, I have an idea of what's going on - specifically, one of your print routines is written such that it's just dumping the entire string directly to memory without adding attribute bytes ...
This is exactly the case.
Notice the word "Ecpin" showing up a lot in the output. Each letter has a different attribute byte.
MDenham wrote:Well, I have an idea of what's going on - specifically, one of your print routines is written such that it's just dumping the entire string directly to memory without adding attribute bytes ...
This is exactly the case.
Notice the word "Ecpin" showing up a lot in the output. Each letter has a different attribute byte.
Exception.
Well, that's what led me to that conclusion, but it isn't necessarily the print routine that's causing the problems. Something else could be (improperly) using video memory as a buffer instead, which would cause the same issues.