Speccy - наш выбор!  
ZXPRESS
ZXTUNES
Virtual TR-DOS
World of Spectrum
ZX Spectrum Old Demos •

Go Back   Speccy - наш выбор! > Отечественные компьютеры > Специалист

Reply
 
Thread Tools Display Modes
Old 1st March 2013, 21:39   #1
Veteran
 
Join Date: 1st December 2010
Location: Архангельск
Posts: 1,597
Thanks: 512
Thanked 1,173 Times in 556 Posts
vinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud of
Default

А почему бы не вынести сам коммандер на флешку или SD. Тогда не придется перепрошивать ПЗУ, при обновлении. А в ПЗУ будет лишь загрузчик.

Еще бы я предложил сделать в этом ПЗУ несколько стандартных точек входа. Типа загрузка файла в память, загрузка содержимого каталога в память.

Тогда бы можно было менять аппаратную часть при неизменном коммандере.
vinxru is offline   Reply With Quote
The Following User Says Thank You to vinxru For This Useful Post:
perestoronin (1st March 2013)
Old 1st March 2013, 22:02   #2
Guru
 
fifan's Avatar
 
Join Date: 30th May 2007
Location: г. Лянтор, Сургутского р-на, ХМАО
Posts: 2,175
Thanks: 452
Thanked 468 Times in 367 Posts
fifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of light
Default

Quote:
Originally Posted by vinxru View Post
Еще бы я предложил сделать в этом ПЗУ несколько стандартных точек входа.
Я тоже за. Какие подпрограммы будем садить в ПЗУ?
__________________
http://nick-name.ru/forum/Fifan.gif
Сайт про ПК "Специалист" и его клоны http://www.spetsialist-mx.ru/
Web site about computer Spetsialist and its clones http://www.spetsialist-mx.ru/ (yet only in Russian)
fifan is offline   Reply With Quote
Old 1st March 2013, 22:33   #3
Veteran
 
Join Date: 1st December 2010
Location: Архангельск
Posts: 1,597
Thanks: 512
Thanked 1,173 Times in 556 Posts
vinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud of
Default

D800 - Загрузка коммандера и передача ему управления. В A возвращается код ошибки.

D803 - Загрузка файла указанного в HL и передача ему управления. В A возвращается код ошибки.

D806 - Загрузка файла указанного в HL в память по адресу DE. Если BC не равен нулю, то размер файла должен быть равен BC. В A возвращается код ошибки.

D809 - Получение первого из списка файлов папки HL в память по адресу DE. (Формат надо придумать.) В A возвращается код ошибки.

D80С - Получение следующих файлов в память по адресу DE. (Формат надо придумать.) В A возвращается код ошибки.

D80F - Получение свободного места на флешка. На входе A - буква диска. В A возвращается код ошибки.


Потом еще будут нужны функции сохранения файла, переименования файла, удаления файла, создания папки.

И совсем круто было бы продумать работу с файлами. open, read, write, seek, close. Но это сложно и не нужно наверное пока. Но предусмотреть под них резерв стоит.

---------- Post added at 20:33 ---------- Previous post was at 20:30 ----------

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

Last edited by vinxru; 1st March 2013 at 22:36.
vinxru is offline   Reply With Quote
Old 1st March 2013, 22:51   #4
Veteran
 
HardWareMan's Avatar
 
Join Date: 26th February 2011
Location: Павлодар
Posts: 1,182
Thanks: 176
Thanked 436 Times in 269 Posts
HardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really nice
Default

Лично я считаю, что должно быть 3 уровня подпрограмм. Как и в любом другом месте.

Уровень 1, самый низкий. Здесь работа с железом: клавиатура, экран, низкоуровневый сервис, работа с картой на уровне считать/писать сектор. По сути - это таблица вызовов BIOS (в нашей аналогии - загрузчика ПСПЗУ).

Уровень 2, средний. Здесь работа с логическими единицами ресурсов, как то работа с памятью, сюда же надо абстрагировать работу с FS на всех дисках.

Уровень 3, верхний. Здесь, собственно, прикладной сервис. По сути - это сервис DOS.

