TIFS ---- TIki FilSystem er en modul innen TIKO som inneholder de fleste systemfunksjoner som man får bruk for. Modulen tilsvarer BDOS i CP/M-2.2. Fil-kontrollblokk (FKB) Filsystemfunksjoner krever en peker til en FKB: byte 0: platelager (0-16) 0: bruk innlogget plate 1-16: bruk plate A til P byte 1-8: 8 tegns filnavn (bit 7 = 0). Legg til blanke tegn på slutten for filnavn under 8 tegn. byte 9-11: 3 tegns filtype. bit 7 byte 9: skrivebeskyttelsesattributt bit 7 byte 10: systemfilattributt byte 16-31: her fylles argument 2 til et program inn av TKT byte 33-35: R0-R2 - brukes av funksjoner 33-36,40 Bytes 12-35 bør settes lik 0 av program før bruk. Ønskes mer informasjon om disse, les en bok om CP/M-2.2. TIFS funksjoner Man kaller en TIFS funksjon ved å laste inn funksjonsnummeret i C registeret og evt. funksjonsargumenter i DE eller E registeret. Deretter kaller man adresse 0005 (CALL 0005). TIFS funksjoner returnerer med 8 bits returverdier i A registeret og 16 bits returverdier i HL registeret. Dessuten vil alltid A og L registeret og B og H registeret være like. Nr Navn Inn parametre Ut parametre 0 Last opp TIKO 1 Tastatur inn A = tegn 2 Skjerm ut E = tegn 3 Port inn A = tegn (1) 4 Port ut E = tegn (1) 5 Skriver ut E = tegn 6 Direkte terminal inn/ut (2) (2) 7 Hent I/U celle A = I/U celle (3) 8 Sett I/U celle E = I/U celle (3) 9 Skriv tegnsekvens DE = strengadr (4) 10 Les tastaturlinje DE = linjebuffer (2) 11 Tastaturstatus A = 0 / 0ffH 12 Versjonsnummer HL = 0022H 13 Initier filsystemet A = 0 / 0ffH 14 Velg ut plate E = platenr 15 Åpne fil DE = FKB A = katalogkode (5) 16 Lukk fil DE = FKB A = katalogkode (5) 17 Søk etter første DE = FKB A = katalogkode (5) 18 Søk etter neste A = katalogkode (5) 19 Fjern fil DE = FKB A = katalogkode (5) 20 Les sekvensielt DE = FKB OK: A=0, EOF: A<>0 21 Skriv sekvensielt DE = FKB OK: A=0, Feil: A<>0 22 Lag fil DE = FKB A = katalogkode (5) 23 Endre filnavn DE = FKB A = katalogkode (5) 24 Hent innloggingstabell HL = tabell 25 Hent utvalgt plate A = platenr 26 Sett lese/skrive adresse DE = adresse 27 Hent blokktabell adresse HL = adresse 28 Skrivebeskytt plate 29 Hent skrivebeskyttete plater HL = vektor 30 Sett filattributt DE = FKB A = katalogkode (5) 31 Hent platetabell adresse HL = adresse 32 Sett/hent bruker nr (2) (2) 33 Les vilkårlig sektor DE = FKB OK: A=0, Feil: A<>0 34 Skriv vilkårlig sektor DE = FKB OK: A=0, Feil: A<>0 35 Beregn filstørrelse DE = FKB R0,R1,R2 satt 36 Beregn vilkårlig sektor DE = FKB R0,R2,R3 satt 37 Logg ut plater DE = Platevektor 40 Skriv vilkårlig sektor DE = FKB OK: A=0, Feil: A<>0 med NULL-stilling (1) Skriver til / leser fra serieport P2 (2) Se definisjon i CP/M-2.2 BDOS manual (3) TIKO's I/U celle er slik: bit 0 = 0: Tastatur INN fra innebygget tastatur bit 0 = 1: Tastatur INN fra terminal over serielinje bit 1 = 0: Skjerm UT funksjoner sender til standard videoskjerm bit 1 = 1: Skjerm UT funksjoner sender til terminal over serielinje bit 2-7: Ikke brukt, men reservert. (4) Avslutt tegnstreng med $ (5) Katalogkode: Hvis feil: 0ffH Adresse til katalogelementet = lese/skrive buffer + 32*katalog-kode For mer informasjon om disse funksjonene, les en bok om CP/M-2.2. --- 13 juli 2000 Asbjørn Djupdal, djupdal@stud.ntnu.no