Skip to content

Commit 1034c05

Browse files
Cambio algunas etiquetas para mejor lectura y elimino algo de codigo del step mode que era un ensayo ahora es una funcion.
1 parent 1c2c96e commit 1034c05

File tree

1 file changed

+17
-41
lines changed

1 file changed

+17
-41
lines changed

asm/boot/uefi.asm

Lines changed: 17 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)