Konference: Commodore C64 a další
Od: | LHS |
Datum: | 7.1.2013 22:15 |
Předmět: | Re: Příkaz SAVE v Basicu |
Budu to tahat hodně z paty, je to už dááávno, co jsem to řešil, ale díky
za reminiscenci na mládí...
Když je někdo všech lůzrů futrál a socka k tomu a chtěl by řešit
stroják/assembler a nemá ani cartridge, tak může oblbnout rutinu SAVE.
Např. jsem resetoval demo, pomocí POKE 53265 a POKE 53272 jsem si
zjistil, kde v paměti je charset, co si chci uložit.
V zeropage se vyskytují pointery Basicu, kolem adres $2B - $48. Už fakt
nevim přesně který, ale je tam i počáteční a koncová adresa
"aktuálního
programu" (myslim že 2B+2C je start a 37+38 je end, ale fakt jen
myslim). Takže do těchto pointerů můžeš zapsat např. adresy $2000 a
$2800 a když dáš v Basicu SAVE, uloží se tato paměť.
Předpokládal bych, že rutina LOAD naplní tyto pointery podle toho, co
natáhla. Proto když nahraješ hru, která má 1 řádek se SYS a zbytek je
stroják a dáš hned SAVE, tak to funguje správně.
LHS
Factor6 (c64 tu byla ta zakroucena vec pandora.cz) napsal(a):
>
> Zajímala by mě jedna věc.
>
> Debilní Basic na C64 má příkaz SAVE, ale neumožňuje určit adresu a
> délku, případně typ ukládaného souboru.
> Co vlastně ten basicovský SAVE ukládá?
>
> Nechápu to kvůli jedné věci. Když nahraju něco co je ve strojáku do
> paměti, třeba z kazety hru s basicovým spouštěcím řádkem SYS a
> následně to uložím pomocí SAVE"NAZEV" tak jak ten počítač ví, od
které
> adresy a jak dlouhý blok má uložit?
>
> (všude jinde na jiných kompech (kromě Atari) jde u SAVE totiž zadat
> parametr od jaké adresy a jak dlouhý blok se má ukládat, tak jako na
> C64 v nějakém cartridge-monitoru).
>
> Možná v tom mám hokej, ale rád bych tohle pochopil.
>
> F6
>
> ---
> Pobyty na horách se slevou
> http://raketa.cz/slevy/pobyty/hory/
>