home *** CD-ROM | disk | FTP | other *** search
/ Syzygy Magazine 8 / Syzygy_Magazine_8_2002___pl_Disk_2_of_2_Side_A_C.atr / fa_demo.arc / SDXSMB1.DOC < prev    next >
Text File  |  1995-04-04  |  12KB  |  1 lines

  1. ¢ Procedury uslugowe SDX zdefiniowane¢ symbolami.¢ Uwaga: Przez skrot P: oznaczylem¢ parametry, a przez S: sygnalizacje¢ rezultatow (bledow) dzialania.¢¢ Grupa systemowa :¢¢ _INITZ   - procedura inicjuje SDX,¢    podobnie jak jmp ($C).¢¢    P:¢    brak¢    S:¢    brak¢¢ _DOS     - procedura powrotu do dosu¢    programow uzytkowych, jak¢    jmp ($A).¢¢    Uwaga: gdy program ma zwracac¢    bajt statusu do programow go¢    wywolujacych powninien wracac do¢    DOSa poprzez rts (patrz LOAD)¢¢    P:¢    brak¢    S:¢    brak¢¢ S_ADDIZ  - procedura dodajaca do¢    systemowej kolejki inicjacji¢    wektor procedury majacej byc¢    kazdorazowo uruchamianej w fazie¢    inicjowania DOSu (po nacisnieciu¢    reset lub wywolaniu _INITZ).¢¢    P:¢    AX adres procedury.¢    S:¢    C=1 proba nieudana, brak miejsca¢    w kolejce.¢¢ S_LOOKUP - procedura odszukuje¢    symbol o nazwie podanej w SYMBOL¢    w pamieci i ustawia pozostale¢    rejstry tego pola.¢¢    P:¢    SYMBOL+2 nazwa symbolu.¢    S:¢    Z=1 symbol nie znaleziony¢¢ MALLOC   - rezerwuje obszar pamieci¢    rozpoczynajacy sie od memlo i¢    zwieksza memlo o zadana ilosc¢    bajtow.¢¢    P:¢    Y zawsze $00 !!¢    faux4 (2) liczba rezerwowanych¢     bajtow,¢    X preferowana pamiec:¢     2 - w obszarze extended, gdy tam¢     brakuje pamieci, to main.¢     0 - pamiec main.¢¢    S:¢    x=2 przydzielona w extended,¢    x=0 przydzielona w main,¢    x=$FE, N=1 nie przydzielono.¢¢ Obsluga bledow:¢¢ U_SFAIL  - procedura zakladajaca¢    pulapke programu uzytkownika.¢    Zalozona pulapka przechwytuje¢    wszystkie zglaszane przez U_FAIL¢    bledy, zachowuje ona wskaznik¢    stosu identyczny z jej wywola-¢    niem, co pozwale na latwe¢    operowanie bledami.¢¢    P:¢    AX adres pulapki.¢    S:¢    brak¢¢ U_XFAIL  - procedura zdejmuje osta-¢    tnio zalozona pulapke.¢¢    P:¢    brak¢    S:¢    brak¢¢ U_FAIL   - procedura zglaszajaca¢    blad do systemu SDX lub wlasnej¢    procedury o ile jest zalozona¢    przez U_SFAIL, automatycznie¢    dezaktywuje pulapke.¢¢    P:¢    A numer bledu.¢    S:¢    brak¢¢ U_ERROR  - procedura wyswietla¢    systemowy komunikat o bledzie.¢¢    P:¢    Y numer bledu.¢    S:¢    brak¢¢ Obsluga zmiennych srodowiskowych:¢¢ NUMENV   - procedura pobiera z¢    buforu systemowego zmienna¢    srodowiskowa o danym numerze i¢    umieszcza ja pod adresem $580.¢¢    P:¢    A numer zmiennej srodowiskowej.¢    S:¢    N=1 gdy zmienna nie znaleziona.¢¢ GETENV   - procedura pobiera zmienna¢    srodowiskowa o podanej nazwie.¢¢    P:¢    AX adres do nazwy zmiennej.¢    S:¢    N=1 gdy zmienna nie znaleziona.¢¢ PUTENV   - procedura dodaje zmienna¢    srodowiskowa do buforu SDX, lub¢    kasuje ja gdy podana jest tylko¢    nazwa zmiennej.¢¢    P:¢    AX adres nowej deklaracji.¢    S:¢    brak¢¢ Ladowanie programow:¢¢ U_LOAD   - procedura ladujaca plik¢    binarny we wszystkich formatach¢    SDX. Potrafi tez przekazywac¢    parametr zwracany przez urucho-¢    miony plik, jest on niesiony w A.¢    Program zwracajacy parametr musi¢    go umiescic w STATUS i wrocic¢    do DOSu poprzez RTS.¢¢    Uwaga:¢    Gdy program jest nakladka syste-¢    mowa i ma byc umieszczony w pa-¢    mieci na stale musi zmniejszyc¢    rejestr INSTALL.¢¢    P:¢    FILE_P wskaznik do nazwy pliku¢    FLAG tryb ladowania i parametr¢     dla pliku:¢     - gdy ustawiony jest najstarszy¢     bit, program jest tylko ladowany¢     i zatrzymywany w pamieci.¢     - cztery mlodze bity zostaja¢     zachowywane i przekazywane do¢     uruchomionego pliku (w FLAG).¢    A i STATUS wynik dzialania¢     programu.¢    S:¢    poprzez U_FAIL.¢¢ U_UNLOAD - zwalnia pamiec zajmowana¢    przez zaladowane programy.¢¢    P:¢    brak¢    S:¢    brak¢¢ Uslugi rozne (!):¢¢ MUL_32   - procedura mnozy dwie 32¢    bitowe liczby bez znaku, wynik¢    operacji w V1_32 w odwroconej¢    kolejnosci bajtow (najstarszy-¢    najmlodszy) !¢¢    P:¢    V2_32, v3_32 4 bajtowe czynniki¢     iloczynu w odwroconej¢     kolejnosci.¢    S:¢    C=1 wynik poza zakresem 32 bitow.¢¢ DIV_32   - procedura dzieli dwie 32¢    bitowe liczby bez znaku, wynik¢    w V1_32 (patrz MUL_32).¢¢    P:¢    V2_32 4 bajtowy dzielnik,¢    V3_32 4 bajtowa dzielna.¢    S:¢    C=1 dzielenie przez zero.¢¢ TOUPPER  - procedura zamienia male¢    znaki na duze. Wynik w A.¢¢    P:¢    A znak do zamiany.¢    S:¢    brak¢¢ Grupa obrobki nazw plikow:¢¢ U_GEPATH - procedura ustawia DEVICE¢    i PATH na urzadzenie i scierzke z¢    nazwa (o ile jest podana).¢    Gdy nie podano urzadzenia lub¢    jego numeru, procedura przyjmuje¢    urzadzenie domyslne z CURDEV.¢¢    P:¢    FILE_P - wskaznik do nazwy pliku.¢    S:¢    gdy bledna nazwa urzadzenia przez¢    U_FAIL.¢¢ U_GEFINA - procedura ustawia DEVICE,¢    PATH i NAME na urzadzenie, scie-¢    rzke i nazwe (patrz U_GEPATH).¢¢    P:¢    FILE_p wskaznik do nazwy.¢    S:¢    gdy bledna nazwa urzadzenia przez¢    U_FAIL.¢    A='<',Z=1 gdy nie podano nazwy¢    pliku (tylko sciezke).¢¢ PRO_NAME - procedura ustawia nazwe¢    pliku w NAME, gdy podana nazwa¢    poprzedzona sciezka w NAME¢    ustawione bedzie nazwa pierwszego¢    katalogu (lub urzadzenia).¢¢    P:¢    bufadr wskaznik do nazwy pliku¢    Y offset wzgledem bufadr zmniej-¢    szony o jeden.¢¢    S:¢    Z=1 gdy nie podano nazwy pliku,¢    A='<' gdy nie podano nazwy, a¢     nazwe katalogu.¢    A=':' gdy nie podano nazwy, a¢     nazwe urzadzenia.¢    Y offset ostaniego znaku nazwy¢     umieszczonej w NAME.¢¢ U_EXPAND - procedura odwrotna do¢    PRO_NAME, przepisuje ona zawarosc¢    NAME do podanego bufora w formie¢    typowej dla programow (to znaczy¢    nazwy rozdzielonej kropka z¢    rozszerzeniem).¢¢    P:¢    AX adres bufora na nazwe,¢    Y offset bufora.¢¢ U_FSPEC  - procedura dodaje do para-¢    metru w CONFNAM jokery *.* o ile¢    parametr zakonczony jest znakiem¢    katalogu.¢¢    P:¢    brak¢    S:¢    brak¢¢ CHKSPC   - procedura porownuje znak¢    do znakow specjalnych nazwy tz¢    ':>\<'.¢¢    P:¢    A znak do porownania.¢    S:¢    Z=1 znak specjalny.¢¢ _CRUNCH  - procedura zamienia naste-¢    pny parametr z lbuff, na nazwe¢    urzadzenia, scierzke i nazwe¢    pliku zgodna ze standardem¢    ATARI DOS, umieszczona w CONFNAM,¢    o dlugosci w TRAILS.¢    Gdy nie ma nastepnego parametru¢    w CONFNAM umieszczona jest tylko¢    nazwa urzadzenia. Gdy nie podano¢    urzadzenia ustawiane jest urzadze-¢    nie domyslne z CURDEV.¢¢    P:¢    brak¢    S:¢    Z=1 brak parametru.¢¢ Grupa pobierania parametrow :¢¢ U_GETPAR - procedura pobiera naste-¢    pny parametr z lbuff i przenosi¢    go do CONFNAM i CIONBUF, ustawia¢    tez FILE_P na CONFNAM, pomija¢    parametr rozpoczynajacy sie od¢    ukosnika !¢¢    P:¢    brak¢    S:¢    Z=1 brak parametru, lub parametr¢     z ukosnikiem.¢¢ U_GETATR - procedura pobiera naste¢    -pny parametr z lbuff, sprawdza¢    czy definiuje on atrybuty pliku,¢    gdy tak jest procedura ustawia¢    rejestr fatr1. Procedura dziala¢    w petli tz tak dlugo pobiera¢    parametry jak dlugo definuja one¢    atrybuty. Gdy zaden parametr tego¢    nie robi ustawia atrybuty¢    domyslne. Ostatni pobrany para-¢    metr nie bedacy definicja atry-¢    butow procedura umieszcza w¢    CIONBUF i CONFNAM, ustawia takze¢    FILE_P na CONFNAM.¢¢    P:¢    A atrybuty domyslne.¢    S:¢    Z=1 brak parametru, lub parametr¢     z ukosnikiem.¢¢ U_PARAM  - procedura pobiera¢    parametr z wiersza polecen lbuff¢    i umieszcza go w CIONBUF.¢¢    P:¢    brak¢    S:¢    brak¢¢ U_SLASH  - procedura pobiera naste-¢    pny parametr z lbuff i gdy¢    zaczyna sie od ukosnika porownuje¢    go z tabica ukosnikow ustawiajac¢    falge wystapienia parametru.¢    Format tablicy dla U_SLASH.¢     dta b(0),c'A',b(0),c'B'¢     gdzie A i B to dozwolone¢     parametry a zera to flagi¢     wystapien. (Flagi sa zawsze¢     zerowane przez procedure.)¢¢¢    P:¢    AX adres tablicy dozwolonych¢     parametrow,¢    Y dlugosc tablicy w bajtach.¢    S:¢    Z=0 gdy parametr nie byl¢     ukosnikiem¢    Poprzez U_FAIL gdy ukosnik nie¢     znajdowal sie w tablicy.¢¢ U_GETNUM - procedura sprawdza czy¢    nastepny parametr jest liczba¢    i gdy tak jest pobiera go i¢    zamienia liczbe na postac¢    binarna umieszczjac wynik w¢    DIVEND oraz AX. Procedura¢    rozpoznaje liczby dziesietne i¢    szesnastkowe bez znaku ograni-¢    czone wielkoscia do dwoch bajtow.¢¢    P:¢    bark¢    S:¢    Z=1 gdy parametr nie byl liczba.¢¢ U_GONOFF - procedura pobiera para-¢    metr i sprawdza czy jest on typu¢    ON/OFF.¢¢    P:¢    brak¢    S:¢    C=1 gdy ON,¢    C=0 gdy OFF,¢    gdy inny poprzez U_FAIL.¢¢ U_TOKEN  - procedura sprawdza czy¢    parametr w CONFNAM jest zamie-¢    szczony w tablicy parametrow.¢    Format tablicu dla U_TOKEN¢     dta c'PIERWSZךDRUGחTRZECח',b(0)¢     Lista parametrow zakonczona¢     zerem !.¢¢    P:¢    AX adres tablicy parametrow.¢    S:¢    C=0 brak parametru w tablicy,¢    C=1 parametr znaleziony o numerze¢     w A.¢¢ Procedury IO:¢¢ Procedury otwierajace pliki:¢¢ FOPEN    - procedura otwiera plik¢    z przeszukiwaniem szlaku. Zwraca¢    ona numer kanalu w SIOCBIDX.¢¢    P:¢    FILE_P wskaznik do nazwy pliku,¢    OPMODE tryb otwarcia pliku:¢     $x4 - odczyt,¢     $x8 - zapis,¢     $xC - zapis i odczyt,¢¢     $0x - plik,¢     $1x - katalog,¢¢     +$20 - z przeszukiwaniem¢     szlaku.¢    FATR1 dozwolone atrybuty pliku.¢    S:¢    A=0 gdy otwarcie ze szlakiem,¢    poprzez U_FAIL.¢¢ FFIRST   - procedura otwiera katalog¢    i poszukuje w nim zadanych plikow¢    o okreslonej nazwie i atrybutach.¢    Spelniajacy warunki wpis katalogu¢    jest umieszczany w DIRBUF. Naste-¢    pne wpisy sa odnajdowane przez¢    FNEXT.  Zwraca ona numer kanalu¢    w SIOCBIDX.¢¢    P:¢    FILE_P wskaznik do nazwy pliku,¢    FATR1 dozwolone atrybuty.¢    S:¢    N=1 brak pliku spelniajacego¢     okreslone warunki,¢    poprzez U_FAIL.¢¢ FDOPEN   - procedura otwiera katalog¢    do odczytu tekstowego, poprzez¢    FDGETC. Zwraca ona numer kanalu¢    w SIOCBIDX.¢¢    P:¢    FILE_P wskaznik do nazwy pliku,¢    FATR1 dozwolone atrybuty,¢    OPMODE tryb formatowania:¢     $00 standard ATARI DOS,¢     $80 SPARTA DOS.¢    S:¢    poprzez U_FAIL.¢¢ Procedury wymagajace otwartych¢ plikow ustawionych w SIOCBIDX.¢¢ FPUTC    - procedura wysyla do¢    otwartego kanalu jeden bajt.¢    Procedura zachowuje wszystkie¢    rejsetry procesora ! Gdy numer¢    kanalu rowny 100, wykonuje¢    szybkie operacje ekranowe (musza¢    one byc uprzednio zdefiniowane).¢¢    P:¢    A bajt do wyslania.¢    S:¢    poprzez U_FAIL.¢¢ FGETC    - procedura pobiera bajt¢    z otwartego kanalu. Pobrany bajt¢    w A. Zachowuje rejestr Y.¢¢    P:¢    brak¢    S:¢    X=$FF,N=1 wystapil blad End of¢     file (#136),¢    poprzez U_FAIL.¢¢ Procedury FPUTC i FGETC uzywaja dla¢ przyspieszenia IO dodatkowych mini-¢ buforow.¢¢ FPUTS    - procedura zapisuje do¢    pliku rekord tekstowy. Rekord¢    moze miec okreslona dlugosc.¢¢    P:¢    AX adres rekordu,¢    Y dlugosc rekordu w bajtach.¢    S:¢    poprzez U_FAIL.¢¢ FGETS    - procedura czyta z pliku¢    rekord tekstowy. Rekord moze miec¢    okreslona dlugosc jednak znak¢    EOL (#$9b) konczy odczyt.¢¢    P:¢    AX adres rekordu,¢    Y dlugosc rekordu w bajtach.¢    S:¢    A=$FF wystapil nadmiar danych,¢    poprzez U_FAIL.¢¢ FWRITE   - procedura zapisuje blok¢    danych do pliku.¢¢    P:¢    faux1 (2) adres bufora danych,¢    faux4 (2) dlugosc bufora w¢     bajtach,¢    syscall preferowana pamiec¢     2 pamiec extended,¢     0 pamiec main.¢    S:¢    poprzez U_FAIL.¢¢ FREAD    - procedura czyta blok¢    danych z pliku.¢¢    P:¢    faux1 (2) adres bufora danych,¢    faux4 (2) dlugosc bufora w¢     bajtach,¢    syscall preferowana pamiec¢     2 pamiec extended,¢     0 pamiec main.¢    S:¢    X=$FF,N=1 wystapil blad End of¢     file (#136),¢    poprzez U_FAIL.¢¢ FNEXT    - procedura czyta otwarty¢    przez FFIRST katalog i ustawia¢    nastepny wpis spelniajacy zadane¢    przez FFIRST warunki w DIRBUF.¢    Nie wymaga ustawienia SIOCBIDX.¢    Uwaga, kanalu takiego sie nie¢    zamyka lecz trzeba przeczytac¢    wszystkie wpisy katalogu.¢¢    P:¢    brak¢    S:¢    N=1,X=$FF koniec katalogu.¢¢ FDGETC   - procedura pobiera jeden¢    bajt sformatowanego katalogu i¢    zwraca go w A.¢¢    P:¢    brak¢    S:¢    N=1,X=$FF koniec katalogu.¢¢ end of SYMBOLS part 1.¢