Sendraz
Member
- Joined
- Apr 8, 2022
- Messages
- 24
So in the past i have built a homebrew 8 bit computer based on a DDR clone of the z80 microprocessor (U880). I'm currently writing machine code monitor with some extra features, like the (O)ut command, which reads the user input (e.g O 20 01), where the first value is the peripheral device number decoded by 74hc138 demultiplexer, and the second one is the value i want to write to that device. The subroutine of that command currently uses OUT (C), A instruction, but it doesn't work as expected. I was using it to write some data to 4x20 LCD display (HD44780) so i could see the results, and it returns nothing or garbled character (depending on selected LCD register controlled by LSB of the first argument in the command). I have also noticed that when i wrote a small program doing output with OUT (N), A instruction instead of the one using C register, it works correctly. (I couldn't even initialize the display in the boot sequence if it wasn't working at the first place).
So my question is, is there a significant timing difference between OUT using C register and OUT with immediate value? Or is this something with the fact i use a clone CPU and it has some unexpected behaviour?
So my question is, is there a significant timing difference between OUT using C register and OUT with immediate value? Or is this something with the fact i use a clone CPU and it has some unexpected behaviour?




