OldComp.cz

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


Právě je 28.03.2024, 16:44

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 15 ] 
Autor Zpráva
 Předmět příspěvku: MDOS3: softwarový snap
PříspěvekNapsal: 02.06.2020, 15:39 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 222
Bydliště: Opava
Has thanked: 31 times
Been thanked: 70 times
Zkoušením MFC na MDOSu jsem zjistil, že mi nefunguje SW Snap:
Kód:
SWSNAP   ld   hl,0 ;místo nuly budou dva bytes z DROM z (#01AC)
         ld   de,#02E7; toto je výchozí hodnota oficiálních  MDOSů Skalice
         or   a
         sbc  hl,de
         jr   z,VWD1 ; pokud to tam je, tak se nejedná o vylepšenou DROM z NMI menu, skok pryč...
         ld   hl,VIEWDRV; zde skočí návrat ze snapu
         push hl
         ld   hl,#0067; toto testuje MDOS že je na zásobníku a skočí na SNAP
         push hl
         jp   0

 


Čekal jsem, že mi to vyvolá NMI menu aniž bych ho musel zmáčknout na divide, ale nefunguje to. Každopádně nějak připraven na toto MDOS3 je, protože nespadne (neprovede reset). Vlastně se zdá, že to neprovede vůbec nic. Lze vyzkoušet v MFC po stištění klávesy N (nový disk) a následně, když je zobrazena nabídka z ABCD, tak stisknem M nebo ENTERem.

Pokud je s tím nějaký technický problém, pak samozřejmě můžu otestovat, že jde o MDOS3 a volat si nmi přes #66...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 02.06.2020, 15:55 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 222
Bydliště: Opava
Has thanked: 31 times
Been thanked: 70 times
Busy píše:
A preco vobec tak zlozito, ked to ide pomocou CALL #66 ako pises ?

Já Ti už ani nevím proč jsem to takto vymyslel (či někde opsal). Ale něco tam bylo, protože #66 jsem znal a normálně bych preferoval ji.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 03.06.2020, 06:55 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
PotPalo píše:
No, ale pokiaľ je ROM ktorá SNAP neobsluhuje (alebo blbo, ako originál Spectrum ROM), tak by cez softvérový SNAP nasledoval možno aj taký reset. Možno preto.
Prave naopak. Originalnej Spectrum ROM staci na 23728 dat nieco nenulove a z call #66 sa korektnbe vrati, kdezto MTs-ovo riesenie s jp 0 na konci sa resetne vzdy (ked na ten koniec dorazi) :poke: :lol:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 03.06.2020, 15:33 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 222
Bydliště: Opava
Has thanked: 31 times
Been thanked: 70 times
Tak opsal jsem to od Kvaksoftu (komentovaný výpis D40 rom). A je to zřejmě jedinná správná cesta, protože jinak (neskočím-li přes jp 0) musel bych mdosu do proměnných uložit minimálně hodnoty o přerušení. call #66 udělat nelze, protože mdos1 tam má jp (ix) a mdos2 rst 0. Alternativa je tedy opravdu uložit ty hodnoty pro přerušení a skočit na vyzvednutý obsah z #01AC.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 03.06.2020, 16:10 
Offline
Pan Generální

Registrován: 01.12.2017, 21:01
Příspěvky: 2062
Bydliště: BA-Petržalka :(
Has thanked: 18 times
Been thanked: 323 times
A čo tak to skúsiť z vonkajšej strany:

LD HL, 102
PUSH HL
JP 5888
(si to preložte do hex)

Pozor na to kde máme zásobník.

_________________
Oznamy o novom príspevku mi na mail chodia iba sporadicky, takže keď sa nehlásim v diskusii, tak je to tým. V 80% nepríde mail vôbec.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 09.06.2020, 20:29 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 222
Bydliště: Opava
Has thanked: 31 times
Been thanked: 70 times
Tak vyřešeno. Sweet při tvorbě mdosu 3 zapomněl změnit adresu v tabulce na adrese #01AC. Nechal tam hodnotu ze skalice #02E7 přičemž ale podprogram na té adrese změnil ke své potřebě. Já tím pádem v MFC nemohl nmi menu vyvolat (volám pouze u jiné hodnoty než 02e7). Když jsem cvičně vyzkoušel zavolat 02e7 tak se mi to samozřejmě resetlo :), daný podprogram je v MDOSu 3 úplně jinde. Opravou za správnou hodnotu v tabulce #01ac vše funguje jak má.

Na chybu nikdo nepřišel, protože software dělající snap softwarově asi ani žádný není. Na udělání snapshotu je fyzické tlačítko a o nějakém nmi menu si tenkrát lidé mohli u MDOSu nechat jen zdát...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 10.06.2020, 09:25 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
PotPalo píše:
Aké tlačítko furt. :D Ja som používal softvérový SNAPSHOT cez RANDOMIZE USR 102 už dávno. To som bol jediný?
Presne, moja rec !
A pokial som v nejakej utilitke a mam nastrankovanu mdos romku, tak nie je najmensi problem urobit call #1700 : call #66 :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 16.06.2020, 22:19 
Offline
Kecka

Registrován: 07.06.2013, 14:21
Příspěvky: 32
Has thanked: 1 time
Been thanked: 14 times
MTs píše:
Tak vyřešeno. Sweet při tvorbě mdosu 3 zapomněl změnit adresu v tabulce na adrese #01AC. Nechal tam hodnotu ze skalice #02E7 přičemž ale podprogram na té adrese změnil ke své potřebě. Já tím pádem v MFC nemohl nmi menu vyvolat (volám pouze u jiné hodnoty než 02e7). Když jsem cvičně vyzkoušel zavolat 02e7 tak se mi to samozřejmě resetlo :), daný podprogram je v MDOSu 3 úplně jinde. Opravou za správnou hodnotu v tabulce #01ac vše funguje jak má.


Dle mého názoru tlačítko SNAP už nemá reagovat vůbec, logika D80 stránkování je zcela vypnuta odpojením signálu /M1, zůstávají jen porty řadiče. Tedy SNAP se dělá stisknutím MNI a pak tlačítkem S nebo F.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 17.06.2020, 10:15 
Offline
Kecka

Registrován: 07.06.2013, 14:21
Příspěvky: 32
Has thanked: 1 time
Been thanked: 14 times
Busy píše:
sweet128 píše:
Dle mého názoru tlačítko SNAP už nemá reagovat vůbec, logika D80 stránkování je zcela vypnuta odpojením signálu /M1, zůstávají jen porty řadiče.
To je v najlepsom poriadku, tema tejto diskusie je "softwarový snap" a od hardweroveho tlacidla tu funkcnost ani nikto neocakava :)


Pak jsem tedy v MDOS3 nic nezapomněl. softwarově zmáčknu NMI pomocí CALL #66. Funguje to.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 17.06.2020, 16:15 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 222
Bydliště: Opava
Has thanked: 31 times
Been thanked: 70 times
No já jsem toho názoru, že pokud MDOS3 má být na divide také jakýmsi emulátorem klasického MDOSu, pak by Snap fungovat měl softwarově i hardwarově. Snapem samozřejmě nemyslím uložit snapshot pokud tam máme NMI/Snap menu (snapshot jde uložit z něj, takže menu je nadřazeno a logicky přebírá funkci D40/80 Snapu). Divide umožňuje hardwarový snap NMI tlačítkem (vyvolá to NMI menu). Zde je vše OK. Pokud ale chci udělat SW snap dle Kvaksoftu (uložením #67 na zásobník a jp 0), tak také čekám, že to bude fungovat. Určitě není důvod tuto funkcionalitu blokovat. Totéž čekám od adresy #01AC, kde komentovaný výpis řiká, že je vstupní bod Snapu. Ponechání té výchozí hodnoty (která tím pádem ukazuje někde doprostřed rozjetého programu) na #01AC způsobí zhroucení (reset) mašiny. Oprava je tedy určitě na místě. Nic se tím nepokazí, jen získáme lepší kompatibilitu s původním MDOSem. Zvláště když netřeba vůbec nic softwarově ošetřovat/odchytávat/bajpásovat a jen stačí uložit správnou adresu na#01AC.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 18.06.2020, 06:54 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 222
Bydliště: Opava
Has thanked: 31 times
Been thanked: 70 times
Busy píše:
Aky je z hladiska mdosu rozdiel medzi push #67 : jp 0 a call #1700 : call #66 ?

Celkem žádný. Mám-li divide s MDOS systémem, je to totéž. Mám-li ale třebas holý Didaktik Kompakt, tak se přece dostane ke slovu rom zxs a tam (většinou) je:
Výpis ZX ROM
Kód:
0066 F5           NMI    push AF                                               
0067 E5                  push HL                                               
0068 2A B0 5C            ld   HL,(NMIREG) 
006B 7C                  ld   A,H         
006C B5                  or   L                                                 
006D 20 01               jr   NZ,#0070
006F E9                  jp   (HL)       ;toto mi sice za "normálních" okolností zajistí JP 0  (ovšem na zásobníku nebude #67 takže SNAP neprovede)                   
0070 E1                  pop  HL        ;tyto dvě hodnoty na zásobníku by mi tam přece také zůstaly, protože i kdyby tedy MDOS snap udělal
0071 F1                  pop  AF        ; tak návrat bude zajištěn skokem na adresu v HL
0072 ED 45               retn                                     


Myslím, že přes ten zásobník jak to Kvaksoft napsal je to "bezpečnější" metoda.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 18.06.2020, 08:45 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
MTs píše:
Busy píše:
Aky je z hladiska mdosu rozdiel medzi push #67 : jp 0 a call #1700 : call #66 ?
Celkem žádný. Mám-li divide s MDOS systémem, je to totéž. Mám-li ale třebas holý Didaktik Kompakt, tak se přece dostane ke slovu rom zxs
Tak ale zase holy Didaktik Kompakt ma mdos, takze snap fungovat bude :)

Pokial myslis holy iny ZX Spektrum bez pripojenej D40/D80, tak tam moja otazka nesmerovala (je jasne co vtedy jp 0 narobi). Ale ked uz o tom piseme, nie je nic jednoduchsie ako na NMIREG dat adresu kam chces aby to v pripade "problemov" skocilo (napr #70), a normalne zavolat #66. Pri originalnej romke sa to korektne vrati, pri opravenej romke to skoci na tu adresu (cize pre #70 sa to tiez normalne vrati), a pri pripojenej D40/D80 urobi snap a tiez sa to normalne vrati.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 18.06.2020, 12:16 
Offline
Kecka

Registrován: 07.06.2013, 14:21
Příspěvky: 32
Has thanked: 1 time
Been thanked: 14 times
MTs píše:
No já jsem toho názoru, že pokud MDOS3 má být na divide také jakýmsi emulátorem klasického MDOSu, pak by Snap fungovat měl softwarově i hardwarově. Snapem samozřejmě nemyslím uložit snapshot pokud tam máme NMI/Snap menu (snapshot jde uložit z něj, takže menu je nadřazeno a logicky přebírá funkci D40/80 Snapu). Divide umožňuje hardwarový snap NMI tlačítkem (vyvolá to NMI menu). Zde je vše OK. Pokud ale chci udělat SW snap dle Kvaksoftu (uložením #67 na zásobník a jp 0), tak také čekám, že to bude fungovat. Určitě není důvod tuto funkcionalitu blokovat. Totéž čekám od adresy #01AC, kde komentovaný výpis řiká, že je vstupní bod Snapu. Ponechání té výchozí hodnoty (která tím pádem ukazuje někde doprostřed rozjetého programu) na #01AC způsobí zhroucení (reset) mašiny. Oprava je tedy určitě na místě. Nic se tím nepokazí, jen získáme lepší kompatibilitu s původním MDOSem. Zvláště když netřeba vůbec nic softwarově ošetřovat/odchytávat/bajpásovat a jen stačí uložit správnou adresu na#01AC.


Však je. Zmáčknu NMI tlačítko, a pak S a udělá SNAPSHOT.

Lepší kompatibilitu získá jen MFC, nikdo jiný to nepoužívá :-) Ale máš to tam.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 19.06.2020, 21:36 
Offline
Kecka

Registrován: 07.06.2013, 14:21
Příspěvky: 32
Has thanked: 1 time
Been thanked: 14 times
MTs píše:
No já jsem toho názoru, že pokud MDOS3 má být na divide také jakýmsi emulátorem klasického MDOSu, pak by Snap fungovat měl softwarově i hardwarově.


Pokud tedy chceš dělat softwarově snap, pak to tedy nadrátuji na uložení SNAPu, nikoliv vyvolání NMI menu :-) Ať je to OPRAVDU SNAP :-)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MDOS3 a softwarový snap
PříspěvekNapsal: 20.06.2020, 09:58 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 222
Bydliště: Opava
Has thanked: 31 times
Been thanked: 70 times
sweet128 píše:
MTs píše:
No já jsem toho názoru, že pokud MDOS3 má být na divide také jakýmsi emulátorem klasického MDOSu, pak by Snap fungovat měl softwarově i hardwarově.


Pokud tedy chceš dělat softwarově snap, pak to tedy nadrátuji na uložení SNAPu, nikoliv vyvolání NMI menu :-) Ať je to OPRAVDU SNAP :-)


Hele tos vytrhl z kontextu. Hned další věta to vysvětluje. Už dejte oba pokoj. Je to opraveno a tím pádem vyřešeno. :jump:


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ů: 15 ] 

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:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz