用djgpp写一个dos图形程序,用10号视频中断设置为图形模式后,打算用直接写显存的方式来画象素点(以前用turboC时一直就是这么做的)。
显存的首址应该是A0000H吧?以前用turboC时,一句:video_buf = A0000000L就搞定了,但是现在换成DJGPP,确出来了一个“保护错误”!
General Protection Fault at eip=0000177c
eax=a0000000 ebx=000001ed ecx=00000000 edx=00000001 esi=00000054 edi=0004a2d0
ebp=000ca268 esp=000ca260 program=G:\PROJECTS\DJGPP\GIDE\GIDE.EXE
cs: sel=01a7 base=01ed0000 limit=000cffff
ds: sel=01af base=01ed0000 limit=000cffff
es: sel=01af base=01ed0000 limit=000cffff
fs: sel=017f base=0000e2c0 limit=0000ffff
gs: sel=01bf base=00000000 limit=0010ffff
ss: sel=01af base=01ed0000 limit=000cffff
App stack: Exceptn stack:
Call frame traceback EIPs:
0x0000177c
0x00001858
0x00005578
难道djgpp下(或者说保护模式下)不允许直接写显存么?
显存的首址应该是A0000H吧?以前用turboC时,一句:video_buf = A0000000L就搞定了,但是现在换成DJGPP,确出来了一个“保护错误”!
General Protection Fault at eip=0000177c
eax=a0000000 ebx=000001ed ecx=00000000 edx=00000001 esi=00000054 edi=0004a2d0
ebp=000ca268 esp=000ca260 program=G:\PROJECTS\DJGPP\GIDE\GIDE.EXE
cs: sel=01a7 base=01ed0000 limit=000cffff
ds: sel=01af base=01ed0000 limit=000cffff
es: sel=01af base=01ed0000 limit=000cffff
fs: sel=017f base=0000e2c0 limit=0000ffff
gs: sel=01bf base=00000000 limit=0010ffff
ss: sel=01af base=01ed0000 limit=000cffff
App stack: Exceptn stack:
Call frame traceback EIPs:
0x0000177c
0x00001858
0x00005578
难道djgpp下(或者说保护模式下)不允许直接写显存么?
