Contenuto del floppy disk

Il floppy disk allegato costituisce una raccolta di esempi (programmi e funzioni) estratti dal testo. Essi sono presenti in forma sorgente e, ove possibile, compilata (object, libreria, eseguibile, file binario).

ATTENZIONE: a causa del poco tempo a disposizione non è stato possibile verificare a fondo il funzionamento di tutto il materiale raccolto nel disco (e, in generale, nel testo); si declina ogni responsabilità per qualsivoglia conseguenza derivante, direttamente o indirettamente, dall'utilizzo del medesimo.

Il contenuto del disco è suddiviso come segue:


\
+---SOURCES
¦   +---CLIPPER
¦   +---DEVDRV
¦   ¦   +---TOOLKIT
¦   ¦       +---DRVSET
¦   ¦       +---LIBMOD
¦   ¦       \---TEST
¦   +---FUNC
¦   ¦   \---TEST
¦   +---PROGS
¦   +---SCHED411
¦   +---SYNTAX
¦   \---UTIL
\---COMPILED
    +---CLIPPER
    +---DEVDRV
    ¦   \---TOOLKIT
    ¦       \---TEST
    +---FUNC
    ¦   \---TEST
    +---PROGS
    +---SCHED411
    \---UTIL


E' immediato notare una corrispondenza quasi buinivoca tra l'albero sottostante alla directory SOURCES e quello sottostante alla COMPILED: directory sottostanti la COMPILED, omologhe ad altre sottostanti la SOURCES, contengono il risultato della compilazione del contenuto di queste ultime. Di seguito è descritto nel dettaglio il contenuto di ogni directory.

\

Il file FLOPPY.TXT e le directory SOURCES e COMPILED.

\SOURCES

Raccoglie tutte le subdirectory contenenti sorgenti.

\SOURCES\CLIPPER

Contiene i sorgenti di alcune funzioni C richiamabili in applicazioni Clipper. Sono presenti sul disco i corrispondenti moduli oggetto.

\SOURCES\DEVDRV

Contiene il sorgente di un device driver realizzato in C e inline assembly. Sul disco è presente il corrispondente file binario.

\SOURCES\DEVDRV\TOOLKIT

Raccoglie le directory relative al progetto di toolkit per lo sviluppo di device driver descritto nel testo.

\SOURCES\DEVDRV\TOOLKIT\DRVSET

Contiene il sorgente della utility DRVSET descritta nel testo. Sul disco è presente l'eseguibile.

\SOURCES\DEVDRV\TOOLKIT\LIBMOD

Contiene i sorgenti C e assembler dello startup module e della libreria, compreso l'include file. Sul disco è presente il toolkit completo sotto forma di include file, modulo oggetto e libreria.

\SOURCES\DEVDRV\TOOLKIT\TEST

Contiene i sorgenti C di due device drivers e una applicazione, atti a testare le capacità del toolkit. Sul disco sono presenti i due files binari e l'eseguibile.

\SOURCES\FUNC

Raccoglie i sorgenti di funzioni aventi varia finalità (gestione della memoria, dei file, del CMOS, dei pathnames, e altro). Le funzioni, a differenza di quanto avviene nel testo, sono dotate dei necessari include file: è così possibile la creazione di una libreria. Nella directory è presente anche il file di comandi per TLIB (BZTC.LST) ed un file bacth (MAKELIB.BAT) per la costruzione della libreria. La libreria stessa (per tutti i modelli di memoria) e gli include file sono presenti sul disco tra i file compilati.

\SOURCES\FUNC\TEST

Raccoglie i sorgenti di programmi che consentono di testare alcune delle funzioni sopra citate. Sono presenti sul disco anche i corrispondenti eseguibili.

\SOURCES\PROGS

Contiene i sorgenti di alcuni semplici programmi dimostrativi. Sono presenti sul disco i corrispondenti eseguibili.

\SOURCES\SCHED411 Contiene i sorgenti e i make file della utility SCHED (versione 4.11). Sono presenti sul disco i corrispondenti eseguibili. Si tenga presente che per compilare SCHED è necessario utilizzare la libreria delle funzioni descritte nel testo (vedere \SOURCES\FUNC e \COMPILED\FUNC) per il modello di memoria COMPACT.

\SOURCES\SYNTAX

Raccoglie esempi di funzioni e programmi strettamente attinenti particolarità sintattiche e simili. Detti sorgenti non sono stati compilati, dal momento che alcuni includono volutamente errori aventi finalità esplicative.

\SOURCES\UTIL

Contiene i sorgenti di alcuni programmi di utilità presentati nel testo. Sul disco sono presenti i corrispondenti eseguibili.

\COMPILED

Raccoglie le directory contenenti i file compilati (eseguibili, librerie e corrispondenti include file, moduli oggetto, file binari).

