jmp exit
.notvm86:
+ call warning ; issue a warning and allow the user to abort
+
%ifdef CON_SERIAL
call setup_serial
%endif
str_errvm86 db 'Error: memory manager detected! Stop it and try again (e.g. emm386 off)',10,0
str_enterpm db 'Entering 32bit protected mode ...',10,0
+
+ ; warns the user about the experimental and buggy state of this
+ ; protected mode system, and allows aborting if having to reboot later
+ ; is not acceptable.
+warning:
+ mov si, str_warnmsg
+ call printstr
+ WAITKEY
+ dec al
+ jz exit
+ ret
+
+str_warnmsg:
+ db 'WARNING: this program uses an experimental protected mode kernel, which is ',10
+ db 'still in a very early stage of development, and will probably not be able to ',10
+ db 'return cleanly to DOS on exit. You might be forced to reboot after quitting!',10
+ db 'If this is not acceptable, press ESC now to abort.',10,10
+ db 'Press ESC to abort and return to DOS, any other key to continue...',10,0
+
enable_a20:
call test_a20
jnc .ret