home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / noyau / horloge.lst < prev    next >
File List  |  1994-05-25  |  20KB  |  528 lines

  1. Microsoft (R) Macro Assembler Version 6.00                 05/26/94 03:29:45
  2. HORLOGE.ASM                             Page 1 - 1
  3.  
  4.  
  5.                 .286
  6.                 .MODEL SMALL,OS_DOS
  7.  
  8.                 ;
  9.                 ;   GESTION DU TEMPS SYSTEME
  10.                 ;
  11.                 ;   Traitement de l'interruption de type 08 = horloge temps-réel du système
  12.                 ;   Définition du processus HORLOGE de traitement du temps
  13.                 ;
  14.                 ; HORLOGE.ASM
  15.                 ;
  16.                 ;  ART OF CODE 1994
  17.                 ;
  18.                 ;
  19.  
  20.                 EXTERNDEF AFFDEC : NEAR
  21.  
  22.                 INCLUDE dos.inc
  23.                   C ; DOS.INC
  24.                   C 
  25.                   C MsDos MACRO
  26.                   C     int     21h
  27.                   C ENDM
  28.                   C 
  29.                 INCLUDE types.inc
  30.                   C ; Types.inc
  31.                   C ;
  32.                   C ;............ Définition des types d'objets ................
  33.                   C ;
  34.                   C 
  35.  = 0003                  C TypeSemaphore    EQU 00000011b    ; sémaphore sans delta-liste (DIJKSTRA)
  36.                   C 
  37.  = 0004                  C TypeTampon    EQU 00000100b    ; tampon circulaire de communication
  38.                   C 
  39.  = 000C                  C TypeQueue    EQU 00001100b    ; cellule de garde d'une liste chainée
  40.                   C 
  41.  = 001C                  C TypeProcTPU    EQU 00011100b    ; processus utilisateur temps partagé
  42.  = 001D                  C TypeProcTRU    EQU 00011101b    ; processus utilisateur temps réel
  43.  = 001E                  C TypeProcTPS    EQU 00011110b    ; processus système temps partagé
  44.  = 001F                  C TypeProcTRS    EQU 00011111b    ; processus système temps réel
  45.  = 001C                  C TypeProcessus    EQU TypeProcTPU ; type générique pour les processus
  46.                   C 
  47.                 INCLUDE const.inc
  48.                   C ;
  49.                   C ; const.inc
  50.                   C ;
  51.                   C 
  52.  = 0020                  C EOI         EQU 20h        ; octet d'acquittement d'interruption au pic 8259A
  53.  = 0020                  C PortCTRLpic  EQU 20h        ; port de controle du PIC
  54.  = 03F2                  C PortCTRLfdc  EQU 03F2h        ; port de controle du controleur de disquette
  55.  = FFFF                  C NIL         EQU 0FFFFh
  56.  = 0001                  C ENCORE         EQU 1        ; marque suite execution du noyau
  57.  =-0002                  C FIN         EQU NOT ENCORE ; marque la fin
  58.  = 0100                  C DimPile      EQU 256        ; nombre de mots d'une pile privée
  59.  = 000C                  C NbRegs         EQU 12        ; nombre de registres du contexte initial
  60.  = F202                  C ETAT_INITIAL EQU 1111001000000010b  ; valeur initiale du registre d'état
  61.                   C 
  62.                 INCLUDE etats.inc
  63.                   C ;
  64.                   C ; fichier des etats d'un processus ou d'un descripteur d'objet
  65.                   C ;
  66.                   C ; Etats.inc
  67.                   C ;
  68.                   C 
  69.  = 0000                  C nEtat = 0
  70.                   C FOR EtatProc,<NON_EXISTANT,ACTIF,PRET,BLOQUE,EN_ATTENTE,SUSPENDU>
  71.                   C     &EtatProc  EQU  nEtat+0
  72.                   C            nEtat = nEtat + 1
  73.                   C ENDM
  74.  = 0000                 1C     NON_EXISTANT  EQU  nEtat+0
  75.  = 0001                 1C            nEtat = nEtat + 1
  76.  = 0001                 1C     ACTIF  EQU  nEtat+0
  77.  = 0002                 1C            nEtat = nEtat + 1
  78.  = 0002                 1C     PRET  EQU  nEtat+0
  79.  = 0003                 1C            nEtat = nEtat + 1
  80.  = 0003                 1C     BLOQUE  EQU  nEtat+0
  81.  = 0004                 1C            nEtat = nEtat + 1
  82.  = 0004                 1C     EN_ATTENTE  EQU  nEtat+0
  83.  = 0005                 1C            nEtat = nEtat + 1
  84.  = 0005                 1C     SUSPENDU  EQU  nEtat+0
  85.  = 0006                 1C            nEtat = nEtat + 1
  86.                   C 
  87.  = 0000                  C TERMINE EQU NON_EXISTANT
  88.  = 0000                  C LIBRE    EQU NON_EXISTANT
  89.  =-0001                  C OCCUPE    EQU (NOT LIBRE)+0
  90.  =-0001                  C INFINI    EQU (NOT LIBRE)+0
  91.                   C 
  92.                 INCLUDE descript.inc
  93.                   C ;  descript.inc
  94.                   C ;
  95.                   C ;        Description d'un objet du noyau
  96.                   C ;
  97.                   C ;
  98.                   C 
  99.  0009                  C DESCRIPTEUR    STRUCT
  100.  0000  0000              C     precedent    WORD    ?   ; lien de chainage sur le descripteur précédent
  101.  0002  0000              C     suivant    WORD    ?   ; lien de chainage sur le descripteur suivant
  102.  0004  0000              C     identite    WORD    ?   ; n° de poste dans la table des descripteurs de l'objet
  103.  0006  00              C     TypeObjet    BYTE    ?   ; type de l'objet référencé par le descripteur
  104.  0007  00              C     etat    BYTE    ?   ; état actuel du descripteur ou de l'objet
  105.  0008  00              C     priorite    BYTE    ?   ; clé d'ordonnancement des descripteurs
  106.                   C DESCRIPTEUR    ENDS
  107.                   C 
  108.  = WORD PTR identite          C identification    EQU <WORD PTR identite> ; identification de l'objet
  109.  = 0009                  C DimDescripteur    EQU SIZEOF DESCRIPTEUR    ; nombre d'octets du descripteur
  110.                   C 
  111.                 INCLUDE semphor.inc
  112.                   C ; SEMPHOR.INC
  113.                   C ;        Definition du type semaphore
  114.                   C ;
  115.                   C 
  116.  000A                  C SEMAPHORE    STRUCT
  117.  0000  0000 0000 0000 03      C          DESCRIPTEUR <,,,TypeSemaphore,LIBRE,INFINI>
  118.        00 FF
  119.  0009  00              C     compteur BYTE     ?
  120.                   C SEMAPHORE    ENDS
  121.                   C 
  122.                 INCLUDE process.inc
  123.                   C ; Process.inc : descripteurs de processus
  124.  000F                  C PROCESSUS STRUCT
  125.  0000  0000 0000 0000 1C      C       DESCRIPTEUR <,,,TypeProcessus,LIBRE,>
  126.        00 00
  127.  0009  0000              C   Reg_SP  WORD          ?
  128.  000B  0000              C   Reg_SS  WORD          ?
  129.  000D  0000              C   file      WORD          ?
  130.                   C PROCESSUS ENDS
  131.                   C 
  132.                 INCLUDE gestlist.inc
  133.                   C ; Gestlist.inc
  134.                   C ;
  135.                   C ;.......  Importation des fonctions de gestion de liste ..............
  136.                   C ;
  137.                   C 
  138.                   C EXTERNDEF   insere        : NEAR
  139.                   C EXTERNDEF   recherche        : NEAR
  140.                   C EXTERNDEF   InsereItem        : NEAR
  141.                   C 
  142.                   C EXTERNDEF   extrait        : NEAR
  143.                   C EXTERNDEF   PremierDeListe  : NEAR
  144.                   C EXTERNDEF   DernierDeListe  : NEAR
  145.                   C 
  146.                   C EXTERNDEF   FileVide        : NEAR
  147.                   C EXTERNDEF   InitVide        : NEAR
  148.                   C 
  149.                   C EXTERNDEF   empiler        : NEAR
  150.                   C EXTERNDEF   Depiler        : NEAR
  151.                   C 
  152.                 INCLUDE donnees.inc
  153.                   C ;
  154.                   C ;   Segment des données du noyau
  155.                   C ;
  156.                   C ; donnees.inc
  157.                   C 
  158.                   C EXTERNDEF   EnCours  : WORD       ; pointeur sur descripteur processus ACTIF
  159.                   C EXTERNDEF   QueueExp : WORD       ; pointeur sur liste des descripteurs procs PRETs
  160.                   C EXTERNDEF   NonPreemptif : BYTE    ; état d'execution du noyau
  161.                   C EXTERNDEF   FinNoyau     : BYTE    ; marque le noyau terminé
  162.                   C EXTERNDEF   NoyauFini     : BYTE    ; marque la tâche horloge terminée
  163.                   C EXTERNDEF   pHorloge   : PROCESSUS ; descripteur du processus HORLOGE
  164.                   C EXTERNDEF   pPrincipal : PROCESSUS ; descripteur du processus PRINCIPAL
  165.                   C 
  166.                 INCLUDE code.inc
  167.                   C ;
  168.                   C ;   CODE.INC
  169.                   C ;   Import/export des fonctions du noyau
  170.                   C ;
  171.                   C 
  172.                   C EXTERNDEF   eligible    : NEAR
  173.                   C EXTERNDEF   dispatcher    : NEAR
  174.                   C EXTERNDEF   P : NEAR
  175.                   C EXTERNDEF   V : NEAR
  176.                   C 
  177.  
  178.                 ; Pile privée du processus HORLOGE
  179.  
  180.  0000                PileHorloge SEGMENT WORD 'STACK'    ; pile privée du processus
  181.  0000  00F4 [                WORD (DimPile-NbRegs) DUP (?)
  182.         0000
  183.        ]
  184.  
  185.  01E8                SP_PileHorloge LABEL WORD           ; sommet actuel de la pile privée
  186.  01E8  000A [                WORD (NbRegs - 2)     DUP (?)   ; valeur initiale des registres du µp
  187.         0000
  188.        ]
  189.  
  190.  01FC  F202                WORD ETAT_INITIAL               ; valeur initiale du mot d'état
  191.  01FE  0065 R                WORD OFFSET horloge             ; point d'entrée
  192.  0200                PileHorloge ENDS
  193.  
  194.                 ; Segment de données du BIOS
  195.  
  196.  0000                donnees_bios SEGMENT AT 0040h
  197.                     org 003Fh
  198.  003F 00                MOTOR_STATUS    BYTE ?
  199.  0040 00                MOTOR_COUNT     BYTE ?
  200.                     org 006Ch
  201.  006C 0000                TIMER_LOW       WORD ?
  202.  006E 0000                TIMER_HIGH      WORD ?
  203.  0070 00                TIMER_OFL       BYTE ?
  204.  0071                donnees_bios ENDS
  205.  
  206.  0000                .DATA
  207.  
  208.  0000 0000 0000 0000 1C        pHorloge    PROCESSUS   <{,,,TypeProcessus,OCCUPE,0},OFFSET SP_PileHorloge,PileHorloge,NIL>
  209.        FF 00 01E8 R ---- R
  210.        FFFF
  211.  
  212.  000F 0000 0000 0000 03        SemHorloge  SEMAPHORE    <>  ; sémaphore de synchro sur int timer
  213.        00 FF 00
  214.  
  215.                 EXTERNDEF sHorloge : SEMAPHORE
  216.  
  217.  0019 00000000            EX_INT08h   DWORD   ?       ; sauvegarde vecteur int timer DOS
  218.  
  219.  001D ---- 0000 R        INT08h      DWORD   timer   ; pointeur service int timer
  220.  
  221.  0000                .CODE
  222.  
  223.                 ;               Traitement de l'interruption du timer
  224.                 ;
  225.                 ; Cette procédure est déclenchée par l'interruption de type 8.
  226.                 ; Elle débloque la tache HORLOGE apres avoir acquitté l'interruption au controleur.
  227.                 ;
  228.  
  229.  0000                timer PROC FAR
  230.  0000  1E                push ds
  231.  0001  50                push ax
  232.  0002  B8 ---- R            mov  ax,@data
  233.  0005  8E D8                mov  ds,ax
  234.                 ASSUME ds:@data
  235.  0007  FB                STI                 ; démasquage effectif qu'apres l'instruction suivante
  236.  0008  FE 06 0000 E            inc [NonPreemptif]  ; le noyau n'est plus preemptif
  237.  
  238.                 ;   ---------------- Acquitte l'interruption au controleur -------------------
  239.  
  240.  000C  B0 20                mov al,EOI           ; (al) := octet d'acquittement
  241.  000E  E6 20                out PortCtrlpic,al   ; .... Envoyé au PIC 8259A
  242.  
  243.                 ;  Débloque le processus Horloge
  244.  
  245.  0010  56                push si
  246.  0011  BE 000F R            lea si,SemHorloge   ; (si) ---> sémaphore de synchronisation
  247.  0014  E8 0000 E            call V              ; débloque le processus
  248.  0017  5E                pop si
  249.  
  250.                 ; Termine et force la commutation
  251.  
  252.  0018  FE 0E 0000 E            dec [NonPreemptif]
  253.  001C  58                pop ax
  254.  001D  E8 0000 E            call dispatcher
  255.  0020  1F                pop ds
  256.                 ASSUME ds:NOTHING
  257.  0021  CF                IRET
  258.  0022                timer ENDP
  259.  
  260.                 ; Code de la tache d'horloge
  261.  
  262.  0022                TempsDos PROC
  263.  0022  9C                pushf
  264.  0023  50                push ax
  265.                     ASSUME ds:donnees_bios
  266.  0024  FF 06 006C R            inc [TIMER_LOW]     ; actualise l'heure
  267.  0028  75 04                jnz TD1             ; dépassement ?
  268.  002A  FF 06 006E R            inc [TIMER_HIGH]    ; oui ! ajuste les poids forts
  269.  002E                TD1:
  270.  002E  83 3E 006E R 18            cmp [TIMER_HIGH],24 ; 24 heures écoulées ?
  271.  0033  75 15                jnz TD2
  272.  0035  81 3E 006C R 00B0        cmp [TIMER_LOW],0B0h
  273.  003B  75 0D                jnz TD2
  274.  
  275.  003D  33 C0                xor ax,ax           ; change le jour
  276.  003F  A3 006C R            mov [TIMER_LOW],ax
  277.  0042  A3 006E R            mov [TIMER_HIGH],ax
  278.  0045  C6 06 0070 R 01            mov [TIMER_OFL],1
  279.  004A                TD2:
  280.  004A  58                pop ax
  281.  004B  9D                popf
  282.  004C  C3                RET
  283.  004D                TempsDos ENDP
  284.  
  285.  004D                MoteurDsk   PROC
  286.  004D  9C                    pushf
  287.  004E  50                    push ax
  288.  004F  52                    push dx
  289.                         ASSUME ds:donnees_bios
  290.  0050  FE 0E 0040 R                dec [MOTOR_COUNT]
  291.  0054  75 0B                    jnz FinMtDSK
  292.  0056  80 26 003F R F0                and [MOTOR_STATUS],0F0h
  293.  005B  B0 0C                    mov al,0Ch
  294.  005D  BA 03F2                    mov dx,PortCTRLfdc
  295.  0060  EE                    out dx,al
  296.  0061                FinMtDSK:
  297.  0061  5A                    pop dx
  298.  0062  58                    pop ax
  299.  0063  9D                    popf
  300.  0064  C3                    RET
  301.  0065                MoteurDsk   ENDP
  302.  
  303.  
  304.  
  305.  0065                Horloge PROC
  306.                     ASSUME DS:@data
  307.  0065  B8 ---- R            mov ax,@data
  308.  0068  8E D8                mov ds,ax
  309.  
  310.                     ; initialisation du sémaphore SemHorloge
  311.  
  312.  006A  BE 000F R            lea si,SemHorloge       ; (si) ---> sémaphore de synchronisation
  313.  006D  C6 44 09 00            mov (SEMAPHORE PTR [si]).Compteur,0 ; sémaphore : val = 0
  314.  0071  E8 0000 E            call InitVide           ; On initialise les pointeurs de la file
  315.  
  316.                     ; initialisation du vecteur d'interruption
  317.  
  318.  0074  FC                cld
  319.  
  320.  0075  33 C0                xor ax,ax        ; On sauvegarde l'ancien vecteur
  321.  0077  8E D8                mov ds,ax        ; d'interruption 08h
  322.  0079  B8 ---- R            mov ax,@data
  323.  007C  8E C0                mov es,ax
  324.  007E  BE 0020                mov si,20h
  325.  0081  BF 0019 R            lea di,Ex_Int08h
  326.  0084  A5                movsw
  327.  0085  A5                movsw
  328.  
  329.  0086  B8 ---- R            mov ax,@data        ; On place le nouveau vecteur
  330.  0089  8E D8                mov ds,ax
  331.  008B  33 C0                xor ax,ax
  332.  008D  8E C0                mov es,ax
  333.  008F  BF 0020                mov di,20h
  334.  0092  BE 001D R            lea si,Int08h
  335.  0095  9C                pushf
  336.  0096  FA                cli            ; pas d'interruptions durant le transfert
  337.  0097  A5                movsw
  338.  0098  A5                movsw
  339.  0099  9D                popf            ; retablissement des interruptions si il y a lieu
  340.  
  341.  009A                repeter:
  342.  009A  BE 000F R            lea si,SemHorloge           ; (si) ---> sémaphore de synchronisation
  343.  009D  E8 0000 E            Call P                ; WAIT (SemHorloge)
  344.  00A0  B8 ---- R            mov ax,donnees_bios
  345.  00A3  8E D8                mov ds,ax
  346.  00A5  E8 FF7A                Call TempsDos            ; on met à jour l'horloge
  347.  00A8  E8 FFA2                Call MoteurDsk            ; on arrete le moteur de disquette
  348.  00AB  B8 ---- R            mov ax,@data
  349.  00AE  8E D8                mov ds,ax
  350.  00B0  BE 0000 E            lea si,sHorloge         ; on active le processus d'affichage de
  351.  00B3  E8 0000 E            call v                ; l'horloge à l'écran
  352.  00B6  BE 0000 E            mov si,offset FinNoyau        ; on teste si on a fini
  353.  00B9  80 3C FE                cmp BYTE PTR [si],FIN
  354.  00BC  75 DC                Jne repeter            ; non, on continue
  355.  
  356.  00BE  BF 0020                mov di,20h            ; on rétablit l'ancien vecteur d'interruption
  357.  00C1  BE 0019 R            lea si,Ex_Int08h
  358.  00C4  9C                pushf
  359.  00C5  FA                cli                ; pas d'interruptions pendant ce traitement
  360.  00C6  A5                movsw
  361.  00C7  A5                movsw
  362.  00C8  9D                popf                ; interruptions rétablies
  363.  
  364.  
  365.  00C9  BE 0000 E            mov si,offset NoyauFini
  366.  00CC  C6 04 FE                mov BYTE PTR [si],FIN        ; on signale à pNoyau que c'est fait !
  367.  
  368.  00CF  8B 36 0000 E            mov si,[EnCours]
  369.  00D3  C6 44 07 00            mov (DESCRIPTEUR PTR [si]).Etat,TERMINE
  370.  
  371.  00D7  E8 0000 E            call DISPATCHER            ; On termine le processus Horloge
  372.                                     ; Le dipatcher commutera sur pNoyau
  373.                                     ; qui terminera proprement.
  374.                     ; il ne faut surtout pas terminer par un 'RET'
  375.                     ; sinon, plantage !!! ( La pile ne contient pas d'adresse de retour ).
  376.  
  377.  00DA                Horloge ENDP
  378.  
  379.                 END
  380. Microsoft (R) Macro Assembler Version 6.00                 05/26/94 03:29:45
  381. HORLOGE.ASM                             Symbols 2 - 1
  382.  
  383.  
  384.  
  385.  
  386. Macros:
  387.  
  388.                 N a m e                 Type
  389.  
  390. MsDos  . . . . . . . . . . . . .    Proc
  391.  
  392.  
  393. Structures and Unions:
  394.  
  395.                 N a m e                  Size
  396.                                          Offset      Type
  397.  
  398. DESCRIPTEUR  . . . . . . . . . .     0009
  399.   precedent  . . . . . . . . . .     0000         Word
  400.   suivant  . . . . . . . . . . .     0002         Word
  401.   identite . . . . . . . . . . .     0004         Word
  402.   TypeObjet  . . . . . . . . . .     0006         Byte
  403.   etat . . . . . . . . . . . . .     0007         Byte
  404.   priorite . . . . . . . . . . .     0008         Byte
  405. PROCESSUS  . . . . . . . . . . .     000F
  406.   precedent  . . . . . . . . . .     0000         Word
  407.   suivant  . . . . . . . . . . .     0002         Word
  408.   identite . . . . . . . . . . .     0004         Word
  409.   TypeObjet  . . . . . . . . . .     0006         Byte
  410.   etat . . . . . . . . . . . . .     0007         Byte
  411.   priorite . . . . . . . . . . .     0008         Byte
  412.   Reg_SP . . . . . . . . . . . .     0009         Word
  413.   Reg_SS . . . . . . . . . . . .     000B         Word
  414.   file . . . . . . . . . . . . .     000D         Word
  415. SEMAPHORE  . . . . . . . . . . .     000A
  416.   precedent  . . . . . . . . . .     0000         Word
  417.   suivant  . . . . . . . . . . .     0002         Word
  418.   identite . . . . . . . . . . .     0004         Word
  419.   TypeObjet  . . . . . . . . . .     0006         Byte
  420.   etat . . . . . . . . . . . . .     0007         Byte
  421.   priorite . . . . . . . . . . .     0008         Byte
  422.   compteur . . . . . . . . . . .     0009         Byte
  423.  
  424.  
  425. Segments and Groups:
  426.  
  427.                 N a m e                 Size     Length   Align   Combine Class
  428.  
  429. DGROUP . . . . . . . . . . . . .    GROUP
  430. _DATA  . . . . . . . . . . . . .    16 Bit     0021      Word      Public  'DATA'    
  431. PileHorloge  . . . . . . . . . .    16 Bit     0200      Word      Private 'STACK'     
  432. _TEXT  . . . . . . . . . . . . .    16 Bit     00DA      Word      Public  'CODE'    
  433. donnees_bios . . . . . . . . . .    16 Bit     0071      Abs      Private 
  434.  
  435.  
  436. Procedures,  parameters and locals:
  437.  
  438.                 N a m e                 Type     Value    Attr
  439.  
  440. Horloge  . . . . . . . . . . . .    P Near     0065      _TEXT    Length= 0075 Public
  441.   repeter  . . . . . . . . . . .    L Near     009A      _TEXT    
  442. MoteurDsk  . . . . . . . . . . .    P Near     004D      _TEXT    Length= 0018 Public
  443.   FinMtDSK . . . . . . . . . . .    L Near     0061      _TEXT    
  444. TempsDos . . . . . . . . . . . .    P Near     0022      _TEXT    Length= 002B Public
  445.   TD1  . . . . . . . . . . . . .    L Near     002E      _TEXT    
  446.   TD2  . . . . . . . . . . . . .    L Near     004A      _TEXT    
  447. timer  . . . . . . . . . . . . .    P Far     0000      _TEXT    Length= 0022 Public
  448.  
  449.  
  450. Symbols:
  451.  
  452.                 N a m e                 Type     Value    Attr
  453.  
  454. @CodeSize  . . . . . . . . . . .    Number     0000h     
  455. @DataSize  . . . . . . . . . . .    Number     0000h     
  456. @Interface . . . . . . . . . . .    Number     0000h     
  457. @Model . . . . . . . . . . . . .    Number     0002h     
  458. @code  . . . . . . . . . . . . .    Text        _TEXT
  459. @data  . . . . . . . . . . . . .    Text        DGROUP
  460. @fardata?  . . . . . . . . . . .    Text        FAR_BSS
  461. @fardata . . . . . . . . . . . .    Text        FAR_DATA
  462. @stack . . . . . . . . . . . . .    Text        DGROUP
  463. ACTIF  . . . . . . . . . . . . .    Number     0001h     
  464. AFFDEC . . . . . . . . . . . . .    L Near     0000      External
  465. BLOQUE . . . . . . . . . . . . .    Number     0003h     
  466. Depiler  . . . . . . . . . . . .    L Near     0000      External
  467. DernierDeListe . . . . . . . . .    L Near     0000      External
  468. DimDescripteur . . . . . . . . .    Number     0009h     
  469. DimPile  . . . . . . . . . . . .    Number     0100h     
  470. ENCORE . . . . . . . . . . . . .    Number     0001h     
  471. EN_ATTENTE . . . . . . . . . . .    Number     0004h     
  472. EOI  . . . . . . . . . . . . . .    Number     0020h     
  473. ETAT_INITIAL . . . . . . . . . .    Number     F202h     
  474. EX_INT08h  . . . . . . . . . . .    DWord     0019      _DATA    
  475. EnCours  . . . . . . . . . . . .    Word     0000      External
  476. FIN  . . . . . . . . . . . . . .    Number     -0002h      
  477. FileVide . . . . . . . . . . . .    L Near     0000      External
  478. FinNoyau . . . . . . . . . . . .    Byte     0000      External
  479. INFINI . . . . . . . . . . . . .    Number     -0001h      
  480. INT08h . . . . . . . . . . . . .    DWord     001D      _DATA    
  481. InitVide . . . . . . . . . . . .    L Near     0000      External
  482. InsereItem . . . . . . . . . . .    L Near     0000      External
  483. LIBRE  . . . . . . . . . . . . .    Number     0000h     
  484. MOTOR_COUNT  . . . . . . . . . .    Byte     0040      donnees_bios    
  485. MOTOR_STATUS . . . . . . . . . .    Byte     003F      donnees_bios    
  486. NIL  . . . . . . . . . . . . . .    Number     FFFFh     
  487. NON_EXISTANT . . . . . . . . . .    Number     0000h     
  488. NbRegs . . . . . . . . . . . . .    Number     000Ch     
  489. NonPreemptif . . . . . . . . . .    Byte     0000      External
  490. NoyauFini  . . . . . . . . . . .    Byte     0000      External
  491. OCCUPE . . . . . . . . . . . . .    Number     -0001h      
  492. PRET . . . . . . . . . . . . . .    Number     0002h     
  493. PortCTRLfdc  . . . . . . . . . .    Number     03F2h     
  494. PortCTRLpic  . . . . . . . . . .    Number     0020h     
  495. PremierDeListe . . . . . . . . .    L Near     0000      External
  496. P  . . . . . . . . . . . . . . .    L Near     0000      External
  497. QueueExp . . . . . . . . . . . .    Word     0000      External
  498. SP_PileHorloge . . . . . . . . .    Word     01E8      PileHorloge    
  499. SUSPENDU . . . . . . . . . . . .    Number     0005h     
  500. SemHorloge . . . . . . . . . . .    SEMAPHORE  000F        _DATA    
  501. TERMINE  . . . . . . . . . . . .    Number     0000h     
  502. TIMER_HIGH . . . . . . . . . . .    Word     006E      donnees_bios    
  503. TIMER_LOW  . . . . . . . . . . .    Word     006C      donnees_bios    
  504. TIMER_OFL  . . . . . . . . . . .    Byte     0070      donnees_bios    
  505. TypeProcTPS  . . . . . . . . . .    Number     001Eh     
  506. TypeProcTPU  . . . . . . . . . .    Number     001Ch     
  507. TypeProcTRS  . . . . . . . . . .    Number     001Fh     
  508. TypeProcTRU  . . . . . . . . . .    Number     001Dh     
  509. TypeProcessus  . . . . . . . . .    Number     001Ch     
  510. TypeQueue  . . . . . . . . . . .    Number     000Ch     
  511. TypeSemaphore  . . . . . . . . .    Number     0003h     
  512. TypeTampon . . . . . . . . . . .    Number     0004h     
  513. V  . . . . . . . . . . . . . . .    L Near     0000      External
  514. dispatcher . . . . . . . . . . .    L Near     0000      External
  515. eligible . . . . . . . . . . . .    L Near     0000      External
  516. empiler  . . . . . . . . . . . .    L Near     0000      External
  517. extrait  . . . . . . . . . . . .    L Near     0000      External
  518. identification . . . . . . . . .    Text        WORD PTR identite
  519. insere . . . . . . . . . . . . .    L Near     0000      External
  520. nEtat  . . . . . . . . . . . . .    Number     0006h     
  521. pHorloge . . . . . . . . . . . .    PROCESSUS  0000        _DATA    Public
  522. pPrincipal . . . . . . . . . . .    PROCESSUS  0000        External
  523. recherche  . . . . . . . . . . .    L Near     0000      External
  524. sHorloge . . . . . . . . . . . .    SEMAPHORE  0000        _DATA    External
  525.  
  526.        0 Warnings
  527.        0 Errors
  528.