mirror of
https://github.com/electronicarts/CnC_Red_Alert.git
synced 2025-12-15 23:21:40 -05:00
Initial commit of Command & Conquer Red Alert source code.
This commit is contained in:
564
IPX/PCMACRO.16
Normal file
564
IPX/PCMACRO.16
Normal file
@@ -0,0 +1,564 @@
|
||||
;
|
||||
; Command & Conquer Red Alert(tm)
|
||||
; Copyright 2025 Electronic Arts Inc.
|
||||
;
|
||||
; 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
;***************************************************************************
|
||||
;** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S **
|
||||
;***************************************************************************
|
||||
;* *
|
||||
;* Project Name : 16 bit ASM Macros *
|
||||
;* *
|
||||
;* File Name : PCMACRO.16 *
|
||||
;* *
|
||||
;* Programmer : Steve Tall *
|
||||
;* *
|
||||
;* Start Date : November 17th, 1995 *
|
||||
;* *
|
||||
;* Last Update : November 20th, 1995 [ST] *
|
||||
;* *
|
||||
;*-------------------------------------------------------------------------*
|
||||
;* Functions: *
|
||||
;* *
|
||||
;* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
|
||||
|
||||
|
||||
saveall macro
|
||||
save ax,bx,cx,dx,bp,si,di,es,ds
|
||||
endm
|
||||
|
||||
restall macro
|
||||
restore ax,bx,cx,dx,bp,si,di,es,ds
|
||||
endm
|
||||
|
||||
save macro r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14
|
||||
IFNB <r0>
|
||||
push r0
|
||||
save r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14
|
||||
ENDIF
|
||||
endm
|
||||
|
||||
restore macro r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14
|
||||
IFNB <r14>
|
||||
pop r14
|
||||
ENDIF
|
||||
IFNB <r13>
|
||||
pop r13
|
||||
ENDIF
|
||||
IFNB <r12>
|
||||
pop r12
|
||||
ENDIF
|
||||
IFNB <r11>
|
||||
pop r11
|
||||
ENDIF
|
||||
IFNB <r10>
|
||||
pop r10
|
||||
ENDIF
|
||||
IFNB <r9>
|
||||
pop r9
|
||||
ENDIF
|
||||
IFNB <r8>
|
||||
pop r8
|
||||
ENDIF
|
||||
IFNB <r7>
|
||||
pop r7
|
||||
ENDIF
|
||||
IFNB <r6>
|
||||
pop r6
|
||||
ENDIF
|
||||
IFNB <r5>
|
||||
pop r5
|
||||
ENDIF
|
||||
IFNB <r4>
|
||||
pop r4
|
||||
ENDIF
|
||||
IFNB <r3>
|
||||
pop r3
|
||||
ENDIF
|
||||
IFNB <r2>
|
||||
pop r2
|
||||
ENDIF
|
||||
IFNB <r1>
|
||||
pop r1
|
||||
ENDIF
|
||||
IFNB <r0>
|
||||
pop r0
|
||||
ENDIF
|
||||
endm
|
||||
|
||||
bhi macro lab
|
||||
ja lab
|
||||
endm
|
||||
|
||||
bls macro lab
|
||||
jbe lab
|
||||
endm
|
||||
|
||||
bcc macro lab
|
||||
jnc lab
|
||||
endm
|
||||
|
||||
bcs macro lab
|
||||
jc lab
|
||||
endm
|
||||
|
||||
bhs macro lab
|
||||
jnc lab
|
||||
endm
|
||||
|
||||
blo macro lab
|
||||
jc lab
|
||||
endm
|
||||
|
||||
bne macro lab
|
||||
jne lab
|
||||
endm
|
||||
|
||||
beq macro lab
|
||||
je lab
|
||||
endm
|
||||
|
||||
bpl macro lab
|
||||
jns lab
|
||||
endm
|
||||
|
||||
bmi macro lab
|
||||
js lab
|
||||
endm
|
||||
|
||||
bge macro lab
|
||||
jge lab
|
||||
endm
|
||||
|
||||
blt macro lab
|
||||
jl lab
|
||||
endm
|
||||
|
||||
bgt macro lab
|
||||
jg lab
|
||||
endm
|
||||
|
||||
ble macro lab
|
||||
jle lab
|
||||
endm
|
||||
|
||||
bra macro lab
|
||||
jmp lab
|
||||
endm
|
||||
|
||||
|
||||
bhis macro lab
|
||||
ja lab
|
||||
endm
|
||||
|
||||
blss macro lab
|
||||
jbe lab
|
||||
endm
|
||||
|
||||
bccs macro lab
|
||||
jnc lab
|
||||
endm
|
||||
|
||||
bcss macro lab
|
||||
jc lab
|
||||
endm
|
||||
|
||||
bnes macro lab
|
||||
jne lab
|
||||
endm
|
||||
|
||||
beqs macro lab
|
||||
je lab
|
||||
endm
|
||||
|
||||
bpls macro lab
|
||||
jns lab
|
||||
endm
|
||||
|
||||
bmis macro lab
|
||||
js lab
|
||||
endm
|
||||
|
||||
bges macro lab
|
||||
jge lab
|
||||
endm
|
||||
|
||||
blts macro lab
|
||||
jl lab
|
||||
endm
|
||||
|
||||
bgts macro lab
|
||||
jg lab
|
||||
endm
|
||||
|
||||
bles macro lab
|
||||
jle lab
|
||||
endm
|
||||
|
||||
bras macro lab
|
||||
jmp lab
|
||||
endm
|
||||
|
||||
|
||||
clear macro first
|
||||
xor first,first
|
||||
endm
|
||||
|
||||
rts macro
|
||||
ret
|
||||
endm
|
||||
|
||||
|
||||
|
||||
mov_b macro label,label2
|
||||
mov byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
mov_w macro label,label2
|
||||
mov word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
mov_d macro label,label2
|
||||
mov dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
cmp_b macro label,label2
|
||||
cmp byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
cmp_w macro label,label2
|
||||
cmp word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
cmp_d macro label,label2
|
||||
cmp dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
add_b macro label,label2
|
||||
add byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
add_w macro label,label2
|
||||
add word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
add_d macro label,label2
|
||||
add dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
sub_b macro label,label2
|
||||
sub byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
sub_w macro label,label2
|
||||
sub word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
sub_d macro label,label2
|
||||
sub dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
or_b macro label,label2
|
||||
or byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
or_w macro label,label2
|
||||
or word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
or_d macro label,label2
|
||||
or dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
xor_b macro label,label2
|
||||
xor byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
xor_w macro label,label2
|
||||
xor word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
xor_d macro label,label2
|
||||
xor dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eor_b macro label,label2
|
||||
xor byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
eor_w macro label,label2
|
||||
xor word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
eor_d macro label,label2
|
||||
xor dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
and_b macro label,label2
|
||||
and byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
and_w macro label,label2
|
||||
and word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
and_d macro label,label2
|
||||
and dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
test_b macro label,label2
|
||||
test byte ptr label,byte ptr label2
|
||||
endm
|
||||
|
||||
test_w macro label,label2
|
||||
test word ptr label,word ptr label2
|
||||
endm
|
||||
|
||||
test_d macro label,label2
|
||||
test dword ptr label,dword ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
shr_b macro label,label2
|
||||
shr byte ptr label,label2
|
||||
endm
|
||||
|
||||
shr_w macro label,label2
|
||||
shr word ptr label,label2
|
||||
endm
|
||||
|
||||
shr_d macro label,label2
|
||||
shr dword ptr label,label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
shl_b macro label,label2
|
||||
shl byte ptr label,label2
|
||||
endm
|
||||
|
||||
shl_w macro label,label2
|
||||
shl word ptr label,label2
|
||||
endm
|
||||
|
||||
shl_d macro label,label2
|
||||
shl dword ptr label,label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
sar_b macro label,label2
|
||||
sar byte ptr label,label2
|
||||
endm
|
||||
|
||||
sar_w macro label,label2
|
||||
sar word ptr label,label2
|
||||
endm
|
||||
|
||||
sar_d macro label,label2
|
||||
sar dword ptr label,label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
sal_b macro label,label2
|
||||
sal byte ptr label,label2
|
||||
endm
|
||||
|
||||
sal_w macro label,label2
|
||||
sal word ptr label,label2
|
||||
endm
|
||||
|
||||
sal_d macro label,label2
|
||||
sal dword ptr label,label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
inc_b macro label
|
||||
inc byte ptr label
|
||||
endm
|
||||
|
||||
inc_w macro label
|
||||
inc word ptr label
|
||||
endm
|
||||
|
||||
inc_d macro label
|
||||
inc dword ptr label
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
dec_b macro label
|
||||
dec byte ptr label
|
||||
endm
|
||||
|
||||
dec_w macro label
|
||||
dec word ptr label
|
||||
endm
|
||||
|
||||
dec_d macro label
|
||||
dec dword ptr label
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
movzx_b macro label,label2
|
||||
movzx label,byte ptr label2
|
||||
endm
|
||||
|
||||
|
||||
movzx_w macro label,label2
|
||||
movzx label,word ptr label2
|
||||
endm
|
||||
|
||||
|
||||
movsx_b macro label,label2
|
||||
movsx label,byte ptr label2
|
||||
endm
|
||||
|
||||
|
||||
movsx_w macro label,label2
|
||||
movsx label,word ptr label2
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
mul_b macro label
|
||||
mul byte ptr label
|
||||
endm
|
||||
|
||||
|
||||
mul_w macro label
|
||||
mul word ptr label
|
||||
endm
|
||||
|
||||
|
||||
div_b macro label
|
||||
div byte ptr label
|
||||
endm
|
||||
|
||||
|
||||
div_w macro label
|
||||
div word ptr label
|
||||
endm
|
||||
|
||||
|
||||
idiv_b macro label
|
||||
idiv byte ptr label
|
||||
endm
|
||||
|
||||
|
||||
idiv_w macro label
|
||||
idiv word ptr label
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
tst_b macro label
|
||||
cmp byte ptr label,0
|
||||
endm
|
||||
|
||||
tst_w macro label
|
||||
cmp word ptr label,0
|
||||
endm
|
||||
|
||||
tst_d macro label
|
||||
cmp dword ptr label,0
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
not_b macro label
|
||||
not byte ptr label
|
||||
endm
|
||||
|
||||
not_w macro label
|
||||
not word ptr label
|
||||
endm
|
||||
|
||||
not_d macro label
|
||||
not dword ptr label
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
neg_b macro label
|
||||
neg byte ptr label
|
||||
endm
|
||||
|
||||
neg_w macro label
|
||||
neg word ptr label
|
||||
endm
|
||||
|
||||
neg_d macro label
|
||||
neg dword ptr label
|
||||
endm
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user