Pilote CTTO16.SYS

Une fois que le fichier CTIBM.SYS fut complètement désassemblé et commenté, l'étape suivante a consisté à déterminer quelles parties du logiciel devaient être modifiées pour l'adapter au TO16. Beaucoup de portions du code fonctionnent avec des temporisations et des time-out spécialement calibrés (NOPs et boucles) pour le 8088 à 4.77 MHz.

Par comparaison du code avec le fichier CTLOG.SYS, écrit spécifiquement pour un 8086 à 8 MHz, les portions concernées ont été facilement identifiées. Les paramètres ont ensuite été isolés et ajustés :

;----------------------------------------------------------------------------
;  CTNR3.SYS - Configuration for the Thomson TO16 (turbo mode)
;
;  This file contains the configuration parameters to generate CTTO16.SYS,
;  the NR v3.3 card driver that specifically runs on a Thomson TO16 in 
;  turbo mode (9.54 MHz). To run in standard mode (4.77 MHz), use the
;  IBM standard configuration instead. 
;----------------------------------------------------------------------------

C_TSTCARD     equ     FALSE            ; Test the hardware
C_WAITONTX    equ     FALSE            ; Disable Wait on TX
C_XMITPCKT    equ     POLLING          ; XmitPacket routine with polling  
  
C_TEMPO_TC1   equ     768              ; Init_Routine: delay for hardware reset
C_TEMPO_TC2   equ     120              ; Init_Routine: delay for RC timers test
                                       
C_TEMPO_AFHRO equ     53               ; AnswerFinalHandshake: delay
  
C_TEMPO_SFO   equ     9                ; SendFullOrder: delay after header
C_TMOUT_SFO1  equ     27               ; SendFullOrder: echo time-out
C_TMOUT_SFO2  equ     8                ; SendFullOrder: silence time-out

C_TEMPO_CXO   equ     13               ; ComposeXmitOrder: delay
  
C_TEMPO_IRQ1  equ     14               ; IRQ routine: delay on APPEL
C_TMOUT_IRQ1  equ     44               ; IRQ routine: time-out on initial silence
C_TMOUT_IRQ2  equ     20               ; IRQ routine: time-out on payload transmit
C_TMOUT_IRQ3  equ     6                ; IRQ routine: time-out on payload silence

C_TMOUT_RPKT  equ     55               ; ReceivePacket: time-out

C_TMOUT_7A9   equ     6                ; 7A9: time-out
    
C_TMOUT_7EB1  equ     44               ; 7EB: time-out
C_TMOUT_7EB2  equ     3                ; 7EB: time-out  

C_TEMPO_8B1   equ     11               ; 8B1: delay
C_TMOUT_8B1   equ     11               ; 8B1: time-out
  
C_TMOUT_D2B   equ     14               ; Discard2Bytes: time-out

Puisque le pilote a été spécifiquement écrit pour le TO16 en mode turbo, une petite routine pour basculer automatiquement en mode turbo (si nécessaire) a été rajoutée dans le code d'initialisation.