Bronies.cz
Příklad ITES na lámání si hlavičky #101 - Verze k tisku

+- Bronies.cz (https://bronies.cz)
+-- Fórum: OffTopic (https://bronies.cz/Forum-OffTopic)
+--- Fórum: Generální OffTopic (https://bronies.cz/Forum-Generalni-OffTopic)
+--- Téma: Příklad ITES na lámání si hlavičky #101 (/Vlakno-Priklad-ITES-na-lamani-si-hlavicky-101)

Stran: 1 2


RE: Příklad ITES na lámání si hlavičky #101 - Martin - 14.03.2018

Ony registrové MOV jsou právě dost sviňské v tom, že nemají pevné (či spíše jednotné) opkódy.. Rainbowlaugh

No, tak číst spoilery není povinné Ajsmug a pokud jsi ho nedočetl, tak máš ještě dost co dělat, než přijdeš na finální řešení.

Ale OK, jestli mne ještě něco napadne, tak zkusím vymyslet pokračování..
UPDATE: už mě něco napadlo (a zuřivý lev to naštěstí nebyl)


RE: Příklad ITES na lámání si hlavičky #101 - Draimisko - 17.03.2018

olalá, tohle může být zajímavé

bez čtení nápověd
nejdřív mě napadlo, že to je zvuk modemu, ale ten je příliš rozlišný
dál mě napadlo zobrazit zvuk ve... vlnovém spektru? říká se tomu tak? kdysi jsem viděl, že týpek tak schovával text. Použil jsem audacity a výsledek mi dost to připomíná zobrazení digitálního přenosu dat. Ještě jsem změřil délku přechodů mezi hladinami a jsem si dost jistý, že to je signál převedený do digi.
[Obrázek: ja63.png]

Pak jsem si všiml přiloženého obrázku a ten vypadá jako onen signál přenesený do grafické podoby? Tedy záznam z kamery? tady už hádám

po první nápovědě
ok, tohle není Arrival, takže to je opravdu komunikace zjednodušená do úplného základu
pořád nemám tucha

druhá nápověda
Záznam je teď monologový a jak se na něj divu v audacity je mi jasné, že tohle je opravdu nezkrácný signál, má "špičky" a obsahuje spoustu bodů, které jsou nejspíš zbytečné pro přečtení.
Celkově z toho nic nového nevyvozuju (nesnažím se spekulovat)
Na poslech to zní jako ultrazvuk Rainbowlaugh

nápověda 3
zastavil jsem se u slov "den nezávislosti" protože na to jsem si taky vzpomněl
spíš na scénu, kde vrtulník se vznášel před lodí a světla ukazovaly nejjednodušší signály
balíček prvního kontaktu?
...
ok, tak to není ono Rainbowlaugh
držím se teorie o zvuku a obrazu

řešení
pfffffff, aspoň jsem to zkusil  Twilightblush


RE: Příklad ITES na lámání si hlavičky #101 - Martin - 19.03.2018

Jsem rád, že se bavíte (kupodivu Pinkiesmile ). Už připravuji pokračování ... tentokrát tedy bez nápověd.


RE: Příklad ITES na lámání si hlavičky #101 - pidi - 19.03.2018

Dexi, jestli tě tohle baví tak https://nomopron.com/index.html
Když jich dáš něco kolem poloviny, majitel téhle garážovky si tě pozve na pohovor (práci jsem nevzal, ale pokec a procházka v parku fajn...)


RE: Příklad ITES na lámání si hlavičky #101 - Martin - 21.03.2018

Máme tu pokračování.. pro některé bude asi až trapně jednoduché


Příběh:

Na orbitě Země se objevila kosmická loď a poslala nám nějakou zprávu. Podle všeho to vypadá jako nějaké zařízení. Nevíme, proč mimozemšťané jednoduše neposlali video zprávu s nějakým obrázkem, což by pochopil i blbec, ale třeba jen testují naši inteligenci - tedy zda jim vůbec stojí za to s námi navazovat kontakt.

Vašim úkolem je vyluštit, cože nám to vlastně mimozemšťané poslali. Je to uvítání? Nebo nějaký virus? Nemáte moc času. Mnohé velmoci začínají být nervózní ze situace, kterou nemají pod kontrolou a je jen otázka času, než nějaký kretén odpálí rakety. Pak už na tom, co nám poslali, nebude záležet Twilightoops


[Obrázek: zadaniece.png]


.zip   DATA.zip (Velikost: 196 bajtů / Stažení: 5)


RE: Příklad ITES na lámání si hlavičky #101 - Martin - 28.03.2018

Přináším nápovědu. Vypadá to, že bude třeba. Nejspíš Vám moc nepomůže, ale co už. Každopádně je stále nutné odpovědět na první zadání, nikoliv na tuto nápovědu Ajsmug



.zip   DataHex.zip (Velikost: 238 bajtů / Stažení: 3)


.zip   dataBin.zip (Velikost: 331 bajtů / Stažení: 2)

Některým by to ale mohlo velmi pomoct..




RE: Příklad ITES na lámání si hlavičky #101 - Martin - 05.04.2018

Pracuje na tom ještě někdo?

Já jen, jestli byl druhý příklad shledán tak nezajímavým, že bych tedy postnul už řešení, a nebo zda mám ještě počkat, abych nespoiloval zábavu? Pinkiesmile


RE: Příklad ITES na lámání si hlavičky #101 - Tesik - 05.04.2018

Je škoda, že jsem se k prvnímu příkladu dostal, když už byl vyspoilovaný a neměl pro mě smysl. Druhý příklad nevypadá úplně neřešitelně. Nejradši bych byl, kdyby ses na nápovědy vykašlal úplně, minimálně tak na týden.
[spoiler:
BCD obvious
]


RE: Příklad ITES na lámání si hlavičky #101 - Martin - 06.04.2018

Jasně, tak já klidně počkám měsíc, to není problém.. žádné nápovědy už stejně žádné nemám Ajsmug (a nevyjádřím se tedy ani k tomu spoileru, protože i to by už byla nápověda).

P.S.: Je stejně zvláštní, jak mají někteří lidé velké nutkání si nejdřív přečíst řešení, přitom vědí, že pro ně pak příklad ztratí kouzlo.. To není rýpnutí, jen takové konstatování podivu. To je jako si nejdřív pustit konec filmu Pinkiesmile


RE: Příklad ITES na lámání si hlavičky #101 - Martin - 27.04.2018

Tak už to byl skoro měsíc..



Takže, jak to vlastně celé bylo Pinkiesmile


Nejprve k tomu, co bylo možná nejvíc zřejmé, a tedy nápovědy:


- přiložený HEX soubor mohl pomoci těm, kteří s tím ovšem za mých let pracovali na škole, pokud poznali formát souboru používaný překladačem od firmy EasySoft pro 8051 - pak by už neměl být problém vyluštit, co program vlastně dělá. Původně jsem ho poslal jako sekvenci odstínů šedi, s čímž mi pomohl jeden menší prográmek v Pascalu:


program Hex2Bin;
var InF : text;
   OutF : file of byte;
   Znak1,Znak2 : char;
   Vystup : byte;
begin
Assign(InF,'data.hex');
Assign(OutF,'data.bin');
Reset(InF);
Rewrite(OutF);
while not Eof(InF) do
begin
 Read(InF,Znak1);
 Read(InF,Znak2);
 if Znak1 in ['a'..'z'] then Dec(byte(Znak1),Ord('a')-Ord('A'));
 if Znak2 in ['a'..'z'] then Dec(byte(Znak2),Ord('a')-Ord('A'));
 if (Znak1 in [#10,#13]) or (Znak2 in [#10,#13]) then Break;
 Vystup := 0;
 if Znak1 in ['0'..'9'] then Vystup := Vystup or (byte(Znak1)-Ord('0'))
  else
   if Znak1 in ['A'..'F'] then Vystup := Vystup or (byte(Znak1)-Ord('A')+10);
 Vystup := Vystup shl 4;
 if Znak2 in ['0'..'9'] then Vystup := Vystup or (byte(Znak2)-Ord('0'))
  else
   if Znak2 in ['A'..'F'] then Vystup := Vystup or (byte(Znak2)-Ord('A')+10);
 Write(OutF,Vystup);
end;
Close(InF);
Close(OutF);
end.



.txt   Prevod.hex.txt (Velikost: 96 bajtů / Stažení: 1)


- mohl také rovněž pomoci DAT soubor, což je program, který dělá defakto to samé, ale je psán pro x86 a využívá grafiku (jen formát dat je takový podivný.. kdybych tam dal souřadnice X,Y pro kreslení čar, to by bylo si myslím moc snadné). Tentokrát si nepomohl ani ten, který sice poznal, že jde o DOSový program, a přejmenoval ho tedy na COM, ale při spuštění mu program nic neudělal. Pokud si nevšiml, že jsem jako první instrukci dal EXIT, tak se chudák asi trochu trápil..


testrun = 1
org 100h
use16 ; v 16bitovém COM nebude u use32 fungovat nepřímé adresování!!!!

if testrun=1
nop
nop
else
int 20h
end if

mov eax,13h
int 10h

znovu_klav:
xor eax,eax
inc ah
int 16h
jz neni_klav
xor eax,eax
int 16h
jmp znovu_klav
neni_klav:

mov eax,$a000
mov esi,hello
mov es,ax
xor eax,eax ; barva pixelu
xor edi,edi ; pozice pixelu (X+Y*320)

cld
cyklus:
lodsw
or ax,ax
jz stop
call cara
jmp cyklus

stop:
; mov ah,1
; int 21h
xor eax,eax
int 16h

jmp konec

align 16
cara:
mov ecx,eax
test eax,8192 ;bit13
jz vodorovne
mov ebx,320
jmp test0
vodorovne:
mov ebx,1
test0: and ecx,$fff
test eax,32768 ;bit15
jz test1
neg ebx
test1:
test eax,16384 ;bit14
jz kresli
presun:
add edi,ebx
dec ecx
jnz presun
ret
kresli:
xor eax,eax
kresli_cykl:
mov [es:edi],al
add edi,ebx
inc al
dec ecx
jnz kresli_cykl
ret

hello dw 50+$2000+$4000,10+$4000
H dw 100+$2000,50+$8000+$2000,50,50+$8000+$2000,100+$2000
E dw 10+$4000,50,50+$8000+$4000,50+$8000+$2000,50,50+$8000+$4000,50+$8000+$2000,50,50+$8000+$4000,100+$2000
L dw 60+$4000,50,50+$8000+$4000,100+$8000+$2000
L2 dw 60+$4000,100+$2000,50
O dw 10+$4000,50,100+$8000+$2000,50+$8000,100+$2000
Zero dw 0


; word číslo se znaménkem (bit15) ($8000)
; bit14 v dolním wordu určuje (1) že se nekreslí, jen přesouvá ($4000)
; bit13 = 1 znamená svisle, 0 = vodorovně ($2000)

konec:
xor eax,eax
int 10h

int 20h


Chová se více méně jako plotter, a jeho výstupem je následující obrázek:

   


Ale zpět k tomu zadání..


Schémata, která jsem k tomu přiložil, měla alespoň trochu ozřejmovat, o jaké jde zařízení a tedy i to, co dělá.. Program samotný pak už nemusel být až tak moc důležitý. Ale zde je:


org 0
clock bit p1.0
data0 bit p1.1
anl p1,#11111100b
mov r7,#35
l0: setb clock
clr clock
djnz r7,l0
setb data0
setb clock
clr clock
mov r0,#0
mov r7,#5
mov dptr,#tab
l2: mov a,r0
movc a,@a+dptr
mov r6,#7
l1: rrc a
mov data0,c
setb clock
clr clock
djnz r6,l1
inc r0
djnz r7,l2
sjmp $
tab: db 76h,79h,38h,38h,3fh
end
; obvod M5451, 7seg bez dekoderu, 5 displayu, spolecne U +5V, 1=ON



Obrázky neobsahují kompletní návod na postavení daného zařízení (jako ve filmu Kontakt), protože by to dalo moc práce, a stejně by se v tom málokdo vyznal, takže v rámci zjednodušení vyjdeme z toho, že tento můj nákres může lidem, co se v dané oblasti pohybují, vyvolat dojem, že to vlastně už viděli (a kdo ví, třeba i mimozemšťané mohli vyjít z rozboru nějaké naší sondy). Nejde o to, jaké jsem použil symboly, jde o jejich souvislosti.

A kdo ještě stále nepoznal, o co jde.. tak je to obyčejné
"HELLO world" Pinkiesmile na pěti 7 segmentových LED zobrazovačích s budičem (řadičem) (původně mne napadlo použít dynamické displaye s jedním portem, ale on se ten program ani moc nelišil, takže rozdíl by byl jen ve schématu a bylo by už moc jednoduché).