Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024)
Moderator: Shaos
-
- Senior
- Posts: 181
- Joined: 17 Jun 2014 04:29
- Location: 93.80.157.217
Re: Радио-86РК на SRAM 128K Alpha
всё ж таки интересует скорость на 8080, т.к. в нём нет хитросделанных команд, да и скорость РК так себе (особенно на 1,77)
плюс, мне ещё пришлось решать задачу -- как сделать распаковщик без использования ОЗУ (без команд PUSH/POP, CALL/RET), т.к. мой распаковщик находится в теневом ПЗУ и память ему недоступна.
плюс, мне ещё пришлось решать задачу -- как сделать распаковщик без использования ОЗУ (без команд PUSH/POP, CALL/RET), т.к. мой распаковщик находится в теневом ПЗУ и память ему недоступна.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
Пишу депакер для 8080 на основе перемещаемого z80-кода - пока получается 48 тактов на один байт непакованных данных (на 1 такт быстрее чем z80):
а простое копирование байтов в 8080 (из HL в DE с размером блока в BC) занимает столько же:
т.е. для плохосжимаемых данных оно занимает как минимум столько же, сколько и простое копирование 
Сжатые данные будут обрабатываться чуток похуже и мне нужен стек, чтобы периодически прятать туда внутренние переменные - с другой стороны это же подпрограмма - её вызвали через CALL т.е. стек в системе есть, однако ей похоже и память будет нужна, чтобы сохранять 2 байта по ходу пьесы (последняя использованная длинная дистанция - в z80-коде я юзал регистр IY для этой цели).
P.S. Вот как-то так получилось - размер после ассемблирования 137 байт:
Ща пойду проверять... вроде работает
Code: Select all
; HL - address of packed data (data starts with a key byte)
; DE - pointer to the buffer where depacked data should appear (16KB max)
DESHAFF0:
mov b,m ; B is a Key byte (#FF in normal case)
inx h
DSH0L: mov a,m ; +7=7 ; main loop
inx h ; +5=12
cmp b ; +4=16 ; compare with a Key
jz DSH0FF ; +10=26
DSH0LL: stax d ; +7=33 ; it was not a Key so decode byte as is
inx d ; +5=38
jmp DSH0L ; +10=48 ; copying of unpacked data takes 48 clock cycles
DSH0FF: ...
Code: Select all
loop:
mov a,m ; +7=7
stax d ; +7=14
inx h ; +5=19
inx d ; +5=24
dcx b ; +5=29
mov a,c ; +5=34
ora b ; +4=38
jnz loop ; +10=48

Сжатые данные будут обрабатываться чуток похуже и мне нужен стек, чтобы периодически прятать туда внутренние переменные - с другой стороны это же подпрограмма - её вызвали через CALL т.е. стек в системе есть, однако ей похоже и память будет нужна, чтобы сохранять 2 байта по ходу пьесы (последняя использованная длинная дистанция - в z80-коде я юзал регистр IY для этой цели).
P.S. Вот как-то так получилось - размер после ассемблирования 137 байт:
Ща пойду проверять... вроде работает

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
На эмуляторе Emu80 декодирование fonts.bff происходит почти мгновенно - завернул это всё в цикл, который запускается 100 раз и получил 12.8 секунд т.е. одна распаковка заняла 0.128 секунды, что примерно соответствует 1777777*0.128=227555 без учёта ПДП (надо чтоли научиться отключать его временно), а если предположить, что ПДП съедает 10% CPU, то это будет примерно 100 тактов на 1 байт (напомню, что сжатый SHAFF0 образ весит 1501 байт, которые распаковываются в 2048):
Вот исходник тестовой программки, собираемой через pdp11asm от vinxru:
После возвращения программы в монитор я сохранил образ памяти и сравнил с файлом fonts.bin - первые 2КБ как и ожидалось, совпадают 
P.S. 1/8 секунды на распаковку сжатых через SHAFF0 шрифтов это достаточно быстро - так что пожалуй надо ещё и депакер SHAFF1 на 8080 портировать, раз уж на то пошло
В этом случае сжатие будет ещё лучше - 1108 байт вместо 1501, но если сохранится тенденция и депакер SHAFF1 будет в 12 раз медленнее чем депакер SHAFF0 (как на Z80), то распаковка шрифтов займёт уже полторы секунды, но сэкономит ещё 400 байт...
Вот исходник тестовой программки, собираемой через pdp11asm от vinxru:
Code: Select all
.i8080
; i8080 assembler code
prompt equ 0F86Ch
puts equ 0F818h
org 0
jmp start
ds 2045
start:
lxi h,msg
call 0F818h
lxi h,100
shld count
mainloop:
lxi h,PACKED+12
lxi d,0
call deshaff0
lhld count
dcx h
shld count
mov a,l
ora h
jnz mainloop
jmp prompt
count dw 0
msg:
db 1fh,'SUPER-86RK/128K',0dh,0ah,0
.include "deshaff0.asm"
PACKED:
insert_file "fonts.bff"
make_radio86rk_rom "test.rkr"

P.S. 1/8 секунды на распаковку сжатых через SHAFF0 шрифтов это достаточно быстро - так что пожалуй надо ещё и депакер SHAFF1 на 8080 портировать, раз уж на то пошло

В этом случае сжатие будет ещё лучше - 1108 байт вместо 1501, но если сохранится тенденция и депакер SHAFF1 будет в 12 раз медленнее чем депакер SHAFF0 (как на Z80), то распаковка шрифтов займёт уже полторы секунды, но сэкономит ещё 400 байт...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
Ребяты, а как ПДП отключить временно? Чото я с ходу не нахожу...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 347
- Joined: 14 Oct 2019 18:10
- Location: Tashkent
Re: Радио-86РК на SRAM 128K Alpha
Shaos wrote:Ребяты, а как ПДП отключить временно? Чото я с ходу не нахожу...
Code: Select all
MVI A,080H
STA 0E008H
CALL ВАШ_КОД
CALL 0F82DH
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
О, круто - спасибо! 
Значит реальное быстродействие депакера SHAFF0 на 8080 (применительно к распаковке двойных шрифтов) - примерно 82 такта на 1 байт (что на 70% медленнее теоретического максимума 48 тактов на байт в случае непакуемых данных).
Поправленная тестовая программа - под спойлером:
P.S. Попробовал 1000 циклов - с работающий ПДП получилось по секундомеру 2:03 или 123 секунды, а с выключенным - 1:30 или 90 секунд, т.е. разница между ними 36.6% (это если в качестве основания брать работу без ПДП, а если считать какое будет ускорение при выключении ПДП, то получится порядка 26.8%). С такой точностью скорость распаковки получается примерно 78 тактов на байт (на самом деле скорость зависит от самих данных насколько они запакованы т.е. как много в них повторяющихся последовательностей).
P.P.S. Эмулятор Emu80 оказывается пишет время работы ПДП (как процент от общего времени работы) внизу справа - 27%

С выключенным ПДП сто циклов крутятся 9.4 секунды, т.е. ПДП съедает не 10%, как я предполагал, а все 35% CPUShaos wrote:На эмуляторе Emu80 декодирование fonts.bff происходит почти мгновенно - завернул это всё в цикл, который запускается 100 раз и получил 12.8 секунд т.е. одна распаковка заняла 0.128 секунды, что примерно соответствует 1777777*0.128=227555 без учёта ПДП (надо чтоли научиться отключать его временно), а если предположить, что ПДП съедает 10% CPU, то это будет примерно 100 тактов на 1 байт (напомню, что сжатый SHAFF0 образ весит 1501 байт, которые распаковываются в 2048)

Значит реальное быстродействие депакера SHAFF0 на 8080 (применительно к распаковке двойных шрифтов) - примерно 82 такта на 1 байт (что на 70% медленнее теоретического максимума 48 тактов на байт в случае непакуемых данных).
Поправленная тестовая программа - под спойлером:
P.S. Попробовал 1000 циклов - с работающий ПДП получилось по секундомеру 2:03 или 123 секунды, а с выключенным - 1:30 или 90 секунд, т.е. разница между ними 36.6% (это если в качестве основания брать работу без ПДП, а если считать какое будет ускорение при выключении ПДП, то получится порядка 26.8%). С такой точностью скорость распаковки получается примерно 78 тактов на байт (на самом деле скорость зависит от самих данных насколько они запакованы т.е. как много в них повторяющихся последовательностей).
P.P.S. Эмулятор Emu80 оказывается пишет время работы ПДП (как процент от общего времени работы) внизу справа - 27%
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Собрал альфа версию платы 128k
Наконец-то я это сделал - произвёл хирургическое вмешательство в свою продолжающуюся сборку Radio-86RK SRAM 128K для исправления вышеописанной ошибки через 10 лет после того как alexcp её обнаружил и предложил способ её устраненияalexcp wrote:1) Вывод 3 микросхемы IC9 ошибочно подключен к сигналу READY (вместо RESET). Из-за ошибки IC13A постоянно сброшен в ноль (как должно быть только после RESET и только до первого перехода на адрес Монитора) и, как следствие, всегда присутствует _CS_ROM. Исправляется высверливанием виа в районе резисторов R16,R27,R28 и соединением виа под ВИ53 (рядом с выводом 3 ВИ53) с сигналом RESET (например, вывод 1 ГФ24).

После просверливания переходного отверстия округлённого на фотке надо будет RESET с первой ноги ГФ24 проводочком подать на третью лапку микросхемы IC9 (там как раз метализированное переходное отверстие имеется - на фотке это место помечено стрелочкой)...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024)
По прошествию 10 лет таки расписал полную карту памяти для своего клона клона:
и вставил её в первое сообщение топика, чтобы народу не приходилось самостоятельно по схеме разбираться.
P.S. Заодно немножко почистил тему от срача - если кто заметил, что тут стало меньше страниц.
P.P.S. Также, пока есть задор, исправил свою схему 10-летней давности в Eagle v5.12 по указаниям от alexcp, но разводку пока не исправляю и заказывать новый вариант не буду, пока не дособеру и не доотлажу старый вариант - может ещё чего вылезет например с переключением страниц ОЗУ или звуком, да и ещё надо выкинуть атмегу - может ещё и под цвет место освободится
P.P.P.S. В следующей версии со сменным шрифтом (Super-86RK) планирую ещё побить #E000...#EFFF на пополам, чтобы вторая половина (#E800...#EFFF) использовалась для записи в шрифты и ещё надо будет добавить второй регистр управления (наряду с #F000) для управления новым цветом (переключение палитр/шрифтов и установку акцентов) - скорее всего это будет #F001 (т.е. эти два регистра будут чередоваться по всему диапазону #F000...#FFFF в чётных и нечётных адресах).
Code: Select all
#0000...#7FFF - 32КБ окно статического ОЗУ (которое имеет размер 128КБ т.е. 4 страницы)
#8000...#8FFF - ВВ55 клавиатуры (также сюда подключены магнитофонные сигналы)
#9000...#9FFF - внешний разъём для подключения альтернативной ВВ55 или другой периферии
#A000...#AFFF - внешний разъём для подключения ВВ55 квазидиска (или программатора)
#B000...#BFFF - ВИ53 (музыкальный чип с тремя независимыми каналами как в Апогее или Векторе)
#C000...#C7FF - ВГ75 если выбрано окно ОЗУ 0, иначе уходит наружу как /CS_C000
#C800...#CFFF - Уходит наружу как /CS_C800
#D000...#D7FF - Уходит наружу как /CS_D000
#D800...#DFFF - Уходит наружу как /CS_D800
#E000...#EFFF - На запись обращается к ПДП, а на чтение - первые 4КБ восьмикилобайтного ПЗУ
#F000...#FFFF - На запись меняет страницу ОЗУ, а на чтение - вторые 4КБ восьмикилобайтного ПЗУ
P.S. Заодно немножко почистил тему от срача - если кто заметил, что тут стало меньше страниц.
P.P.S. Также, пока есть задор, исправил свою схему 10-летней давности в Eagle v5.12 по указаниям от alexcp, но разводку пока не исправляю и заказывать новый вариант не буду, пока не дособеру и не доотлажу старый вариант - может ещё чего вылезет например с переключением страниц ОЗУ или звуком, да и ещё надо выкинуть атмегу - может ещё и под цвет место освободится

P.P.P.S. В следующей версии со сменным шрифтом (Super-86RK) планирую ещё побить #E000...#EFFF на пополам, чтобы вторая половина (#E800...#EFFF) использовалась для записи в шрифты и ещё надо будет добавить второй регистр управления (наряду с #F000) для управления новым цветом (переключение палитр/шрифтов и установку акцентов) - скорее всего это будет #F001 (т.е. эти два регистра будут чередоваться по всему диапазону #F000...#FFFF в чётных и нечётных адресах).
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha
Shaos wrote:Поставил ESC слева-вверху (будет копией АР2) и увёл РУС/ЛАТ вниз-направо перед ВК:
...
Плюс ещё пробелы отцентрировал в связи с добавлением кнопки в нижний ряд.
Размер клавы получается 8.90 x 3.15 дюймов (22.6см х 8.0см) - это вот под такие кнопки (фотка самодельной ZX-клавы, которую я с 2007 года собираю и никак дособирать не могу):
Доразвёл порт C и наставил резюков, диодов и светодиодов, а также надписей понаписалShaos wrote:Доразводил порт A и порт B
...
Осталось развести несколько кнопок, что идут на порт C и резюков с диодами наставить...

Текущий размер платки 9.1 x 3.3 дюйма (23.1см х 8.4см)...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Beta (2024)
Выкинул атмегу - место освободилось только под разъёмы на матричную клавуShaos wrote:Также, пока есть задор, исправил свою схему 10-летней давности в Eagle v5.12 по указаниям от alexcp, но разводку пока не исправляю и заказывать новый вариант не буду, пока не дособеру и не доотлажу старый вариант - может ещё чего вылезет например с переключением страниц ОЗУ или звуком, да и ещё надо выкинуть атмегу - может ещё и под цвет место освободится

Ещё выкинул индикацию РУС/ЛАТ т.к. она теперь будет на плате клавы - в результате высвободился один инвертор, который я воткнул вместо одного вентиля И-НЕ, который до этого использовался как инвертор, а высвободившийся гейт И-НЕ вставил на разрешение буфера по рецепту от alexcp.
Также сделал плату ширше, чтобы заполнить все разрешённые стандартной лицензией 16x10 см и поставил туда гребёнки контактов - выводы ВГ75, которые могли бы представлять интерес (плюс 2 старших бита знакогенератора под цветной шрифт) - пока вот схема (плату недоразводил):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Beta (2024)
Доразводил плату беты 
Недоразведёнными остались шесть адресных линий на разъёме расширения (т.е. ещё меньше, чем в альфе): A2,A3,A4,A5,A6,A7 (если кому нужен будет разъём - например мне, то надо будет кинуть проводочки)
Монтажка:
Архив с исходниками и герберами (тот же урл, что был для альфы, но теперь там бета):
http://nedopc.org/nedopc/radio/rk86new.zip (2.2MB)
Тут же в архиве есть ZIP с герберами в формате JLCPCB - они берутся изготовить 5 плат за полсотни баксов плюс доставка:
Интересно, что пока я не был залогинен они показывали цену $36, а как залогинился и перезалил - добавили "Via Covering" $16.96 - это типа покрытие переходных отверстий? Я как бы их файл конверсии использовал для игла - выходит они специально там их открыли, чтобы потом денег "лишних" содрать при заказе за их закрытие...

Недоразведёнными остались шесть адресных линий на разъёме расширения (т.е. ещё меньше, чем в альфе): A2,A3,A4,A5,A6,A7 (если кому нужен будет разъём - например мне, то надо будет кинуть проводочки)
Проводочек на сигнал A3:
Проводочек на сигнал A4:
Проводочек на сигнал A5:
Проводочек на сигнал A6:
Проводочек на сигнал A7:
Монтажка:
Архив с исходниками и герберами (тот же урл, что был для альфы, но теперь там бета):
http://nedopc.org/nedopc/radio/rk86new.zip (2.2MB)
Тут же в архиве есть ZIP с герберами в формате JLCPCB - они берутся изготовить 5 плат за полсотни баксов плюс доставка:
Интересно, что пока я не был залогинен они показывали цену $36, а как залогинился и перезалил - добавили "Via Covering" $16.96 - это типа покрытие переходных отверстий? Я как бы их файл конверсии использовал для игла - выходит они специально там их открыли, чтобы потом денег "лишних" содрать при заказе за их закрытие...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024)
Не вывел 2 тактовых сигнала для регистра аля Апогей - их придётся проводочками цеплять прям к ногам микрух (а то мало ли - наводки мне наведут при таком плотной разводке)
P.S. Внешний вид платы с приближением:

P.P.S. Если сделать эту версию платки в синем цвете, то она может выглядеть примерно так:
P.P.P.S. Список компонентов для этой версии платы:
P.S. Внешний вид платы с приближением:

