Хобот ты же зарекался спорить о программировании на низком уровне :)
Ну вот никакого конструктива от тебя нет.
Тебе эта тема должна быть глубоко фиолетова.
Вид для печати
если бы ты читал , а не огрызался, ты бы заметил, что я уже устал писать, что всё для удобной разработки уже написано, читай выше и похожих обсуждениях мои посты, ради смеха не пиши ответ , просто зайди на главную морду архива погляди правый фрэйм )
ты ошибешься! я то как раз от натива кайфую ) а сейчас у меня есть простой блокнот (хотя при умелом использовании НЫС
ничем не хуже!)
- - - Добавлено - - -
S_V_B, и мои посты - не надо воспринимать никак иначе кроме как дружеское общение на форуме, где все люди
заняты интересным, отдыхают, работают, консультируются, спорят (не без этого) - !!!
- - - Добавлено - - -
не понимаю о чём ты в этом сообщении, разъясни мне пожалуйста )
что тебе опять не ладушки, конструктив я выше уже не один раз упоминул )))
Ты просто игнорируешь текст.
нда...понятно...как со стеной...
поверь я в нативе пишу с 89 года примерно и что то до сих пор по кайфу )))
о чём я только и твержу? моя твоя глухонемой?
SVB пришли мне твой сорт, что там у вас "северян цены как в Москве" и может я начну понимать почему ты баг-репорты воспринимаешь как срачь,
а попытку показать, что всё пишется нормально в любом удобном тебе редакторе и при этом компилится нативными средствами - нужна альтернатива???
Вот у него сейчас и спросим
Часто - это всегда?
Целевая система у меня только RSX?
Ключевой момент: И как повторное подведение итогов.
При текущем раскладе дел - я не буду даже пробовать PDPy11 - потому что даже простейшие мои программы он не оттранслирует - независимо от того - под какой целевой комп (БК-УКНЦ-ДВК) они будут написаны.
А учитывая
я не вижу смысла в переходе в принципе.
Конечно, в будущем возможно всё - и смена парадигмы в голове автора, но весь мой жизненный опыт подсказывает - ждать этого не стоит
У меня такое чувство, что ты всегда под чем-то :) Ты дано должен был понять, что люди здесь обсуждают тему как раз противоположную твоим убеждениям. И если обсуждают - значит им так нужно. Продлжай писать свои микро-вставки на Макро.. и не навязывай свое имхо.
- - - Добавлено - - -
Если скомпиллит мой исходник мне будет более чем достаточно.
Цитата:
> Потом понял, что это тотальное зло (это о нативе в целом!!!)
не постите вот такое никто вам слова не скажет, ольтирнативщёки )))
Вот скажи - ты хочешь чтобы для УКНЦ или БК было написано (в реальные сроки) что-то новое?
Или склоняешь людей (у которых есть работа, семья, теща, дача и куча других проблем) писать тысячи строк кода в "тетрадке в клеточку"?
Якобы по твоему мнению - это настоящий "кайф".
И при этом оскорбляешь их ленивыми, новомодными, туповато-деградировавшим недопрограммистами.
Тебе "такси или шашечки"..
Говорят же тебе люди которые "чуть-чуть" в этом понимают -- неудобно, ты опять про свое.
Я не называл нативное программирование нехорошими словами. Для меня нативное программирование на БК 0010 - отладчик OS126000, я писал код сразу в памяти, тут же отлаживал, исправлял и сохранял на диск. Нативней только машинные коды.
Сейчас я притягиваю "левак" в виде достижений человечества за последние 30 лет. Надо сказать, что и в старые времена на Экситоне создавали софт для БК, притягивая левак - более мощные машины. Ничего страшного в этом не вижу.
- - - Добавлено - - -
Автор "Принца Персии" для БК 0011 сейчас пишет нативно в эмуляторе. Но он только подправляет старый код. Написать такой объём кода с нуля в эмуляторе (а тем более на реальной БК с дребезгом клавиш) ни у кого нервов не хватит.
Только потому, что нативные средства поддерживают ВСЕ возможности, которые мне нужны и поддерживают компиляцию СТАРЫХ ИСХОДНИКОВ, переписывать которые у меня нет никакого желания, особенно учитывая, что эти исходники - модули из операционной системы и системного софта. И если начинать их править под те возможности, которые предлагают на данном этапе своего развития альтернативные средства - загребёшься исправлять.
Будут альтернативы, которые МЕНЯ устроят - буду их использовать.
Как в своё время произошло с пакетом макросов DSMAC - да, пришлось привыкать и запоминать, зато скорость написания и понимания написанного возросло на порядок. Да и восстановление исходников сразу в текст, который использует эти макросы - позволяет на тот же порядок ускорить понимание логики работы кода. И вот альтернативы этим МАКРОСАМ для написания на MACRO-11 - я НЕ ВИЖУ.
Вопрос к гуру: - "Сколько памяти под программу пользователя остаётся после загрузки ОС БК?"
Для БК11М RT-11 SJ V5.02 из комплекта поставки 1990 г. ( I вариант ), и если повычищать с системного диска все "левые" дрова - в районе 32 Кбайт ( до ~~100000 ) адреса примерно. Но надо обратить внимание на SWAP.SYS и обстоятельства работы с ним ( ознакомиться с КД на ОС, примерно 1 толстая книжица ). Кратко - до 060000 адреса точно ( ~24 Кбайт ), дальше надо пошагово разобраться с типами системных вызовов ОС - что бы SWAP точно не пересекался с областью ввода-вывода программы пользователя - это очень кратко и поверхностно.
Т.е. программа пользователя свыше ~24 Кбайт должна сама позаботиться о себе - например, иметь собственные оверлеи ( блоки данных ), подгружаемые с диска ( если нужна 100% совместимость с Э-60/ДВК-2 ), или жонглировать страницами ОЗУ БКшки, или комбинированный вариант с ЭД/VM.SYS ( для 1801ВМ3 на ДВК ).
Т.е. ( кратко ) - сделать на БК11М программу длиной 40 Кбайт 1 шт. куском ( прямой последовательной адресации ) не выйдет, нужны подгружаемые части.
можно отменить, вот расположение в памяти монитора RMON как раз надо учитывать.
SE USR SWAP - будет свопить на дискету NOSWAP - будет работать с памятью (если ошибаюсь, пусть системщики уточнят).
https://pic.maxiol.com/thumbs2/15910...43840211cr.gif
BKBTL в конфигурации БК11М+дисковод
- - - Добавлено - - -
ДВК не левак, а неотъемлемая часть КУВТ86 как и школьная БКашенька! )
https://youtu.be/9BRqecDaYOc
http://pk-info.ru/infopk/dvk/aspcorp1.html
SuperMax, я не спец по ОС БК, поскольку живую с дисководом машинку никогда не видел даже, кроме фоток и видео в сети.
У меня был классика БК0010-01 с кассетами и УК-НЦ. Я знаю, что это опция RT-11.
Написал статью про то как запрограммировать управление от джойстика (а параллельно и от клавиатуры):
https://manwe.pdp-11.ru/?/programming/joystick
https://manwe.pdp-11.ru/articles/pro...lektronika.jpg
По опыту игры на Nintendo 3DS и Switch заметил, что лучше нажимать отдельные клавиши управления для «влево, вправо, вверх, вниз», нежели пытаться придерживаться этих направлений джойстиком (аналоговым стиком). То есть если нужно двигаться строго вправо, то лучше кнопкой «вправо» на клавиатуре, чем джойстиком, который норовит соскочить на «вправо вниз» и «вправо вверх».
Результатами работы новейших упаковщиков ZX0 и ZX1 теперь можно пользоваться и на pdp11 (1, 2). Особенно приятно то, что мощные упаковщики сочетаются с компактными и сравнительно быстрыми распаковщиками. Если расположить на одной шкале еще и lzsa1/2, то:
быстрая распаковка LZSA1 - (LZSA2) - ZX1 - ZX0 сильное сжатие
К сожалению текущий вариант распаковщика LZSA2 для PDP11 никуда не годится, он непристойно большой, а по скорости его обогнал ZX1 и почти догнал ZX0, но в принципе его можно оптимизировать. А вот с остальными все довольно неплохо, особенно удался распаковщик ZX0 (забавно, что его версии для 8080 и pdp11 получились почти одинаковые по размеру: 101 и 102 байта соответственно).
Там есть ссылки на github автора упаковщиков (Einar Saukas). Для mac нет, под win есть.
Einar Saukas сделал на основе ZX0/1 упаковщик ZX2 для маленьких файлов, а я сделал распаковщик для PDP11. Стоит пару слов сказать про опции.
Опция -y для реализации на PDP11 (в отличие от 8 биток) бесполезна и я не стал ее поддерживать.
Опция -z для большинства упакованных файлов прибавляет +1 байт, но зато распаковщик pdp11 с ней на 4 байта короче, поэтому
оба варианта распаковщиков рассчитаны на использование -z.
Опция -x сокращает распаковщик на 6 байт, но упакованный файл может получится (не всегда) чуть больше, поэтому в каждом конкретном случае надо смотреть на общую длину связки распаковщик+упакованный файл.
Опцию -b (распаковка в обратном направлении) для PDP11 на данный момент не реализовал.
В итоге 2 варианта распаковщиков: 80 байт (-z) и 74 байта (-x -z).
Прикольная картинка от RDC:
Лучше в нулевой палитре :)Код:MOV #40000,R0
CLR R1
MOV #400,R3
3: MOV #40,R4
2: MOV #20,R5
1: ADD R1,R2
ROR (R0)
ADD #100,R1
SOB R5,1
TST (R0)+
SOB R4,2
SUB #77600,R1
SOB R3,3
https://pic.maxiol.com/thumbs2/16188...0420101459.png
напишу о своем опыте - я честно попытался
1. тк он написан на питоне - получаем приколы от питона, а именно он (питон) требует свою кодировку
иначе говоря ему KOI8 не подсунуть (или надо разбираться как)
UTF-8 на винде 7-ке он тоже есть не захотел, пришлось конвертировать в 1251
2. макросы не знает, те стандартный код в MACRO11 не понимает
3. cравнил генерацию моего старого кода климата
тут 293 differences.
Вложение 75599
сходу вижу расхождение в адресах - дальше не копал.
Резюме:
1. необходимо реализовать полноценную поддержку макросов
2. необходим стандартный вывод - те объектный файл, листинг итп
(можно делать и бинарник сразу тоже - спрашивая пользователя что именно он хочет получить)
3. провести полноценное тестирование компилятора
те собрать легаси код с макросами и сравнить его с референсом
на данный момент, увы, использовать я бы не стал - листинга нет и даже баги(и свои и компилятора) не отловить быстро
как вариант замены листинга - онлайн компиляция как мираже, но с выводом кодов слева, это и удобно и все сразу ясно
особенно если писать какой-то хитрый код
upd: первый баг не подтвердился, точнее тут виноват не PDPy11 а asm.com который подавился длинной меткой
Некоторый обзор API в разных ОС БК, навеян https://pashigorov.pdp-11.ru/files/osreview.html
argv cli, работа с аргументами
serr обработка ошибок пользователем
isys installable device drivers
ivfs installable file systems
fat FAT как родная file system
date хранит last modified
hdd умеет в винчестер
subdir умеет в подкаталоги
large умеет в файлы больше 64K
byte хранит размер файла в байтах
blockio произвольный доступ к файлам (поблочный)
fileio произвольный доступ к файлам
dirio работа с каталогами (findfirst, next ...)
ttyio работа с консолью
0010/0011 с монитором 0010
ANDOS !argv serr isys !ivfs* fat* date hdd subdir* large byte blockio fileio* dirio !ttyio
ivfs -- только в оболочке DM
fat -- fat12 фиксированного размера (800K) с самодельными подкаталогами
fileio -- только open/close; random i/o надо делать самому (есть syscalls для работы с fat)
subdir -- фс умеет в subdirs, open() -- нет
DX-DOS argv serr? isys* !ivfs fat* date !hdd !subdir large byte blockio fileio dirio ttyio
isys -- пользуется 160006 (chs) вместо 160004 (lba) api
fat -- fat12 без подкаталогов, размер не больше 800K?
MK-DOS argv* serr* !isys ivfs* !fat !date hdd subdir* !large byte* blockio* !fileio dirio ttyio
argv -- только в оболочке MC; не документировано
serr -- только подавление вывода ошибок на экран; при ошибках диска всегда делается seek +1/-1 ?
ivfs -- только через эмуляцию EMT36?
subdir -- фс умеет в subdirs, open() -- нет
byte -- длина файла хранится дважды -- в байтах и блоках; размер фс не больше ___
blockio -- фс не умеет в фрагменты, поэтому file i/o получается добавлением offset из dirent; append делается созданием нового файла итп
0011 native
AO-DOS argv serr* !isys !ivfs !fat !date !hdd subdir* !large byte blockio* !fileio dirio? ttyio
serr -- только подавление вывода ошибок на экран
subdir -- фс умеет в subdirs, open() -- нет
blockio -- только файлы целиком (EMT36)
CSI-DOS argv* !serr !isys !ivfs !fat !date hdd* subdir large* byte* blockio !fileio dirio !ttyio
argv -- только в оболочке x-shell?
hdd -- только самарский?
large, byte -- для длинных файлов длина хранится в блоках
HC-DOS argv serr? isys !ivfs !fat date !hdd !subdir !large byte? blockio fileio* dirio ttyio
fileio -- только последовательное?
ОСБК-11 (RT-11)
argv serr isys !ivfs !fat date hdd* !subdir large? !byte blockio fileio dirio ttyio
hdd -- нужно патчить драйвер BY.SYS?
BKUNIX (LSX UNIX)
argv serr !isys !ivfs !fat date !hdd subdir large* byte blockio fileio dirio ttyio
large -- предел 1MB
еще бы сами API собрать в кучу
ANDOS
https://forum.maxiol.com/index.php?showtopic=5558 (ANDOS.VXT, ANDOS330.VXT, ANTECH.VXT -- нету README, MASTER, ANUTILS, PROFIT, MASTECH)
API оболочки DM сделан через IOT + резервные команды 107xxx, 007xxx и 070xxx
AO-DOS
в дистрибутиве с https://r-games.net/bk001x/softbk/23...e-sistemy.html
CSI-DOS
https://forum.maxiol.com/index.php?showtopic=4985
DX-DOS
в дистрибутиве с https://r-games.net/bk001x/softbk/23...e-sistemy.html
disasm -- https://gid.pdp-11.ru/src/dx_dos.zip
HC-DOS
в дистрибутиве с https://r-games.net/bk001x/softbk/23...e-sistemy.html
MK-DOS
https://forum.pk-fpga.ru/viewtopic.php?f=23&t=5535 (+ исходники)
ОСБК-11
в дистрибутивах с https://bkcrew.pdp-11.ru/images.htm
https://gid.pdp-11.ru/books/00015-01.32.01.html -- макросы из BKLIB.MLB
BKUNIX
https://gunkies.org/wiki/LSX + https://github.com/sergev/bkunix
Спасибо
Собрал эту сводную воедино со всеми файлами документации и дистрибутивами
Операционные системы для БК-0010/БК-0010.01/БК-0011/БК-0011М
+ дополнил еще и NORDом
Вот более полное собрание всяких документаций, надёрганных из всяких образов os_docs.7z. А то мне тоже иногда бывает надо, и нужно чтобы всё в одном месте лежало, что найти быстрее было.
Я там архив слегка подправил, исходников MKDOS добавил. И хочу напомнить, что есть полные дизассемблированные исходники ANDOS 3.10. Правда Диск Мастер мне полностью осилить не удалось. Но ядро - тщательно откомментировано. andos310_src.zip
Ядро ANDOS 3.30 почти ничем не отличается, но вот Диск Мастер я так и не осилил. Потому исходников 3.30 нет.
обновил
заодно выложил и в файловом варианте
https://mirrors.pdp-11.ru/_bk0010-11-11m/soft/_OC_/