\COMPILED\CLIPPER

Contiene i moduli oggetto (direttamente consolidabili a moduli oggetto Clipper) di funzioni richiamabili in sorgenti Clipper.

\COMPILED\DEVDRV

Contiene un device driver in grado di installare un nuovo buffer di tastiera.

\COMPILED\DEVDRV\TOOLKIT

Contiene il toolkit di sviluppo per device driver, comprendente il modulo oggetto di startup, la libreria e il necessario include file.

\COMPILED\DEVDRV\TOOLKIT\TEST

Contiene due device drivers atti a testare le funzionalità offerte dal toolkit ed un eseguibile necessario al pilotaggio IOCTL di uno di essi.

\COMPILED\FUNC

Contiene una libreria (per tutti i modelli di memoria) che raccoglie le funzioni presentate nel testo a titolo di esempio ed i corrispondenti include file, che le raggruppano per "argomento". Vedere gli include file per l'elenco completo delle funzioni disponibili.

\COMPILED\FUNC\TEST

Contiene alcuni programmi eseguibili compilati facendo uso della libreria sopra descritta. I sorgenti RANDOML.C e RANDOMX.C (in \SOURCES\FUNC) sono stati compilati sia a 16 bit (RANDOML.EXE e RANDOMX.EXE), sia a 32 bit (RANDOML3.EXE e RANDOMX3.EXE).

\COMPILED\PROGS

Contiene alcuni eseguibili dimostrativi.

\COMPILED\SCHED411

Contiene la utility SCHED versione 4.11. Si tratta di un programma TSR in grado di pilotare il personal computer in modo del tutto automatico, eseguendo comandi o macro di tastiera al momento voluto, in base ad una tabella definibile dall'utente. Sono presenti nella directory, oltre al programma SCHED.EXE, le utility di conversione della tabella eventi da versione 3.5 a versione 4.x e viceversa, due file di ridefinizione degli hotkey di controllo di SCHED, i file di help e messaggi in versione italiana e inglese, il manuale (SCHED.TXT) in formato ASCII.

\COMPILED\UTIL

Contiene alcuni programmi eseguibili di utilità.

Per completezza sono elencati i files contenuti in ogni directory, in ordine alfabetico crescente, per estensione e per nome.


