Да зачем сравнивать Специалист и Орион. В Орионе скопастили часть идей Специалиста. Я даже не знаю как такое было возможно 85г. (вроде). Какой нах ZX и т.д. Это за гранью понимания
Да зачем сравнивать Специалист и Орион. В Орионе скопастили часть идей Специалиста. Я даже не знаю как такое было возможно 85г. (вроде). Какой нах ZX и т.д. Это за гранью понимания
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Есть дикая идея, сваять внешний терминал с параллельным портом, с обработкой всех esc-кодов, как это сделано в pdp-машинах.
Ведь большинство программ работает с ос именно таким способом. Заодно отпадает надобность в видеопамяти как таковой...
Пы.Сы. Это только мысль, прошу не кидаться какахами...
http://qsl.net/rw6hrm/html/8bitdisp.htm так уже есть, может подключаться к LPT. Я не знаю, что такое "все коды", но в авторском варианте (http://searle.hostei.com/grant/Monit...ard/index.html , а я не лазил в код) вроде бы обрабатывает по максимуму, плюс своё.
Скрытый текст
Video display control codes:
Hex (Decimal) and meaning
01 (01) - Cursor home (Standard ASCII)
02 (02) - Define cursor character (2nd byte is the curs character, or 00 to turn off)
03 (03) - Cursor blinking
04 (04) - Cursor solid
05 (05) - Set graphics pixel (next two bytes = x,y)
06 (06) - Reset graphics pixel (next two bytes = x,y)
08 (08) - Backspace (Standard ASCII)
09 (09) - Tab (Standard ASCII)
0A (11) - Linefeed (Standard ASCII)
0C (12) - Clear screen (Standard ASCII)
0D (13) - Carriage return (Standard ASCII)
0E (14) - Set column 0 to 79 (2nd byte is the column number) or 0 to 39 for a 40 char line
0F (16) - Set row 0 to 24 (2nd byte is the row number)
10 (16) - Delete start of line
11 (17) - Delete to end of line
12 (18) - Delete to start of screen
13 (19) - Delete to end of screen
14 (20) - Scroll up
15 (21) - Scroll down
16 (22) - Scroll left
17 (23) - Scroll right
18 (24) - Set font attribute for the current line (see elsewhere on this page for details) <--New for 3.0
1A (26) - Treat next byte as a character (to allow PC DOS char codes 1 to 31 to be displayed on screen)
1B (27) - ESC - reserved for ANSI sequences
1C (28) - Cursor right
1D (29) - Cursor Left
1E (30) - Cursor up
1F (31) - Cursor down
20 (32) to 7E (126) - Standard ASCII codes
7F (127) - Delete
80 (128) to FF (255) - PC (DOS) extended characters[свернуть]
Автор нормально идёт на контакт, тем более, что исходники есть.
Русификация моего варианта на подходе...
Последний раз редактировалось rw6hrm; 28.03.2018 в 19:10.
alx32, вот я, кстати, об этом думал давно, но пока думал частично актуальность потерялась. Идея была такая: коробочка, подключаемая к монитору и клавиатуре, имеется SD карта с FAT и USART на все типы: TTL, RS232 и т.д. Можно подключать контроллеры по UART как внешний экран + клавиатура. Экран несколько шире, чем доступно контроллеру: сверху и снизу 2 строки статуса, в которых указана скорость, режим, выбранный файл и т.д. Режимы можно выбирать с клавиатуры. Файлы пихать по стандартным протоколам [XYZ]MODEM. Сам экран это АЦД, но можно предусмотреть прозрачный символ под которым просвечивается графический экран, который управляется стандартными командами геометрии (линии, треугольники, прямоугольники и т.д.). Как-то так. Если интересно, можно отойти в отдельную ветку и обсудить реализацию, вдруг получится?
Дело хорошее. Так и работали все ЭВМ до конца 70-тых. Но Вы не указали какую задачу будете решать с помощью внешнего терминала.
Это самый простой способ получить CP/M в рэтро ЭВМ, в которой мало ОЗУ и тормознутость. Берём, например, РК86 или Специалист, пишем для него несложный драйвер VT52 и по любому интерфейсу подключаем скоростное микропроцессорное ядро на Z80B на такте 10 МГЦ на крошечной плате.
Скорость вывода на экран скорее ограничивает не скорость линии, а быстродействие драйвера (потому РК86 будет выводить текст быстрее, чем Специалист). Потому параллельный интерфейс не обязателен, пойдет и тормозной последовательный, причём без БИС, за счёт программной имитации последовательного интерфейса (всего по 3-м проводам, туда, сюда и земля).
Это сокращает периферию до одного бита на ввод и одного бита на вывод, отчего микропроцессорное ядро получается совсем простое - Z80B, РФ2, 4 корпуса 1533 серии и w24512 (в качестве двух однобитовых буферов, ввода и вывода удобны ЛП8, ЛН6 или ЛП11). ВВ51 для связи в машине без прерываний не нужна, т.к программный обмен даже при КР580 даёт скорость передачи до 8 кб в секунду, что вчетверо быстрее, чем может ВВ51.
Эта концепция удобна для CP/M (как иначе получить 10-ти мегагерцовую CP/M-машину), а также это удобный способ изучения чуждых микропроцессоров. Если есть задача изучить 6502, то проще не покупать Apple-II, а спаять крошечное микропроцессорное ядро на 6502, подключив к нему любой терминал, как и сделал rw6hrm.
Также терминал с простейшим программным обменом по однопроводной линии (без всяких ВВ51) полезен при отладке контроллеров в качестве временного устройства индикации, т.к там не проблема выделить на эти цели однобитовый порт.
Да, это удобные для программиста односимвольные управляющие коды (есть даже поддержка поточечной графики). Теоретически в CP/M нет стандарта на упр.коды консоли, но инсталляторы для большинства программ не сохранились. Для большинства доступных программ CP/M используется стандарт DEC VT52 или VT100, в которых используются ESC-коды. Но это не проблема.
Т.к, если нужно использовать этот терминал в CP/M, то в CP/M-BIOS в процедуру CONOUT легко встроить конверсию кодов. А именно, придётся отлавливать ESC-коды выдаваемые на CONOUT, с целью конверсии VT52 управляющих ESC-кодов выдаваемых CP/M-программами в те однобайтовые коды, которые обслуживает данный терминал. Это несложно и менять конструкцию не потребуется.
Последний раз редактировалось barsik; 29.03.2018 в 16:54.
У меня уже три таких SBC-шки, и на 6502, и на 8051, и на 68000 (натуральной, 16-битной). Но во всех проблема с выводом видео, а 40 или 64 символа в строке как-то не айс. А на ТВ 80 символов разглядывать - то ещё удовольствие... Поэтому нужен быстрый параллельный терминал для них, чтобы выплюнуть какую нибудь инфу на определённый адрес или порт без предварительной настройки...
Последний раз редактировалось alx32; 29.03.2018 в 17:34.
Почему обязательно параллельный? Последовательный интерфейс на скорости 115 Кбод, якобы, тоже быстрый и не надо тянуть кучу проводов.
В свете недавней разработки клона РК86 на ESP8266, если уговорить кого-то написать программу терминала на этом контроллере за 100 рублей, то можно поиметь самый дешёвый в мире терминал, который сможет дать 80 символов в строке, работу с VGA-дисплеем, огромную скорость вывода, удобную клавиатуру от IBM PC и одновременно решит проблему обмена с IBM PC и проблему внешнего привода, заменив винчестер или дисковод.
Последний раз редактировалось barsik; 01.04.2018 в 10:04.
Потому что USART может пригодиться для других вещей, а если его вообще нет? А терминал с параллельным портом можно подключить без прослойки напрямую к шинам процессора, причём к любому компу...
Последовательного интерфейса может, конечно, и не быть. Но лучше чтобы былПотом такой интерфейс таки стандартизирован с древних времен и поддерживается многим софтом и железом и посей день.
А что есть параллельный интерфейс? Более менее стандартное вспоминается только интерфейс принтера, который в новом железе уже не найти.
Если рассматривать некий параллельный интерфейс, навешенный на шину данных, то это уже совсем уникальная штука, прибитая к конкретному железу.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Так его и нет, потому что он в 8-ми разрядке и не нужен (точнее нужен только для мыши). Я уже 30 лет для межмашинной связи 8-ми разрядок использую последовательный интерфейс без всяких БИС. Использовать ВВ51 нужно только, если в одной из соединяемых машин есть прерывания.
Вот набор подпрограмм для обмена по линии между двумя ЭВМ без прерываний, причём без всяких доп.деталей и со скоростью в 4 раза быстрее, чем может ВВ51. Какой смысл тогда "городить огород", т.е монтировать ВВ51 и ВИ53 (для формирования стандартного такта ВВ1), а также тратить ценную проволоку для передачи дополнительных сигналов стандартного последовательного интерфейса.
А то, что ВВ51 это, якобы, стандарт - не волнует. Мы делаем что-то для результата, а не для соблюдения промышленных стандартов.
Скрытый текст
Код:. ; Набор подпрограмм для обмена по линии ; со скоростью 10 кб/сек (при такте 2.5 МГЦ) ;-------------------------------------------- ;* приём байта с линии INB: PUSH HL PUSH DE PUSH BC LD BC,RETBAD PUSH BC LD DE,0 LD C,E LD HL,PORT_B INB1: LD A,(HL) OR A RET P RRCA JP C,INB1 INB2: DEC DE LD A,D OR E RET Z LD A,(HL) OR A RET P RRCA JP NC,INB2 LD DE,1500H INB3: LD A,E CPL LD E,A LD B,19H INB4: DEC B RET Z LD A,(HL) RRCA XOR E JP P,INB4 LD A,B CP D LD A,C RLA LD C,A JP NC,INB3 JP RETOK1 ;-------------------------------------------- ;* Вывод байта в линию OUTB: PUSH HL PUSH DE PUSH BC LD DE,0880H LD C,A LD A,E LD (PORT_C),A LD B,15 OUTB1: DEC B JP NZ,OUTB1 OUTB4: LD A,E XOR 80H LD E,A LD A,C RLA LD C,A LD B,12 JP C,OUTB2 LD B,5 OUTB2: LD A,E LD (PORT_C),A OUTB3: DEC B JP NZ,OUTB3 DEC D JP NZ,OUTB4 LD B,2 OUTB5: DEC B JP NZ,OUTB5 XOR A LD (PORT_C),A LD B,10H CALL TIMB CALL RDLIN JP NC,RET_OK RETBAD: POP BC POP DE POP HL RETB1: XOR A LD (PORT_C),A LD A,(PORT_B) AND 80H SCF RET ; CY=1 ;-------------------------------------------- RETOK1: POP HL RET_OK: POP BC POP DE POP HL OR A ; CY=0 RET ;-------------------------------------------- RDLIN: LD A,(PORT_B) OR A JP P,RETB1 AND 1 RET[свернуть]
Не без прослойки. Прямо в шину входы выходы ВВ55 с другого компьютера не подключишь, - всё-равно нужен буфер, а проще и быстрее всего - та же ВВ55, работающая в режиме с использованием битов порта C в качестве упр.сигналов параллельного интерфейса.
А без всяких БИС-ов, один свободный бит в любом порту почти в любой системе можно найти (при нужде используя один и тот же бит для разных целей). Например, в РК86, не считая целого свободного ППА DD14, есть и магнитофонный вход/выход и целый вообще неиспользуемый бит в ППА клавиатуры, а также ещё 8 пригодных для обмена битов в порту B ППА клавиатуры.
Последний раз редактировалось barsik; 29.03.2018 в 19:21.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)