okay donna here is yor first verilog lesson
always @(posedge wb_clk_i)
csr_adr_i <= wb_rst_i ? 17'h0 : csr_adr_o + start_addr[15:1];
means, whenever there is a change in the wb_clk_i signal from 0 to 1 do this
when signal wb_rst_i is 1 let csr_adr_i be 0 otherwise the sum of the register csr_adr_o and start_addr
you might be right,
the base adr of the vga memory area should be 0xa000 and end at 0xbffff
but the base adr shift for the different modes should be set anywhere (in hardware by verilog as hardcorecodes or by software vga bios)
but the register that holds the offset value is not set.
as long as there was (still is everywhere else than here

) the vga frame buffer located in the csram no need to set any offset as the csram was not the sdram ...
but that is not the only problem i have, i have much bigger problems but more about that when i can say what is the reason and how others can setup the de1 in a way to see the problem and might help
i still see problems with the amount of clock cycles available even in the 100MHz domain. each sdram access that is not inside the cache takes 8-9 clock cycles. in one of the modes we need 3 fetches, each worst case 9 cycles what would take 3x9 27 cycles out of total 32 and there is a zet cpu who would also need 9 cycles when there are 32-3x9 = 5 cycles left. i have a feeling that i will need to complete rewrite the vga memory access to fill some pixel fifos ... but first i need to get a stabe and trustable text mode out of sdram ...
but donna ... could you post what is needed to compile the bios with open watcom, or post an image thatwould run on the de1 ??? i only have an image from you but i am not shure it is thelatest based on that what is on git.