From a7598101d871069b0859873adde7b4813a644eac Mon Sep 17 00:00:00 2001 From: n-a-c-h <> Date: Mon, 3 Jan 2005 16:03:39 +0000 Subject: [PATCH] Fix up sections variables are created in, major code cleanup, remove protection removal. Completed! :D --- zsnes/src/Makefile.in | 2 +- zsnes/src/dos/debug.asm | 73 +++++++----------------- zsnes/src/dos/dosintrf.asm | 26 --------- zsnes/src/dos/gppro.asm | 2 - zsnes/src/dos/initvid.asm | 5 -- zsnes/src/dos/joy.asm | 79 +------------------------- zsnes/src/dos/modemrtn.asm | 9 --- zsnes/src/dos/sound.asm | 6 +- zsnes/src/dos/sw.asm | 6 -- zsnes/src/dos/sw32.asm | 3 +- zsnes/src/dos/vesa12.asm | 104 ++++++++++------------------------- zsnes/src/dos/vesa2.asm | 81 ++++++++------------------- zsnes/src/dos/zsipx.asm | 8 ++- zsnes/src/link.win32 | 2 +- zsnes/src/linux/copyvwin.asm | 7 --- zsnes/src/linux/protect.c | 73 ------------------------ zsnes/src/linux/zloaderw.c | 3 - zsnes/src/win/copyvwin.asm | 10 ---- zsnes/src/win/winintrf.asm | 8 --- 19 files changed, 87 insertions(+), 420 deletions(-) delete mode 100644 zsnes/src/linux/protect.c diff --git a/zsnes/src/Makefile.in b/zsnes/src/Makefile.in index 0fd9adec..ff45242a 100644 --- a/zsnes/src/Makefile.in +++ b/zsnes/src/Makefile.in @@ -54,7 +54,7 @@ WINOBJ=${WINDIR}/copyvwin.o \ ${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \ @GL_DRAW@ ${WINDIR}/sw_draw.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\ ${DOSDIR}/initvid.o ${DOSDIR}/sw.o ${DOSDIR}/gppro.o ${DOSDIR}/vesa12.o diff --git a/zsnes/src/dos/debug.asm b/zsnes/src/dos/debug.asm index f26a9200..4eafc439 100644 --- a/zsnes/src/dos/debug.asm +++ b/zsnes/src/dos/debug.asm @@ -49,12 +49,6 @@ EXTSYM cycpbl,debugbuf,soundon,spcA,spcNZ,spcP,spcPCRam EXTSYM spcRam,spcRamDP,spcS,spcX,spcY EXTSYM CurPtrVal,SPC7110Enable -NEWSYM DebugAsmStart - - - - - ; debstop at regsw.asm 2118/2119 @@ -94,48 +88,6 @@ NEWSYM startdebugger EXTSYM oamram mov edx,oamram 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 jz .nofilecontents @@ -174,10 +126,10 @@ NEWSYM startdebugger jmp DosExit +SECTION .data .fname2 db 9,'vram.dat',0 .fname3 db 9,'vram2.dat',0 -SECTION .data ; global variables NEWSYM debugh, dw 0 ; debug head NEWSYM debugt, dw 0 ; debug tail @@ -261,7 +213,9 @@ NEWSYM loadtempstuff mov [timinl2],al ret +SECTION .data .spcfname db 'temp.spc',0 +SECTION .text ;******************************************************* ; Debug Loop @@ -445,8 +399,11 @@ NEWSYM debugdump call Write_File call Close_File jmp debugloopb + +SECTION .data .fname db 'SPCRAM.DMP',0 .fname2 db 'DSP.DMP',0 +SECTION .text ;******************************************************* ; Debug save/load states @@ -1416,7 +1373,9 @@ NEWSYM traceops mov [xpc],si ret +SECTION .data .message1 db 'Tracing. Press ESC to stop.' +SECTION .text ;******************************************************* ; SPCBreakOps Breaks at Breakpoint @ SPC @@ -1511,7 +1470,9 @@ NEWSYM SPCbreakops mov [xpc],si ret +SECTION .data .message1 db 'Locating Breakpoint ... Press ESC to stop.' +SECTION .text ;******************************************************* ; BreakatSign Breaks whenever debstop = 1 @@ -1614,7 +1575,9 @@ NEWSYM breakatsign pop es jmp debugloopa +SECTION .data .message1 db 'Waiting for Signal .... Press ESC to stop.' +SECTION .text ;******************************************************* ; BreakatSign&Log Breaks whenever debstop = 1 @@ -1790,6 +1753,7 @@ NEWSYM breakatsignlog mov bx,[.handle] call Close_File +SECTION .data .loggeddata times 128 db 0 .message1 db 'Waiting for Signal .... Press ESC to stop.',0 .handle dw 0 @@ -1798,7 +1762,6 @@ NEWSYM breakatsignlog ;******************************************************* ; BreakatSignB Breaks whenever keyonsn = 1 ;******************************************************* -SECTION .data NEWSYM keyonsn, db 0 NEWSYM prbreak, db 0 SECTION .text @@ -2239,7 +2202,8 @@ NEWSYM startdisplay jmp .loopprint .doneprint ret - + +SECTION .data .debuginfo db '- @5Z@4S@3N@2E@6S@7 debugger -$' .D65816 db ' 65816 $' .mbar db '@4(@6T@4)@7race for @4(@6B@4)@7reakpoint ' @@ -2250,7 +2214,6 @@ NEWSYM startdisplay ; 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+ -SECTION .data NEWSYM debugsa1, db 0 NEWSYM skipdebugsa1, db 1 SECTION .text @@ -3545,7 +3508,7 @@ SECTION .text pop ecx ret -SECTION .data +SECTION .data .hexdat db '0123456789ABCDEF' SECTION .text @@ -3610,7 +3573,10 @@ NEWSYM nextopcodesa1 mov dl,0 int 10h ret + +SECTION .data .blah db 0 +SECTION .text .outputtobuffer ; 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 db 14,01,02,03,15,16,17,18,35,64,09,65,31,66,67,00 SECTION .text -NEWSYM DebugAsmEnd diff --git a/zsnes/src/dos/dosintrf.asm b/zsnes/src/dos/dosintrf.asm index 6447efcc..c29eb355 100644 --- a/zsnes/src/dos/dosintrf.asm +++ b/zsnes/src/dos/dosintrf.asm @@ -77,18 +77,8 @@ EXTSYM TCPIPAddress ; made. GUI36hzcall should be called at 36hz after a call GUIInit and ; 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 - NEWSYM dssel, dw 0 - SECTION .text NEWSYM StartUp @@ -445,11 +435,6 @@ NEWSYM Get_File_Date %%prskip %endmacro -;SECTION .data -;NEWSYM prval, db 0 -;NEWSYM prres, db 0 -;SECTION .text - NEWSYM Check_Key ; xor al,al ; PressConv 75,01h,75 @@ -1609,16 +1594,6 @@ NEWSYM Check60hz ; 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 NEWSYM TCPIPStatus, resb 1 @@ -1806,7 +1781,6 @@ NEWSYM GetHostName NEWSYM hostname NEWSYM UDPConfig -;NEWSYM tcperr, dd 0,0,0,0 SECTION .bss diff --git a/zsnes/src/dos/gppro.asm b/zsnes/src/dos/gppro.asm index 0bfa6905..7fa1b3b7 100644 --- a/zsnes/src/dos/gppro.asm +++ b/zsnes/src/dos/gppro.asm @@ -17,7 +17,6 @@ %include "macros.mac" -NEWSYM GPProAsmStart section .data sample times 60 db 0 clock_mask db 0 @@ -154,4 +153,3 @@ GPP_ERR: pop ebx mov eax,1 ret -NEWSYM GPProAsmEnd diff --git a/zsnes/src/dos/initvid.asm b/zsnes/src/dos/initvid.asm index 77a03517..dd642b89 100644 --- a/zsnes/src/dos/initvid.asm +++ b/zsnes/src/dos/initvid.asm @@ -26,9 +26,6 @@ EXTSYM vesa2selec,InitVesa12,videotroub EXTSYM cscopymodeq,cscopymodex %endif -NEWSYM InitVidAsmStart - - SECTION .bss NEWSYM clearfilter, resw 1 @@ -572,5 +569,3 @@ NEWSYM dosinitvideo mov ecx,6144 pop es ret - -NEWSYM InitVidAsmEnd diff --git a/zsnes/src/dos/joy.asm b/zsnes/src/dos/joy.asm index b18f38d3..1117a668 100644 --- a/zsnes/src/dos/joy.asm +++ b/zsnes/src/dos/joy.asm @@ -30,67 +30,8 @@ EXTSYM pl5contrl,pl5p209 EXTSYM CalibXmin, CalibYmin, CalibXmax, CalibYmax, CalibXmin209 EXTSYM CalibYmin209, CalibXmax209, CalibYmax209 -NEWSYM JoyAsmStart - - 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 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 NEWSYM joy4218, resb 1 @@ -147,20 +88,6 @@ NumGRiPs209 resb 1 Buttons6 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 NEWSYM GetCoords @@ -570,7 +497,9 @@ NEWSYM DosUpdateDevices .none2 ret +SECTION .data NEWSYM JoyReadControl, db 0 +SECTION .text JoyRead209: cmp byte[JoyAltrn],1 @@ -1748,6 +1677,4 @@ NEWSYM SetInputDevice209 .nopp5 .exit - ret - -NEWSYM JoyAsmEnd + ret \ No newline at end of file diff --git a/zsnes/src/dos/modemrtn.asm b/zsnes/src/dos/modemrtn.asm index 8383634b..46b766ec 100644 --- a/zsnes/src/dos/modemrtn.asm +++ b/zsnes/src/dos/modemrtn.asm @@ -27,13 +27,6 @@ EXTSYM delay EXTSYM dssel %endif -NEWSYM DosModemRTNAsmStart - - - - - - SECTION .bss NEWSYM UartType, resb 1 @@ -457,5 +450,3 @@ NEWSYM DeInitModemC out dx,al sti ret - -NEWSYM DosModemRTNAsmEnd diff --git a/zsnes/src/dos/sound.asm b/zsnes/src/dos/sound.asm index 73e45444..7a5e8665 100644 --- a/zsnes/src/dos/sound.asm +++ b/zsnes/src/dos/sound.asm @@ -431,7 +431,7 @@ NEWSYM stopsbsound sti iretd -section .bss ;ALIGN=32 +section .bss NEWSYM sbhandexec, resd 1 section .text @@ -650,7 +650,7 @@ NEWSYM stopsbsound16 ; Sound Blaster Initialization Stuff ;**************************************************** -section .bss ;ALIGN=32 +section .bss NEWSYM memoryloc, resd 1 ; Memory offset in conventional memory NEWSYM memoryloc2, resd 1 ; Memory offset in conventional memory NEWSYM sbselec, resw 1 ; Selector of Memory location @@ -805,7 +805,7 @@ NEWSYM InitSB call SB_dsp_write jmp .fixsurround -SECTION .bss ;ALIGN=32 +SECTION .bss .Versionnum resw 1 SECTION .text diff --git a/zsnes/src/dos/sw.asm b/zsnes/src/dos/sw.asm index 1aa94ae9..9a9369dc 100644 --- a/zsnes/src/dos/sw.asm +++ b/zsnes/src/dos/sw.asm @@ -19,11 +19,6 @@ EXTSYM SidewinderFix -NEWSYM SWAsmStart - - - - %macro ParityCheckSW 1 mov ecx,ebx xor cl,ch @@ -223,4 +218,3 @@ ModeALoop: dec ecx jnz ModeALoop ret -NEWSYM SWAsmEnd diff --git a/zsnes/src/dos/sw32.asm b/zsnes/src/dos/sw32.asm index 34c1fb7f..4957d155 100644 --- a/zsnes/src/dos/sw32.asm +++ b/zsnes/src/dos/sw32.asm @@ -33,7 +33,7 @@ ;Flat memory mode (Protected mode extender required! Tested with DOS32) ;Tested with TASM 4.0+ - +SECTION .data SW1 dd 0 ;SW #1's button status SW2 dd 0 ;SW #2'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) 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 ; parity bit. If they don't match, the button data is discarded. diff --git a/zsnes/src/dos/vesa12.asm b/zsnes/src/dos/vesa12.asm index 40f65e5a..411b6c3b 100644 --- a/zsnes/src/dos/vesa12.asm +++ b/zsnes/src/dos/vesa12.asm @@ -28,21 +28,11 @@ EXTSYM InitDrive,gotoroot,InitDir,fulladdtab EXTSYM LFBpointer,noblocks,bytesperscanline,vesamode,VESAmodelist -NEWSYM Vesa12AsmStart - - - ; add 0214h video mode -;NEWSYM granularity, dw 0 -;NEWSYM granadd, dd 0 - SECTION .bss - NEWSYM granularity, resw 1 NEWSYM granadd, resd 1 - - SECTION .text NEWSYM VESA12EXITTODOS @@ -66,32 +56,30 @@ NEWSYM VESA12EXITTODOS mov byte[videotroub],1 jmp DosExit + +SECTION .data .exitfromvesa12 db 'Unable to Initialize VESA1.2 $' .return db 10,13,'$' +SECTION .text ;******************************************************* ; Set up Vesa 2 ;******************************************************* NEWSYM InitVesa12 - ;-------------------------------------------------; - ; First - allocate some bytes in DOS memory for ; - ; communication with VBE ; - ;-------------------------------------------------; +;-------------------------------------------------; +; First - allocate some bytes in DOS memory for ; +; communication with VBE ; +;-------------------------------------------------; - mov eax,0100h - mov ebx,512/16 ; 512 bytes - int 31h ; Function 31h,100h - Allocate - ; DOS memory (512 bytes) - jnc .gotmem - mov edx,.nomemmessage - jmp VESA12EXITTODOS - .nomemmessage - db ': Unable to locate DOS memory.$' - - .gotmem - mov fs,dx ; FS now points to the DOS - ; buffer + mov eax,0100h + mov ebx,512/16 ; 512 bytes + int 31h ; Function 31h,100h - Allocate DOS memory (512 bytes) + jnc .gotmem + mov edx,.nomemmessage + jmp VESA12EXITTODOS + .gotmem + mov fs,dx ; FS now points to the DOS buffer ;--------------------------------------------------; @@ -118,8 +106,6 @@ NEWSYM InitVesa12 jnc .int1ok mov edx,.noint1message jmp VESA12EXITTODOS - .noint1message - db ': Simulated real mode interrupt failed.$' .int1ok ; Real mode int successful!!! mov eax,[RMREGS.eax] @@ -127,24 +113,19 @@ NEWSYM InitVesa12 jz .vbedetected mov edx,.novbemessage jmp VESA12EXITTODOS - .novbemessage - db ': VBE not detected!!$' .vbedetected cmp dword[fs:0000],'VESA' jz .vesadetected ; Check for presence of vesa mov edx,.novesamessage jmp VESA12EXITTODOS - .novesamessage - db ': VESA not detected!$' + .vesadetected cmp word[fs:0004],102h jae .vesa12detected ; Check we've got VESA 1.2 or greater mov edx,.novesa2message jmp VESA12EXITTODOS - .novesa2message - db ': VESA 1.2 or greater required!$' ;-----------------------------------------------------; @@ -162,8 +143,6 @@ NEWSYM InitVesa12 jnc .wegottheselector mov edx, .oopsnoselector jmp VESA12EXITTODOS - .oopsnoselector - db ': Failed to allocate vesa display selector!$' .wegottheselector @@ -187,8 +166,6 @@ NEWSYM InitVesa12 .outofmodelistspace mov edx,.outofmodelistspacemessage jmp VESA12EXITTODOS - .outofmodelistspacemessage - db ': Out of VESA mode list space!$' ;----------------------------------------------; ; OK - Scan the mode list to find a matching ; @@ -208,9 +185,6 @@ NEWSYM InitVesa12 mov edx,.endoflist jmp VESA12EXITTODOS - .endoflist db ': VESA 1.2 mode does not work on your video card/driver.$' - .whichwin db 0 - .notendoflist mov edi, RMREGS @@ -230,8 +204,6 @@ NEWSYM InitVesa12 jnc .modecheckok mov edx,.modecheckfail jmp VESA12EXITTODOS - .modecheckfail - db ': Real mode interrupt failure while checking vesa mode$' .modecheckok add ebp,2 @@ -492,11 +464,6 @@ NEWSYM InitVesa12 div bx 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 xor eax,eax @@ -510,7 +477,6 @@ NEWSYM InitVesa12 jz .modesetok mov edx,.unableset jmp VESA12EXITTODOS ; Failure!!! - .unableset db 'Unable to initialize video mode.$' .modesetok ;******************************* EXTRA BIT **************************** @@ -534,34 +500,24 @@ NEWSYM InitVesa12 jz .correctwidth mov edx, .unablescan jmp VESA12EXITTODOS ; Failure!!! - .unablescan db 'Unable to set scan line length.$' .correctwidth ret - -;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 - - +SECTION .data +.nomemmessage db ': Unable to locate DOS memory.$' +.noint1message db ': Simulated real mode interrupt failed.$' +.oopsnoselector db ': Failed to allocate vesa display selector!$' +.novesa2message db ': VESA 1.2 or greater required!$' +.novbemessage db ': VBE not detected!!$' +.novesamessage db ': VESA not detected!$' +.outofmodelistspacemessage db ': Out of VESA mode list space!$' +.endoflist db ': VESA 1.2 mode does not work on your video card/driver.$' +.whichwin db 0 +.modecheckfail db ': Real mode interrupt failure while checking vesa mode$' +.unableset db 'Unable to initialize video mode.$' +.unablescan db 'Unable to set scan line length.$' SECTION .bss RMREGS @@ -583,5 +539,3 @@ RMREGS .sp resw 1 .ss resw 1 .spare times 20 resd 1 - -NEWSYM Vesa12AsmEnd diff --git a/zsnes/src/dos/vesa2.asm b/zsnes/src/dos/vesa2.asm index 0e01cc71..b4b79f43 100644 --- a/zsnes/src/dos/vesa2.asm +++ b/zsnes/src/dos/vesa2.asm @@ -28,11 +28,7 @@ EXTSYM UnusedBit,HalfTrans,UnusedBitXor,ngrposng,nggposng,ngbposng EXTSYM Init_2xSaIMMX -NEWSYM Vesa2AsmStart - - SECTION .data - ; add 0214h video mode anticrash times 10 db 0 @@ -162,8 +158,10 @@ NEWSYM VESA2EXITTODOS call Change_Dir jmp DosExit +SECTION .data .exitfromvesa2 db 'Unable to Initialize VESA2 : ',0 .return db 10,13,0 +SECTION .text ;******************************************************* ; Set up Vesa 2 @@ -182,8 +180,6 @@ NEWSYM InitVesa2 jnc .gotmem mov edx,.nomemmessage jmp VESA2EXITTODOS - .nomemmessage - db 'Unable to locate DOS memory.',0 .gotmem mov fs,dx ; FS now points to the DOS @@ -214,8 +210,7 @@ NEWSYM InitVesa2 jnc .int1ok mov edx,.noint1message jmp VESA2EXITTODOS - .noint1message - db 'Simulated real mode interrupt failed.',0 + .int1ok ; Real mode int successful!!! mov eax,[RMREGS.eax] @@ -223,24 +218,19 @@ NEWSYM InitVesa2 jz .vbedetected mov edx,.novbemessage jmp VESA2EXITTODOS - .novbemessage - db 'VBE not detected!!',0 .vbedetected cmp dword[fs:0000],'VESA' jz .vesadetected ; Check for presence of vesa mov edx,.novesamessage jmp VESA2EXITTODOS - .novesamessage - db 'VESA not detected!',0 + .vesadetected cmp word[fs:0004],200h jae .vesa2detected ; Check we've got VESA 2.0 or greater mov edx,.novesa2message jmp VESA2EXITTODOS - .novesa2message - db 'VESA 2.0 or greater required!',0 ;-----------------------------------------------------; @@ -263,8 +253,6 @@ NEWSYM InitVesa2 jnc .wegottheselector mov edx, .oopsnoselector jmp VESA2EXITTODOS - .oopsnoselector - db 'Failed to allocate vesa display selector!',0 .wegottheselector @@ -288,8 +276,6 @@ NEWSYM InitVesa2 .outofmodelistspace mov edx,.outofmodelistspacemessage jmp VESA2EXITTODOS - .outofmodelistspacemessage - db 'Out of VESA2 mode list space!',0 ;----------------------------------------------; ; OK - Scan the mode list to find a matching ; @@ -309,9 +295,6 @@ NEWSYM InitVesa2 mov edx,.endoflist jmp VESA2EXITTODOS - .endoflist db 'This VESA2 mode does not work on your video card / driver.',0 - .whichwin db 0 - .notendoflist mov edi, RMREGS @@ -331,8 +314,6 @@ NEWSYM InitVesa2 jnc .modecheckok mov edx,.modecheckfail jmp VESA2EXITTODOS - .modecheckfail - db 'Real mode interrupt failure while checking vesa mode',0 .modecheckok add ebp,2 @@ -622,17 +603,12 @@ NEWSYM InitVesa2 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 test word[fs:0h],10000000b ; Check if linear available jnz .linearavailable mov edx,.nolframebuffer jmp VESA2EXITTODOS ; None available - .nolframebuffer db 'Linear Frame Buffer not Detected.',0 ;---------------------------------------------; ; OK - now set the vesa 2 mode based on the ; @@ -655,7 +631,6 @@ NEWSYM InitVesa2 jnc .mappedphysicalarea mov edx,.unablemap jmp VESA2EXITTODOS ; Failure!!! - .unablemap db 'Unable to map physical area.',0 .mappedphysicalarea shl ebx,16 @@ -676,8 +651,7 @@ NEWSYM InitVesa2 jz .modesetok mov edx,.unableset jmp VESA2EXITTODOS ; Failure!!! - .unableset db 'Unable to initialize video mode.',0 - + .modesetok ;******************************* EXTRA BIT **************************** @@ -708,7 +682,6 @@ NEWSYM InitVesa2 jz .correctwidth mov edx, .unablescan jmp VESA2EXITTODOS ; Failure!!! - .unablescan db 'Unable to set scan line length.',0 .correctwidth @@ -728,7 +701,6 @@ NEWSYM InitVesa2 jnc .selectornowset mov edx,.unablelfb jmp VESA2EXITTODOS ; Failure!!! - .unablelfb db 'Unable to set selector to LFB.',0 .selectornowset @@ -744,7 +716,6 @@ NEWSYM InitVesa2 jnc .ok mov edx,.unablesets jmp VESA2EXITTODOS ; Failure!!! - .unablesets db 'Unable to set size of selector.',0 .ok lar ecx,ebx @@ -757,7 +728,6 @@ NEWSYM InitVesa2 jnc .accessrightsset mov edx,.unablesetar jmp VESA2EXITTODOS - .unablesetar db 'Unable to set selector access rights.',0 .accessrightsset mov [vesa2selec],bx @@ -776,6 +746,23 @@ NEWSYM InitVesa2 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 dd 0 @@ -794,29 +781,6 @@ NEWSYM vesamode SECTION .bss 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 .edi resd 1 .esi resd 1 @@ -838,4 +802,3 @@ NEWSYM RMREGS .ss resw 1 .spare times 20 resd 1 ;---------------------------------------------------------------------- -NEWSYM Vesa2AsmEnd diff --git a/zsnes/src/dos/zsipx.asm b/zsnes/src/dos/zsipx.asm index 70b63c06..7fa849cb 100644 --- a/zsnes/src/dos/zsipx.asm +++ b/zsnes/src/dos/zsipx.asm @@ -40,8 +40,9 @@ EXTSYM modembuffer, modemhead, modemtail - +SECTION .data NEWSYM ipxinited, db 0 +SECTION .text NEWSYM initipx mov dword[modemhead],0 @@ -65,7 +66,9 @@ NEWSYM deinitipx .notinitialized ret +SECTION .data NEWSYM PacketPointer, dd 0 +SECTION .text NEWSYM PreparePacketIPX cmp byte[ipxinited],1 @@ -89,7 +92,10 @@ NEWSYM ipxsendchar ; prepare packet pop esi ret +SECTION .data NEWSYM IPXSearchval, db 0 +SECTION .text + NEWSYM ipxlookforconnect cmp byte[ipxinited],0 je .initialized diff --git a/zsnes/src/link.win32 b/zsnes/src/link.win32 index c6a34cce..54fbbba4 100644 --- a/zsnes/src/link.win32 +++ b/zsnes/src/link.win32 @@ -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 diff --git a/zsnes/src/linux/copyvwin.asm b/zsnes/src/linux/copyvwin.asm index def1947e..24af3144 100644 --- a/zsnes/src/linux/copyvwin.asm +++ b/zsnes/src/linux/copyvwin.asm @@ -28,9 +28,6 @@ EXTSYM SpecialLine EXTSYM vidbufferofsb EXTSYM HalfTransB,HalfTransC -NEWSYM CopyVWinAsmStart - - SECTION .bss NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes) @@ -1562,8 +1559,4 @@ NEWSYM interpolate640x480x16bwin ret SECTION .data -;ALIGN32 InterPtr dd 0 -SECTION .text - -NEWSYM CopyVWinAsmEnd diff --git a/zsnes/src/linux/protect.c b/zsnes/src/linux/protect.c deleted file mode 100644 index c8d0f7e7..00000000 --- a/zsnes/src/linux/protect.c +++ /dev/null @@ -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); -} diff --git a/zsnes/src/linux/zloaderw.c b/zsnes/src/linux/zloaderw.c index 21acd6fb..fb6f857e 100644 --- a/zsnes/src/linux/zloaderw.c +++ b/zsnes/src/linux/zloaderw.c @@ -90,14 +90,11 @@ int my_atoi(char *nptr) { return atoi(nptr); } -extern void UnProtectMemory (void); - int main (int argc, char *argv[]) { int opt,p,pp; char *fvar; - UnProtectMemory(); while((opt = getopt(argc, argv, "01:2:789a:c:d:ef:g:hijk:lmno:p:r:s:tuv:wyz?")) != -1) { switch(opt) { /* Palette 0 disable */ diff --git a/zsnes/src/win/copyvwin.asm b/zsnes/src/win/copyvwin.asm index 4a95ae67..56e4bc60 100644 --- a/zsnes/src/win/copyvwin.asm +++ b/zsnes/src/win/copyvwin.asm @@ -26,10 +26,6 @@ EXTSYM SpecialLine EXTSYM vidbufferofsb EXTSYM HalfTransB,HalfTransC -%ifdef __MINGW__ -NEWSYM CopyVWinAsmStart -%endif - SECTION .bss NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes) @@ -1553,9 +1549,3 @@ NEWSYM interpolate640x480x16bwin SECTION .data InterPtr dd 0 SECTION .text - - -%ifdef __MINGW__ -NEWSYM CopyVWinAsmEnd -%endif - diff --git a/zsnes/src/win/winintrf.asm b/zsnes/src/win/winintrf.asm index cda52542..77ecad80 100644 --- a/zsnes/src/win/winintrf.asm +++ b/zsnes/src/win/winintrf.asm @@ -135,11 +135,6 @@ EXTSYM _imp__GetLocalTime@4 EXTSYM FrameSemaphore -%ifdef __MINGW__ -NEWSYM WinIntRFAsmStart -%endif - - ; NOTE: For timing, Game60hzcall should be called at 50hz or 60hz (depending ; on romispal) after a call to InitPreGame and before DeInitPostGame are ; made. GUI36hzcall should be called at 36hz after a call GUIInit and @@ -2071,9 +2066,6 @@ SystemTime: SECTION .text -%ifdef __MINGW__ -NEWSYM WinIntRFAsmEnd -%endif %if 0