По этому плану я сейчас пилю поддержку карты для Специалиста МХ2, и сейчас я на стадии поддержки записи на SD. Как только это закончу, я тут же напишу утилиту загрузки файлов с кассеты и буду цифровать все кассеты сразу на карту (возможно получится в автоматическом режиме даже).
HardWareMan is offline   Reply With Quote
Old 1st March 2013, 23:09   #5
Veteran
 
Join Date: 1st December 2010
Location: Архангельск
Posts: 1,597
Thanks: 512
Thanked 1,173 Times in 556 Posts
vinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud ofvinxru has much to be proud of
Default

Я предлагаю зашить в ПЗУ работу с файловой системой. Ну и функции на уровне секторов то же будут, но особо и не нужна.

У тебя на флешке используется собственная файловая система. Простая, понятная.

У кого то будет FAT (большой и сложный), у кого то TRDOS, у кого то CP/M. А может кто то напишет сетевой драйвер, тогда работа с секторами будет невозможна. Типа меня.

Если ФС разместить в BIOS, то любая программа сможет использовать максимально ОЗУ. В ОЗУ не будет ядра операционной системы. И при этом загружать файлы в память.

---------- Post added at 21:05 ---------- Previous post was at 21:05 ----------

Клавиатура, экран поддерживаются оригинальным биосом.

---------- Post added at 21:09 ---------- Previous post was at 21:05 ----------

Что бы сохранить гибкость, нужно предусмотреть загрузку расширений файловых систем.

Сразу после запуска BIOS будет поддерживать только флешку. Но можно загрузить драйвер любого устройства и он будет доступен через вызовы BIOS.

---------- Post added at 21:09 ---------- Previous post was at 21:09 ----------

То есть предусмотреть функцию ПОДКЛЮЧИТЬ ДИСК.

UPD: Еще изменение атрибутов.

Last edited by vinxru; 3rd March 2013 at 15:58.
vinxru is offline   Reply With Quote
Old 1st March 2013, 23:17   #6
Veteran
 
HardWareMan's Avatar
 
Join Date: 26th February 2011
Location: Павлодар
Posts: 1,182
Thanks: 176
Thanked 436 Times in 269 Posts
HardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really nice
Default

Quote:
Originally Posted by vinxru View Post
У тебя на флешке используется собственная файловая система. Простая, понятная.
Кто сказал? Ты путаешь с FLASH ROM диском. а я говорю за SD. Там у меня vFAT. Иначе нет смысла. Ее предназначение - обмен данными с ПЦ в первую очередь.
HardWareMan is offline   Reply With Quote
Old 3rd March 2013, 00:31   #7
Moderator
 
Error404's Avatar
 
Join Date: 14th August 2006
Location: Владимир
Posts: 2,458
Thanks: 203
Thanked 612 Times in 469 Posts
Error404 is a splendid one to beholdError404 is a splendid one to beholdError404 is a splendid one to beholdError404 is a splendid one to beholdError404 is a splendid one to beholdError404 is a splendid one to beholdError404 is a splendid one to behold
Default

Quote:
Originally Posted by vinxru View Post
Я предлагаю зашить в ПЗУ работу с файловой системой. Ну и функции на уровне секторов то же будут, но особо и не нужна.
...
У кого то будет FAT (большой и сложный), у кого то TRDOS, у кого то CP/M. А может кто то напишет сетевой драйвер, тогда работа с секторами будет невозможна. Типа меня.
Только не забудьте векторизировать ПЗУ-шные подпрограммы через табличку адресов подпрограмм, размещаемую в ОЗУ (по дефолту смотрящие в Монитор). Чтобы для замены драйвера не надо было непременно перешивать ПЗУ, а можно было решить подгружаемым в ОЗУ модулем, который изменяя этот фрагмент просто переключит на себя подпрограммы. А еще лучше предусмотреть многостраничные вектора (номер_страницы+адрес), чтобы дравера можно было размещать не в основной странице ОЗУ (в основной программам пользователя и так тесно).
__________________
Лучше сделать и жалеть, чем не сделать и жалеть.
Error404 is offline   Reply With Quote
Old 3rd March 2013, 08:41   #8
Guru
 
