OldComp.cz

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


Právě je 28.03.2024, 17:42

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 35 ]  Přejít na stránku Předchozí  1, 2, 3  Další
Autor Zpráva
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 11.11.2019, 21:47 
Online
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
Czech Human píše:
Ten basic není tak marný, "připojit" dva joysticky mi trvalo asi čtvrt hodiny... Použito je vždy spodních 5 bitů. Bit 0 dolů, 1 nahoru, 2 doprava, 3 doleva a 4 akce. Není to sice ještě hýbání políčka ve hře jeden háč po druhém, ale funguje to :-). Už jen vyřešit přiřazení ovladač - hráč a ignoraci toho druhého během tahu prvního a bude vstup úspěšně vyřešený. Dokud pak nezačnu plakat že to celé běží pooomaaaluuuu :lol:

Citace:
0 REM 2 Joysticky na PMD 85 - 3
10 GCLEAR
100 CONTROL 4,3;155: REM =9BH : REM Nastaveni 8255A
110 PC=STATUS 4,1 : REM GPIO 1
150 PRINT AT 5,1;BIT PC,4
160 PRINT AT 6,1;BIT PC,3
170 PRINT AT 7,1; BIT PC,2
180 PRINT AT 8,1; BIT PC,1
190 PRINT AT 9,1; BIT PC,0
210 DC=STATUS 4,0 : REM GPIO 0
230 PRINT AT 11,1; BIT DC,4
240 PRINT AT 12,1; BIT DC,3
250 PRINT AT 13,1;BIT DC,2
260 PRINT AT 14,1; BIT DC,1
270 PRINT AT 15,1; BIT DC,0
280 GOTO 110
Tak som vďaka tomuto kúsku programu zistil, že je v Emulátore chyba v emulácii Joysticku aj PIO. A teda tento program funguje len kvôli tej chybe.

Ide o to, že inicializačná hodnota 155 nastaví všetky porty PA, PB aj PC na vstup. V prípade PA a PB je to v poriadku, keďže chceme čítať stav Joysticku.
Avšak, tým, že je aj PC nastavený na vstup, bity PC0 a PC4, ktoré sú v prípade pripojeného Joysticku prepojené na vstupy T budičov 8286, sú v "lufte" a nenastavia tieto budiče na vstup (v kľude sú vďaka pull-up odporom nastavené na výstup).
Skrátka, po tejto nesprávnej inicializácii to na skutočnom PMD 85 nebude fungovať.

Správna inicializácia je popísaná tu: https://pmd85.borik.net/wiki/Joystick_4004/482

Okrem toho, odporúčal by som namiesto CONTROL a STATUS požiť radšej OUT a INP, ktoré by mali byť rýchlejšie. Napríklad takto:
Kód:
0 REM 2 Joysticky na PMD 85 - 3
10 GCLEAR
100 OUT '4F,'92: OUT '4E,'11: REM Nastaveni 8255A
110 PC=INP('4D) : REM GPIO 1
150 PRINT AT 5,1;BIT PC,4 : REM alebo PC AND 16
160 PRINT AT 6,1;BIT PC,3 : REM alebo PC AND 8
170 PRINT AT 7,1; BIT PC,2 : REM alebo PC AND 4
180 PRINT AT 8,1; BIT PC,1 : REM alebo PC AND 2
190 PRINT AT 9,1;  BIT PC,0 : REM alebo PC AND 1
210 DC=INP('4C) : REM GPIO 0
230 PRINT AT 11,1; BIT DC,4 : REM alebo DC AND 16
240 PRINT AT 12,1; BIT DC,3 : REM alebo DC AND 8
250 PRINT AT 13,1;BIT DC,2 : REM alebo DC AND 4
260 PRINT AT 14,1; BIT DC,1 : REM alebo DC AND 2
270 PRINT AT 15,1; BIT DC,0 : REM alebo DC AND 1
280 GOTO 110

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 11.11.2019, 22:17 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Za tu odhalenou chybu díky, já se s tím na reálné PMD ještě hned tak nedostanu a pak bych to špatně hledal proč to případně nejde.

Ten STATUS byl jen na ukázku že Basic ty porty vidí, ono to nejde využít pro import dat do progamu, to umí až právě INP(), který ze změti bitů udělá bajt, se kterým už můžeš pohodlně pracovat dál jako s proměnnou. Já to tu chtěl dát až bych to měl hotové jako takový template pro další lidi, ale předběhl jsi mě ;).
-
Edit: Tak demíčko pro zaručeně funční použití dvou joysticků v Basicu PMD 85-3 hýr :-). Z tohohle už leze jednobajtová hodnota, se kterou se dá dále pracovat, samozřejmě bez těch PRINT AT, to jen hezky vypadá. Dneska jsem se hodně nového naučil, uff :-).

