Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Поиск (http://zx-pk.ru/forumdisplay.php?f=78)
-   -   ПК Поиск - Кассетный интерфейс (http://zx-pk.ru/showthread.php?t=21240)

Tronix 13th May 2013 20:25

Все, разобрался, это я глюкнул из-за того, что в поиске размер может быть не кратен 256, поэтому в условии выхода из цикла стояло "больше" общий размер деленный на 256. My bad. Все у MC-1502 в порядке с контр суммами.

---------- Post added at 19:25 ---------- Previous post was at 19:08 ----------

Обновил версию программы WAV2CAS до 1.2 . Доступна так же по старой ссылке с первой страницы.

+ Разобрались вроде с MC-1502. Теперь все сохраняет как положено.
+ По умолчанию отключил "интеллектуальный" алгоритм исправления ошибок CRC, а то реально тормозило даже на Core i7 местами -)) Добавлен ключ /fixcrc для его принудительного включения.
+ Поправил отображение информации о Wave файле и еще чего-то по мелочи.

SoftCat 13th May 2013 20:28

Tronix, имеет смысл записывать 17-байтный заголовок в отдельный файл.

Tronix 13th May 2013 20:54

Quote:

Originally Posted by SoftCat (Post 600751)
Tronix, имеет смысл записывать 17-байтный заголовок в отдельный файл.

Зачем? Всегда или принудительно по ключу?

SoftCat 13th May 2013 21:24

Quote:

Originally Posted by Tronix (Post 600762)
Зачем? Всегда или принудительно по ключу?

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

Tronix 13th May 2013 21:54

Quote:

Originally Posted by SoftCat (Post 600773)
Для дальнейшего иследования кассетных типов. Ещё не совсеми возможными кассетными типами файлов разобрались. Наверное, записывать лучше по ключу.

Щаз сделаем... Только наверное еще лучше не 17 байт, а весь блок 256 байт писать, как он на ленте есть. По результату отпишусь. А с какими типами файлов не разобрались?

---------- Post added at 20:54 ---------- Previous post was at 20:32 ----------

Добавил ключ, обновил программу. Брать по старым ссылкам.

SoftCat 13th May 2013 22:03

Quote:

Originally Posted by Tronix (Post 600777)
Щаз сделаем... Только наверное еще лучше не 17 байт, а весь блок 256 байт писать, как он на ленте есть. По результату отпишусь. А с какими типами файлов не разобрались?

---------- Post added at 20:54 ---------- Previous post was at 20:32 ----------

Добавил ключ, обновил программу. Брать по старым ссылкам.

Спасибо! Да, лучше весь блок 256 байт.
У МС1502, например, много всяких наворотов для кассетных EXE-файлов. Relocation Table там есть и код, который её настраивает. А примера, на котором можно проверить, у меня нет.

SoftCat 14th May 2013 02:07

1 Attachment(s)
Вот листинг BIOS'а МС1502. Точка входа в int 15h - F000:F859h - это loc_607.
http://files.mail.ru/6E00613769AA4754BA70F0E86C999697
Конечно, Sourcer поставил сегмент 872Bh вместо F000h потому, что я дизассемблировал BIOS МС1502 как BIN-файл.
В начале BIOS'а я сам поставил jmp loc_607, чтобы Sourcer не принял кассетные функции за данные.

SoftCat 14th May 2013 18:52

Tronix, я посмотрел функцию записи блока в МС1502. Если последний блок частично заполен (это возможно, например для .B-файлов Кассетного Бейсика), то этот блок заполняется до конца последним байтом файла. Но CRC вычисляется у всего блока, а не только у того куска, который принадлежит файлу.

---------- Post added at 17:52 ---------- Previous post was at 17:36 ----------

Довольно интересным способом проверяется CRC при чтении блока. Вычисляется CRC' у блока размером 258 байт (содержащего данные и not CRC). При отсутствии ошибки CRC, CRC' должно получиться равным 1D0Fh.

