1 REM Ins{nd av Olle Nilsson <975> 1985-07-05 14.40.39 Info. till rutinerna FNGet$, FNPos(S%), FNInput$(Y%,X%,L%,Hemlig%) Filen ers{tter info. i m|tet ABC800, text 814 ff. F}r g}rna publiceras i Bladet. Tillh|r filen FNGET2 .800. OBS! FILEN FNGET .800 (INS[ND TIDIGARE) INNEH]LLER EN BUGG SOM G\R ATT DEN INTE FUNGERAR TILLFREDST[LLANDE P] ABC800C - N]GON MED TILLR[CKLIGT H\GA "PRIVILEGIER" B\R SE TILL ATT "FNGET .800" TAS BORT! ***** Textstart ******************************************************** Vad {r klockan ? Ofta har man nytta av att kunna l}ta sin dator utf|ra annat arbete {n just inmatning vid t.ex. en GET- eller en INPUT-sats. Att skriva ut aktuellt klock- slag {r ett vanligt problem. I och med att man kan l{sa systemvariablerna f|r mark|rens position, om tangent tryckts ned och sist inmatat tecken med PEEK(nn) f}r man m|jlighet att trixa litet med inl{sningen av ett eller flera tecken. Systemvariabler i ABC800: ========================= adress funktion 65506 tangentbordsflagga, anger om tangent tryckts ned (bit7 satt) 65507 inneh}ller ascii-v{rdet f|r det sist inmatade tecknet 65362 mark|rens X-position 65363 mark|rens Y-position 65364 anger sk{rmens radl{ngd (40/80) I funktionen FNGet$ l{ses ett tecken in och aktuell tid visas kontinuerligt p} sk{rmen, till FNGet$ h|r funktionen FNPos(S%) som sk|ter om sj{lva utskriften av mark|ren. FNInput$ {r en rutin som klarar av att l{sa in en hel textstr{ng samtidigt som klockan visas och man har m|jlighet att definiera var p} sk{rmen inmatning ska ske, den inmatade str{ngens maxl{ngd och om den inmatade texten ska synas som den {r skriven eller ers{ttas med '*'. (Det sista kan vara bra att ha om password ska matas in.) Rutinerna anropas med S$=FNGet$ resp. S$=FNInput$(Y%,X%,L%,Hemlig%) d{r Y%=Y-pos. och X%=X-pos. p} sk{rmen, L%=maxl{ngden och Hemlig% anger om stj{rnor ska ers{tta texten p} sk{rmen. Om Hemlig%=-1% anv{nds stj{rnor och {r Hemlig%<>-1% skrivs texten ut p} vanligt s{tt. Till{ggas b|r att FNInput$( ) m}ste ha med FNGet$ i programmet d} denna rutin anropas fr}n FNInput$( ). Vill man bara l{sa in ett tecken med FNGet$ m}ste man komma ih}g att alltid positionera mark|ren med ; CUR(Y%,X%); innan funktionsanrop g|rs. (Man kan {ven poka in mark|rpos. med POKE 65362%,X%,Y%) Ok, och s} ett exempel: 10 ; CUR(11%,10%); : S$=FNGet$ 20 S1$=FNInput$(13%,10%,10%,0%) ! Normala tecken Har man nu funktionerna inl{sta kommer en blinkande mark|r att hamna i pos. 11,10 (och klockan g}r...) och n{r man trycker ned en tangent hamnar man i pos. 13,10 och en normal textstr{ng p} max 10 tecken kan matas in under det att klockan kontinuerligt visar r{tt tid. Bra va! Slutligen ett par p}pekanden; naturligtvis kan man sudda inmatade tecken med (<-) och abryta inmatning innan maxl{ngden uppn}tts med (RETURN). Dessutom gallras ofelbart alla tecken med ASCII<32 och ASCII>127 ut. Olle Nilsson, Uppsala <975>