Nunca usei 9 bits, para endereço, gerado pelo PC, através do bit de paridade, por softwre em runtime.
Uso sempre hardware para tal. Penso que para algo lento deve funcionar bem, pois a precisão da temporização no PC não é garantida.
Já ví programas em C para tal e um mais simples que seria algo como setar paridade com Mark/Space (Mark/Space só no Windows no Linux é possível simulando).
Considerar serial assyncrona (Windows).
Exemplo:
1-Setar em runtime 8 bits + paridade ( mark/space) usar space.
2-Enviar o byte de endereço.
3-Voltar para 8 bits , sem paridade.
4-Enviar demais bytes.
lí que a setagem, paridade com mark / space não funciona sempre para todos os bytes!!! (não sei, estranho então porque paridade mark/space?).
Outra forma:
O objetivo aqui é forçar sempre um bit alto no 9 bit de paridade:
1-Verifica paridade do byte de endereço a ser enviado.
2- Conforme a paridade, escolher ao setar, em run time, paridade par ou impar, a fim de resultar 1L (bit alto na paridade).
3-Setar para 8 bits + paridade (par ou impar) conforme resultado do ítem (2).
4- Enviar byte de endereço.
5- Setar para 8bits sem paridade
6- Transmitir demais bytes de dados.
Aparentemente esse método tem que funcionar.
Enquanto aguardo as críticas, vou tentar fazer rodar algo por aquí.
Grato.