Setup:
I have a build script that gives me an iso: the assembly, the linker, copying files into a folder to make an iso and adding a boot sector
the iso is then run into vmware workstation pro as a "CD/DVD Drive"
Programs:
- limine v4.20230909.0. (i have the limine-deploy.exe used in the script and both (limine.sys, limine-cd.bin) in the folder of the iso)
-nasm-3.01 (my assembler)
-ld.lld.exe (the linker)
-xorriso.exe (the iso maker)
The problem:
when I boot the iso, I get into launched into limine, which is great, I can also start my program. Of what gemini told me, I prepared a requests for getting the framebuffer address (getting a screen?) however, at the response address, I get a 0. my code does verify for that case and makes my CPU halt, which is how I know I don't have a screen to write on.
main.asm looks like this
Code: Select all
[BITS 64]
DEFAULT REL
section .limine_reqs progbits alloc noexec write
align 8
dq framebuffer_request ; if i understand this is all of the resquests
dq 0
section .data
align 8
framebuffer_request:
dq 0xc7b1dd30df4c8b88 ; magic numbers apparently first 2 are common for all request other 2 for the framebuffer?
dq 0x0a82e883a194f07b
dq 0x9d5827dcd881dd1f
dq 0xafb1aa5a1b8eea61
dq 0
dq 0 ; response address? so [framebuffer_request + 40]
section .text
global _start
_start:
mov rax, [framebuffer_request + 40]
test rax, rax
jz .halt ; i know the code takes that path, i only have 1 hlt in my code
; ... rest of my code
.halt:
hlt
jmp .halt
(sorry some parts are in french)

