CHAR$CR	=	015
CHAR$LF	=	012

TT$RCSR	=	177560
TT$RBUF	=	177562
TT$XCSR	=	177564
TT$XBUF	=	177566

ML$CSR =	170002	;      

ED$ADL =	175000	;     -  
ED$ADH =	175002	;     -  
ED$DAT =	175004	;    

BIG$ROM =	173776	;       

ROM$BASE =	173000	;     

MLDESC =	10000	;      

MLCMD_INIT =	16	;      
MLCMD_READ =	102	;  
MLCMD_BSR =	112	;     

ML$B_EOF =	40000	;       


;      .
;      (    010000).
;      
;        .
;          000200.
;
; :	INIT+	BSR+		READ+
;	007776/		   ?		-2(R3)	  40000  40010
;	010000/		177777		174000			R3
;	010002/				10006
;	010004/	16	112		102			4(R3)
;	010006/							     ?
;

;-------------------------------------------------------------------------------

				.TITLE	BOOTROM		KP556PT4A ROM module

				.ENABL LSB
				.ASECT
				.=ROM$BASE

173000	005037 177560	START:	CLR	@#TT$RCSR	;005037 177570	+
173004	012706 007776		MOV	#7776,SP	;012716 007776	+
173010	004067 000652	1$:	JSR	R0,PRTSTR	;004077 173666	+

173014	005015 026502 060572	.ASCII	<15><12>/B-zagruzka/	; B-
	071147 075165 060553	.ASCII	<15><12>/R-perezapusk/	; R-
	005015 026522 062560	.ASCII	<15><12>/T-testy/	; T-
	062562 060572 072560	.ASCIZ	<15><12>/?/		; ?
	065563 005015 026524
	062564 072163 006571
	037412 000000

				.EVEN				;

173064	004767 000624		CALL	INPSTR		;004777 000634
173070	001747			BEQ	1$		;001757
173072	120027 000102		CMPB	R0,#'B		;120037 000112
173076	001410			BEQ	BOOT		;
173100	120027 000122		CMPB	R0,#'R		;120037 000132
173104	001532			BEQ	RESTART		;
173106	120027 000124		CMPB	R0,#'T		;120037 000134
173112	001336			BNE	1$		;
173114	000167 000340		JMP	TESTS		;000177 000350

;...............................................................................

; ??? 224   TM.      234.  .
;        -
;  RTI,   WAIT    (.  MLSTA).
173120	012737 000226 000224	BOOT:	MOV	#226,@#224	;012737 000236 000234 ???    234/236
173126	012737 000002 000226		MOV	#2,@#226	;012737 000012 000236   2 =  RTI

173134	012705 175000		MOV	#ED$ADL,R5	;012715 175010     .
173140	012704 170002		MOV	#ML$CSR,R4	;012714 170012  CSR  . .
173144	012703 010000		MOV	#MLDESC,R3	;012713 010010 ???  - 010010 ? (  ).          ?
173150	004767 000406	10$	CALL	MLRES		;004777 000416	 (?) 
173154	004767 000352		CALL	MLRDY		;004777 000352	  .
173160	101017			BHI	2$		;  
173162	004077 000500		JSR	R0,PRTSTR	;004077 000510

