DMC

ZX evolution software and hardware

Postby deathsoft » 01 Sep 2011, 19:14

DimkaM wrote:И как ему сказать что компилю в ОЗУ, а не в ПЗУ, а то он шаманит чёйта с переменными.

Скрипт для линкера написать, и сегменты все объявлять как RSEG (релоцируемые), а конкретные адреса задавать в линк скрипте. ORG - не использовать вообще.

Линк скрипты типа такого:
Code: Select all
//-Fraw-binary
-Fintel-extended
-cZ80
-l my.map
-o test.hex
//-HFF
-xemisn
-w29=i // disable "initialized data warning"
-z
-Y0
-D?BANK_SWITCH_PORT_X_L08=7FFD
-b(CODE)CODE=C000,4000,10000,6
-Z(CODE)RCODE,CDATA0,CONST,CSTR,CCSTR,FARCODE=8000-BFFF
-Z(DATA)BNKTBL|8=8000-BFFF
-Z(DATA)DATA0,IDATA0,UDATA0,ECSTR,WCSTR,NEAR_I=8000-BFFF
-Z(DATA)NEAR_Z,NEAR_ID,INITTAB,TEMP=8000-BFFF


Ну и естественно надо свой стартап код написать на асме.


Батник для сборки выглядит примерно так:
Code: Select all
@echo off
"%IAR%\az80.exe" l08.a80
"%IAR%\az80.exe" -Dbanking=1 start.a80 -l start.lst
"%IAR%\az80.exe" putc.a80
"%IAR%\iccz80.exe" -mb -uu -q -P -K -I"%IAR%/../inc/" main.c -l main.lst
"%IAR%\iccz80.exe" -mb -uu -q -P -K -I"%IAR%/../inc/" unifft.c -l unifft.lst
"%IAR%\iccz80.exe" -mb -uu -q -P -K -I"%IAR%/../inc/" idct.c -l idct.lst
"%IAR%\iccz80.exe" -mb -uu -q -P -K -I"%IAR%/../inc/" md5.c -l md5.lst
"%IAR%\iccz80.exe" -mb -uu -q -P -K -I"%IAR%/../inc/" sha1.c -l sha1.lst
"%IAR%\iccz80.exe" -mb -uu -q -P -K -I"%IAR%/../inc/" aes.c -l aes.lst
"%IAR%\iccz80.exe" -mb -uu -q -P -K -I"%IAR%/../inc/" rc4.c -l rc4.lst
"%IAR%\xlink.exe" -f my.xcl start.r01 main.r01 md5.r01 unifft.r01 idct.r01 ^
    sha1.r01 aes.r01 rc4.r01 putc.r01 l08.r01 clz80b.r01

objcopy -I ihex -O binary -j.sec1 test.hex test_code.bin
objcopy -I ihex -O binary -j.sec2 test.hex test_data.bin

setlocal enabledelayedexpansion
for /L %%i in (0,1,5) do (
    SET /a SEC_NO=%%i + 3
    objcopy -I ihex -O binary -j.sec!SEC_NO! test.hex test_bank%%i.bin
)
setlocal disabledelayedexpansion

for /L %%i in (0,1,5) do (
    for %%j in (test_bank%%i.bin) do (
        SET BANK%%i_SIZE=%%~zj
    )
)

"%IAR%\az80.exe" -DBANK0_SIZE=%BANK0_SIZE% ^
    -DBANK1_SIZE=%BANK1_SIZE% -DBANK2_SIZE=%BANK2_SIZE% ^
    -DBANK3_SIZE=%BANK3_SIZE% -DBANK4_SIZE=%BANK4_SIZE% ^
    -DBANK5_SIZE=%BANK5_SIZE% ldr.a80 -l ldr.lst
"%IAR%\xlink.exe" -f ldr.xcl ldr.r01
"%IAR%\xlink.exe" -f prg.xcl

for %%i in (ldr.bin) do SET LDR_SIZE=%%~zi
"%IAR%\az80.exe" -DLDR_SIZE=%LDR_SIZE% scl.a80
"%IAR%\xlink.exe" -f scl.xcl scl.r01


На выходе получается готовый scl файл для эмулятора.
User avatar
deathsoft
 
Posts: 358
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby DimkaM » 02 Sep 2011, 06:45

deathsoft wrote:Линк скрипты типа такого:....Батник для сборки выглядит примерно так:....
%)
Нда...у меня даже не получилось осмыслить эти скрипты.Надо pdf'ки поизучать.
Наверно попробую lst в Сясм запихать, и если сильных изменений не будет, то останусь на z88dk.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 02 Sep 2011, 15:09

TS-Labs wrote:Там пдфки очень уебищные. Лучше поизучай десофтовы скрипты ))
Так и делаю, изучаю скрипты по пдфкам.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 04 Sep 2011, 08:34

DimkaM wrote: ...если сильных изменений не будет...
Довольно серьёзная разница получается. z88dk - 23КБ скомпилил, ИАР - 17КБ.(без учёта драйверов Савелия)
Надо ещё правильность проверить, а то у z88dk проблемы были с приведением типов. Ковыряться приходилось в мониторе.

Ещёб какнить на килобайт ужать, чтоб в страницу упихать. Ни у кого нету мануала по оптимизации кода? в ИАРе уже выставил оптимизацию сайза=9. В fatfs очень много переменных статиком объявляются, может ну его нафиг, пускай на стеке создаёт?!
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby breeze » 04 Sep 2011, 10:35

DimkaM wrote:Ещёб какнить на килобайт ужать, чтоб в страницу упихать.


Пиши на асме сразу :) тогда и оптимизировать ничего не надо будет XD
User avatar
breeze
 
Posts: 764
Joined: 07 Feb 2009, 17:19
Location: Оттуда
Group: Registered users

Postby DimkaM » 04 Sep 2011, 11:05

breeze wrote:Пиши на асме сразу тогда и оптимизировать ничего не надо будет XD
Уже написано на Си, причём не мной. А у меня ума не хватит такой объём на Асме переписать.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 05 Sep 2011, 07:15

TS-Labs wrote:А ты код ВЕСЬ просмотрел? Таки совсем уж нечего выкинуть?
Честно говоря - нет. Вчера вечером вспомнил, что фатфс не юзает string.h, а юзает собственные мемсет-мемсру-и т.п.. А они компилятся просто ужасно(в z88dk я их тоже правил на библиотечные).
В общем уже вроде влазиет в 16к. Можно ещё кой-чего повырезать - фатфс понимает в путях и "\" и "/", думаю оставить только "/" и высвободить ещё несколько десятков байт под драйвер CRT. Но диско-драйвера пока всё равно не влазиют. Можно конечно повыкидывать проверки от дураков, но это чревато.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 22 Sep 2011, 09:51

Туго что то мне IAR поддался. В z88dk можно было хоть саппорт помучать, а здесь только две пдфки и унриловский монитор. Задолбался дрова на асме подключать.
Зато ИАР без косяков всё скомпилил.
Упихал FatFs в 15,5 килобайт, вместе с дровами NEMO,ZSD и RTC.
Несколько функций фатфс проверил, вроде функциклируют.

Можноли ожидать TextModeEvo или со старым ковыряться?
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 22 Sep 2011, 17:59

TS-Labs wrote:Мои проздравления! =)

Спасибо.
Честно говоря, я до фатфс с С дело не и имел, все С-шарпом обходился.
Думал примерно одно и тоже, а оказалось две большие разницы. Справочник Шилдта очень помог, толковая книжка.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 24 Sep 2011, 16:21

Где бы дёрнуть толковый драйвер опроса клавы, чтоб на rst38 подвесить?
Пока юзаю выдернутый из бейсика, но что то мне кажется тяжеловатый он, и с русскими буквами проблема.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

PreviousNext

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

Who is online

Users browsing this forum: Google [Bot] and 1 guest

cron