Page 1 of 2

Дока по иар Ц z80

PostPosted: 02 Mar 2011, 20:53
by deathsoft
OCR с ошибками.

Re: Дока по иар Ц z80

PostPosted: 25 Dec 2011, 14:18
by DimkaM
фенкс.
Плохо что раньше сабжа тут не заметил.

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 10:54
by DimkaM
del Как в ИАРе сделать хитрый макрос?
незнаю как объяснить.
допустим есть в проге вот такой вызов:
Code: Select all
if (disk_read(fs->drv, fs->win, sector,1) != RES_OK)
   return FR_DISK_ERR;
Мне его ручками приходится изменять на такое:
Code: Select all
SET_DIO_PAR(fs->drv, fs->win, sector,1);
if (disk_read() != RES_OK)
   return FR_DISK_ERR;
так как в ассемблерной вставке тяжело такую кучу параметров юзать, приходится юзать статичную структуру. SET_DIO_PAR это макрос который заполняет структуру:
Code: Select all
//Parameters for disk_read and disk_write
typedef struct {
   BYTE  drv;
   const BYTE* buf;
   DWORD* sec;
   BYTE  num;
} DIO_PAR;
extern DIO_PAR dio_par;
#define SET_DIO_PAR(dr_drv,dr_buf,dr_sec,dr_num) {\
  dio_par.drv=dr_drv; \
  dio_par.buf=dr_buf; \
  dio_par.sec=&dr_sec; \
  dio_par.num=dr_num;}

И у меня не получается сделать макрос который бы заполнял структуру, вызавал дискодрайвер и возвращал от него результат.
В Сях я непонимаю, ткните носом в мануал по макросам плиз, а то фатфс периодически обновляется и руками неохота патчить.
Изначально была промежуточная функция, но в странице не хватало места под драйвер NeoGS-SD

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 11:20
by fk0
Дурость, дурость и ещё раз дурость. Нет проблем с ассемблером и параметрами, по крайней мере в hitech C. А статические переменные кончаются аццким гоновкодом и бесконечными глюками.

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 11:56
by DimkaM
del
fk0 wrote:Дурость, дурость и ещё раз дурость. Нет проблем с ассемблером и параметрами,

Проблем нету, но тогда вообще ни один драйвер в страницу с фатфс не лезет, экономия ощутимая. Тама таких вызовов штук тридцать, через регистры максимум два ворда передаётся, всё остальное через стек.
fk0 wrote:А статические переменные кончаются аццким гоновкодом и бесконечными глюками.
И опять же аццкой экономией.
Про макросы лучше расскажи чёнить.

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 12:09
by deathsoft
DimkaM wrote:Как в ИАРе сделать хитрый макрос?

Заведи отдельную тему, а эта тема с докой по иару а не с обсуждением программирования на нем.
Юзать надо естественно структуру на стеке с адресацией через IX, IY. В программу на асме передавать адрес этой структуры.

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 12:31
by jdigreze
fk0 wrote:Нет проблем с ассемблером и параметрами, по крайней мере в hitech C
В SDCC тоже не замечал.
DimkaM wrote:но тогда вообще ни один драйвер в страницу с фатфс не лезет, экономия ощутимая
Мож код фатфс неоптимален? Голый асм для фат16 не более 4Кб, для Си думаю будет не больше 8Кб. Фат32 по сути только оперирует в двое большими операндами, не думаю что код будет сильно раздутее фат16. Буфера нормально в 2Кб уложить.

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 13:51
by fk0
DimkaM wrote:Проблем нету, но тогда вообще ни один драйвер в страницу с фатфс не лезет, экономия ощутимая. Тама таких вызовов штук тридцать, через регистры максимум два ворда передаётся, всё остальное через стек.


А почему именно через стек -- ты никогда не задумывался? Ну конечно, Керниган и Дейкстра -- круглые идиоты, оссемблира не знают.

А статические переменные кончаются аццким гоновкодом и бесконечными глюками.

И опять же аццкой экономией.


Аж цельных 200 байт. Обосраться! Тему можно закрывать.

Про макросы лучше расскажи чёнить.


Я из твоей писанины ничего не понял. Научись на русском языке выражать мысли. Ассемблер не актуален.

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 13:53
by fk0
deathsoft wrote:Юзать надо естественно структуру на стеке с адресацией через IX, IY. В программу на асме передавать адрес этой структуры.


У него после выполнения пролога функции то ли в IX, то ли в IY так называемый frame pointer хранится, относительно которого прекрасно адресуются все переданные в функцию аргументы...

Re: Дока по иар Ц z80

PostPosted: 08 Jan 2012, 13:57
by нолька
требую удалить профессионалов из топика :1tooth: