Есть программа ms.com 92 года для обмена с ms dos. В ней написано, что исходная корветовская версия была 91 года.
Вид для печати
Есть программа ms.com 92 года для обмена с ms dos. В ней написано, что исходная корветовская версия была 91 года.
Верно, но как туда вывести звук с PC образца начала 90х? Звуковые карты тогда были экзотикой, а в штатной комплектации у PC не было аудиовыхода от слова совсем :)
А вот тут интереснее. Это был какой-то на тот момент распространённый стандарт ЛВС? Тут память может меня подводить, но вспоминается, что даже для PC локальные сети в самом начале 90х были не таким частым явлением, более-менее распространёнными они стали году к 95му-96му.
- - - Добавлено - - -
Вот это ИМХО ближе к правде. Погуглил - и под MS-DOS существовали программы, способные читать/писать дискеты в формате CP/M.
А ещё вычитал вот что на другом форуме:
Ну а если смогли для "Специалиста", то, теоретически, ничего не мешало и для "Вектора"...Цитата:
Вобще-то "Орион" соединили по СОМ-порту с IBM PC ещё сами авторы "Ориона", как я помню...
Причем RS-232 реализовали безо всяких 580ВВ51, а на рабоче-крестьянском 580ВВ55 :wink:
Я ещё с удовольствием для "Специалиста" передрал их программную реализацию RS-232.
Повесить проводок с резистором на LPT порт многие были в состоянии даже в начале 90-х. (Многие заходили так далеко, что вешали 16 резисторов и получали "Ковокс" для игры в СкримТрекер и Стар Контрол 2). Кроме того, для такого дела достаточно было бы прицепиться и напрямую к писи-спикеру. Делали ли что-то из этого на практике я не знаю, но технических проблем тут нет.
Я такое чудо из 16 резисторов как раз к "Вектору" подключал к порту ПУ :) Только практической пользы особой не ощутил т.к. не было где сэмплы брать :)
Если позволите небольшой оффтоп - а в те годы народ не боялся цеплять что-то самопальное к PC? У меня как-то в памяти отложилось чуть ли не благоговейное отношение к IBM PC-совместимой технике в те годы, т.к. она была очень дорогой, и запчасти на каждом углу не продавали. Может, в каких-то НИИ, связанных с электроникой и вычислительной техникой, и по-другому было...
Так или иначе, по тем временам даже перенос через обычную дискету ИМХО уже ощущался огромным прогрессом по сравнению с программированием под "Вектор" на самом "Векторе".
Вопрос первенства яйца или курицы, вполне переносим на Вектор.
Как можно написать программу на Векторе, если на нём ещё нет софта?
Если первоначальный софт для Вектора писался на другом компе, то почему на том компе не могли быть написаны игры и другой софт...
Счетмаш в то время выпускал ЕС1840, 1841, позднее 7978. Думаю у разрабов был доступ и к ЕС-кам и к IBM-кам...
Я в средине 90-ых (для дипломной работы) вроде даже печатную плату разводил на ЕС-7978 (на работе был такой).
Вопрос очень логичный! Но вот ответ, думаю, будет неоднозначным. Например, создатели Вектора, Темиразов и Соколов, работали на "Счетмаше" и у них, скорее всего, был доступ к профессиональной вычислительной технике. Поэтому если говорить о ПО в базовой поставке, то, вероятно, да - оно писалось с помощью кросс-компиляции.
Но я не уверен, что любители (тот же Лебедев) - а ведь очень много программ под "Вектор" было написано именно ими - в массе своей имели доступ к профессиональным ЭВМ. Помню, пользователь этого форума maxkit, который портировал на "Вектор" Exolon, писал, что обходился "Вектором" с квазидиском.
x-code, я и не говорил, что ничего хорошего не делалось на самом Векторе. Я лишь считаю, что при наличии возможности, "кросс-компиляция" - удобный инструмент, игнорировать который не имеет смысла. Можно конечно "пофанатеть" и сделать что-то на АСМ-е на самом Векторе, но лично мне удобнее писать на РС, а в Вектор загонять результат компиляции, для тестирования.
Да, было время, когда кроме Вектора с магнитофоном ничего в наличии не было, и было круто сидеть сутками кропать код, сохранять на кассете результат (иногда два - три раза) и дрожать, что кассету зажуёт, и всё начинать заново...
Сейчас я скорее выберу возможности РС что-бы написать программу для Вектора. Хотя-бы по причине привычки к раскладке клавы РС. Да, от клавы Вектора я отвык, и долго ищу нужную букву...
В начале "нулевых" для сохранения софта Вектора на РС, соединял их шнурком. И писал проги для Вектора и РС, для перекачки содержимого дискет. На РС писал на Си, на Векторе на АСМ-е, одновременно. Помню "мозги кипели" от необходимости одновременно работать на клавиатурах с разными раскладками.
Про сейчас и речи нет! Разумеется, я и сам свои эксперименты с вертикальным скроллом пятилетней давности писал на PC и загонял для компиляции в эмуляторе Вектора на образ дискеты через плагин в FAR. А знал бы тогда про tasm - и так бы не мучился :)
Меня съедало любопытство, как программировали тогда, в конце 80х-начале 90х, но, наверное, достоверно мы этого уже не узнаем, а все правдоподобные гипотезы в этой теме уже обсудили :)
Вот и пришли к мнению, что выбор скорее всего в пользу более привычного инструмента.
А как оно было на самом деле на границе 80-90-ых мы действительно скорее всего не узнаем.
Разрабы могли использовать имеющуюся в наличии платформу в лице ЕС или IBM. Либо использовать Вектор с новопортированным софтом и создаваемым для него железом, одновременно тестируя всё это "в боевых условиях".
Подскажите, пожалуйста, правильно я понимаю, что функции которые доступны в Мониторе-отладчике, через CALL 5 - не работают - если сохранить программу в формате загрузчика, через команду "O"?
Второй вопрос - У кого-нить получалось пристыковывать программы в мониторе к пакету "Драйверы устройств"? программа (инициализация), которая дана в руководстве (в приложении) - она просто не оттранслируется в стандартном EDASM, там синтаксис другой. Может есть какие-нибудь тонкости, не описанные в документации.
lafromm31, Если программа в дальнейшем будет работать в среде МикроДоса, то функции должны работать. Если программа будет загружаться в "чистую" память, конечно не будут, сами функции в памяти ведь отсутствуют.
Вопрос интересный даже сейчас с позиции написания тестов для реала итд: как сделать программу для Вектора, чтобы грузилась с кассеты, но при этом располагала средствами BIOS для работы с консолью. Не обязательно как в МикроДОС, можно 32 символа в строке, но чтобы удобно напечатать строку и может быть даже ввести. Большинство недавно написанных тестов как правило рисуют непонятные галочки и черточки, самые роскошные от ivagor-а печатают цифирки. Было бы удобно, если б не мучаясь можно было напечатать пояснительный текст.
Сейчас я предпочту просто добавить в Прекрасм рыбу с релевантными кусками BIOS-а. Видимо решения у этой проблемы нет, кроме как самому взять да написать?
У меня не только циферки, бывают и буковки
Но там совсем минимальный вариант, печать только в пределах строки и без поддержки управляющих кодов, хотя бы CR/LF. Вроде должен быть чуть более полный вариант, позже посмотрю. Скорее всего я его уже выкладывал, но где - не помню.
Совсем недавно натыкался на описание (или в программе реклама была встроена), что они типа предлагают альтернативный вариант библиотеки "Драйвера устройств" для Вектора. С описанием преимуществ. Но подробности не запомнил.
Значит существовала альтернатива.
Скорее всего, да. По первой ссылке, очень похоже, хотя текст был другой.
Суя по описанию, есть готовая текстовая библиотека.
Хотя для "не больших" тестов цеплять целую библиотеку... Всегда хочется - по минимуму, даже знакогенератор не весь, а только используемые символы... :)
А вот это отлично подмечено! Кроме того, в листинге из руководства к драйверам можно увидеть ещё две интересные директивы:
Цитата:
TITLE 'GAME V(1.1)
Псевдокоманда TITLE имеется в ассемблере M80 (по крайней мере, в мануале к "Корветовской" версии она упоминается). А вот вторую директиву ($-MACRO) мне удалось найти в описании только CP/M MAC MACRO ASSEMBLER от Digital Research.Цитата:
$-MACRO
Мне чуть стыдно себя цитировать, но (прямо со странички в картотеке):
"Другим преимуществом данной библиотеки является разделяемость программных модулей при компоновке из единого библиотечного файла PPCLIB.REL, в котором поставляется библиотека. "
Это вещь старинная, в 92м-93м году писалось, сейчас уже существует как-бы развитие этой библиотеки для 2000-ных. В любом случае, там расчёт на работу под CP/M хотя-б с квазидиском (лучше, конечно с флопаками).
А вообще, к разработке под Вектор видится 2 подхода:
1. Чисто хардкорный "на Векторе". Под CP/M или Микродос. Тут возможны 2 варианта: MACRO/Link от Digital Research или M80/L80/LIB80 от мелкомягких. Понятие "на Векторе" не обязательно означает железного коня. Можно и под эмулятором на 100MHz :).
В начале 90х эмулей не было, но практически у всех, кто серьёзно что-то пытался делать, были и квазидиски и по 2 флопика. Как у пользователя Вектора только появлялись квазики/флопари, про кассеты, Монитор-отладчик и проч. забывали начисто. Отож, раздельная компиляция, модульная линковка, релокируемый самомодифицирующийся код, макросы и проч. и проч.
2. Host-target. Скажем на винде. Выбирается какой-нибудь любимый редактор. У меня это Crimson Editor (он не лучший, просто дело привычки). Этот редактор превращается в IDE посредством назначения макросов на кнопки. Например, <F9> становится compile, <F10> превращается в link (вызывает .bat файл с командами линковки), <F11> - в старт эмулятора с настройкой на каталог, куда идёт выхлоп.
Я сейчас в качест cross-тула пользую вот такое:
CPM.EXE -- CP/M-80 program EXEcutor for Win32 V0.4
Copyright (C) 2004-2012 by K.Murakami
Под этой фигнёй запускаются и DR и Микрософт ассемблеры и линкеры. Правда, натыкался на баги, когда этот CP/M-80 program EXEcutor создаёт неверный объектный файл при очень определённых условиях. В таких случаях всегда есть 22nice.
ПМСМ (очень скромному), не стоит сильно убиваться, пытаясь работать на "голой" машине с ленточкой, когда совсем рядом доступна раздельная компиляция в перемещаемые объектные модули.
Рисование линии (в демо-ветке) довели до очень хорошего уровня, теперь можно и кругами заняться. Реализовал алгоритм Мич(е)нера.
circle - "точный" вариант, может рисовать окружности максимального радиуса
circle3 - оптимизированный вариант, радиус<=76
ivagor, по-моему для таких эпических разработок стоит заводить отдельные темы. Проще же искать будет потом. Из твоего круга (или окружности?) мы конечно все равно потом рыбу сделаем, но все же.
Уточню - окружности, не круги.
Насчет эпичности - тут как пойдет, может несколько постов и все. Можно подумать о ветке "Рисование геометрических фигур" или что-то в этом духе. Там привести ссылки на линию и окружность. А если еще что будет, то сразу там начинать.
Нет, нам такие фигуры не нужны, нам нужны другие фигуры.
Ускорил и сократил оба варианта, особенно circle3. В circle3 важное изменение - координаты центра в DE, не в HL и значение DE не меняется процедурой, что удобно при рисовании нескольких окружностей со сдвигом относительно предыдущего положения.
Идей по улучшению не появилось, поэтому закругляю circle. Все как было, только добавил коррекцию соотношения сторон, чтобы на реале были окружности, а не эллипсы. Приложил конфиг для emu, тот же самый, который выкладывал вместе с 3D крутилкой.
ivagor, обычно когда ты говоришь, что все пропало, это сигнал ждать, что через три дня появится версия в 2 раза быстрее, а если пожертвовать тремя байтами, то в 2.7. Делаем рыбу?
Так бывало, но не каждый раз, думаю тут достаточно плотно получилось, по крайней мере сами вычисления, особенно в circle3. Отрисовка не самая быстрая, можно весь вывод точек заинлайнить, но в данном случае соревнования нет и пусть будет без спорта. Окружность созрела для рыбы, только может лучше вариант без коррекции AR, а то из-за сравнительно скоростной коррекции сокращается область рисования. Можно корректировать и иначе, но будет медленнее.
- - - Добавлено - - -
Кстати, у этого быстрого способа коррекции есть еще одно достоинство - им легко корректировать координаты концов отрезков, что я и делал в 3D крутилке. Т.е. линии и окружности (и точки, конечно) можно рисовать в одной системе координат.
Сравнил с бейсиком 2.5, там используется тот же алгоритм. Заглушил рисование точек, оставил только базовый алгоритм - в бейсике в два с копейками раза медленнее чем в circle V2. Но львиную долю времени занимает рисование, в бейсике к нему еще вычисления пристегнуты (овал - 100%, дуга - скорее всего, дугу не проверял).
Альтернативный вариант коррекции соотношения сторон, позволяет рисовать по всему экрану без ограничений и он еще и быстрее (чем V2AR, просто V2 конечно все равно быстрее). Кроме того таблица коррекции теперь генерируется самой программой (можно, например, сгенерировать несколько таблиц для рисования разных эллипсов).
ivagor, а клиппинга по границам экрана нет?
В предыдущих вариантах я стремился к максимальной скорости и клиппинг там отсутствовал.
Если главное - возможности, а не скорость, то можно использовать предлагаемую V3. Здесь есть:
1) Клиппинг по границам экрана.
2) Возможность рисовать эллипсы. 16 коэффициентов сжатия (от 1/16 до 16/16) по каждой оси. Числитель коэффициента по X задается в D, по Y - в E. Перед первым вызовом circle надо вызвать IniCircle.
3) Возможность рисовать дуги с дискретностью 2pi/8. Маска дуг в регистре С, по часовой стрелке. Дополнительно можно посмотреть пример.
Обращаю внимание, что в V3 радиус в регистре B.
Пример клиппинга и рисования эллипсов - circleClipAndEllip
Пример рисования дуг - circleArc
Примеры разделил для наглядности, конечно же можно комбинировать возможности и, например, рисовать дуги эллипсов с клиппингом.
Сами процедуры рисования в обоих примерах одинаковые.
В детстве завидовал быстрому корветовскому paintу. Корветовский бейсик медленно рисует круги, зато очень быстро закрашивает. Проблема paint в векторовском бейсике связана с тем, что процедура там чисто пиксельная и никак не использует байтовую структуру экрана для ускорения. Зато процедура очень компактная и простая. Взял ее за основу и перевел в двухцветный вариант. А потом оптимизировал за счет комбинированного использования байтов/пикселов. Процедура ускорилась на (десятичный) порядок (сравниваю двухцветные варианты, цветной еще намного медленнее)! Жалко не сохранил первый вариант, было бы видно, как стало заливать в 10 раз быстрее. Теперь корветовская процедура всего в два с копейками раза быстрее :) Возможно стоило ее взять за основу.
Нужно конечно отметить, что корветовский paint работает с 8 цветным экраном, а мой вариант с 2х цветным, но корветовский "ускоритель" волшебным образом в вектор не пересадишь. Прикидываю, что при переходе к цветному варианту замедление было бы в худшем случае раза в 4, что все равно намного быстрее бейсиковской процедуры. Но такой вариант был бы довольно большим. А вот с z80 замедление было бы не таким существенным, думаю раза в 2.
Пока выкладываю "тизер" без исходника, может еще пооптимизирую.
Реализовал еще один мечт детства, касающийся paint - заливку с маской/шаблоном. С ходу не вспомнил, где можно подсмотреть и изобрел свой велосипед. Тоже пока без исходника, надо еще пооптимизировать и потестировать.
Мельком глянул корветовский paint и понял, что вряд ли буду его подробно разбирать, очень уж там все оптимизировано. А некоторые решения и вовсе неприменимы для вектора, например заливка строки стеком.