Citace:
0 GCLEAR
100 OUT '4F,'92: OUT '4E,'11: REM Nastaveni 8255A
110 PA=INP('4C): REM GPIO 0
120 PRINT AT 1,1;BIT PA,7:PRINT AT 1,10;"GPIO 0"
130 PRINT AT 2,1;BIT PA,6
140 PRINT AT 3,1;BIT PA,5
150 PRINT AT 4,1; BIT DC,4
160 PRINT AT 5,1; BIT DC,3
170 PRINT AT 7,1;BIT DC,2
180 PRINT AT 6,1; BIT DC,1
190 PRINT AT 8,1; BIT DC,0
2 00 PRINTAT 10,1; PA
210 IF PA=254 THEN BEEP 400,5

220 DC=INP('4D): REM GPIO 1
230 PRINT AT 12,1;BIT DC,7:PRINT AT 12,10;"GPIO 1"
250 PRINT AT 13,1;BIT DC,5
260 PRINT AT 14,1; BIT DC,4
270 PRINT AT 15,1; BIT DC,3
280 PRINT AT 16,1;BIT DC,2
290 PRINT AT 17,1; BIT DC,1
300 PRINT AT 18,1; BIT DC,0
310 PRINT AT 20,1; DC
320 IF DC=254 THEN BEEP 600,5

330 GOTO 110


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 12.11.2019, 20:39 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
A ještě kostra progamu na vykonávání povelů, čímž testy s GPIO už opouštím a zabudovávám do programu. Ten pouze zobrazuje, kolikrát se která hodnota načetla, běží to rychlostně myslím velice slušně. Je to sice očíslované všelijak, ale funční. Chvíli mě zlobilo neustálé vysílání prvního příkazu, než jsem mu s GOTO zatnul tipec. Asi zase nějaká basikovská "feature" či má chybička :-).


Citace:
0 GCLEAR
10 PRINT AT 1,18;"GPIO 0"
15 PRINT AT 8,18;"GPIO 1"
700 OUT '4F,'92: OUT '4E,'11:GOTO 6610
6350 X=X+1:PRINT AT 1,4;"VLEVO";X:GOTO 6610
6360 Y=Y+1:PRINT AT 2,4;"VPRAVO";Y:GOTO 6610
6370 Z=Z+1:PRINT AT 3,4;"NAHORU";Z:GOTO 6610
6380 A=A+1:PRINT AT 4,4;"DOLU";A:GOTO 6610
6450 X=X+1:PRINT AT 8,4;"VLEVO";X:GOTO 6610
6460 Y=Y+1:PRINT AT 9,4;"VPRAVO";Y:GOTO 6610
6470 Z=Z+1:PRINT AT 10,4;"NAHORU";Z:GOTO 6610
6480 A=A+1:PRINT AT 11,4;"DOLU";A:GOTO 6610
6610 PC=INP('4C) : REM GPIO 0
6615 IF PC=255 THEN GOTO 6670
6620 IF PC=247 THEN BMOVE R,S:BPLOT G$,4:GOTO 6350
6630 IF PC=251 THEN BMOVE R,S:BPLOT G$,4:GOTO 6360
6640 IF PC=253 THEN BMOVE R,S:BPLOT G$,4:GOTO 6370
6650 IF PC=254 THEN BMOVE R,S:BPLOT G$,4:GOTO 6380
6655 IF PC=239 THEN BMOVE R,S:BPLOT G$,4:GOTO 6740
6670 DC=INP('4D) : REM GPIO 1
6675 IF DC=255 THEN GOTO 6610
6680 IF DC=247 THEN BMOVE R,S:BPLOT G$,4:GOTO 6450
6690 IF DC=251 THEN BMOVE R,S:BPLOT G$,4:GOTO 6460
6700 IF DC=253 THEN BMOVE R,S:BPLOT G$,4:GOTO 6470
6710 IF DC=254 THEN BMOVE R,S:BPLOT G$,4:GOTO 6480
6720 IF DC=239 THEN BMOVE R,S:BPLOT G$,4:GOTO 6740
6730 GOTO 6610
6740 BEEP:GOTO6610


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 12.11.2019, 23:05 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Grafická část věci už se pomalu ale jistě chýlí ke konci :-). Jen poskládat správně data ve spritech a bude hotovo, i s tím gulášem na obrazovce už se dá dobře hýbat. Fungují oba joysticky a klávesnice, zítra doufám grafiku dokončím a budu moct začít dělat na algoritmu samotné hry a na případné hudební vložce. Tu ale až na konec aby bylo jisté že vystačí RAM. A bude muset být v assembleru tak raději ať hra samotná je už hotová než se pak škrabat na hlavě :lol:.


Přílohy:
Dama 6.png
Dama 6.png [ 17.85 KiB | Zobrazeno 9497 krát ]
Dama 5.png
Dama 5.png [ 9.49 KiB | Zobrazeno 9497 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 13.11.2019, 16:55 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Guláš už je pryč :-). Teď ještě kámen se znakem dámy a tradá na algoritmus, tem mi trochu kazí úsměv :scratched:


Přílohy:
Dama7.png
Dama7.png [ 16.58 KiB | Zobrazeno 9443 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 13.11.2019, 17:15 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 19:23
Příspěvky: 1910
Bydliště: Vsetín
Has thanked: 517 times
Been thanked: 812 times
A herní kameny by nemohly být symetrické? :-)

_________________
cs.speccy.cz, ondraspo186.8u.cz, zx-spectrum.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 13.11.2019, 17:40 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Ale ovšem :-). Jak říkají Angličané - be my guest...

Citace:
6054 DATA 64,64,64,64,64,120,71,64,64,127,127,64,96,67,112,65
6057 DATA 112,125,111,67,120,126,95,71,88,127,127,70,108,127,127,77
6060 DATA 108,127,127,77,108,127,127,77,108,127,127,77,118,127,127,91
6064 DATA 118,127,127,91,108,127,127,77,108,127,127,77,108,127,127,77
6066 DATA 108,127,127,77,88,127,127,70,120,126,95,71,112,125,111,67
6068 DATA 96,67,112,65,64,127,127,64,64,124,79,64,64,64,64,64


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 14.11.2019, 17:28 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Tak už mi běhají periferie co chci aby běhaly, periferie co nechci aby běhaly neběhají a dá se hýbat kameny po desce :-). Nyní už je pomalu čas na algoritmus na pozadí hry.


