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

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 35

Тема: Многообразие океанских бейсиков

  1. #1
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,392
    Спасибо Благодарностей отдано 
    36
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Многообразие океанских бейсиков

    Возможности "Океана-240" все еще плохо изучены. Одним из источников полезных знаний о его архитектуре, помимо дизассемблирования BIOS и BDOS, являются немногие дошедшие до нас программы на BASIC, да и сами бейсики.

    Таковых на сегодня у нас имеется два: IBASIC.COM весом 8192 байт с сигнатурой "OKEAN-240 BASIC INTERPRETER V1.2 04/11/86" внутри, и MBASIC.COM размером 24576 байт, с сообщением "Owned by Microsoft BASIC-80 R.5/240" внутри.

    Было бы здорово выпустить этим бейсикам кишки, чтобы понять, какие экзотические операторы там есть для низкоуровневого доступа к железу, а также разобраться со встроенными в BIOS графическими процедурами.

    В студию приглашается уважаемый @[B]ivagor[/B];, который собаку съел на потрошении бейсиков для более популярных платформ.

    -----
    Литература:
    1. https://zx-pk.ru/threads/23483-rodos...a-580vm80.html
    2. https://zx-pk.ru/threads/29940-raboc...ora-240-7.html
    Вложения Вложения
    • Тип файла: zip basics.zip (23.8 Кб, Просмотров: 19)
    Последний раз редактировалось tnt23; 01.02.2019 в 17:23. Причина: обновлен раздел "Литература"

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

  3. #2
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,549
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    104 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    MB.COM совсем не возбуждает, вариация cp/m-ного микрософтовского бейсика, навскидку без графики и звука (как обычно).
    А вот IBASIC.COM очень интересный, готов поспорить, что он не микрософтовский, это редкость для советских ретрокомпов! И токены есть заманчивые. С другой стороны, с немикрософтовскими я не сталкивался, будет сложнее разобраться.

    Возник вопрос - для океана есть плагин для работы с образами дисков? IBASIC я запустил через отладчик, но хотелось бы более цивильно работать.

  4. #3
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,392
    Спасибо Благодарностей отдано 
    36
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Возник вопрос - для океана есть плагин для работы с образами дисков?
    Эмулятор emu уважаемого b2m (да продлятся годы его и обратит он внимание свое на ящик для личной почты своей) имеет в поставке конфигурацию для работы с флопами, так и называется - Okean 240 fdd.cfg.

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

    Еще интересный момент, как минимум один из этих бейсиков дисковый (а то и оба), вот эта дисковость - она, конечно, CP/M-ная. Но вдруг там есть какие-нибудь штрихи или отпечатки, нехарактерные для пресноводных дисковостей?

  5. #4
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,549
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    104 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про emu я в курсе, вопрос про какие-нибудь удобные средства для работы с образами дисков.

    Про mb.com был не прав, поддержка графики там есть.

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

    Бейсики оба дисковые.

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

    Партизанским способом записал IBASIC в образ, но какой-нибудь плагин для Total Commandera или FARa очень желателен.

  6. #5
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,392
    Спасибо Благодарностей отдано 
    36
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С плагинами ничем не помогу, тут нужно подтянуть специалистов по работе с образами CP/M.

  7. #6
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,549
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    104 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Коротко про IBASIC.
    1. Выгрузка программы - SAVEимя_программы (без кавычек). Расширение будет BSC
    2. Загрузка программы
    2.1 Можно как параметр при запуске IBASIC имя_программы
    2.2 Можно при старте выбрать OLD и указать имя программы.
    2.3 В любой момент можно загрузить по OLD (это типа вместо LOAD).
    3. Звук
    3.1. BELL - звонок
    3.2. SOUND параметр1, параметр2 - я не понял, параметры принимает, передает досу, но в обращение к звуковым портам это не выливается.
    4. Графика
    4.1 GRAF - очистка экрана, вместо CLS
    4.2 RECT x,y - прямоугольник из текущей точки до x,y
    4.3 COL цвет
    4.4 POS x,y - перемещение графического курсора
    4.5 LINE x,y - линия из текущей точки до x,y
    5. Выход в дос - SYS

    Графические операторы и возможности MB.COM можно посмотреть на примере готовых программ здесь (azmaster). Звук в MUZA.BAS сделан OUTами.

  8. #7
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,392
    Спасибо Благодарностей отдано 
    36
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    3.1. BELL - звонок
    Просто через COUT гонят символ с кодом 7?

    Цитата Сообщение от ivagor Посмотреть сообщение
    3.2. SOUND параметр1, параметр2 - я не понял, параметры принимает, передает досу, но в обращение к звуковым портам это не выливается.
    Среди ESC последовательностей, поддерживаемых встроенным эмулятором терминала, есть такая, которая принимает два параметра и складывает их в рабочие ячейки монитора BeepDuration и BeepFreq. Этими ячейками пользуется процедура вывода символа, когда ей передают Bell.

    А заливки там не видать? В ESC-файле OKEAH.240 определенно есть заливка контуров.

  9. #8
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,549
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    104 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Просто через COUT гонят символ с кодом 7?
    да

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Среди ESC последовательностей, поддерживаемых встроенным эмулятором терминала, есть такая, которая принимает два параметра и складывает их в рабочие ячейки монитора BeepDuration и BeepFreq. Этими ячейками пользуется процедура вывода символа, когда ей передают Bell.
    Тут я ступил, конечно же SOUND задает частоту и длительность для BELL. Просто я ожидал, что он сам будет бипать.

    Цитата Сообщение от tnt23 Посмотреть сообщение
    А заливки там не видать?
    Заливки в IBASIC я не заметил.

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

    Дополнение про графику, пропустил 2 оператора.
    4.6 SET цвет_изображения,цвет_фона - отличается от COL возможностью менять цвет фона
    4.7 SYM выражение для печати - аналог PRINT, но с возможностью задания места для печати с точностью до точки (позицию для печати задает предыдущий графический оператор, удобно использовать POS).

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

    Из полезных функций стоит упомянуть CALL(адрес). Вызывает машиннокодовую процедуру и возвращает в качестве результата содержимое аккумулятора на выходе из процедуры.

  10. #9
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,392
    Спасибо Благодарностей отдано 
    36
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Управления текстовым курсором не видно? Позиционирование в обоих режимах (цветном 0 и монохромном), и еще интересно отключение курсора в цветном режиме.

  11. #10
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,549
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    104 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Управления текстовым курсором не видно? Позиционирование в обоих режимах (цветном 0 и монохромном), и еще интересно отключение курсора в цветном режиме.
    Специальных средств (операторов, функций) для этого нет. Вобще IBASIC очень дохлый, массивы только одномерные, поддержки строковых переменных нет. Зато есть интересные и даже пожалуй мощные
    6. Cредства для взаимодействия с машиннокодовыми процедурами.
    6.1 Функция ARG(значение) - задает значение пары BC, которое будет передано CALL
    6.2 Функция CALL(адрес), про которую я уже упоминал. На входе: BC - значение заданное в ARG, DE - указатель на специальный стек. В качестве результата возвращает содержимое BA (т.е. B как бы старшая половина регистровой пары, A - младшая). Кроме того можно возвратить значение в "стеке", указатель на который был передан в DE.
    6.3 Функция POP() - выбирает значение со "стека", с которым работал CALL. Т.е. CALL кроме результата в BA может вернуть и другие результаты работы машиннокодовой процедуры.
    6.4 Функция UNTRAP(). Весьма специфическая. Машиннокодовая процедура, вызываемая по CALL или POKE могут изменить ячейку, отвечающую за "стек перехвата ошибок". Как я понимаю, это нужно для расширения возможностей бейсика, например так можно добавить работу со строковыми переменными. UNTRAP снимает с этого стека значение, т.е. убирает перехват.
    Еще можно упомянуть, что есть функция INP для чтения портов. Оператора OUT для записи в порты (в отличие от MB.COM) в IBASIC нет.
    Но благодаря мощным возможностям по взаимодействию с машиннокодовыми процедурами можно доопределить нужные вещи, хоть печать esc, хоть запись в порты.
    Например, для печати esc можно использовать процедурку
    4000h mvi c,1Bh
    4002h jmp 0913h
    Вызов:
    5GRAF
    10A=CALL(16384)
    20PRINT"1234" - нарисует прямоугольник
    или
    20PRINT"2345" - нарисует линию

    tnt23, понимаю, что это не то, что ты хотел - узнать побольше о железе океана из бейсика. Но такой уж бейсик, в машиннозависимых вещах опирается на bios.
    Последний раз редактировалось ivagor; 02.02.2019 в 07:48.

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

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

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

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

Похожие темы

  1. Родословная бейсиков для 580ВМ80
    от esl в разделе Разное
    Ответов: 95
    Последнее: 22.07.2019, 21:04

Ваши права

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