Kristoffer Eriksson
<5357>
· Text 3562 · w8 · kommentar
1987-05-20 20:46
Ärende: BASIC-slav som simulerar BASIC II
Småplock om BASIC-II:
GET kan liksom PUT användas på filer, och inte bara tangentbordet.
Syntaxen tillsammans med COUNT är för GET: GET (#fil)(,)Variabel¤
(COUNT antaltecken)
RESUME återupptar exekveringen på den plats ett fel inträffade
(förutsatt att något har inträffat). Denna plats kan ibland vara
mitt inne i en Basic-instruktion, så hellst ska felutgången ur
instruktionen bevara en returadress som RESUME kan använda sig av.
Om man gör ON ERROR GOTO (utan radnr) i ett program som innehåller
RESUME, efter att ett fel inträffat, men innan RESUME påträffats,
utlöser det det fel som inträffade från början och stoppar pro-
grammet. Att göra RETURN före RESUME till en högre stacknivå
än där felet inträffade, så går inte det heller bra.
TIME¤ ger både datum och tid, och dem får man ställa med POKE.
TXPOINT a,b,0 motsvarar CLRDOT och ...,1 motsvarar SETDOT. Vet
inte om det är rad eller kolumn som anges först.
Hur klarar du lokala variabler i funktioner? Och t ex RETURN av
strängvariabler? Har du löst det själv, eller kikat på ABC800-
tolken?
COMMON har samma syntax som DIM, men måste ligga före all annan
användning av variabler i ett program. Alla COMMON-variabler
buntas ihop, checksummas, och bevaras vid CHAIN, så nästa program
med samma COMMON (enligt checksumman) kan komma åt dem.
ON xx RESUME aa,bb,cc... finns.
WIDTH (#filnr),radlängd finns.
HEX¤(tal) och OCT¤(tal) finns.
VAROOT(variabel) och VARPTR(variabel) för pekare till variabel-
posten resp variabelns innehåll finns.
PEEK2(adress) finns.
SYS(2)=Totalt tillgängligt arbetsminne för Basic.
SYS(3)=Programstorlek.
SYS(4)=Ledigt minne för variabler o dyl.
SYS(8)=Tangent nedtryckt.
SYS(10)=IY.
SYS(11)=Adress till programmets början (BOFA).
SYS(12)=Variabelroten.
ATTRIBUTE x finns på ABC806.