Files
ZSNES/zsnes/src/cpu/table.asm

1198 lines
37 KiB
NASM

;Copyright (C) 1997-2005 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach )
;
;http://www.zsnes.com
;http://sourceforge.net/projects/zsnes
;
;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
%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