OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů

Zptky do minulosti!

Právě je 09.03.2021, 12:48

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 43 ]  Přejít na stránku Předchozí  1, 2, 3
Autor Zpráva
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 05.02.2021, 23:06 
Offline
Kecka

Registrován: 26.01.2019, 18:45
Příspěvky: 68
Bydliště: u Mělníka
Has thanked: 5 times
Been thanked: 193 times
omikron píše:
Myslíš, že by se to dalo poladit změnou parametrů?
Např. buffer v násobcích délky půlsnímku, nebo snížením sample rate na 22050?


Buffer jsem ladil docela dlouho a to, co je v kódu, se mi poslechově zdálo asi nejlepší. Nejmenší zpoždění a nejmíň chrčení a přeslechů.
Ladil jsem to ale ve Win10, možná na Linuxu by byly jiné parametry vhodnější.
Pokud jde o rychlost, tak to ladit není potřeba.
Rychlost emulátoru je stejná se zvukem i bez něj, to jen ta hra Housenka si náhodně volí obtížnost a někdy běží rychleji a někdy pomaleji.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 06.02.2021, 17:08 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 278
Has thanked: 17 times
Been thanked: 51 times
Kolik vlastně je softwéru pro IQ-151 ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 06.02.2021, 17:53 
Online
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1067
Bydliště: Most, Praha
Has thanked: 330 times
Been thanked: 289 times
Nemá hra přístup k reálným hodinám, že by si při startu detekovala rychlost procesoru a kvůli nerovnoměrnosti emulace si volila nesprávnou rychlost?

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 06.02.2021, 18:15 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 278
Has thanked: 17 times
Been thanked: 51 times
Panda38 píše:
Nemá hra přístup k reálným hodinám, že by si při startu detekovala rychlost procesoru a kvůli nerovnoměrnosti emulace si volila nesprávnou rychlost?

IQ nemá realtime clock.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 06.02.2021, 22:47 
Offline
Kecálek

Registrován: 26.11.2018, 16:59
Příspěvky: 139
Bydliště: Holešov
Has thanked: 3 times
Been thanked: 25 times
není důvod měřit rychlost, procesor běží pořád na svojich 2Mhz, přerušení 50Hz nebo 16kHz, spíš může být problém v brždění procesoru (přístup do Vram/Grafik) a na port Ex,


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 06.02.2021, 23:38 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 278
Has thanked: 17 times
Been thanked: 51 times
l00k píše:
není důvod měřit rychlost, procesor běží pořád na svojich 2Mhz, přerušení 50Hz nebo 16kHz, spíš může být problém v brždění procesoru (přístup do Vram/Grafik) a na port Ex,


Emulátor v současné době neemuluje Wait cykly při přístupu do Video RAM, jede to stejně rychle jako hlavní paměť.
Pouze se hlídá, aby se za televizní půlsnímek udělal správný počet cyklů. To je v proceduře ms20() https://github.com/omikron88/iq-151/blob/master/src/machine/Iq.java. Kdyžtak to po mně přepočítejte, jestli to mám dobře.
Procesor by měl být +- cycle accurate.
Engine teoreticky umí emulovat vkládání waitů, kdyby bylo potřeba, stačí dát do obsluhy příslušného portu, paměti clk.addTstates(n).
Umí i téměř libovolné mapování paměti, to se mi teď hodí u TNS, ten má hodně vymakanou obsluhu až 1MB paměti.
Nevýhodou je relativně velká náročnost na výkon hostitelského procesoru. Na Atomech to jede s odřenýma ušima.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 08.02.2021, 15:48 
Online
Pan Štábní

Registrován: 07.05.2014, 01:21
Příspěvky: 1828
Bydliště: Praha
Has thanked: 271 times
Been thanked: 393 times
Pokud pustím SD-ROM z monitoru (S3 -> 55 L) a mám video64 tak to zatuhne s černou obrazovkou. S video32 normálně funguje, z obou basiců taky.
Jestli to dělá i na reálném kompu nevím, video64 zatím nemám...

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 08.02.2021, 16:06 
Offline
Radil

Registrován: 06.03.2018, 16:00
Příspěvky: 413
Bydliště: Valtínov, Kunžak
Has thanked: 1 time
Been thanked: 124 times
Ano, s VIDEO64 to dělá. V obslužném programu (Manageru souborů) je chyba, autorovi jsem to reportoval - je tam mazání obrazovky pomoci PUSH DE a je jich moc za sebou, takže dojde k podtečení VideoRAM až do tabulky přerušení pro 8259 a tím to končí. Úpravu jsem provedl v přímo v HEX souboru _BLOADRE.BAS - vjednom řádku je 18x za sebou D5. Je potřeba 2x D5 (PUSH DE) nahradit 2x 00 (NOP) a příslušně opravit CRC na konci řádku. Pak to chodí v pohodě.

Petr

