@TITLE = 1. 

  "UniCROSS - -" -  -, 
        
 601 (   6800)      
MS DOS  PC DOS     IBM PC XT/AT  
  .      256   
        .



      "" 
    UniDOS    .  
          
"UniDOS -  "  "UniBIOS -  ".



      
     ,     
    601,    
        MS DOS 
(PC DOS)  UniDOS.      .



         
      <F1M>READ_ME.CR,<F255D>  
     .



- UniCROSS      
:



<197>    (<F1M>.PGM<F255D>);

<197>    (<F1M>.CMD<F255D>);

<197>    (<F1M>.OBJ<F255D>).



       UniLINK 
  .



 ,         
   .       
   .



  - UniCROSS   :



<F1M><<.....>><F255D> -   -    
. , <<_>> ,     
   ;



<F1M>[.....]<F255D> -  ;



<F1M>{.....}<F255D> - ,      
      - ,  
   .



 ""    " " 
 "  ".    .

@TITLE = 2.  -

-     .     
:



@LEFT = 		<F65M>A:\>> UNICROSS <<source>> <<listing>> <<object>><F255D>



@LEFT = :	

@P2 = <<source>> - 

@P2 =   () .     , 
    <F1M> .ASM<F255D>;

@LEFT = 	<<listing>> - 

@P2 =    .     , 
    <F1M> .LST<F255D>;

@LEFT = 	<<object>> - 

@P2 =   .    ,    
 <F1M>.PGM<F255D>.



 <<listing>>  <<object>>    ";".   
       ,   
       .



@LEFT = 	:	<F1M>Unicross try_1.txt try_1.pro try_1<F255D>



@LEFT = <F1M>			unicross try_1;<F255D>



-       :



@EXAMPLE = 			unicross



         
 :



@EXAMPLE = 		Source filename [.ASM]:

@EXAMPLE = 		Listing filename [.LST]:

@EXAMPLE = 		Object filename [.PGM]:



         ";",  
       .

@TITLE = 3.   

        255 .  
       .



    4 :



@LEFT = 		<F65M>[] <<>> {} []<F255D>



        . 
      .    
        
 .



   ,       ";", 
      .



       , 
      .

@SUBTITLE 1 =  

     ,   ";",   
   -  .   .  
 ,    .



      ,  
     .



         
   .     
   .     
     .  , 
      .



,      $100,   



@EXAMPLE = 	loop		aba

@EXAMPLE = 	abcd



@BODY CONT =  loop    $100,   abcd 
-  $101.



          
,    .

@PAGE BREAK = 

:



@EXAMPLE = 			bne	loop



        
 .



       
   .        
.       
 .



       ,   
  ("" )   .



    ,    
  (   ,   ).

@SUBTITLE 1 =  

        .   
 ,         
   .



        
  .



     ,    
  .    -  .



   ,      
   601    .



       INT xx   
    UniDOS INT xx (xx -  
  ).   INT xx    "UniBIOS 
-  ".

@SUBTITLE 1 =  

    .   
  .



  ,      
 . ,   ADD   ADDA  
ADDB    ,     .

     : ; ;  
,  ,  .    
 .



        
     (   
  ).      
 .      .



@LEFT = 	 1	<197>  "("  ")";



@LEFT = 	 2	<197>   - "!";

@LEFT = 			<197>   - "-";



@LEFT = 	 3	<197>  - "*";

@LEFT = 			<197>  - "/";

@LEFT = 			<197>    - "%";

@LEFT = 			<197>   - "&";

@LEFT = 			<197>    - "|";

@LEFT = 			<197>    - "^";



@LEFT = 	 4	<197>  - "+";

@LEFT = 			<197>  - "-".



         
,    ,     
 PGM  OBJ:



<197>          
 .        ;



<197>   EXTERN   ,     
   .



        "*", 
     . :



@EXAMPLE = 			JMP	* + 3



     :



<197>  

@LEFT = 			: 123 234 456



<197>   -   "$"

@LEFT = 			: $AB $12 $F2

@PAGE BREAK = 

<197>   -   "%"

@LEFT = 			: %11 %01 %0001



<197>   -        
 ,  ASCII- .

@LEFT = 			: '' '' ''



      .



       RADIX.

