AstartA Project

Postby LessNick » Mon, 07.10.2019 00:00:31

Привет всем любителям замечательного компьютера Atari, фанатам, а так же им сочувствующим!!

Image

Как уже многие наверное слышали, у меня случилось замечательное событие. Этим летом мне наконец-таки удалось добраться до славного города Менска и передать в ремонт Byteman'у мою очень давнюю покупку «Atari 65XE». Компьютер был приобретён ну ооочень давно и ждал в коробке своего часа. Как выяснилось, поломка оказалась классическая, вышла из строя одна из микросхем памяти и создавала на шине мусор, что для этих моделей оказалось критично и он вообще отказывался запускаться. К счастью у тоже Byteman'а оказалось ведро большая коробка с нужными чипами и после замены компьютер ожил. Так же Byteman выяснил не очень приятный момент. На платы были выкручены в дупель резисторы цветов. Видимо предыдущие владельцы искренне верили, что если крутануть резюки до предела, то картинка появится :bang:

Ну вот ремонт позади, компьютер у меня и первым делом выяснилось, что как-то надо в него загружать программы. Беглый поиск в инете дал самое простое решение, а именно проект SIO2PC. Берётся обычная платка на том же алиэкспресе USB2TTL, которая реализует простейший RS232, но в отличии от классического COM-порта, где разность уровней +12в и -12в, здесь уровни реализуются в виде 0в и +3.3в. Далее контакты подключаются к разъему SIO, согласно схемы:

SIO2USB.png


Плата USB2TTL у меня уже была, а вот с коннектором возникли некоторые трудности. Готовых штекеров для ATARI SIO в продаже я не нашел (на тот момент). На ebay и прочих площадках были готовые уже готовые SIO-кабели, но платить порядка €18, что бы затем отчикрыжить вилку, к этому меня судьба не готовила. Так же очень уж не хотелось портить вилку от магнитофона, который мне достался в комплекте с ATARI. Но тут пришла идея напечатать искомый разъём на 3D принтере. К счатью в сети быстро нашлось два чертежа готовых SIO коннекторов. А небезызвестный Aλexander Nihirash с радостью мне в этом помог, за что ему огромнейшее спасибо.

photo_2019-08-20_21-45-09_.jpg


После получения заветных разъёмов, встал вопрос с пинами. Изначальная идея использовать незадействованные пины из разъема магнитофона чуть не провалилась. Как не печально, но судя по ржавчине и позеленевшим контактам предыдущий владелец хранил это явно в каком-то сыром помещении, возможно даже в гараже. При извлечении пинов из разъёма магнитофона, некоторые просто рассыпались ибо сгнили. Стал вопрос где достать новые? Не смотря на почтенный возраст устройства, на том же алиекспресе отыскались знакомые штырьки под кодовым названием — «CH3.96 Molex 3.96 Terminal plug connectors». 100 штук обошлось чуть менее доллара и они действительно оказались точь в точь как пины из магнитофонного штекера.

IMG_20190905_224012__.jpg


Про сборку самого разъема особо рассказывать нечего, скажу лишь, что возникли вопросы с пропихиванием пинов в отверстие распечатанного штекера. Не знаю, возможно это погрешность при при печати, а возможно и не совсем точный чертёж, тем более, что автор забыл сделать отверстие под винт с другой стороны. Пины пришлось чуть чуть подточить надфилем, после чего они свободно уже вставали в разъём.

photo_2019-08-20_23-27-40_.jpg


Не буду вас лишний раз грузить работоспособностью RespeQt, а именно эта программа запускается со стороны PeeCee для симуляции работы дисковода. Скажу лишь что по ряду причин меня это не сильно устроило. Кроме того постоянная «привязанность» к пэцэту породила идею использовать что-то отдельное, самостоятельный девайс который бы не требовал бы постоянного подключения.

На сегодняшний день существует достаточно много готовых проектов в виде того же SDrive и клонов, а так же проектов для готовых платформ, по типу Arduino. Один из таких проектов «SIO2Arduno» мне и захотелось попробовать запустить. К сожалению это оказалось не так просто. По началу проект оказался «заморожен» с 2015 года, совершенно не компилировался в современной версии Arduino IDE, а в ходе эксплуатации выяснилось, что функционал реализован не полностью и частично не верно.

Image


