Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Odzyskiwanie skasowanego programu z pamięci  (Przeczytany 377 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Esio

  • Gość
Odzyskiwanie skasowanego programu z pamięci
« dnia: 19 Sierpnia 2013, 15:58 »
100 lat temu jak bawiłem się basic-em na C64 nie wiem jakim sposobem po wpisaniu któregoś POKE udawało się wylistować wcześniej skasowany program poleceniem NEW, a nawet odzyskać jego część po resecie z carta. Dorzucę nawet, że dało się nawet odczytać jego resztki po wyłączeniu komputera na ułamek sekundy(hardcore version). Czy ktoś z was zna może te magiczne liczby ? Chciałem spróbować czy to jest możliwe tylko na realnej maszynie czy emulator też to potrafi.



Offline Mikra_Lbn

  • Level 3
  • ***
  • Wiadomości: 220
    • http://www.lubus.info
Odzyskiwanie skasowanego programu z pamięci
« Odpowiedź #1 dnia: 19 Sierpnia 2013, 22:16 »
Polecenie NEW zeruje dwie pierwsze komórki pamięci, w których zapisany jest program (standardowo 2049 i 2050 czyli $0801 i $0802). W tych dwóch bajtach jest zapisany odnośnik (link) do kolejnej linii programu.
Do odpowiedniego ustawienia wartości tych komórek przyda się monitor assemblera, w którym będzie można szybko podejrzeć pamięć C64. Jeśli program był zapisany od adresu $0801, to kolejne baty oznaczają:
$0801 młodszy bajt linku
$0802 starszy bajt linku
$0803 młodszy bajt numeru linii
$0804 starszy bajt numeru linii
$0805 tu zaczynają się polecenia pierwszej linii programu, która (jak każda inna) kończy się komórką pustą ($00)
Dodając 1 do adresu pierwszej pustej komórki otrzymujesz adres, który trzeba wpisać do $0801 i $0802.

W emulatorze ten sposób też działa. Polecenie OLD z Final Cartidge też. \"\"