Fix up sections variables are created in, major code cleanup, remove protection removal. Completed! :D
This commit is contained in:
@@ -54,7 +54,7 @@ WINOBJ=${WINDIR}/copyvwin.o \
|
|||||||
${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \
|
${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \
|
||||||
@GL_DRAW@ ${WINDIR}/sw_draw.o \
|
@GL_DRAW@ ${WINDIR}/sw_draw.o \
|
||||||
${WINDIR}/zloaderw.o ${WINDIR}/ztcp.o ${WINDIR}/zipxw.o \
|
${WINDIR}/zloaderw.o ${WINDIR}/ztcp.o ${WINDIR}/zipxw.o \
|
||||||
${WINDIR}/zfilew.o ${WINDIR}/protect.o
|
${WINDIR}/zfilew.o
|
||||||
|
|
||||||
WINDOSOBJ=${DOSDIR}/debug.o ${DOSDIR}/joy.o ${DOSDIR}/modemrtn.o ${DOSDIR}/vesa2.o\
|
WINDOSOBJ=${DOSDIR}/debug.o ${DOSDIR}/joy.o ${DOSDIR}/modemrtn.o ${DOSDIR}/vesa2.o\
|
||||||
${DOSDIR}/initvid.o ${DOSDIR}/sw.o ${DOSDIR}/gppro.o ${DOSDIR}/vesa12.o
|
${DOSDIR}/initvid.o ${DOSDIR}/sw.o ${DOSDIR}/gppro.o ${DOSDIR}/vesa12.o
|
||||||
|
|||||||
@@ -49,12 +49,6 @@ EXTSYM cycpbl,debugbuf,soundon,spcA,spcNZ,spcP,spcPCRam
|
|||||||
EXTSYM spcRam,spcRamDP,spcS,spcX,spcY
|
EXTSYM spcRam,spcRamDP,spcS,spcX,spcY
|
||||||
EXTSYM CurPtrVal,SPC7110Enable
|
EXTSYM CurPtrVal,SPC7110Enable
|
||||||
|
|
||||||
NEWSYM DebugAsmStart
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; debstop at regsw.asm 2118/2119
|
; debstop at regsw.asm 2118/2119
|
||||||
|
|
||||||
|
|
||||||
@@ -94,48 +88,6 @@ NEWSYM startdebugger
|
|||||||
EXTSYM oamram
|
EXTSYM oamram
|
||||||
mov edx,oamram
|
mov edx,oamram
|
||||||
mov ecx,544
|
mov ecx,544
|
||||||
; mov ecx,2048*4
|
|
||||||
; mov edx,[C4Ram]
|
|
||||||
; mov ecx,32768
|
|
||||||
; mov edx,[romdata]
|
|
||||||
; add edx,65536*13h
|
|
||||||
; mov ecx,2EFh
|
|
||||||
; mov edx,SDD1Array
|
|
||||||
; mov ecx,[SDD1Entry]
|
|
||||||
; mov edx,[romdata]
|
|
||||||
; add edx,32768*40
|
|
||||||
; mov edx,cnetplaybuf
|
|
||||||
; mov ecx,512
|
|
||||||
; mov edx,[sfxramdata]
|
|
||||||
; add edx,65536
|
|
||||||
; mov edx,fxtrace
|
|
||||||
; mov ecx,65536
|
|
||||||
; mov edx,[wramdata]
|
|
||||||
; mov ecx,544
|
|
||||||
; mov edx,oamram
|
|
||||||
; mov ecx,256
|
|
||||||
; mov edx,DSPFuncUsed
|
|
||||||
|
|
||||||
; mov edx,fulladdtab
|
|
||||||
; mov ecx,65536*2
|
|
||||||
|
|
||||||
; mov ecx,17*4
|
|
||||||
; mov edx,_ViewerZ
|
|
||||||
; mov ecx,512
|
|
||||||
; mov edx,cgram
|
|
||||||
; mov ecx,256*4
|
|
||||||
; mov edx,fxtrace
|
|
||||||
;NEWSYM DecompArray, times 65536 db 0
|
|
||||||
;NEWSYM DecompAPtr, dd 0
|
|
||||||
; mov edx,DecompArray
|
|
||||||
; mov ecx,[DecompAPtr]
|
|
||||||
; shl ecx,3
|
|
||||||
; mov edx,[romdata]
|
|
||||||
; add edx,3E5CCEh
|
|
||||||
; mov ecx,0022h
|
|
||||||
; mov edx,[romdata]
|
|
||||||
; add edx,1024*4096
|
|
||||||
; mov ecx,65536
|
|
||||||
|
|
||||||
or ecx,ecx
|
or ecx,ecx
|
||||||
jz .nofilecontents
|
jz .nofilecontents
|
||||||
@@ -174,10 +126,10 @@ NEWSYM startdebugger
|
|||||||
|
|
||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.fname2 db 9,'vram.dat',0
|
.fname2 db 9,'vram.dat',0
|
||||||
.fname3 db 9,'vram2.dat',0
|
.fname3 db 9,'vram2.dat',0
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
; global variables
|
; global variables
|
||||||
NEWSYM debugh, dw 0 ; debug head
|
NEWSYM debugh, dw 0 ; debug head
|
||||||
NEWSYM debugt, dw 0 ; debug tail
|
NEWSYM debugt, dw 0 ; debug tail
|
||||||
@@ -261,7 +213,9 @@ NEWSYM loadtempstuff
|
|||||||
mov [timinl2],al
|
mov [timinl2],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.spcfname db 'temp.spc',0
|
.spcfname db 'temp.spc',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Debug Loop
|
; Debug Loop
|
||||||
@@ -445,8 +399,11 @@ NEWSYM debugdump
|
|||||||
call Write_File
|
call Write_File
|
||||||
call Close_File
|
call Close_File
|
||||||
jmp debugloopb
|
jmp debugloopb
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.fname db 'SPCRAM.DMP',0
|
.fname db 'SPCRAM.DMP',0
|
||||||
.fname2 db 'DSP.DMP',0
|
.fname2 db 'DSP.DMP',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Debug save/load states
|
; Debug save/load states
|
||||||
@@ -1416,7 +1373,9 @@ NEWSYM traceops
|
|||||||
mov [xpc],si
|
mov [xpc],si
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.message1 db 'Tracing. Press ESC to stop.'
|
.message1 db 'Tracing. Press ESC to stop.'
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; SPCBreakOps Breaks at Breakpoint @ SPC
|
; SPCBreakOps Breaks at Breakpoint @ SPC
|
||||||
@@ -1511,7 +1470,9 @@ NEWSYM SPCbreakops
|
|||||||
mov [xpc],si
|
mov [xpc],si
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.message1 db 'Locating Breakpoint ... Press ESC to stop.'
|
.message1 db 'Locating Breakpoint ... Press ESC to stop.'
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; BreakatSign Breaks whenever debstop = 1
|
; BreakatSign Breaks whenever debstop = 1
|
||||||
@@ -1614,7 +1575,9 @@ NEWSYM breakatsign
|
|||||||
pop es
|
pop es
|
||||||
jmp debugloopa
|
jmp debugloopa
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.message1 db 'Waiting for Signal .... Press ESC to stop.'
|
.message1 db 'Waiting for Signal .... Press ESC to stop.'
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; BreakatSign&Log Breaks whenever debstop = 1
|
; BreakatSign&Log Breaks whenever debstop = 1
|
||||||
@@ -1790,6 +1753,7 @@ NEWSYM breakatsignlog
|
|||||||
mov bx,[.handle]
|
mov bx,[.handle]
|
||||||
call Close_File
|
call Close_File
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.loggeddata times 128 db 0
|
.loggeddata times 128 db 0
|
||||||
.message1 db 'Waiting for Signal .... Press ESC to stop.',0
|
.message1 db 'Waiting for Signal .... Press ESC to stop.',0
|
||||||
.handle dw 0
|
.handle dw 0
|
||||||
@@ -1798,7 +1762,6 @@ NEWSYM breakatsignlog
|
|||||||
;*******************************************************
|
;*******************************************************
|
||||||
; BreakatSignB Breaks whenever keyonsn = 1
|
; BreakatSignB Breaks whenever keyonsn = 1
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
SECTION .data
|
|
||||||
NEWSYM keyonsn, db 0
|
NEWSYM keyonsn, db 0
|
||||||
NEWSYM prbreak, db 0
|
NEWSYM prbreak, db 0
|
||||||
SECTION .text
|
SECTION .text
|
||||||
@@ -2240,6 +2203,7 @@ NEWSYM startdisplay
|
|||||||
.doneprint
|
.doneprint
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.debuginfo db '- @5Z@4S@3N@2E@6S@7 debugger -$'
|
.debuginfo db '- @5Z@4S@3N@2E@6S@7 debugger -$'
|
||||||
.D65816 db ' 65816 $'
|
.D65816 db ' 65816 $'
|
||||||
.mbar db '@4(@6T@4)@7race for @4(@6B@4)@7reakpoint '
|
.mbar db '@4(@6T@4)@7race for @4(@6B@4)@7reakpoint '
|
||||||
@@ -2250,7 +2214,6 @@ NEWSYM startdisplay
|
|||||||
; Next Opcode Writes the next opcode & regs
|
; Next Opcode Writes the next opcode & regs
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; 008000 STZ $123456,x A:0000 X:0000 Y:0000 S:01FF DB:00 D:0000 P:33 E+
|
; 008000 STZ $123456,x A:0000 X:0000 Y:0000 S:01FF DB:00 D:0000 P:33 E+
|
||||||
SECTION .data
|
|
||||||
NEWSYM debugsa1, db 0
|
NEWSYM debugsa1, db 0
|
||||||
NEWSYM skipdebugsa1, db 1
|
NEWSYM skipdebugsa1, db 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
@@ -3610,7 +3573,10 @@ NEWSYM nextopcodesa1
|
|||||||
mov dl,0
|
mov dl,0
|
||||||
int 10h
|
int 10h
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.blah db 0
|
.blah db 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
.outputtobuffer
|
.outputtobuffer
|
||||||
; output pb/pc
|
; output pb/pc
|
||||||
@@ -4406,4 +4372,3 @@ NEWSYM ArgumentTable
|
|||||||
; F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
; F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
||||||
db 14,01,02,03,15,16,17,18,35,64,09,65,31,66,67,00
|
db 14,01,02,03,15,16,17,18,35,64,09,65,31,66,67,00
|
||||||
SECTION .text
|
SECTION .text
|
||||||
NEWSYM DebugAsmEnd
|
|
||||||
|
|||||||
@@ -77,18 +77,8 @@ EXTSYM TCPIPAddress
|
|||||||
; made. GUI36hzcall should be called at 36hz after a call GUIInit and
|
; made. GUI36hzcall should be called at 36hz after a call GUIInit and
|
||||||
; before GUIDeInit.
|
; before GUIDeInit.
|
||||||
|
|
||||||
|
|
||||||
;SECTION .data
|
|
||||||
;NEWSYM OSPort, db 0 ; 0 = DOS (C), 1 = DOS (ASM), 2 = Linux, 3 = Win95
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
|
|
||||||
NEWSYM OSPort, resb 1
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
|
|
||||||
NEWSYM dssel, dw 0
|
NEWSYM dssel, dw 0
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM StartUp
|
NEWSYM StartUp
|
||||||
@@ -445,11 +435,6 @@ NEWSYM Get_File_Date
|
|||||||
%%prskip
|
%%prskip
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
;SECTION .data
|
|
||||||
;NEWSYM prval, db 0
|
|
||||||
;NEWSYM prres, db 0
|
|
||||||
;SECTION .text
|
|
||||||
|
|
||||||
NEWSYM Check_Key
|
NEWSYM Check_Key
|
||||||
; xor al,al
|
; xor al,al
|
||||||
; PressConv 75,01h,75
|
; PressConv 75,01h,75
|
||||||
@@ -1609,16 +1594,6 @@ NEWSYM Check60hz
|
|||||||
; TCP/IP Stuff
|
; TCP/IP Stuff
|
||||||
; ****************************
|
; ****************************
|
||||||
|
|
||||||
; TCPIPPortNum
|
|
||||||
;NEWSYM TCPIPStatus, db 0
|
|
||||||
;NEWSYM PacketSendSize, dd 0
|
|
||||||
;NEWSYM PacketRecvSize, dd 0
|
|
||||||
;NEWSYM PacketRecvPtr, dd 0
|
|
||||||
;NEWSYM PacketSendArray, times 256 db 0
|
|
||||||
;NEWSYM PacketRecvArray, times 256 db 0
|
|
||||||
;NEWSYM IPAddrStr, times 20 db 0
|
|
||||||
;NEWSYM RemoteDisconnect, db 0
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
|
||||||
NEWSYM TCPIPStatus, resb 1
|
NEWSYM TCPIPStatus, resb 1
|
||||||
@@ -1806,7 +1781,6 @@ NEWSYM GetHostName
|
|||||||
|
|
||||||
NEWSYM hostname
|
NEWSYM hostname
|
||||||
NEWSYM UDPConfig
|
NEWSYM UDPConfig
|
||||||
;NEWSYM tcperr, dd 0,0,0,0
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
%include "macros.mac"
|
%include "macros.mac"
|
||||||
|
|
||||||
NEWSYM GPProAsmStart
|
|
||||||
section .data
|
section .data
|
||||||
sample times 60 db 0
|
sample times 60 db 0
|
||||||
clock_mask db 0
|
clock_mask db 0
|
||||||
@@ -154,4 +153,3 @@ GPP_ERR:
|
|||||||
pop ebx
|
pop ebx
|
||||||
mov eax,1
|
mov eax,1
|
||||||
ret
|
ret
|
||||||
NEWSYM GPProAsmEnd
|
|
||||||
|
|||||||
@@ -26,9 +26,6 @@ EXTSYM vesa2selec,InitVesa12,videotroub
|
|||||||
EXTSYM cscopymodeq,cscopymodex
|
EXTSYM cscopymodeq,cscopymodex
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
NEWSYM InitVidAsmStart
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
|
||||||
NEWSYM clearfilter, resw 1
|
NEWSYM clearfilter, resw 1
|
||||||
@@ -572,5 +569,3 @@ NEWSYM dosinitvideo
|
|||||||
mov ecx,6144
|
mov ecx,6144
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM InitVidAsmEnd
|
|
||||||
|
|||||||
@@ -30,67 +30,8 @@ EXTSYM pl5contrl,pl5p209
|
|||||||
EXTSYM CalibXmin, CalibYmin, CalibXmax, CalibYmax, CalibXmin209
|
EXTSYM CalibXmin, CalibYmin, CalibXmax, CalibYmax, CalibXmin209
|
||||||
EXTSYM CalibYmin209, CalibXmax209, CalibYmax209
|
EXTSYM CalibYmin209, CalibXmax209, CalibYmax209
|
||||||
|
|
||||||
NEWSYM JoyAsmStart
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
|
|
||||||
;NEWSYM joy4218, db 0
|
|
||||||
;NEWSYM joy4219, db 0
|
|
||||||
;NEWSYM joy4218j, db 0
|
|
||||||
;NEWSYM joy4219j, db 0
|
|
||||||
;NEWSYM joy421A, db 0
|
|
||||||
;NEWSYM joy421B, db 0
|
|
||||||
;NEWSYM joy421Aj, db 0
|
|
||||||
;NEWSYM joy421Bj, db 0
|
|
||||||
|
|
||||||
;NEWSYM JoyCenterX, dd 0
|
|
||||||
;NEWSYM JoyCenterY, dd 0
|
|
||||||
;NEWSYM JoyMaxX, dd 0
|
|
||||||
;NEWSYM JoyMaxY, dd 0
|
|
||||||
;NEWSYM JoyMinX, dd 0
|
|
||||||
;NEWSYM JoyMinY, dd 0
|
|
||||||
;NEWSYM JoyExists, db 0
|
|
||||||
;NEWSYM JoyX, dd 0
|
|
||||||
;NEWSYM JoyY, dd 0
|
|
||||||
;NEWSYM JoyCenterX2, dd 0
|
|
||||||
;NEWSYM JoyCenterY2, dd 0
|
|
||||||
;NEWSYM JoyMaxX2, dd 0
|
|
||||||
;NEWSYM JoyMaxY2, dd 0
|
|
||||||
;NEWSYM JoyMinX2, dd 0
|
|
||||||
;NEWSYM JoyMinY2, dd 0
|
|
||||||
;NEWSYM JoyExists2, db 0
|
|
||||||
;NEWSYM JoyX2, dd 0
|
|
||||||
;NEWSYM JoyY2, dd 0
|
|
||||||
;NEWSYM JoyAltrn, db 0
|
|
||||||
NEWSYM JoyAltrn2, db 2
|
NEWSYM JoyAltrn2, db 2
|
||||||
;NEWSYM JoyCenterX209, dd 0
|
|
||||||
;NEWSYM JoyCenterY209, dd 0
|
|
||||||
;NEWSYM JoyMaxX209, dd 0
|
|
||||||
;NEWSYM JoyMaxY209, dd 0
|
|
||||||
;NEWSYM JoyMinX209, dd 0
|
|
||||||
;NEWSYM JoyMinY209, dd 0
|
|
||||||
;NEWSYM JoyCenterX2209, dd 0
|
|
||||||
;NEWSYM JoyCenterY2209, dd 0
|
|
||||||
;NEWSYM JoyMaxX2209, dd 0
|
|
||||||
;NEWSYM JoyMaxY2209, dd 0
|
|
||||||
;NEWSYM JoyMinX2209, dd 0
|
|
||||||
;NEWSYM JoyMinY2209, dd 0
|
|
||||||
|
|
||||||
;JoyQuant db 0
|
|
||||||
;JoyBQuant db 0
|
|
||||||
;NumSWs db 0
|
|
||||||
;NumGRiPs db 0
|
|
||||||
;PPad db 0 ; b0 = pp0, b1 = pp1
|
|
||||||
|
|
||||||
;JoyQuant209 db 0
|
|
||||||
;JoyBQuant209 db 0
|
|
||||||
;NumSWs209 db 0
|
|
||||||
;NumGRiPs209 db 0
|
|
||||||
;Buttons6 db 0
|
|
||||||
;Buttons6209 db 0
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
|
||||||
NEWSYM joy4218, resb 1
|
NEWSYM joy4218, resb 1
|
||||||
@@ -147,20 +88,6 @@ NumGRiPs209 resb 1
|
|||||||
Buttons6 resb 1
|
Buttons6 resb 1
|
||||||
Buttons6209 resb 1
|
Buttons6209 resb 1
|
||||||
|
|
||||||
;NEWSYM pl3selk, dd 0 ; 3SELECT = SHIFT
|
|
||||||
;NEWSYM pl3startk, dd 0 ; 3START = ENTER
|
|
||||||
;NEWSYM pl3upk, dd 0 ; 3UP = up
|
|
||||||
;NEWSYM pl3downk, dd 0 ; 3DOWN = down
|
|
||||||
;NEWSYM pl3leftk, dd 0 ; 3LEFT = left
|
|
||||||
;NEWSYM pl3rightk, dd 0 ; 3RIGHT = right
|
|
||||||
;NEWSYM pl3Yk, dd 0 ; 3X = INS
|
|
||||||
;NEWSYM pl3Xk, dd 0 ; 3A = HOME
|
|
||||||
;NEWSYM pl3Lk, dd 0 ; 3L = PAGE UP
|
|
||||||
;NEWSYM pl3Bk, dd 0 ; 3Y = DELETE
|
|
||||||
;NEWSYM pl3Ak, dd 0 ; 3B = END
|
|
||||||
;NEWSYM pl3Rk, dd 0 ; 3R = PAGE DOWN
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM GetCoords
|
NEWSYM GetCoords
|
||||||
@@ -570,7 +497,9 @@ NEWSYM DosUpdateDevices
|
|||||||
.none2
|
.none2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM JoyReadControl, db 0
|
NEWSYM JoyReadControl, db 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
JoyRead209:
|
JoyRead209:
|
||||||
cmp byte[JoyAltrn],1
|
cmp byte[JoyAltrn],1
|
||||||
@@ -1749,5 +1678,3 @@ NEWSYM SetInputDevice209
|
|||||||
|
|
||||||
.exit
|
.exit
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM JoyAsmEnd
|
|
||||||
|
|||||||
@@ -27,13 +27,6 @@ EXTSYM delay
|
|||||||
EXTSYM dssel
|
EXTSYM dssel
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
NEWSYM DosModemRTNAsmStart
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
NEWSYM UartType, resb 1
|
NEWSYM UartType, resb 1
|
||||||
|
|
||||||
@@ -457,5 +450,3 @@ NEWSYM DeInitModemC
|
|||||||
out dx,al
|
out dx,al
|
||||||
sti
|
sti
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM DosModemRTNAsmEnd
|
|
||||||
|
|||||||
@@ -431,7 +431,7 @@ NEWSYM stopsbsound
|
|||||||
sti
|
sti
|
||||||
iretd
|
iretd
|
||||||
|
|
||||||
section .bss ;ALIGN=32
|
section .bss
|
||||||
NEWSYM sbhandexec, resd 1
|
NEWSYM sbhandexec, resd 1
|
||||||
section .text
|
section .text
|
||||||
|
|
||||||
@@ -650,7 +650,7 @@ NEWSYM stopsbsound16
|
|||||||
; Sound Blaster Initialization Stuff
|
; Sound Blaster Initialization Stuff
|
||||||
;****************************************************
|
;****************************************************
|
||||||
|
|
||||||
section .bss ;ALIGN=32
|
section .bss
|
||||||
NEWSYM memoryloc, resd 1 ; Memory offset in conventional memory
|
NEWSYM memoryloc, resd 1 ; Memory offset in conventional memory
|
||||||
NEWSYM memoryloc2, resd 1 ; Memory offset in conventional memory
|
NEWSYM memoryloc2, resd 1 ; Memory offset in conventional memory
|
||||||
NEWSYM sbselec, resw 1 ; Selector of Memory location
|
NEWSYM sbselec, resw 1 ; Selector of Memory location
|
||||||
@@ -805,7 +805,7 @@ NEWSYM InitSB
|
|||||||
call SB_dsp_write
|
call SB_dsp_write
|
||||||
jmp .fixsurround
|
jmp .fixsurround
|
||||||
|
|
||||||
SECTION .bss ;ALIGN=32
|
SECTION .bss
|
||||||
.Versionnum resw 1
|
.Versionnum resw 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,6 @@
|
|||||||
|
|
||||||
EXTSYM SidewinderFix
|
EXTSYM SidewinderFix
|
||||||
|
|
||||||
NEWSYM SWAsmStart
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%macro ParityCheckSW 1
|
%macro ParityCheckSW 1
|
||||||
mov ecx,ebx
|
mov ecx,ebx
|
||||||
xor cl,ch
|
xor cl,ch
|
||||||
@@ -223,4 +218,3 @@ ModeALoop:
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz ModeALoop
|
jnz ModeALoop
|
||||||
ret
|
ret
|
||||||
NEWSYM SWAsmEnd
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
;Flat memory mode (Protected mode extender required! Tested with DOS32)
|
;Flat memory mode (Protected mode extender required! Tested with DOS32)
|
||||||
;Tested with TASM 4.0+
|
;Tested with TASM 4.0+
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
SW1 dd 0 ;SW #1's button status
|
SW1 dd 0 ;SW #1's button status
|
||||||
SW2 dd 0 ;SW #2's button status
|
SW2 dd 0 ;SW #2's button status
|
||||||
SW3 dd 0 ;SW #3's button status
|
SW3 dd 0 ;SW #3's button status
|
||||||
@@ -47,6 +47,7 @@ SWSetup dd 0 ;Tell the driver what polling mode to use
|
|||||||
|
|
||||||
gDump times 100h db 0 ;SW Status dump buffer (space for 256 bytes, uses 200)
|
gDump times 100h db 0 ;SW Status dump buffer (space for 256 bytes, uses 200)
|
||||||
bDump times 80h db 0 ;buffer to hold button data (Modes A and B, all SW)
|
bDump times 80h db 0 ;buffer to hold button data (Modes A and B, all SW)
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;This macro calculates parity for the buttons and compares it to the SW's
|
;This macro calculates parity for the buttons and compares it to the SW's
|
||||||
; parity bit. If they don't match, the button data is discarded.
|
; parity bit. If they don't match, the button data is discarded.
|
||||||
|
|||||||
@@ -28,21 +28,11 @@ EXTSYM InitDrive,gotoroot,InitDir,fulladdtab
|
|||||||
EXTSYM LFBpointer,noblocks,bytesperscanline,vesamode,VESAmodelist
|
EXTSYM LFBpointer,noblocks,bytesperscanline,vesamode,VESAmodelist
|
||||||
|
|
||||||
|
|
||||||
NEWSYM Vesa12AsmStart
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; add 0214h video mode
|
; add 0214h video mode
|
||||||
|
|
||||||
;NEWSYM granularity, dw 0
|
|
||||||
;NEWSYM granadd, dd 0
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
|
||||||
NEWSYM granularity, resw 1
|
NEWSYM granularity, resw 1
|
||||||
NEWSYM granadd, resd 1
|
NEWSYM granadd, resd 1
|
||||||
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM VESA12EXITTODOS
|
NEWSYM VESA12EXITTODOS
|
||||||
@@ -66,32 +56,30 @@ NEWSYM VESA12EXITTODOS
|
|||||||
mov byte[videotroub],1
|
mov byte[videotroub],1
|
||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.exitfromvesa12 db 'Unable to Initialize VESA1.2 $'
|
.exitfromvesa12 db 'Unable to Initialize VESA1.2 $'
|
||||||
.return db 10,13,'$'
|
.return db 10,13,'$'
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Set up Vesa 2
|
; Set up Vesa 2
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
|
|
||||||
NEWSYM InitVesa12
|
NEWSYM InitVesa12
|
||||||
;-------------------------------------------------;
|
;-------------------------------------------------;
|
||||||
; First - allocate some bytes in DOS memory for ;
|
; First - allocate some bytes in DOS memory for ;
|
||||||
; communication with VBE ;
|
; communication with VBE ;
|
||||||
;-------------------------------------------------;
|
;-------------------------------------------------;
|
||||||
|
|
||||||
mov eax,0100h
|
mov eax,0100h
|
||||||
mov ebx,512/16 ; 512 bytes
|
mov ebx,512/16 ; 512 bytes
|
||||||
int 31h ; Function 31h,100h - Allocate
|
int 31h ; Function 31h,100h - Allocate DOS memory (512 bytes)
|
||||||
; DOS memory (512 bytes)
|
jnc .gotmem
|
||||||
jnc .gotmem
|
mov edx,.nomemmessage
|
||||||
mov edx,.nomemmessage
|
jmp VESA12EXITTODOS
|
||||||
jmp VESA12EXITTODOS
|
.gotmem
|
||||||
.nomemmessage
|
mov fs,dx ; FS now points to the DOS buffer
|
||||||
db ': Unable to locate DOS memory.$'
|
|
||||||
|
|
||||||
.gotmem
|
|
||||||
mov fs,dx ; FS now points to the DOS
|
|
||||||
; buffer
|
|
||||||
|
|
||||||
|
|
||||||
;--------------------------------------------------;
|
;--------------------------------------------------;
|
||||||
@@ -118,8 +106,6 @@ NEWSYM InitVesa12
|
|||||||
jnc .int1ok
|
jnc .int1ok
|
||||||
mov edx,.noint1message
|
mov edx,.noint1message
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
.noint1message
|
|
||||||
db ': Simulated real mode interrupt failed.$'
|
|
||||||
|
|
||||||
.int1ok ; Real mode int successful!!!
|
.int1ok ; Real mode int successful!!!
|
||||||
mov eax,[RMREGS.eax]
|
mov eax,[RMREGS.eax]
|
||||||
@@ -127,24 +113,19 @@ NEWSYM InitVesa12
|
|||||||
jz .vbedetected
|
jz .vbedetected
|
||||||
mov edx,.novbemessage
|
mov edx,.novbemessage
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
.novbemessage
|
|
||||||
db ': VBE not detected!!$'
|
|
||||||
|
|
||||||
.vbedetected
|
.vbedetected
|
||||||
cmp dword[fs:0000],'VESA'
|
cmp dword[fs:0000],'VESA'
|
||||||
jz .vesadetected ; Check for presence of vesa
|
jz .vesadetected ; Check for presence of vesa
|
||||||
mov edx,.novesamessage
|
mov edx,.novesamessage
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
.novesamessage
|
|
||||||
db ': VESA not detected!$'
|
|
||||||
|
|
||||||
.vesadetected
|
.vesadetected
|
||||||
cmp word[fs:0004],102h
|
cmp word[fs:0004],102h
|
||||||
jae .vesa12detected ; Check we've got VESA 1.2 or greater
|
jae .vesa12detected ; Check we've got VESA 1.2 or greater
|
||||||
mov edx,.novesa2message
|
mov edx,.novesa2message
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
.novesa2message
|
|
||||||
db ': VESA 1.2 or greater required!$'
|
|
||||||
|
|
||||||
|
|
||||||
;-----------------------------------------------------;
|
;-----------------------------------------------------;
|
||||||
@@ -162,8 +143,6 @@ NEWSYM InitVesa12
|
|||||||
jnc .wegottheselector
|
jnc .wegottheselector
|
||||||
mov edx, .oopsnoselector
|
mov edx, .oopsnoselector
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
.oopsnoselector
|
|
||||||
db ': Failed to allocate vesa display selector!$'
|
|
||||||
|
|
||||||
.wegottheselector
|
.wegottheselector
|
||||||
|
|
||||||
@@ -187,8 +166,6 @@ NEWSYM InitVesa12
|
|||||||
.outofmodelistspace
|
.outofmodelistspace
|
||||||
mov edx,.outofmodelistspacemessage
|
mov edx,.outofmodelistspacemessage
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
.outofmodelistspacemessage
|
|
||||||
db ': Out of VESA mode list space!$'
|
|
||||||
|
|
||||||
;----------------------------------------------;
|
;----------------------------------------------;
|
||||||
; OK - Scan the mode list to find a matching ;
|
; OK - Scan the mode list to find a matching ;
|
||||||
@@ -208,9 +185,6 @@ NEWSYM InitVesa12
|
|||||||
mov edx,.endoflist
|
mov edx,.endoflist
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
|
|
||||||
.endoflist db ': VESA 1.2 mode does not work on your video card/driver.$'
|
|
||||||
.whichwin db 0
|
|
||||||
|
|
||||||
.notendoflist
|
.notendoflist
|
||||||
|
|
||||||
mov edi, RMREGS
|
mov edi, RMREGS
|
||||||
@@ -230,8 +204,6 @@ NEWSYM InitVesa12
|
|||||||
jnc .modecheckok
|
jnc .modecheckok
|
||||||
mov edx,.modecheckfail
|
mov edx,.modecheckfail
|
||||||
jmp VESA12EXITTODOS
|
jmp VESA12EXITTODOS
|
||||||
.modecheckfail
|
|
||||||
db ': Real mode interrupt failure while checking vesa mode$'
|
|
||||||
|
|
||||||
.modecheckok
|
.modecheckok
|
||||||
add ebp,2
|
add ebp,2
|
||||||
@@ -492,11 +464,6 @@ NEWSYM InitVesa12
|
|||||||
div bx
|
div bx
|
||||||
mov [granadd],ax
|
mov [granadd],ax
|
||||||
|
|
||||||
|
|
||||||
;vesa2_rtrcl dw 0 ; red transparency clear (bit+4)
|
|
||||||
;vesa2_rtrcla dw 0 ; red transparency (AND) clear (not(bit+4))
|
|
||||||
;vesa2_rfull dw 0 ; red max (or (bit-1)*1Fh)
|
|
||||||
|
|
||||||
call genfulladdtab
|
call genfulladdtab
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
@@ -510,7 +477,6 @@ NEWSYM InitVesa12
|
|||||||
jz .modesetok
|
jz .modesetok
|
||||||
mov edx,.unableset
|
mov edx,.unableset
|
||||||
jmp VESA12EXITTODOS ; Failure!!!
|
jmp VESA12EXITTODOS ; Failure!!!
|
||||||
.unableset db 'Unable to initialize video mode.$'
|
|
||||||
|
|
||||||
.modesetok
|
.modesetok
|
||||||
;******************************* EXTRA BIT ****************************
|
;******************************* EXTRA BIT ****************************
|
||||||
@@ -534,34 +500,24 @@ NEWSYM InitVesa12
|
|||||||
jz .correctwidth
|
jz .correctwidth
|
||||||
mov edx, .unablescan
|
mov edx, .unablescan
|
||||||
jmp VESA12EXITTODOS ; Failure!!!
|
jmp VESA12EXITTODOS ; Failure!!!
|
||||||
.unablescan db 'Unable to set scan line length.$'
|
|
||||||
|
|
||||||
.correctwidth
|
.correctwidth
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
;RMREGS
|
.nomemmessage db ': Unable to locate DOS memory.$'
|
||||||
;.edi dd 0
|
.noint1message db ': Simulated real mode interrupt failed.$'
|
||||||
;.esi dd 0
|
.oopsnoselector db ': Failed to allocate vesa display selector!$'
|
||||||
;.ebp dd 0
|
.novesa2message db ': VESA 1.2 or greater required!$'
|
||||||
;.esp dd 0
|
.novbemessage db ': VBE not detected!!$'
|
||||||
;.ebx dd 0
|
.novesamessage db ': VESA not detected!$'
|
||||||
;.edx dd 0
|
.outofmodelistspacemessage db ': Out of VESA mode list space!$'
|
||||||
;.ecx dd 0
|
.endoflist db ': VESA 1.2 mode does not work on your video card/driver.$'
|
||||||
;.eax dd 0
|
.whichwin db 0
|
||||||
;.flags dw 0
|
.modecheckfail db ': Real mode interrupt failure while checking vesa mode$'
|
||||||
;.es dw 0
|
.unableset db 'Unable to initialize video mode.$'
|
||||||
;.ds dw 0
|
.unablescan db 'Unable to set scan line length.$'
|
||||||
;.fs dw 0
|
|
||||||
;.gs dw 0
|
|
||||||
;.ip dw 0
|
|
||||||
;.cs dw 0
|
|
||||||
;.sp dw 0
|
|
||||||
;.ss dw 0
|
|
||||||
;.spare times 20 dd 0
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
|
||||||
RMREGS
|
RMREGS
|
||||||
@@ -583,5 +539,3 @@ RMREGS
|
|||||||
.sp resw 1
|
.sp resw 1
|
||||||
.ss resw 1
|
.ss resw 1
|
||||||
.spare times 20 resd 1
|
.spare times 20 resd 1
|
||||||
|
|
||||||
NEWSYM Vesa12AsmEnd
|
|
||||||
|
|||||||
@@ -28,11 +28,7 @@ EXTSYM UnusedBit,HalfTrans,UnusedBitXor,ngrposng,nggposng,ngbposng
|
|||||||
|
|
||||||
EXTSYM Init_2xSaIMMX
|
EXTSYM Init_2xSaIMMX
|
||||||
|
|
||||||
NEWSYM Vesa2AsmStart
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
|
|
||||||
; add 0214h video mode
|
; add 0214h video mode
|
||||||
anticrash times 10 db 0
|
anticrash times 10 db 0
|
||||||
|
|
||||||
@@ -162,8 +158,10 @@ NEWSYM VESA2EXITTODOS
|
|||||||
call Change_Dir
|
call Change_Dir
|
||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.exitfromvesa2 db 'Unable to Initialize VESA2 : ',0
|
.exitfromvesa2 db 'Unable to Initialize VESA2 : ',0
|
||||||
.return db 10,13,0
|
.return db 10,13,0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Set up Vesa 2
|
; Set up Vesa 2
|
||||||
@@ -182,8 +180,6 @@ NEWSYM InitVesa2
|
|||||||
jnc .gotmem
|
jnc .gotmem
|
||||||
mov edx,.nomemmessage
|
mov edx,.nomemmessage
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.nomemmessage
|
|
||||||
db 'Unable to locate DOS memory.',0
|
|
||||||
|
|
||||||
.gotmem
|
.gotmem
|
||||||
mov fs,dx ; FS now points to the DOS
|
mov fs,dx ; FS now points to the DOS
|
||||||
@@ -214,8 +210,7 @@ NEWSYM InitVesa2
|
|||||||
jnc .int1ok
|
jnc .int1ok
|
||||||
mov edx,.noint1message
|
mov edx,.noint1message
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.noint1message
|
|
||||||
db 'Simulated real mode interrupt failed.',0
|
|
||||||
|
|
||||||
.int1ok ; Real mode int successful!!!
|
.int1ok ; Real mode int successful!!!
|
||||||
mov eax,[RMREGS.eax]
|
mov eax,[RMREGS.eax]
|
||||||
@@ -223,24 +218,19 @@ NEWSYM InitVesa2
|
|||||||
jz .vbedetected
|
jz .vbedetected
|
||||||
mov edx,.novbemessage
|
mov edx,.novbemessage
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.novbemessage
|
|
||||||
db 'VBE not detected!!',0
|
|
||||||
|
|
||||||
.vbedetected
|
.vbedetected
|
||||||
cmp dword[fs:0000],'VESA'
|
cmp dword[fs:0000],'VESA'
|
||||||
jz .vesadetected ; Check for presence of vesa
|
jz .vesadetected ; Check for presence of vesa
|
||||||
mov edx,.novesamessage
|
mov edx,.novesamessage
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.novesamessage
|
|
||||||
db 'VESA not detected!',0
|
|
||||||
|
|
||||||
.vesadetected
|
.vesadetected
|
||||||
cmp word[fs:0004],200h
|
cmp word[fs:0004],200h
|
||||||
jae .vesa2detected ; Check we've got VESA 2.0 or greater
|
jae .vesa2detected ; Check we've got VESA 2.0 or greater
|
||||||
mov edx,.novesa2message
|
mov edx,.novesa2message
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.novesa2message
|
|
||||||
db 'VESA 2.0 or greater required!',0
|
|
||||||
|
|
||||||
|
|
||||||
;-----------------------------------------------------;
|
;-----------------------------------------------------;
|
||||||
@@ -263,8 +253,6 @@ NEWSYM InitVesa2
|
|||||||
jnc .wegottheselector
|
jnc .wegottheselector
|
||||||
mov edx, .oopsnoselector
|
mov edx, .oopsnoselector
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.oopsnoselector
|
|
||||||
db 'Failed to allocate vesa display selector!',0
|
|
||||||
|
|
||||||
.wegottheselector
|
.wegottheselector
|
||||||
|
|
||||||
@@ -288,8 +276,6 @@ NEWSYM InitVesa2
|
|||||||
.outofmodelistspace
|
.outofmodelistspace
|
||||||
mov edx,.outofmodelistspacemessage
|
mov edx,.outofmodelistspacemessage
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.outofmodelistspacemessage
|
|
||||||
db 'Out of VESA2 mode list space!',0
|
|
||||||
|
|
||||||
;----------------------------------------------;
|
;----------------------------------------------;
|
||||||
; OK - Scan the mode list to find a matching ;
|
; OK - Scan the mode list to find a matching ;
|
||||||
@@ -309,9 +295,6 @@ NEWSYM InitVesa2
|
|||||||
mov edx,.endoflist
|
mov edx,.endoflist
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
|
|
||||||
.endoflist db 'This VESA2 mode does not work on your video card / driver.',0
|
|
||||||
.whichwin db 0
|
|
||||||
|
|
||||||
.notendoflist
|
.notendoflist
|
||||||
|
|
||||||
mov edi, RMREGS
|
mov edi, RMREGS
|
||||||
@@ -331,8 +314,6 @@ NEWSYM InitVesa2
|
|||||||
jnc .modecheckok
|
jnc .modecheckok
|
||||||
mov edx,.modecheckfail
|
mov edx,.modecheckfail
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.modecheckfail
|
|
||||||
db 'Real mode interrupt failure while checking vesa mode',0
|
|
||||||
|
|
||||||
.modecheckok
|
.modecheckok
|
||||||
add ebp,2
|
add ebp,2
|
||||||
@@ -622,17 +603,12 @@ NEWSYM InitVesa2
|
|||||||
|
|
||||||
xor word[vesa2_clbit],0FFFFh
|
xor word[vesa2_clbit],0FFFFh
|
||||||
|
|
||||||
;vesa2_rtrcl dw 0 ; red transparency clear (bit+4)
|
|
||||||
;vesa2_rtrcla dw 0 ; red transparency (AND) clear (not(bit+4))
|
|
||||||
;vesa2_rfull dw 0 ; red max (or (bit-1)*1Fh)
|
|
||||||
|
|
||||||
call genfulladdtab
|
call genfulladdtab
|
||||||
|
|
||||||
test word[fs:0h],10000000b ; Check if linear available
|
test word[fs:0h],10000000b ; Check if linear available
|
||||||
jnz .linearavailable
|
jnz .linearavailable
|
||||||
mov edx,.nolframebuffer
|
mov edx,.nolframebuffer
|
||||||
jmp VESA2EXITTODOS ; None available
|
jmp VESA2EXITTODOS ; None available
|
||||||
.nolframebuffer db 'Linear Frame Buffer not Detected.',0
|
|
||||||
|
|
||||||
;---------------------------------------------;
|
;---------------------------------------------;
|
||||||
; OK - now set the vesa 2 mode based on the ;
|
; OK - now set the vesa 2 mode based on the ;
|
||||||
@@ -655,7 +631,6 @@ NEWSYM InitVesa2
|
|||||||
jnc .mappedphysicalarea
|
jnc .mappedphysicalarea
|
||||||
mov edx,.unablemap
|
mov edx,.unablemap
|
||||||
jmp VESA2EXITTODOS ; Failure!!!
|
jmp VESA2EXITTODOS ; Failure!!!
|
||||||
.unablemap db 'Unable to map physical area.',0
|
|
||||||
|
|
||||||
.mappedphysicalarea
|
.mappedphysicalarea
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
@@ -676,7 +651,6 @@ NEWSYM InitVesa2
|
|||||||
jz .modesetok
|
jz .modesetok
|
||||||
mov edx,.unableset
|
mov edx,.unableset
|
||||||
jmp VESA2EXITTODOS ; Failure!!!
|
jmp VESA2EXITTODOS ; Failure!!!
|
||||||
.unableset db 'Unable to initialize video mode.',0
|
|
||||||
|
|
||||||
.modesetok
|
.modesetok
|
||||||
;******************************* EXTRA BIT ****************************
|
;******************************* EXTRA BIT ****************************
|
||||||
@@ -708,7 +682,6 @@ NEWSYM InitVesa2
|
|||||||
jz .correctwidth
|
jz .correctwidth
|
||||||
mov edx, .unablescan
|
mov edx, .unablescan
|
||||||
jmp VESA2EXITTODOS ; Failure!!!
|
jmp VESA2EXITTODOS ; Failure!!!
|
||||||
.unablescan db 'Unable to set scan line length.',0
|
|
||||||
|
|
||||||
.correctwidth
|
.correctwidth
|
||||||
|
|
||||||
@@ -728,7 +701,6 @@ NEWSYM InitVesa2
|
|||||||
jnc .selectornowset
|
jnc .selectornowset
|
||||||
mov edx,.unablelfb
|
mov edx,.unablelfb
|
||||||
jmp VESA2EXITTODOS ; Failure!!!
|
jmp VESA2EXITTODOS ; Failure!!!
|
||||||
.unablelfb db 'Unable to set selector to LFB.',0
|
|
||||||
|
|
||||||
.selectornowset
|
.selectornowset
|
||||||
|
|
||||||
@@ -744,7 +716,6 @@ NEWSYM InitVesa2
|
|||||||
jnc .ok
|
jnc .ok
|
||||||
mov edx,.unablesets
|
mov edx,.unablesets
|
||||||
jmp VESA2EXITTODOS ; Failure!!!
|
jmp VESA2EXITTODOS ; Failure!!!
|
||||||
.unablesets db 'Unable to set size of selector.',0
|
|
||||||
|
|
||||||
.ok
|
.ok
|
||||||
lar ecx,ebx
|
lar ecx,ebx
|
||||||
@@ -757,7 +728,6 @@ NEWSYM InitVesa2
|
|||||||
jnc .accessrightsset
|
jnc .accessrightsset
|
||||||
mov edx,.unablesetar
|
mov edx,.unablesetar
|
||||||
jmp VESA2EXITTODOS
|
jmp VESA2EXITTODOS
|
||||||
.unablesetar db 'Unable to set selector access rights.',0
|
|
||||||
|
|
||||||
.accessrightsset
|
.accessrightsset
|
||||||
mov [vesa2selec],bx
|
mov [vesa2selec],bx
|
||||||
@@ -776,6 +746,23 @@ NEWSYM InitVesa2
|
|||||||
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
|
.nomemmessage db 'Unable to locate DOS memory.',0
|
||||||
|
.noint1message db 'Simulated real mode interrupt failed.',0
|
||||||
|
.novbemessage db 'VBE not detected!!',0
|
||||||
|
.novesamessage db 'VESA not detected!',0
|
||||||
|
.novesa2message db 'VESA 2.0 or greater required!',0
|
||||||
|
.oopsnoselector db 'Failed to allocate vesa display selector!',0
|
||||||
|
.outofmodelistspacemessage db 'Out of VESA2 mode list space!',0
|
||||||
|
.endoflist db 'This VESA2 mode does not work on your video card / driver.',0
|
||||||
|
.whichwin db 0
|
||||||
|
.modecheckfail db 'Real mode interrupt failure while checking vesa mode',0
|
||||||
|
.nolframebuffer db 'Linear Frame Buffer not Detected.',0
|
||||||
|
.unablemap db 'Unable to map physical area.',0
|
||||||
|
.unableset db 'Unable to initialize video mode.',0
|
||||||
|
.unablescan db 'Unable to set scan line length.',0
|
||||||
|
.unablelfb db 'Unable to set selector to LFB.',0
|
||||||
|
.unablesets db 'Unable to set size of selector.',0
|
||||||
|
.unablesetar db 'Unable to set selector access rights.',0
|
||||||
|
|
||||||
NEWSYM LFBpointer
|
NEWSYM LFBpointer
|
||||||
dd 0
|
dd 0
|
||||||
@@ -794,29 +781,6 @@ NEWSYM vesamode
|
|||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
|
||||||
NEWSYM VESAmodelist, times 512 resw 1
|
NEWSYM VESAmodelist, times 512 resw 1
|
||||||
|
|
||||||
|
|
||||||
;NEWSYM RMREGS
|
|
||||||
;.edi dd 0
|
|
||||||
;.esi dd 0
|
|
||||||
;.ebp dd 0
|
|
||||||
;.esp dd 0
|
|
||||||
;.ebx dd 0
|
|
||||||
;.edx dd 0
|
|
||||||
;.ecx dd 0
|
|
||||||
;.eax dd 0
|
|
||||||
;
|
|
||||||
;.flags dw 0
|
|
||||||
;.es dw 0
|
|
||||||
;.ds dw 0
|
|
||||||
;.fs dw 0
|
|
||||||
;.gs dw 0
|
|
||||||
;.ip dw 0
|
|
||||||
;.cs dw 0
|
|
||||||
;.sp dw 0
|
|
||||||
;.ss dw 0
|
|
||||||
;.spare times 20 dd 0
|
|
||||||
|
|
||||||
NEWSYM RMREGS
|
NEWSYM RMREGS
|
||||||
.edi resd 1
|
.edi resd 1
|
||||||
.esi resd 1
|
.esi resd 1
|
||||||
@@ -838,4 +802,3 @@ NEWSYM RMREGS
|
|||||||
.ss resw 1
|
.ss resw 1
|
||||||
.spare times 20 resd 1
|
.spare times 20 resd 1
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
NEWSYM Vesa2AsmEnd
|
|
||||||
|
|||||||
@@ -40,8 +40,9 @@ EXTSYM modembuffer, modemhead, modemtail
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM ipxinited, db 0
|
NEWSYM ipxinited, db 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM initipx
|
NEWSYM initipx
|
||||||
mov dword[modemhead],0
|
mov dword[modemhead],0
|
||||||
@@ -65,7 +66,9 @@ NEWSYM deinitipx
|
|||||||
.notinitialized
|
.notinitialized
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM PacketPointer, dd 0
|
NEWSYM PacketPointer, dd 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM PreparePacketIPX
|
NEWSYM PreparePacketIPX
|
||||||
cmp byte[ipxinited],1
|
cmp byte[ipxinited],1
|
||||||
@@ -89,7 +92,10 @@ NEWSYM ipxsendchar ; prepare packet
|
|||||||
pop esi
|
pop esi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM IPXSearchval, db 0
|
NEWSYM IPXSearchval, db 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM ipxlookforconnect
|
NEWSYM ipxlookforconnect
|
||||||
cmp byte[ipxinited],0
|
cmp byte[ipxinited],0
|
||||||
je .initialized
|
je .initialized
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/Fezsnesw.exe chips\dsp1proc.obj chips\dsp2proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj init.obj initc.obj uic.obj patch.obj ui.obj vcache.obj effects\water.obj effects\smoke.obj effects\burn.obj version.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj video\sw_draw.obj video\hq2x16.obj video\hq2x32.obj video\hq3x16.obj video\hq3x32.obj video\hq4x16.obj video\hq4x32.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj chips\st10proc.obj chips\seta10.obj chips\sdd1emu.obj zip\unzip.obj zip\zpng.obj jma\7zlzma.obj jma\crc32.obj jma\iiostrm.obj jma\inbyte.obj jma\jma.obj jma\lzmadec.obj jma\lzma.obj jma\winout.obj jma\zsnesjma.obj zlib.lib libpng.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib dinput8.lib dxguid.lib /link /section:.text,erw
|
/Fezsnesw.exe chips\dsp1proc.obj chips\dsp2proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj init.obj initc.obj uic.obj patch.obj ui.obj vcache.obj effects\water.obj effects\smoke.obj effects\burn.obj version.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj video\sw_draw.obj video\hq2x16.obj video\hq2x32.obj video\hq3x16.obj video\hq3x32.obj video\hq4x16.obj video\hq4x32.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj chips\st10proc.obj chips\seta10.obj chips\sdd1emu.obj zip\unzip.obj zip\zpng.obj jma\7zlzma.obj jma\crc32.obj jma\iiostrm.obj jma\inbyte.obj jma\jma.obj jma\lzmadec.obj jma\lzma.obj jma\winout.obj jma\zsnesjma.obj zlib.lib libpng.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib dinput8.lib dxguid.lib /link
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -28,9 +28,6 @@ EXTSYM SpecialLine
|
|||||||
EXTSYM vidbufferofsb
|
EXTSYM vidbufferofsb
|
||||||
EXTSYM HalfTransB,HalfTransC
|
EXTSYM HalfTransB,HalfTransC
|
||||||
|
|
||||||
NEWSYM CopyVWinAsmStart
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
||||||
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
||||||
@@ -1562,8 +1559,4 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
;ALIGN32
|
|
||||||
InterPtr dd 0
|
InterPtr dd 0
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
NEWSYM CopyVWinAsmEnd
|
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
//Copyright (C) 1997-2004 ZSNES Team ( zsknight@zsnes.com / _demo_@zsnes.com )
|
|
||||||
//
|
|
||||||
//This program is free software; you can redistribute it and/or
|
|
||||||
//modify it under the terms of the GNU General Public License
|
|
||||||
//as published by the Free Software Foundation; either
|
|
||||||
//version 2 of the License, or (at your option) any later
|
|
||||||
//version.
|
|
||||||
//
|
|
||||||
//This program is distributed in the hope that it will be useful,
|
|
||||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
//GNU General Public License for more details.
|
|
||||||
//
|
|
||||||
//You should have received a copy of the GNU General Public License
|
|
||||||
//along with this program; if not, write to the Free Software
|
|
||||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
|
|
||||||
#include "gblhdr.h"
|
|
||||||
|
|
||||||
extern void CfgLoadAsmStart();
|
|
||||||
extern void CfgLoadAsmEnd();
|
|
||||||
extern void CopyVWinAsmStart();
|
|
||||||
extern void CopyVWinAsmEnd();
|
|
||||||
extern void DebugAsmStart();
|
|
||||||
extern void DebugAsmEnd();
|
|
||||||
extern void JoyAsmStart();
|
|
||||||
extern void JoyAsmEnd();
|
|
||||||
extern void DosModemRTNAsmStart();
|
|
||||||
extern void DosModemRTNAsmEnd();
|
|
||||||
extern void Vesa2AsmStart();
|
|
||||||
extern void Vesa2AsmEnd();
|
|
||||||
extern void InitVidAsmStart();
|
|
||||||
extern void InitVidAsmEnd();
|
|
||||||
extern void SWAsmStart();
|
|
||||||
extern void SWAsmEnd();
|
|
||||||
extern void GPProAsmStart();
|
|
||||||
extern void GPProAsmEnd();
|
|
||||||
extern void Vesa12AsmStart();
|
|
||||||
extern void Vesa12AsmEnd();
|
|
||||||
|
|
||||||
#define MakeCodeWriteable(a, b) MakeCodeWriteable_f (a, b, #a)
|
|
||||||
|
|
||||||
// Thanks QuakeForge
|
|
||||||
void MakeCodeWriteable_f (unsigned long startaddr, unsigned long length, const char *name)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
unsigned int addr;
|
|
||||||
int psize = getpagesize();
|
|
||||||
|
|
||||||
//fprintf(stderr, "Unprotecting 0x%x to 0x%x\n", startaddr, startaddr+length);
|
|
||||||
addr = (startaddr & ~(psize -1)) - psize;
|
|
||||||
|
|
||||||
/* Using 7 is a very stupid thing to do, but I'll leave it in commented form for the non-posix compliant zealots to ph34r... */
|
|
||||||
//r = mprotect ((char *) addr, length + startaddr - addr + psize, 7);
|
|
||||||
r = mprotect ((char *) addr, length + startaddr - addr + psize, PROT_READ | PROT_WRITE | PROT_EXEC);
|
|
||||||
|
|
||||||
if (r < 0)
|
|
||||||
fprintf (stderr, "Error! Memory *NOT* unprotected. startaddr = 0x%08lx (%s)\n", startaddr, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void UnProtectMemory(void)
|
|
||||||
{
|
|
||||||
MakeCodeWriteable((long) CopyVWinAsmStart, (long) CopyVWinAsmEnd - (long) CopyVWinAsmStart);
|
|
||||||
MakeCodeWriteable((long) DebugAsmStart, (long) DebugAsmEnd - (long) DebugAsmStart);
|
|
||||||
MakeCodeWriteable((long) JoyAsmStart, (long) JoyAsmEnd - (long) JoyAsmStart);
|
|
||||||
MakeCodeWriteable((long) DosModemRTNAsmStart, (long) DosModemRTNAsmEnd - (long) DosModemRTNAsmStart);
|
|
||||||
MakeCodeWriteable((long) Vesa2AsmStart, (long) Vesa2AsmEnd - (long) Vesa2AsmStart);
|
|
||||||
MakeCodeWriteable((long) InitVidAsmStart, (long) InitVidAsmEnd - (long) InitVidAsmStart);
|
|
||||||
MakeCodeWriteable((long) SWAsmStart, (long) SWAsmEnd - (long) SWAsmStart);
|
|
||||||
MakeCodeWriteable((long) GPProAsmStart, (long) GPProAsmEnd - (long) GPProAsmStart);
|
|
||||||
MakeCodeWriteable((long) Vesa12AsmStart, (long) Vesa12AsmEnd - (long) Vesa12AsmStart);
|
|
||||||
}
|
|
||||||
@@ -90,14 +90,11 @@ int my_atoi(char *nptr) {
|
|||||||
return atoi(nptr);
|
return atoi(nptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void UnProtectMemory (void);
|
|
||||||
|
|
||||||
int main (int argc, char *argv[]) {
|
int main (int argc, char *argv[]) {
|
||||||
int opt,p,pp;
|
int opt,p,pp;
|
||||||
|
|
||||||
char *fvar;
|
char *fvar;
|
||||||
|
|
||||||
UnProtectMemory();
|
|
||||||
while((opt = getopt(argc, argv, "01:2:789a:c:d:ef:g:hijk:lmno:p:r:s:tuv:wyz?")) != -1) {
|
while((opt = getopt(argc, argv, "01:2:789a:c:d:ef:g:hijk:lmno:p:r:s:tuv:wyz?")) != -1) {
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
/* Palette 0 disable */
|
/* Palette 0 disable */
|
||||||
|
|||||||
@@ -26,10 +26,6 @@ EXTSYM SpecialLine
|
|||||||
EXTSYM vidbufferofsb
|
EXTSYM vidbufferofsb
|
||||||
EXTSYM HalfTransB,HalfTransC
|
EXTSYM HalfTransB,HalfTransC
|
||||||
|
|
||||||
%ifdef __MINGW__
|
|
||||||
NEWSYM CopyVWinAsmStart
|
|
||||||
%endif
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
||||||
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
||||||
@@ -1553,9 +1549,3 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
SECTION .data
|
SECTION .data
|
||||||
InterPtr dd 0
|
InterPtr dd 0
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
%ifdef __MINGW__
|
|
||||||
NEWSYM CopyVWinAsmEnd
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|||||||
@@ -135,11 +135,6 @@ EXTSYM _imp__GetLocalTime@4
|
|||||||
|
|
||||||
EXTSYM FrameSemaphore
|
EXTSYM FrameSemaphore
|
||||||
|
|
||||||
%ifdef __MINGW__
|
|
||||||
NEWSYM WinIntRFAsmStart
|
|
||||||
%endif
|
|
||||||
|
|
||||||
|
|
||||||
; NOTE: For timing, Game60hzcall should be called at 50hz or 60hz (depending
|
; NOTE: For timing, Game60hzcall should be called at 50hz or 60hz (depending
|
||||||
; on romispal) after a call to InitPreGame and before DeInitPostGame are
|
; on romispal) after a call to InitPreGame and before DeInitPostGame are
|
||||||
; made. GUI36hzcall should be called at 36hz after a call GUIInit and
|
; made. GUI36hzcall should be called at 36hz after a call GUIInit and
|
||||||
@@ -2071,9 +2066,6 @@ SystemTime:
|
|||||||
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
%ifdef __MINGW__
|
|
||||||
NEWSYM WinIntRFAsmEnd
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if 0
|
%if 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user