Roelofs Coaching

…voor een open kijk

Clock driver

Een van de toepassingen die ik vroeger geschreven heb, is een clock driver, die onder DOS en tot en met Windows 95 een paar dingen tegelijk deed.

  • zorgde dat voor het lezen van de tijd altijd de AT Real Time Clock gebruikt werd
  • maakte daarbij gebruik van de Programmable Interrupt Controller om de precisie omhoog te brengen van 1/18 seconde naar 1/100 seconde
  • voorkwam mogelijke "jaar 2000" bugs

In die tijd zat ik helemaal in de geheugenoptimalisatie en de interrupt-handlers, dus heb ik wat extra features toegevoegd.

  • de clock-driver kon bij startup als sys-file en later als exe-file gebruikt worden
  • de clock-driver kon je unloaden (wat voor een DOS-driver vrij speciaal was)

De driver zelf was in assembler geschreven.

De precisie omhoog brengen was mogelijk door goed de hardware te gebruiken en een creatieve combinatie te maken van gegevens van de Programmable Interrupt Controller en de Real-time Clock. De exe-helft van de clock-driver (de installer en unloader) was geschreven in Pascal. Ik had een en ander gestandaardiseerd. Onder andere de functies om Pascal en assembler-programma's en -interrupt handlers goed te laten samen werken. Loading, unloading en geheugen-relocatie (niet alleen van de driver, maar ook van de gehele exe-file) vereisden veel kennis van DOS en Pascal ins-en-outs, en waren in handzame functies en units ondergebracht, zodat dit ingewikkelde programma uit bouwstenen was opgebouwd, die makkelijk te hergebruiken en onderhouden waren.