BY EQU <1 ptr > WO EQU WORD PTR LO EQU DWORD PTR QW EQU QWORD PTR TB EQU TBYTE PTR clr MACRO p IFIDN

, clr AX MOV DS,AX ELSEIFIDN

, clr AX MOV ES,AX ELSEIFE (.TYPE p) AND 10h MOV p,0 ELSE xor p,p ENDIF ENDM tst MACRO p or p,p ENDM jAXz MACRO l tst AX jz l ENDM jAXnz MACRO l tst AX jnz l ENDM jALz MACRO l tst AL jz l ENDM jALnz MACRO l tst AL jnz l ENDM jAHz MACRO l tst AH jz l ENDM jAHnz MACRO l tst AH jnz l ENDM jBXz MACRO l tst BX jz l ENDM jBXnz MACRO l tst BX jnz l ENDM jBLz MACRO l tst BL jz l ENDM jBLnz MACRO l tst BL jnz l ENDM jBHz MACRO l tst BH jz l ENDM jBHnz MACRO l tst BH jnz l ENDM jCLnz MACRO l tst CL jnz l ENDM jCHnz MACRO l tst CH jnz l ENDM jCXnz MACRO l tst CX jnz l ENDM jDLz MACRO l tst DL jz l ENDM jDLnz MACRO l tst DL jnz l ENDM jDHz MACRO l tst DH jz l ENDM jDHnz MACRO l tst DH jnz l ENDM jDXz MACRO l tst DX jz l ENDM jDXnz MACRO l tst DX jnz l ENDM jBPz MACRO l tst BP jz l ENDM jSIz MACRO l tst SI jz l ENDM jSInz MACRO l tst SI jnz l ENDM jDIz MACRO l tst DI jz l ENDM shl MACRO r,c IFIDN , SHL r,CL ELSE REPT c SHL r,1 ENDM ENDIF ENDM rol MACRO r,c IFIDN , ROL r,CL ELSE REPT ROL r,1 ENDM ENDIF ENDM ror MACRO r,c IFIDN , ROR r,CL ELSE REPT c ROR r,1 ENDM ENDIF ENDM shr MACRO r,c IFIDN , SHR r,CL ELSE REPT c SHR r,1 ENDM ENDIF ENDM outbyte MACRO p,b mov AL,b mov DX.p out DX,AL ENDM mov MACRO r1,r2 pos1 INSTR , pos2 INSTR , IF pos1 IF pos2 push r2 pop r1 ELSE MOV r1,r2 ENDIF ELSE MOV r1,r2 ENDIF ENDM loopAH MACRO l dec AH jnz l ENDM loopDX MACRO l dec DX jnz l ENDM loopBP MACRO l dec BP jnz l ENDM loopBL MACRO l dec BL jnz l ENDM loopCH MACRO l dec CH jnz l ENDM loopDI MACRO l dec DI jnz l ENDM loopCL MACRO l dec CL jnz l ENDM loopDL MACRO l dec DL jnz l ENDM loopDH MACRO l dec DH jnz l ENDM movlp MACRO d,s,o Mov WO d+2,s Mov WO d,o ENDM setalc MACRO db 0D6h ENDM EOI MACRO mov AL,20h out 20h,AL ENDM