Пока кодогенератор нацеливаю на процессор с EIS (чтобы меньше мучаться с div/mul и 32-битными типами), а runtime -- на rt-11. Простенькая замена команде TYPE работает :)
Вид для печати
Пока кодогенератор нацеливаю на процессор с EIS (чтобы меньше мучаться с div/mul и 32-битными типами), а runtime -- на rt-11. Простенькая замена команде TYPE работает :)
На БК есть эмулятор EIS, сидит в дополнительной памяти, так что всё запустится!
Круто. Осталось понять, какие api у разнообразных ОС на БК :)
ОК. Цыплят по осени считают, примерно тогда и вернемся к БК -- почитал первый попавшийся обзор ОС (http://bk0010.narod.ru/pashigorov/files/osreview.html) и порадовался :)
Двигаюсь дальше, потребовался malloc. В cowgol он есть, только нужно сообщить границы свободной памяти (LOMEM, HIMEM)
Пока сделал так (оставляю место для USR):
Код:mov limit+2, LOMEM
.gval #limit, #$USRAR
mov r0, r1
.settop #-2
sub r1, r0
.settop r0
mov r0, HIMEM
<...>
limit: .limit
Видимо, лучше брать $USRLC и считать его за HIMEM, иначе при set usr noswap вычитается лишнее...
Какую минимальную версию RT-11 V5 имеет смысл поддерживать в генераторе кода (т.е. на какие макросы итд можно рассчитывать)? Наши клоны продвигались дальше 5.0?
shattered, ИМХО: возможно поддержать всю 5-ю линейку (с учётом, что после v5.4 SJ-монитора не стало) ?
И да - наши клоны минимум до 5.2 доходили точно, а вот выше я не знаю точно, как определить какой версией монитора
является ADOSSJ.SYS ? - он имеет свой номер версии , как версия сборки, но на каком дистр. основан я не знаю точно,
вполне возможно, что на 5.4 ?
Насколько важно, что поддержка современных дат - это 5.4G и выше?
А может ну их поддерживать и ваять строго под 7-ку?
Или так = 5.4 и выше )))
Видимо, это будет зависеть от того, какие .mcall потребуются для работы. Пока набор такой:
Сейчас собираю в SIMH под 5.3.Код:.mcall .serr, .herr, .exit, .qset, .mrkt, .cmkt, .print, .ttyout
.mcall .csispc, .lookup, .cstat, .enter, .close, .readw, .writw
.mcall .settop, .gval, .mfps, .mtps
Занятно, учту. Любопытно будет найти полные дистрибутивы наших клонов, для сравнения (я пользусь http://simh.trailing-edge.com/kits/rtv53swre.tar.Z -- опубликован с разрешения Mentec, как я понял)
shattered, каких клонов?
РАФОС, ФОДОС и АДОС в архиве есть +
очень популярные отечественные сборки мониторов (QQ,CD)с разной степенью копания в них нашими программистами-анархистами )))
ОС ДВК - обзывалась некоторая часть разновидности SJ-монитора, но этот всё то же не выше 5.1 , в крайнем случае 5.2,
да!!! Ещё СЭМЗовский из поставки УК-НЦ 5.0 очень стабильная и шустрая - под УК-НЦ в то время идеально подходило (там даты не подд.)
<Для УК-НЦ ещё несколько специализированных вариаций всё той же 5.0. 5.1 и 5.2 попадаются).
Интересуют заводские, не копанные дистрибутивы.
Отечественные все "копанные" по определению ))) Или я не совсем понимаю, что интересно?
Чистенькие от DEC известно где брать, я же про наши клоны отвечаю :
из поставки ученического класса УК-НЦ и комплекта школьной\промышленной ДВК - других нет )))
Описания есть сканы в библиотеке, а ADOSSJ - собран от создателей с кряком на форуме SuperMax'а,
Семёрку для УК-НЦ дистрибутив с патчами от [form] - самое то для 0511...
Ну и СЭМЗ-же поставка для бытовых\промышленных УК-НЦ (220В которые в розницу можно было купить)
Фотки дискет в шапке темы поиска файлов есть )))
Интересно то, что поставлялось с завода и было описано в документации на машину (не только УКНЦ). Почитал форум и нашел такое, например:
МС0102 (Электроника 89) -- ФОДОС-3 и ТМОС-2
6 дисков DZ, децималы 4.800.020 + 4.800.020-{01,02,10,04,05}. есть исходники ОС.
http://archive.pdp-11.org.ru/ukdwk_a...ODOS3_6DISKET/
4 диска DZ, децималы 4.800.020-{11,12,13,14}
http://emulator.pdp-11.org.ru/XXDP/TMOS-2/TMOS-2_DZ.zip
shattered, по первой ссылке - это сравнительно недавно специально для архива товарищ сделал, по моей просьбе,
он там образы на реале считывал и перегонял, поизучай - капни полный архив от TheGWBV - 15мб который, там QQ - дистрибутив присутствует
(хотя может и не полностью).
Все версии, насколько я помню: http://www.classiccmp.org/PDP-11/RT-...11DV50.ISO.zip
Его тут уже во всех топиках вспоминали :D
Похоже, нужен еще и .readc -- любопытно, как оно работает с разннобразными дисками УКНЦ (MZ/WD/AZ/...). Проверить могу, правда, только в эмуляторе :(
В документации на 5.6 опечатка, кстати
.READC area,chan,buf,wcnt,crtn,blk[,BMODE][,CMODE]
должно быть
.READC area,chan,buf,wcnt,blk,crtn[,BMODE][,CMODE]
shattered,
Код:.READC ! 375 ! 10 ! ПЕРЕДЕТ ДАННЫЕ ПО УКАЗАННОМУ !
! ! ! ! КАНАЛУ В БУФЕР ПАМЯТИ И ВОЗ- !
! ! ! ! ВРАЩАЕТ УПРАВЛЕНИЕ ПРОГРАММЕ !
! ! ! ! ПОЛЬЗОВАТЕЛЯ, КАК ТОЛЬКО ЗА- !
! ! ! ! ПРОС НА ЧТЕНИЕ ДАННЫХ БУДЕТ !
! ! ! ! ПОСТАВЛЕН В ОЧЕРЕДЬ ВВОДА- !
! ! ! ! ВЫВОДА. ПОСЛЕ ОКОНЧАНИЯ ЧТЕ- !
! ! ! ! НИЯ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ !
! ! ! ! ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ
.RCVD ! 375 ! 26 ! ОСУЩЕСТВЛЯЮТ ПРИЕМ СООБЩЕНИЙ !
! .RCVDC ! ! ! ИЛИ ДАННЫХ, ПЕРЕДАВАЕМЫХ ДРУ-!
! .RCVDW ! ! ! ГИМ ЗАДАНИЕМ В РЕЖИМЕ FB. !
! ! ! ! АНАЛОГИЧНЫ ЗАПРОСАМ .READ, !
! ! ! ! .READC,.READW
далее см. раздел 5.2 (5.2.1) описания системной библиотеки
Sysmac.hlp
Проверил, можно ли сыграть на УКНЦ что-то похожее на 25fps видео (а-ля https://youtu.be/MWdG413nNkI?t=150 и https://www.youtube.com/watch?v=8Q1vN51o-Dg) -- можно, но тормозят регистровый доступ к памяти + чтение диска через канал к ПП... генератор кода тоже не факт, что оптимален (я думаю, что о цветной картинке можно пока забыть, тогда в нем есть, что оптимизировать)
Вложение 73057Код:Setting encoding fps of 25 which grants 80000 cycles per frame
<...>
Average compiled video frame: 1477
Maximum compiled video frame: 6011
Least amount of remaining cycles per frame: 1
Average disk I/O: 50 KB/s
Maximum disk I/O: 175 KB/s
и тут https://gitlab.com/Rhialto/macro11
- - - Добавлено - - -
не так быстро :) картинка в четверть экрана, наверно, получится плавная, а с полным экраном пока тухло.
Ага, и каждому покупателю AZ -- карточку с HD видео в подарок :)
Чтение с ЦП будет быстрее (~150 KB/s?), но отнимет циклы от собственно рисования видео, а ПП (и WDR.SAV на нем) действует как DMA, хотя и медленный (~50 KB/s). В общем, занятный эксперимент, пока отложу на потом.
Для еще некоторого ускорения можно читать файл с AZ минуя ОС. Открываем файл обычным макро .LOOKUP, а далее повторяем тот же набор команд, что и в драйвере - естественно, в укороченном виде - мы ведь заранее знаем, что и куда посылать. Выбрали накопитель, послали команду чтения, вместо ожидания, пока оно там считается с SD-щки, выполняем какие-то действия, пришло время пользовать данные, ждем на всякий случай, вдруг еще не прочиталось, потом пересылаем данные из RD прямо куда нужно, минуя буфер в памяти. Потом выдаем новую команду чтения, следующего блока и можем 400-500 мкс заниматься своими делами. Программу подсказать?
Я думаю если сделать ЧБ (3й план сделать с прямым доступом), "задизерить" каждый кадр..и далее по списку (разница и.т.д).. будет очень эффектно.. на Комоде в 50б кадр сжимали и с дисковода читали :)
- - - Добавлено - - -
С телефона трудно писать... но хотел указать га одну проблему.. AZ в ЦП... третий план (если прямой доступ в ПП).... все варианты прямого доступа - "от лукавого" у Вас не останется памяти.
Нужно сделать буферизированную запись в ПП... дело за SuperMaxом илиAFZ.. предоставить для этого интерфейс... чтоб вы после вызовы процедуры RT-11 не придумывали ничего больше.
Вы не хотите, случаем, видео в ascii-art попробовать проиграть на УКНЦ?
https://github.com/fossage/ASCII-Video
Может быть -- если зайду в тупик с проигрыванием XDV (https://x86dc.wordpress.com/)