Fejtörő (2020-2021)

Mókás, de direkt dögnehéz programozási feladványok Spectrumra...
csaba
Alapító tag
Hozzászólások: 357
Csatlakozott: 2012.01.09. 18:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: Fejtörő (2020-2021)

Hozzászólás Szerző: csaba »

Még hagynék időt, hátha valaki még szeretne próbálkozni hétvégén.

Hát igen, az email-re nem gondoltam, de azért az egyértelmű megoldás nincs benne és nem is biztos, hogy mindenki végigolvasta az emlékeztetőt, főleg ha még tervezte megoldani.
csaba
Alapító tag
Hozzászólások: 357
Csatlakozott: 2012.01.09. 18:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: Fejtörő (2020-2021)

Hozzászólás Szerző: csaba »

Letelt a segítségekkel könnyített megoldás idő, sajnos egy megfejtés sem érkezett.
13-an töltötték le a file-t, ebből 3 sikeres megoldás született
Egyértelműen kudarc, túl nehézre sikerült, és az aktivitás is siralmas volt, semmi levelezés sem volt a témában a fórumon, de ez mondjuk más témákra is igaz.
Próbáltam valamennyire múltba illő életszerű problémát kreálni, amikor is egy magnó betöltés basic része sérült, és csak egy kódunk van amit be tudunk tölteni.
Mivel a kód csak a pontos címre töltésnél működőképes, nyomot hagytam a kód elején, egy 3 byte-os gépi kódú utasítás formájában. A kód meglétére utalás pedig az a tény, hogy a kód töltési címe 16381 ami ROM terület, csak olvasható, az a 3 byte oda töltődne, viszont teljesen értelmetlen lenne oda tölteni valamit.
A 3 byte: 195,200,175 ami a JP 45000 ugró utasításnak felel meg.
Kiindulva abból a tényből, hogy hacsak más indokunk nincs, a gépi kódú programot az első címtől indítjuk,
ha az egész kódot 45000-re töltenénk ott a JP 45000 utasítás végtelen ciklust eredményezne,
de ha 45000-3 ra akkor már a ugrás utasítás utáni részt elindítva 45000-en működik a program.
Betöltés előtt szokásosan (ha egy kód töltés a ram végére felülírná a processzor vermet) egy CLEAR utasítással felszabadítjuk a töltés területét.
tehát az eredeti betöltő ez lehetett:
Buek2021.tap
(80 bájt) Letöltve 8 alkalommal.
A hozzászólást 3 alkalommal szerkesztették, utoljára csaba 2021.01.11. 16:48-kor.
csaba
Alapító tag
Hozzászólások: 357
Csatlakozott: 2012.01.09. 18:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: Fejtörő (2020-2021)

Hozzászólás Szerző: csaba »

Érdekességképp, a kiindulás egy basic program ami compiler-el lett lefordítva, hogy ne legyen elviselhetetlenül lassú.
a10.tap
(2.46 KiB) Letöltve 11 alkalommal.
Avatar
Bali
Alapító tag
Hozzászólások: 2510
Csatlakozott: 2012.01.06. 12:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: Fejtörő (2020-2021)

Hozzászólás Szerző: Bali »

Nahát megtréfált a dolog, mert nagyon BASIC-et akartam benne látni, egy darabig azon mesterkedtem, hogy valahogy úgy töltsem be, hogy előtünjön a BASIC program. :)

Aztán amikor debuggerrel néztem már gyanús lett az a jp 45000.

Amúgy egy érdekesség, amit először fícsörnek is hittem, hogy ha csak úgy pongyolán LOAD""CODE 45000-3-mal töltitek be a progit, akkor magától elindul. Tehát semmi CLEAR és a LOAD"" CODE 44997 sem jó. :)

Köszi a fejtörőt, jól szórakoztam vele.
-= Bali =-
(c) 1983-2017 Evil-Soft
Avatar
Pgyuri
Alapító tag
Hozzászólások: 597
Csatlakozott: 2012.01.06. 12:34

Re: Fejtörő (2020-2021)

Hozzászólás Szerző: Pgyuri »

Üdv,

Ennek kellett volna következnie:

Bali: oldd meg USR függvény nélkül a feladatot !

De hát lelőtte a poént, így már felesleges töprengeni, ekkora helyzetet kihagyni! Igazi fejtörővé válhatott volna.

Pgyuri

folyt. köv.
Válasz küldése

Vissza: “Feladványok, fejtörők”