P.P.S. Если сделать эту версию платки в синем цвете, то она может выглядеть примерно так:
P.P.P.S. Список компонентов для этой версии платы:
Code: Select all
Partlist
Exported from rk86new.sch at 2/1/24 11:20 PM
EAGLE Version 5.12.0 Copyright (c) 1988-2011 CadSoft
Part Value Device Package Library Sheet
C1 0.47 C-EU025-030X050 C025-030X050 rcl 1
C2 1.0 C-EU025-030X050 C025-030X050 rcl 1
C3 47.0 CPOL-EUE2.5-6 E2,5-6 rcl 1
C4 22n C-EU025-025X050 C025-025X050 rcl 1
C5 0.22 C-EU025-025X050 C025-025X050 rcl 1
C6 2200 C-EU025-025X050 C025-025X050 rcl 1
C7 0.1 C-EU025-025X050 C025-025X050 rcl 1
C8 0.1 C-EU025-025X050 C025-025X050 rcl 1
C9 0.1 CPOL-EUB45181B B45181B rcl 1
C10 50.0 CPOL-EUE2,5-6E E2,5-6E rcl 1
C11 0.1 CPOL-EUB45181B B45181B rcl 1
C12 0.1 CPOL-EUB45181B B45181B rcl 1
C13 100.0 CPOL-EUE2,5-6E E2,5-6E rcl 1
C14 200.0 CPOL-EUE2,5-6E E2,5-6E rcl 1
C15 0.15 C-EU025-025X050 C025-025X050 rcl 1
C16 1.0 C-EU025-030X050 C025-030X050 rcl 1
C17 0.1 CPOL-EUB45181B B45181B rcl 1
C18 0.1 CPOL-EUB45181B B45181B rcl 1
C20 0.1 CPOL-EUB45181B B45181B rcl 1
C21 0.1 CPOL-EUB45181B B45181B rcl 1
C22 0.1 CPOL-EUB45181B B45181B rcl 1
C23 0.1 CPOL-EUB45181B B45181B rcl 1
C24 0.1 C-EUC0805K C0805K rcl 1
C25 0.1 CPOL-EUB45181B B45181B rcl 1
C26 0.1 CPOL-EUB45181B B45181B rcl 1
C27 0.1 CPOL-EUB45181B B45181B rcl 1
C28 0.1 CPOL-EUB45181B B45181B rcl 1
C29 0.1 C-EUC0805K C0805K rcl 1
C30 0.1 C-EUC0805K C0805K rcl 1
C31 0.1 C-EUC0805K C0805K rcl 1
C32 0.1 C-EUC0805K C0805K rcl 1
C33 0.1 C-EUC0805K C0805K rcl 1
C34 0.1 C-EUC0805K C0805K rcl 1
C35 0.1 C-EUC0805K C0805K rcl 1
C36 0.1 C-EUC0805K C0805K rcl 1
C37 0.1 C-EUC0805K C0805K rcl 1
C38 0.1 C-EUC0805K C0805K rcl 1
C39 0.1 C-EUC0805K C0805K rcl 1
D1 1N4148 1N4148DO35-7 DO35-7 diode 1
D3 1N4148 1N4148DO35-7 DO35-7 diode 1
IC1 8224 8224 DIL16 micro-intel 1
IC2 8257 DIL40 DIL40 ic-package 1
IC3 74LS92D 74LS92D SO14 74xx-us 1
IC4 74LS08D 74LS08D SO14 74xx-us 1
IC5 74LS86D 74LS86D SO14 74xx-us 1
IC6 8080A 8080 DIL40 micro-intel 1
IC7 8212 DIL24-6 DIL24-6 ic-package 1
IC8 8275 DIL40 DIL40 ic-package 1
IC9 74LS04D 74LS06D SO14 74xx-us 1
IC10 74ALS00D 74ALS00D SO14 74xx-us 1
IC11 74LS138D 74LS138D SO16 74xx-us 1
IC12 27C16 2716 DIL24 memory 1
IC13 74LS74D 74LS74D SO14 74xx-us 1
IC14 8255A 8255A DIL40 micro-intel 1
IC15 74198N 74198N DIL24-6 74xx-us 1
IC17 27C64 2764 DIL28 memory 1
IC21 CA3140N CA3140N DIL08 linear 1
IC32 CY62128 LP621024CM SOP32L memory 1
IC33 74LS74D 74LS74D SO14 74xx-us 1
IC34 74LS32D 74LS32D SO14 74xx-us 1
IC35 74LS32D 74LS32D SO14 74xx-us 1
IC36 74LS245DW 74LS245DW SO20W 74xx-us 1
IC37 74ALS00D 74ALS00D SO14 74xx-us 1
IC38 74LS32D 74LS32D SO14 74xx-us 1
IC39 8253 8253 DIL24-6 micro-intel 1
JP1 PINHD-2X2 2X02 pinhead 1
JP2 PINHD-2X2 2X02 pinhead 1
LED1 LED3MM LED3MM led 1
LED2 LED3MM LED3MM led 1
LED3 LED3MM LED3MM led 1
LED4 LED3MM LED3MM led 1
LSP1 SE14 SE14 SE14 solpad 1
LSP2 SE14 SE14 SE14 solpad 1
LSP3 SE14 SE14 SE14 solpad 1
Q1 16 MHz CRYSTALHC49U70 HC49U70 crystal 1
R1 2K R-EU_0207/2V 0207/2V rcl 1
R2 1.6K R-EU_0207/2V 0207/2V rcl 1
R3 1K R-EU_0207/2V 0207/2V rcl 1
R4 800 R-EU_0207/2V 0207/2V rcl 1
R5 10K R-EU_0207/2V 0207/2V rcl 1
R7 330 R-EU_0207/2V 0207/2V rcl 1
R8 330 R-EU_0207/2V 0207/2V rcl 1
R9 330 R-EU_0207/2V 0207/2V rcl 1
R10 1.2K R-EU_0207/2V 0207/2V rcl 1
R11 3.3K R-EU_0207/2V 0207/2V rcl 1
R12 3.3K R-EU_0207/2V 0207/2V rcl 1
R13 3.3K R-EU_0207/2V 0207/2V rcl 1
R14 3.3K R-EU_0207/2V 0207/2V rcl 1
R15 1K R-EU_0207/2V 0207/2V rcl 1
R16 680 R-EU_0207/2V 0207/2V rcl 1
R17 1K R-EU_0207/2V 0207/2V rcl 1
R18 51 R-EU_0207/2V 0207/2V rcl 1
R19 150 R-EU_0207/2V 0207/2V rcl 1
R20 1.6K R-EU_0207/2V 0207/2V rcl 1
R21 1.6K R-EU_0207/2V 0207/2V rcl 1
R22 1.6K R-EU_0207/2V 0207/2V rcl 1
R23 12K R-EU_0207/2V 0207/2V rcl 1
R24 2.4K R-EU_0207/2V 0207/2V rcl 1
R25 330 R-EU_0207/2V 0207/2V rcl 1
R26 10K R-EU_0207/2V 0207/2V rcl 1
R27 10K R-EU_0207/2V 0207/2V rcl 1
R28 10K R-EU_0207/2V 0207/2V rcl 1
RN1 10K G09R SIL10 resistor-sil 1
T1 2N3904 2N3904 TO92 transistor 1
T2 2N3904 2N3904 TO92 transistor 1
X1 PINHD-1X4 1X04 pinhead 1
X2 VIDEO TOBU3 TOBU3 con-hirschmann 1
X3 M15HP M15HP con-subd 1
X4 M15HP M15HP con-subd 1
X5 IN TOBU3 TOBU3 con-hirschmann 1
X6 W237-04P W237-4P con-wago-508 1
X7 OUT TOBU3 TOBU3 con-hirschmann 1
X8 S-VIDEO MD04SS MDIN04SS con-yamaichi 1
X9 PINHD-1X8 1X08 pinhead 1
X10 PINHD-1X30 1X30 pinhead 1
X11 PINHD-1X2 1X02 pinhead 1
X12 PINHD-2X8 2X08 pinhead 1
X13 PINHD-1X10 1X10 pinhead 1
X14 PINHD-1X4 1X04 pinhead 1
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re:
Кстати экранная область будет всегда из активной страницы ОЗУ браться! Это значит, что чтобы не сбивалась синхронизация на телеке, надо заполнить нулями область экрана во всех четырёх страницах! Также это означает, что у нас есть 4 РАЗНЫХ ЭКРАНА, которые могут мгновенно переключаться между собойShaos wrote:И кстати монитор нормально сможет только в стартовой странице работать (то бишь нулевой), т.к. его переменные находятся в переключаемой части памяти и соответственно после переключения на любую другую страницу, будут уходить в тень. Я планирую для неиспользуемой части ПЗУ написать процедурки для копирования данных между страничками и для передачи управления в другие странички...Shaos wrote:... теперь ввод с магнитофона и контроллер ЭЛТ в области #C000...#C7FF будут работать только в нулевой странице памяти (индикация светодиодом LED5), а во всех остальных страницах (1,2,3) вместо ввода с магнитофона на PC4 клавиатурной ВВ5 пойдёт вертикальная синхра с ВГ75 (чтобы программно ловить момент окончания кадра), а в области #C000...#C7FF будет располагаться внешняя плата, подключенная через 28-пиновый разъём...

