OldComp.cz
https://oldcomp.cz/

Kazetové loadery
https://oldcomp.cz/viewtopic.php?f=37&t=125
Stránka 44

Autor:  Busy [ 11.06.2021, 22:36 ]
Předmět příspěvku:  Re: Kazetové loadery

solaris104 píše:
Loader, při kterém hraje AY hudba :-)
O hudbe na AY pocas nahravania som tiez uvazoval. Niektore moje loadery bezia s povolenym prerusenim, takze technicky by to nebol problem. Ale napokon som so to nechal, hlavne z dovodu ze normalne ZX Spektra 128 mali EAR vystup voci AY prilis silny a malokto mal v tej dobe ACB stereo vystup bez primiesaneho EARu...

Autor:  omikron [ 11.06.2021, 22:46 ]
Předmět příspěvku:  Re: Kazetové loadery

A to nerozháže časování, když je EI?

Autor:  Busy [ 12.06.2021, 08:20 ]
Předmět příspěvku:  Re: Kazetové loadery

omikron píše:
A to nerozháže časování, když je EI?
To sice ano, ale zase na druhej strane load rutinka je do znacnej miery toleratna. Ked si pozries ako vyzera signal z kazetaku (t.j. kolko taktov maju jednotlive periody) a porovnas ho so signalom z ineho kazetaku (trosku ina rychlost, ina kolmost hlavy) tak tam budu dost brutalne rozdiely.

Autor:  PotPalo [ 12.06.2021, 14:06 ]
Předmět příspěvku:  Re: Kazetové loadery

A ono by to išlo aj bez prerušenia, stačilo by nejaké vlastné počítadlo, ktoré by spočítavalo čakacie časy (register B), teda ich dĺžky. A pri nejakej hodnote by bol odskok na jeden takt hudby a reset počítadla. Jednoduché.

S časovaním je to tak, že až také presné nieje, lebo jedena slučka čakacej rutiny je 59 taktov. Takže hrať sa tu na +/- 10 taktov je zbytočné.

EI: v prerušení by sa tiež mohli pripočítať do B registra hlavnej rutiny nejaké slučky, podľa dĺžky rutiny prerušenia, takže by sa čas zabratý prerušením automaticky kompenzoval. Inak AY je iba pár OUTov, ale spraviť takto klasickú 48K hudbu počas nahrávania, to by bolo. :mrgreen: Lenže na väčšine počítačov by sa bil výstup na reproduktor so vstupom z magnetofónu.

Autor:  omikron [ 12.06.2021, 14:30 ]
Předmět příspěvku:  Re: Kazetové loadery

S původním obvodem ULA nemožné, jelikož tam Ear, Mic a Speaker sdílí jediný pin.

Ale možná by šlo napsat 48K hudbu která téhle vlastnosti využívá. Různé kombinace bitů Mic a Spk dávají různá napětí.

To by mě zajímalo, jestli toho někdo využíval.

Autor:  PotPalo [ 12.06.2021, 15:04 ]
Předmět příspěvku:  Re: Kazetové loadery

Na Didaktiku M model 90 je každý výstup a vstup zvlášť, takže tam by to išlo. A aj som toho využíval, upravil som si rutinu aby okrem farby okraja mala aj výstup na reproduktor, takže som pekne z eMka počul čo sa nahráva.

Autor:  Busy [ 13.06.2021, 11:00 ]
Předmět příspěvku:  Re: Kazetové loadery

PotPalo píše:
A ono by to išlo aj bez prerušenia, stačilo by nejaké vlastné počítadlo, ktoré by spočítavalo čakacie časy (register B), teda ich dĺžky. A pri nejakej hodnote by bol odskok na jeden takt hudby a reset počítadla. Jednoduché.
To nie je zly napad.
PotPalo píše:
EI: v prerušení by sa tiež mohli pripočítať do B registra hlavnej rutiny nejaké slučky, podľa dĺžky rutiny prerušenia, takže by sa čas zabratý prerušením automaticky kompenzoval.
Takto by som to radsej nerobil, lebo hrana z kazetaku moze prist zrovna hned potom ako pride k preruseniu, a namiesto toho, aby load rutinka hned zareagovala, prerusenie bude "simulovat" ze hrana este dany pocet (zalezi od dlzky prerusenia) cyklov B pocitadla neprisla. To by uz mohlo sposobit problemy.

Ja som to riesil uplne primitivne. V preruseni mi bezi iba nejake co najkratsie nastavenie nejakeho flagu a load rutinka si tento flag testuje a ak zisti ze je nastaveny, namiesto cakania (alebo inych veci) urobi potrebne akcie. Ako flag zvyknem pouzivat register IY. Obsluha prerusenia potom vyzera takto:
Kód:
INC IY
EI
RET
A loader si podla hodnoty v IY testuje, ci nastalo prerusenie.

Autor:  PotPalo [ 13.06.2021, 16:55 ]
Předmět příspěvku:  Re: Kazetové loadery

A nebolo by jednoduchšie, keby obsluha prerušenia vyzerala takto?:
Kód:
RET

:D

Prerušenie iba zakáže prerušenie. Loader by potom kontroloval či je prerušenie povolené alebo nie (a teda nastalo):
Kód:
LD A,I
JP PE, prerušenie nebolo
EI
CALL music

Autor:  Busy [ 13.06.2021, 21:08 ]
Předmět příspěvku:  Re: Kazetové loadery

Ale ano, bolo :)

Akurat musis mat istotu, ze sa program na ten test dostane minimalne kazdych 20 ms, co pocas samotneho nahravania bajtov bloku samozrejme mas.

V niektorych mojich loaderoch mam hodinky realneho casu, chcel som preto mat istotu ze nepridem o ziadnu pedesiatinu ani pri chytani uvodneho tonu a celej rezie okolo volania samotneho loadera. Z toho dovodu som pouzil ako flag pocitadlo, pri ktorom viem, kolko pedesiatin mi popripade uslo pri spominanej rezii a viem garantovat "presny cas" na hodinkach.

Stránka 44 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/