fifan's Avatar
 
Join Date: 30th May 2007
Location: г. Лянтор, Сургутского р-на, ХМАО
Posts: 2,175
Thanks: 452
Thanked 468 Times in 367 Posts
fifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of lightfifan is a glorious beacon of light
Default

Вы пока выясняете я сделал работу с SD картой в браузере. Почему-то не работает запуск загруженных файлов. Идея такая. Сначала я инициализирую SD карту и контроллер. Потом считываю в каталог все RKS файлы (пока их два). Вывожу каталог. Потом выбираю файл для запуска. Теперь нужно представить формат RKS файла:
1. Два байта - адрес запуска он же и начальный;
2. Два байта - конечный адрес;
3. Тело файла размером (конечный адрес-начальный адрес);
4. Контрольная сумма.
По моей специфике я сначала любой найденный файл гружу с нулевого адреса ОЗУ. Потом выясняю по начальному адресу куда нужно переместить блок кода. Считывание блока кода с SD карты работает, а вот потом программа отказывается перемещаться куда ей надо и запускаться (подпрограмма CalcStartEnd считывает последовательно четыре байта и размещает их соответственно в E,D,C и B; в Size находится размер блока):
Quote:
RKSRun1 ld hl, #0000
call CalcStartEnd ; [DE] - начальный адрес, [BC] - конечный адрес
ld hl, (Size)
ld b, h
ld c, l
ex de, hl
ld (Start), hl
ex de, hl
ld hl, #0004 ; начало блока данных
RKSRun2 ld a, (hl)
ld (de), a ; перенос байта
dec bc
jp nz, RKSRun3 ; переход, если ещё не последний адрес
ld hl, (Start) ; стартовый адрес
jp (hl) ; запуск программы

RKSRun3 inc de
inc hl ; инкремент адресов
jp RKSRun2 ; цикл переноса
Attached Thumbnails
Click image for larger version

Name:	SSB104.png
Views:	58
Size:	8.1 KB
ID:	40204  
Attached Files
File Type: rar ssb1.RAR (55.6 KB, 35 views)
__________________
http://nick-name.ru/forum/Fifan.gif
Сайт про ПК "Специалист" и его клоны http://www.spetsialist-mx.ru/
Web site about computer Spetsialist and its clones http://www.spetsialist-mx.ru/ (yet only in Russian)
fifan is offline   Reply With Quote
Old 3rd March 2013, 15:21   #9
Guru
 
Join Date: 24th January 2008
Location: Уфа
Posts: 2,529
Thanks: 174
Thanked 677 Times in 482 Posts
b2m is a splendid one to beholdb2m is a splendid one to beholdb2m is a splendid one to beholdb2m is a splendid one to beholdb2m is a splendid one to beholdb2m is a splendid one to beholdb2m is a splendid one to behold
Default

dec bc (т.е. DCX B) не устанавливает флагов. Видимо флаг Z уже после CalcStartEnd установлен был.

---------- Post added at 15:21 ---------- Previous post was at 15:10 ----------

Кстати, если области копирования будут пересекаться (а они наверняка будут пересекаться), то нужно учитывать, куда производится копирование: вверх или вниз. Если вниз, то надо с конца копировать, а если вверх, то сначала, как у тебя. Т.о. у тебя будут работать только те программы, которые работают с нуля, или с адреса, превышающего размер программы.
__________________
http://bashkiria-2m.narod.ru/
b2m is offline   Reply With Quote
Old 3rd March 2013, 16:40   #10
Veteran
 
HardWareMan's Avatar
 
Join Date: 26th February 2011
Location: Павлодар
Posts: 1,182
Thanks: 176
Thanked 436 Times in 269 Posts
HardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really niceHardWareMan is just really nice
Default

Quote:
Originally Posted by b2m View Post
dec bc (т.е. DCX B) не устанавливает флагов. Видимо флаг Z уже после CalcStartEnd установлен был
Когда счетчик - регистровая пара, нужно жертвовать аккумулятором. В его случае придется делать так:
DCX B
MOV A,B
ORA C
JNZ LOOP
HardWareMan is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 06:34.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Map Яндекс.Метрика