DOSSEG
.MODEL SMALL
.STACK 40000
.486

INCLUDE INCLUDE\FLAT.INC
INCLUDE INCLUDE\FREE_OVE.FNC
INCLUDE INCLUDE\HIMEM.INC
INCLUDE INCLUDE\VESA.INC
INCLUDE INCLUDE\CLAVIER.INC
INCLUDE FONCTION\Graph16v.fNC
INCLUDE FONCTION\BMP.fNC
INCLUDE FONCTION\TABP3D.fNC
INCLUDE FONCTION\POLYGONE.fNC
INCLUDE FONCTION\OBJET3D.fNC
INCLUDE FONCTION\INITG16.fNC
INCLUDE FONCTION\CONTROLE.fNC

.DATA

 sol DD 0    ;Objet repr‚sentant le sol
 controleJ1 ControleBlock <1,0,0,-500,0,500,100,0,0,0,0> ;controle de la raquette


.CODE
START:
 MOV AX,@DATA
 MOV DS,AX
 FLAT_MODE                        ;Passe en mode flat
 NEW_KEY                          ;Installe le nouveau clavier
 GET_HIMEM_ADRESSE                ;Recup‚re adresse driver HIMEM
 ACTIVE_A20                       ;Active la ligne d'adresse A20
 CHECK_BEST_MODE16
 INIT_GRAPHIQUE_MODE



 charge_objet3D "objet3d\sol.obj"
 MOV sol,EAX




 ee:
 INIT_GRAPHIQUE

  TO_OFS32 ControleJ1                        ;Controle de la raquette
  CONTROLE_KEYBOARD EAX,77,75,72,80,2,3,0,0

  OBJET3D_FORME_OFS32_TABP3D sol,0
  PUSH EAX
  OBJET3D_FORME_OFS32_TABP2D sol,0
  POP EBX
  ROTATE_P3D_VECTEUR ControleJ1.Controle_PosX,1,4,3,EBX,EAX

  OBJET3D_FORME_OFS32_TABP2D sol,0
  PROJETTE_P3D 1000,EAX,EAX

  OBJET3D_FORME_OFS32_TABP3D sol,1
  MOV EBX,EAX
  OBJET3D_FORME_OFS32_TABP2D sol,1
  PROJETTE_P3D 1000,EBX,EAX


  XOR AX,AX
  MOV ES,AX
  OBJET3D_FORME_OFS32_TABP2D sol,0
  MOV EDI,Moniteur
  ZOOM_P3D ES:[EDI.Largeur_ecran],1000,ES:[EDI.hauteur_ecran],1000,1,1,EAX,EAX

  XOR AX,AX
  MOV ES,AX
  OBJET3D_FORME_OFS32_TABP2D sol,1
  MOV EDI,Moniteur
  ZOOM_P3D ES:[EDI.Largeur_ecran],1000,ES:[EDI.hauteur_ecran],1000,1,1,EAX,EAX


  AJOUTE_OBJET3D_BUFFERZ Sol,Moniteur,BufferG
  AFFICHE_POLYGONE_BUFFERZ BufferG,BufferZmin,BufferZmax,Moniteur,MaskG


 SWAP_GRAPHIQUE
 KEY 1
 JNE ee

 LIBERE_OBJET3D Sol
 LIBERE_EMB MaskG
 LIBERE_EMB Moniteur
 LIBERE_EMB MoniteurBuffer
 LIBERE_EMB BufferG
 MOV AX,0003H            ;Repasse en mode texte
 INT 10H                 ;
 DESACTIVE_A20           ;Desactive la ligne d'adresse A20
 HOLD_KEY                ;Restaure le clavier
 MOV AX,4C00H            ;Retourne au dos
 INT 21H                 ;
END START

