		 MACRO-80

 2.1  MACRO-80.

     MACRO-80  :
	M80<CR>
 MACRO-80   *, ,
     .

 2.2  

 ,  ,    
   .   -
       -
  . ,  
   MICROSOFT,  :

         				    
  ' 		REL
 					PRN
  MACRO-80				MAC
  FORTRAN-80			FOR
  COBOL-80				COB
  				COM

 ,   ,   
,   ,  
()    .   -
 MACRO-80 MEET :
	' , = 

:
*=TEST	   TEST.MAC,  ' 
	 - TEST.REL.    

*,=TEST	   TEST.MAC. ' 
	   .   
	  .

*TEST,TEST=TEST	   TEST.MAC,  
	'  - TEST.REL,    -
	TEST.PRN

       *,  
   
  ,    , 
         :
	M80 ,=TEST<CR>
         .
 2.2.1 .

        . -
   ( A:,B:,C:  .. )   -
     : 

       	      
				LST:
				TTY:
:
*,TTY:=TEST	   TEST.MAC  
		   .' 
		 .

 2.2.2 

 -      .
   ,   .
   ,  
  .  .
  :

   		  
	/		   
			
	/H		   -
			  ( )
	/R		 '  ( -
			)
	/L		  
	/C		   
	/Z		 Z80
	/I		 8080 ( )
	/P		   /P -
			    
			256  .
	/M		   , -
			  DS
	/X		   
			""     IF
:
*=TEST/L	 TEST.MAC,  ' 
		 TEST.REL,    -  TEST.PRN

*=TEST/L/O	  ,       -
		 

*LAST=TEST/C	 TEST.MAC,  ' 		 LAST.REL     
		TEST.CRF

 2.3    MACRO-80

       132 .
MACRO-80       .
 ,    ,  -
 ,    .  
   ,      ,
  1.

 2.3.1 

       :
	[:[:]] [] [] [;]
         
.      .
   ,      
       .
     ,    
PUBLIC.:
	FOO::	RET

	PUBLIC	FOO
	FOO:	RET
    .    -
   8080 (Z80), ,  -
, .  :
	1  
	2 /
	3 
       
   DB.       
 .
     ;     -
    .   
 .COMMENT

 2.3.2 .

  MACRO-80    ,   
  6  .    
:
	-Z,0-9,$,?,@
   .   
.      ##,   -
  .
 2.3.3  .

       - .
   .RADIX    -
  -    .  
  -   A  F,     0.
        -
    ,    
    :
	NNNNB		 
	NNNNO,NNNNQ	 
	NNNND		 
	NNNNH,X'NNNN'	 
     2-    -
  16  .
    ,  0,1  2-
 ASCII,       -
. :
	DB 'A'+1 -  '' -  
	DB 'A' -  '' - 
       ,  
.   :
	''=0041H
	"AB"=41H*256+42H

 2.3.4 .

   0   ,   .
    ",   ' .
     ,   
.  
	DB "I AM ""GREAT"" TODAY"
  
	I AM "GREAT" TODAY
    ,    
.

 2.4  

 2.4.1    .

     ,   
 :
	NUL
	LOW,HIGH
	*,/,MOD,SHR,SHL
	 
	+,-
	EQ,NE,LT,LE,GT,GE	NOT
	AND
	OR,XOR
      .
,     ,
   .  ,  +,-,*,/,
     .  -
  ( HIGH,LOW )     8 
 16- .   - 
,  HIGH  LOW  ,     
   0.

 2.4.2 .

  ,      ,
     : ,
,   COMMON. , -
  ASEG,CSEG( ),  DSEG,   -
,       -
.   COMMON    -
  COMMON,    COMMON. 
        2-  COMMON, 
          COMMON.
   ,    ,  
   .
    ,    :
 1.     - 
 2. +  = 
   - , :
 1. -  = 
 2. -  = 
        -
  ,    . ,
 FOO,BAZ  ZAZ -   ,  -
 FOO+BAZ-ZAZ   R, ..  1-  
2  .       -
 : FOO+(BAS-ZAZ)   .

 2.4.3  .

     ,     
  .       
 .      -
   :
1.       .
2.  -   
3.       (  )
4.       .
 2.5     .

   8080    -
.        .
:
	MVI	A,(JMP)
	ADI	(CPI)
	MVI	B,(RNZ)
	CPI	(INX H)
	ACI	(LXI B)
	MVI	C,MOV A,B
    1 ,    .
        -
  .

 2.6 .

 2.6.1 ASEG

	ASEG
 ASEG     ,  
  .    
 ASEG ( ASEG     0), 
 ASEG    ORG.

 2.6.2 COMMON

	COMMON/< >/
       ,
   . -
   FORTRAN-80 COMMON.   .

 2.6.3 CSEG

	CSEG
       ,
   .  -
    CSEG ( CSEG   
 0),   CSEG    ORG.

 2.6.4 DB -  

	DB <>[,<>...]
	DB <>[,<>...]
        
   ,    , 
    .
      1 .  
   0  255,    ,    .
 ,   3-   ,   -
  .      
