Removed old, broken, and problematic code that wasn't really needed. Fixed more SRAM issues.
This commit is contained in:
@@ -1439,36 +1439,6 @@ SECTION .text
|
||||
; Save/Load States
|
||||
;*******************************************************
|
||||
|
||||
NEWSYM sramsave
|
||||
mov byte[pressed+1],0
|
||||
mov byte[pressed+41],0
|
||||
; save sram
|
||||
cmp byte[sramsavedis],1
|
||||
je .nosram
|
||||
cmp word[ramsize],0
|
||||
je .nosram
|
||||
mov edx,fnames+1
|
||||
call Create_File
|
||||
jc .nosram
|
||||
mov bx,ax
|
||||
xor ecx,ecx
|
||||
mov cx,[ramsize]
|
||||
mov edx,[sram]
|
||||
call Write_File
|
||||
call Close_File
|
||||
mov dword[Msgptr],.savesrmmsg1
|
||||
mov eax,[MsgCount]
|
||||
mov [MessageOn],eax
|
||||
jmp reexecute
|
||||
.nosram
|
||||
mov dword[Msgptr],.savesrmmsg2
|
||||
mov eax,[MsgCount]
|
||||
mov [MessageOn],eax
|
||||
jmp reexecute
|
||||
|
||||
SECTION .data
|
||||
.savesrmmsg1 db 'SRAM DATA SAVED.',0
|
||||
.savesrmmsg2 db 'NO SRAM DATA.',0
|
||||
NEWSYM firstsaveinc, db 0
|
||||
|
||||
SECTION .text
|
||||
|
||||
@@ -1505,7 +1505,7 @@ NEWSYM SaveSramData
|
||||
call Create_File
|
||||
jc .failed
|
||||
mov bx,ax
|
||||
mov ecx,65536
|
||||
mov ecx,[ramsize]
|
||||
mov edx,[sfxramdata]
|
||||
call Write_File
|
||||
call Close_File
|
||||
@@ -1531,7 +1531,7 @@ NEWSYM SaveSramData
|
||||
call Create_File
|
||||
jc .failed
|
||||
mov bx,ax
|
||||
mov ecx,65536*2
|
||||
mov ecx,[ramsize]
|
||||
mov edx,[SA1RAMArea]
|
||||
call Write_File
|
||||
call Close_File
|
||||
|
||||
@@ -1430,7 +1430,9 @@ transfersram:
|
||||
cmp byte[CHIPBATT],1
|
||||
je .yessram
|
||||
|
||||
;If last if failed, no battery, so no SRAM sending for SA1 (SFX doesn't set ramsize)
|
||||
;If last if failed, no battery, so no SRAM sending for SA1 or SFX
|
||||
cmp byte[SFXEnable],1
|
||||
je .nosram
|
||||
cmp byte[SA1Enable],1
|
||||
je .nosram
|
||||
cmp dword[ramsize],0
|
||||
@@ -1462,10 +1464,6 @@ transfersram:
|
||||
|
||||
; send sram
|
||||
mov ecx,[ramsize]
|
||||
cmp byte[SFXEnable],1
|
||||
jne .notsfx
|
||||
mov ecx,65536
|
||||
.notsfx
|
||||
mov ebx,[sram]
|
||||
xor esi,esi
|
||||
.loop
|
||||
@@ -1516,9 +1514,6 @@ transfersram:
|
||||
; receive sram
|
||||
mov ecx,[ramsize]
|
||||
mov ebx,[sram]
|
||||
cmp byte[SFXEnable],1
|
||||
jne .loopb
|
||||
mov ecx,65536
|
||||
.loopb
|
||||
.getnext
|
||||
pushad
|
||||
|
||||
@@ -124,6 +124,7 @@ EXTSYM addOnStart
|
||||
EXTSYM addOnSize
|
||||
EXTSYM SPC7PackIndexLoad,SPC7110IndexSize
|
||||
EXTSYM DumpROMLoadInfo
|
||||
EXTSYM SetupSramSize
|
||||
|
||||
EXTSYM SetaCmdEnable,setaramdata
|
||||
EXTSYM setaaccessbankr8,setaaccessbankw8,setaaccessbankr8a,setaaccessbankw8a
|
||||
@@ -233,7 +234,7 @@ NEWSYM init
|
||||
.found
|
||||
mov byte[romloadskip],0
|
||||
call loadfile
|
||||
call showinfo
|
||||
call SetupROM
|
||||
call showinfogui
|
||||
.noloadfile
|
||||
call UpdateDevices
|
||||
@@ -409,8 +410,6 @@ NEWSYM JoyLC, db 5
|
||||
NEWSYM JoyRC, db 6
|
||||
NEWSYM TurboSw, db 0
|
||||
|
||||
NEWSYM ramsize, dd 0 ; RAM size in bytes
|
||||
NEWSYM ramsizeand, dd 0 ; RAM size in bytes (used to and)
|
||||
NEWSYM romtype, db 0 ; ROM type in bytes
|
||||
NEWSYM resetv, dw 0 ; reset vector
|
||||
NEWSYM abortv, dw 0 ; abort vector
|
||||
@@ -1578,29 +1577,7 @@ NEWSYM init65816
|
||||
mov word[xpc],ax
|
||||
mov ebx,[romdata]
|
||||
add eax,ebx
|
||||
cmp word[xpc],8000h
|
||||
jb .notrainer
|
||||
cmp word[resetv],0F000h
|
||||
jne .ntrchecka
|
||||
jmp .yestrainer
|
||||
.ntrchecka
|
||||
sub eax,8000h
|
||||
cmp byte[eax],5Ch
|
||||
jne .notrainer
|
||||
cmp word[eax+2],80h
|
||||
je .notrainer
|
||||
cmp word[eax+2],8080h
|
||||
je .notrainer
|
||||
cmp word[eax+2],89h
|
||||
je .notrainer
|
||||
cmp word[eax+2],8089h
|
||||
je .notrainer
|
||||
.yestrainer
|
||||
mov dword[ramsize],32768
|
||||
mov dword[ramsizeand],32767
|
||||
.notrainer
|
||||
pop ebx
|
||||
|
||||
mov byte[intrset],0
|
||||
cmp byte[romtype],1
|
||||
je .nohirom
|
||||
@@ -3521,6 +3498,7 @@ NEWSYM showinfogui
|
||||
mov dword[Msgptr],CSStatus
|
||||
mov eax,[MsgCount]
|
||||
ret
|
||||
|
||||
;*******************************************************
|
||||
; Show Information
|
||||
;*******************************************************
|
||||
@@ -3535,462 +3513,8 @@ NEWSYM showinfogui
|
||||
; *3=ROM,*4=ROM+RAM,*5=ROM+RAM+BATTERY,*6=ROM+BATTERY
|
||||
; F3=C4
|
||||
|
||||
; Convert to interleaved - If LoROM and offset 7FD5 contains 21h, then
|
||||
; uninterleave
|
||||
|
||||
;This looks like the info it displays if loaded via the command line
|
||||
;Very outdated
|
||||
|
||||
NEWSYM showinfo
|
||||
mov edx,.romsizea
|
||||
cmp byte[Sup48mbit],0
|
||||
je .no48
|
||||
mov edx,.romsizeb
|
||||
cmp byte[newgfx16b],0
|
||||
je .no48
|
||||
mov edx,.romsized
|
||||
.no48
|
||||
cmp byte[Sup16mbit],0
|
||||
je .no16
|
||||
mov edx,.romsizec
|
||||
.no16
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov edx,.filename
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
xor ecx,ecx
|
||||
mov cl,[fname]
|
||||
mov esi,fname+1
|
||||
mov ah,2
|
||||
.loopa
|
||||
lodsb
|
||||
mov dl,al
|
||||
call Output_Text
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
mov edx,.ret
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
; frameskip = ?
|
||||
mov edx,.frameskip
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov dl,[frameskip]
|
||||
test dl,0FFh
|
||||
jnz .yesfs
|
||||
mov edx,.auto
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
jmp .skip
|
||||
.yesfs
|
||||
mov ah,2
|
||||
add dl,47
|
||||
call Output_Text
|
||||
mov edx,.ret
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
.skip
|
||||
; debugger on/off
|
||||
mov edx,.debugon
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov al,[debugger]
|
||||
test al,0FFh
|
||||
jnz .debugron
|
||||
mov edx,.off
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
jmp .skip2
|
||||
.debugron
|
||||
mov edx,.on
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
.skip2
|
||||
mov edx,.ret
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
; memory free
|
||||
mov edx,.memryfr
|
||||
call Output_Text
|
||||
mov edx,.memfree
|
||||
call Get_Memfree
|
||||
mov eax,[.memfree]
|
||||
call printnum
|
||||
mov edx,.ret
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
call Output_Text
|
||||
|
||||
; ROM Information
|
||||
mov edx,.smcname
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
|
||||
; determine whether hirom or lorom is used
|
||||
cmp byte[romtype],0
|
||||
jnz near .donecheck
|
||||
call CheckROMType
|
||||
|
||||
cmp byte[ROMTypeNOTFound],0
|
||||
je .donecheck
|
||||
mov ah,09h
|
||||
mov edx,.doh
|
||||
call Output_Text
|
||||
jmp DosExit
|
||||
|
||||
.donecheck
|
||||
|
||||
; COP Software 00FFF4,5 00FFE4,5 N/A
|
||||
; ABORT Hardware 00FFF8,9 00FFE8,9 2
|
||||
; NMI Hardware 00FFFA,B 00FFEA,B 3
|
||||
; RES Hardware 00FFFC.D 00FFFC,D 1
|
||||
; BRK Software 00FFFE,F 00FFE6,7 N/A
|
||||
; IRQ Hardware 00FFFE,F 00FFEE,F 4
|
||||
|
||||
call SetIRQVectors
|
||||
|
||||
; Output Name
|
||||
mov esi,[romdata]
|
||||
add esi,[infoloc]
|
||||
|
||||
mov ecx,21
|
||||
.loopb
|
||||
lodsb
|
||||
mov dl,al
|
||||
mov ah,2
|
||||
call Output_Text
|
||||
dec ecx
|
||||
jnz .loopb
|
||||
inc esi
|
||||
mov edx,.ret
|
||||
|
||||
; ROM Type
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov edx,.romtyp
|
||||
call Output_Text
|
||||
mov edx,.hirom
|
||||
cmp byte[romtype],1
|
||||
jne .nolorom
|
||||
mov edx,.lorom
|
||||
.nolorom
|
||||
call Output_Text
|
||||
mov edx,.romtype
|
||||
xor ebx,ebx
|
||||
mov bl,[esi]
|
||||
|
||||
; xor eax,eax
|
||||
; mov al,bl
|
||||
; call printnum
|
||||
; jmp DosExit
|
||||
|
||||
mov al,bl
|
||||
inc esi
|
||||
cmp al,055h
|
||||
jne .noRTC
|
||||
mov bl,12
|
||||
jmp .nochip
|
||||
.noRTC
|
||||
cmp al,0F5h
|
||||
je .yesSPC7110
|
||||
cmp al,0F9h
|
||||
jne .noSPC7110
|
||||
.yesSPC7110
|
||||
mov bl,11
|
||||
jmp .nochip
|
||||
.noSPC7110
|
||||
cmp al,0F3h
|
||||
jne .noC4
|
||||
mov bl,9
|
||||
jmp .nochip
|
||||
.noC4
|
||||
and bl,0F0h
|
||||
cmp bl,10h
|
||||
je .sfx
|
||||
cmp bl,30h
|
||||
je .sa1
|
||||
cmp bl,40h
|
||||
je .sdd1
|
||||
mov bl,20
|
||||
cmp al,5
|
||||
ja .okay
|
||||
mov bl,al
|
||||
.okay
|
||||
jmp .nochip
|
||||
.sfx
|
||||
mov bl,6
|
||||
jmp .nochip
|
||||
.sa1
|
||||
mov bl,7
|
||||
jmp .nochip
|
||||
.sdd1
|
||||
mov bl,10
|
||||
jmp .nochip
|
||||
.nochip
|
||||
cmp bl,20
|
||||
je .unknown
|
||||
shl bl,4
|
||||
add edx,ebx
|
||||
call Output_Text
|
||||
jmp .nounknown
|
||||
.unknown
|
||||
mov edx,.unknowns
|
||||
call Output_Text
|
||||
mov al,[esi-1]
|
||||
call printhex8
|
||||
mov edx,.brackets
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
.nounknown
|
||||
; Memory Map
|
||||
; cmp byte[intldone],0
|
||||
; je .nointerl
|
||||
; mov ah,09h
|
||||
; mov edx,.intlvd
|
||||
; call Output_Text
|
||||
;.nointerl
|
||||
|
||||
mov ah,09h
|
||||
mov edx,.memmap
|
||||
call Output_Text
|
||||
push esi
|
||||
mov esi,[romdata]
|
||||
add esi,7FD5h
|
||||
xor eax,eax
|
||||
mov al,byte[esi]
|
||||
and al,2Fh
|
||||
pop esi
|
||||
call printhex8
|
||||
mov ah,09h
|
||||
mov edx,.ret
|
||||
call Output_Text
|
||||
|
||||
; ROM Size
|
||||
mov edx,.romsize
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov cl,[esi]
|
||||
mov [curromsize],cl
|
||||
; cmp byte[NumofBanks],160
|
||||
; jb .not48
|
||||
; mov byte[curromsize],13
|
||||
;.not48
|
||||
|
||||
inc esi
|
||||
xor eax,eax
|
||||
sub cl,7
|
||||
mov al,1
|
||||
shl al,cl
|
||||
call printnum
|
||||
mov edx,.megabit
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
|
||||
; RAM Size
|
||||
mov edx,.sramsize
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
and eax,0FFFFh
|
||||
mov cl,[esi]
|
||||
inc esi
|
||||
xor eax,eax
|
||||
mov al,1
|
||||
shl al,cl
|
||||
cmp al,1
|
||||
jne .yessram
|
||||
mov al,0
|
||||
.yessram
|
||||
call printnum
|
||||
shl eax,10
|
||||
cmp eax,65536*2
|
||||
jbe .nosramc
|
||||
mov eax,65536*2
|
||||
.nosramc
|
||||
mov [ramsize],eax
|
||||
dec eax
|
||||
mov [ramsizeand],eax
|
||||
mov edx,.kilobit
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov al,[ForceROMTiming]
|
||||
mov byte[ForcePal],al
|
||||
xor al,al
|
||||
mov al,[esi]
|
||||
cmp byte[ForcePal],1
|
||||
jne .nontsc
|
||||
mov al,0
|
||||
.nontsc
|
||||
cmp byte[ForcePal],2
|
||||
jne .nopal2
|
||||
mov al,2
|
||||
.nopal2
|
||||
mov byte[romispal],0
|
||||
mov word[totlines],263
|
||||
mov dword[MsgCount],120
|
||||
cmp al,1
|
||||
jbe .nopal
|
||||
cmp al,0Dh
|
||||
je .nopal
|
||||
mov byte[romispal],1
|
||||
mov word[totlines],314
|
||||
mov dword[MsgCount],100
|
||||
mov edx,.romtypep
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
jmp .yespal
|
||||
.nopal
|
||||
mov edx,.romtypen
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
.yespal
|
||||
mov esi,[headdata]
|
||||
add esi,7FBDh
|
||||
cmp byte[romtype],2
|
||||
jne .nohirom4
|
||||
add esi,8000h
|
||||
.nohirom4
|
||||
cmp byte[esi],0
|
||||
je .nochipram
|
||||
jmp .nochipram
|
||||
mov edx,.ramsize
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
xor eax,eax
|
||||
mov al,[esi]
|
||||
shl eax,12
|
||||
call printnum
|
||||
mov edx,.kilobit
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
.nochipram
|
||||
;FFBD (0=none, 1=16kbit, 3=64kbit, 5=256kbit,etc.
|
||||
mov edx,.checksumc
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov ax,[Checksumvalue]
|
||||
mov esi,[headdata]
|
||||
add esi,7FDCh+2
|
||||
cmp byte[romtype],2
|
||||
jne .nohirom3
|
||||
add esi,8000h
|
||||
.nohirom3
|
||||
cmp ax,[esi]
|
||||
jne .failed
|
||||
.cpassed2
|
||||
mov edx,.cpassed
|
||||
jmp .passed
|
||||
.failed
|
||||
mov ax,[Checksumvalue2]
|
||||
cmp ax,[esi]
|
||||
je .cpassed2
|
||||
mov edx,.cfailed
|
||||
.passed
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
; Display NMI & Reset
|
||||
mov edx,.nmidisp
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
xor eax,eax
|
||||
mov ax,[nmiv]
|
||||
call printhex
|
||||
mov edx,.ret
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov edx,.resetdisp
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov ax,[resetv]
|
||||
call printhex
|
||||
mov edx,.ret
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
cmp byte[intldone],1
|
||||
jne .nointerl
|
||||
mov edx,.intlvd
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
.nointerl
|
||||
mov edx,.ret
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
mov edx,.waitkey
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
; wait for key
|
||||
cmp byte[enterpress],0
|
||||
jne .noesc
|
||||
; cmp byte[OSPort],3
|
||||
; je .noesc
|
||||
%ifdef __MSDOS__
|
||||
call Get_Key
|
||||
cmp al,27
|
||||
jne .noesc
|
||||
mov dl,[InitDrive]
|
||||
mov ebx,InitDir
|
||||
call Change_Dir
|
||||
jmp DosExit
|
||||
%endif
|
||||
.noesc
|
||||
mov edx,.ret
|
||||
call Output_Text
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.filename db 'Filename : ',0
|
||||
.frameskip db 'Frame Skip : ',0
|
||||
.percexec db '% to Exec : ',0
|
||||
.debugon db 'Debugger : ',0
|
||||
.memryfr db 'Memory Free : ',0
|
||||
.auto db 'AUTO',13,10,0
|
||||
.on db 'ON',13,10,0
|
||||
.off db 'OFF',13,10,0
|
||||
.ret db 13,10,0
|
||||
.waitkey db 'Press Any Key to Continue.',0
|
||||
.smcname db 'Cartridge name : ',0
|
||||
.romtyp db 'ROM type : ',0
|
||||
.memmap db 'Memory Map : ',0
|
||||
.hirom db 'HIROM/',0
|
||||
.lorom db 'LOROM/',0
|
||||
.romtype db 'ROM ',13,10,0
|
||||
db 'ROM/RAM ',13,10,0
|
||||
db 'ROM/SRAM ',13,10,0
|
||||
db 'ROM/DSP1 ',13,10,0
|
||||
db 'RAM/DSP1/RAM ',13,10,0
|
||||
db 'ROM/DSP1/SRAM',13,10,0
|
||||
db 'SFX ',13,10,0
|
||||
db 'SA-1 ',13,10,0
|
||||
db 'SFX2/RAM ',13,10,0
|
||||
db 'C4/ROM ',13,10,0
|
||||
db 'SDD-1 ',13,10,0
|
||||
db 'SPC7110 ',13,10,0
|
||||
db 'S-RTC ',13,10,0
|
||||
.unknowns db 'UNKNOWN (',0
|
||||
.brackets db ')',13,10,0
|
||||
.romsize db 'ROM size : ',0
|
||||
.sramsize db 'SRAM size : ',0
|
||||
.ramsize db 'CartRAM size : ',0
|
||||
.romtypep db 'ROM Type : PAL',13,10,0
|
||||
.romtypen db 'ROM Type : NTSC',13,10,0
|
||||
.checksumc db 'Checksum : ',0
|
||||
.cpassed db 'PASSED',13,10,0
|
||||
.cfailed db 'FAILED',13,10,0
|
||||
.romsizea db 13,10,'Max 32mbit ROM support',13,10,13,10,0
|
||||
.romsizeb db 13,10,'Max 48mbit ROM support + SuperFX/C4 support',13,10,13,10,0
|
||||
.romsizec db 13,10,'Max 16mbit ROM support',13,10,13,10,0
|
||||
.romsized db 13,10,'Max 48mbit ROM support + SuperFX/C4 support + 16bit New Gfx Engine',13,10,13,10,0
|
||||
.megabit db ' Megabits',13,10,0
|
||||
.kilobit db ' Kilobytes',13,10,0
|
||||
.nmidisp db 'NMI Vector Location : ',0
|
||||
.resetdisp db 'Reset Vector Location : ',0
|
||||
.doh db 'Cannot detect whether cartridge is HiROM or LoROM.',13,10,'Please use -h/-l',13,10,0
|
||||
.intlvd db 'Image is uninterleaved.',13,10,0
|
||||
|
||||
SECTION .bss
|
||||
|
||||
.memfree resb 30
|
||||
|
||||
NEWSYM DSP1Type, resb 1
|
||||
NEWSYM intldone, resb 1
|
||||
SECTION .text
|
||||
@@ -4011,25 +3535,12 @@ NEWSYM SetupROM
|
||||
add esi,18h
|
||||
mov cl,[esi-1]
|
||||
mov [curromsize],cl
|
||||
mov cl,[esi]
|
||||
inc esi
|
||||
xor eax,eax
|
||||
mov al,1
|
||||
shl al,cl
|
||||
cmp al,1
|
||||
jne .yessram
|
||||
mov al,0
|
||||
.yessram
|
||||
shl eax,10
|
||||
cmp eax,65536
|
||||
jbe .nosramc
|
||||
mov eax,65536
|
||||
.nosramc
|
||||
mov [ramsize],eax
|
||||
dec eax
|
||||
mov [ramsizeand],eax
|
||||
pushad
|
||||
call SetupSramSize
|
||||
popad
|
||||
|
||||
; get pal/ntsc
|
||||
inc esi
|
||||
mov al,[ForceROMTiming]
|
||||
mov byte[ForcePal],al
|
||||
xor al,al
|
||||
@@ -4306,7 +3817,6 @@ NEWSYM CheckROMType
|
||||
.notBS
|
||||
.endchpdtct
|
||||
|
||||
|
||||
;Setup some Memmapping
|
||||
mov byte[DSP1Type],0
|
||||
mov esi,[romdata]
|
||||
|
||||
@@ -73,6 +73,8 @@ extern unsigned char Interleaved;
|
||||
unsigned int maxromspace;
|
||||
unsigned int curromspace;
|
||||
unsigned int infoloc;
|
||||
unsigned int ramsize;
|
||||
unsigned int ramsizeand;
|
||||
|
||||
bool SplittedROM;
|
||||
unsigned int addOnStart;
|
||||
@@ -390,6 +392,31 @@ void MirrorROM()
|
||||
NumofBanks = curromspace >> 15;
|
||||
}
|
||||
|
||||
#define SRAMSizeOffset 24
|
||||
#define CompanyOffset 26
|
||||
extern bool SFXEnable;
|
||||
void SetupSramSize()
|
||||
{
|
||||
unsigned char *ROM = (unsigned char *)romdata;
|
||||
if (SFXEnable)
|
||||
{
|
||||
if (ROM[infoloc+CompanyOffset] == 0x33) //Extended header
|
||||
{
|
||||
ramsize = 8 << ((unsigned int)ROM[infoloc-3]);
|
||||
}
|
||||
else
|
||||
{
|
||||
ramsize = 256;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ramsize = ((ROM[infoloc+SRAMSizeOffset]) ? (8 << ((unsigned int)ROM[infoloc+SRAMSizeOffset])) : 0);
|
||||
}
|
||||
//Convert from Kb to bytes;
|
||||
ramsize *= 128;
|
||||
ramsizeand = ramsize-1;
|
||||
}
|
||||
|
||||
//File loading code
|
||||
extern char *ZOpenFileName;
|
||||
|
||||
Reference in New Issue
Block a user