OldComp.cz
http://oldcomp.cz/

Čísla řádků programu nad 9999
http://oldcomp.cz/viewtopic.php?f=40&t=493
Stránka 11

Autor:  Busy [ 18.09.2013, 07:05 ]
Předmět příspěvku:  Re: Čísla řádků programu nad 9999

misticjoe píše:
Na tohle se ptám spíš ze zvědavosti, než že bych to nutně potřeboval. Kdysi dávno se mi podařilo přerušit nahrávání Commanda a dostal jsem se do BASICu. Už nevím, co všechno hra řešila via basic, ale zaujalo mě, že tam byly klidně řádky 48952 a BASIC ani trochu neprotestoval.
Rutinka v romke dokaze vypisat iba stvorciferne cislo riadku, preto ak si tam videl napr. 48952 tak to sa mohlo stat napr. tak ze to bol riadok cislo 4895 a znak '8' bol prvy znak na riadku. Ak by si takyto riadok spustil, urobilo by to Nonsense in basic 4895:1 kedze znak '8' nie je ziadny platny prikaz basicu.

Autor:  Aki [ 18.09.2013, 09:11 ]
Předmět příspěvku:  Re: Čísla řádků programu nad 9999

Busy píše:
misticjoe píše:
Na tohle se ptám spíš ze zvědavosti, než že bych to nutně potřeboval. Kdysi dávno se mi podařilo přerušit nahrávání Commanda a dostal jsem se do BASICu. Už nevím, co všechno hra řešila via basic, ale zaujalo mě, že tam byly klidně řádky 48952 a BASIC ani trochu neprotestoval.
Rutinka v romke dokaze vypisat iba stvorciferne cislo riadku, preto ak si tam videl napr. 48952 tak to sa mohlo stat napr. tak ze to bol riadok cislo 4895 a znak '8' bol prvy znak na riadku. Ak by si takyto riadok spustil, urobilo by to Nonsense in basic 4895:1 kedze znak '8' nie je ziadny platny prikaz basicu.


Normálně to není možné. Řádek 10000+ je možné udělat jako fake, ale nikdy se nebude jako číslo 10000+ chovat a bude to jen fake na oko. Viz co psal Busy. Popsaný jev je výsledek chybného načtení bajtů při nahrávání, pravděpodobně špatnou kvalitou záznamu/nastavení magnetofonu.

Autor:  Busy [ 18.09.2013, 09:54 ]
Předmět příspěvku:  Re: Čísla řádků programu nad 9999

Inak samotny interpreter basicu pri behu dokaze pracovat s cislami riadkov az do 16383. Priklad: Zadajte 9999 PRINT "Toto je riadok 10000", potom zadajte POKE 23756,16. Tym sa cislo riadku 9999 zmeni na 10000. A v pohode sa da spravit GOTO 10000 a program bude pekne fungovat.

Akurat LIST v tomto pripade vypise :000 PRINT... :) pretoze konverzia dvojbajtovej hodnoty cisla riadku nepocita s tym zeby cislo riadku mohlo mat viac ako 4 cislice. Preto ako najvyssi desiatkovy rad neuvazuje desattisic, ale iba tisic, a prva cislica mu potom (logicky) vyjde s hodnotou 10. A hned za znakom "9" nasleduje v ascii kode znak ":" preto sa tato dvojbodka vypise na miesto prvej cislice.

PS: Schopnost interpretra pracovat s cislami riadkov az do 16383 som vyuzil vo svojej bsrom a opravil som rutinku vypisu cisla riadku tak, aby vedela vypisovat aj desattisice, takze tam mozete pracovat s 5-cifernymi cislami riadkov uplne plnohodnotne - daju sa riadne editovat a vypisovat LISTom. A samozrejme bsrom plnohodnotne podporuje aj editaciu nulteho riadku ;)

Stránka 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/