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/ >