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.
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.
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
Uh, quanta roba! Ricominciamo...