Outils pour utilisateurs

Outils du site


back2root:reverse-engineering:planet-x3:part1-loader

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
back2root:reverse-engineering:planet-x3:part1-loader [2023/01/11 09:21] – [Planet X3 - Part 2 - Loader] fraterback2root:reverse-engineering:planet-x3:part1-loader [2023/01/16 17:54] (Version actuelle) – modification externe 127.0.0.1
Ligne 24: Ligne 24:
 ;******************************************************************************************************************** ;********************************************************************************************************************
 start:                         start:                        
-    MOV         SP,Ofs_Stack                             +    MOV         SP,Ofs_Stack                            ; create stack              
-    MOV         word ptr [Cmd_Tails_Seg],DS             ; Execution Block  +    MOV         word ptr [Cmd_Tails_Seg],DS             ; complete "parameter block" 
-    MOV         word ptr [FCB1_Seg],DS                  ; FCB 1&2 "creation" / Filling+    MOV         word ptr [FCB1_Seg],DS                  ; FCB 1&2 "creation" / Filling (for parameter block)
     MOV         word ptr [FCB2_Seg],DS                       MOV         word ptr [FCB2_Seg],DS                  
     MOV         AH,0x4a                                      MOV         AH,0x4a                                 
Ligne 37: Ligne 37:
 Le point d'orgue ici est la "réduction" de la mémoire de l'application à 592 bytes (pour libérer un maximum de mémoire au "vrai" programme. Le point d'orgue ici est la "réduction" de la mémoire de l'application à 592 bytes (pour libérer un maximum de mémoire au "vrai" programme.
  
-Voir [[back2root:ibm-pc-ms-dos:interrupts:int_21:int_21_4a|INT 0x21 / 0x4a]] +Voir [[back2root:ibm-pc-ms-dos:interrupts:int_21:int_21_4a|INT 0x21 / 0x4a]], [[back2root:ibm-pc-ms-dos:hardware:informations:file_control_block|FCB - Standard DOS File Control Block]]
 ==== Détection de la carte graphique ==== ==== Détection de la carte graphique ====
  
Ligne 49: Ligne 48:
     MOV         AX,0x1a00                               ;0x1a00 : Read display combinaison     MOV         AX,0x1a00                               ;0x1a00 : Read display combinaison
     INT         0x10                                    ;VIDEO: try to detect video adapter     INT         0x10                                    ;VIDEO: try to detect video adapter
 +    
     CMP         AL,0x1a                                 ;0x1a : function not supported     CMP         AL,0x1a                                 ;0x1a : function not supported
     JNZ         load_and_run_PX3                        ;assume CGA sub     JNZ         load_and_run_PX3                        ;assume CGA sub
 +    
     CMP         BL,0xff                                 ;0xff : unknow display combinaison     CMP         BL,0xff                                 ;0xff : unknow display combinaison
     JZ          load_and_run_PX3                        ;assume CGA sub     JZ          load_and_run_PX3                        ;assume CGA sub
 +    
     AND         BL,0xf                                  ;look only 4 lower bits     AND         BL,0xf                                  ;look only 4 lower bits
     CMP         BL,0x6                                  ;<= 6 ? (0b0110)     CMP         BL,0x6                                  ;<= 6 ? (0b0110)
     JBE         load_and_run_PX3                        ;assume CGA sub     JBE         load_and_run_PX3                        ;assume CGA sub
 +    
     MOV         DX,local_PX3_vga                        ;must be VGA compatible     MOV         DX,local_PX3_vga                        ;must be VGA compatible
 </code> </code>
  
-Sans doute le coeur de ce programme, on utilise la fonction INT 0x10/0x1a00 (qui n'est "supportée" que dans les versions "VGA" du BIOS).+Sans doute le coeur de ce programme, on utilise la fonction INT 0x10/0x1a00 (qui n'est "supportée" que dans les versions "VGA" du BIOS) ou qui renvoi une "combinaison inconnue".
  
 Voir [[back2root:ibm-pc-ms-dos:interrupts:int_10:int_10_1a|INT 0x10 / 0x1a]] Voir [[back2root:ibm-pc-ms-dos:interrupts:int_10:int_10_1a|INT 0x10 / 0x1a]]
Ligne 80: Ligne 83:
 </code> </code>
  
-Voir [[back2root:ibm-pc-ms-dos:interrupts:int_21:int_21_4b|INT 0x21 / 0x4b]]+Voir [[back2root:ibm-pc-ms-dos:interrupts:int_21:int_21_4b|INT 0x21 / 0x4b]], [[back2root:ibm-pc-ms-dos:hardware:informations:program_segment_prefix|PSP - DOS Program Segment Prefix Layout]]
 ==== Fin du programme ==== ==== Fin du programme ====
  
back2root/reverse-engineering/planet-x3/part1-loader.1673425281.txt.gz · Dernière modification : 2023/01/11 09:21 de frater