\
¦   FLOPPY.TXT
¦   
+---SOURCES
¦   +---CLIPPER
¦   ¦       CL_BDOS.C
¦   ¦       CL_EXENM.C
¦   ¦       CL_MODF.C
¦   ¦       
¦   +---DEVDRV
¦   ¦   ¦   KBDBUF.C
¦   ¦   ¦   
¦   ¦   +---TOOLKIT
¦   ¦       +---DRVSET
¦   ¦       ¦       DRVSET.C
¦   ¦       ¦       
¦   ¦       +---TEST
¦   ¦       ¦       TESTINIT.BAT
¦   ¦       ¦       TESTDRV.BAT
¦   ¦       ¦       DEVIOCTL.C
¦   ¦       ¦       TESTINIT.C
¦   ¦       ¦       TESTDRV.C
¦   ¦       ¦       YES.TXT
¦   ¦       ¦       
¦   ¦       +---LIBMOD
¦   ¦               DDSEGCOS.ASI
¦   ¦               DDBUIBPB.ASM
¦   ¦               DDDEVCLO.ASM
¦   ¦               DDDEVOPE.ASM
¦   ¦               DDDUMMY.ASM
¦   ¦               DDENDOFS.ASM
¦   ¦               DDGENIOC.ASM
¦   ¦               DDGETLOG.ASM
¦   ¦               DDHEADER.ASM
¦   ¦               DDINIT.ASM
¦   ¦               DDINPFLU.ASM
¦   ¦               DDINPIOC.ASM
¦   ¦               DDINPND.ASM
¦   ¦               DDINPSTA.ASM
¦   ¦               DDINPUT.ASM
¦   ¦               DDMEDCHE.ASM
¦   ¦               DDMEDREM.ASM
¦   ¦               DDOUTBUS.ASM
¦   ¦               DDOUTFLU.ASM
¦   ¦               DDOUTIOC.ASM
¦   ¦               DDOUTPUT.ASM
¦   ¦               DDOUTVER.ASM
¦   ¦               DDOUTSTA.ASM
¦   ¦               DDRESVEC.ASM
¦   ¦               DDSAVVEC.ASM
¦   ¦               DDSETCMD.ASM
¦   ¦               DDSETLOG.ASM
¦   ¦               DDSETSTK.ASM
¦   ¦               DD_EXPTR.ASM
¦   ¦               DD_VECT.ASM
¦   ¦               DDDISCRD.C
¦   ¦               BZDD.H
¦   ¦               BZDD.LST
¦   ¦               
¦   +---FUNC
¦   ¦   ¦   MAKELIB.BAT
¦   ¦   ¦   A20DISAB.C
¦   ¦   ¦   A20ENABL.C
¦   ¦   ¦   ALCSTRAT.C
¦   ¦   ¦   BOOT.C
¦   ¦   ¦   CHAINVEC.C
¦   ¦   ¦   CLEARKBD.C
¦   ¦   ¦   CTLALDEL.C
¦   ¦   ¦   CTLBREAK.C
¦   ¦   ¦   DATE2JUL.C
¦   ¦   ¦   DOSPTRS.C
¦   ¦   ¦   DOSSEG.C
¦   ¦   ¦   EMBALLOC.C
¦   ¦   ¦   EMBFREE.C
¦   ¦   ¦   EMBRESIZ.C
¦   ¦   ¦   EMMALLOC.C
¦   ¦   ¦   EMMFRAME.C
¦   ¦   ¦   EMMFREEP.C
¦   ¦   ¦   EMMFREEH.C
¦   ¦   ¦   EMMGHNAM.C
¦   ¦   ¦   EMMGPMD.C
¦   ¦   ¦   EMMMOVM.C
¦   ¦   ¦   EMMOHNDL.C
¦   ¦   ¦   EMMPGMAP.C
¦   ¦   ¦   EMMPPH.C
¦   ¦   ¦   EMMRPM.C
¦   ¦   ¦   EMMSHNAM.C
¦   ¦   ¦   EMMSPM.C
¦   ¦   ¦   EMMTEST.C
¦   ¦   ¦   EMMTEST2.C
¦   ¦   ¦   EMMTOTP.C
¦   ¦   ¦   EMMVER.C
¦   ¦   ¦   EXTFREE.C
¦   ¦   ¦   EXTINST.C
¦   ¦   ¦   FATTOR.C
¦   ¦   ¦   FIRSTMCB.C
¦   ¦   ¦   GETRDIR.C
¦   ¦   ¦   HMAALLOC.C
¦   ¦   ¦   HMADEALL.C
¦   ¦   ¦   INDOSADR.C
¦   ¦   ¦   ISA20ON.C
¦   ¦   ¦   ISFSAME.C
¦   ¦   ¦   ISHMAFRE.C
¦   ¦   ¦   ISLEAPYR.C
¦   ¦   ¦   ISREMOTE.C
¦   ¦   ¦   JUL2DATE.C
¦   ¦   ¦   LASTTSR.C
¦   ¦   ¦   MCBCHAIN.C
¦   ¦   ¦   PARSEMCB.C
¦   ¦   ¦   PARSEOPT.C
¦   ¦   ¦   PATHNAME.C
¦   ¦   ¦   PRNTOSCR.C
¦   ¦   ¦   RANDOML.C
¦   ¦   ¦   RANDOMX.C
¦   ¦   ¦   READCMOS.C
¦   ¦   ¦   RELENV.C
¦   ¦   ¦   RELENV2.C
¦   ¦   ¦   RELENVC.C
¦   ¦   ¦   RESMEM.C
¦   ¦   ¦   RSLVPATH.C
¦   ¦   ¦   SCANDIR.C
¦   ¦   ¦   UMBALLOC.C
¦   ¦   ¦   UMBDOS.C
¦   ¦   ¦   UMBFREE.C
¦   ¦   ¦   UMBQEMM.C
¦   ¦   ¦   WRITCMOS.C
¦   ¦   ¦   XMSFREEB.C
¦   ¦   ¦   XMMDVERS.C
¦   ¦   ¦   XMMADDR.C
¦   ¦   ¦   XMMISHMA.C
¦   ¦   ¦   XMMVERS.C
¦   ¦   ¦   XMSFREEM.C
¦   ¦   ¦   XMSMOVM.C
¦   ¦   ¦   DATES.H
¦   ¦   ¦   INT.H
¦   ¦   ¦   MEM.H
¦   ¦   ¦   PARSEOPT.H
¦   ¦   ¦   TSR.H
¦   ¦   ¦   VAR.H
¦   ¦   ¦   BZC.LST
¦   ¦   ¦   
¦   ¦   +---TEST
¦   ¦           BOOT.C
¦   ¦           CTLBREAK.C
¦   ¦           CTLALDEL.C
¦   ¦           EMS.C
¦   ¦           JULTEST.C
¦   ¦           RANDOML.C
¦   ¦           RANDOMX.C
¦   ¦           SCANDIR.C
¦   ¦           
¦   +---PROGS
¦   ¦       GETCMD.C
¦   ¦       PROV2TSR.C
¦   ¦       PROVATSR.C
¦   ¦       TURBOC.C
¦   ¦
¦   +---SCHED411
¦   ¦       MAKE.BAT
¦   ¦       MAKEV.BAT
¦   ¦       SCHED.C
¦   ¦       SCHED3B4.C
¦   ¦       SCHED4B3.C
¦   ¦       SCHED.H
¦   ¦
¦   +---SYNTAX
¦   ¦       ALLOC.C
¦   ¦       ALLOC2.C
¦   ¦       ARGCARGV.C
¦   ¦       ARGCARG2.C
¦   ¦       ARRAY.C
¦   ¦       AUTOVAR.C
¦   ¦       AUTOVAR2.C
¦   ¦       CIAO.C
¦   ¦       CIAO2.C
¦   ¦       EXTERN.C
¦   ¦       EXTERN2.C
¦   ¦       EXTERN3.C
¦   ¦       EXTERN4.C
¦   ¦       EXTERN5.C
¦   ¦       EXTERN6.C
¦   ¦       EXTERN7.C
¦   ¦       FUNC.C
¦   ¦       FUNC2.C
¦   ¦       FUNC3.C
¦   ¦       FUNC4.C
¦   ¦       FUNC5.C
¦   ¦       FUNCPTR.C
¦   ¦       OPEINT16.C
¦   ¦       OPEINT32.C
¦   ¦       ROSSO.C
¦   ¦       STATIC.C
¦   ¦       STATIC2.C
¦   ¦       STRUCT.C
¦   ¦       STRUCT2.C
¦   ¦       STRUCT3.C
¦   ¦       
¦   +---UTIL
¦           CMDSUBST.C
¦           CMOSBKP.C
¦           CUT.C
¦           DATECMD.C
¦           DISINFES.C
¦           DOLIST.C
¦           EMPTYLVL.C
¦           FCREATE.C
¦           KBDCODES.C
¦           KBDPLUS.C
¦           KBDPLUS2.C
¦           SELSTR.C
¦           SHFVWRIT.C
¦           SSS.C
¦           TIMEGONE.C
¦           VIDEOCAP.C
¦           ZAPTSR.C
¦
+---COMPILED
    +---CLIPPER
    ¦       CL_BDOS.OBJ
    ¦       CL_EXENM.OBJ
    ¦       CL_MODF.OBJ
    ¦
    +---DEVDRV
    ¦   ¦   KBDBUF.SYS
    ¦   ¦   
    ¦   +---TOOLKIT
    ¦       ¦   DRVSET.EXE
    ¦       ¦   BZDD.H
    ¦       ¦   BZDD.LIB
    ¦       ¦   DDHEADER.OBJ
    ¦       ¦   
    ¦       +---TEST
    ¦               DEVIOCTL.EXE
    ¦               TESTDRV.SYS
    ¦               TESTINIT.SYS
    ¦               
    +---FUNC
    ¦   ¦   DATES.H
    ¦   ¦   INT.H
    ¦   ¦   MEM.H
    ¦   ¦   PARSEOPT.H
    ¦   ¦   TSR.H
    ¦   ¦   VAR.H
    ¦   ¦   BZCC.LIB
    ¦   ¦   BZCH.LIB
    ¦   ¦   BZCL.LIB
    ¦   ¦   BZCM.LIB
    ¦   ¦   BZCS.LIB
    ¦   ¦   
    ¦   +---TEST
    ¦           BOOT.EXE
    ¦           CTLALDEL.EXE
    ¦           CTLBREAK.EXE
    ¦           EMS.EXE
    ¦           RANDOML.EXE
    ¦           RANDOML3.EXE
    ¦           RANDOMX.EXE
    ¦           RANDOMX3.EXE
    ¦           SCANDIR.EXE
    ¦           
    +---PROGS
    ¦       GETCMD.EXE
    ¦       PROV2TSR.EXE
    ¦       PROVATSR.EXE
    ¦       TURBOC.EXE
    ¦
    +---SCHED411
    ¦       SCHED.EXE
    ¦       SCHED3B4.EXE
    ¦       SCHED4B3.EXE
    ¦       SCHED.HLP
    ¦       SCHED.ITH
    ¦       SCHED.ITM
    ¦       SCHED.KEY
    ¦       SCHED.KKK
    ¦       SCHED.MSG
    ¦       SCHED.TXT
    ¦       SCHED.UKH
    ¦       SCHED.UKM
    ¦       
    +---UTIL
            CMDSUBST.EXE
            CMOSBKP.EXE
            CUT.EXE
            DATECMD.EXE
            DISINFES.EXE
            DOLIST.EXE
            EMPTYLVL.EXE
            FCREATE.EXE
            KBDCODES.EXE
            KBDPLUS.EXE
            KBDPLUS2.EXE
            SELSTR.EXE
            SHFVWRIT.EXE
            SSS.EXE
            TIMEGONE.EXE
            VIDEOCAP.EXE
            ZAPTSR.EXE


Fantastico! Lo voglio, lo voglio!

Uh, quanta roba! Ricominciamo...