Fix up sections variables are created in, major code cleanup, remove protection removal. Completed! :D

This commit is contained in:
n-a-c-h
2005-01-03 16:03:39 +00:00
parent 0c0097b919
commit a7598101d8
19 changed files with 87 additions and 420 deletions

View File

@@ -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

View File

@@ -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
@@ -2240,6 +2203,7 @@ NEWSYM startdisplay
.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
@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
@@ -1749,5 +1678,3 @@ NEWSYM SetInputDevice209
.exit
ret
NEWSYM JoyAsmEnd

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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)
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 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

View File

@@ -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,7 +651,6 @@ 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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 */

View File

@@ -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

View File

@@ -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