173166	006417 073412 066153	.ASCIZ	<7><15><12>/wkl`~i nml0<wk>/	;  0<>
	077140 020151 066556
	030154 073474 037153
	000010
				.EVEN					;

173212	004767 000476		CALL	INPSTR		;004777 000476
173216	000754			BR	10$		;

173220	005025		2$:	CLR	(R5)+		;005035		     .? ( 000000)
173222	005025			CLR	(R5)+		;005035		  .?
173224	012701 000010		MOV	#^D8,R1		;012711 000010	;   8 
173230	004767 000254	5$:	CALL	MLSTA		;004777 000254
173234	101053			BHI	3$		;101053		;  !     
173236	001453			BEQ	TAPEBOOT	;		;    ?    .
173240	005301			DEC	R1		;005311		;   ?
173242	001014			BNE	6$		;		; 
173244	004067 000416		JSR	R0,PRTSTR	;004077 000416

173250	006417 067412 020173	.ASCIZ	<7><CR><LF>/o{ ~teniq ml/	;   
	072176 067145 070551
	066440 000154
				.EVEN					;

173270	000000		12$:	HALT			;000010
173272	000776			BR	12$		;

173274	012713 177777	6$:	MOV	#-1,(R3)	;     :     
173300	012763 000112 000004	MOV	#MLCMD_BSR,4(R3) ;012763 000112 000014      (  ?)
173306	004767 000214		CALL	MLSTA1		;004777 000214	     
173312	101346			BHI	5$		;101356		     .
173314	004067 000346		JSR	R0,PRTSTR	;004077 000356

173320	006417 067412 020173	.ASCIZ	<7><15><12>/o{ wozwrata/	;  
	067567 073572 060562
	060564 000000
				.EVEN					;

173340	000000		4$:	HALT			;000010
173342	000776			BR	4$		;

173344	012700 010006	3$:	MOV	#MLDESC+6,R0	;012710 010016	;      .
173350	012701 002000		MOV	#^D1024,R1	;012711 002010	; 1024  = 2 
173354	012015		11$:	MOV	(R0)+,@R5	;       ?
173356	077102			SOB	R1,11$		;077112
173360	012701 000010		MOV	#^D8,R1		;012711 000010	 .   ,
173364	000721			BR	5$		;000731		    .

;   -  .  JMP @#0 - 
;    ...
;
173366	004767 000170	TAPEBOOT:	CALL	MLRES		;004777 000170	;    
173372	005000		RESTART:	CLR	R0		;005010        0
173374	012701 000400		MOV	#^D256,R1		;012711 000410	;  256  (512 ,  )
173400	012705 175000		MOV	#ED$ADL,R5	;012715 175010	    
173404	005025			CLR	(R5)+		;005035   (  ?)
173406	005025			CLR	(R5)+		;005035    .?
173410	011520		7$:	MOV	@R5,(R0)+	;011530	   175004 (  .?)
173412	077102			SOB	R1,7$		;077112
173414	005000			CLR	R0		;005010   
173416	022710 000240		CMP	#240,@R0	;022710 000250	;      000240 (NOP)
173422	001002			BNE	8$		;001012
173424	000137 000000		JMP	@#0		;000137 000010	;  .

173430	004067 000232	8$:	JSR	R0,PRTSTR	;004077 000232

173434	006417 067412 020173	.ASCIZ	<7><15><12>/o{ zagruzki/	;  
	060572 071147 075165
	064553 000000
				.EVEN					;

173454	000000		9$:	HALT			;000010
173456	000776			BR	9$		;

;-------------------------------------------------------------------------------

;    . -  -  -
;          .
;     173656  173646 (    -  
;        ).
;   - 173656.
;
173460	010700		TESTS:	MOV	PC,R0		;010710
173462	062700 000174		ADD	#RDESC2-.,R0	;062710 000174    174  .
173466	012037 173776		MOV	(R0)+,@#BIG$ROM	;     
173472	012001			MOV	(R0)+,R1	;012011	 
173474	012002			MOV	(R0)+,R2	;012012	 
173476	013722 173776	1$:	MOV	@#BIG$ROM,(R2)+	;013732 173776 ;  
173502	077103			SOB	R1,1$		;077113
173504	011000			MOV	@R0,R0		;011010   
173506	000110			JMP	@R0		;    

;-------------------------------------------------------------------------------

; ???  173510  173644  

;  - I/O.
;
;  ,     .
;
173510	010300		MLSTA:	MOV	R3,R0		;010310   ?
173512	012720 174000		MOV	#^C^D2048,(R0)+	;012730 174010    (2048  .)	r0=10000
173516	012720 010006		MOV	#MLDESC+6,(R0)+	;012730 010016    	r0=10002
173522	012710 000102		MOV	#MLCMD_READ,@R0	;012710 000112  				r0=10004
173526	010314		MLSTA1:	MOV	R3,(R4)		;    ->  .	r3=10000
173530	000001			WAIT			;000011   
;							;     MLRDY
;...............................................................................
;
;    .  :
;    - ,   ,    ,   .
; ...      .     
; " "...
;
;    ?
; R3 -     , /   .
; R4 -    
173532	005714			MLRDY:	TST	@R4		;  15  ML$CSR -  ?
173534	100401				BMI	1$		;100411	    1$
173536	000207				RETURN			;000217  . Z=0 (-  ), C=0
173540	032763 040000 177776	1$:	BIT	#ML$B_EOF,-2(R3) ;032773 040010 177776   -  ( ?)  
173546	001402				BEQ	2$		;001412
173550	000264				SEZ			;000274  14   = 1, . Z=1, C=0	-   
173552	000402				BR	3$		;000412
173554	000244			2$:	CLZ			;000254
173556	000261				SEC			;000271  14   = 1, . Z=0, C=1 -  .
173560	000207			3$:	RETURN			;000217

;       .
; R3 -     ,        .
; R4 -   ,         .
173562	012763 000016 000004	MLRES:	MOV	#MLCMD_INIT,4(R3)	;012773 000016 000014  . .
173570	010314				MOV	R3,@R4		;     ?
173572	105714			1$:	TSTB	@R4		;   ?
173574	100376				BPL	1$		;  7 -  ( 200 - )
173576	000207				RETURN			;000217


;   .

173600	000010			.WORD	10
173602	000010			.WORD	10
173604	000010			.WORD	10
173606	000010			.WORD	10
173610	007577			.WORD	7577
173612	000010			.WORD	10
173614	000210			.WORD	210

173616	007577			.WORD	7577
173620	007570			.WORD	7570
173622	000010			.WORD	10
173624	000210			.WORD	210

173626	017377			.WORD	17377
173630  007217			.WORD	7217
173632  000010			.WORD	10
173634	000210			.WORD	210

173636	026576			.WORD	26576
173640  003773			.WORD	3773
173642  000010			.WORD	10
173644	000210			.WORD	210


;         :
;	-    ( , ..    )
;	-  
;	-    
;	-        
;
;  RDESC1  - , ,  ,  Trap 4.
;
;  RDESC2   ,     .   :
;	1 -   
;	2 -   
;	3 -   
;	4 -  
;	5 -   
;
173646	032561		RDESC1:	.WORD	32561		;032571 ???  32561,  * 2 = 65342 -   .
173650	000333			.WORD	333		; 333  ,   65342  66230.
173652	001000			.WORD	1000		;001010   1000.
173654	001000			.WORD	1000		;001010

173656	033114		RDESC2:	.WORD	33114		; * 2 = 66230 -  . 33114  .
173660	000664			.WORD	664		;000674 ???  664 ( 66230  70000)
173662	100000			.WORD	100000		;100010   100000.
173664	100000			.WORD	100000		;100010
;
;-------------------------------------------------------------------------------
;
;  ASCIZ       "JSR R0,PRTSTR",
;  ,      .
;
173666	105737 177564	PRTSTR:	TSTB	@#TT$XCSR	;105737 177574
173672	100375			BPL	PRTSTR		;
173674	112037 177566		MOVB	(R0)+,@#TT$XBUF	;112037 177576
173700	105710			TSTB	@R0		;
173702	001371			BNE	PRTSTR		;
173704	042700 000001		BIC	#1,R0		;042710 000011
173710	005720			TST	(R0)+		;005730
173712	000200			RTS	R0		;000210
;
;-------------------------------------------------------------------------------
;
;  "" .    <CR>.
;    ( <CR>)   R0.   
;      -   (
;      ).
;
173714	005046		INPSTR:	CLR	-(SP)		;005056
173716	105737 177560	1$:	TSTB	@#TT$RCSR	;105737 177570
173722	100375			BPL	1$		;
173724	113700 177562		MOVB	@#TT$RBUF,R0	;113710 177572
173730	105737 177564	2$:	TSTB	@#TT$XCSR	;105737 177574
173734	100375			BPL	2$		;
173736	110037 177566		MOVB	R0,@#TT$XBUF	;110037 177576
173742	122700 000015		CMPB	#CHAR$CR,R0	;122710 000015
173746	001402			BEQ	3$		;001412
173750	010016			MOV	R0,@SP		;
173752	000761			BR	1$		;000771
173754	105737 177564	3$:	TSTB	@#TT$XCSR	;105737 177574
173760	100375			BPL	3$		;
173762	112737 000012 177566	MOVB	#CHAR$LF,@#TT$XBUF	;112737 000012 177576
173770	012600			MOV	(SP)+,R0	;012610
173772	105700			TSTB	R0		;105710
173774	000207			RETURN			;000217

;       .     
;         .  :
;          
;    .
;
;173776	013436			.WORD	13426
