OldComp.cz http://oldcomp.cz/ |
|
Čísla řádků programu nad 9999 http://oldcomp.cz/viewtopic.php?f=40&t=493 |
Stránka 1 z 1 |
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 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |