Убрал FORMAT.SAV - нефиг ему в RTEMе делать :)
Вид для печати
Убрал FORMAT.SAV - нефиг ему в RTEMе делать :)
И еще обновление. А то забыл кое-что :)
Код:SWAP .SYS 25P 01-Feb-82 RTEMFB.SYS 82P 01-Feb-82
NLM .SYS 2P 01-Feb-82 VSM .SYS 6P 01-Feb-82
DIR .SAV 17P 01-Feb-82 DUP .SAV 42P 01-Feb-82
PIP .SAV 23P 01-Feb-82 FIP .SAV 61P 01-Feb-82
JOAT .SAV 52P 01-Feb-82 RESORC.SAV 15P 01-Feb-82
KED .SAV 60P 01-Feb-82 K52 .SAV 55P 01-Feb-82
EDIT .SAV 19P 01-Feb-82 TECO .SAV 50P 01-Feb-82
MACRO .SAV 51P 01-Feb-82 CREF .SAV 6P 01-Feb-82
LINK .SAV 41P 01-Feb-82 LIBR .SAV 22P 01-Feb-82
FILEX .SAV 18P 01-Feb-82 SRCCOM.SAV 13P 01-Feb-82
BINCOM.SAV 10P 01-Feb-82 SLP .SAV 9P 01-Feb-82
DUMP .SAV 8P 01-Feb-82 SIPP .SAV 20P 01-Feb-82
PATCH .SAV 10P 01-Feb-82 PAT .SAV 8P 01-Feb-82
HELP .SAV 107P 01-Feb-82 BATCH .SAV 26P 01-Feb-82
SYSMAC.SML 42P 01-Feb-82 SYSMAC.MAC 41P 01-Feb-82
SYSLIB.OBJ 47P 01-Feb-82 VDT .OBJ 9P 01-Feb-82
VT52 .TEC 5P 01-Feb-82 VEG .TEC 4P 01-Feb-82
EDIT .TEC 1P 01-Feb-82 INSERT.TEC 2P 01-Feb-82
LOCAL .TEC 3P 01-Feb-82 SORT .TEC 3P 01-Feb-82
VTEDIT.TEC 32P 01-Feb-82 SEARCH.TEC 3P 01-Feb-82
SQU .TEC 13P 01-Feb-82 TYPE .TEC 12P 01-Feb-82
STARTM.COM 1P 01-Feb-82 VDT .SAV 8
44 Files, 1084 Blocks
478 Free blocks
Разбираю структуры в памяти. Заполняю постепенно RTEM link area.
Сдается мне, что он полностью совпадет по смещениям с тем RTEDAT.MAC который я нарисовал от балды. Видимо у дураков мысли сходятся ;)
УРА! ПОБЕДА! :)
Теперь осталось свой RTEM сделать который бы поддерживал все фичи :)Код:.SH ALL
RT-11FB V05.07
Booted from VS0:RTEMFB
USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set ON
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled
CLI is set DCL, CCL, UCL, NO UCF
Emulated RT-11 environment, processor type unknown
60KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
60 Hertz System Clock
Multi-terminal support
Global .SCCA support
FPU support
Extended unit support
Device Status CSR Vector(s)
------ ------ --- ---------
LD Installed 000000 000
NL Installed 000000 000
BA Installed 000000 000
VS Resident 000000 000
SL 122622 000000 000
SD Installed 000000 000
TT (Resident)
VS (Resident)
VS0 = DK , SY
MQ (Resident)
BA
NL
LD
SL (Loaded)
SD
1 free slots
Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 122546 137600
Unit Owner Type WIDTH TAB CRLF FORM SCOPE SPEED
--------------------------------------------------------
0 S-Console DL 80 No No No Yes N/A
Address Module Words
------- ------ -----
165324 VS 854.
136020 RMON 5986.
122614 SL 2882.
001000 ..BG.. 20934.
No LD units mounted
.
На случай если кто желает присоединиться к ковырянию.
В аттаче дамп памяти RTEM в момент когда управление передается на B$BOOT (1000) загрузчиком.
Вместо вот этого (код останова задачи для RSX с флажками 123456 для поиска):
в начале первого блока должно быть:Код:012746 000603 104377 123456 000000 123456
- это и есть B$BOOTКод:012737 003144 000100 005037 000102 005003
Проверка показала, что коментарии в исходниках RT-11 V5.7 (в других версиях коментариев не было вовсе) немного врут. Mentec, никогда не видя RTEM в глаза, при попытке откоментировать процесс потерял одно слово, что заставило их удивленно написать в коментариях "???" :)
Я, опираясь на данные коментарии, выдвинул предположение как работает загрузка в RTEM, но оно оказалось неверным. Теперь можно восстановить справедливость.
Код:; Слово конфигурации аппаратуры
BCNFG: .WORD LSI11$ ;Подразумеваем LSI-11
; Биты слова конфигурации аппаратуры
TSLIST: .WORD LSI11$ ;LSI-11 (нет адресуемого PSW)
.WORD LKCS$ ;у таймера есть CSR
.WORD CLOCK$ ;таймер есть в принципе
.WORD HWFPU$ ;есть FPP
; Данные DUP/RTEM
;
B$TIME: .BLKW 2 ;5000
B$DATE: .BLKW ;5004
B$HIME: .BLKW ;5006
B$SVTK: .BLKW ;5010
B$ROFF: .BLKW ;5012
B$LK50: .BLKW ;5014
B$LKGR: .BLKW ;5016
B$FPU: .BLKW ;5020
;RTEM не использует B$TIME и B$DATE поскольку все, что касается таймера и часов
;хукается вторичным загрузчиком и в дальнейшем обращается к соответствующим
;подпрограммам RTEM.
MOV #B$HIME,R2
MOV (R2)+,R4 ;Сохраняем последний доступный RT-11 адрес
CALL @(R2)+ ;Вызываем RTEM для инициализации
;Флаги RTEM используются только в RT-11 V5. RT-11 V4 не использует флаги,
;а RTEM старых версий их не возвращает.
MOV R0,CNFMOD ;Сохраняем флаги RTEM:
; 100000 - установить TT в режим SCOPE
; 000001 - установить режим UCF
;RTEM собирает рабочий диск из двух частей. Общая часть (содержит систему)
;и приватная часть (область куда пользователь может писать файлы). Обе части
;представляют собой образы диска со стандартной файловой структурой RT-11.
;Во время работы образы комбинируются в один, сегменты каталога приватного
;образа добавляются в конец к общим, а данные соответственно отодвигаются
;дальше по номеру блока. RTEM возвращает число блоков на которые данные
;отодвигаются из-за вставки приватных сегментов. Загрузчик добавляет это
;значение к номеру блока перед чтением. Во время работы системы это
;выполняется прозрачно внутри драйвера VS.
MOV (R2)+,$VSBRO ;Сохраняем смещение для загрузчика
...
;Настройка битов оборудования.
MOV #TSLIST,R1
MOV R1,R0
BIC (R1)+,-(R0) ;RTEM -> никакого LSI11$
BIC (R1)+,@R0 ;RTEM -> никакого LKCS$
BIS (R2)+,@R0 ;B$LK50 (RTEM: CLK50$)
TST (R2)+ ;B$LKGR (RTEM: 1-есть таймер, 0-нету)
BNE 10$
CLR @R1
10$: BIS (R1)+,@R0 ;CLOCK$
MOV (R2)+,@R1 ;B$FPU (RTEM: 100 [HWFPU$]-собран с /FP, 0-с /-FP)
CFCC
BIS (R1)+,@R0 ;HWFPU$
...
Собственно RTEM мониторы RT-11 V 05.04G и 05.07, а также файлы, нужные для сборки их вручную.
Код:RTEM .CND 2 29-Jan-1984 RTEM .ANS 7 29-Jan-1984
RTEM .TBL 5 29-Jan-1984 RTEM .BLD 1 29-Jan-1984
RTEM .DEV 1 29-Jan-1984 RTEM .MON 1 29-Jan-1984
RTEMFB.MAP 35 29-Jan-1984 NLM .SYS 2 29-Jan-1984
RTEMFB.SYS 95 29-Jan-1984 LDM .SYS 8 29-Jan-1984
BAM .SYS 7 29-Jan-1984 RTEDEF.MAC 2 29-Jan-1980
12 Files, 166 Blocks
226 Free blocks
SYSMAC.SML от RT-11 V5.07, переделанный в RSXный MLB.
Может пригоиться если вдруг понадобится получить OBJ из RT-11 программы не выходя за пределы системы.
Код:>TYP TEST.MAC
.TITLE TEST
.MCALL .PRINT,.EXIT
TEST: .PRINT #TEXT
.EXIT
TEXT: .ASCIZ /THIS IS JUST A TEXT/
.END TEST
>MAC TEST=RTMAC/ML,TEST
>SET DCL
$ MAC RTMAC/LIB,TEST
$
На время пока ковыряю внутренности RTEMа, на CTAKAHе можно побаловаться с тем, что уже удалось выжать ;)
Внутри RT-11 V05.04G.
Поскольку RTEM древний, от даты офигевает и считает, что лучше обойтись вовсе без нее. Время не идет и устанавливается в хрен знает что видимо по тойже причине. Установить дату/время руками тоже нельзя так как загрузчик RT-11 блокирует установку даты и времени в RTEM. После некоторого отдыха или поправлю или сразу свой вариант начну писать как и хотел.
Выход из RT-11 командой "BY" или "JOAT /E".
Если кто-то уже сидит в RTEMе от лица GUEST, второму достанется Read-Only доступ так как private image уже открыт будет для записи.
Код:$ RTE /VS
RTEM-11 (VAX/VMS) V01.00
RT-11FB V05.04 G
.SET SL ON
.SH CONF
RT-11FB V05.04 G
Booted from VS0:RTEMFB
USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
TT is set NOQUIET
ERROR is set ERROR
SL is set ON
EDIT is set KED
KMON nesting depth is 3
Global .SCCA flag is disabled
Emulated RT-11 environment, processor type unknown
60KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
60 Cycle System Clock
Multi-terminal support
Global .SCCA support
FPU support
После долгого пития чая, с помощью какой-то матери было выяснено почему RT-11 V5.6 и новее криво пишут файлы в (старом?) RTEMе.
Решить можно двумя вариантами: вставить в RTEM кусочек кода или поправить USR.MAC. Про первое подумаем еще, что касается второго, то патч для USR.MAC к RT-11 V5.7 здесь.
А заодно и рабочий shared image с 5.7...
Процесс адаптации древнего RTEM V1.0 можно считать законченым.
Здесь готовый комплект RTEM. Он для VAX/RSX в оригинале, но можно запускать и в RSX-11M/M-PLUS, Micro/RSX и P/OS (в RSX-11M-PLUS, Micro/RSX и P/OS именные каталоги работать не будут - нужно создать каталог, соответствующий login UIC).
А аттачах:
- патч для RTEM V1.0 (поправлена передача дат y2k в систему, добавлена передача флагов SCOPE/UCF которые требуются для RT-11 V5 [передается SCOPE+NOUCF]); реально эта фича никогда не работала из-за ошибки в BSTRAP и принудительно установленного UCF для RTEM в RMON; в 5.5+ скорее всего SCOPE окажется всегда включен, но проверять лень ибо и фиг с ним ;)
- патч для USR, RT-11 V5.7 (перед созданием файла обновляется дата в системе, под RTEM это портило регистры которые потом использовались [проблема есть в V5.6 и новее, в ранних системах возможно создание файла с прошлодневной датой])
- патч для BSTRAP, RT-11 V5.7 (запись UCF флагов в байт состояния CLI, а не фиг знает куда; проблема во всех RT-11 V5)
- патч для RMON, RT-11 V5.7 (убран принудительный UCF под RTEM - иначе какого фига BSTRAP пытается его включить согласно флагов RTEM [проблема во всех RT-11 V5])
- оригинал RTEM V1.0
- исправленный RTEM V1.0
- исправленный shared образ с RT-11 V5.7
Теперь можно в спокойной обстановке писать свой RTEM...Код:>RTE /VS
RTEM-11 (VAX/VMS) V01.00
RT-11FB V05.07
.SET SL ON
.DA
3-Feb-2012
.TI
13:20:39
.SH CONF
RT-11FB V05.07
Booted from VS0:RTEMFB
USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set ON
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled
CLI is set DCL, CCL, UCL, NO UCF
Emulated RT-11 environment, processor type unknown
60KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
50 Hertz System Clock
Multi-terminal support
Global .SCCA support
FPU support
Extended unit support
.ME
Address Module Words
------- ------ -----
165324 VS 854.
136020 RMON 5986.
122614 SL 2882.
001000 ..BG.. 20934.
.
Хе-хе. Игрушки которые используют системные вызовы, а не лезут к регистрам, можно запсукать :)
Добавил документацию себе на форум по Эл.85 и МС0515
http://www.tis.kz/forum/topic.php?forum=1&topic=11
form, Есть описание процедуры программирования 82s100 (аналог РТ2). Если нужно - шлите мыло в ЛС.
И есть программатор
---------- Post added at 14:35 ---------- Previous post was at 14:33 ----------
Поскажите, правильно ли я понял что МК1 вставляется в НС1 со сдвигом влево (правые места для ножек в панельках остаются свободными)?
И можно ли ставить МК1ред3 вместо МК1ред1 ?
Расскажите про игры для Pro/Э85 -- оригинальные (DEC) и местные разработки. И где их скачать :-)
anasana заинтересовал меня эмуляцией МС1702 -- в MESS есть skeleton driver (но нет самой Э85 и Pro).
Для начала дизассемблировал (unidasm из комплекта MESS, процессор установил в t11) его тестовое ПЗУ -- прошу посмотреть знающих на качество дизассембирования: http://paste.lisp.org/display/130808
Смущают строки
00000128: 7417 ???? (072027)
0000017A: 7497 ???? (072227)
0000017C: 0007 ???? (0007)
Традиция же.
А по существу вопроса? :)
Вопрос: Какой минимальный конфиг Э-85 для запуска?
SKcorp., Я не спец, но вроде одна плата системная (c процом и памятью). И внешний терминал.
По идее, Э-85 можно запускать и с терминалом ( т.к. у неё есть терминальный порт, да не простой, а такой, что при втыкании в него кабеля - на шине появляются регистры терминала ), но я про такие попытки никогда не слышал. Стандартно нужен монитор с подключенной к нему клавиатурой. Если Э-85 что-то не понравится - она в процессе загрузки нарисует на мониторе эскиз проблемы.
Ничего из этой затеи не выйдет без бубна и танцев.
Там есть maintenance mode которая включает упрощенную эмуляцию консольных регистров (сами регистры на шине есть независимо от режима - замыканеи 8 и 9 ноги [вроде] просто включает порт принтера на эти регистры и позволяет выпадать в uODT). Однако прерывания не эмулируются, что исключает использование этой фичи в системе напрямую. Кроме того нужно будет выкидывать поддержку PRO полностью, иначе система будет принудительно искать PIx.SYS и не будет грузиться без него.
Я и говорю - систему придется перелопатить. Грубо говоря, возможность работать без прерываний - это примерно 1% того что надо сделать.
---------- Post added at 23:21 ---------- Previous post was at 23:19 ----------
Есть путь проще: просто переделать PIx.SYS - исходники есть.
Тогда систему вообще не придется менять.
Ловите свежий подарок от CodeMaster-а, который сдампил очень интересный и полезный диск :)
Его ценность лично для меня связана с тем, что, кроме всего прочего, на нём:
клон моей любимой игры LodeRunner (LAN.SAV), он для Электроники-85 и он графический под ФОДОС! Вот такие вот "три в одном"...
http://savepic.org/2971875.png
http://savepic.org/2970851.png
На дискете ещё есть игры: SHERIF, LAND, GARDEN, HELL (последний выводит ПРИВЕТ и завершается),
но от каких они платформ я пока не знаю (у меня вылетают по trap, их бы проверить в других эмуляторах).
У Тетриса не нашел клавиш управления.
Скриншоты и образ в аттаче
SHERIF и LAND имеют код в нулевом блоке - он будет вылетать на любой системе старше v5.1 ( если в этих файлах установить бит 0400 по адресу 044 - может помочь ).
У HELL вообще нет карты загрузки ( начиная с ячейки 0360 ).
При его запуске в память копируется только нулевой блок, после чего управление передаётся на адрес 01000.
Посмотрел графику.
LAND и HELL - под ту же платформу, что и LAN, и странно, что у васе не работают.
GARDEN и SHERIF - имеют другую графику, ч/б, не в стиле Э-85. Однако, возможно, если это порт, то она преобразуется на ходу.
---------- Post added at 00:55 ---------- Previous post was at 00:10 ----------
Интересно начинается игра LAN.
Перед запуском читает в R0 слово по адресу 0x002C, затем проверяет 13-й бит по адресу R0+0x00F8. Если там 0, то пишет 'В таких условиях работать не могу'. Что бы это значило?
Может быть, делали аркадный автомат на базе ДВК? :)
Решил побаловаться - добавил в EmuStudio пару регистров от Электроники-85. И что самое интересное LAN худо-бедно заработал)
Во всяком случае, побегать получилось, не смотря на некоторые графические глюки. Что неудивительно, т.к. из всевозможных режимов работы видеоконтроллера я сделал... ни одного) Просто копирование данных и все)
Скрытый текст
Допилил поддержку режима, используемого данной игрой в EmuStidio, теперь все работает и можно играть. К слову сказать, в том эмуляторе Э-85, который мне давали, я так и не смог разобраться)
А по игре LAN сразу несколько замечаний:
Скрытый текст
Да первый уровень я побегал и заметил не только отмеченные вещи, но явные расхождения с оригиналом, 1 - анимация ГГ происходит только когда он движется,
2 - по какому-то принципу (пока не совсем понял) чертята перестают воскресать,
3 - похоже уровень непроходим, но вот кнопку "листать" лабиринты не удалось обнаружить )
Есть вертолёт, про который ты спрашивай в одной из тем во флейме )
И Лоде Рунер цветастый ) Вот где ДЕКовская графика представлена впервые для меня - и выглядит очень убедительно, кстати говоря ты запускал вертолёт ? Как тебе скроллинг справа на лево на Э-85? Мне так-же не удалось нащупать кнопки для игры в тетрис и как скорость эмуляции уменьшить???
Зато:
1) Если стереть файл LAND.PID (это файл с уровнями), то при запуске LAN.SAV запустится весьма удобный редактор уровней.
2) Если переименовать LAN.PID в LAND.PID, то можно поиграть в другие уровни.
3) Сами уровни гораздо больше по ширине, чем в одноименных играх на УКНЦ и ДВК, ввиду другого графического разрешения Э-85.
---------- Post added at 17:40 ---------- Previous post was at 17:39 ----------
Замечательный вертолет и скроллинг) Особенно, если учесть, что я не смог разобраться в том эмуляторе, и, соответственно запустить что-либо под ним)
---------- Post added at 18:04 ---------- Previous post was at 17:40 ----------
Вопрос к продвинутым PDP-шникам. Почему при загрузке игры HELL.SAV на УКНЦ, по адресу 1000 находится не то, что в файле, хотя другие такие же игры, начинающиеся с адреса 1000, загружаются нормально?
И последние несколько секторов в память не загрузились. WTF?
У кого-нить есть инфа о первом секторе .SAV файла под RT-11? Какие там битовые поля и чего вообще?
---------- Post added at 18:49 ---------- Previous post was at 18:04 ----------
Наобум потыкал маску загрузки в HELL, и удалось запустить. Это абсолютно тоже самое, что и LAN, только, видимо, другая компиляция. Может чем-то и отличается, но визуальных отличий нет.
---------- Post added at 19:56 ---------- Previous post was at 18:49 ----------
Выяснил, что Sherif тоже от Э-85, однако гораздо хитрее работает с системой и регистрами, так что тут запустить не особо получается. Garden скорее всего такой же, т.к. похож по структуре.
RT-11 Volume and File Formats Manual
Table 2–10: Information in Block 0 of a .SAV Image и дальше...
2>anasana - может всё таки имеет смысл попытаться и другие игры выдернуть из ПРОС ?
Новые уровни начинаются с опять таки не проходимого варианта "КРЕСТ",
у авторов порта с чувством юмора всё было отлично видимо )
http://savepic.ru/4302531.png
Да! С чёртиками картина прояснилась, в том плане, что когда "левый" чёртик в очередной раз топнет, а правый всё ещё жив, то вполне возможна ситуация,
когда новый чёртик прыгает из правого отверстия и "соединяется" по координатам со стоящим там. Просто мне вначале показалось, что респаун чертей выключается.
Зато!
Запустив TET.SAV
http://savepic.ru/4319938.png
На заставке видно что в рамках одного экрана на этой "крутой" "граф." PDPPRO шрифты совершенно разного размера - круто? Где то я это видел )))
Интересно а вот яркость и цвет у букв ещё есть ли возможность менять, по мимо размера?
http://savepic.ru/4295362.png
2>anasana - может всё таки имеет смысл попытаться и другие игры выдернуть из ПРОС ?