Próbuję utworzyć opóźnienie oprogramowania. Oto przykładowy program z tego, co robię:Z80 Software Delay
Address Data Opcode Comment
1800 06 LD, B Load register B with fix value
1801 “ “ Fixed value
1802 05 DEC, B Decrement value in register B
1803 C2 JP cc Jump to 1802 if value is not 0
1804 02 - Address XX
1805 18 - Address XX
Moje pytanie brzmi: w jaki sposób można obliczyć wymaganą stałą wartość, aby załadować do rejestru B tak, że proces zmniejszanie wartości aż 0 trwa 2 sekundy?
W moim podręczniku danym czasie uruchomić instrukcji opiera się na CPU 4MHz ale procesor Z80 używam ma prędkość 1.8MHz. Masz pomysł, jak to obliczyć? Dzięki. PS tu jest ubytek (DEC) i skok (JP cc) instrukcje z podręcznika:
Instruction M Cycles T states 4 MHz E.t
DEC r 1 4 1.00
JP cc 3 10 (4,3,3) 2.50
oops. Minęło trochę czasu odkąd skończyłem Z80. –