@SUBTITLE 1 =  

      ";".    
   .         
 .



,       , 
  .      
.

@TITLE = 4.    601

  601  7  ,  
  :



@TABLE HEAD = 				<_><_>	<_><_><_><_>

@LEFT = 

@LEFT = 		Inherent				1	<F1M> CLC<F255D>

@LEFT = 	Accumulator				1	<F1M> CLRA<F255D>

@LEFT = 	Immediate	<_>#  <_>2(3)	<F1M> LDAB   #$FF<F255D>

@LEFT = 		Direct		<_>	2	<F1M> LDAB   0<F255D>

@LEFT = 	Extended	<_>	3	<F1M> STAA   $FFFF<F255D>

@LEFT = 		Indexed 	<_>,	2	<F1M> LDX     0,X<F255D>

@LEFT = 					<_>,

@LEFT = 	Relative	<_>	2	<F1M> BRA<F255D>    .



        
. :



@EXAMPLE = 			asla

@EXAMPLE = 			clc

@EXAMPLE = 			comb

@EXAMPLE = 			decb



     :



@LEFT = 		<F65M><<_>> #<<>><F255D>



@LEFT = 		<F65M><<_>> #/<<>><F255D>



     #<<>>,    
  ,      16- 
.



     #/<<>>,    
  .



:



@EXAMPLE = 			ldaa	#$FF

@EXAMPLE = 			adcb	#1

@EXAMPLE = 			ldx	#$FFFF

@EXAMPLE = 			adda	#/end_code - start_code

@PAGE BREAK = 

     :



@LEFT = 		<F65M><<_>> <<>><F255D>



      [0, 255].   
     -    [$00, 
$FF]. :



@EXAMPLE = 			ldab	0

@EXAMPLE = 			stab	$20

@EXAMPLE = 			stx	$FE



      ,   
          
. :



@EXAMPLE = 			ldaa	$2000

@EXAMPLE = 			stx	$1FFE



     :



@LEFT = 		<F65M><<_>> X,<<>><F255D>

@LEFT = 		<F65M><<_>> <<>>,<F255D>

@LEFT = 		<F65M><<_>> X<F255D>



   ,     0.



:



@EXAMPLE = 			ldaa	X

@EXAMPLE = 			adda	X,1

@EXAMPLE = 			ldx	X,field1

@EXAMPLE = 			ldab	$33,X



     :



@LEFT = 		<F65M><<_>> <<>><F255D>



         
,  JSR  JMP.      
      .   
    [-129, +125].

:



@EXAMPLE = 			bra	exit

@EXAMPLE = 			bne	not_equ

@TITLE = 5.  -

@SUBTITLE = 5.1. EQU

@LEFT = :	<F65M><<>> EQU <<>><F255D>

@LEFT = 			<F65M><<>> = <<>><F255D>



@P1 = : 

@P2 =       .



<<>>     .  <<>>    
  (  EXTERN). :



@EXAMPLE = 	code_start	=	$100

@EXAMPLE = 	lo_byte 		EQU	hi_byte + 1

@SUBTITLE = 5.2. DB (define byte)

@LEFT = :	<F65M>DB <<>> [,<<>>, ...]<F255D>



@P1 = : 

@P2 =        ,    
   .     
 255,      .



<<>>       , 
    .



:



@EXAMPLE = 	num_base	DB	16

@EXAMPLE = 	hex_chars	DB	'0123456789ABCDEF'

@EXAMPLE = 	string	DB	'This is a string.', 13, 10, 0

@EXAMPLE = 	hi_bytes	DB	first / 256, second / 256

@EXAMPLE = 	lo_bytes	DB	first, second

@PAGE BREAK = 

@SUBTITLE = 5.3. DW (define word)

@LEFT = :	<F65M>DW <<  >><F255D>



@P1 = : 

@P2 =       ( , 
 ),       .



:



@EXAMPLE = 	words	DW	$C000, $D000, $E000, $F000

@EXAMPLE = 			DW	5*4096 + 3*16 +1

@EXAMPLE = 			DW	first_table, second_table, 0

@SUBTITLE = 5.4. DS (define space)

@LEFT = :	<F65M>DS <<_1>> [,<<_2>>]<F255D>



