Skip to content

Commit e1af249

Browse files
una font para el print bootloader muy linda agregada.
1 parent bcc6760 commit e1af249

File tree

4 files changed

+155
-152
lines changed

4 files changed

+155
-152
lines changed

asm/boot/uefi.asm

Lines changed: 154 additions & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
;; | Encabez | Codigo | Datos | | Kernel.bin | el fin |
1919
;; +---------+--------+-------+------------+------------+------------+
2020
;; |^ |^ |^ |^ |^ |^ ^|
21-
;; 0x0 0x200 0x1000 0x2000 0x2800 0x40000 0xFFFFF
22-
;; 0 512B 4KiB 8KiB 10KiB 256KiB 1MiB-1
21+
;; 0x0 0x200 0x1000 0x4000 0x5800 0x40000 0xFFFFF
22+
;; 0 512B 4KiB 16KiB 22KiB 256KiB 1MiB-1
2323
;;==============================================================================
2424

2525

@@ -1130,12 +1130,16 @@ print_flush:
11301130
mov r8, 0 ;; ix src str.
11311131
11321132
.loop_read_string_char:
1133-
push rax
1134-
mov rcx, 0
1135-
mov cl, [msg_test8 + r8]
1133+
push rax ;; FB cursor, apunta a inicio de char (pixel exactamente) a come
1134+
;; nzar imprimir.
1135+
mov rcx, 0 ;; Avance cursor.
1136+
mov cl, [msg_boot_services_exit_ok + r8]
11361137
cmp cl, 0
11371138
je .string_flush_end
1138-
lea rsi, [font_data + 8 * rcx] ;; rsi p2fontLine
1139+
lea rsi, [font_data + 8 * rcx] ;; rsi p2fontLine 16px chars.
1140+
lea rsi, [rsi + 8 * rcx]
1141+
;;lea rsi, [font_data + 16 * 0x41]
1142+
;;lea rsi, [font_data]
11391143
mov rdx, 0
11401144
.loop_font_vertical_line:
11411145
cmp rdx, font_height
@@ -1167,17 +1171,17 @@ print_flush:
11671171
.char_flush_end:
11681172
inc r8
11691173
pop rax
1170-
lea rax, [rax + 8 * r8]
1171-
lea rax, [rax + 8 * r8]
1172-
lea rax, [rax + 8 * r8]
1173-
lea rax, [rax + 8 * r8]
1174+
add rax, 32 ;; rax += 8px * 4bytes/px
1175+
;;lea rax, [rax + 8] ;; rax += 8px * 4bytes/px
1176+
;;lea rax, [rax + 8] ;; rax += 8px * 4bytes/px
1177+
;;lea rax, [rax + 8] ;; rax += 8px * 4bytes/px
11741178
jmp .loop_read_string_char
11751179

11761180
.string_flush_end:
11771181
cli
11781182
hlt
11791183
ret
1180-
\
1184+
11811185

11821186

11831187
times 4 * 1024 - ($ - $$) db 0 ;; Zero padding resto de .text
@@ -1253,7 +1257,7 @@ dd 0x9042a9de
12531257
dw 0x23dc, 0x4a38
12541258
db 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a
12551259

1256-
;; Boot service para imprimir en pantalla requiere string en utf16.
1260+
;; UTF16 strings para bootservices.
12571261
msg_uefi_boot: dw utf16("UEFI boot"), 13, 0xA, 0
12581262
msg_error: dw utf16("Error"), 0
12591263
msg_badPayloadSignature: dw utf16("Bad payload signature."), 0
@@ -1263,7 +1267,6 @@ newline: dw 13, 10, 0
12631267

12641268
hexConvert: dw utf16("0123456789ABCDEF")
12651269