,     0.
:
	0000'	41 42		DB	'AB'
	0002'	42		DB	'AB' AND 0FFH
	0003'	41 42 43	DB	'ABC'

 2.6.5 DC -  

	DC <>
        <>  -
 ,   ,   -
  .    ,
  ,  0.    
    ,   1.
   .

 2.6.6 DS -  

	DS <>
     . <-
>    .  , -
  ,   ,   
  U,V   .

 2.6.7 DSEG

	DSEG
       ,
    . 
     DSEG(  DSEG  
  0),    DSEG   ORG.

 2.6.8 DW -  

	DW <>[,<>...]
         
 ,    ,   -
   .    2- -
  ().

 2.6.9 END

	END [<>]
  END    .  <-
>,     .   -
   L80  .   - - ,     () -
.     FORTRAN-
,     .

 2.6.10 ENTRY/PUBLIC

	ENTRY <>[,<>...]
	PUBLIC <>[,<>...]
   '  ,   ,
          -
 ,  .   
   ,   U .
       COMMON-,  -
   M .

 2.6.11 EQU

	<> EQU <>
    <>  <>.
   ,    
.    ,  , 
    .

 2.6.12 EXT/EXTRN

	EXT <>[,<>...]
	EXTRN <>[,<>...]
   ,  ,  -
, .       
 ,      .  
,       ##,  -
    .

 2.6.13 INCLUDE/$INCLUDE/MACLIB

	INCLUDE < >
	$INCLUDE < >
	MACLIB < >
       -
 ,   ,    .
       ,   
  .MAC.
        
,    .
        
 ,    INCLUDE
,  "+".
   INCLUDE  .  
   . ,   INCLUDE, -,   V     -
.

 2.6.14 NAME

	NAME (' ')
 NAME   .     
  6 . ,    
   TITLE.    -
,        .

 2.6.15 ORG -   

	ORG <>
       ,
 ,       -
,    .  ,   -
,      ,   
  ,     ,  
  .

 2.6.16 PAGE

	PAGE [<>]
 PAGE      .
  ,      
  (   ),     10  255
   50   .   -
  ^L.

 2.6.17 SET

	<> SET <>
  SET   ,   EQU,      -
,       .

 2.6.18 SUBTTL

	SUBTTL <>
     ,  
    ,   -
.    60 ,  .
      .

 2.6.19 TITLE

	TITLE <>
    ,    
 1-   .   1-  TITLE, TO  Q .    NAME, TO 
 6     .

  2.6.20 .COMMENT

        .COMMENT <><><>
      
.COMMENT    < 
         
    <>  
       
     :
.COMMENT *
  ,     
.
.
.        *
;   

  2.6.21 .PRINTX

        .PRINTX <><><>
       
.PRINTX       
         
       
        
    
.

  2.6.22 .RADIX
                     .RADIX <>
       
       
    16 :
      MVI   A,10    ;   10
      RADIX 16      ; 16  
      MVI   A,10    ;   16
<   .RADI    


  2.6.23 .Z80
     
    Z80    Z8 
    /    
.

  2.6.24 .8080
     
    8080   
      808   
  /    .

  2.6.25 .REQUEST
           .REQUEST < >[,< >...]     LINK8  
       
         
         
     .

  2.6.26  .
    
:
IF/IFT <>      ,  <> <> 0
IFE/IFF <>     ,  <> = 0
IF1                     ,   
IF2                     ,   
IFDEF <>          ,  <>  
                          
IFNDE <           <  
                           
IFB <>          ,  <>  . 
IFNB <>         ,  <>   
IFIDN <1>,<2>     ,   <1>
                          <2>
IFDIF <1>,<2>     ,   <1>
                           <2>
     <>     .
     :
      IFXX     []
        .
        .
      [ELSE
        .
        .   ]
      ENDIF
      
       
          
  IF,IFT,IFE,IF    
       
       
 IFDE  IFNDEF T      
       .

  2.6.26.1 ELSE
     
    ELSE   
         
     I  
  ELSE  ELS    
 " IF       
ELS  ELS  I     .
  2.6.26.2 ENDIF
 I     ENDI  
        
       "
  . ENDI  
  I    .


  2.6.27   .
         
 .LIS  .XLIST  .LIS    
        
    .XLIST  
    .LIST.
    "    
 .SFCOND .LFCOND  .TFCOND   
 .LFCON      " 
    .SFCON   
  "     
.TFCON     " 
      
  "   
.TFCON      " 
      " " 
 "     
  /     
     :
          /X       /X 
                   +                  -
