1200 lines
37 KiB
NASM
1200 lines
37 KiB
NASM
;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 "macros.mac"
|
|
|
|
EXTSYM eramaccessbankr16,eramaccessbankr8,eramaccessbankw16
|
|
EXTSYM eramaccessbankw8,memaccessbankr16,memaccessbankr8
|
|
EXTSYM memaccessbankw16,memaccessbankw8
|
|
EXTSYM mosjmptab,mosdraw10,mosdraw11,mosdraw12,mosdraw13
|
|
EXTSYM mosdraw14,mosdraw15,mosdraw16,mosdraw2,mosdraw3
|
|
EXTSYM mosdraw4,mosdraw5,mosdraw6,mosdraw7,mosdraw8
|
|
EXTSYM mosdraw9,ngpalcon2b,ngpalcon4b
|
|
EXTSYM mosjmptab16b,mosdraw1016b,mosdraw1116b,mosdraw1216b,mosdraw1316b
|
|
EXTSYM mosdraw1416b,mosdraw1516b,mosdraw1616b,mosdraw216b,mosdraw316b
|
|
EXTSYM mosdraw416b,mosdraw516b,mosdraw616b,mosdraw716b,mosdraw816b
|
|
EXTSYM mosdraw916b
|
|
EXTSYM mosjmptab16bt,mosdraw1016bt,mosdraw1116bt,mosdraw1216bt,mosdraw1316bt
|
|
EXTSYM mosdraw1416bt,mosdraw1516bt,mosdraw1616bt,mosdraw216bt,mosdraw316bt
|
|
EXTSYM mosdraw416bt,mosdraw516bt,mosdraw616bt,mosdraw716bt,mosdraw816bt
|
|
EXTSYM mosdraw916bt
|
|
EXTSYM mosjmptab16btms,mosdraw1016btms,mosdraw1116btms,mosdraw1216btms,mosdraw1316btms
|
|
EXTSYM mosdraw1416btms,mosdraw1516btms,mosdraw1616btms,mosdraw216btms,mosdraw316btms
|
|
EXTSYM mosdraw416btms,mosdraw516btms,mosdraw616btms,mosdraw716btms,mosdraw816btms
|
|
EXTSYM mosdraw916btms
|
|
EXTSYM mosjmptab16bntms,mosdraw1016bntms,mosdraw1116bntms,mosdraw1216bntms,mosdraw1316bntms
|
|
EXTSYM mosdraw1416bntms,mosdraw1516bntms,mosdraw1616bntms,mosdraw216bntms,mosdraw316bntms
|
|
EXTSYM mosdraw416bntms,mosdraw516bntms,mosdraw616bntms,mosdraw716bntms,mosdraw816bntms
|
|
EXTSYM mosdraw916bntms
|
|
EXTSYM regaccessbankr16,regaccessbankw16,regaccessbankw8
|
|
EXTSYM sramaccessbankr16,sramaccessbankr8,sramaccessbankw16
|
|
EXTSYM sramaccessbankw8,tableA,tableB,tableC,tableD,tableE
|
|
EXTSYM tableF,tableG,tableH,wramaccessbankr16
|
|
EXTSYM wramaccessbankr8,wramaccessbankw16,wramaccessbankw8
|
|
EXTSYM regaccessbankr8SA1,regaccessbankr16SA1,regaccessbankw8SA1
|
|
EXTSYM regaccessbankw16SA1,SA1RAMaccessbankr8,SA1RAMaccessbankr16
|
|
EXTSYM SA1RAMaccessbankw8,SA1RAMaccessbankw16
|
|
EXTSYM SA1RAMaccessbankr8b,SA1RAMaccessbankr16b
|
|
EXTSYM SA1RAMaccessbankw8b,SA1RAMaccessbankw16b
|
|
EXTSYM DPageR8,DPageW8,DPageR16,DPageW16
|
|
EXTSYM SDD1Enable
|
|
EXTSYM JoyAOrig,JoyANow,JoyBOrig,JoyBNow,JoyCOrig,JoyCNow,JoyDOrig,JoyDNow
|
|
|
|
NEWSYM TableAsmStart
|
|
%include "cpu/65816d.inc"
|
|
%include "cpu/address.inc"
|
|
%include "cpu/addrni.inc"
|
|
%include "cpu/e65816.inc"
|
|
%include "cpu/regs.mac"
|
|
%include "cpu/regsw.mac"
|
|
%include "cpu/regs.inc" ; start problem here
|
|
%include "cpu/regsw.inc"
|
|
|
|
|
|
|
|
|
|
|
|
section .data
|
|
|
|
; global variables
|
|
;tableA times 256 dd 0 ; Table addresses (M:0,X:0,D:0)
|
|
;tableB times 256 dd 0 ; Table addresses (M:1,X:0,D:0)
|
|
;tableC times 256 dd 0 ; Table addresses (M:0,X:1,D:0)
|
|
;tableD times 256 dd 0 ; Table addresses (M:1,X:1,D:0)
|
|
;tableE times 256 dd 0 ; Table addresses (M:0,X:0,D:1)
|
|
;tableF times 256 dd 0 ; Table addresses (M:1,X:0,D:1)
|
|
;tableG times 256 dd 0 ; Table addresses (M:0,X:1,D:1)
|
|
;tableH times 256 dd 0 ; Table addresses (M:1,X:1,D:1)
|
|
NEWSYM addrmdef, times 27 dd 0 ; Address modes
|
|
;tablead times 256 dd 0 ; Table address location according to P
|
|
;memtabler8 times 256 dd 0 ; Memory Bank Locations for reading 8-bit
|
|
;memtablew8 times 256 dd 0 ; Memory Bank Locations for writing 8-bit
|
|
;memtabler16 times 256 dd 0 ; Memory Bank Locations for reading 16-bit
|
|
;memtablew16 times 256 dd 0 ; Memory Bank Locations for reading 16-bit
|
|
|
|
section .text
|
|
|
|
;*******************************************************
|
|
; Generate OpCode Table
|
|
;*******************************************************
|
|
|
|
NEWSYM inittable
|
|
; set up mosaic
|
|
mov dword[mosjmptab],mosdraw2
|
|
mov dword[mosjmptab+4],mosdraw3
|
|
mov dword[mosjmptab+8],mosdraw4
|
|
mov dword[mosjmptab+12],mosdraw5
|
|
mov dword[mosjmptab+16],mosdraw6
|
|
mov dword[mosjmptab+20],mosdraw7
|
|
mov dword[mosjmptab+24],mosdraw8
|
|
mov dword[mosjmptab+28],mosdraw9
|
|
mov dword[mosjmptab+32],mosdraw10
|
|
mov dword[mosjmptab+36],mosdraw11
|
|
mov dword[mosjmptab+40],mosdraw12
|
|
mov dword[mosjmptab+44],mosdraw13
|
|
mov dword[mosjmptab+48],mosdraw14
|
|
mov dword[mosjmptab+52],mosdraw15
|
|
mov dword[mosjmptab+56],mosdraw16
|
|
mov dword[mosjmptab16b],mosdraw216b
|
|
mov dword[mosjmptab16b+4],mosdraw316b
|
|
mov dword[mosjmptab16b+8],mosdraw416b
|
|
mov dword[mosjmptab16b+12],mosdraw516b
|
|
mov dword[mosjmptab16b+16],mosdraw616b
|
|
mov dword[mosjmptab16b+20],mosdraw716b
|
|
mov dword[mosjmptab16b+24],mosdraw816b
|
|
mov dword[mosjmptab16b+28],mosdraw916b
|
|
mov dword[mosjmptab16b+32],mosdraw1016b
|
|
mov dword[mosjmptab16b+36],mosdraw1116b
|
|
mov dword[mosjmptab16b+40],mosdraw1216b
|
|
mov dword[mosjmptab16b+44],mosdraw1316b
|
|
mov dword[mosjmptab16b+48],mosdraw1416b
|
|
mov dword[mosjmptab16b+52],mosdraw1516b
|
|
mov dword[mosjmptab16b+56],mosdraw1616b
|
|
mov dword[mosjmptab16bt],mosdraw216bt
|
|
mov dword[mosjmptab16bt+4],mosdraw316bt
|
|
mov dword[mosjmptab16bt+8],mosdraw416bt
|
|
mov dword[mosjmptab16bt+12],mosdraw516bt
|
|
mov dword[mosjmptab16bt+16],mosdraw616bt
|
|
mov dword[mosjmptab16bt+20],mosdraw716bt
|
|
mov dword[mosjmptab16bt+24],mosdraw816bt
|
|
mov dword[mosjmptab16bt+28],mosdraw916bt
|
|
mov dword[mosjmptab16bt+32],mosdraw1016bt
|
|
mov dword[mosjmptab16bt+36],mosdraw1116bt
|
|
mov dword[mosjmptab16bt+40],mosdraw1216bt
|
|
mov dword[mosjmptab16bt+44],mosdraw1316bt
|
|
mov dword[mosjmptab16bt+48],mosdraw1416bt
|
|
mov dword[mosjmptab16bt+52],mosdraw1516bt
|
|
mov dword[mosjmptab16bt+56],mosdraw1616bt
|
|
mov dword[mosjmptab16btms],mosdraw216btms
|
|
mov dword[mosjmptab16btms+4],mosdraw316btms
|
|
mov dword[mosjmptab16btms+8],mosdraw416btms
|
|
mov dword[mosjmptab16btms+12],mosdraw516btms
|
|
mov dword[mosjmptab16btms+16],mosdraw616btms
|
|
mov dword[mosjmptab16btms+20],mosdraw716btms
|
|
mov dword[mosjmptab16btms+24],mosdraw816btms
|
|
mov dword[mosjmptab16btms+28],mosdraw916btms
|
|
mov dword[mosjmptab16btms+32],mosdraw1016btms
|
|
mov dword[mosjmptab16btms+36],mosdraw1116btms
|
|
mov dword[mosjmptab16btms+40],mosdraw1216btms
|
|
mov dword[mosjmptab16btms+44],mosdraw1316btms
|
|
mov dword[mosjmptab16btms+48],mosdraw1416btms
|
|
mov dword[mosjmptab16btms+52],mosdraw1516btms
|
|
mov dword[mosjmptab16btms+56],mosdraw1616btms
|
|
mov dword[mosjmptab16bntms],mosdraw216bntms
|
|
mov dword[mosjmptab16bntms+4],mosdraw316bntms
|
|
mov dword[mosjmptab16bntms+8],mosdraw416bntms
|
|
mov dword[mosjmptab16bntms+12],mosdraw516bntms
|
|
mov dword[mosjmptab16bntms+16],mosdraw616bntms
|
|
mov dword[mosjmptab16bntms+20],mosdraw716bntms
|
|
mov dword[mosjmptab16bntms+24],mosdraw816bntms
|
|
mov dword[mosjmptab16bntms+28],mosdraw916bntms
|
|
mov dword[mosjmptab16bntms+32],mosdraw1016bntms
|
|
mov dword[mosjmptab16bntms+36],mosdraw1116bntms
|
|
mov dword[mosjmptab16bntms+40],mosdraw1216bntms
|
|
mov dword[mosjmptab16bntms+44],mosdraw1316bntms
|
|
mov dword[mosjmptab16bntms+48],mosdraw1416bntms
|
|
mov dword[mosjmptab16bntms+52],mosdraw1516bntms
|
|
mov dword[mosjmptab16bntms+56],mosdraw1616bntms
|
|
; set ngpalcon4b
|
|
mov ecx,20h
|
|
xor eax,eax
|
|
.loopng
|
|
mov bl,al
|
|
shr bl,2
|
|
shl bl,4
|
|
mov dl,bl
|
|
mov dh,bl
|
|
shl edx,16
|
|
mov dl,bl
|
|
mov dh,bl
|
|
mov [ngpalcon4b+eax*4],edx
|
|
inc eax
|
|
dec ecx
|
|
jnz .loopng
|
|
; set ngpalcon2b
|
|
mov ecx,20h
|
|
xor eax,eax
|
|
.loopngb
|
|
mov bl,al
|
|
shr bl,2
|
|
shl bl,2
|
|
mov dl,bl
|
|
mov dh,bl
|
|
shl edx,16
|
|
mov dl,bl
|
|
mov dh,bl
|
|
mov [ngpalcon2b+eax*4],edx
|
|
inc eax
|
|
dec ecx
|
|
jnz .loopngb
|
|
; set tablead (NVMXDIZC) ( MXD )
|
|
push es
|
|
xor ecx,ecx
|
|
xor al,al
|
|
mov cx,256
|
|
mov edi,tablead
|
|
.loopa
|
|
test al,08h ; D flag
|
|
jnz .decon
|
|
test al,10h ; X flag
|
|
jnz .xon
|
|
test al,20h ; M flag
|
|
jnz .mon
|
|
mov esi,tableA
|
|
jmp .done
|
|
.mon
|
|
mov esi,tableB
|
|
jmp .done
|
|
|
|
.xon
|
|
test al,20h ; M flag
|
|
jnz .mon2
|
|
mov esi,tableC
|
|
jmp .done
|
|
.mon2
|
|
mov esi,tableD
|
|
jmp .done
|
|
|
|
.decon
|
|
test al,10h ; X flag
|
|
jnz .xon3
|
|
test al,20h ; M flag
|
|
jnz .mon3
|
|
mov esi,tableE
|
|
jmp .done
|
|
.mon3
|
|
mov esi,tableF
|
|
jmp .done
|
|
|
|
.xon3
|
|
test al,20h
|
|
jnz .mon4
|
|
mov esi,tableG
|
|
jmp .done
|
|
.mon4
|
|
mov esi,tableH
|
|
.done
|
|
inc al
|
|
push eax
|
|
mov eax,esi
|
|
stosd
|
|
pop eax
|
|
dec ecx
|
|
jnz .loopa
|
|
|
|
; Set CPU addresses
|
|
; First, set all addresses to invalid
|
|
mov eax,eopINVALID
|
|
mov edi,tableA
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableB
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableC
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableD
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableE
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableF
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableG
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableH
|
|
mov ecx,256
|
|
rep stosd
|
|
mov edi,tableA
|
|
call settables
|
|
mov edi,tableB
|
|
call settables
|
|
mov edi,tableC
|
|
call settables
|
|
mov edi,tableD
|
|
call settables
|
|
mov edi,tableE
|
|
call settables
|
|
mov edi,tableF
|
|
call settables
|
|
mov edi,tableG
|
|
call settables
|
|
mov edi,tableH
|
|
call settables
|
|
|
|
; set proper functions
|
|
mov edi,tableA ; Table addresses (M:0,X:0,D:0)
|
|
call settablem16
|
|
mov edi,tableA
|
|
call settablex16
|
|
|
|
mov edi,tableB ; Table addresses (M:1,X:0,D:0)
|
|
call settablex16
|
|
|
|
mov edi,tableC ; Table addresses (M:0,X:1,D:0)
|
|
call settablem16
|
|
|
|
mov edi,tableE ; Table addresses (M:0,X:0,D:1)
|
|
call settablem16
|
|
mov edi,tableE
|
|
call settableDm16
|
|
mov edi,tableE
|
|
call settablex16
|
|
|
|
mov edi,tableF ; Table addresses (M:1,X:0,D:1)
|
|
call settablex16
|
|
mov edi,tableF
|
|
call settableDm8
|
|
|
|
mov edi,tableG ; Table addresses (M:0,X:1,D:1)
|
|
call settablem16
|
|
mov edi,tableG
|
|
call settableDm16
|
|
|
|
mov edi,tableH ; Table addresses (M:1,X:1,D:1)
|
|
call settableDm8
|
|
pop es
|
|
ret
|
|
|
|
NEWSYM SetAddressingModes
|
|
; set 8-bit read memory tables
|
|
mov edi,memtabler8
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankr8
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,memaccessbankr8
|
|
mov ecx,$30
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankr8
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankr8
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankr8
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankr8
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankr8
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankr8
|
|
mov ecx,$40
|
|
rep stosd
|
|
|
|
; set 8-bit write memory tables
|
|
mov edi,memtablew8
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankw8
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,memaccessbankw8
|
|
mov ecx,$30
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankw8
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankw8
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankw8
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankw8
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankw8
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankw8
|
|
mov ecx,$40
|
|
rep stosd
|
|
|
|
; set 16-bit read memory tables
|
|
mov edi,memtabler16
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankr16
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,memaccessbankr16
|
|
mov ecx,$30
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankr16
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankr16
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankr16
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankr16
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankr16
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankr16
|
|
mov ecx,$40
|
|
rep stosd
|
|
|
|
; set 16-bit write memory tables
|
|
mov edi,memtablew16
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankw16
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,memaccessbankw16
|
|
mov ecx,$30
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankw16
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankw16
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankw16
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankw16
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankw16
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankw16
|
|
mov ecx,$40
|
|
rep stosd
|
|
ret
|
|
|
|
NEWSYM SetAddressingModesSA1
|
|
; set 8-bit read memory tables
|
|
mov edi,memtabler8
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankr8SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,SA1RAMaccessbankr8
|
|
mov ecx,$20
|
|
rep stosd
|
|
mov eax,SA1RAMaccessbankr8b
|
|
mov ecx,$10
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankr8
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankr8
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankr8
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankr8
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankr8SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankr8
|
|
mov ecx,$40
|
|
rep stosd
|
|
|
|
; set 8-bit write memory tables
|
|
mov edi,memtablew8
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankw8SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,SA1RAMaccessbankw8
|
|
mov ecx,$20
|
|
rep stosd
|
|
mov eax,SA1RAMaccessbankw8b
|
|
mov ecx,$10
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankw8
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankw8
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankw8
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankw8
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankw8SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankw8
|
|
mov ecx,$40
|
|
rep stosd
|
|
|
|
; set 16-bit read memory tables
|
|
mov edi,memtabler16
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankr16SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,SA1RAMaccessbankr16
|
|
mov ecx,$20
|
|
rep stosd
|
|
mov eax,SA1RAMaccessbankr16b
|
|
mov ecx,$10
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankr16
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankr16
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankr16
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankr16
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankr16SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankr16
|
|
mov ecx,$40
|
|
rep stosd
|
|
|
|
; set 16-bit write memory tables
|
|
mov edi,memtablew16
|
|
; banks 0-3Fh
|
|
mov eax,regaccessbankw16SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks 40-6Fh
|
|
mov eax,SA1RAMaccessbankw16
|
|
mov ecx,$20
|
|
rep stosd
|
|
mov eax,SA1RAMaccessbankw16b
|
|
mov ecx,$10
|
|
rep stosd
|
|
; bank 70-77h
|
|
mov eax,sramaccessbankw16
|
|
mov ecx,8
|
|
rep stosd
|
|
; bank 78-7D
|
|
mov eax,memaccessbankw16
|
|
mov ecx,6
|
|
rep stosd
|
|
; bank 7E
|
|
mov eax,wramaccessbankw16
|
|
stosd
|
|
; bank 7F
|
|
mov eax,eramaccessbankw16
|
|
stosd
|
|
; banks 80-BF
|
|
mov eax,regaccessbankw16SA1
|
|
mov ecx,$40
|
|
rep stosd
|
|
; banks C0-FFh
|
|
mov eax,memaccessbankw16
|
|
mov ecx,$40
|
|
rep stosd
|
|
ret
|
|
|
|
eopINVALID
|
|
ret
|
|
|
|
section .data
|
|
|
|
;*******************************************************
|
|
; Cpu Cycles Sets the CPU cycle table
|
|
;*******************************************************
|
|
NEWSYM cpucycle
|
|
db 8, 6, 8, 4, 5, 3, 5, 6, 3, 2, 2, 4, 6, 4, 6, 5
|
|
db 2, 5, 5, 7, 5, 4, 6, 6, 2, 4, 2, 2, 6, 4, 7, 5
|
|
db 6, 6, 8, 4, 3, 3, 5, 6, 4, 2, 2, 5, 4, 4, 6, 5
|
|
db 2, 5, 5, 7, 4, 4, 6, 6, 2, 4, 2, 2, 4, 4, 7, 5
|
|
db 7, 6, 2, 4, 7, 3, 5, 6, 3, 2, 2, 3, 3, 4, 6, 5
|
|
db 2, 5, 5, 7, 7, 4, 6, 6, 2, 4, 3, 2, 4, 4, 7, 5
|
|
db 6, 6, 6, 4, 3, 3, 5, 6, 4, 2, 2, 6, 5, 4, 6, 5
|
|
db 2, 5, 5, 7, 4, 4, 6, 6, 2, 4, 4, 2, 6, 4, 7, 5
|
|
db 2, 6, 3, 4, 3, 3, 3, 6, 2, 2, 2, 3, 4, 4, 4, 5
|
|
db 2, 6, 5, 7, 4, 4, 4, 6, 2, 5, 2, 2, 4, 5, 5, 5
|
|
db 2, 6, 2, 4, 3, 3, 3, 6, 2, 2, 2, 4, 4, 4, 4, 5
|
|
db 2, 5, 5, 7, 4, 4, 4, 6, 2, 4, 2, 2, 4, 4, 4, 5
|
|
db 2, 6, 3, 4, 3, 3, 5, 6, 2, 2, 2, 3, 4, 4, 4, 5
|
|
db 2, 5, 5, 7, 6, 4, 6, 6, 2, 4, 3, 3, 6, 4, 7, 5
|
|
db 2, 6, 3, 4, 3, 3, 5, 6, 2, 2, 2, 3, 4, 4, 6, 5
|
|
db 2, 5, 5, 7, 5, 4, 6, 6, 2, 4, 4, 2, 6, 4, 7, 5
|
|
; | 2 8 | 2 6 | 2 8 | 2 4 | 2 5 | 2 3 | 2 5 | 2 6 | 1 3 | 2 2 | 1 2 | 1 4 | 3 6 | 3 4 | 3 6 | 4 5 |
|
|
; | 2 2 | 2 5 | 2 5 | 2 7 | 2 5 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 2 | 1 2 | 3 6 | 3 4 | 3 7 | 4 5 |
|
|
; | 3 6 | 2 6 | 4 8 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 4 | 2 2 | 1 2 | 1 5 | 3 4 | 3 4 | 3 6 | 4 5 |
|
|
; | 2 2 | 2 5 | 2 5 | 2 7 | 2 4 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 2 | 1 2 | 3 4 | 3 4 | 3 7 | 4 5 |
|
|
; | 1 7 | 2 6 | 2 2 | 2 4 | 3 7 | 2 3 | 2 5 | 2 6 | 1 3 | 2 2 | 1 2 | 1 3 | 3 3 | 3 4 | 3 6 | 4 5 |
|
|
; | 2 2 | 2 5 | 2 5 | 2 7 | 3 7 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 3 | 1 2 | 4 4 | 3 4 | 3 7 | 4 5 |
|
|
; | 1 6 | 2 6 | 3 6 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 4 | 2 2 | 1 2 | 1 6 | 3 5 | 3 4 | 3 6 | 4 5 |
|
|
; | 2 2 | 2 5 | 2 5 | 2 7 | 2 4 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 4 | 1 2 | 3 6 | 3 4 | 3 7 | 4 5 |
|
|
; | 2 2 | 2 6 | 3 3 | 2 4 | 2 3 | 2 3 | 2 3 | 2 6 | 1 2 | 2 2 | 1 2 | 1 3 | 3 4 | 3 4 | 3 4 | 4 5 |
|
|
; | 2 2 | 2 6 | 2 5 | 2 7 | 2 4 | 2 4 | 2 4 | 2 6 | 1 2 | 3 5 | 1 2 | 1 2 | 3 4 | 3 5 | 3 5 | 4 5 |
|
|
; | 2 2 | 2 6 | 2 2 | 2 4 | 2 3 | 2 3 | 2 3 | 2 6 | 1 2 | 2 2 | 1 2 | 1 4 | 3 4 | 3 4 | 3 4 | 4 5 |
|
|
; | 2 2 | 2 5 | 2 5 | 2 7 | 2 4 | 2 4 | 2 4 | 2 6 | 1 2 | 3 4 | 1 2 | 1 2 | 3 4 | 3 4 | 3 4 | 4 5 |
|
|
; | 2 2 | 2 6 | 2 3 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 2 | 2 2 | 1 2 | 1 3 | 3 4 | 3 4 | 3 4 | 4 5 |
|
|
; | 2 2 | 2 5 | 2 5 | 2 7 | 2 6 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 3 | 1 3 | 3 6 | 3 4 | 3 7 | 4 5 |
|
|
; | 2 2 | 2 6 | 2 3 | 2 4 | 2 3 | 2 3 | 2 5 | 2 6 | 1 2 | 2 2 | 1 2 | 1 3 | 3 4 | 3 4 | 3 6 | 4 5 |
|
|
; | 2 2 | 2 5 | 2 5 | 2 7 | 3 5 | 2 4 | 2 6 | 2 6 | 1 2 | 3 4 | 1 4 | 1 2 | 3 6 | 3 4 | 3 7 | 4 5 |
|
|
|
|
section .text
|
|
|
|
;*******************************************************
|
|
; Set Tables Sets the opcode tables according to EDI
|
|
;*******************************************************
|
|
; This function sets all the non-multiple entries
|
|
|
|
NEWSYM settables
|
|
;row 0
|
|
mov dword[edi+00h*4],COp00
|
|
mov dword[edi+01h*4],COp01m8
|
|
mov dword[edi+02h*4],COp02
|
|
mov dword[edi+03h*4],COp03m8
|
|
mov dword[edi+04h*4],COp04m8
|
|
mov dword[edi+05h*4],COp05m8
|
|
mov dword[edi+06h*4],COp06m8
|
|
mov dword[edi+07h*4],COp07m8
|
|
mov dword[edi+08h*4],COp08
|
|
mov dword[edi+09h*4],COp09m8
|
|
mov dword[edi+0Ah*4],COp0Am8
|
|
mov dword[edi+0Bh*4],COp0B
|
|
mov dword[edi+0Ch*4],COp0Cm8
|
|
mov dword[edi+0Dh*4],COp0Dm8
|
|
mov dword[edi+0Eh*4],COp0Em8
|
|
mov dword[edi+0Fh*4],COp0Fm8
|
|
mov dword[edi+10h*4],COp10
|
|
mov dword[edi+11h*4],COp11m8
|
|
mov dword[edi+12h*4],COp12m8
|
|
mov dword[edi+13h*4],COp13m8
|
|
mov dword[edi+14h*4],COp14m8
|
|
mov dword[edi+15h*4],COp15m8
|
|
mov dword[edi+16h*4],COp16m8
|
|
mov dword[edi+17h*4],COp17m8
|
|
mov dword[edi+18h*4],COp18
|
|
mov dword[edi+19h*4],COp19m8
|
|
mov dword[edi+1Ah*4],COp1Am8
|
|
mov dword[edi+1Bh*4],COp1B
|
|
mov dword[edi+1Ch*4],COp1Cm8
|
|
mov dword[edi+1Dh*4],COp1Dm8
|
|
mov dword[edi+1Eh*4],COp1Em8
|
|
mov dword[edi+1Fh*4],COp1Fm8
|
|
mov dword[edi+20h*4],COp20
|
|
mov dword[edi+21h*4],COp21m8
|
|
mov dword[edi+22h*4],COp22
|
|
mov dword[edi+23h*4],COp23m8
|
|
mov dword[edi+24h*4],COp24m8
|
|
mov dword[edi+25h*4],COp25m8
|
|
mov dword[edi+26h*4],COp26m8
|
|
mov dword[edi+27h*4],COp27m8
|
|
mov dword[edi+28h*4],COp28
|
|
mov dword[edi+29h*4],COp29m8
|
|
mov dword[edi+2Ah*4],COp2Am8
|
|
mov dword[edi+2Bh*4],COp2B
|
|
mov dword[edi+2Ch*4],COp2Cm8
|
|
mov dword[edi+2Dh*4],COp2Dm8
|
|
mov dword[edi+2Eh*4],COp2Em8
|
|
mov dword[edi+2Fh*4],COp2Fm8
|
|
mov dword[edi+30h*4],COp30
|
|
mov dword[edi+31h*4],COp31m8
|
|
mov dword[edi+32h*4],COp32m8
|
|
mov dword[edi+33h*4],COp33m8
|
|
mov dword[edi+34h*4],COp34m8
|
|
mov dword[edi+35h*4],COp35m8
|
|
mov dword[edi+36h*4],COp36m8
|
|
mov dword[edi+37h*4],COp37m8
|
|
mov dword[edi+38h*4],COp38
|
|
mov dword[edi+39h*4],COp39m8
|
|
mov dword[edi+3Ah*4],COp3Am8
|
|
mov dword[edi+3Bh*4],COp3B
|
|
mov dword[edi+3Ch*4],COp3Cm8
|
|
mov dword[edi+3Dh*4],COp3Dm8
|
|
mov dword[edi+3Eh*4],COp3Em8
|
|
mov dword[edi+3Fh*4],COp3Fm8
|
|
mov dword[edi+40h*4],COp40
|
|
mov dword[edi+41h*4],COp41m8
|
|
mov dword[edi+42h*4],COp42
|
|
mov dword[edi+43h*4],COp43m8
|
|
mov dword[edi+44h*4],COp44
|
|
mov dword[edi+45h*4],COp45m8
|
|
mov dword[edi+46h*4],COp46m8
|
|
mov dword[edi+47h*4],COp47m8
|
|
mov dword[edi+48h*4],COp48m8
|
|
mov dword[edi+49h*4],COp49m8
|
|
mov dword[edi+4Ah*4],COp4Am8
|
|
mov dword[edi+4Bh*4],COp4B
|
|
mov dword[edi+4Ch*4],COp4C
|
|
mov dword[edi+4Dh*4],COp4Dm8
|
|
mov dword[edi+4Eh*4],COp4Em8
|
|
mov dword[edi+4Fh*4],COp4Fm8
|
|
mov dword[edi+50h*4],COp50
|
|
mov dword[edi+51h*4],COp51m8
|
|
mov dword[edi+52h*4],COp52m8
|
|
mov dword[edi+53h*4],COp53m8
|
|
mov dword[edi+54h*4],COp54
|
|
mov dword[edi+55h*4],COp55m8
|
|
mov dword[edi+56h*4],COp56m8
|
|
mov dword[edi+57h*4],COp57m8
|
|
mov dword[edi+58h*4],COp58
|
|
mov dword[edi+59h*4],COp59m8
|
|
mov dword[edi+5Ah*4],COp5Ax8
|
|
mov dword[edi+5Bh*4],COp5B
|
|
mov dword[edi+5Ch*4],COp5C
|
|
mov dword[edi+5Dh*4],COp5Dm8
|
|
mov dword[edi+5Eh*4],COp5Em8
|
|
mov dword[edi+5Fh*4],COp5Fm8
|
|
mov dword[edi+60h*4],COp60
|
|
mov dword[edi+61h*4],COp61m8nd
|
|
mov dword[edi+62h*4],COp62
|
|
mov dword[edi+63h*4],COp63m8nd
|
|
mov dword[edi+64h*4],COp64m8
|
|
mov dword[edi+65h*4],COp65m8nd
|
|
mov dword[edi+66h*4],COp66m8
|
|
mov dword[edi+67h*4],COp67m8nd
|
|
mov dword[edi+68h*4],COp68m8
|
|
mov dword[edi+69h*4],COp69m8nd
|
|
mov dword[edi+6Ah*4],COp6Am8
|
|
mov dword[edi+6Bh*4],COp6B
|
|
mov dword[edi+6Ch*4],COp6C
|
|
mov dword[edi+6Dh*4],COp6Dm8nd
|
|
mov dword[edi+6Eh*4],COp6Em8
|
|
mov dword[edi+6Fh*4],COp6Fm8nd
|
|
mov dword[edi+70h*4],COp70
|
|
mov dword[edi+71h*4],COp71m8nd
|
|
mov dword[edi+72h*4],COp72m8nd
|
|
mov dword[edi+73h*4],COp73m8nd
|
|
mov dword[edi+74h*4],COp74m8
|
|
mov dword[edi+75h*4],COp75m8nd
|
|
mov dword[edi+76h*4],COp76m8
|
|
mov dword[edi+77h*4],COp77m8nd
|
|
mov dword[edi+78h*4],COp78
|
|
mov dword[edi+79h*4],COp79m8nd
|
|
mov dword[edi+7Ah*4],COp7Ax8
|
|
mov dword[edi+7Bh*4],COp7B
|
|
mov dword[edi+7Ch*4],COp7C
|
|
mov dword[edi+7Dh*4],COp7Dm8nd
|
|
mov dword[edi+7Eh*4],COp7Em8
|
|
mov dword[edi+7Fh*4],COp7Fm8nd
|
|
mov dword[edi+80h*4],COp80
|
|
mov dword[edi+81h*4],COp81m8
|
|
mov dword[edi+82h*4],COp82
|
|
mov dword[edi+83h*4],COp83m8
|
|
mov dword[edi+84h*4],COp84x8
|
|
mov dword[edi+85h*4],COp85m8
|
|
mov dword[edi+86h*4],COp86x8
|
|
mov dword[edi+87h*4],COp87m8
|
|
mov dword[edi+88h*4],COp88x8
|
|
mov dword[edi+89h*4],COp89m8
|
|
mov dword[edi+8Ah*4],COp8Am8
|
|
mov dword[edi+8Bh*4],COp8B
|
|
mov dword[edi+8Ch*4],COp8Cx8
|
|
mov dword[edi+8Dh*4],COp8Dm8
|
|
mov dword[edi+8Eh*4],COp8Ex8
|
|
mov dword[edi+8Fh*4],COp8Fm8
|
|
mov dword[edi+90h*4],COp90
|
|
mov dword[edi+91h*4],COp91m8
|
|
mov dword[edi+92h*4],COp92m8
|
|
mov dword[edi+93h*4],COp93m8
|
|
mov dword[edi+94h*4],COp94x8
|
|
mov dword[edi+95h*4],COp95m8
|
|
mov dword[edi+96h*4],COp96x8
|
|
mov dword[edi+97h*4],COp97m8
|
|
mov dword[edi+98h*4],COp98m8
|
|
mov dword[edi+99h*4],COp99m8
|
|
mov dword[edi+9Ah*4],COp9A
|
|
mov dword[edi+9Bh*4],COp9Bx8
|
|
mov dword[edi+9Ch*4],COp9Cm8
|
|
mov dword[edi+9Dh*4],COp9Dm8
|
|
mov dword[edi+9Eh*4],COp9Em8
|
|
mov dword[edi+9Fh*4],COp9Fm8
|
|
mov dword[edi+0A0h*4],COpA0x8
|
|
mov dword[edi+0A1h*4],COpA1m8
|
|
mov dword[edi+0A2h*4],COpA2x8
|
|
mov dword[edi+0A3h*4],COpA3m8
|
|
mov dword[edi+0A4h*4],COpA4x8
|
|
mov dword[edi+0A5h*4],COpA5m8
|
|
mov dword[edi+0A6h*4],COpA6x8
|
|
mov dword[edi+0A7h*4],COpA7m8
|
|
mov dword[edi+0A8h*4],COpA8x8
|
|
mov dword[edi+0A9h*4],COpA9m8
|
|
mov dword[edi+0AAh*4],COpAAx8
|
|
mov dword[edi+0ABh*4],COpAB
|
|
mov dword[edi+0ACh*4],COpACx8
|
|
mov dword[edi+0ADh*4],COpADm8
|
|
mov dword[edi+0AEh*4],COpAEx8
|
|
mov dword[edi+0AFh*4],COpAFm8
|
|
mov dword[edi+0B0h*4],COpB0
|
|
mov dword[edi+0B1h*4],COpB1m8
|
|
mov dword[edi+0B2h*4],COpB2m8
|
|
mov dword[edi+0B3h*4],COpB3m8
|
|
mov dword[edi+0B4h*4],COpB4x8
|
|
mov dword[edi+0B5h*4],COpB5m8
|
|
mov dword[edi+0B6h*4],COpB6x8
|
|
mov dword[edi+0B7h*4],COpB7m8
|
|
mov dword[edi+0B8h*4],COpB8
|
|
mov dword[edi+0B9h*4],COpB9m8
|
|
mov dword[edi+0BAh*4],COpBAx8
|
|
mov dword[edi+0BBh*4],COpBBx8
|
|
mov dword[edi+0BCh*4],COpBCx8
|
|
mov dword[edi+0BDh*4],COpBDm8
|
|
mov dword[edi+0BEh*4],COpBEx8
|
|
mov dword[edi+0BFh*4],COpBFm8
|
|
mov dword[edi+0C0h*4],COpC0x8
|
|
mov dword[edi+0C1h*4],COpC1m8
|
|
mov dword[edi+0C2h*4],COpC2
|
|
mov dword[edi+0C3h*4],COpC3m8
|
|
mov dword[edi+0C4h*4],COpC4x8
|
|
mov dword[edi+0C5h*4],COpC5m8
|
|
mov dword[edi+0C6h*4],COpC6m8
|
|
mov dword[edi+0C7h*4],COpC7m8
|
|
mov dword[edi+0C8h*4],COpC8x8
|
|
mov dword[edi+0C9h*4],COpC9m8
|
|
mov dword[edi+0CAh*4],COpCAx8
|
|
mov dword[edi+0CBh*4],COpCB
|
|
mov dword[edi+0CCh*4],COpCCx8
|
|
mov dword[edi+0CDh*4],COpCDm8
|
|
mov dword[edi+0CEh*4],COpCEm8
|
|
mov dword[edi+0CFh*4],COpCFm8
|
|
mov dword[edi+0D0h*4],COpD0
|
|
mov dword[edi+0D1h*4],COpD1m8
|
|
mov dword[edi+0D2h*4],COpD2m8
|
|
mov dword[edi+0D3h*4],COpD3m8
|
|
mov dword[edi+0D4h*4],COpD4
|
|
mov dword[edi+0D5h*4],COpD5m8
|
|
mov dword[edi+0D6h*4],COpD6m8
|
|
mov dword[edi+0D7h*4],COpD7m8
|
|
mov dword[edi+0D8h*4],COpD8
|
|
mov dword[edi+0D9h*4],COpD9m8
|
|
mov dword[edi+0DAh*4],COpDAx8
|
|
mov dword[edi+0DBh*4],COpDB
|
|
mov dword[edi+0DCh*4],COpDC
|
|
mov dword[edi+0DDh*4],COpDDm8
|
|
mov dword[edi+0DEh*4],COpDEm8
|
|
mov dword[edi+0DFh*4],COpDFm8
|
|
mov dword[edi+0E0h*4],COpE0x8
|
|
mov dword[edi+0E1h*4],COpE1m8nd
|
|
mov dword[edi+0E2h*4],COpE2
|
|
mov dword[edi+0E3h*4],COpE3m8nd
|
|
mov dword[edi+0E4h*4],COpE4x8
|
|
mov dword[edi+0E5h*4],COpE5m8nd
|
|
mov dword[edi+0E6h*4],COpE6m8
|
|
mov dword[edi+0E7h*4],COpE7m8nd
|
|
mov dword[edi+0E8h*4],COpE8x8
|
|
mov dword[edi+0E9h*4],COpE9m8nd
|
|
mov dword[edi+0EAh*4],COpEA
|
|
mov dword[edi+0EBh*4],COpEB
|
|
mov dword[edi+0ECh*4],COpECx8
|
|
mov dword[edi+0EDh*4],COpEDm8nd
|
|
mov dword[edi+0EEh*4],COpEEm8
|
|
mov dword[edi+0EFh*4],COpEFm8nd
|
|
mov dword[edi+0F0h*4],COpF0
|
|
mov dword[edi+0F1h*4],COpF1m8nd
|
|
mov dword[edi+0F2h*4],COpF2m8nd
|
|
mov dword[edi+0F3h*4],COpF3m8nd
|
|
mov dword[edi+0F4h*4],COpF4
|
|
mov dword[edi+0F5h*4],COpF5m8nd
|
|
mov dword[edi+0F6h*4],COpF6m8
|
|
mov dword[edi+0F7h*4],COpF7m8nd
|
|
mov dword[edi+0F8h*4],COpF8
|
|
mov dword[edi+0F9h*4],COpF9m8nd
|
|
mov dword[edi+0FAh*4],COpFAx8
|
|
mov dword[edi+0FBh*4],COpFB
|
|
mov dword[edi+0FCh*4],COpFC
|
|
mov dword[edi+0FDh*4],COpFDm8nd
|
|
mov dword[edi+0FEh*4],COpFEm8
|
|
mov dword[edi+0FFh*4],COpFFm8nd
|
|
ret
|
|
|
|
NEWSYM settablem16
|
|
mov dword[edi+01h*4],COp01m16
|
|
mov dword[edi+03h*4],COp03m16
|
|
mov dword[edi+04h*4],COp04m16
|
|
mov dword[edi+05h*4],COp05m16
|
|
mov dword[edi+06h*4],COp06m16
|
|
mov dword[edi+07h*4],COp07m16
|
|
mov dword[edi+09h*4],COp09m16
|
|
mov dword[edi+0Ah*4],COp0Am16
|
|
mov dword[edi+0Ch*4],COp0Cm16
|
|
mov dword[edi+0Dh*4],COp0Dm16
|
|
mov dword[edi+0Eh*4],COp0Em16
|
|
mov dword[edi+0Fh*4],COp0Fm16
|
|
mov dword[edi+11h*4],COp11m16
|
|
mov dword[edi+12h*4],COp12m16
|
|
mov dword[edi+13h*4],COp13m16
|
|
mov dword[edi+14h*4],COp14m16
|
|
mov dword[edi+15h*4],COp15m16
|
|
mov dword[edi+16h*4],COp16m16
|
|
mov dword[edi+17h*4],COp17m16
|
|
mov dword[edi+19h*4],COp19m16
|
|
mov dword[edi+1Ah*4],COp1Am16
|
|
mov dword[edi+1Ch*4],COp1Cm16
|
|
mov dword[edi+1Dh*4],COp1Dm16
|
|
mov dword[edi+1Eh*4],COp1Em16
|
|
mov dword[edi+1Fh*4],COp1Fm16
|
|
mov dword[edi+21h*4],COp21m16
|
|
mov dword[edi+23h*4],COp23m16
|
|
mov dword[edi+24h*4],COp24m16
|
|
mov dword[edi+25h*4],COp25m16
|
|
mov dword[edi+26h*4],COp26m16
|
|
mov dword[edi+27h*4],COp27m16
|
|
mov dword[edi+29h*4],COp29m16
|
|
mov dword[edi+2Ah*4],COp2Am16
|
|
mov dword[edi+2Ch*4],COp2Cm16
|
|
mov dword[edi+2Dh*4],COp2Dm16
|
|
mov dword[edi+2Eh*4],COp2Em16
|
|
mov dword[edi+2Fh*4],COp2Fm16
|
|
mov dword[edi+31h*4],COp31m16
|
|
mov dword[edi+32h*4],COp32m16
|
|
mov dword[edi+33h*4],COp33m16
|
|
mov dword[edi+34h*4],COp34m16
|
|
mov dword[edi+35h*4],COp35m16
|
|
mov dword[edi+36h*4],COp36m16
|
|
mov dword[edi+37h*4],COp37m16
|
|
mov dword[edi+39h*4],COp39m16
|
|
mov dword[edi+3Ah*4],COp3Am16
|
|
mov dword[edi+3Ch*4],COp3Cm16
|
|
mov dword[edi+3Dh*4],COp3Dm16
|
|
mov dword[edi+3Eh*4],COp3Em16
|
|
mov dword[edi+3Fh*4],COp3Fm16
|
|
mov dword[edi+41h*4],COp41m16
|
|
mov dword[edi+43h*4],COp43m16
|
|
mov dword[edi+45h*4],COp45m16
|
|
mov dword[edi+46h*4],COp46m16
|
|
mov dword[edi+47h*4],COp47m16
|
|
mov dword[edi+48h*4],COp48m16
|
|
mov dword[edi+49h*4],COp49m16
|
|
mov dword[edi+4Ah*4],COp4Am16
|
|
mov dword[edi+4Dh*4],COp4Dm16
|
|
mov dword[edi+4Eh*4],COp4Em16
|
|
mov dword[edi+4Fh*4],COp4Fm16
|
|
mov dword[edi+51h*4],COp51m16
|
|
mov dword[edi+52h*4],COp52m16
|
|
mov dword[edi+53h*4],COp53m16
|
|
mov dword[edi+55h*4],COp55m16
|
|
mov dword[edi+56h*4],COp56m16
|
|
mov dword[edi+57h*4],COp57m16
|
|
mov dword[edi+59h*4],COp59m16
|
|
mov dword[edi+5Dh*4],COp5Dm16
|
|
mov dword[edi+5Eh*4],COp5Em16
|
|
mov dword[edi+5Fh*4],COp5Fm16
|
|
mov dword[edi+61h*4],COp61m16nd
|
|
mov dword[edi+63h*4],COp63m16nd
|
|
mov dword[edi+64h*4],COp64m16
|
|
mov dword[edi+65h*4],COp65m16nd
|
|
mov dword[edi+66h*4],COp66m16
|
|
mov dword[edi+67h*4],COp67m16nd
|
|
mov dword[edi+68h*4],COp68m16
|
|
mov dword[edi+69h*4],COp69m16nd
|
|
mov dword[edi+6Ah*4],COp6Am16
|
|
mov dword[edi+6Dh*4],COp6Dm16nd
|
|
mov dword[edi+6Eh*4],COp6Em16
|
|
mov dword[edi+6Fh*4],COp6Fm16nd
|
|
mov dword[edi+71h*4],COp71m16nd
|
|
mov dword[edi+72h*4],COp72m16nd
|
|
mov dword[edi+73h*4],COp73m16nd
|
|
mov dword[edi+74h*4],COp74m16
|
|
mov dword[edi+75h*4],COp75m16nd
|
|
mov dword[edi+76h*4],COp76m16
|
|
mov dword[edi+77h*4],COp77m16nd
|
|
mov dword[edi+79h*4],COp79m16nd
|
|
mov dword[edi+7Dh*4],COp7Dm16nd
|
|
mov dword[edi+7Eh*4],COp7Em16
|
|
mov dword[edi+7Fh*4],COp7Fm16nd
|
|
mov dword[edi+81h*4],COp81m16
|
|
mov dword[edi+83h*4],COp83m16
|
|
mov dword[edi+85h*4],COp85m16
|
|
mov dword[edi+87h*4],COp87m16
|
|
mov dword[edi+89h*4],COp89m16
|
|
mov dword[edi+8Ah*4],COp8Am16
|
|
mov dword[edi+8Dh*4],COp8Dm16
|
|
mov dword[edi+8Fh*4],COp8Fm16
|
|
mov dword[edi+91h*4],COp91m16
|
|
mov dword[edi+92h*4],COp92m16
|
|
mov dword[edi+93h*4],COp93m16
|
|
mov dword[edi+95h*4],COp95m16
|
|
mov dword[edi+97h*4],COp97m16
|
|
mov dword[edi+98h*4],COp98m16
|
|
mov dword[edi+99h*4],COp99m16
|
|
mov dword[edi+9Ch*4],COp9Cm16
|
|
mov dword[edi+9Dh*4],COp9Dm16
|
|
mov dword[edi+9Eh*4],COp9Em16
|
|
mov dword[edi+9Fh*4],COp9Fm16
|
|
mov dword[edi+0A1h*4],COpA1m16
|
|
mov dword[edi+0A3h*4],COpA3m16
|
|
mov dword[edi+0A5h*4],COpA5m16
|
|
mov dword[edi+0A7h*4],COpA7m16
|
|
mov dword[edi+0A9h*4],COpA9m16
|
|
mov dword[edi+0ADh*4],COpADm16
|
|
mov dword[edi+0AFh*4],COpAFm16
|
|
mov dword[edi+0B1h*4],COpB1m16
|
|
mov dword[edi+0B2h*4],COpB2m16
|
|
mov dword[edi+0B3h*4],COpB3m16
|
|
mov dword[edi+0B5h*4],COpB5m16
|
|
mov dword[edi+0B7h*4],COpB7m16
|
|
mov dword[edi+0B9h*4],COpB9m16
|
|
mov dword[edi+0BDh*4],COpBDm16
|
|
mov dword[edi+0BFh*4],COpBFm16
|
|
mov dword[edi+0C1h*4],COpC1m16
|
|
mov dword[edi+0C3h*4],COpC3m16
|
|
mov dword[edi+0C5h*4],COpC5m16
|
|
mov dword[edi+0C6h*4],COpC6m16
|
|
mov dword[edi+0C7h*4],COpC7m16
|
|
mov dword[edi+0C9h*4],COpC9m16
|
|
mov dword[edi+0CDh*4],COpCDm16
|
|
mov dword[edi+0CEh*4],COpCEm16
|
|
mov dword[edi+0CFh*4],COpCFm16
|
|
mov dword[edi+0D1h*4],COpD1m16
|
|
mov dword[edi+0D2h*4],COpD2m16
|
|
mov dword[edi+0D3h*4],COpD3m16
|
|
mov dword[edi+0D5h*4],COpD5m16
|
|
mov dword[edi+0D6h*4],COpD6m16
|
|
mov dword[edi+0D7h*4],COpD7m16
|
|
mov dword[edi+0D9h*4],COpD9m16
|
|
mov dword[edi+0DDh*4],COpDDm16
|
|
mov dword[edi+0DEh*4],COpDEm16
|
|
mov dword[edi+0DFh*4],COpDFm16
|
|
mov dword[edi+0E1h*4],COpE1m16nd
|
|
mov dword[edi+0E3h*4],COpE3m16nd
|
|
mov dword[edi+0E5h*4],COpE5m16nd
|
|
mov dword[edi+0E6h*4],COpE6m16
|
|
mov dword[edi+0E7h*4],COpE7m16nd
|
|
mov dword[edi+0E9h*4],COpE9m16nd
|
|
mov dword[edi+0EDh*4],COpEDm16nd
|
|
mov dword[edi+0EEh*4],COpEEm16
|
|
mov dword[edi+0EFh*4],COpEFm16nd
|
|
mov dword[edi+0F1h*4],COpF1m16nd
|
|
mov dword[edi+0F2h*4],COpF2m16nd
|
|
mov dword[edi+0F3h*4],COpF3m16nd
|
|
mov dword[edi+0F5h*4],COpF5m16nd
|
|
mov dword[edi+0F6h*4],COpF6m16
|
|
mov dword[edi+0F7h*4],COpF7m16nd
|
|
mov dword[edi+0F9h*4],COpF9m16nd
|
|
mov dword[edi+0FDh*4],COpFDm16nd
|
|
mov dword[edi+0FEh*4],COpFEm16
|
|
mov dword[edi+0FFh*4],COpFFm16nd
|
|
ret
|
|
|
|
NEWSYM settablex16
|
|
mov dword[edi+5Ah*4],COp5Ax16
|
|
mov dword[edi+7Ah*4],COp7Ax16
|
|
mov dword[edi+84h*4],COp84x16
|
|
mov dword[edi+86h*4],COp86x16
|
|
mov dword[edi+88h*4],COp88x16
|
|
mov dword[edi+8Ch*4],COp8Cx16
|
|
mov dword[edi+8Eh*4],COp8Ex16
|
|
mov dword[edi+94h*4],COp94x16
|
|
mov dword[edi+96h*4],COp96x16
|
|
mov dword[edi+9Bh*4],COp9Bx16
|
|
mov dword[edi+0A0h*4],COpA0x16
|
|
mov dword[edi+0A2h*4],COpA2x16
|
|
mov dword[edi+0A4h*4],COpA4x16
|
|
mov dword[edi+0A6h*4],COpA6x16
|
|
mov dword[edi+0A8h*4],COpA8x16
|
|
mov dword[edi+0AAh*4],COpAAx16
|
|
mov dword[edi+0ACh*4],COpACx16
|
|
mov dword[edi+0AEh*4],COpAEx16
|
|
mov dword[edi+0B4h*4],COpB4x16
|
|
mov dword[edi+0B6h*4],COpB6x16
|
|
mov dword[edi+0BAh*4],COpBAx16
|
|
mov dword[edi+0BBh*4],COpBBx16
|
|
mov dword[edi+0BCh*4],COpBCx16
|
|
mov dword[edi+0BEh*4],COpBEx16
|
|
mov dword[edi+0C0h*4],COpC0x16
|
|
mov dword[edi+0C4h*4],COpC4x16
|
|
mov dword[edi+0C8h*4],COpC8x16
|
|
mov dword[edi+0CAh*4],COpCAx16
|
|
mov dword[edi+0CCh*4],COpCCx16
|
|
mov dword[edi+0DAh*4],COpDAx16
|
|
mov dword[edi+0E0h*4],COpE0x16
|
|
mov dword[edi+0E4h*4],COpE4x16
|
|
mov dword[edi+0E8h*4],COpE8x16
|
|
mov dword[edi+0ECh*4],COpECx16
|
|
mov dword[edi+0FAh*4],COpFAx16
|
|
ret
|
|
|
|
NEWSYM settableDm8
|
|
mov dword[edi+61h*4],COp61m8d
|
|
mov dword[edi+63h*4],COp63m8d
|
|
mov dword[edi+65h*4],COp65m8d
|
|
mov dword[edi+67h*4],COp67m8d
|
|
mov dword[edi+69h*4],COp69m8d
|
|
mov dword[edi+6Dh*4],COp6Dm8d
|
|
mov dword[edi+6Fh*4],COp6Fm8d
|
|
mov dword[edi+71h*4],COp71m8d
|
|
mov dword[edi+72h*4],COp72m8d
|
|
mov dword[edi+73h*4],COp73m8d
|
|
mov dword[edi+75h*4],COp75m8d
|
|
mov dword[edi+77h*4],COp77m8d
|
|
mov dword[edi+79h*4],COp79m8d
|
|
mov dword[edi+7Dh*4],COp7Dm8d
|
|
mov dword[edi+7Fh*4],COp7Fm8d
|
|
mov dword[edi+0E1h*4],COpE1m8d
|
|
mov dword[edi+0E3h*4],COpE3m8d
|
|
mov dword[edi+0E5h*4],COpE5m8d
|
|
mov dword[edi+0E7h*4],COpE7m8d
|
|
mov dword[edi+0E9h*4],COpE9m8d
|
|
mov dword[edi+0EDh*4],COpEDm8d
|
|
mov dword[edi+0EFh*4],COpEFm8d
|
|
mov dword[edi+0F1h*4],COpF1m8d
|
|
mov dword[edi+0F2h*4],COpF2m8d
|
|
mov dword[edi+0F3h*4],COpF3m8d
|
|
mov dword[edi+0F5h*4],COpF5m8d
|
|
mov dword[edi+0F7h*4],COpF7m8d
|
|
mov dword[edi+0F9h*4],COpF9m8d
|
|
mov dword[edi+0FDh*4],COpFDm8d
|
|
mov dword[edi+0FFh*4],COpFFm8d
|
|
ret
|
|
|
|
NEWSYM settableDm16
|
|
mov dword[edi+61h*4],COp61m16d
|
|
mov dword[edi+63h*4],COp63m16d
|
|
mov dword[edi+65h*4],COp65m16d
|
|
mov dword[edi+67h*4],COp67m16d
|
|
mov dword[edi+69h*4],COp69m16d
|
|
mov dword[edi+6Dh*4],COp6Dm16d
|
|
mov dword[edi+6Fh*4],COp6Fm16d
|
|
mov dword[edi+71h*4],COp71m16d
|
|
mov dword[edi+72h*4],COp72m16d
|
|
mov dword[edi+73h*4],COp73m16d
|
|
mov dword[edi+75h*4],COp75m16d
|
|
mov dword[edi+77h*4],COp77m16d
|
|
mov dword[edi+79h*4],COp79m16d
|
|
mov dword[edi+7Dh*4],COp7Dm16d
|
|
mov dword[edi+7Fh*4],COp7Fm16d
|
|
mov dword[edi+0E1h*4],COpE1m16d
|
|
mov dword[edi+0E3h*4],COpE3m16d
|
|
mov dword[edi+0E5h*4],COpE5m16d
|
|
mov dword[edi+0E7h*4],COpE7m16d
|
|
mov dword[edi+0E9h*4],COpE9m16d
|
|
mov dword[edi+0EDh*4],COpEDm16d
|
|
mov dword[edi+0EFh*4],COpEFm16d
|
|
mov dword[edi+0F1h*4],COpF1m16d
|
|
mov dword[edi+0F2h*4],COpF2m16d
|
|
mov dword[edi+0F3h*4],COpF3m16d
|
|
mov dword[edi+0F5h*4],COpF5m16d
|
|
mov dword[edi+0F7h*4],COpF7m16d
|
|
mov dword[edi+0F9h*4],COpF9m16d
|
|
mov dword[edi+0FDh*4],COpFDm16d
|
|
mov dword[edi+0FFh*4],COpFFm16d
|
|
ret
|
|
|
|
NEWSYM TableAsmEnd
|