Подключение через MAX232 к COM порту компьютера.
тыц.
Просто хочу поковырять прерывания.
Подключение через MAX232 к COM порту компьютера.
тыц.
Просто хочу поковырять прерывания.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну вот, долго ли коротко ли, запилил новый вариант с прерываниями и новыми непонятками. Подключил RxRDY от ВВ51 к INT процессора и прошил EEPROM.
FASMG я для себя открыл только сегодняКод:include "8085.inc" ;| ПРОГРАММА НАСТРОЙКИ И ПРОВЕРКИ УСАПП ВВ51А ; INIT: DI LXI SP,RAMTOP MVI A,01H; УСТАНОВКА_УСАПП_В_ИСХ._СОСТОЯНИЕ OUT CW51 OUT CW51 MVI A,IR OUT CW51 MVI A,4FH; ЗАПИСЫВАЕМ_ИНСТРУКЦИЮ_РЕЖИМА OUT CW51 MVI A,TXEN+DTR+RXE+RTS;27H; ЗАПИСЫВАЕМ ИНСТРУКЦИЮ КОМАНДЫ OUT CW51 EI HLT ;____ПОДПРОГРАММА ПЕРЕДАЧИ БАЙТА ИЗ РЕГИСТРА С_ ; TXD: PUSH PSW ;_______ЖДЕМ_ГОТОВНОСТИ_________________________ TX1: IN CW51 ANI TXRDY+DSR CPI TXRDY+DSR JNZ TX1 ;_______ПЕРЕДАЕМ_БАЙТ___________________________ MOV A,C OUT DAT51 POP PSW RET RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 RST 7 ;__________ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ____ INT: DI IN DAT51; ЧИТАЕМ БАЙТ ИЗ ПОРТА MOV C,A CALL TXD; ВОЗВРАЩАЕМ ПРОЧИТАННЫЙ БАЙТ В ПОРТ MVI C,40H CALL TXD; ОТПРАВЛЯЕМ ПРИЗНАК ОТВЕТА (@) EI RET ; ;_____________ВНЕШНИЕ МЕТКИ И КОНСТАНТЫ_______ RAMTOP=87FFH ; ; ;___АДРЕСА_РЕГИСТРОВ_УСАПП______________________ DAT51=00H ; РЕГИСТР ДАННЫХ CW51=01H ; РЕГИСТР КОМАНД ; ;___КОМАНДЫ ВВ51________________________________ TXEN=01H ; ПЕРЕДАТЧИК ВКЛЮЧЕН DTR=02H ; УСТРОЙСТВО ГОТОВО RXE=04H ; ПРИЕМНИК ВКЛЮЧЕН SBRK=08H ; ПРЕРЫВАНИЕ ПЕРЕДАЧИ ER=10H ; СБРОС ОШИБОК ПРИЕМА RTS=20H ; ПЕРЕДАЧА РАЗРЕШЕНА IR=40H ; ПРОГР. СБРОС УСАПП EH=80H ; РАЗРЕШЕНИЕ ПОИСКА СИНХРОСИМВОЛА ; ;__РЕГИСТР СОСТОЯНИЯ ВВ51_______________________ TXRDY=01H ; ПЕРЕДАТЧИК ГОТОВ RXRDY=02H ; ПРИЕМНИК ГОТОВ TXE=04H ; ПЕРЕДАЧА ЗАКОНЧЕНА PE=08H ; ОШИБКА ЧЕТНОСТИ OE=10H ; ПЕРЕПОЛНЕНИЕ ПРИЕМНИКА FE=20H ; ОШИБКА ФОРМАТА SYNDET=40H ; СИНХРОСИМВОЛ НАЙДЕН DSR=80H ; ПЕРЕДАТЧИК ДАННЫХ ГОТОВ ;, поэтому еще не разобрался как обработчик прерываний штатно прикрутить к 38H, просто напихал нужное количество RST 7. Прошил, заработало. Прием данных идет по прерываниям. Только не понимаю, откуда взялась "очередь" из двух байтов? Вот пример: ввожу последовательно "ASDFG "(3 пробела в конце), а железка отвечает такой последовательностью (в шестнадцатеричном виде) "4B 40 4B 40 41 40 53 40 44 40 46 40 47 40 20 40". Откуда взялись первые два байта? Я не догоняю.
Последний раз редактировалось Xrust; 01.07.2017 в 22:42.
Что-то никто не ответил на мой прошлый пост, повторю с вариациями...
Ткните носом в стандарт СР/М по организации страниц в ОЗУ. В каких адресах это должно делаться, размер страниц, порт для переключалки/маппера... Если это делалось в отечественных компах (тот же Орион), то насколько совместимо с большинством зарубежных программ получилось (чтот я сомневаюсь, что было что-то отечественное, заслуживающее внимания, если вообще что-то было),.. ну и какой может быть вменяемый оптимум памяти, чтобы можно было работать с базами данных.
Насколько я понимаю, страницы должны располагаться между адресами 100Н и С400Н, но как и где... Просто не хочу ваять заранее нерабочую отсебятину.
Всем пасиб и печенек.
А не было никакого стандарта. Если кто и делал под себя на уровне ОС, то это было сугубо индивидуальное. И программ стандартных для СР/М работающих со страничной организацией тоже не встречал. СР/М 3 позволяла свой код хранить выше 64КБайт на этом и все.
Если не прав поправьте.
- - - Добавлено - - -
Для менеджмента памяти на уровне ОС, нужны хотя бы наличие соответствующих функций в ней. В СР/М 3 я такого не припомню.
Да о каком стандарте может идти речь, когда каждый компьютер содержащий более 64 Кб имел сугубо свою организацию памяти.
На вскидку в Орионе есть такая допиленная СР/М - Альтаир ДОС v3.x. MSX тоже такой системой обзавелся - MSX-DOS 2.2. Но опять софта для этих ОС с гулькин нос. Померло так и не успев родиться.
Последний раз редактировалось OrionExt; 06.07.2017 в 22:42.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Хм... т.е. смысла делать машинку с памятью свыше 64К нет? Выше версии 2.2 не хочу лезть...
Может и есть смысл делать свыше 64Кбайт. В то время вся эта расширенная память уходила под рам-диск, что значительно ускоряло работу в ОС.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Вам не ответили, потому что никто не знает ответа. В СССР и СНГ никто не имел CP/M 3.0, тем более в банковом варианте. И всё-же раз CP/M 3.0 поддерживает многобанковость, то значит какой-то механизм управления памятью там был. ЕМНИП помню, что читал, что там был какой-то RSX (возможно расшифровывается, как Resident System eXtension).Сообщение от rw6hrm
Чтобы разобраться, Вам придётся самому читать документацию по CP/M 3.0 вот здесь. И по-прежнему остаётся вопросом, есть ли компиляторы хоть каких-то ЯВУ, позволяющие писать программы использующие многобанковость (неважно, управляя ей стандартно, т.е функциями ДОС или по железу конкретной машины). Если ни компиляторов, ни программ для многобанковости нет, то зачем она?
Последний раз редактировалось barsik; 21.07.2017 в 13:19.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
rw6hrm, если и подключать дополнительно банки, то страницами по 64к. Только таким образом можно хоть как-то адаптировать систему под расширение памяти. Можно хотя бы выделить системе и приложению(ям) разные страницы. Этот принцип и с z180 должен быть совместим.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)