ub's #20

ub's Space at the End of the Universe

Ako otestovat custom rom

2021-07-16, tagged as divide, esxdos, mdos3
Dlho som nic nepisal a kedze mi dnes pristal na stole request o tom, ze ako sa da pouzit divide mapram mod na neinvazivne vyskusanie custom romky, tak som si povedal, ze sa to moze hodit viacerim. A tak tento clanok.

Intro

Na ukazku pouzijem dgama89.rom, ktory mam ani uz neviem odkial. Ako na to ukazem na dvoch prikladoch, kazdy je vhodny pre odlisnu skupinu pouzivatelov (v zavislosti od toho, aky divide system pouzivaju).

POZOR! ani v jednom z prikladov nerozpajajte jumper JP2 (oznacovany tiez E), ktorym je blokovany zapis do divide eeprom. Divide eeprom nie je nutne prepisovat, postaci nam vyuzit mapram mod divide. Po odblokovani zapisu do eeprom by totiz mohlo dojst k trvalemu prepisaniu systemu, ktory mate naflashovany v divide.


Priprava suborov

Na oba sposoby ale treba najskor 16KB subor rozbit na dva 8KB subory, takze to popisem najskor:

16KB dgama89.rom rozbit na dva 8KB bloky sa da viacerymi sposobmi, jeden zo sposobov je pouzit prikaz dd:


Podobny vysledok sa da dosiahnut aj utilitkou split ("split -b 8192 dgama89.rom" a potom premenovat xaa na gama89_3.bin a xab na gama89_0.bin).

Vysledne subory (gama89_3.bin, gama89_0.bin) som takto pomenoval, aby bolo jasne, do ktorej ram banky divide sa prislusny subor bude nahravat.

Tak, 8KB subory mame a tak hor sa na prvy sposob...


Sposob vhodny pre pouzivatelov MDOS3

Na uvedenu ulohu je priam ako stvoreny (novy) mdos3 bootloader: staci vytvorene 8KB subory dostat na bootdisk a do bootmenu.b pridat novy "kernel". Samozrejme, rovnako sa da postupovat aj so starsou verziou bootloadera, ale tam je zlozitejsia uprava konfiguracneho suboru, kedze ma binarnu strukturu.

Takze ako prve treba upravit bootmenu.b (alebo prislusne podmenu do ktoreho chcete tento novy "system" pridat).

V novej verzii bootloadera, ktory pozna novy (nie binarny, ale textovy) format configu, by sa jednalo o pridanie takychto riadkov:


(Treba si len dat pozor, ze max velkost bootmenu je 8KB, takze ak by sa to uz nemalo zmestit, treba vyrobit podmenu, niektore polozky presunut do podmenu a podmenu pripisat do hlavneho menu.)

No a teraz uz len dostat gama89_3.bin, gama89_0.bin a upravene bootmenu.b na bootdisk (priponu .bin suborov nepouzijeme).

Tu je par screenshotov:







Sposob vhodny pre pouzivatelov esxdos

Na uvedenu ulohu je priam ako stvoreny prikaz .dfwload (v skutocnosti nie "priam ako" ale bol na to naozaj stvoreny ;]).

Pre prikaz dfwload okrem 8KB blokov potrebujeme este konfiguracny dfw subor (nazveme ho dgama89.dfw). Ten ma obsahovat len toto:


dgama89.dfw vyrobime jednoduchym linuxovym prikazom:


No a uz len dostaneme vsetky tri subory na kartu (do rovnakeho adresara, idealne si na tieto ucely vytvorit v roote adresar dfw), nabootujeme a system vyskusame.

Najskor prejdeme do adresara k suborom, ktore sme prave vytvorili a nakoniec system spustime:


Opat par screenshotov:





Outro

Dfw subory z druheho sposobu by sa mali dat rovnako pouzit aj v demfire (v tom novsom, co uz pouziva dve banky, ja ho ale nepouzivam, takze to neukazem).

Samozrejme, tento sposob "nahrady" rom nie je plnohodnotnou nahradou, treba si uvedomit ze iba vyuziva schopnost divide/divmmc primapovat jeho externu pamat. Toto primapovanie ale nie je trvale a treba si dat pozor, aby sa neskocilo na odmapovavacie body (0x1ff8-0x1fff), lebo to by nam externu divide pamat odstrankovalo a pristrankovalo povodnu zx rom. Rovnako si treba uvedomit, ze sa neprepisuje pamat v pocitaci, ale ze sa prepisuje pamat v divide a teda netreba ocakavat, ze po prepnuti do nasej custom rom pojde nadalej pouzivat povodny system v divide (teda, nebojte sa, pojde, ale az po vypnuti a zapnuti pocitaca, ktorym sa opat povodny system zavedie). Tento postup je ale vhodny na pouzitie povedzme diagnostickej rom (avsak ako som pisal, treba sa uistit ze nebude skakat kam nema).

--