Fixed crashing problem with some IPS's in ZIP's, added some S-DD1 loader modifications.

This commit is contained in:
zsknight
2001-05-06 00:33:00 +00:00
parent 4b1101d2f9
commit ccbcf4ac4a

View File

@@ -3868,6 +3868,7 @@ SPC7110IndexName db 'INDEX.BIN',0
SPC7110DirEntry db '*.BIN',0 SPC7110DirEntry db '*.BIN',0
SPC7110CPtr dd 0 SPC7110CPtr dd 0
SPC7110CPtr2 dd 0 SPC7110CPtr2 dd 0
NEWSYM SDD1nfname, db ' \_00000-0.bin',0
NEWSYM SPC7110nfname, db ' \ .bin',0 NEWSYM SPC7110nfname, db ' \ .bin',0
NEWSYM SPC7110IndexSize, dd 0 NEWSYM SPC7110IndexSize, dd 0
NEWSYM SPC7110Entries, dd 0 NEWSYM SPC7110Entries, dd 0
@@ -3899,13 +3900,6 @@ NEWSYM SPC7110Load
je .sdd1 je .sdd1
.notlorom .notlorom
.sdd1 .sdd1
ret
.spc7110
mov edx,SPC7110DIRA
cmp al,0F9h
je .noSPC7110b
mov edx,SPC7110DIRB
.noSPC7110b
cmp al,043h cmp al,043h
jne .noSDD1 jne .noSDD1
mov edx,SDD1DIRB mov edx,SDD1DIRB
@@ -3916,6 +3910,13 @@ NEWSYM SPC7110Load
mov edx,SDD1DIRA mov edx,SDD1DIRA
jmp .sdd1b jmp .sdd1b
.noSDD1b .noSDD1b
ret
.spc7110
mov edx,SPC7110DIRA
cmp al,0F9h
je .noSPC7110b
mov edx,SPC7110DIRB
.noSPC7110b
mov eax,[edx] mov eax,[edx]
mov [SPC7110nfname],eax mov [SPC7110nfname],eax
mov eax,[edx+4] mov eax,[edx+4]
@@ -3966,6 +3967,8 @@ NEWSYM SPC7110Load
je .fin je .fin
cmp byte[edx],'-' cmp byte[edx],'-'
je .skipthisone je .skipthisone
cmp byte[edx],'_'
je .skipthisone
mov al,[edx] mov al,[edx]
cmp al,'A' cmp al,'A'
jb .num jb .num
@@ -4268,6 +4271,25 @@ NEWSYM loadfileGUI
.nogdformat .nogdformat
mov byte[TextFile], 1 mov byte[TextFile], 1
mov byte[IPSPatched],0 mov byte[IPSPatched],0
; mirror image
mov eax,[.curromspace]
cmp dword[.maxromspace],eax
jbe .nomir
mov edx,[romdata]
mov ebx,[romdata]
add edx,[.curromspace]
mov ecx,[.curromspace]
.nextmir
mov al,[ebx]
mov [edx],al
inc ebx
inc edx
inc ecx
cmp ecx,[.maxromspace]
jne .nextmir
.nomir
cmp byte[ZipSupport],1 cmp byte[ZipSupport],1
jne .nottempdirdel jne .nottempdirdel
call PatchIPS call PatchIPS
@@ -4302,24 +4324,6 @@ NEWSYM loadfileGUI
call Output_Text call Output_Text
.inguib .inguib
; mirror image
mov eax,[.curromspace]
cmp dword[.maxromspace],eax
jbe .nomir
mov edx,[romdata]
mov ebx,[romdata]
add edx,[.curromspace]
mov ecx,[.curromspace]
.nextmir
mov al,[ebx]
mov [edx],al
inc ebx
inc edx
inc ecx
cmp ecx,[.maxromspace]
jne .nextmir
.nomir
mov eax,[.curfileofs] mov eax,[.curfileofs]
mov [NumofBytes],eax mov [NumofBytes],eax
shr eax,15 shr eax,15