Přílohy:
Dama 8.png
Dama 8.png [ 16.48 KiB | Zobrazeno 9380 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 14.11.2019, 18:45 
Offline
Pan Generální

Registrován: 07.05.2014, 01:21
Příspěvky: 2570
Bydliště: Praha
Has thanked: 502 times
Been thanked: 607 times
Trocha inspirace, kdyby se ti chtelo prece jen pridat hru s pocitacem.
https://dspace.vsb.cz/bitstream/handle/10084/98666/KRU255_FEI_N2647_2612T025_2013.pdf?sequence=1&isAllowed=n

_________________
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: Dáma pro PMD 85 - 3
PříspěvekNapsal: 14.11.2019, 18:59 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Díky moc,
určitě si to přečtu. Ale se mnou je to jako se sedmdesátiletým u 20 leté sexbomby - hlava by chtěla ale tělo už nechtělo :lol:. Bude hodně záležet kolik RAM to sežere a PMD je hodně pomalé když počítá přes Basic,patrně to bude chtít assembler aby to fungovalo dostatečně rychle. Až hru dokončím pro 2 lidské hráče, zkusím to přidat ale nic nezaručuju, může to sice hrát ale ve finále to bude tak pomalé, že to nikdo hrát nebude :-). Už teď jsem na 10 kB a to je prakticky jen grafický kabátek bez podmínek na pozadí...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 14.11.2019, 19:50 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 864 times
Been thanked: 697 times
Automatika ani nemusí být moc inteligentní. Člověk se může zabavit i s protihráčem typu "tahal", který hraje systémem "náhodný tah kterým lze vůbec táhnout". Stačí aby program uměl pravidla tahů. I na demo stačí dva tahalové proti sobě. Pro některé hráče (včetně mne) může i takový automat být silným soupeřem.

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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 15.11.2019, 09:01 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Nojo i taková nejprimitivnější automatika na jeden tah dopředu zabere dost podmínek a rozhodování když se tedy nebude brát hned první kámen co jí takříkajíc padne pod ruku. Což znamená jediné - další a další spomalování běhu hry. Už teď to začíná být nepříjemně "vláčné" a i když se mi případně podaří engine zase zoptimalizovat na rychlost po komprimaci na velikost - srazil jsem to včera z ~9300 na 7300 bajtů - tak je určitý limit na minimální potřebný počet kroků, který už nejde překročit. Ale třeba to bude ona motivace na assembler...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 15.11.2019, 14:48 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Další aktualizace - už jsou všechny kameny na poli a mají se v oblibě - navzájem se žerou :-).


Přílohy:
Dama 9.png
Dama 9.png [ 24.62 KiB | Zobrazeno 9268 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 24.11.2019, 19:52 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
S Dámou jsem si tedy dal :suicide: Ne a ne ji dokončit. Už tuším proč se dosud pro PMD neobjevila. Sice postupně to víc a víc dělá co chci aby to dělalo ale je to značně protivný, časově náročný proces. Momentálně jsem zakysnul na skákání dámou, to je lahůdka... Pohyb všemi směry a spousta podmínek přičemž sebemenší chybička se velmi těžko hledá. Vývojová verze už zobrazuje asi 10 proměnných :lol: Bez toho by to fakt nešlo. Nakonec to doufám rozlousknu, ale je to opruz. Program nabobtnal už na téměř 15 kB a je to takové hutně vláčné... :joystick: Bude to chtít po dokončení probrat komentáře a eventuálně zoptimalizovat postupy. Ale hrát se to pořád dá, to zase ne že ne.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Dáma pro PMD 85 - 3
PříspěvekNapsal: 24.11.2019, 20:09 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 19:23
Příspěvky: 1910
Bydliště: Vsetín
Has thanked: 517 times
Been thanked: 812 times
Se inspiruj českou Dámou v BASICu pro ZX Spectrum z 80. let.
https://cs.speccy.cz/?scn=1

_________________
cs.speccy.cz, ondraspo186.8u.cz, zx-spectrum.cz


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ů: 35 ]  Přejít na stránku Předchozí  1, 2, 3  Další

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 3 návštevní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