L'elenco delle device. Come sapere in tempo reale quali sono de device utilizzabili sul nostro sistema. di Giorgio Garabello Tempo addietro, precisamente nel numero 5 di QL Magazine, vi abbiamo proposto in un'articolo una soluzione per gestire le directory come se fossero un database. Piu' recentemente, e precisamente nel numero 8, vi abbiamo presentato in un altro articolo le basi della programmazione ricorsiva, classica metodologia di programmazione per scrivere funzioni di gestione delle directory. Mancava un'ultima parte, quella relativa alla determinazione delle device disponibili sul vostro sistema, un metoodo ossia per verificare quali memorie di massa siao presenti in un determinato momento sul vostro QL. Ecco a voi una piccola routine SuperBASIC per stampare a video questo elenco. Sara' poi facile per voi trasformare la scrittura a video in un caricamento di tabella o in quant'altro vi possa tornare utile nel vostro programma. Ecco a voi il listato: 100 REMark list directory devices 110 CLS 120 sysvar = 163840 : REMark locate system variables 130 v$ = VER$ 140 IF v$ = 'JSL1' OR v$ = 'HBA' THEN sysvar = VER$(-2) 150 addr = PEEK_L(sysvar+72) : REMark directory drivers list 160 REPeat read_all 170 REMark pointer to length of device name 180 addr1 = addr+36 190 length = PEEK_W(addr1) 200 REMark get all characters of name 210 devicename$ = '' 220 FOR char = 2 TO length+1 230 devicename$ = devicename$&CHR$(PEEK(addr1+char)) 240 END FOR char 250 PRINT devicename$ 260 REMark next entry in linked list 270 addr = PEEK_L(addr) 280 REMark if pointer = 0 then end of list 290 IF addr = 0 THEN EXIT read_all 300 END REPeat read_all Notate come la routine sia non solo estremamente solida e compatta, ma sia anche indipendente dal tipo di sistema operativo utilizzato. Infatti se guardate la linea 140 potete vedere che viene controllata la versione del sistema operativo. L'esecuzione di questo piccolo programma sul mio sistema da il seguente risultato: CDR WIN N FLP RAM DEV Notate due cose. La prima e' che l'identificatore del numero di stazione network QL (N) viene riconosciuto come device; occorre quindi che sia il programma applicativo ad unire numero di stazione alla device dera e propria. La seconda cosa e' quel "buco" in quarta posizione; purtoppo non sono in grado di spiegarlo, mi rivolgo quindi a voi lettori per risolvere questo piccolo mistero.