Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 6 zpráv

Příkaz SAVE v Basicu

Factor6 Commodore C64

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

Re: Příkaz SAVE v Basicu

Sillicon Commodore C64

Obavam se ze bez cartridge, ktera by to resila rozsirenim BASIC
prikazu a nebo to ulozit v nejakem predem nahranem monitoru
jako data od-do asi nepujde.

BASIC uklada od adresy $0801 az do adresy kam ukazuje pointer
konce BASICovskeho programu. Leda bys prepsal tuhle adresu
POKEm a pak to tak ulozil. Bohuzel neznam adresu toho ukazatele.

Myslim ze ten BASIC s tim nejak nepocita ze bys mel neco v RAMce
o cem BASIC jako ze nevi. Ted jsem si vzpomnel ze s tim jsem mel
trochu problem, ze kdyz jsem si tam nahral treba hudbu od $9000
znakovou sadu od $3000 a dalsi veci a pak BASICovsky programek
ktery se na to odkazoval a spoustel subrutiny SYSem a udelal jsem
v tom programku v BASICu nejakou zmenu tak se zbytek RAMky
proste o dany kus proste posunul takze se to pohnojilo.
Nevim uz presne jestli to vyvolalo tohle poradi nebo neco jinyho.

Pak samozrejme ulozit BASIC i s tim strojakem kdyz mas nejaky
monitor v cartridgi treba FC-III tak ulozit treba na kazetak prikazem
S"name",01,0801,3000 .

Jestli si to nepamatuju presne tak mi nemlatte ale opravte ;-)

Sillicon

Zobrazit citovaný text

---------- Původní zpráva ----------
Od: Factor6 (c64pandora.cz) <f6[doména skryta]>
Datum: 7. 1. 2013
Předmět: Příkaz SAVE v Basicu


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/

Re: Příkaz SAVE v Basicu

LHS Commodore C64

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 (c64pandora.cz) napsal(a):
Zobrazit citovaný text (25 řádků)
>
> 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/
>

Re: Příkaz SAVE v Basicu

Factor6 Commodore C64

Diky, přesně tohle jsem chtěl vědět. Vždycky mě bylo divné, jak to
 vlastně funguje.

F6


Zobrazit citovaný text (13 řádků)
> 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
> 
> 
> 
>> 
>> Možná v tom mám hokej, ale rád bych tohle pochopil.
>> 
>> F6

C64 Basic

Honza117 Commodore C64

Knížka ke stažení o C64 basicu -  http://10print.org/