-
Интерес проявляю так как собираюсь собрать полностью весь ЮТ 88
Пока только системный модуль, в ближайшее время буду делать дисплей.
По ассемблеру, заработало, но пути не прописывал, оставил каталог с текстурами.
Есть ли какие нибудь уроки или учебные задания, попрактиковаться, именно для минимальной кон-ции. Использовать только индикаторы.
-
Вложений: 1
Перепилил win2koi7 и допилил rk(s).
Теперь и с этим ассемблером можно писать строки прямо в исходнике, и они автоматически переведуться в кои-7.
Между rk(s)_start и rk(s)_end теперь можно вставлять любое количество org.
rk(s)_end теперь на всякий случай еще и контрольную сумму считает, правда, если будут промежуточные org,
то сумма будет некорректной, но в дальнейшем улучшении не вижу целесообразности.
fasmg могуч, но не тривиален.
-
Оказывается, я уже давно сделал фичу для отслеживания стековых команд при доступе к RAM-диску (чтобы не плодить плагинов). Добавить квазидиск в полную версию ЮТ-88 оказалось очень просто. На сайте я уже обновил файлы конфигураций. Для тех, кто не хочет качать полтора мегабайта, вот конфиг с квазидиском:
Скрытый текст
Код:
main.CPUClock=1777778Hz
main.Caption="ЮТ-88 с дисплеем"
CPU : K580wm80a {
debug=cas
mem=mm
pc=F800
port~[04-07]=sys.data
port[40]=ramdisk.~pagemask
port[A1]=regs.data[0]
}
mem1 : Memory {
size=F800
}
mem2 : Memory {
size=40000
}
font : Memory {
rom="UT88\ut88.fnt"
}
bios : Memory {
rom="UT88\bios.rom"
}
sys : K580ww55 {
portA=kbd.~mask
portB[0-6]=kbd.~data
portC[0-2]=kbd.~data2
}
ramdisk : MemMap {
map[0][0000-FFFF]=mem1[0000]
map[1][0000-FFFF]=mem2[00000]
map[2][0000-FFFF]=mem2[10000]
map[3][0000-FFFF]=mem2[20000]
map[4][0000-FFFF]=mem2[30000]
}
mm : MemMap {
cpustate=CPU.state
map[0][0000-F7FF]=mem1[0000]
map[0][F800-FFFF].ro=bios[0000]
map[1][0000-FFFF]=ramdisk
}
kbd : Keyboard {
layout="UT88\layout.kbd"
}
vid : Text-Video {
font=font[0000]
mem=mem1[E800]
mode=UT88
}
regs : K580ww55 {
portA[0]=cas.record
portA[0]=cas.playback
}
cas : tape-recorder {
iproc[FAAD-FAC5]=rk
oproc[FB24-FB50]=rk
}
[свернуть]
Изменения отмечены красным.
- - - Добавлено - - -
Только cpm64.rku это действительно 64Кб-версия, хотя и пишет про 256Кб, но её очень просто изменить в оригинальную 256Кб-версию, достаточно поменять размер диска в DPB, т.е. изменить в .rku байт 39h по смещению 1954h на 0F9h.
-
shoorick, Здраствуйте.
В соседней теме о ЮТ88 обновили хелп. Данные о формате записи на ленту, это относится к минимальной конфигурации.
0х00 - 256 байт (пилот-тон),
0хЕ6 - 1 байт (байт синхронизации),
Hi(ADDR_START) - 1 байт (старший байт начального адреса),
Lo(ADDR_START) - 1 байт (младший байт начального адреса),
Hi(ADDR_END) - 1 байт (старший байт конечного адреса),
Lo(ADDR_END) - 1 байт (младший байт конечного адреса),
далее идут данные объёмом (ADDR_END - ADDR_START) байт.
Ни пилот-тона, ни синхронизации, ни контрольной суммы в конце нет.
Метод кодирования - двухфазный, период следования бита равен 0,666мс, скорость считывания порядка 1500 бит/сек.
Нужно ли корректировать файл заголовок, хотя у меня и так все работает.
-
пилот и синхробайт для эмулятора не нужны.
они нужны для загрузки реального пк с реального магнитофона (или звуковой карты).
их назначение - подавить собственные шумы магнитной ленты и дать возможность компьютеру правильно определить начало блока данных и необходимость инверсии при чтении (физические тонкости бытовых магнитофонов). по этой же причине пилот и синхробайт в конце записи не требуются.
контрольная сумма в конце нужна для Радио-86РК. если ЮТ-88 ее не использует, то она, как минимум, не мешает.
для реального Специалиста я писал утилиту rks2wav (она есть в том пакете), можно ее попробовать и для ЮТ, только указать ключ, чтобы не генерировался дополнительный заголовок (в котором монитор спеца пишет имя файла). Но следует учесть, что у специалиста скорость записи выше чем у рк86, так что придется подбирать константу для чтения.
-
У спеца другой порядок байт в заголовке (адрес начала, адрес конца).
-
rks2wav не меняет байты в заголовке, она просто добавляет в начале пилот и синхробайт и генерит wav. (как мне помниццо - 6 лет прошло :) )