Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 575 → Rev 576

/programs/media/ac97snd/ac97snd/struct.inc
0,0 → 1,220
;*****************************************************************************
;*
;* Open Watcom Project
;*
;* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
;*
;* ========================================================================
;*
;* This file contains Original Code and/or Modifications of Original
;* Code as defined in and that are subject to the Sybase Open Watcom
;* Public License version 1.0 (the 'License'). You may not use this file
;* except in compliance with the License. BY USING THIS FILE YOU AGREE TO
;* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
;* provided with the Original Code and Modifications, and is also
;* available at www.sybase.com/developer/opensource.
;*
;* The Original Code and all software distributed under the License are
;* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
;* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
;* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
;* NON-INFRINGEMENT. Please see the License for the specific language
;* governing rights and limitations under the License.
;*
;* ========================================================================
;*
;* Description: Structured macros for MASM/WASM.
;*
;*****************************************************************************
 
 
__label = 0
__depth = 0
__inner_loop = 0
 
_guess macro name
__depth = __depth + 1
__label = __label + 1
_set __astk,%__depth,__label,<>
__label = __label + 1
_set __estk,%__depth,__label,<>
ifnb <name>
name = __label
endif
endm
 
_quif macro cc,name
ifnb <name>
_set __elbl,,name,<>
_j cc,_l,%__elbl
else
_set __albl,,__astk,%__depth
_j cc,_l,%__albl
endif
endm
 
_quit macro name
_quif ,name
endm
 
_admit macro
_set __albl,,__astk,%__depth
__label = __label + 1
_set __astk,%__depth,__label,<>
_set __elbl,,__estk,%__depth
_j ,_l,%__elbl
_label _l,%__albl
endm
 
_endguess macro
_set __albl,,__astk,%__depth
_label _l,%__albl
_set __elbl,,__estk,%__depth
_label _l,%__elbl
__depth = __depth - 1
endm
 
_loop macro name
_guess name
_set __albl,,__astk,%__depth
_label _m,%__albl
_set __elbl,,__estk,%__depth
_label _m,%__elbl
_set __llbl,%__depth,%__inner_loop,<>
_set __inner_loop,,%__depth,<>
endm
 
_loopif macro cc,name
ifnb <name>
_set __elbl,,name,<>
_j cc,_m,%__elbl
else
_set __albl,,__astk,%__inner_loop
_j cc,_m,%__albl
endif
endm
 
_until macro cc
_set __albl,,__astk,%__depth
_jn cc,_m,%__albl
_set __inner_loop,,__llbl,%__depth
_endguess
endm
 
_endloop macro
_set __albl,,__astk,%__depth
_j ,_m,%__albl
_set __inner_loop,,__llbl,%__depth
_endguess
endm
 
_if macro cc
_guess
_set __albl,,__astk,%__depth
_jn cc,_l,%__albl
endm
 
_else macro
_admit
endm
 
_endif macro
_endguess
endm
 
_set macro base1,ext1,base2,ext2
base1&ext1 = base2&ext2
endm
 
_label macro base,ext
base&ext:
endm
 
_j macro cc,base,ext
j&cc base&ext
endm
 
_jn macro cc,base,ext
jn&cc base&ext
endm
 
jnna macro label
ja label
endm
 
jnnae macro label
jae label
endm
 
jnnb macro label
jb label
endm
 
jnnbe macro label
jbe label
endm
 
jnnc macro label
jc label
endm
 
jnne macro label
je label
endm
 
jnng macro label
jg label
endm
 
jnnge macro label
jge label
endm
 
jnnl macro label
jl label
endm
 
jnnle macro label
jle label
endm
 
jnno macro label
jo label
endm
 
jnnp macro label
jp label
endm
 
jnns macro label
js label
endm
 
jnnz macro label
jz label
endm
 
jnpe macro label
jpo label
endm
 
jnpo macro label
jpe label
endm
 
j macro label
jmp label
endm
 
jn macro label
nop
endm
 
_shl macro reg,count
add reg,reg
endm
 
_rcl macro reg,count
adc reg,reg
endm