P.S. Интересно, считать это "багом" или "фичей"? Я думаю изначально (конец 2013) я наверное планировал, чтобы ПДП обращался только к нулевой странице ОЗУ - по идее это реализуемо, но потребует некоторой дополнительной логики...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024)
Раз уж мы взялись править монитор (хотя бы для того, чтобы почистить все экраны), то можно некоторые апогеевские директивы добавить - ниже список букв в алфавитном порядке где подсвечено жирным то, что было на РК86 (и стрелочками что хотелось бы добавить):
A - загрузить данные с магнитофона в формате Микроши
B - сохранить данные на магнитофон в формате Микроши
C - сравнить блоки данных в памяти
D - напечатать значения байтов из памяти в 16-ричном виде
E
F - заполнить память байтом
G - запуск программы по адресу
H - показать сумму и разность двух слов <==
I - загрузить данные с магнитофона
J - прочитать данные с магнитофона в формате MSX
K - посчитать контрольную сумму блока данных <==
L - напечатать значения байтов из памяти в виде символов
M - вывод и модификация ячеек памяти
N
O - вывести данные на магнитофон
P - тест ОЗУ и ПЗУ ???
Q - показать константы скорости для работы с магнитофоном
R - чтение данных из квазидиска
S - произвести поиск байта в диапазоне адресов
T - пересылка блока данных в пределах памяти
U - скрытая директива, перекидывающая на адрес 0F000H
V - недокументированная директива для записи во внешнее запоминающее устройство
W - произвести поиск слова в диапазоне адресов <==
X - вывод и модификация содержимого регистров процессора
Y
Z - сохранить данные на магнитофон в фромате MSX
Также можно добавить директиву дизассемблера и скажем помощь
P.S. В существующем мониторе РК уже есть типа "пользовательская" директива U - если её ввести, то управление будет передано на адрес #F000 (туда же будет передано управление, если введённая директива непонятна) - вот на неё и можно прицепить дизассемблер
A - загрузить данные с магнитофона в формате Микроши
B - сохранить данные на магнитофон в формате Микроши
C - сравнить блоки данных в памяти
D - напечатать значения байтов из памяти в 16-ричном виде
E
F - заполнить память байтом
G - запуск программы по адресу
H - показать сумму и разность двух слов <==
I - загрузить данные с магнитофона
J - прочитать данные с магнитофона в формате MSX
K - посчитать контрольную сумму блока данных <==
L - напечатать значения байтов из памяти в виде символов
M - вывод и модификация ячеек памяти
N
O - вывести данные на магнитофон
P - тест ОЗУ и ПЗУ ???
Q - показать константы скорости для работы с магнитофоном
R - чтение данных из квазидиска
S - произвести поиск байта в диапазоне адресов
T - пересылка блока данных в пределах памяти
U - скрытая директива, перекидывающая на адрес 0F000H
V - недокументированная директива для записи во внешнее запоминающее устройство
W - произвести поиск слова в диапазоне адресов <==
X - вывод и модификация содержимого регистров процессора
Y
Z - сохранить данные на магнитофон в фромате MSX
Также можно добавить директиву дизассемблера и скажем помощь
P.S. В существующем мониторе РК уже есть типа "пользовательская" директива U - если её ввести, то управление будет передано на адрес #F000 (туда же будет передано управление, если введённая директива непонятна) - вот на неё и можно прицепить дизассемблер

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Senior
- Posts: 181
- Joined: 17 Jun 2014 04:29
- Location: 93.80.157.217
Re: Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024)
вместо того, чтоб разместить в Мониторе действительно полезный код, давайте его забьём мусором?
как часто понадобиться загружаться с магнитофона во всех мыслимых форматах?
как часто понадобиться загружаться с магнитофона во всех мыслимых форматах?