Pure64 can only load a kernel off of a hard drive as it does not include a USB driver. However if the kernel is small enough (or you want to load another stage that includes USB support) then you can use the chainloading feature that is available. Take a look at pure64.asm:
Code:
; =============================================================================
; Chainload the kernel attached to the end of the pure64.sys binary
; Windows - copy /b pure64.sys + kernel64.sys
; Unix - cat pure64.sys kernel64.sys > pure64.sys
; Max size of the resulting pure64.sys is 28672 bytes
; Uncomment the following 5 lines if you are chainloading
; mov rsi, 0x8000+7168 ; Memory offset to end of pure64.sys
; mov rdi, 0x100000 ; Destination address at the 1MiB mark
; mov rcx, 0x800 ; For a 16KiB kernel (2048 x 8)
; rep movsq ; Copy 8 bytes at a time
; jmp fini ; Print starting message and jump to kernel
; =============================================================================
You'll also need to comment out this line:
Code:
call hdd_setup ; Gather Hard Drive information