EvoTools (ROM)

ZX evolution software and hardware

Postby deathsoft » 08 Oct 2010, 15:26

lvd wrote:оси на спецтруме брались писать многие. Большинство устраивали слифф.

Поэтому и надо не оси писать, а сделать набор функций работы с файлами.
User avatar
deathsoft
 
Posts: 358
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby deathsoft » 08 Oct 2010, 15:28

DimkaM wrote:У каждой проги, например по адресу #C000, должно быть выделено место(допустим 64байта) под нужды ОСи. куда будут сохранятся регистры(когда предаётся управление ОС), передаватся операнды командной строки(при вызове проги), а также передаватся путь(или хотябы номер первого кластера) откуда её запустили.

Всё это по мотивам МС-ДОС.

Вот это тот самый захардкоженый ахтунг которого и надо избежать, это ничем не отличается от системных переменных трдоса. Если адрес Ц000 занят - получаем сосание, собствено что и было при адаптации касетных программ к трдосу.
User avatar
deathsoft
 
Posts: 358
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby deathsoft » 08 Oct 2010, 15:28

TS-Labs wrote:Еще маленький hint на тему coding style: писать код, который работает из ПЗУ, т.е. ПОЛНОСТЬЮ исключить такой маразм, как self-modifying code.

Это само собой.
User avatar
deathsoft
 
Posts: 358
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby DimkaM » 08 Oct 2010, 15:29

Нужно раскрутить Савелия на драйвер НЕМОИДЕ, Z-SD он уже выкладывал, он у меня есть.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/
DimkaM
 
Posts: 1345
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby deathsoft » 08 Oct 2010, 15:29

Более того функции работы с файлами не должны использовать никакой памяти кроме тех областей что передано через регистры, ну и кроме стека.
User avatar
deathsoft
 
Posts: 358
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby DimkaM » 08 Oct 2010, 15:40

deathsoft wrote:Вот это тот самый захардкоженый ахтунг которого и надо избежать, это ничем не отличается от системных переменных трдоса. Если адрес Ц000 занят - получаем сосание, собствено что и было при адаптации касетных программ к трдосу.

Дык страниц памяти то много(кстати менеджер памяти тоже не помешает), щёлкнул на свободную и суйся в биос.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/
DimkaM
 
Posts: 1345
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby breeze » 08 Oct 2010, 15:48

deathsoft wrote:Приведу примерчик на Ц:


переведу примерчик на А:

Code: Select all
         ld hl,struct
         ld de,fileName
         call openFile      ;ROM

         ld hl,struct
         ld de,buf
         ld bc,100
         call readFile      ;ROM

         ld hl,struct
         call closeFile      ;ROM
   
    ret

fileName db "myfile.bin",0
buf      ds 100,0

struct   db ???


теперь самое интересное, что из себя должен представлять кусок struct ? какие данные тут должны быть? как я понимаю, здесь же должно быть указано и область в памяти для временного чтения, того же каталога и место для дискрипотора файла и собственно текущая позиция в этом файле (если мы частями читаем).
Last edited by breeze on 08 Oct 2010, 15:50, edited 1 time in total.
User avatar
breeze
 
Posts: 762
Joined: 07 Feb 2009, 17:19
Location: Оттуда
Group: Registered users

Postby DimkaM » 08 Oct 2010, 15:49

breeze wrote:#0003 - Инициализация устройтва (возможно) при первоночальном обращении к устройству его необходимо инициализировать (например закрыть лоток у cd-rom)

Давайте начнем с SD карты, с ней проще(монтировать всего один раздел).
Где будем хранить описание раздела? :
Количество секторов в кластере.
Тип файловой системы(или будем ориентироваться только на ФАТ32?).
Первый сектор с данными.
Байтов в секторе(или будем ориентироваться только на 512байт?).
Адрес первого сектора с таблицей кластеров.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/
DimkaM
 
Posts: 1345
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby deathsoft » 08 Oct 2010, 15:52

breeze wrote:struct ? какие данные тут должны быть?

Те данные которые использует процедура чтения, например текущее смещение в файле, номер файла на диске (начальный кластер) и т.п. (посмотри структуру FILE на Ц). Для того чтобы понять что в этой структуре еще нужно, надо сомтреть реализацию драйвера ФАТа, какие внутренние переменные он использует, например указатель на внутренний буфер для разбора фат цепочки и т.п.
User avatar
deathsoft
 
Posts: 358
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby breeze » 08 Oct 2010, 15:52

DimkaM wrote:Давайте начнем с SD карты, с ней проще(монтировать всего один раздел).


это без разницы, начинать можно хоть с TR-DOS :)

DimkaM wrote:Где будем хранить описание раздела? :


ты внимательно читаешь ? deathsoft же сказал, что где куда и зачем, все эти данные мы передаём в описателе (struct)
User avatar
breeze
 
Posts: 762
Joined: 07 Feb 2009, 17:19
Location: Оттуда
Group: Registered users

PreviousNext

Return to Пентева - софт и железо

Who is online

Users browsing this forum: No registered users and 4 guests

cron