Open vruppert opened 1 week ago
The ___DATE___
symbol is internal to NBASM. I will have to look into this.
I have no idea what 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
is. It looks to be WINE specific and is not an error, more of a warning(?). Try using (?):
WINEDEBUG="fixme-all" wine winecfg
Now I tried it on Win11 and I got the same errors. I would be important for me to build the new BIOS, since I found out that booting from network bootrom fails with it and I'd like to find a fix for it.
D:\Projekte\i440fx>..\nbasm\nbasm64.exe i440fx /z
NBASM The NewBasic Assembler Version 00.27.14 (64-bit) Forever Young Software(r) (C)opyright 1984-2024
D:\Projekte\i440fx\sys_man.asm ( 59): error 21h: Symbol not defined: DATE D:\Projekte\i440fx\sys_man.asm ( 59): error 21h: Symbol not defined: DATE D:\Projekte\i440fx\sys_man.asm ( 59): error 23h: Type illegal in context Example --------> Most likely an undefined symbol
Symbol space free: 5124 symbol(s), 77216 bytes name space
Error(s) detected: 3
Diagnostic(s) offered: 0 (.diag == 0)
D:\Projekte\i440fx>
I haven't had a chance to look at it yet, sorry, but I will see what is going on as soon as I get a chance. Thank you again for your efforts.
P.S. As a work around for now, the symbol 'DATE' simply equates to the current date in 'mm/dd/yyyy' text form. Replace DATE with 10/25/2024 and it should build.
I can't reproduce the error here. However, there is a difference. Your output is:
Symbol space free: 5124 symbol(s), 77216 bytes name space
Error(s) detected: 3
And my output is:
Symbol space free: 5122 symbol(s), 77170 bytes name space
Error(s) detected: 0
If you have not modified the source any, why does NBASM64 (on Wine) think you have two more symbols added with a combined symbol space of 46 added bytes?
If you don't mind, please add the /x
parameter to the command line and send me the resulting .lst
file. fys [at] fysnet [dot] net
I ran both build tests (Linux/wine and Win11) with the unmodified source from github. I hope the .lst file helps you to find out what's going on. In the meantime I could build the BIOS with the "date-hack" and found two issues with the boot menu and boot message in the network case. The BEV code 0x80 must be changed to the string index 6. Since booting ends with an IOAPIC panic, there must be something wrong with the entry point, too.
The .lst file you sent did not contain the two internal symbols of ___DATE__
and ___DATE___
. For some reason, which I think is due to WINE and/or Linux, might think the three underscores is an issue with UTF-8 or something like this.
Some comments I found about this says to set the LANG
environment variable to indicate that UTF-8 is supported.
I will look into the BEV code issue.
Thank you
(I tried to reply to your email, but it bounced back.)
I have no idea why the ___DATE___
is missing with your build. I compiled NBASM
on a 32-bit WinXP machine and it built the bios just fine. Two different compilers, two different machines, and same results, each including the ___DATE___
symbol as expected. I have no idea why yours does not.
As for the BEV code issue, change line 346 in boot.asm from:
mov boot_offset,bx
to
mov boot_offset,ax
and see if this helps.
The change of the boot offset makes network boot work at the end, but before that several IOAPIC panics occur. Please try the test environment I've sent to you. Trying to build the BIOS on a different machine is a good idea. I'll have a look what I can do.
When I try to compile the new BIOS with wine on Linux, the nbasm exits with the following messages. Is there a workaround for it?
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
NBASM The NewBasic Assembler Version 00.27.14 (64-bit) Forever Young Software(r) (C)opyright 1984-2024
Z:\home\volker\i440fx\sys_man.asm ( 59): error 21h: Symbol not defined: DATE Z:\home\volker\i440fx\sys_man.asm ( 59): error 21h: Symbol not defined: DATE Z:\home\volker\i440fx\sys_man.asm ( 59): error 23h: Type illegal in context Example --------> Most likely an undefined symbol
Diagnostic(s) offered: 0 (.diag == 0) 00dc:fixme:kernelbase:AppPolicyGetProcessTerminationMethod FFFFFFFFFFFFFFFA, 00007FFFFE1FFD50