@P1 = : 

@P2 =      <<_1>>  , 
  <<_2>>.



     .   _2 
 255,     .  _2 
 ,   .



:



@EXAMPLE = 	buffer	DS	$200

@EXAMPLE = 			DS	$10, 32

@SUBTITLE = 5.5. SECTION

@LEFT = :	<F65M>SECTION []<F255D>



@P1 = : 

@P2 =   ,   ,  
 .     .  
    ENDS.    
  .

@PAGE BREAK = 

@SUBTITLE = 5.6. ENDS

@LEFT = :	<F65M>ENDS<F255D>



@P1 = : 

@P2 =    ,     
SECTION.       , 
     SECTION.   
   .



  :



@EXAMPLE = 			SECTION 0

@EXAMPLE = 			DS	$80

@EXAMPLE = 	byte_1	DS	1

@EXAMPLE = 	byte_2	DS	1

@EXAMPLE = 	byte_3	DS	1

@EXAMPLE = 	word_1	DS	2

@EXAMPLE = 	word_2	DS	2

@EXAMPLE = 	word_3	DS	2

@EXAMPLE = 	ENDS

@SUBTITLE = 5.7. PROC (procedure)

@LEFT = :	<F65M><<>> PROC<F255D>



@P1 = : 

@P2 =   .    
ENDP.



        , 
 .



    ,     
GLOBAL,  .     
   ,     "" .

@SUBTITLE = 5.8. ENDP (end of procedure)

@LEFT = :	<F65M>ENDP<F255D>



@P1 = : 

@P2 =   .    
PROC.

@PAGE BREAK = 

@SUBTITLE = 5.9. GLOBAL

@LEFT = :	<F65M>GLOBAL << >><F255D>



@P1 = : 

@P2 =        .



 GLOBAL      PROC.



 :



@EXAMPLE = 	print	PROC

@EXAMPLE = 			GLOBAL print_1, print_2

@EXAMPLE = 			.

@EXAMPLE = 			.

@EXAMPLE = 	print_1 	ldx 	#message_1

@EXAMPLE = 			.

@EXAMPLE = 	print_2 	ldx 	#message_2

@EXAMPLE = 			.

@EXAMPLE = 			.

@EXAMPLE = 			ENDP

@SUBTITLE = 5.10. ORG

@LEFT = :	<F65M>ORG <<>><F255D>



@P1 = : 

@P2 =    .



          
  .       
.

@SUBTITLE = 5.11. EXTERN

@LEFT = :	<F65M>EXTERN << >><F255D>



@P1 = : 

@P2 =      .

@SUBTITLE = 5.11. PUBLIC

@LEFT = :	<F65M>PUBLIC << >><F255D>



@P1 = : 

@P2 =    ,     
   .

@SUBTITLE = 5.12. ERROR

@LEFT = :	<F65M>ERROR <<>><F255D>



@P1 = : 

@P2 =   ""  ,    
  .



:



@EXAMPLE = 		ERROR	* % $100	;<F65M> ,   <F255D>

@EXAMPLE = 						;<F65M>     

@EXAMPLE = 						;<F65M>    

@EXAMPLE = 						; <F65M><F255D>

@SUBTITLE = 5.13. RADIX

@LEFT = :	<F65M>RADIX <<>><F255D>



@P1 = : 

@P2 =        ,  
 .     <R>
 [2, 16].



:



@EXAMPLE = 			ldaa		#$3F

@EXAMPLE = 			RADIX	16

@EXAMPLE = 			ldaa		#3F

@SUBTITLE = 5.14. INCLUDE

@LEFT = :	<F65M>INCLUDE <<_>><F255D>



@P1 = : 

@P2 =         <<_>>.



 <<_>>       
   / ,     . 
   ,   ,  INCLUDE. 
  8   .



:



@EXAMPLE = 			INCLUDE 	b:\dir_1\memory.inc

@PAGE BREAK = 

@SUBTITLE = 5.15. LIST

@LEFT = :	<F65M>LIST <<>><F255D>



@P1 = : 

@P2 = /    -. 
   : ON -  ( ); OFF 
- .



:



@EXAMPLE = 			LIST ON

@EXAMPLE = 			.