.SFCOND                       -                  -
.LFCOND                       +                  +
.TFCOND                       -                  +
.TFCOND                       +                  -
.SFCOND                       -                  -
.TFCOND                       -                  +
.TFCOND                       +                  -
.TFCOND                       -                  +
-  , +  .
        
 .CRE  .XCREF     
        
     .CREF  
.XCRE      .
    MACRO/REPT/IRP/IRP   
 .LALL .SAL  .XALL  .LAL 
       .SAL 
       
'    .XAL    
    '   .XAL 
  .


  2.6.28   .
  .PHAS  .DEPHAS    
         
   :
0000'                    .PHAZE 100H
0100    CD  0003  FOO:   CALL BAZ
0103    C3  FF01         JMP  ZOO0106    C9        BAZ:   RET
                         .DEPHASE
0007'   C3  FFFB  ZOO:   JMP  5
    .PHAS    
        
       .  0  
  /       
 100  .


  2.7    .
  MACRO-80     
   - REPT  
 - IR     - IRPC 
     
MACRO       
 ENDM.


  2.7.1 REPT -ENDM
                      REPT <>
                       .
                       .
                      ENDM
   REP  END    
    <> <  
 16-     <  
        
 :
SET   0
REPT  10     ; DB 1 - DB 10
SET   X+1
DB    X
ENDM


  2.7.2 IRP-ENDM
       IRP < >,< >
        .
        .
       ENDM
<        
   <    
     IR  ENDM 
      < 
     < 
    <    < )  
      <  
 :IRP  X,<1,2,3,4,5,6,7,8,9,10>   ; DB 1 - DB 10
DB   X
ENDM


  2.7.3 IRPC-ENDM
     IRPC < >, /  <>/
      .
      .
     ENDM
 IRP   IRP   
       
        
     .    
  <     
        :
IRPC  X,0,1,2,3,4,5,6,7,8,9     ; DB 1 - DB 10
DB    X+1
ENDM


  2.7.4 MACRO
         <> MACRO <  >
 MACR     
       
    MACR    
       
  :
                 <> < >
 <      MACRO  
  <    < 
  <   MACRO  
    .  
       
        
  . :
FOO     MACRO   X
        IRP     Y,<X>
        DB      Y
        ENDM
        ENDM
      FOO   <1,2,3,4,5,6,7,8,9,10>
    DB 1 - DB 10.


  2.7.5 ENDM
  REPT,IRP,IRP  MACR  
  ENDM      
        " REPT/IRP/IRPC/MACRO"  NED  
 C.


  2.7.6 EXITM
 EXIT    
 REPT/IRP/IRPC/MACRO   EXIT  
       
      EXITM 
         
 .


  2.7.7 LOCAL
            LOCAL <  >
 LOCA    
 MACRO   LOCA   
         
       
       
      
      
     
     ..000  ..FFFF  
      
   ..NNNN    
LOCAL,       .


  2.7.8    .
     
       
        
       
 &       
     &. :
ERRGEN    MACRO   X
ERROR&X:  PUSH    B
          MVI     B,'&X'
          JMP     ERROR
          ENDM
        ERRGEN   A    :
ERRORA:   PUSH    B
          MVI     B,'A'
          JMP     ERROR
;      "  
      .   
     .LALL.
               .    <; 
/.
NU  NU      
""     0     
  NUL     
.
        
         
       
    %   
       DS  
 ,   .
:
MACLAB   MACRO    Y
ERR&Y:   DB       'ERROR &Y',0
         ENDM
MAKERR   MACRO    X
LB       SET      0
         REPT     X
LB       SET      LB+1
         MACLAB   %LB
         ENDM
         ENDM
  MAKERR 3    :
ERR1:    DB      'ERROR 1',0
ERR2:    DB      'ERROR 2',0
ERR3:    DB      'ERROR 3',0


  2.8    MACRO80.
 MACRO8      
        
,       .
                   MACRO80.
          
E       
  .RADI 1.
        ELS  IF 
ENDIF  IF,  ELSE   IF.
  D    ,    .
      ./    
 /
        .
  N    ,   . : 8Q
          ENDM 
LOCAL  , SET,EQU  MACRO    ..
            EQ 
.
                
 MO A,B,
         
        
COMMON.
  U   .
          
      (.RADIX,.PAGE) 
 ,   .

                 .
'NO END STATEMENT ENCOUNTERED ON INPUT FILE'
  END        
     
,   IRP/IRPC/REPT.
'UNTERMINATED CONDITIONAL'
  .
'UNTERMINATED REPT/IRP/IRPC/MACRO'
 REPT/IRP/IRPC/MACRO.
[XX] [NO] FATAL ERROR(S)
    .


  2.9   .
        
          
   #     
      PUBLIC    
  I    
   :
U     
     COMMON    COMMO   
     .
*     
SP    
'      
"      
!      COMMON



4(DYZZ)M]	D4JDD4DJ_%DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDRM	_