В результате «доделки» и правки проекта «SIO2Arduno» мне хотелось создать что-то своё, а за одно разобраться в работе SIO устройств и дисковода в частности. У меня уже была приобретена плата Arduino DUE в комплекте с Ethernet Shield, поэтому мучений выбора подо что писать у меня не было. Кроме того, читая комментарии в коде проекта «SIO2Arduino» об ограничениях более мелких Arduino стало понятно почему автор возможно забросил проект, просто не хватало ресурсов. Так или иначе надо отдать должное автору, с его помощью и с помощью исходников RespeQt стал понятен принцип общения ATARI с устройствами через SIO. А благодаря автору эмулятора Altirra и частности потрясающей документации «Altirra Hardware Reference Manual» стали понятны многие команды и принципы работы.

Altirra Hardware Reference Manual.jpg


На сегодняшний день проект «AstartA» позволяет эмулировать дисковод и загружать программы с дискет в формате ATR, так же позволяет запускать с SDCart'ы исполняемые файлы в формате XEX (Atari Executable). Кроме того позволяет эмулировать магнитофон и загружать программы с образа кассет в формате CAS. В дальнейшем планов очень много, хотелось бы реализовать запись дискет, поддержать увеличенную скорость работы дисковода (такое под силу SpartaDOS X), а так же поддержать расширенный формат, полный образ дискет в формате ATX.

Image

Когда-то давно, я видел в работе дисковод для Atari «LDW Super 2000», у которого была цифровая индикация. Сейчас сложно точно сказать наверняка, но предполагаю, что он показывал текущий трек, по крайней мере на этом видео на это похоже.

http://www.youtube.com/watch?v=zEdZpoa2chQ

Поэтому же принципу мне захотелось сделать нечто похожее и отображать текущий трек, на котором находится голова виртуального дисковода. Добавить в проект сдвоенный семисегментный индикатор не составило труда, а вот с отображением есть некоторые трудности. Во первых это чисто техническая, а вторая информационная. Дело в том, что в образах дискет ATR очень мало исходной информации о дискете. О её плотности, формате, количестве секторов на треке можно только догадываться и вычислять опытным путём исходя из размера образа дискеты. Кроме того сам ATARI тоже запрашивает только номер сектора и он может быть в диапазоне от 1 до 720 или больше, в зависимости от формата. А с учётом того, что первые три сектора имеют всегда длину только 128 байт (особенность системы), это всё наводит на своеобразные мысли о необходимости в новом формате дискет.

CLI2Atari.png
CLI2Atari.png (5.24 KiB) Viewed 31736 times


Кроме того есть мысли по поводу реализации простенькой системы по типу CLI² для TSConf, которая позволила бы монтировать образа командой из консоли, загружать исполняемые файлы, картинки, шрифты прямо с SD-карты. Но это пока только мысли в слух. На сегодняшний день пока это сырая альфа, так сказать проба пера и образа можно монтировать через консоль отладки Arduino. Поддерживаются три команды: cd, dir и mount; соответственно перейти в каталог, отобразить список файлов и примонтировать образ. В ближайших планах поддержать минимум команд SDrive, что позволит управлять виртуальным дисководом прямо с ATARI, как это сделано в проекте «SIO2Arduno».

SDrive.jpg


Пока это всё. Если кому будет интересно, с радостью поделюсь дополнительной информацией, а сам проект доступен на github.
Last edited by LessNick on Fri, 29.10.2021 11:28:12, edited 1 time in total.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby g0blinish » Mon, 07.10.2019 07:47:20

пишы 16К на Silly Venture. Есть два месяца.
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby LessNick » Mon, 07.10.2019 11:56:10

g0blinish wrote:пишы 16К на Silly Venture. Есть два месяца.


Я даж планирую посетить данное мероприятие, благо, что есть пару часов =)
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby g0blinish » Mon, 07.10.2019 12:32:49

и еще вопросы:
1. Непонятен принцип работы монтирования дисков -если подмонтировал .ATR, то прокатит загрузка с нажатым Option?

2. Насколько дорого и трудоемко обойдется этот проект?
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby g0blinish » Mon, 07.10.2019 12:33:58

LessNick wrote:Я даж планирую посетить данное мероприятие, благо, что есть пару часов =)


Завидую. я очередной раз участвую на расстоянии. звали уже.
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby LessNick » Mon, 07.10.2019 12:37:04

g0blinish wrote:если подмонтировал .ATR, то прокатит загрузка с нажатым Option?


Option всего лишь отключает картридж, а в данном случае барсик. На работу дисковода это никак не влияет и да, всё работает.

g0blinish wrote:Насколько дорого и трудоемко обойдется этот проект?


Сложно на данный момент сказать, пока я в процессе изучения. Сама плата Arduino DUE обошлась на алике где-то $12
Ethernet Shiel нужен пока только как слот SD карты, но у меня на него есть платы.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby LessNick » Mon, 07.10.2019 12:37:50

g0blinish wrote:Завидую. я очередной раз участвую на расстоянии. звали уже.


Ну это пока только в планах, сам понимаешь, всё может ещё 100 раз поменяться.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby g0blinish » Mon, 07.10.2019 12:44:57

LessNick wrote:Option всего лишь отключает картридж, а в данном случае барсик.


Это и имелось в виду. Например, как будет монтироваться TurboBasicXl.atr?
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby LessNick » Mon, 07.10.2019 13:35:56

g0blinish wrote:Например, как будет монтироваться TurboBasicXl.atr?


Монтируется-то он хорошо =) только я честно не пойму пока что оно хочет:

boot_error.png
boot_error.png (2.24 KiB) Viewed 31682 times


Как и в обеих эмуляторах (Altirra и Atari800Win) одинаковый результат, что с Option, что без. На реале так же.

Читает сектор и ему явно не нравится, то что прочитано. Вообще по уму считается что первые три сектора (boot) всегда по 128 байт, по другому атари не может обратиться к дисководу, далее уже хоть по 1024. Но тут явно что-то странное с образом

К слову RespeQt так же выдаёт первые сектора длинной 128 байт и получаем ошибку загрузки.



Короче попробовал сделать новый образ дискеты с AtariDOS 2.0, положил туда исполняемые файлы, загрузил дос, загрузил TBASIC.COM и вуаля, всё работает:

ok.png
ok.png (5.1 KiB) Viewed 31682 times
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby g0blinish » Mon, 07.10.2019 13:46:59

попробуй образ:
https://www.pouet.net/prod.php?which=70199
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby LessNick » Mon, 07.10.2019 14:03:27

g0blinish wrote:попробуй образ


Как часы! :ura:

IMG_20191007_135844_.jpg
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby g0blinish » Mon, 07.10.2019 14:11:27

Ну хоть этот взлетел. я долго искал такую версию.
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby LessNick » Fri, 11.10.2019 18:42:30

Небольшое обновление до версии 0.02 alpha:


  • Добавлена поддержка 4 виртуальных дисководов D1/D2/D3/D4. Теперь реально можно маунтить несколько образов одновременно =)
  • Добавлена поддержка команды «запись сектора», теперь можно писать дискеты, по крайней мере из атари бейсик программа сохраняется и загружается назад.
  • Исправлена (доработана) команда CD. Теперь если набрать «cd ..» происходит возврат на 1 поддерикторию.

IMG_20191011_170559_1_.jpg


Все изменения залиты в github. :vodka:
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby g0blinish » Fri, 11.10.2019 22:05:35

перебирал тут архив дем. под Atari800win часть взлетает, другая только после отключенного Бейсика. Если есть поддержка .xex, то неплохо было бы сделать отключение.

И еще такой вопросик: а что такое .xfd? я видел образы, но не стал разбираться. Легко ли в .atr перегнать?

а по аналогу msdos имеет ли смысл использовать "cd \" ?
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby LessNick » Sat, 12.10.2019 00:33:45

g0blinish wrote:перебирал тут архив дем. под Atari800win часть взлетает, другая только после отключенного Бейсика. Если есть поддержка .xex, то неплохо было бы сделать отключение.


Надо подумать, я так пока в структуры далеко не заглядывал. Вообще XEX грузится очень хитро. Делается симуляция дискеты (прямо SCL на спектруме) и первые сектора загрузчик, который потом «валит» по 1024 байта за один пакет. Я пока с самим загрузчиком не разбирался, просто взял готовый от RespeQt. Чисто гипотетически думаю можно его допилить, за одно и поэкспериментировать со скоростью порта. Я конечно фиг его знает, но в доке от Altirra там прям чуть ли не до 115200 можно разогнаться или даже чуть больше =)

g0blinish wrote:И еще такой вопросик: а что такое .xfd? я видел образы, но не стал разбираться. Легко ли в .atr перегнать?


Ну если верить доке, то это тупо посекторный дамп без каких-либо заголовков для PC. Первые 3 сектор стандартно 128б, дальше как карта ляжет :)

У меня под рукой нет в таком формате файлов, но можно попробовать конвертнуть тем же ATR Tools. Он правда немного «загадочный» и виснет при старте если запущено «рандомное» приложение, у кого-то вайбер, у кого-то либре офис. Если их закрыть чудо-программа запускается)))

g0blinish wrote:а по аналогу msdos имеет ли смысл использовать "cd \" ?


я валю обычными cd /aaa/bbb/ccc/ddd
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/


Return to Atari

Who is online

Users browsing this forum: No registered users and 0 guests

cron

x