1266-
12671270
;; Some new messages.
12681271
msg_edid_found: dw utf16("EDID found"), 13, 0xA, 0;; Carriage return
12691272
msg_locate_edid_fail_use_default_resolution: dw utf16("Locate EDID fail: se usara resolucion por defecto"), 13, 0xA, 0
@@ -1291,7 +1294,6 @@ msg_efi_not_ready: dw utf16("EFI not ready"), 13, 0xA, 0
12911294
msg_notify_memmap_change: dw utf16("Memory map buffer size change: will request again."), 13, 0xA, 0
12921295
txt_err_memmap: dw utf16("get memmap feilure"), 0
12931296
msg_will_exit_uefi_services: dw utf16("A continuacion hara exit de uefi services"), 13, 0xA, 0
1294-
msg_boot_services_exit_ok: dw utf16("Exit from uefi services exitoso"), 0
12951297

12961298
msg_test: dw utf16("Test"), 13, 0xA, 0
12971299
msg_test8: db "ab", 0
@@ -1316,153 +1318,154 @@ fmt_edid_protocol_located: dw utf16("EDID protocol found = %s"), 13, 0xA, 0
13161318

13171319
str_gop_protocol_fatal_err: dw utf16("GOP protocol no localizado"), 0
13181320

1319-
1321+
;; UTF8 strings para bootloader.
1322+
msg_boot_services_exit_ok: db "Exit from UEFI services exitoso.", 0
13201323

13211324

13221325

13231326
efi_print_placeholder:
13241327
times 64 dw 0x0000
13251328

1326-
font_height equ 8
1329+
font_height equ 16
13271330
font_data:
1328-
;; font8x8_basic[128][8]
1329-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0000 (nul)
1330-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0001
1331-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0002
1332-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0003
1333-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0004
1334-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0005
1335-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0006
1336-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0007
1337-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0008
1338-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0009
1339-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+000A
1340-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+000B
1341-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+000C
1342-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+000D
1343-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+000E
1344-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+000F
1345-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0010
1346-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0011
1347-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0012
1348-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0013
1349-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0014
1350-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0015
1351-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0016
1352-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0017
1353-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0018
1354-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0019
1355-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+001A
1356-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+001B
1357-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+001C
1358-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+001D
1359-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+001E
1360-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+001F
1361-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0020 (space)
1362-
db 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00 ;; U+0021 (!)
1363-
db 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0022 (")
1364-
db 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00 ;; U+0023 (#)
1365-
db 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00 ;; U+0024 ($)
1366-
db 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00 ;; U+0025 (%)
1367-
db 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00 ;; U+0026 (&)
1368-
db 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0027 (')
1369-
db 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00 ;; U+0028 (()
1370-
db 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00 ;; U+0029 ())
1371-
db 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00 ;; U+002A (*)
1372-
db 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00 ;; U+002B (+)
1373-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06 ;; U+002C (,)
1374-
db 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00 ;; U+002D (-)
1375-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00 ;; U+002E (.)
1376-
db 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00 ;; U+002F (/)
1377-
db 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00 ;; U+0030 (0)
1378-
db 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00 ;; U+0031 (1)
1379-
db 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00 ;; U+0032 (2)
1380-
db 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00 ;; U+0033 (3)
1381-
db 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00 ;; U+0034 (4)
1382-
db 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00 ;; U+0035 (5)
1383-
db 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00 ;; U+0036 (6)
1384-
db 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00 ;; U+0037 (7)
1385-
db 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00 ;; U+0038 (8)
1386-
db 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00 ;; U+0039 (9)
1387-
db 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00 ;; U+003A (:)
1388-
db 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06 ;; U+003B (;)
1389-
db 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00 ;; U+003C (<)
1390-
db 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00 ;; U+003D (=)
1391-
db 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00 ;; U+003E (>)
1392-
db 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00 ;; U+003F (?)
1393-
db 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00 ;; U+0040 (@)
1394-
db 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00 ;; U+0041 (A)
1395-
db 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00 ;; U+0042 (B)
1396-
db 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00 ;; U+0043 (C)
1397-
db 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00 ;; U+0044 (D)
1398-
db 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00 ;; U+0045 (E)
1399-
db 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00 ;; U+0046 (F)
1400-
db 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00 ;; U+0047 (G)
1401-
db 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00 ;; U+0048 (H)
1402-
db 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 ;; U+0049 (I)
1403-
db 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00 ;; U+004A (J)
1404-
db 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00 ;; U+004B (K)
1405-
db 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00 ;; U+004C (L)
1406-
db 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00 ;; U+004D (M)
1407-
db 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00 ;; U+004E (N)
1408-
db 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00 ;; U+004F (O)
1409-
db 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00 ;; U+0050 (P)
1410-
db 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00 ;; U+0051 (Q)
1411-
db 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00 ;; U+0052 (R)
1412-
db 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00 ;; U+0053 (S)
1413-
db 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 ;; U+0054 (T)
1414-
db 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00 ;; U+0055 (U)
1415-
db 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00 ;; U+0056 (V)
1416-
db 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00 ;; U+0057 (W)
1417-
db 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00 ;; U+0058 (X)
1418-
db 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00 ;; U+0059 (Y)
1419-
db 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00 ;; U+005A (Z)
1420-
db 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00 ;; U+005B ([)
1421-
db 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00 ;; U+005C (\)
1422-
db 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00 ;; U+005D (])
1423-
db 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00 ;; U+005E (^)
1424-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF ;; U+005F (_)
1425-
db 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+0060 (`)
1426-
db 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00 ;; U+0061 (a)
1427-
db 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00 ;; U+0062 (b)
1428-
db 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00 ;; U+0063 (c)
1429-
db 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00 ;; U+0064 (d)
1430-
db 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00 ;; U+0065 (e)
1431-
db 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00 ;; U+0066 (f)
1432-
db 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F ;; U+0067 (g)
1433-
db 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00 ;; U+0068 (h)
1434-
db 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 ;; U+0069 (i)
1435-
db 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E ;; U+006A (j)
1436-
db 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00 ;; U+006B (k)
1437-
db 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00 ;; U+006C (l)
1438-
db 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00 ;; U+006D (m)
1439-
db 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00 ;; U+006E (n)
1440-
db 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00 ;; U+006F (o)
1441-
db 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F ;; U+0070 (p)
1442-
db 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78 ;; U+0071 (q)
1443-
db 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00 ;; U+0072 (r)
1444-
db 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00 ;; U+0073 (s)
1445-
db 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00 ;; U+0074 (t)
1446-
db 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00 ;; U+0075 (u)
1447-
db 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00 ;; U+0076 (v)
1448-
db 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00 ;; U+0077 (w)
1449-
db 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00 ;; U+0078 (x)
1450-
db 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F ;; U+0079 (y)
1451-
db 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00 ;; U+007A (z)
1452-
db 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00 ;; U+007B ({)
1453-
db 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00 ;; U+007C (|)
1454-
db 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00 ;; U+007D (})
1455-
db 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+007E (~)
1456-
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; U+007F
1457-
1458-
1459-
times 8 * 1024 - ($ - $$) db 0
1331+
;; font8x8_basic[128][16]
1332+
1333+
1334+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x00 uni0000
1335+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x01 uni0001
1336+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x02 uni0002
1337+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x03 uni0003
1338+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x04 uni0004
1339+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x05 uni0005
1340+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x06 uni0006
1341+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x07 uni0007
1342+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x08 uni0008
1343+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x09 uni0009
1344+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x0a uni000A
1345+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x0b uni000B
1346+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x0c uni000C
1347+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x0d uni000D
1348+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x0e uni000E
1349+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x0f uni000F
1350+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x10 uni0010
1351+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x11 uni0011
1352+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x12 uni0012
1353+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x13 uni0013
1354+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x14 uni0014
1355+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x15 uni0015
1356+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x16 uni0016
1357+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x17 uni0017
1358+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x18 uni0018
1359+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x19 uni0019
1360+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x1a uni001A
1361+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x1b uni001B
1362+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x1c uni001C
1363+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x1d uni001D
1364+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x1e uni001E
1365+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x1f uni001F
1366+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x20 space
1367+
dd 0x08080000, 0x08080808, 0x00000808, 0x00000808 ;; 0x21 exclam
1368+
dd 0x14140000, 0x00001414, 0x00000000, 0x00000000 ;; 0x22 quotedbl
1369+
dd 0x48000000, 0x24FE4848, 0x127F2424, 0x00001212 ;; 0x23 numbersign
1370+
dd 0x08080000, 0x0909493E, 0x4848380E, 0x08083E49 ;; 0x24 dollar
1371+
dd 0x09060000, 0x30C60909, 0x9090630C, 0x00006090 ;; 0x25 percent
1372+
dd 0x221C0000, 0x04040202, 0x41A1918A, 0x0000BC42 ;; 0x26 ampersand
1373+
dd 0x08080000, 0x00000808, 0x00000000, 0x00000000 ;; 0x27 quotesingle
1374+
dd 0x10200000, 0x04040808, 0x04040404, 0x20100808 ;; 0x28 parenleft
1375+
dd 0x08040000, 0x20201010, 0x20202020, 0x04081010 ;; 0x29 parenright
1376+
dd 0x08080000, 0x2A1C2A49, 0x00080849, 0x00000000 ;; 0x2a asterisk
1377+
dd 0x00000000, 0x08080000, 0x08087F08, 0x00000008 ;; 0x2b plus
1378+
dd 0x00000000, 0x00000000, 0x00000000, 0x0C181818 ;; 0x2c comma
1379+
dd 0x00000000, 0x00000000, 0x00007E00, 0x00000000 ;; 0x2d hyphen
1380+
dd 0x00000000, 0x00000000, 0x00000000, 0x00001818 ;; 0x2e period
1381+
dd 0x40400000, 0x10102020, 0x04040808, 0x01010202 ;; 0x2f slash
1382+
dd 0x221C0000, 0x49515161, 0x43454549, 0x00001C22 ;; 0x30 zero
1383+
dd 0x0C080000, 0x0808090A, 0x08080808, 0x00003F08 ;; 0x31 one
1384+
dd 0x221C0000, 0x20404041, 0x02040810, 0x00007F01 ;; 0x32 two
1385+
dd 0x211E0000, 0x1E204040, 0x40404020, 0x00001E21 ;; 0x33 three
1386+
dd 0x28300000, 0x22242428, 0x207F2122, 0x00002020 ;; 0x34 four
1387+
dd 0x013F0000, 0x201F0101, 0x40404040, 0x00001E21 ;; 0x35 five
1388+
dd 0x221C0000, 0x231D0102, 0x41414141, 0x00001C22 ;; 0x36 six
1389+
dd 0x407F0000, 0x10102020, 0x04040808, 0x00000202 ;; 0x37 seven
1390+
dd 0x221C0000, 0x1C224141, 0x41414122, 0x00001C22 ;; 0x38 eight
1391+
dd 0x221C0000, 0x41414141, 0x40405C62, 0x00001C22 ;; 0x39 nine
1392+
dd 0x00000000, 0x18180000, 0x00000000, 0x00001818 ;; 0x3a colon
1393+
dd 0x00000000, 0x18180000, 0x00000000, 0x0C181818 ;; 0x3b semicolon
1394+
dd 0x00000000, 0x0C30C000, 0x300C0303, 0x000000C0 ;; 0x3c less
1395+
dd 0x00000000, 0x7F000000, 0x007F0000, 0x00000000 ;; 0x3d equal
1396+
dd 0x00000000, 0x300C0300, 0x0C30C0C0, 0x00000003 ;; 0x3e greater
1397+
dd 0x423C0000, 0x20404040, 0x00080810, 0x00000808 ;; 0x3f question
1398+
dd 0x38000000, 0xC9B28244, 0x89898989, 0x0402B2C9 ;; 0x40 at
1399+
dd 0x18180000, 0x24242424, 0x427E4242, 0x00008181 ;; 0x41 A
1400+
dd 0x211F0000, 0x1F214141, 0x41414121, 0x00001F21 ;; 0x42 B
1401+
dd 0x423C0000, 0x01010102, 0x02010101, 0x00003C42 ;; 0x43 C
1402+
dd 0x211F0000, 0x41414141, 0x41414141, 0x00001F21 ;; 0x44 D
1403+
dd 0x017F0000, 0x7F010101, 0x01010101, 0x00007F01 ;; 0x45 E
1404+
dd 0x017F0000, 0x7F010101, 0x01010101, 0x00000101 ;; 0x46 F
1405+
dd 0x423C0000, 0x01010102, 0x42414171, 0x00003C42 ;; 0x47 G
1406+
dd 0x41410000, 0x7F414141, 0x41414141, 0x00004141 ;; 0x48 H
1407+
dd 0x083E0000, 0x08080808, 0x08080808, 0x00003E08 ;; 0x49 I
1408+
dd 0x40780000, 0x40404040, 0x40404040, 0x00003E41 ;; 0x4a J
1409+
dd 0x41010000, 0x05091121, 0x21110907, 0x00008141 ;; 0x4b K
1410+
dd 0x01010000, 0x01010101, 0x01010101, 0x00007F01 ;; 0x4c L
1411+
dd 0x63630000, 0x49555555, 0x41414949, 0x00004141 ;; 0x4d M
1412+
dd 0x43430000, 0x49494545, 0x61615151, 0x00004141 ;; 0x4e N
1413+
dd 0x221C0000, 0x41414141, 0x41414141, 0x00001C22 ;; 0x4f O
1414+
dd 0x211F0000, 0x21414141, 0x0101011F, 0x00000101 ;; 0x50 P
1415+
dd 0x221C0000, 0x41414141, 0x49414141, 0x20101C2A ;; 0x51 Q
1416+
dd 0x211F0000, 0x21414141, 0x4141211F, 0x00008141 ;; 0x52 R
1417+
dd 0x413E0000, 0x3E010101, 0x40404040, 0x00003E41 ;; 0x53 S
1418+
dd 0x087F0000, 0x08080808, 0x08080808, 0x00000808 ;; 0x54 T
1419+
dd 0x41410000, 0x41414141, 0x41414141, 0x00001C22 ;; 0x55 U
1420+
dd 0x81810000, 0x42424281, 0x24242442, 0x00001818 ;; 0x56 V
1421+
dd 0x41410000, 0x49494941, 0x55555555, 0x00002222 ;; 0x57 W
1422+
dd 0x41410000, 0x08142222, 0x22221408, 0x00004141 ;; 0x58 X
1423+
dd 0x41410000, 0x14142222, 0x08080808, 0x00000808 ;; 0x59 Y
1424+
dd 0x407F0000, 0x08101020, 0x02040408, 0x00007F01 ;; 0x5a Z
1425+
dd 0x041C0000, 0x04040404, 0x04040404, 0x1C040404 ;; 0x5b bracketleft
1426+
dd 0x01010000, 0x04040202, 0x10100808, 0x40402020 ;; 0x5c backslash
1427+
dd 0x101C0000, 0x10101010, 0x10101010, 0x1C101010 ;; 0x5d bracketright
1428+
dd 0x24180000, 0x00008142, 0x00000000, 0x00000000 ;; 0x5e asciicircum
1429+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x5f underscore
1430+
dd 0x10080400, 0x00000000, 0x00000000, 0x00000000 ;; 0x60 grave
1431+
dd 0x00000000, 0x40423C00, 0x4141417E, 0x00005E61 ;; 0x61 a
1432+
dd 0x01010000, 0x41231D01, 0x41414141, 0x00001D23 ;; 0x62 b
1433+
dd 0x00000000, 0x01423C00, 0x01010101, 0x00003C42 ;; 0x63 c
1434+
dd 0x40400000, 0x41625C40, 0x41414141, 0x00005C62 ;; 0x64 d
1435+
dd 0x00000000, 0x41221C00, 0x01017F41, 0x00003C42 ;; 0x65 e
1436+
dd 0x08700000, 0x08087E08, 0x08080808, 0x00000808 ;; 0x66 f
1437+
dd 0x00000000, 0x41625C00, 0x41414141, 0x22405C62 ;; 0x67 g
1438+
dd 0x01010000, 0x41231D01, 0x41414141, 0x00004141 ;; 0x68 h
1439+
dd 0x08080000, 0x08080E00, 0x08080808, 0x00007F08 ;; 0x69 i
1440+
dd 0x10100000, 0x10101C00, 0x10101010, 0x10101010 ;; 0x6a j
1441+
dd 0x01010000, 0x09112101, 0x21110B05, 0x00008141 ;; 0x6b k
1442+
dd 0x080F0000, 0x08080808, 0x08080808, 0x00007008 ;; 0x6c l
1443+
dd 0x00000000, 0x49493F00, 0x49494949, 0x00004949 ;; 0x6d m
1444+
dd 0x00000000, 0x41231D00, 0x41414141, 0x00004141 ;; 0x6e n
1445+
dd 0x00000000, 0x41221C00, 0x41414141, 0x00001C22 ;; 0x6f o
1446+
dd 0x00000000, 0x41231D00, 0x41414141, 0x01011D23 ;; 0x70 p
1447+
dd 0x00000000, 0x41625C00, 0x41414141, 0x40405C62 ;; 0x71 q
1448+
dd 0x00000000, 0x02463A00, 0x02020202, 0x00000202 ;; 0x72 r
1449+
dd 0x00000000, 0x01413E00, 0x40403E01, 0x00003E41 ;; 0x73 s
1450+
dd 0x08000000, 0x08087E08, 0x08080808, 0x00007008 ;; 0x74 t
1451+
dd 0x00000000, 0x41414100, 0x41414141, 0x00005E61 ;; 0x75 u
1452+
dd 0x00000000, 0x41414100, 0x14222222, 0x00000814 ;; 0x76 v
1453+
dd 0x00000000, 0x49414100, 0x55555555, 0x00002222 ;; 0x77 w
1454+
dd 0x00000000, 0x22414100, 0x22140814, 0x00004141 ;; 0x78 x
1455+
dd 0x00000000, 0x42414100, 0x18242422, 0x08101018 ;; 0x79 y
1456+
dd 0x00000000, 0x20407F00, 0x02040810, 0x00007F01 ;; 0x7a z
1457+
dd 0x08300000, 0x08080808, 0x08080608, 0x08080808 ;; 0x7b braceleft
1458+
dd 0x08080000, 0x08080808, 0x08080808, 0x08080808 ;; 0x7c bar
1459+
dd 0x08060000, 0x08080808, 0x08083008, 0x08080808 ;; 0x7d braceright
1460+
dd 0x00000000, 0x00000000, 0x0000324C, 0x00000000 ;; 0x7e asciitilde
1461+
dd 0x00000000, 0x00000000, 0x00000000, 0x00000000 ;; 0x7f uni007F
1462+
1463+
1464+
times 16 * 1024 - ($ - $$) db 0
14601465
DATA_RUNTIME_END:
14611466

14621467

1463-
1464-
;;;;;;;;;;;;;;;;;;;;;;align 4096 ;; Codigo util de BOOT64.EFI ocupa primeros 4K. Luego, la payload.
1465-
align 8 * 1024 ;; Codigo + data de BOOT64.EFI ocupa primeros 8K. Luego, la payload.
1468+
align 16 * 1024 ;; Codigo + data de BOOT64.EFI ocupa primeros 8K. Luego, la payload.
14661469
PAYLOAD:
14671470

14681471
;; Esto cambiarlo por 256K para mas payload.

0 commit comments

Comments
 (0)