Ответить на тему  [ 1 сообщение ] 
 
Автор Сообщение
Администратор
Аватар пользователя

Зарегистрирован: 27 ноя 2011, 01:03
Сообщений: 207
Откуда: Москва
Сообщение ИРПС-TTL-RS232 (+WiFi) для БК10(-01) / 11(М) by dimahome
Оригинальная статья взята отсюда

За основу взята схема by MM с добавлением делителя на ТМ2 для использования кварцевого резонатора на 9216 КГц и получения скорости обмена 115200 (хотя реальная работа без проглатывания некоторых байт возможна на БК 3-4 МГц только на скорости 57600, эта скорость используется только один раз, чтобы переключить ESP8266 на 57600), стабилизатора на 3.3в для использования ESP8266 и добавлена MAX232 для реализации COM-порта. Т.к. в Altium Designer схемы не было - без косяков на плате не обошлось :(


Комментарий к файлу: Фото "изделия" с установленным модулем ESP8266-01
Комментарий к файлу: На плате установлен разъем СНП58-64 для подключения контроллера НЖМД/НГМД без использования двойника МПИ
Комментарий к файлу: Для тех, у кого сохранился оригинальный корпус блока ИРПС, в нем можно разместить новый, если немного подпилить под разъем DB9-F и использовать вот такой двойник МПИ


Для проверки работы использовалась вот такая простенькая терминалка (с исходником, образ диска MK-DOS):
term.rar [28.93 KiB]
Скачиваний: 3

Отформатированный для наглядности исходный код (для компиляции используйте исходник из образа):
        .LINK   1000

PORT = 177560
IRQ = 360
FONT = 112276
IN = 400 ; ТЕКУЩИЙ АДРЕС БУФЕРА ПРИЕМА
OUT = 402 ; ТЕКУЩИЙ АДРЕС БУФЕРА ПЕРЕДАЧИ
ECHO = 404
CODE = 406 ; АДРЕС П/П ПЕРЕКОДИРОВКИ ИЛИ 0
CHR = 410

CALL STA
START: MOV #1000, SP
CLR 177660
MTPS #0
BIT #100, 177716
BNE KEY
MOV #12000, R4 ; АВТОПОВТОР
TST (PC)+
PRIZN: .WORD 0
BNE 2KEY
2: BIT #100, 177716
BNE KEY
CALL INOUT
SOB R4, 2
INC PRIZN
2KEY: MOVB 104, R0
BR 1KEY
KEY: CLR PRIZN

CALL KURSOR ; МОРГАНИЕ КУРСОРОМ
MOV #20000, R1
0JOB: CMP IN, #BUFIN
BHI 5KEY
TSTB 105
BNE 5KEY
SOB R1, 0JOB
MOV #12000, R1
5KEY: CALL KURSOR
3KEY: CALL INOUT
TSTB 105
BNE 4KEY
SOB R1, 3KEY
BR START

4KEY: EMT 6

1KEY: MOV #TABKEY, R1 ; ТАБЛИЦА ПЕРЕХОДОВ
MOV #TABJMP, R2 ; ПО КНОПКАМ АР/2 И ПРОЧ.
3K: TSTB @R1
BEQ 4K
CMPB (R1)+, R0
BEQ 0OK
TST (R2)+
BR 3K
0OK: MOV @R2, R2
MOV #START, -(SP)
JMP @R2

4K: MOVB R0, @OUT ; ЗАПИСЬ В БУФЕР ВЫВОДА
INC OUT

CALL INOUT
MOV #6000, R0 ; ЗАДЕРЖКА ДЛЯ ОТПУСКАНИЯ
SOB R0, . ; КЛАВИШИ
JMP START

INOUT: CMP IN, #BUFIN ; ВЫВОД ВСЕГО ИЗ БУФЕРОВ
BLOS 1
MOV #BUFIN, R3
4: CMPB #300, 177717
BNE 6

5: MOV #75400, 177716 ; ДЛЯ 11(М) ОТДЕЛЬНО
MOVB (R3)+, R0
MOV #16000, 177716
MOV CODE, R4
BEQ 8
CALL @R4
8: CALL EMT16
CMP R3, IN
BLO 5
BR 10

6: MOVB (R3)+, R0 ; 10-КА МЕДЛЕННЕЕ
MOV CODE, R4
BEQ 9
CALL @R4
9: CALL EMT16
CMP R3, IN
BLO 6

10: MOV #BUFIN, IN

1: CMP OUT, #BUFOUT
BLOS 2
MOV #BUFOUT, R3
3: TSTB PORT+4
BPL 3
MOVB (R3)+, R0
MOVB R0, PORT+6
TST ECHO
BEQ 7
MOVB R0, @IN
INC IN
7: CMP R3, OUT
BLO 3
MOV #BUFOUT, OUT
2: RET

IRQ360: CMP IN, #40000
BLO 1
MOV #BUFIN, IN
1: MOVB PORT+2, @IN
INC IN
RTI

IRQ11M: CMP IN, #140000
BLO 1
MOV #BUFIN, IN
1: MOV #75400, 177716
MOVB PORT+2, @IN
MOV #16000, 177716
INC IN
RTI

TABKEY: .BYTE 200, 201, 202, 203, 204, 205, 206, 207, 210, 211
.BYTE 245, 267, 244, 253, 265
.BYTE 14, 11, 33, 32, 10, 31, 12, 23, 30
.BYTE 212, 3, 223, 0
.EVEN

TABJMP: .WORD AR2, AR2, AR2, AR2, AR2, AR2, AR2, AR2, AR2, AR2
.WORD ECHO1, WIN, DOS, KOI, UTF
.WORD SBR, TAB, DOWN, UP, LEVO, PRAVO, ENTER, WS, DEL
.WORD ARENT, KT, ARWS

DEL: RET
SBR: RET
LEVO: RET
PRAVO: RET
TAB: RET
DOWN: RET
UP: RET
WS: RET
ARWS: RET
ARENT: RET


AR2: BIC #177760, R0
INC R0
MOV #KEYS-200,R5
1: ADD #200, R5
SOB R0, 1
2: MOVB (R5)+, R0
BNE 3
MOVB #15, @OUT
INC OUT
MOVB #12, @OUT
INC OUT
CLR PRIZN
BR 0EX
3: CMPB #'■, R0 ; ЗАМЕНА "■" НА CR/LF
BNE 4
MOVB #15, @OUT
INC OUT
MOVB #12, @OUT
INC OUT
BR 2
4: MOVB R0, @OUT
INC OUT
BR 2

UTF: MOV #UTF8, CODE
CLR PRIZN
MOV #TUTF, R3
CALL POS
BR 0EX

WIN: MOV #WIND, CODE
CLR PRIZN
MOV #TWIN, R3
CALL POS
BR 0EX

DOS: MOV #DOS866, CODE
CLR PRIZN
MOV #TDOS, R3
CALL POS
BR 0EX

KOI: CLR CODE
CLR PRIZN
MOV #TKOI, R3
CALL POS
BR 0EX

ECHO1: COM ECHO
CLR PRIZN
0EX: JMP START

HLT: SUB @PC, @SP ; БЛОКИРОВКА СТОП
RTI ; ВЫХОД - КТ

KT: CLR PORT
JMP 100000

ENTER: MOVB #15, @OUT
INC OUT
MOVB #12, @OUT
INC OUT
CLR PRIZN
RET

KURSOR: MOV R3, -(SP) ; ВКЛ/ВЫКЛ КУРСОРА
MOV R2, -(SP)
MOV 160, R3
ADD #700, R3
MOV #2, R2
1: CALL 111434
COMB @R3
SOB R2, 1
MOV (SP)+, R2
MOV (SP)+, R3
RET

EMT16: MOV R0, -(SP)
MOV 156, R0
BIC #177700, R0
CMPB R0, #77
BNE 9
MOV #12, R0
CALL EM3
9: MOV (SP)+, R0
2: CMPB R0, #40
BLO EM3
CMPB R0, #200
BLO TTOUT
CMPB R0, #240
BHI TTOUT
RET
EM3: MOV R5, -(SP)
CALL 102234
MOV (SP)+, R5
RET

TTOUT: MOV R0, -(SP) ; ТИПА "БЫСТРЫЙ" EMT 16
MOV R1, -(SP)
MOV R2, -(SP)
MOV R3, -(SP)
MOV #40000, R2
BIC #177400, R0
TSTB R0
BPL 10
SUB #40, R0
10: ASL R0
MOV R0, R3
ASL R0
ASL R0
ADD R3, R0
ADD #FONT-500,R0
MOV 160, R3
MOV #100, R1
MOVB (R0)+, @R3
ADD R1, R3
BPL 113
SUB R2, R3
113: MOVB (R0)+, @R3
ADD R1, R3
BPL 114
SUB R2, R3
114: MOVB (R0)+, @R3
ADD R1, R3
BPL 115
SUB R2, R3
115: MOVB (R0)+, @R3
ADD R1, R3
BPL 116
SUB R2, R3
116: MOVB (R0)+, @R3
ADD R1, R3
BPL 117
SUB R2, R3
117: MOVB (R0)+, @R3
ADD R1, R3
BPL 118
SUB R2, R3
118: MOVB (R0)+, @R3
ADD R1, R3
BPL 119
SUB R2, R3
119: MOVB (R0)+, @R3
ADD R1, R3
BPL 120
SUB R2, R3
120: MOVB (R0)+, @R3
ADD R1, R3
BPL 121
SUB R2, R3
121: MOVB (R0)+, @R3
MOV 156, R0
BIC #177700, R0
CMP #77, R0
BEQ 30
INC 160
INC 156
30: MOV (SP)+, R3
MOV (SP)+, R2
MOV (SP)+, R1
MOV (SP)+, R0
RET

WEK274: JSR R4, 110346
MOV R5, -(SP)
CALL INKEY
CMPB R0, #'0
BLO 4
CMPB R0, #'9
BHI 4
BIC #177400, R0
SUB #60, R0
5: BISB #200, R0
BR 3
4: CMPB R0, #11
BNE 2
3: JMP 101622

2: CMPB R0, #12
BEQ 5
BISB #200, R0
CMPB R0, #277
BLOS 1
JMP 101406
1: JMP 101602

WEK60: JSR R4, 110346
MOV R5, -(SP)
CALL INKEY1
CMPB R0, #'M-100
BEQ 3
CMPB R0, #'P-100
BEQ 3
CMPB R0, #16
BNE 1
MOVB #200, @#43
MOV #'R, R0
MOV #76, R1
EMT 22
INC R1
MOV #'U, R0
EMT 22
BR 3
1: CMPB R0, #17
BNE 2
CLRB 43
MOV #'E, R0
MOV #76, R1
EMT 22
INC R1
MOV #'N, R0
EMT 22
3: CLR 222
CLR 104
CLR R0
JMP 101322
2: JMP 101150
ZWUKI: MOV #400, R2
BR 12
INKEY1: TST 224
BEQ INKEY
CALL 110536
INKEY: MOV #177777, 222
MOV #10,R2
12: MOV #177716, R3
1: MOV 102064, @R3
MOV #30,R0
SOB R0, .
MOV 102076, @R3
MOV #30, R0
SOB R0, .
SOB R2, 1
MOV @R3, R0
MOVB 177662, R0
RET

WIND: CMPB R0, #192. ; ПЕРЕКОДИРОВКА WIN-1251
BLO 1
BIC #177400, R0
MOVB WINKOI-192.(R0),R0
1: RET

DOS866: MOV R2, -(SP) ; DOS 866
CMPB R0, #40
BLOS 2
MOVB R0, R2
BMI 1
BIT #140, R0
BNE 2
SUB #240, R2
1: CLR R0
BISB TIBM(R2),R0
2: MOV (SP)+, R2
RET

UTF8: BIC #177400, R0 ; UTF-8 2Х БАЙТНЫЙ ТОЛЬКО РУС
CMPB R0, #200
BLO 1
CMPB R0, #300
BLO 2
BIC #177770, R0
MOV R0, CHR
CLR R0
RET
2: MOV CHR, R5
SWAB R5
ASR R5
ASR R5
ADD R5, R0
MOVB WINKOI-220(R0),R0
1: CLR CHR
RET

POS: MOVB (R3)+, R1
2: MOVB (R3)+, R0
BEQ 1
EMT 22
INC R1
BR 2
1: RET

TKOI: .ASCIZ<64>/ KOI-8/
TDOS: .ASCIZ<64>/ DOS/
TWIN: .ASCIZ<64>/WIN-1251/
TUTF: .ASCIZ<64>/ UTF-8/
EN: .ASCIZ<76>/EN/
RU: .ASCIZ<76>/RU/ .EVEN

; DOS 866
.ASCII<15>/■■♥♦♣♠.■/<11><12>/++/<0>/■$→/
.ASCII/←↑!¶■_↑↑↓←└-↑↓АБВГДЕЖЗИЙКЛМНПРСТУФХЦЧШЩЪЫЬЭЮЯабв/
.ASCII/гдежзийклмноп▓▓▓│┤╡║┐┐║║┐┘┘┘┐└┴┬├─┼╞║└┌╧╤║═╬╧╨╤╥└└/
.ASCII/┌┌╫╪┘┌■■■■■рстуфхцчшщъыьэюяЕе/<57>/\/<57>/\→←↑↓:+N$■ /
TIBM: .EVEN

WINKOI:
.ASCII/АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/
.ASCII/абвгдежзийклмнопрстуфхцчшщъыьэюя/
.EVEN

KEYS: .BLKB 2200 ; КЛЮЧИ
BUFOUT: .BLKB 400 ; БУФЕР ВЫВОДА
BUFIN: ; БУФЕР ПРИЕМА

FILE: .ASCIZ/TERM.INI / .EVEN
HLT1: MOV #ERR, R1
CLR R2
EMT 20
TST 177662
WAIT
JMP 100000

ERR: .ASCII /НЕ НАЙДЕН РЕГИСТР ИРПС 177560/<12>
.ASCII /ПЕРЕКЛЮЧАТЕЛЬ "IRQ 360" Д.Б. УСТАНОВЛЕН "ON",/
.ASCIZ /"ADR" - "OFF"/
.EVEN

STA: MOV #FILE, R3 ; ЗАГРУЗКА ФАЙЛА TERM.INI
MOV #320, R1
MOV R1, R0
MOV #3, (R0)+
MOV #EOF, (R0)+
CLR (R0)+
MOV #16, R2
MOVB (R3)+, (R0)+
SOB R2, .-2
EMT 36
TSTB 1(R1)
BNE 1

2: MOV #HLT1, 4
TST PORT ; ПРОВЕРКА НАЛИЧИЯ ИРПС
MOV #HLT, 4
MOV #KEYS, R3 ; УСТАНОВКА КЛЮЧЕЙ ПО АР/2
MOV 264, R1
MOV 266, R2
ADD R1, R2
DEC R1
3: INC R1
CMP R1, R2
BHI 1
CMPB @R1, #'0
BLO 3
CMPB @R1, #'9
BHI 3
CMPB 1(R1), #':
BNE 3
MOV R3, R4
MOVB @R1, R5
SUB #60, R5
4: ADD #200, R4
SOB R5, 4
INC R1
5: INC R1
CMP R1, R2
BHI 1
CMPB @R1, #12
BEQ 7
MOVB @R1, (R4)+
7: CLRB @R4
TSTB @R1
BEQ 3
CMPB #12, @R1
BEQ 3
BR 5

1: EMT 14
MOV #232, R0
EMT 16
MOV #HLT, 4 ; УСТАНОВКА ВЕКТОРОВ ПРЕРЫВАНИЙ
MOV #BUFIN, IN
MOV #BUFOUT, OUT
CLR ECHO
MOV #UTF8, CODE
CLR CHR
MOV #IRQ360, 360
CMPB #300, 177717
BNE 0BK10
MOV #IRQ11M, 360 ; ДЛЯ БК11(М)
0BK10: MOV #340, 362
MOV #WEK60, 60
MOV #WEK274, 274

MOV #40000, R0 ; ОЧИСТКА ЭКРАНА
MOV #10000, R2
CLR (R0)+
CLR (R0)+
SOB R2, .-4
MOV #41500, R1
MOV #40,R2
MOV #52525, (R1)+
SOB R2, .-4
MOV #EN, R3
CALL POS
MOV #TUTF, R3
CALL POS
MOV #THELP, R1
CLR R2
EMT 20

MOV #KEYS, R4 ; ВЫВОД КЛЮЧЕЙ
MOV #'0, R5
MOV #TAR2, R1
CLR R2
EMT 20
6: MOV R5, R0
EMT 16
MOV #':, R0
EMT 16
MOV R4, R1
MOV #5100, R2
EMT 20
MOV #12, R0
EMT 16
ADD #200, R4
INC R5
CMP R5, #72
BLO 6
MOV #12, R0
EMT 16
BIS #100, PORT
RET

TAR2: .ASCIZ /АР2 +/<12>
THELP: .ASCII <234>/АР2/<234>/ + /<234>/E/<234>/-ECHO /
.ASCII <234>/K/<234>/ОИ-8 /<234>/D/<234>/OS-866 /
.ASCIZ <234>/W/<234>/IN-1251 /<234>/U/<234>/TF-8/<12><12>
.EVEN

EOF:

.END


Для проверки модуля WiFi необходимо в TERM.INI прописать в строке
3:AT+CWJAP_CUR="MyAP","************" адрес точки доступа и пароль, затем последовательно нажимая АР2+1...6 и дожидаясь ответа, загрузить всем известный сайт :D

Иллюстрирующее видео:


Документацию и АТ-команды к ESP8266-01 см. на https://esp8266.ru
Для подключения к USB подойдет, например, адаптер CP2102 USB UART Board (micro)

ВНИМАНИЕ! Для питания требуется 5 вольт, а не 4.7, например. На новодельных БК by Voland все работает без проблем, на оригинальных - могут возникнуть проблемы с сигналом RR (готовность приемника). Рекомендуется продублировать +5 вольт медным проводом на разъем МПИ (А4,А12,В12), тогда можно снять перемычку с R6 (см.схему). Впрочем, на модуле WiFi он не используется. Хуже того, из-за программной реализации и буферов FIFO на PC даже без установленной готовности PC успевает загнать в буфер байт эдак 460...


05 окт 2017, 23:00
Профиль
Показать сообщения за:  Сортировать по:  
Ответить на тему   [ 1 сообщение ] 

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000 - 2011 phpBB Group.
Design creat de Florea Cosmin Ionut | Translation by WebSok.Ru

закрыть

Советскому бытовому " БК-0011М" посвящается...


Вопреки всем скептикам и недоброжелателям, дело БК живет и развивается. Не за горами день, когда будет выпущен в свет "БК-0012 Pulsar" - расширенный FPGA-клон БК-0011М. Пока же на данном форуме Вы можете ознакомиться с репликами БК-0011М(-01), приставкой Booster-11, репликой контроллера SMK64 (а также его FPGA-клоном - SMK512), аппаратным эмулятором ПЗУ КР1801РЕ2Б, блоками расширения с процессорами ВМ2/ВМ3, и другими интересными материалами и работами.
Ведутся работы по отрисовке в 3D корпусов БК, МСТД, оригинальных клавиатуры, джойстика и мыши, но пока не удается найти их производство по приемлемой цене при малом тираже. Выполнено производство новодельных пленок для клавиатур БК-0011М.
Важным для возрождения БК и его сообщества является новый софт (игры и демо в особености), и они периодически появляются!
Удалось решить многие hard-задачи, но нет системных программистов, востребованных в проекте БК-0012, как минимум для тестирования. Требуется разработка полноценного Win32-компилятора Си в bin-файлы БК.
Релизован полноценный каталогизатор всего софта БК, с удобным интерфейсом. Осталось выполнить собственно большую задачу каталогизации.

Ждем ваших откликов, идей. Сообщайте о данном ресурсе всем, кто увлекался в прошлом БКшкой, присылайте их и свои e-mail для рассылки новостей из мира БК.

nimamov@mail.ru