PS: řádek bude vypadat následobně:
Kód:
:5013200013EE2032E913C9F3210000393100F03A1F00112020D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D500003DC23513F9C93A1F00D615E6FE0F472A20003A1F005F160019581911EA13CD6913C9061D1AFE00C8FEB3

P.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 12.02.2021, 15:56 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 278
Has thanked: 17 times
Been thanked: 51 times
vanthomas píše:
Pokud pustím SD-ROM z monitoru (S3 -> 55 L) a mám video64 tak to zatuhne s černou obrazovkou. S video32 normálně funguje, z obou basiců taky.
Jestli to dělá i na reálném kompu nevím, video64 zatím nemám...

Mělo by to být opraveno plus vylepšení vzhledu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 05.03.2021, 14:56 
Online
Pan Štábní

Registrován: 07.05.2014, 01:21
Příspěvky: 1828
Bydliště: Praha
Has thanked: 271 times
Been thanked: 393 times
Jeden bugreport :)
V rámci blbnutí s 3D grafem jsem zkusil i IQ a tahle verze http://www.oldcomp.cz/download/file.php?id=11629 v emulátoru po nějaké době vytuhne. Jestli počítám dobře, tak 38 vnějších cyklů proběhne, pak to vytuhne někde ve vnitřním...
Na reálném IQ to funguje.
EDIT: opravený odkaz, původně sem tam hodil PMD verzi...

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Naposledy upravil vanthomas dne 05.03.2021, 17:19, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 05.03.2021, 16:28 
Offline
Radil

Registrován: 24.12.2014, 16:11
Příspěvky: 278
Has thanked: 17 times
Been thanked: 51 times
vanthomas píše:
Jeden bugreport :)
V rámci blbnutí s 3D grafem jsem zkusil i IQ a tahle verze http://www.oldcomp.cz/download/file.php?id=11632 v emulátoru po nějaké době vytuhne. Jestli počítám dobře, tak 38 vnějších cyklů proběhne, pak to vytuhne někde ve vnitřním...
Na reálném IQ to funguje.


no jo, ale čím by to mohlo být. Doufám, že není chyba v ROM Basicu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 05.03.2021, 16:42 
Online
Pan Štábní

Registrován: 07.05.2014, 01:21
Příspěvky: 1828
Bydliště: Praha
Has thanked: 271 times
Been thanked: 393 times
Neměla by být, jak píšu, na reálném stroji to normálně proběhne. Jak s romkovým Basicem, tak v DBasicu pod CP/M.

_________________
ZX80, ZX81, ZX Spectrum, ZX Spectrum +2, Didaktik M, PMD 85-1,2A,3, Olivetti Prodest PC 128, Acorn BBC Micro, PC-XT, Amiga 500


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Emulátory Čs počítačů v Javě
PříspěvekNapsal: 05.03.2021, 17:01 
Offline
Kecálek

Registrován: 26.11.2018, 16:59
Příspěvky: 139
Bydliště: Holešov
Has thanked: 3 times
Been thanked: 25 times
vyzkoušeno v jiném emulátoru a jede bez problémů:

Kód:
2000 CLS:ERASE
2010 LET A=155: LET K1=39
2020 LET W=75: LET K=0.65
2030 LET X0=128: LET Y0=83: LET BM=3.1415/180
2040 LET C=K*COS (W*BM): LET S=K*SIN (W*BM)
2050 LET DX=3: LET DY=5: LET AF=A/90
2060 DIM H(256)
2061 SCALE 0,256,0,192
2070 FOR I=1 TO 256: LET H(I)=-1000: NEXT I
2080 FOR G=-110 TO 110 STEP DY: LET Y=G*AF
2090 FOR M=-105 TO 105 STEP DX
2100 LET X=M*AF: GOSUB 2400
2110 LET XA=INT (X0+M+C*G+0.5): LET YA=INT (Y0+S*G+Z+0.5)
2130 IF M>-105 THEN GOTO 2170
2140 LET F1=0: LET I=INT (XA/DX)
2150 IF YA>=H(I+1) THEN LET F1=1: LET H(I+1)=YA
2160 LET X1=XA: LET Y1=YA: GOTO 2220
2170 LET F2=0: LET I=INT (XA/DX)
2180 IF YA>=H(I+1) THEN LET F2=1: LET H(I+1)=YA
2190 LET X2=XA: LET Y2=YA
2200 IF F1*F2=1 THEN DRAW X1,Y1,-2: DRAW X2,Y2,-1
2210 LET X1=X2: LET Y1=Y2: LET F1=F2
2220 NEXT M
2230 NEXT G
2250 STOP
2400 LET R=SQR(X*X+Y*Y)*BM
2410 LET Z=K1*(COS(R)-COS(3*R)/3+COS(5*R)/5-COS(7*R)/7)+24
2420 RETURN


Přílohy:
iqgr.JPG
iqgr.JPG [ 89.35 KiB | Zobrazeno 78 krát ]
Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 43 ]  Přejít na stránku Předchozí  1, 2, 3

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz