Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Altair8800 идеи, решения и реализации

  1. #1
    Master Аватар для L Juriy
    Регистрация
    29.11.2009
    Адрес
    г. Бийск
    Сообщений
    521
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    30 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Altair8800 идеи, решения и реализации

    Много интересных решений в этом конструкторе, а можно ли их применять сегодня в нашем ретростроении?
    Для Barsik еще файлы .
    Basic E компилятор для CPM с исходными текстами на PL/M.
    Распечатка 8К basic в помощь дизассемблированию.Не могу загрузить, ошибка.
    PCload программа обмена с PC для CPM.
    И мнитор и прочее на асме.
    Вложения Вложения
    • Тип файла: 7z Basic-E.7z (130.3 Кб, Просмотров: 99)
    • Тип файла: 7z asm.7z (154.1 Кб, Просмотров: 91)
    • Тип файла: zip PCLOAD.zip (12.9 Кб, Просмотров: 86)
    Микро-80, Радио-86РК, Океан 240, Ириша, Спектрум-48, NEC PC-8201, ЮТ-88(2017) .

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо, отсюда http://zx-pk.ru/threads/15172-spetsi...l=1#post914638 всё считал и распаковал.

    Я думал, что PAS80 это для CP/M, а оказалось для ISIS, но что интересно, похоже это не компилятор, а интерпретатор паскаля. Я думал, что речь идёт о PAS80 для CP/M, что есть у меня с 1991 года, который компилятор и доков к нему тоже нет (но от тех от кого его получил слышал, что он полностью в классическом стандарте). Интерпретатор Паскаля был бы интересен. Увы, ISIS для бытовых 8-ми разрядок никто не адаптировал, т.к она хуже CP/M (негибкая для адаптации и размер кода больше).

    Компилятор PLI с 1991 года у меня тоже сохранился, более ранней версии (V1.3), но недавно скачал и V2.0. Кажется, PLI это компилятор языка PL1. Для которого я никогда не мог найти учебники и про который недавно узнал, что он избыточен, неэффективен и бесполезен, т.к сам язык очень сложный и развитый, отчего не имеет никаких преимуществ перед СИ и Паскалем (лишь другая лексика). Язык малораспространённый и потому ДОК-файлов или учебников по этому языку не найти.

    Прочитал на этом сайте, что для 8-ми разрядки гораздо полезнее язык PL/M, но увы, его компиляторов не смог найти (нашёл для ISIS, для MSDOS, который не работает, и исходники на фортране, которые CP/M-фортран не хочет компилировать). Так и не имею компилятора PL/M, которым можно было бы пользоваться для написания программ для КР580.

    Исполняемый файл BASIC-E.COM (12 кб) у меня уже был, скачал его в прошлом году с какого-то вражеского сайта о CP/M. Он при старте в CP/M выдаёт надпись "бейсик компилятор V2.1" и даже прекрасно транслирует программы на бейсике, выдавая как результат файл с расширением INT. Но если переименовать файл INT в COM и запустить, то CP/M вешается или улетает. Вероятно это для какого-то конкретного компьютера или не хватает какого-то модуля времени исполнения. Теперь имея листинг можно посмотреть что это такое и какую пользу из этого можно поиметь.

    С BASIC-E буду разбираться позднее, т.к на всё одновременно времени не хватит. И сначала хочу разобраться с компиляторами CBASIC-80 из 1978 от Digital Research (т.к скачал их кучу версий и впервые получил хоть какие-то доки к нему, ранее компилятор был, а информации ноль) и вспомнить как пользоваться компилятором бейсика от Microsoft из 1981 и оценить их. Удобно, когда одновременно есть и интерпретатор и компилятор, что ускоряет разработку.

    А бейсик в 4 кб от Билла Гейтса легко адаптировать для РК86 и даже заменить RST на CALL, чтобы получить перемещаемую версию. Думаю, что можно адаптировать и расширенную версию в 8К, а возможно и дисковую версию в 16К, если она для CP/M. Надеюсь в ближайшие дни сделать такую версию, пока пытаюсь получить полноценный исходник и разобраться в логике. Думаю, что за последние 40 лет это уже проделали любители сотни раз и в сети можно было бы найти и исходный текст бейсика Билла Гейтса.

    Билл Гейтс в детстве был довольно находчивым в программировании, но такой стиль программирования однозначно следует считать извращением. Ради экономии в два десятка байтов не стоило уродовать исходник. В профессиональных программах извращения не применяют. Это делают только извращенцы любители. Биться ради каждого байта целесообразно лишь для ROM-BIOS, а в ПЗУ почти все извращения не работают.

    Для Win XP сложно найти свежие программы. Скачал какой-то 7Z-архиватор, - распаковывает нормально, а запаковывать не хочет (выдаёт "Интерфейс не поддерживается"). Возможно оттого и бесплатный.
    Вложения Вложения
    • Тип файла: rar PS80.rar (69.2 Кб, Просмотров: 72)
    Последний раз редактировалось barsik; 28.05.2017 в 22:10.

  4. #3
    Master Аватар для L Juriy
    Регистрация
    29.11.2009
    Адрес
    г. Бийск
    Сообщений
    521
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    30 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня на основном компе стоит Debian Linux 8.5, поэтому все в основном под нее.
    XP стоит на ноут буке, но я уже не помню когда запускал ее.
    На PL1 я начинал программировать, это было на манфреймах. Си тогда еще и в проектах только был.
    PL/M я запускаю в эмуляторе или ISIS или thames они работают в Линунсе.
    Под DOS есть эмулятор ISIS, смотри ниже. В нем PL/M работает.
    Есть PL/M для CM1800, можно попробовать в эмуляторе B2M, но нужен образ диска с ОС1800(в СР/М какие то ошибки BDOS).
    Посмотри, есть такой проект plmx,ссылку не помню, позже напишу.
    PL/M котрый на фортране это кросс компилятор, а не для CP/M.
    Во вложениях много чего по PL/M. Там же кросс компилятор PL/M на Си.
    Вложения Вложения
    Микро-80, Радио-86РК, Океан 240, Ириша, Спектрум-48, NEC PC-8201, ЮТ-88(2017) .

  5. #4
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    думал, что PAS80 это для CP/M, а оказалось для ISIS, но что интересно, похоже это не компилятор, а интерпретатор паскаля. Я думал, что речь идёт о PAS80 для CP/M, который есть у меня с 1991 года. Но это компилятор и доков к нему тоже нет (но от тех от кого его получил слышал, что он полностью в классическом стандарте). Интерпретатор Паскаля был бы интересен. Увы, ISIS для бытовых 8-ми разрядок никто не адаптировал, т.к она хуже CP/M (негибкая в адаптациях и размер кода больше).
    Лучше взять Borland Pascal и поработать с ним, чем маяться с убогим ISIS

  6. #5
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Шынни
    Лучше взять Borland Pascal и поработать с ним
    Речь о Турбо Паскале 2.0/3.0 для CP/M из 1983 или о Borland Pascal 7.1 для MSDOS ? Вроде бы Borland это стало называться только в версиях для MSDOS, начиная с 1992. К сожалению, нет версии Турбо Паскаля для КР580, что резко ограничивает его применение для отечественных бытовых 8-ми разрядок.

    Я в начале 90-х начинал освоение ЯВУ в CP/M на паскалях MT+ и Турбо. МТ+ даёт более громоздкий и, увы, более тормозной код, зато допускает прилинковку кусков написаных на других языках, в частности, на ассемблере. Это позволяет делать логику и работу с файлами на ЯВУ, а все критичные к скорости куски делать на ассемблере. А Турбо Паскаль не позволяет линковку с другими модулями, он заставляет весь код делать на Паскале.

    В Турбо-Паскаль встроили оператор 'Inline' для прямой вставки ассемлерных фрагментов, но это даже не ассемблер - считать адреса для меток вручную неудобно, да и вводить HEX-коды удовольствие ниже среднего (это немногим лучше вставки ассемблера операторами DATA в бейсике). Но всё-равно это лучший паскаль для CP/M, и если бы он был для КР580, то был бы очень полезен.

    На Паскале MT+ написано много программ, а на Турбо-Паскале ничего, на нём люди только учились программированию, чтобы использовать эти знания уже на IBM PC. Даже немцы на своём Роботроне-1715 активно использовали именно MT+, хотя имели Z80 и могли бы пользоваться и Турбо-Паскалем.
    Вложения Вложения

  7. #6
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Опечатался, речь о Turbo Pascal 3.01a

    а зачем inline?

  8. #7
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Шынни
    а зачем использовать 'inline' ?
    Потому что 'inline' позволяет часть критичных к быстродействию функций сделать на ассемблере. Во-вторых, при нарастании сложности программы, очень быстро разбухает код, потому для серъёзных программ просто необходимо для сокращения кода все несложные функции и процедуры переписать на ассемблере. В AZTEC и BDS СИ это делать очень удобно, а в Турбо Паскале с этим облом. На 'inline' удобно делать крошечные процедуры и функции, в частности интерфейс с ROM-BIOS (или графическим драйвером консоли, если он имеется). Но сравнительно большие куски, особенно, если ассемблерных процедур и функций много, делать 'inline' утомительно и сложно в отладке.

    Простой пример нехватки скорости. Делаем Нортон на Турбо-Паскале. Как начертить панели Нортона? Даже если драйвер позволяет сделать это псевдографикой, то скорость вывода из Паскаля оказывается ещё медленнее, чем обычной подпрограммой F818, что никуда не годится. Поэтому все рамки в программах ОРИОНА чертят прямой наглой записью в экранное ОЗУ. На ассеблере это получается очень быстро. Но на Паскале получается тормознуто, даже не быстрее, чем псевдографикой. Но если функцию RAMA переписать на ассемблере с помощью 'inline', то получается очень быстро. Аналогичная ситуация при выполнении сохранения экранного окна в буфере окон при открытии окна и восстановление исходного экрана при закрытии окна. На ассемблере это делается мгновенно, а на Паскале неприемлемо медленно. Еще пример. После считывания каталога в Нортоне, надо отсортировать каталог по критерию (по имени, по расширению, по размеру файлов, и UNSORTED). Пузырьковая сортировка на Паскале при числе файлов ~40-50 длится длится 30 секунд (т.к выполняется не только сортировка, но и копирование каталоговых записей из дискетного буфера в буфер каталога в нужном порядке), а на ассемблере это пол секунды.

    В своё я время не додумался, но всё-же есть способ удобной имплементации ассемблера и в Турбо Паскаль. Идея заключается в использовании внешнего (по отношению к Паскалю) ассемблерного модуля, который содержит все критичные к скорости и объёму кода подпрограммы, написанные на ассемблере.

    Тогда основная программа на Турбо-Паскале транслируется с RAMTOP, например, на 10 кб ниже уровня BDOS, т.е TPA сокращается на 10 кб, отчего при работе Паскаль программы эта область не будет затираться. При старте Паскаль программы выполняется процедура поиска на диске оверлея программы, который и грузится как раз ниже BDOS на 10 кб. А затем, при своей работе, Паскаль программа вызывает нужные подпрограммы из загруженного в ОЗУ оверлея, написанного на ассемблере. С помощью несложной доработки отладчиком странслированной Паскаль программы, можно пристроить код оверлея в конец кода Паскаль программы. Тогда программа даже останется однофайловой, что удобнее для пользователя.
    Последний раз редактировалось barsik; 29.05.2017 в 22:01.

  9. #8
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Старомодный подход к разработке имхо.

  10. #9
    Master Аватар для L Juriy
    Регистрация
    29.11.2009
    Адрес
    г. Бийск
    Сообщений
    521
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    30 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну еще немного вложений.
    В основном исходный текст.
    Вложения Вложения
    Микро-80, Радио-86РК, Океан 240, Ириша, Спектрум-48, NEC PC-8201, ЮТ-88(2017) .

  11. #10
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Компилятор PL/M для ОС ISIS при компиляции генерит код для ОС ISIS, а не для CP/M. Но для написания игр для РК86 это не важно (там дисковые функции не нужны), да и можно написать свой модуль связи с ДОС и ROM-BIOS, тогда можно использовать для производства программ для любых ДОС и любых ЭВМ на КР580. Не хватает только документации на ОС ISIS. Если эмулятор B2M верно эмулирует СМ-1800, на которой и использовалась ОС ISIS (и если есть копия дискеты ISIS), то возможно можно компилировать программы в среде ISIS в эмуляторе.

    Компилятор Турбо-Паскаля из командной строки полезен фанатам Паскаля, т.к он позволяет компилировать больший объём исходника. А исходник турбо-паскалевского редактора на досуге попробую использовать, чтобы сделать отдельный текстовый редактор для CP/M. Хотя он и не лучший, т.к редактирует только маленькие файлы (что целиком влезают в ОЗУ), не использует свопинг. Да и интересно посмотреть как пишут редакторы профессионалы и сравнить. RTL - модуль подпрограмм и констант времени исполнения полезно увидеть тем, кто серъёзно программирует на Турбо-Паскале, а также можно этот модуль существенно упростить, чтобы получить более маленькую результирующую программу. Из исходника сразу стало ясно, что адаптировать для КР580 это невозможно, т.к активно используются IX, IY.

    Это каторжный труд с помощью убогого дизассемблера дизассемблировать в полноценный трёхсоткилобайтовый исходник М80 и Турбо-Паскаль, полностью разобраться в чужом коде, снабдить подробными комментариями, да ещё и ввести в программу собственные улучшения. Да были настоящие любители в то время. Сейчас таких уже не осталось. Теперь многие считают слово ассемблер матерным.

    Для популяризации ассемблера привожу подборку старых некоммерческих ассемблеров для Z80 (скачано в начале 90-х с американской BBS для любителей CP/M). А ассемблеров для КР580 на Западе почему-то никто не писал.

    - - - Добавлено - - -

    http://schorn.ch/altair_6.php. Кстати, на сайте этого антикварного компьютера "Альтаир" оказалось много интересных языков программирования (с документацией), а популярные ЯВУ там в версиях более свежих, чем были распространены у нас в начале 90-тых (а также все известные прикладные CP/M-пакеты). К сожалению, все дистрибутивы там оказались в неудобном виде, - в виде DSK-файлов. Теперь надо думать как из этого получить файлы в нормальном виде.

    Но компилятора PL/M для CP/M там тоже не оказалось, только для ISIS. Что странно, т.к версия для CP/M точно должна существовать, потому что все утилиты CP/M были написаны на PL/M. И, как CP/M, так и PL/M написал один и тот же Гарри Килделл в один и тот же год и ясно, что он сделал версию компилятора PL/M и для CP/M.

    Интересна версия интерпретатора Фокала из 1979 года для КР580. Был разочарован тем, что интерпретатор Фокала, прошиваемый в 1985-89 в ПЗУ БК-010 оказался не отечественной разработкой, как хвастались во многих книгах, а был разработан для DEC ЭВМ в середине 70-тых. В описании нашёл фразу "8080 FOCAL is similar to DEC FOCAL", что свидетельствует о том, что Фокал для БК-010 не отечественная разработка, а заимствование от DEC ЭВМ.

    Кассетная версия Фокала (8 кб) использует подпрограммы ROM-BIOS "Альтаира", но наличие исходника позволяет после несложных доработок переделать Фокал для РК86 и использовать программы на Фокале для БК-010.

    Обнаружил там также компилятор ADA для CP/M. Вроде бы это самый крутой язык, дальнейшее развитие Паскаля, написанный профессионалами по заказу министерства обороны США. Может и для 8-ми разрядки ADA эффективние СИ и Паскаля? http://www.ada-ru.org/
    Вложения Вложения
    Последний раз редактировалось barsik; 30.05.2017 в 15:53.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 218
    Последнее: 12.04.2011, 18:55
  2. ZX & ISA шина - решения
    от Sayman в разделе Несортированное железо
    Ответов: 85
    Последнее: 11.02.2009, 15:55
  3. Ответов: 16
    Последнее: 26.07.2006, 02:59

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •