Ну там ПДП всё-таки, а тут - 100% софтово…b2m wrote:Так в РК-шке проц тормозится на время "пропихивания" текста. Это соответствует (ну почти) его работе по пропихиванию текста. Вот если бы у 8080 была команда OTIR, то и вообще бы не было никакой разницы. Ну почти.Shaos wrote:А вот сколько процентов процессорного времени отдавалось на пропихивание текста в ВГ75? Главный проц вообще успевал что-то делать по основной программе?...
Hello world!
Moderator: Shaos
Re: Hello world!
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
На минимальных, типа hello world и подобных, весьма сложно вести обмен со старшим братом. Загрузка например, отладка. Потому что нет UART, потому что софтово сложно высчитывать такты, потому что многое мешает. Ардуино популярно, доступно и недорого.
Идея в том, что бы запрашивать данные по требованию, а МК при этом их бы предоставлял. Нужно всего 3 пина.
При этом, со стороны z80 это может выглядеть так:
Идея в том, что бы запрашивать данные по требованию, а МК при этом их бы предоставлял. Нужно всего 3 пина.
Code: Select all
// z80 <- Arduino serial 17:27 17.10.2023 OKF
#define NAME "z80 <- Arduino serial"
#define VERSION "0.3"
#define UART_BAUDRATE 19200
#define WAIT_TIME 0 //debug
// GND
#define WAIT 2 //PORTD!
#define DATA 3
#define IOR 4
#define in(x) DDRD &= ~(1<<(x))
#define out(x) DDRD |= 1<<(x)
#define on(x) PORTD |= 1<<(x)
#define off(x) PORTD &= ~(1<<(x))
#define pin(x) (PIND & 1<<(x))
#define di() cli()
#define BAUD_SETTING ((F_CPU / 4 / UART_BAUDRATE - 1) / 2)
#define con_begin() (UBRR0H = BAUD_SETTING>>8, UBRR0L = BAUD_SETTING, \
UCSR0A = 1<<U2X0 | 1<<UDRE0, UCSR0B = 1<<RXEN0)
#define con_available() (UCSR0A & 1<<RXC0)
#define con_read() UDR0
void setup() {
on(WAIT); out(WAIT);
con_begin();
di();
}
// выставим стартовый бит по запросу от CPU
inline void put_start() {
while (pin(IOR)); //ждём IOR
off(WAIT); //тормозим CPU
off(DATA);
out(DATA); //выставляем старт бит
_delay_ms(WAIT_TIME);
on(WAIT); //запускаем CPU
while (!pin(IOR)); //ождаем снятия IOR
in(DATA); //убираем старт
}
// биты данных по запросу от CPU
inline void put_data(uint8_t c) {
while (pin(IOR));
off(WAIT);
c & 1 ? on(DATA) : off(DATA); //выставляем данные аналогично старт
out(DATA);
_delay_ms(WAIT_TIME);
on(WAIT);
while (!pin(IOR));
in(DATA);
}
// стоповый бит
inline void put_stop() {
while (pin(IOR));
off(WAIT);
on(DATA);
out(DATA); //стоп
on(WAIT);
while (!pin(IOR));
in(DATA);
}
void loop() {
if (con_available()) {
uint8_t ch = con_read();
put_start();
for (uint8_t i = 0; i < 8; i++, ch >>= 1)
put_data(ch);
}
put_stop();
}
Code: Select all
; serial from Arduino
PIN equ 0 ;RX_PORT, D7 - data
; wait start bit
loop1 defl $
in a,(PIN) ;wait request
ld b,4
loop defl $
djnz loop
rlca ;d7
jr c,loop1
ld b,8 ;receive data
loop defl $
in a,(PIN)
rlca ;d7
rr c
djnz loop
loop defl $
in a,(PIN) ;stop
rlca ;d7
jr nc,loop
call ConOut
jr loop1
Re: Hello world!
z80 <- Arduino serial это как-то через COM-порт?
Как физически выглядит подключение этих 3 проводов?
Как физически выглядит подключение этих 3 проводов?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
1. Запрос от z80 (/RD & /IORQ).Shaos wrote: Как физически выглядит подключение этих 3 проводов?
2. Бит данных от МК (D7).
3. /WAIT от МК.
Re: Hello world!
Что значит? Ардуино с ПК соединён через COM-порт, он и является посредником для z80. Особенность в том, что z80 не нужно выдерживать никакие времянки. Запросил - получил, типа.Shaos wrote:z80 <- Arduino serial это как-то через COM-порт?
Re: Hello world!
Ну можно по идее и без ардуино если не через COM, а через LPT с шелезякой общаться - дёргаешь нужными битиками программно со стороны PC и всего делов ![;)](./images/smilies/icon_wink.gif)
![;)](./images/smilies/icon_wink.gif)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
Ну да. Только где сейчас COM или LPT? А USB всегда. И попробуй ты в Windows выдержать времянки! В любом случае USB-TTL нужен, а Ардуино по цене с ним равнозначен. Более того, ты с ним можешь накрутить и дополнительных фишек или нет?
Re: Hello world!
А ещё, не знаю как там у вас в Штатах ("я не была"), а у нас особой дешевизной пользуются LGT8F328P и их производные. Которые и пошустрее и выводов имеют поболее, нежели у ваших хвалёных Атмелов.)
Re: Hello world!
Ну PCI-Express платки до сих пор доставаемы - и COM, и LPT (у меня например в компе воткнуто) и линух их видит вот прям сразу...Mondx wrote:Ну да. Только где сейчас COM или LPT? А USB всегда. И попробуй ты в Windows выдержать времянки! В любом случае USB-TTL нужен, а Ардуино по цене с ним равнозначен. Более того, ты с ним можешь накрутить и дополнительных фишек или нет?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
Я поглядел - например на амазоне "ваш хвалёный" LGT8F328P стоит десятку за штучку, а его "оригинал" ардуино-нано - пятнашку за 3 штуки (т.е. $5 за один)...Mondx wrote:А ещё, не знаю как там у вас в Штатах ("я не была"), а у нас особой дешевизной пользуются LGT8F328P и их производные. Которые и пошустрее и выводов имеют поболее, нежели у ваших хвалёных Атмелов.)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
"Мы по разному видим мир!"
- Attachments
- Скриншот 30-09-2024 200605.jpg (195.93 KiB) Viewed 829 times
Re: Hello world!
Американский тариф на китайскую электронику в действии ![:)](./images/smilies/icon_smile.gif)
Да и наверное дядюшка Ляо к вам поближе будет...
![:)](./images/smilies/icon_smile.gif)
Да и наверное дядюшка Ляо к вам поближе будет...
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
У меня тут завалялась замечательная платка под названием WEMOS XI. А замечательна она тем, что у неё выведено аж 30 пинов. А тогда, с её помощью, очень легко получается эмулятор 2764. И даже 27256. Ну чем плохо то! И тот же вывод по UART делается без каких либо телодвижений. Думаю, просто песня для ретростроителей.)
- Attachments
- wemosxi-2.jpg (26.22 KiB) Viewed 763 times
Re: Hello world!
Тоже типа ардуино?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
Ну да. А что смущает? Ты можешь использовать её как хочешь. В т.ч. и без Ардуино среды. Ничто не мешает.