Skip to content

Commodore-pojan pokekätkö Mystery Cache

This cache has been archived.

Pihti: Arkistoidaan kunnes kätkö päästään huoltamaan. Tarkoitus viedä uusi purkki.

More
Hidden : 6/23/2012
Difficulty:
4 out of 5
Terrain:
1.5 out of 5

Size: Size:   small (small)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Related Web Page

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

Koordinaattien ratkettua helppo kätkö. After coordinate resolve a easy cache.

Tämä koodi on mahdollista purkaa joko käsin tai tehdä siitä ajettava binääri commodore-tietokoneelle tai emulaattorille, jolloin pokeat koordinaatit muistipaikkoihin 50000-50003 ja komennat käskyn sys49152 ja luet sitten arvot samoista paikoista. Helpoin ja nopein tapa on siis ladata commodore 64-emulaattori ja ACME-kääntäjä ja kutpastata ja siistiä tämä koodi sille.

Alla oleva ohjelma on assembler-kielinen. Sen tulkitsemiseen sinun on tunnettava 6502-käskykantaa, josta selitykset alla.

Huom! 6502-prosessori on 8-bittinen prosessori, joten kaikki luvut ovat väliltä 0-255 mitä se haluaa. Tämä koodi laskee siis kaiken 8-bittisillä numeroilla.

Tämän koodin ratkaisuun tarvittavat selitykset:
LDA - lataa arvo
STA - tallenna arvo
ROL - pyöritä tavun sisältöä vasemmalle
CMP - vertaa arvoa (# - tarkoittaa sitä että verrataan TÄTÄ arvoa)
BNE - hyppää jos epätosi
CLC - nollaa c-lippu
ADC - laske yhteen akku, muistipaikka ja c-lippu
INC - lisää arvoa yhdellä
DEC - vähennä arvoa yhdellä
PHA - laita akun arvo pinoon myöhemmin otettavaksi
PLA - ota aiemmin otettu akun arvo pinosta
RTS - palaa kutsujaan

Suosittelen menemään käsky käskyltä läpi miten ohjelma toimii.
major = koordinaattien asteluku
minutehi = koordinaattien 00 xx.0000 -osasta xx
minutemid = koordinaattien 00 00.xxxx osasta yli 255 oleva osa
minutelo = koordinaattien 00 00.xxxx osasta alle 255 jäävä osa

Koordinaattien laskentakaava:
naatit = major minutehi.minutemid*256+minutelo


!cpu 6502

major=50000
minutehi=50003
minutemid=50002
minutelo=50001

*=49152
    lda major
    cmp #63
    bne ycoor
    inc minutehi
    inc minutemid
    clc
    lda minutelo
    rol
    rol      
    rol    
    sta minutelo
    rol    
    pha
    adc minutelo
    sta minutelo
    pla
    rol    
    rol    
    adc minutelo
    sta minutelo
    rts
ycoor    inc minutehi
    inc minutemid
    clc
    lda minutelo
    rol
    rol
    sta minutelo
    rol
    rol
    adc minutelo
    sta minutelo
    dec minutelo
    rts

Coordinates input form:
Major to 50000
Value left from dot: 50003
Value right from dot: 50001-50002 in 6502 format

Käytä alkukoordinaatteja muodossa Nmajor hi.milo Emajor hi.milo

Kätkön referenssikoordinaatit ovat koordinaatit, joiden käsittely tehdään ylläolevalla koodilla.

Koodi ratkaisee oikeat koordinaatit. Sinun tarvitsee vain mennä oikeisiin koordinaatteihin
ja logata kätkö!


Ohjelman alkuperäinen lähdekoodi: Source.a
Tarkasta geocache.fi:n palvelussa onko ratkaisusi oikea

Additional Hints (Decrypt)

Inyxbvara Juvgr

Decryption Key

A|B|C|D|E|F|G|H|I|J|K|L|M
-------------------------
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

(letter above equals below, and vice versa)