@@ -210,6 +210,10 @@ EntryPoint: ;; Ubicado en 0x400200 cuando imagen va en 0x400000
210210 mov rax , [ rax + EFI_SYSTEM_TABLE_CONIN ]
211211 mov [ TXT_IN_INTERFACE ], rax
212212
213+ ;; -- Modo texto de uefi, imprime en un recuadro centrado en la pantalla ind
214+ ;; ependientemente de la resolucion real. Por defecto 80x25 (mode = 0) tambi
215+ ;; en segun especificacion debe soportar 80x50 = modo 1.
216+ ;; -- Aqui, hlt unicamente no va a haltear. Debe hacer cli, luego hlt.
213217 mov rax , [ EFI_SYSTEM_TABLE ]
214218 mov rax , [ rax + EFI_SYSTEM_TABLE_CONOUT ]
215219 mov [ TXT_OUT_INTERFACE ], rax
@@ -225,18 +229,13 @@ EntryPoint: ;; Ubicado en 0x400200 cuando imagen va en 0x400000
225229 mov rcx , [ TXT_OUT_INTERFACE ]
226230 call [ rcx + EFI_OUT_CLEAR_SCREEN ]
227231
228- ;; -- Modo texto de uefi, imprime en un recuadro centrado en la pantalla ind
229- ;; ependientemente de la resolucion real. Por defecto 80x25 (mode = 0) pero
230- ;; si hay otro modo soportado lo usa.
231- ;; -- Aqui, hlt unicamente no va a haltear. Debe hacer cli, luego hlt.
232-
233232 mov rcx , [ TXT_OUT_INTERFACE ]
234233 mov rbx , [ rcx + EFI_OUT_MODE ]
235234 mov rax , [ rbx ]
236235 mov rbx , 0
237236 mov ebx , eax
238237 mov rdx , msg_max_txt_mode
239- call print ;; Current video settings del modo texto con el q inicia .
238+ call print ;; Cantidad maxima de modos soportados .
240239
241240 mov rcx , [ TXT_OUT_INTERFACE ]
242241 mov rbx , [ rcx + EFI_OUT_MODE ]
@@ -246,11 +245,8 @@ EntryPoint: ;; Ubicado en 0x400200 cuando imagen va en 0x400000
246245 mov rdx , msg_curr_txt_mode
247246 call print ;; Current video settings del modo texto con el q inicia.
248247
249-
250-
251-
252-
253-
248+ ;; Ventana en la que se puede activar modo step.
249+ modo_step_window:
254250 mov rcx , [ TXT_IN_INTERFACE ]
255251 mov rdx , EFI_INPUT_KEY
256252 call [ rcx + EFI_INPUT_READ_KEY ] ;; SIMPLE_INPUT.ReadKeyStroke()
@@ -281,49 +277,27 @@ EntryPoint: ;; Ubicado en 0x400200 cuando imagen va en 0x400000
281277 lea rdx , [ msg_uefi_boot ]
282278 call [ rcx + EFI_OUT_OUTPUTSTRING ]
283279
284- ;; Primer parada en el modo step.
285- call parada_step_mode
286-
287- ;;step_0:
288- ;; mov rcx, [TXT_IN_INTERFACE]
289- ;; mov rdx, EFI_INPUT_KEY
290- ;; call [rcx + EFI_INPUT_READ_KEY] ;; SIMPLE_INPUT.ReadKeyStroke()
291- ;; cmp eax, EFI_NOT_READY ;; No hubo ingreso, me quedo poleando.
292- ;; je step_0
293- ;;
294- ;; cmp rax, EFI_SUCCESS
295- ;; je .get_key
296- ;;
297- ;; mov rcx, [TXT_OUT_INTERFACE]
298- ;; mov rdx, msg_efi_input_device_err ;; Notificar, rax = EFI_DEVICE_ERROR
299- ;; call [rcx + EFI_OUT_OUTPUTSTRING]
300- ;; jmp step_0
301- ;;
302- ;;.get_key:
303- ;; mov dx, [EFI_INPUT_KEY + 2]
304- ;; cmp dx, utf16('n')
305- ;; jne step_0 ;; Posible salida a siguiente paso.
306-
307-
280+ call prompt_step_mode ;; Primer parada en el modo step.
308281
309282 ;; Find the address of the ACPI data from the UEFI configuration table.
283+ acpi_get_init:
310284 mov rax , [ EFI_SYSTEM_TABLE ]
311285 mov rcx , [ rax + EFI_SYSTEM_TABLE_NUMBEROFENTRIES ]
312- shl rcx , 3 ; rcx * 2^3
286+ shl rcx , 3 ;; rcx * 2^3
313287 mov rsi , [ CONFIG ]
314288
315- nextentry :
289+ .acpi_test_entry :
316290 dec rcx
317291 cmp rcx , 0
318292 je error ; Bail out as no ACPI data was detected
319293 mov rdx , [ ACPI_TABLE_GUID ] ; First 64 bits of the ACPI GUID
320294 lodsq
321295 cmp rax , rdx ; Compare table data to expected GUID data
322- jne nextentry
323- mov rdx , [ ACPI_TABLE_GUID + 8 ] ; Second 64 bits of the ACPI GUID
296+ jne .acpi_test_entry
297+ mov rdx , [ ACPI_TABLE_GUID + 8 ] ; Second 64 bits of the ACPI GUID
324298 lodsq
325299 cmp rax , rdx ; Compare table data to expected GUID data
326- jne nextentry
300+ jne .acpi_test_entry
327301 lodsq ; Load the address of the ACPI table
328302 mov [ ACPI ], rax ; Save the address
329303
@@ -987,8 +961,10 @@ parse:
987961;;==============================================================================
988962;; Parada en el modo step.
989963;;==============================================================================
964+ ;; Con la tecla 'n' se avanza.
965+ ;;==============================================================================
990966
991- parada_step_mode :
967+ prompt_step_mode :
992968 cmp byte [ STEP_MODE_FLAG ], 0
993969 je .fin
994970
0 commit comments