@EXAMPLE = 			.

@EXAMPLE = 			LIST OFF

@SUBTITLE = 5.16. TRUNC

@LEFT = :	<F65M>TRUNC <<>><F255D>



@P1 = : 

@P2 = /      
    DB, DW  DS.    : 
ON -  ( ); OFF - .



,    ,  
          
.

@SUBTITLE = 5.17. END

@LEFT = :	<F65M>END []<F255D>



@P1 = : 

@P2 =      ,  
       
(.PGM  .OBJ).    END  .  
.



  ,   ,  
 .



:



@EXAMPLE = 		END	start	; start - <F65M>   <F255D>

@PAGE BREAK = 

@SUBTITLE = 5.18. CHKSUM (check sum)

@LEFT = :	<F65M>CHKSUM<F255D>



@P1 = : 

@P2 =      (<F1M>.CMD<F255D>) 
 ,      .  
     .



      , 
     (ROM)  .



@TITLE = 6.  

     :



@LEFT = <_><F65M><<_>>(<< >>): ERROR: << >><F255D>



          
   ,     .



<B><+>6.1. Branch out of range.<M> <197>   



<B><+>6.2. Can't open include file.<M> <197>     
.

<B><+>6.3. Can't open listing file.<M> <197>    .



<B><+>6.4. Can't open source file.<M> <197>    
. -        .



<B><+>6.5. Digit out of radix.<M> <197>     .



<B><+>6.6. ENDS without SECTION.<M> <197>   ENDS 
  SECTION.



<B><+>6.7. Error writing object file.<M> <197>     
  -       
.



<B><+>6.8. Expected close bracket.<M> <197>   
.



<B><+>6.9. Expected close quote.<M> <197>    
 .



<B>6.10. Expected constant expression.<M> <197>    
  .



<B>6.11. Expected expression.<M> <197>     
 .



<B>6.12. EXTERN not allowed in not relative mode.<M> <197>  
EXTERN      .



<B>6.13. General syntax error.<M> <197>    
-          
.



<B>6.14. Illegal address mode.<M> <197>   .



<B>6.15. Illegal character in text.<M> <197>      
.



<B>6.16. Illegal expression.<M> <197>   
.

<B>6.17. Illegal name.<M> <197>   -   
   .



<B>6.18. Illegal size of operand.<M> <197>    
-        255.



<B>6.19. Improper use of CHECKSUM directive.<M> <197>  
  CHSUM. -  CHKSUM    
       .



<B>6.20. Include file name expected.<M> <197>     
 .



<B>6.21. Include files too nested.<M> <197>    
   ( 8 ).



<B>6.22. Integer overflow.<M> <197>   ( 
 65535).



<B>6.23. Missing ENDS.<M> <197>   ENDS.



<B>6.24. ORG inside SECTION.<M> <197>   ORG  
 .



<B>6.25. ORG not allowed in relative mode.<M> <197>    
 ORG      .



<B>6.26. Output buffer overflow.<M> <197>    
 -   ()      32.



<B>6.27. Proc nesting error.<M> <197>   .



<B>6.28. PUBLIC not allowed in not relative mode.<M> <197>  
PUBLIC      .



<B>6.29. Redefinition of symbol <<>>.<M> <197>  
 <<>>.



<B>6.30. There is no memory available.<M> <197>    
() .



<B>6.31. Undefined identifier <<>>.<M> <197>   
<<>>.



<B>6.32. Unexpected directive END.<M> <197>   
 END. -    END    
.

@PAGE BREAK = 

<B>6.33. User error.<M> <197>   -   
    ERROR,     
 .

@TITLE =   -   

      :

@LEFT = 		<F65M><<>> <<>> <<>>	<<  >><F255D>

:



@LEFT = <F1M>1  0000 						org	$100<F255D>

@LEFT = <F1M>2  0100  CE 01 05		   			ldx	#message<F255D>

@LEFT = <F1M>3  0103  3F 23 		   			int	$23<F255D>

@LEFT = <F1M>4  0105<F255D>

@LEFT = <F1M>5  0105  48 65 6C 6C	 message 		db	 'Hello world !', 0<F255D>

@LEFT = <F1M>6  0113			   			end <F255D>