Tronix 14th May 2013 20:00

Quote:

Originally Posted by SoftCat (Post 601027)
Tronix, я посмотрел функцию записи блока в МС1502. Если последний блок частично заполен (это возможно, например для .B-файлов Кассетного Бейсика), то этот блок заполняется до конца последним байтом файла. Но CRC вычисляется у всего блока, а не только у того куска, который принадлежит файлу.

Это понятно, оно так же и у Поиска. С определением CRC блоков у меня никакой проблемы нет.
Quote:

Originally Posted by SoftCat (Post 601027)
Довольно интересным способом проверяется CRC при чтении блока. Вычисляется CRC' у блока размером 258 байт (содержащего данные и not CRC). При отсутствии ошибки CRC, CRC' должно получиться равным 1D0Fh.

Это тащемто без разницы, как они его проверяют. Каждый пишет как он может, видимо так было удобнее, или меньше проц грузило да мало-ли. Я лично к табличкам привык, например. Главное - что алгоритм известен -)

SoftCat 18th May 2013 16:49

Вот сам переписывал как-то давно содержимое программно доступных ПЗУ с Поиска под DOS'ом, переписал заодно и таблицу векторов прерываний с областями данных BIOS и DOS:

C000H.DAT - сегмент C000h, тут ничего нет;
D000H.DAT - сегмент D000h, тут сетевой монитор рабочего места и электронная почта;
E000H.DAT - сегмент E000h, тут какой-то код присутствует, есть сигнатуры AA55h, но нет текстовых строк;
F000H.DAT - сегмент F000h, тут основной BIOS;
INTVEC.DAT - первые 1792 байта сегмента 0000h, тут таблица векторов прерываний, области данных BIOS и DOS.

http://files.mail.ru/55224AA6330C4E6A97C0E25CA1ECFB71

---------- Post added at 15:49 ---------- Previous post was at 15:40 ----------

У Электроники МС1502 есть предшественник - Электроника ПК88. Вот по этой ссылке можно кое-что прочитать про неё и скачать содержимое ПЗУ BIOS и Basic:

http://fincoins.spb.ru/oldpc/pk88/pk88.html

DrPass 19th May 2013 00:22

E000:0h - ПЗУ адаптера дисковода
E200:0h - ПЗУ адаптера жесткого диска

shattered 19th May 2013 01:15

Quote:

Originally Posted by SoftCat (Post 601979)
У Электроники МС1502 есть предшественник - Электроника ПК88. Вот по этой ссылке можно кое-что прочитать про неё и скачать содержимое ПЗУ BIOS и Basic:

http://fincoins.spb.ru/oldpc/pk88/pk88.html

Что, еще один клон? :D Задолбаешься все это эмулировать... :D

Я набросал таблицу-список клонов PC, все нужно уточнять, конечно: http://ru.wikipedia.org/wiki/%D0%A3%...BE%D0%BD%D1%8B

SoftCat 19th May 2013 01:22

Quote:

Originally Posted by shattered (Post 602122)
Что, еще один клон? :D Задолбаешься все это эмулировать... :D

Да нет, я думаю, что ПК88 эмулировать не надо. Лучше сделать хорошую эмуляцию МС1502.

shattered 19th May 2013 01:57

Я думаю, что лучше купить землю и посадить там картошку, а от эмуляции ни холодно, ни жарко...

Tronix 25th May 2013 01:35

Да не, эмуляция как раз-таки нужна, но с сохранением полной оригинальной скорости Поиска, чтоб время выполнения команд, время записи в память и отрисовки CGA, чтения секторов с FDD и магнитной ленты полностью соответствовало оригиналу. Вот это была бы эмуляция.

То, что вы играетесь с MESS похвально, и даже оно выводит чего-то на экран, но с какой скоростью все это происходит - не ясно, ибо ничего в MESS не синхронизируется, начиная даже от тактов выполнения инструкций x86, я уж не говорю о записи или чтении в память. Поэтому получается некий сферический конь в вакууме - вроде бы Поиск, но в то же время работающий как хост на душу положит - на Core i7 побыстрее, на i PIII - помедленнее. Как говорил Станиславский - "не верю" (c).

