Kristoffer Eriksson
<5357>
· Text 6971 · w8 · kommentar
1987-06-13 23:02
Ärende: Filloggning
Jag trodde du var ute efter att göra ett terminalprogram eftersom
du refererade ABCUTE.
Det finns väl inget speciellt att lära sig av ABCUTE eller andra
loggande program, utan programmeraren får ju fixa allt själv. Så
ska inkommande data skrivas till flera ställen får man ha flera
skrivande instruktioner i programmet osv.
Jag antar att du får ha något sätt att avgöra om det är
tillräckligt lungnt för att föra vidare data från RAM-floppyn till
disk (när V24-bufferten är tom kanske), och inte glömma att göra
något vettigt om RAM-floppyn blir full och det fortsätter komma
data. Och när det då är lungt anropar du en rutin som kopierar ut
en sektor, och sen kollar man igen. Var det sista sektorn startar
man om från botten i RAM-floppyn, eller också använder man den som
en cirkulär buffert. Är inte kommunikationshastigheten för hög och
data inte behöver delas upp i smådelar som måste behandlas på något
speciellt sätt, går detta att göra i basic till och med.
Men om du skriver i assembler har du ju möjlighet att sköta
V24-hanteringen helt avbrottsstyrt, dvs även om en utskrift till
disk pågår, så hindras inte V24-hanteringen. Då är frågan hur
långa topparna med snabbare tillförsel av data än disken hinner
med kan bli, och hur täta, för att avgöra hur stor buffert mellan
diskhanteringen och V24-mottagningen som behövs. Är det måttligt,
räcker det ju fortfarande att köra i basic och öka V24-bufferten.
I annat fall, kan man då tänkas använda RAM-floppyns minne som
buffert, hellst då utan att gå via RAM-floppy-rutinerna (var det
det du menade med "blockdumpning", eller?); man kan ju inte anropa
DOS för att skriva till RAM-floppyn, samtidigt som man avbrutit en
skrivning till disk.
xDFast enklast kanske är att skaffa en snabb winchester i stället...