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
Celé vlákno · 6 zpráv
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
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/
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
Re: Příkaz SAVE v Basicu
LHS Commodore C64
Ty adresy, co jsem psal, tak jsem asi napsal blbě. Mrknul jsem do Mapping the C64 (http://unusedino.de/ec64/technical/project64/mapping_c64.html) a zdá se mi, že to jsou adresy $281-282 a $283-284. LHS
C64 Basic
Honza117 Commodore C64
Knížka ke stažení o C64 basicu - http://10print.org/