Hans Holmberg
<2838>
· Text 3569 · w8 · kommentar
1987-05-22 01:13
Ärende: Snicksnack - här behövs hjälp
Checka upp läs- & skriv-rutinerna och hoppa över den
rutin som lägger upp Q0¤ i variabellistan.
Eller så är man så fräck att när det gäller
POSIT/PUT/GET så ändrar man variabeltabellens entry till en redan
befinlig fast tabell, där bara Q0¤ finns med.
När man har gjort läsningen eller skrivningen så lägger man tillbaka
ursprungsläget för variabel-listan.
Med andra ord så blir Q0¤ en 'local' variabel vid kommunikation
med DOS'et. Svårare är det inte.
(Har själv utnyttjat detta en gång i tiden)
Ex.v: först så ändrar du variabellistans entry till en fast
lokal Q0¤.
Sen: LD DE,filnummer : CALL 28666
LD DE,sektor : CALL 28668 (28670 vid skrivning)
När du är klar så stoppar du tillbaka den rätta startadressen
för variabellistan...
DOS-BUFfrarna används till och med som de ska användas då...
I den alternativa var-listan kan det då stå (om jag minns rätt!?!)
00-01 : 0000 Slut på varlistan
02 : 02 varoffset (0-9 x 16) + 02 för sträng (???)
03 : 51 variabelnamnet (51 är asciivärdet för Q i hex)
04-05 : 00F5 F500H=62720 dec. Detta ändras automagiskt vid
call 28666,filnr.
Detta kanske inte stämmer helt för det var ett bra tag sedan jag höll
på med det (har en 800'a nu...)
Jag hoppas att bilden har klarnat efter detta (något röriga inlägg :-/
/Hasse