;POST RE-ENTERING THROUGH PORV ; 19 bytes NASM syntax olivier.poudade.free.fr 2010 start: ; mov al,0feh/out 64h,al is shorter but too unstable imho mov word [467h],mbrbeg ; 40h:67h=POST real mode re-entry point offset in 256-byte BDA ;ASSUMEDmov word [469h],0 ; 40h:69h=POST real mode re-entry point segment in 256-byte BDA ASSUMED=from a cold boot seg is seg0 mov al,0fh ; 0fh=Shutdown Status Byte out 70h,al ; 70h=RTC/CMOS NVR chip index register mov al,0ah ; possible values : 05h=flush kbd+jmp[40h:67h] with EOI;0ah=jmp[40h:67h] without EOI;0bh=iret[40h:67h];0ch=retf[40h:67h] out 71h,al ; 71h=RTC/CMOS NVR chip data register db 0eah ; opcode "jmp far f000:fff0" operator dw 0fff0h,0f000h ; opcode "jmp far f000:fff0" operand (f000h:ffffh=Power On Reset Vector) jmp $ ; excluded from footprint jmp $ ; excluded from footprint jmp $ ; excluded from footprint jmp $ ; excluded from footprint jmp $ ; excluded from footprint jmp $ ; excluded from footprint jmp $ ; excluded from footprint mbrbeg: ; POST will jump here before it loads the MBR