Egy kis segítség jól jöhet
A módosított iview.ext file:
Ez a tömörített formátum támogatásán, az előbbi kisebb javításokon, és a függőleges pozíció változtatásán kívül a margók számításánál páratlan karakter szélességnél a képet nem balra, hanem jobbra igazítja (mert igazi gépen általában kissé balra van eltolódva a kép).
A tömörített formátumnál a már dekódolt részek láthatóak a file betöltése közben is, kivéve akkor, ha EP64-en a kicsomagolt kép vége felülírná a rendszert, mert akkor először az egészet betölti a memóriába, és ott csomagolja ki. Ilyenkor a kép megjelenítése után (billentyűlenyomáskor) hidegindítás történik, mert a felülírt rendszer miatt nem lehet visszatérni vagy új képet betölteni (sőt, még az aktuális file-t bezárni sem, erre külön figyelni kellett
).
Problémák:
- a "modul betöltés" (LOAD parancs) funkciónál EXOS reset hívást tettem a kód elejére, hogy a bővítőből ilyenkor is alkalmazás legyen, és külön vermet lehessen használni a 0. lapon (a kitömörítő ugyanis megváltoztatja a 2. lapon levő szegmenst); ez jelenleg talán nem probléma, mert az IVIEW egyébként sem tér vissza a modulbetöltést hívó alkalmazáshoz (pl. BASIC), és a 0. lapon található programot vagy adatokat elrontja
- a rendszerszegmens mentéséhez külön szegmenst foglaltam le, és nem a nullás lapon levő szabad területet használtam fel, mert a kitömörítő az első kivételével minden szegmenst az elejétől kezdve használ fel; ezen kívül a mentés/visszaállítás mindig az egész lefoglalt szegmenst cseréli a rendszerszegmenssel, tömörített formátumnál még akkor is, ha a kép vége nem éri el az EXOS határt. Ez elvileg elkerülhető lenne, csak így egyszerűbb volt megoldani
Viszont legalább egyszerűbb lett a tömörítetlen formátumot betölző rész
- EP64 gépeken az iview.ext általában az FD szegmensre töltődik be, ami problémákat okoz, ha a kép nem fér el a nullás lapon (és ha nem nagyon kis méretű, akkor többnyire nem fér el). Átmeneti megoldásként ilyenkor egyszerűen felülírom ezt a szegmenst (mint ahogy az eredeti verzió is), de a kilépés helyett ilyenkor is hidegindítás van
- ha a rendszer nem fér el az FF szegmensen, hanem például az FE szegmens a megosztott, akkor valószínűleg nem működik