Эх, ну почему же автор SovietPC не открывает исходники (( Я все понимаю, что изначально эмуль вообще для x86 не предназначался, что был рефакторинг кода, и тд и тп. Но блин, ведь его эмулятор (x86) используют-то постоянно по сути человек 10-20 наверно, остальным трилионам он не нужен, и они даже никогда не узнают о его существовании... Ну не хочешь чтоб кто-то сабмитил какие-то патчи - пожалуйста, майнтейнер сам себе бох и царь, но почему не выложить read only. :cry:

shattered 25th May 2013 13:09

Мой друг, пишите код сами, я вам не должен ничего.

---------- Post added at 12:09 ---------- Previous post was at 11:50 ----------

https://gist.github.com/shattered/5648339

SoftCat 26th May 2013 20:37

Quote:

Originally Posted by Tronix (Post 603949)
Эх, ну почему же автор SovietPC не открывает исходники ((

Кстати, сигналы вертикальной и горизонтальной синхронизации и много чего ещё CGA'шного гораздо лучше сделано в DOSBox'е, чем в SovietPC.

Mamont 22nd July 2013 18:58

CAS2WAV нихрена не работает, запускаешь появляется окощечко и тут же исчезает.
скопировал строку вставил то же самое, или я дурак или чего то недопонимаю, в спектруме програмку показали, скачал попробывал да работает, а тут не фига.
подскажите люди добрые где косяк мой зарыт?

DrPass 22nd July 2013 19:18

Quote:

Originally Posted by Mamont (Post 616605)
или я дурак или чего то недопонимаю

Ну, как минимум, не знаешь, что такое командная строка, и как из нее запускать программы :)

Mamont 22nd July 2013 20:59

знаю и пробывал оттуда, пишет фатал ерор:ерор опен кас файл.
хотя пишу как написано "cas2wav ispp.cas ispp.wav -n ISPP"

Mamont 23rd July 2013 09:04

Это у меня было на 7ке, сейчас утром попробывал на хр, то же самое фатал еррор, теперь уже и мыслей нет никаких, у кого на чем получалось?

Tronix 23rd July 2013 20:23

В архиве (APPS.ZIP) на файле ISPP.CAS стоит аттрибут 'Read only'. Нужно его снять, тогда все попрет.
PS: Правый клик мышой по файлу, свойства, снять галочку "Только для чтения"

Mamont 23rd July 2013 20:41

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

Tronix 23rd July 2013 23:57

Quote:

Originally Posted by Mamont (Post 616884)
Спасибо, я взял другой файл из архива, все получилось, вам надо в самом начале это написать чтобы другие сразу видели.
В конце названия файла на заглавными писать все или только первая а потом прописные?

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

DrPass 24th July 2013 01:31

Quote:

Originally Posted by Tronix (Post 616922)
Дык я сам в шоке, походу глюк виртуал паскаля, что он рид-онли не может открыть

Это скорее всего не глюк, а фича. Там наверняка есть какая-нибудь гадостная системная переменная типа FileMode, которая отвечает за режим открытия файлов по умолчанию, и она наверняка стоит в режиме "открывать в режиме чтения и записи". И с такими правами получает отлуп.

Tronix 24th July 2013 12:40

Quote:

Originally Posted by DrPass (Post 616948)
Это скорее всего не глюк, а фича. Там наверняка есть какая-нибудь гадостная системная переменная типа FileMode, которая отвечает за режим открытия файлов по умолчанию, и она наверняка стоит в режиме "открывать в режиме чтения и записи". И с такими правами получает отлуп.

В точку. Ну я просто не думал, что ВНЕЗАПНО будут кассетные файлы с рид-онли атрибутом... Ладно, мож когда-нить пофиксим...


All times are GMT +4. The time now is 04:55.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.