Просмотр полной версии : Исходники TR-DOS для SjASMPlus
Начнем с TR-DOS 5.04T
Основано на книге "ПОЛHОЕ ОПИСАHИЕ + ПОЛHЫЙ ДИЗАССЕМБЛЕP ПЗУ TR-DOS 5.04T (5.03) ДЛЯ ПРОФЕССИОНАЛОВ, А ТАКЖЕ ДЛЯ ТЕХ, КТО ХОЧЕТ ИМИ СТАТЬ."
Автор книги: Федин Павел Юрьевич, 04.04.1996.
Перевод всех чисел в шестнадцатеричный формат, переформатирование: Spectre, 19.10.2005
Кодировка: CP-1251
Что сделано:
- Компилируемый исходник :)
- Исправлены все косяки в листинге
- Все точки входа в ПЗУ TR-DOS сделаны метками вида хАдр. (например x3D13, не спрашивайте почему не ll3D13)
- переформатирован листинг
- добавлено отображение адресов и кол-ва байт в незанятых участках ПЗУ средствами директивы DISPLAY
- Оставлены все комментарии автора исходной книги (на правильность не проверялись)
- Оставлены ошибки TR-DOS, в алгоритмах ничего не изменялось
- В архив включен проверочний ROM файл на который я ориентировался при правке исходника
Далее:
TR-DOS 6.11E (http://zx.pk.ru/showthread.php?p=260638#post260638)
TR-DOS 6.11P для компьютера ZXM-Phoenix (http://zx.pk.ru/showpost.php?p=270073&postcount=12)
А где книжку взять ? На http://trd.speccy.cz/ не нашел ...
-------------------
Извиняюсь , нашел.
Описание и полный дизассемблер ПЗУ TR-DOS 5.04T (http://trd.speccy.cz/book/TRDISASM.ZIP)
---------- Post added at 21:50 ---------- Previous post was at 21:48 ----------
Книга П.Ю.Федина "Полный дизассемблер ПЗУ TR-DOS 5.04T" в hex (http://zx.pk.ru/showthread.php?t=8094)
Кто-нибудь может помочь со сборкой TR-DOS под Phoenix? Интересует в первую очередь RAM диск... Пробовал заливать TR-DOS 6.10 - работает все кроме RAM-диска ))) Я так понял его нужно пересобрать с уакзанием портов расширения памяти Phoenix. Помогите плз кто-нибудь! У меня знаний хватает только на работу в HEX-редакторе ))).
Кто-нибудь может помочь со сборкой TR-DOS под Phoenix?
Все будет :) Просто я последнюю неделю был занят подтягиванием хвостов перед уходом в отпуск и наверно эту неделю тоже буду домучивать текущие дела, хотя и выделил все воскресенье на сборку Феникса.
Основано на книге "ПОЛHОЕ ОПИСАHИЕ + ПОЛHЫЙ ДИЗАССЕМБЛЕP ПЗУ TR-DOS 5.04T (5.03) ДЛЯ ПРОФЕССИОНАЛОВ, А ТАКЖЕ ДЛЯ ТЕХ, КТО ХОЧЕТ ИМИ СТАТЬ."
Автор книги: Федин Павел Юрьевич, 04.04.1996.
Перевод всех чисел в шестнадцатеричный формат, переформатирование: Spectre, 19.10.2005
Патчи до версии 6.11Е: 1999 CompoWellcome, 2006 Alone Coder
Кодировка: CP-1251
Что сделано:
- Компилируемый исходник :)
- Добавлен конфигуратор (файл configure.inc.asm)
Опции конфигуратора:
1. Опции из патчей TR-DOS до версии 6.11Е
DEFINE COMPILE_FOR_MADROM - Компилировать для работы с MadRom
DEFINE TEST_DRIVES - автотест дисководов, если отключено то дисководы 80DS
DEFINE DRIVE_NUM_FROM_CMOS - при сбросе брать номер дисковода из ячейки 0х10 CMOS
DEFINE COMPILE_FOR_ATM - Компилировать для работы на компьютерах АТМ, работа с расширенной памятью через порт 0xFFF7
2. Дополнительные опции
DEFINE BOOT_ON_CMD_8 - Запуск встроенного бута по команде 8
DEFINE RUN_BOOT_B_ON_DOS_START - Выполнять комманду RUN "BOOT.B" при входе в TR-DOS с адреса 0x0000
3. Размер рамдиска. ТОЛЬКО ОДНА СТРОКА ДОЛЖНА БЫТЬ РАСКОММЕНТИРОВАННА!!!
DEFINE RAM_DISK_SIZE_384K - 384К
DEFINE RAM_DISK_SIZE_512K - 512К
DEFINE RAM_DISK_SIZE_896K - 896К
Опции включаются/отключаются раскомментированием/комментированием соответствующей строки
Вложения:
TRDOS-6.11E.ZIP - собственно исходники TR-DOS 6.11E
patches.zip - исходники патчей, которые накладывались на TR-DOS 5.04T
testrom.zip - набор прошивок TR-DOS собранных в Аласме, использовались для проверки
VELESOFT
27.02.2010, 13:09
Good work !!!! :v2_yahoo:
Next typs for features:
- possibility compile TRDOS 6.11E for different ZX clones (with different paging ports support - ZX PROFI 1024, etc...)
- possibility use any ramdisc size:
(original TRD size 640kB, 512kB for using with software for Pentagon 512 on Pentagon 1024 with ramdisc, 768kB ramdisc for software using full 256kB kB ZX ram). Ideal is possibility set ramdisc size in tracks (1-160) = step 4 kB.
- possibility save SNAPshots to ramdisc drive (possibility mount ramdisc to drive A, no only D) :v2_thumb:
VELESOFT
28.02.2010, 02:21
Where can I find code for return from trdos ?
I need after enter to trdos (#3D13) set extra ports for my hardware and before return from trdos(cpu ad > #3fff) this ports reset.
Yet is possible change ramdisc drive to A,B,C and D. Also max.ramdisc size is limited to 640kB (as original TRD images), but after import any other image can be size bigger than 640kB...
Good work !!!!
Next typs for features:
- possibility compile TRDOS 6.11E for different ZX clones (with different paging ports support - ZX PROFI 1024, etc...)
- possibility use any ramdisc size:
(original TRD size 640kB, 512kB for using with software for Pentagon 512 on Pentagon 1024 with ramdisc, 768kB ramdisc for software using full 256kB kB ZX ram). Ideal is possibility set ramdisc size in tracks (1-160) = step 4 kB.
- possibility save SNAPshots to ramdisc drive (possibility mount ramdisc to drive A, no only D)
Hello! Thanks for feedback. I will notice it, but it is not first priority tasks :)
Where can I find code for return from trdos ?
I need after enter to trdos (#3D13) set extra ports for my hardware and before return from trdos(cpu ad > #3fff) this ports reset.
Are you still looking for answers or not? I can take a look tomorrow.
Yet is possible change ramdisc drive to A,B,C and D. Also max.ramdisc size is limited to 640kB (as original TRD images), but after import any other image can be size bigger than 640kB...
I am thinking about replacing ramdisk with mounting of trd images from fat...
VELESOFT
12.03.2010, 02:26
Are you still looking for answers or not? I can take a look tomorrow.
Yes
I am thinking about replacing ramdisk with mounting of trd images from fat...
I also need direct access to HDD. Source code for find special file (multi-trd file) on IDE device is complette (used from my old BIOS)....
I will support only switching TRD images on ramdisc drive. Selected TRD image will fast import to ramdisc.
Where can I find code for return from trdos ?
x2869 LD A,(HL) ;берем код команды
CP C ;он совпал с требуемым?
JR NZ,x287F ;если нет, то берем код следующей команды
POP AF ;восстановление AF
INC HL ;берем адрес, по которому находится адрес подпрограммы
LD E,(HL) ;берем адрес подпрограммы
INC HL
LD D,(HL)
LD HL,YOUR_EXTRA_CODE_ADDR
PUSH HL ;кладем его на стек
PUSH DE ;кладем на стек адрес подпрограммы
LD HL,(#5D02) ;восстановление HL и DE
LD DE,(#5D04)
RET ;переход к подпрограмме
x287F CP #FF ;достигнут конец таблицы?
JR NZ,x2887 ;если нет, то берем адрес номера следующей подпрограммы
POP AF ;снятие AF со стека (этого можно было не делать)
JP YOUR_EXTRA_CODE_ADDR
x2887 INC HL ;пропуск двух байтов адреса подпрограммы
INC HL
INC HL
JR x2869 ;повтор
;SOMEWHERE IN TRDOS FREE SPACE
YOUR_EXTRA_CODE_ADDR
DI ;Do what you need here...
HALT
JP x01D3
Основано на исходниках версии 6.11E
Что сделано:
- Компилируемый исходник :)
- Удален конфигуратор
- Отключена работа с резидентами
- Размер рам-диска 896Кб
По сравнению с версией 6.11Е эта версия компилируется со следующими настройками:
DEFINE RUN_BOOT_B_ON_DOS_START - Выполнять комманду RUN "BOOT.B" при входе в TR-DOS с адреса 0x0000
DEFINE RAM_DISK_SIZE_896K - 896К
Бут по команде 8 пришлось удалить т.к. WDC 1.3 не влазил бы в ПЗУ...
VELESOFT
06.04.2010, 21:20
- Размер рам-диска 896Кб
Why is supported too long ramdisc ? :v2_conf2:
Ideal ramdisc size is 648kB (82 tracks) for compatibility with original FDD format = possibility always use export/import image from/to fdd. If ramdisc is longer than 648kB then is unusable on real FDD and must be converted.. :v2_sick:
If PHOENIX contain 2048kB memory then best way is move ramdisc position to second 1MB memory and size can be up to 1024kB. First 1024kB of 2MB memory is often used by software. First 128kB must be always for ZX software, next 128kB is used in WILD PLAYER (detect and use extended memory). Next pages up to 512kB can be used for some GAMEs or assemblers (ALASM).
If ramdisc is in first 1MB memory then ideal memory layout is:
a) 128kB ZX ram, 384kB reserved (for software using extra memory up to 512kB), 512kB ramdisc. :v2_blink:
+ better compatibility with software for 512kB ram
- small ramdisc
b) 128kB ZX ram, 256kB reserved (for software using extra memory up to 384kB), 640kB ramdisc.
+ compatibility with software for 256kB ram (max. 384kB) :v2_wink2:
+ full ramdisc size compatible with original FDD image. :v2_thumb:
Why is supported too long ramdisc ?
RAM-DISK is not some kind of RAM space that should be formatted in some special way to be a RAM-DISK. Its logical structure is very simple:
1. It is organized like a stack, so "virtual track 0" will be placed in the RAM page with the highest number, there will be placed tracks 1,2,3 too. For example, in Pentagon 1024 we have 64 RAM pages, then track 0 of RAM-DISK will be placed in page 63.
2. As I mentioned before, RAM-DISK is not a "special" structure in RAM pages, it is simple mapping of TR-DOS disk structure in RAM, in other words it is a per-sector copy of TR-DOS disk. So, if you will import standart TR-DOS disk (640Kb) into RAM-DISK you won`t corrupt "lower" RAM pages that won`t be occupied by some RAM-DISK data. Also you can configure its size by changing "FREE SECTORS" param in sector 8 of track 0.
If PHOENIX contain 2048kB memory then best way is move ramdisc position to second 1MB memory and size can be up to 1024kB.
In my version of TR-DOS for ZXM-Phoenix RAM-DISK is always placed in second megabyte, even if there are no second megabyte of RAM :) But some bug(s) is(are) still there, that makes me angry... :( May be I had too long break in asm programming for speccy...
trдоs.ru освободился.
tr-dos.ru наверно правильней будет
VELESOFT
07.04.2010, 18:14
RAM-DISK is not some kind of RAM space that should be formatted in some special way to be a RAM-DISK. Its logical structure is very simple:
1. It is organized like a stack, so "virtual track 0" will be placed in the RAM page with the highest number, there will be placed tracks 1,2,3 too. For example, in Pentagon 1024 we have 64 RAM pages, then track 0 of RAM-DISK will be placed in page 63.
I know detailed structure or ramdisc/TRD file in ram. Some different TR-DOS versions use different position in memory. Only last versions of TR-DOS 6.0x support same layout:
TRD image is divided to 16kB pages and placed from last memory page 63. This is best way. But possibility use 896 kB ramdisc as default value is bad :v2_wacko: This ramdisc size is dangerous for data placed/loaded to high memory pages on software for Pentagon 256/512kB.....
2. As I mentioned before, RAM-DISK is not a "special" structure in RAM pages, it is simple mapping of TR-DOS disk structure in RAM, in other words it is a per-sector copy of TR-DOS disk. So, if you will import standart TR-DOS disk (640Kb) into RAM-DISK you won`t corrupt "lower" RAM pages that won`t be occupied by some RAM-DISK data. Also you can configure its size by changing "FREE SECTORS" param in sector 8 of track 0.
I know. I use PENTAGON 1024 without real FDD, only RAMDISC mapped to drive "A". Default size of ramdisc is 640kB. User can't rewrite pages 8-23. This can be used with ALASM, WILD PLAYER,...
In my version of TR-DOS for ZXM-Phoenix RAM-DISK is always placed in second megabyte, even if there are no second megabyte of RAM :) But some bug(s) is(are) still there, that makes me angry... :( May be I had too long break in asm programming for speccy...
Can you please write also version for ZX PROFI or other clones ? This is only different memory paging code.... :v2_wink2:
SoftFelix
04.12.2010, 11:22
Keeper, А можно всё-такИ попросить внести в исходник 6.11е на постоянной основе fix от VELESOFT'а?
Alex_NEMO
11.02.2011, 11:50
Keeper, подскажи, пожалуйста, как RAM-диск на С: переназначить, вместо D:? Хочу под КАЙ переделать...
Alex_NEMO, а чем тебя каевская родная не устраивает? :) Ведь с этой тырдосиной не будет работать ни переназначение рам-диска на другие буквы, ни Ресет-сервис каевский...
Alex_NEMO
11.02.2011, 11:57
Alex_NEMO, а чем тебя каевская родная не устраивает?
Просто поизголяться охота... :)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot