2UEXP.BA.LER]S U D Ler}s ..................DD Q$KD( Q$"*" "Tob}bb (RETURN)" ; A$ : 20\D2 Q$"" eD< Q$nDF 30Dd " Ler}s"DfDh "E progrUam c`lja bemutatni egy olyan m[d-"Dj "szert, amely segts`g`vel programjaink"%El "ler}s}t kazett}n elk~ldhetj~k egym}snak."SEr "El{nye egyszer~s`g`n kiv~l az, hogy a"Et "nyomtat[val rendelkez{ PRIMO-felhaszn}-"Ev "l[k a 'PRINT' utast}sTUt 'LPRINT' utas-Ex "t}sra }trva, a sz|veget kinyomtathatj}k."EzF| "K`rem, haszn}lja `s terjessze."FAF " Tisztelettel"GFrF " Somogyi Gy|rgy"|F "*"F" EXPANDED BASIC ler}sa"," ",!U" "bG" A program 30 _j sz[t defini}l az ere-","deti BASIC szavak mell`, h}rom kihasz-","n}latlan funkci[t felhaszn}lhat[v} tesz","`s kijavtja a LIST,EDIT,DELETE utasit}-","sok 'bogarait'.oG" ","*"H"A LIST,EDIT `s DELETE utast}sok hib}i:"," U"," 1. Ha egy sorba a 'lenyil' segts`g`vel","128 feletti k[d_ karaktert vitt~nk be","akkor azok helyett edit}l}skor `s lis-"H"t}z}skor az ilyen k[d_ utast}sok jelen-","tek meg."," 2. Ha 0. sorsz}m_ sort javtottuk a sor-","sz}m nem jelent meg."," 3.U Ha edit}l}skor BRK-t nyomtunk, az"bI"edit}l}sb[l ugyan kil`pt~nk, de soreme-","l`s nem t|rt`nt."," 4. Ha a DELETE utast}sban nem l`tez{ ","sorra hivatkoztunk hibajelz`st kaptunk."," ","*"J"Ezent_l a DELETE ut. szintaxisa megegye-","zik a LIST utkUast}s`val, azzal a k~l|nb-","s`ggel, hogy ha csak DELETE-t irunk _gy","a program nem t|rl{dik, hanem hiba~zene-"J"tet kapunk."," 5. Ha 210 karaktern`l hosszabb","sort javtottunk, a g`p nem korl}tozta a","sor hosszt `s elsz}llt. Ezent_l a g`p ","nem Uenged`lyez besz_r}st, mg a sorhosszt"J"210 byte al} nem cs|kkentett~k."," ","*"K" A program tov}bbi szolg}ltat}sa hogy ","teljes sz|veg hiba~zenetet ad."," A tokeniz}l}s m[dost}sa miatt ","?LINE TOO LONG ERROR jelz`st kapunk ha a "XL"toU keniz}l}s sor}n a sor hosszabb lett","mint 255 byte",""," A be`ptett [r}t b}rmely file kezel{ ","utast}s haszn}latakor ki kell kapcsolni.","Ez automatikusan megt|rt`nik, ha azokat" M"EXPANDED BASIC SYSTEM-ben g`gelt~k be."," ","*","Ha BASIC-ben elkeUzdett programot folyta","tunk `s [r}t is akarunk haszn}lni, akkor","az |sszes file-kezel{ utast}st tartal"M"maz[ sort EDIT-ben lehvjuk `s javit}s","n`lk~l SIFT+'lenyil-lal elk~ldj~k.Kiv`-","telt k`peznek azok a sorok, amelyekben","csak PRINT# vagy InU NPUT# ut. szerepel."vN"Ha file-kezel{ utast}st haszn}lunk,","mik|zben az [ra kijelz`sre van kapcsolva","a file visszaolvashstatlan lesz.","EXPANDED BASIC-ben rt programot ne ja-","vtsunk BASIC-ben!"," ","*";O"Az EXPANDED BASIC uj szavainak ler}>U sa"," "," A./ PARANCSOK"," "," REN a,b ]tsorsz}mozza a programot ","a-t[l kezdve b l`p`sk|zzel. Az elhagyott","param`ter `rt`ke 10 lesz. A programban "O"szerpl{ GOTO,GOSUB,THEN,ELSE,RUN,RESTORE,","RESUME,ERL=,ERL<,ERL>,ERL<>,ERL=>,`s","ERL=< utastU }sok m|g|tti sorsz}mokat is","}trja."," ","*"xP" FIND sz|veg A BASIC program olyan","sorait, amelyben el{ford_l a sz|veg, ","kilist}zza a k`perny{re. Folyamatos lis-","t}z}shoz egy billentyt (kiv`tel:BRK)"#Q"}lland[an nyomi kell. A BRK hat}s}U ra a ","g`p visszaker~l parancs ~zemm[dba.","Ha egy parancsot akarunk megkeresni,akkor","a teljes parancsot kell a sz|vegbe irni."{Q"P`ld}ul nem el`g a NEXT utast}sok megke-","res`s`hez FIND NEXT beir}sa."," ","*"'R" CMCT (compact) T|m|rti a U BASIC ","programot. A programban tal}lhat[ feles-","leges kett{spontokat, sz[k|z|ket `s REM ","utast}sokat kiszedi majd a programot "R"1-t{l kezdve egyes`vel }tsorsz}mozza"," "," VARS Ez a parancs kilist}zza a prog-","ram v}ltoz[it, `s ezek `rt`keSUit a k`per-","ny{re. A folyamatos list}z}shoz egy bil-"S"lentyt (BRK kiv`tel`vel) kell folyamato-","san `rinteni. A BRK meg`rint`s`re ag`p","parancs ~zemm[dba ker~l."," ","*"," ARRS T|mb|k. L}sd VARS, csak a t|mb|-","ket list}zza ki."," "T" TYUPS Tipusok. A v}ltoz[k alap`rtelme-","z`s tipus}t kilist}zza a k`perny{re. ","Ezek a tipusok v}ltoztathat[k meg a T"DEFINT,DEFSTR,DEFSNG,DEFDBL utast}sok","segts`g`vel."," "," OLD A NEW utast`ssal t|r|lt progra-","mot }lltja vissza, ha id{krU|zben m`g nem"T"vett~nk fel v}ltoz[kat."," ","*"[U" APPEND ''filen`v'' A memori}ban lev{-","program ut}n t|lti a filen`v nev file-t","a magn[szalagr[l.Ha nem adunk meg nevet" V"az els{ utj}ba ker~l{ file-t t|lti be.","A nembet|lt|tt blokkokNUat, melyekben k`p-","erny{ vagy assembler blokkok tal}lhat[k,","a g`p inverz blokksz}m kijelz`ssel jelzi"V" Az auto startok `ppen ez`rt nem hatnak.","Ha az eredeti programban szerepel egy ","10-es sor, `s a kazett}n is van egy10-es","sor, a program miU ndkett{t fogja tartal-"V"mazni`s a g`p megzavarodik.(L}sd a MERGE","parancsot!)"," ","*"W" MERGE ''filen`v'' A mem[ri}ban lev{","programhoz hozz}fzi a szalagon lev{ ","programot, majd az eredetileg g`pben ","lev{ programot 1-t{l kezdve egyes`vU!el }t-"YX"sorsz}mozza, ezut}n a keletkezett utols[","sorsz}m+1-t{l kezdve egyes`vel }tsorsz}-","mozza a kazett}r[l bet|lt|tt programot,","`s v`g~l az eg`szb{l egyet csin}l. A file"X"bet|lt`sre igaz az APPEND parancs file","bet|lt`se."," "X" "U","*"?Y" HELP Kilist}zza az utols[ hib}s sort,","inverzen a hib}s utast}ssal. Ha ez nem","t|rt`nik meg, akkor a hib}t m}r valahogy","t|r|lt~k."," ","*"Y" B./ UTAST]SOK"," "," WRITE ''filen`v''.......","A megadott n`vvel file gener}lhat[. ","XU#A file tartalmazhat k`perny{ darabokat,","assembler vagy BASIC programot. A file"Z"lehet autostartos BASIC vagy assembler ","file is. Az egyes blokkokat k~l|n-k~l|n","kell a n`v ut}n egym}st[l vessz{vel elv}-","lasztva azokat. " [" K`perny{ blokk ZU$megad}sa:WRITE ''n`v'',S,","az els{nek kimentend{ k`psor sz}ma, az ","utols[nak kimentend{ k`psor sz}ma."[" "["*"," Assembler blokk megad}sa:","WRITE''n`v'',A, az els{nek kimentend{"," byte cime,! ahov} az els{nek kimentend{","byte bet|lt{dik, az%U% utols[nak kimen tend{","byte cime,AUTO, indit}si cm."^\"A m}sodik cm elhagy}sa eset`n, a file ","oda t|lt{dik ahonnan kimentett~k.Az AUTO","`s az ut}na k|vetkez{cm elhagy}sa eset`n"\"a file nem lesz autostartos `s tov}bbi","blokkok adhat[k megmU&."\" ","*"2]" BASIC blokk megad}sa:","WRITE''n`v'',B,az els{nek kimentend{ sor","sorsz}ma, az utols[nak kimentend{ sor ","sorsz}ma,RUN."]"Ha elhagyjuk a RUN-t, a program nem lesz"," autostartos,`s tov}bbi blokkok adhat[k","meg ."]" "K^JU'"*","Ha BASIC `s assembler programot is kimen-","t~nk `s assembler autostartot rendel~nk","el, a g`pi k[d_ programnak gondoskodnia","kell a BASIC mutat[k }llt}s}r[l !"^"Legegyszer~bb, ha gy kezd{dik a program:","CALL 1AF8H;INC HL;LD(40F9H),HL;CALLU( 1B61H","`s, ezek ut}n a stack ~res."," ","*"^_" CLOCK ON [ra bekapcsol}sa. Az [ra","m}sodpercenk`nt egyet l`p, `s ak`perny{","jobb fels{ sark}ban l}that[, [[::PP:MM","form}ban."," "_" CLOCK OFF [rajelz`s letilt}sa. Az [ra","elt~nik a jobb fegU)ls{ sarokb[l, ha ott ","volt de a g`pben j}r tov}bb."," "_"*"N`" CLOCK STOP [ra meg}llt}sa.Az[ra ","elt~nik a jobb fels{ sarokb[l,ha ott","volt, `s meg}ll."," "`"CLOCK START [ra indt}sa. Az [ra el-","indul, ha }llt, egy`bk`nt j}r tov}U0bb, DE","nem ker~l kijelz`sre."," "`"*"xa" CLOCK SET ''[[:PP:MM'' [ra be}llt}sa","Az [ra a string kifejez`sben megadott","`rt`ket veszi fel.A stringkifejez`s ","form}tuma a fentiek szerint 8 karakteres."@b" DPOKE CM,..,... A memoria }trU1}sa ","k`tbyte-os sz}mokkal. A megadott cmt{l","kezdve elhelyezi az ut}na }ll[ sz}mokat.","A felsorolt sz}mok -32768-t[l 32767-ig","terjed{ eg`szek lehetnek."b"A sz}m alacsonyabb byte-ja ker~l a cmre,","majd a cm n{ egyel, ahov} a fels{ byte","ker~;U2l `s cm ism`t n{ egyel.Ide ker~l a ","k|vetkez{ sz}m als[ byte-ja... ...eg`szen" $c"addig mg alist}nak v`ge nincsen."," ","*"c" SPOKE cm, string, string,","A memoria }tr}sa a stringekben lev{ ka-","rakterek `rt`keivel . A cmt{l kezdve be-","U3rja a memori}ba a stingekben lev{ karak-","terek k[djait, minden egyes karakter"Pd"ut}n n|velve a egyel a cmet, mgnem a"," stringek list}j}nak a v`g`re nem `r."," ","*"d" C./ F^GGV@NYEK"," "," "," XOR(A,B) Az A `s B eg`sz kifeje-","zU4 `st, bitenk`nt, egy m}ssal kiz}r[ vagy","kapcsolatba hozza `s ezt adja eredm`ny~l."," "re" DPEEK(cm) A cmen lev{ byte `rt`-","k`hez hozz}adja a cm+1-en lev{ byte","`rt`k`nek 256 szoros}t."," ","*"!f" BIN$(eg`sz kif.) A f~ggv`ny `rt`k U5! egy 16 karakter hossz_ bin}ris karakter- sorozat, mely csak 0 `s 1 karaktereket tartalmaz , `s melynek a bin}ris `rt`ke a"f"z}r[jelek k|zti kifejez`s `rt`ke. A kife- jez`s `rt`ke -32768-t[l 32767-ig terjed- het."f" ","*"k"az egybyte-os kifejez`st, mely `rt`ke","0-t[l 255-ig terjedhet."," "Gk"*"k" HEXA$(eg`sz kif.) A f~ggv`ny `rt`k","hexadecim}liss} alaktva tartalmazza,","fUA'string form}j}ban, az eg`sz kifejez`st "9l"(`rt`ke -32768-t[l 32767-ig terjedhet),","de _gy, hogy a felesleges null}k nem je-","lennek meg."," ","*"l" PEEK$(cm,hossz,maszk) A f~ggv`ny egy ","olyan stringet ad eredm`ny~l, melyben a","megadott cm!UB(t{l megadott darabsz}m_ byte"om"van falhozva egyes`vel bitenk`nti logikai","@S kapcsolatba hozva a maszkkal. Ha masz-","kot nem adunk meg, `rt`ke automatikusan ","255 lesz. A hossz `rt`ke 1-t{l 255-ig "m"terjedhet. Nulla hossz eset`n ~res strin-",UC)"get kapunk, de a t|bbi stringv}ltoz[ ","`rt`ke megzavarodik."," "n"*"," VALUE(string kif.) A f~ggv`ny `rt`k","tipusa f~gg a megadott stringt{l. A f~gg-","v`ny ugyanis a megadott stringet mint ","aritmetikai kifejez`st tekinti, `s kisz}-@o"mtjUD*a a helyettest`si `rt`k`t, att[l","f~ggetlen~l, hogy az stringet, vagy sz}m-","v}ltoz[t eredm`nyez-e.(Pl.:A$=''5*6''"," VALUE(A$)=30 , `s tipusa sz}mv}ltoz[."o "Ha B$=''CHR$(42)'', VALUE(B$)=''*''","`s ez term`szetesen string.) Ha a VALUE","f~ggv`nyreUE+ ?SYNTAX ERROR-t kapunk, `s a ","f~ggv`ny form}tuma t|k`letes, lehet, hogy"p "a f~ggetlen v}ltoz[ban van a hiba."," ","*"p" TOKEN(string kif.) A megadott stringet","tokeniz}lja, `s ezt adja eredm`ny~l.","A visszaadott stringben a mveleti jelek"UF,,"`s f~ggv`nyek, valamint az utast}sok he-"Sq"lyet tokenj~k lesz l}that[. A f~ggv`nyre","az`rt van sz~ks`g, mert ha a VALUE-t so-","rozatosan ugyanazzal a stringel haszn}l-"r"juk, azt minden alkalommal tokeniz}lja,","ami hosszadalmas. Teh}t, ha esUG-gy stringet","sokszor kell f~ggv`nyk`nt v`gigsz}molni,","akkor gyorsabb, ha az elej`n tokeniz}ljuk"9r"`s ezt a stringet sz}moltatjuk v`gig."," ","*"r" FUNC(string kif.) A TOKEN$-ral toke-","niz}lt stringek helyettest`si `rt`k`t","sz}mtja ki.(UH.Mint a VALUE, csak ennek ","m}r tokeniz}lt stringet kell }tadni.)"," "Us" TIME$ Az [ra aktu}lis `rt`k`t kap-","juk meg 8 karakteres stringben, ","[[:pp:mm form}ban."," "^s"*"t" & hexadecim}lis sz}msor","Hexadecim}lis sz}mmegad}st tesz lUI/ehet{v`.","Pl.:PRINT&56CE hat}s}ra az 56CE hexadeci-","m}lis sz}m decim}lis `rt`ke jelenik meg."#t" "," V @ G E"," ","*"-t ""Rt' R|gzt`s .....................kt' "SAVE k|vetkezik" t' "Exp.b.ler}s"t' "TEST k|vetkezik"t'êPP