Stránka 2 z 4

Napsal: 06 srp 2016, 15:02
od frpr666
Tady už je něco podobného hotovo i s baterkou a s displejem. Ale není to Z80.
https://tinycircuits.com/products/tinyscreenplus

Napsal: 06 srp 2016, 15:22
od lesana87
Já na tom nic podobného nevidím, ale to je jedno.

Napsal: 06 srp 2016, 16:17
od lesana87
Nečekám žádnou 100% podporu nějaké komunity. Jen jsem položila jeden dotaz, jak něco zaonačit v C + asm.

Napsal: 06 srp 2016, 17:12
od berk
Mě se ten projekt moc líbí. Mysím že smysl má - minimálně edukativní. Časem z toho může být i praktická záležitost - jsou lidé a celé komunity kde se staví repliky starých počítačů s různými vylepšeními.

Viz např http://www.8bity.cz/

Bohužel myslím, že offset ve struktuře v symbolické proměnné asi nezískáš a budeš muset nahardkódit.

Máš někde stránky projektu?

Napsal: 06 srp 2016, 18:54
od lesana87
Nemám.

Napsal: 06 srp 2016, 19:56
od berk
Ok. Až to bude v nějaké fázi, kdy s tím budeš chtít ven, tak dej vědět.

Napsal: 07 srp 2016, 09:49
od lesana87
Až s tím budu chtít ven, tak si to vezmu na zahradu. Ale lepší bude to nepřenášet, aby mi neupadl nějaký drátek, blbě se to pak hledá.

Napsal: 07 srp 2016, 10:21
od berk
To je tak, když se to dělá v assembleru - pak to není přenosný ;-)

Napsal: 07 srp 2016, 10:52
od berk
Ještě koukám jak to řeší v tom FUZIXu a tam to mají přes rutiny v s souborech

https://github.com/EtchedPixels/FUZIX/b ... evel-z80.s

Parametry si pak předávájí nějak takto

http://fivedots.coe.psu.ac.th/~cj/masd/ ... oc-21.html

Napsal: 07 srp 2016, 11:45
od lesana87
Jestli je to jako inline nebo v samostatným souboru je celkem jedno, prochází to nakonec stejným assemblerem. V inline se dá aspoň použít ten #define ..., oddělený soubor ho nevidí. Stejně tam nikde nevidím, že by dokázali do toho assembleru dostat offset položky ve struktuře z C, ale po pravdě se v tom moc nevyznám. :oops:

Jinak to předávání parametrů v uvedeném odkazu je pro 8051, pro Z80 se parametry předávají přes zásobník. Pouze pokud se funkce, mající jen jeden parametr, označí __z88dk_fastcall, předá se parametr v registrech (DEH)L stejně jako se předává návratová hodnota. Ale nefunguje to vždy, mají v tom SDCC bug, pokud má funkce lokální proměnné, tak si ten předávaný parametr v HL přepíšou při vytváření rámce v zásobníku. Pro funkce celé napsané v assembleru to ale použít jde a používám to, funkci to docela zkrátí a zrychlí. Nicméně to neřeší problém z úvodu tohoto vlákna.

Napsal: 07 srp 2016, 13:22
od berk
No já myslím, že v tom projektu FUZIXu je příkladů volání pro Z80 celá řada. Záleží jen na tobě jestli to tak chceš dělat nebo ne.

K té otázce z úvodu - pokud chceš offset v symbolické proměnné, tak to bohužel neporadím.

Napsal: 07 srp 2016, 19:41
od lesana87
Nevím, co myslíš těmi příklady volání a jak to souvisí s mým dotazem.

Napsal: 08 srp 2016, 10:25
od berk
Pokud nesouvisí, tak jsem asi něco špatně pochopil. Pusť to z hlavy.

Napsal: 08 srp 2016, 22:41
od Zmije

Napsal: 09 srp 2016, 19:06
od lesana87
Dík, ale to

Kód: Vybrat vše

#define _ASMDEFINE(sym, val) asm volatile \
("\n-> " #sym " %0 \n" : : "i" (val))

v SDCC prostě nedám, SDCC neumí inline assembler s parametrama a bez toho celá ta finta nefunguje. :(