$IQNCON SECSZ = 128; (* delka sektoru *) MAXSAT = 10; . $IQNTYP TNBT = ( (* Net Block Types *) POOLBLK, (* vyzva satelitu *) HELBLK, (* prihlaseni satelitu *) CNFBLK, (* konfiguracni blok *) REJBLK, (* odmitnuti prihlaseni *) RDRQBLK, (* zadost o cteni sektoru *) RDACKBLK, (* precteny sektor *) RDRJBLK, (* fyzicke cteni nebylo uspesne *) WRRQBLK, (* zadost o zapis sektoru *) WRACKBLK, (* potvrzeni zapisu *) WRRJBLK, (* fyzicky zapis nebyl uspesny *) MPRQBLK, (* zadost o premapovani datoveho disku *) MPACKBLK, (* potvrzeni premapovani *) MPRJBLK, (* odmitnuti mapovani *) INTRBLK, (* preruseni z centra *) INACKBLK, (* potvrzeni zprac. preruseni *) PRPLBLK, (* pooling tiskarny v centru *) PRRQBLK, (* zadost o vytisteni sektoru v centru *) PRRJBLK, (* odmitnuti tisku v centru *) PRACKBLK); (* potvrzeni vytisteni sektoru v centru *) TSECTOR = ARRAY[1..SECSZ] OF CHAR; TPSEC = ^TSECTOR; TNETBLK = RECORD DSTADR : BYTE; (* adresa prijemce *) CASE NBT : TNBT OF (* typ bloku *) POOLBLK: (PEMP:RECORD END); HELBLK: (IDF:RECORD END); CNFBLK: (CNFB:TSECTOR); (* pocet diskovych jednotek, tabulky DPH a DPB *) REJBLK: (REMP:RECORD END); RDRQBLK: (RDRQB: RECORD RDSK,RTRK,RSEC : BYTE END); RDACKBLK: (RSECT:TSECTOR); RDRJBLK: (RRJEM:RECORD END); WRRQBLK: (WRRQB: RECORD WDSK,WTRK,WSEC : BYTE; WSECT : TSECTOR END); WRACKBLK: (WEMP:RECORD END); WRRJBLK: (WRJEM:RECORD END); MPRQBLK: (DSKNUM:BYTE); MPACKBLK: (MEMP:RECORD END); MPRJBLK: (MJEMP:RECORD END); INTRBLK: (INTRMES:ARRAY[1..253] OF BYTE); INACKBLK: (INEMP:RECORD END); PRPLBLK: (PPLBE:RECORD END); PRRQBLK: (PRQB: RECORD PDSK,PTRK,PSEC : BYTE END); PRACKBLK: (PACKEM:RECORD END); PRRJBLK: (PRJEM:RECORD END); END; . $IQNSBR PROCEDURE ININET; EXTERNAL; (* pocatecni inicializace site - zakazuje preruseni od SIOa *) PROCEDURE ENINET; EXTERNAL; (* povoluje preruseni od SIOa *) FUNCTION EXINET:BOOLEAN; EXTERNAL; (* je-li obsahem BUFNET kod, provede jej a vrati TRUE, jinak vrati FALSE *) PROCEDURE WRNET( VAR BUF:TNETBLK; L:BYTE ); EXTERNAL; (* zapis bloku z BUF v delce L *) FUNCTION RDNETT( VAR BUF:TNETBLK; VAR L:BYTE ):BYTE; EXTERNAL; (* cteni bloku s navratem pri vyprseni timoutu prvni bajt bufferu musi obsahovat adresu prijemce - je-li 255, prijima se vse chybove kody: 0 = cteni bez chyby 1 = vyprseni timoutu 10H=chyba party 20H=preteceni prijimace 40H=chyba CRC *) FUNCTION RDNET( VAR BUF:TNETBLK; VAR L:BYTE ):BYTE; EXTERNAL; (* viz RDNETT, bez omezeni timoutem *) . $TFCB TFN=packed array[1..8] of char; TFT=packed array[1..3] of char; TFCB=record DR:0..16; (* Drive Code *) FN:TFN; (* File Name *) FT:TFT; (* File Type *) EX:0..31; (* Current Extent Number *) S1, (* For Internal CP/M Use *) S2, (* CP/M Internal 0 on Call OPEN,MAKE,SEARCH *) RC:0..255; (* Record Count at Current Extent *) CPMA:packed array[1..16] of char; (* CP/M Area *) CR:0..255; (* Current Record *) RRN:integer; (* Random Record Number *) RRNO:0..255; (* RRN Overflow *) end; . $SPECF function SPECF(var FCB : TFCB; var P : word; VAR L : byte) : byte; external; .