DataMuseum.dk

Presents historical artifacts from the history of:

Intel ISIS Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Intel ISIS Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦5b9c902f7⟧ TextFile

    Length: 13647 (0x354f)
    Types: TextFile
    Names: »SYNCRO.SRC«

Derivation

└─⟦8347abc8e⟧ Bits:30005501 8" CR80 Floppy CR80FD_0033 ( ATR Source and Abs-files )
└─⟦8347abc8e⟧ Intel_ISIS_II
    └─ ⟦this⟧ »SYNCRO.SRC« 

TextFile

;******************************************************************************\r
;*                                                                            *\r
;* D O R A     A P P L I C A T I O N     S / W                                *\r
;*                                                                            *\r
;* DEVICE: ATR                                                                *\r
;*                                                                            *\r
;* MODULE: SYNCRONIZATION PROCESS                                             *\r
;*                                                                            *\r
;******************************************************************************\r
\r
LINK	DEFL	0\r
SCANNR	DEFL	5\r
DCODNR	DEFL	6\r
SEARNR	DEFL	7\r
SYNCNR	DEFL	8\r
LOCKNR	DEFL	9\r
TIMGNR	DEFL	10\r
INSPNR	DEFL	11\r
STATNR	DEFL	12\r
READNR	DEFL	13\r
SEARTIM	DEFL	1\r
SYNCTIM	DEFL	2\r
LOCKTIM	DEFL	3\r
INSPTIM	DEFL	4\r
SCANTIM	DEFL	5\r
PORT1	DEFL	30H\r
PORT2	DEFL	32H\r
PORT3	DEFL	34H\r
PORT4	DEFL	31H\r
DAC	DEFL	20H\r
\r
	NLIST	S\r
PASSIVATE	MACRO	#ID,#NO\r
					;DESRIP: THE MODULE PASSIVATES\r
					;	SPECIFIED PROCES.\r
					;	IF LINK IS SET AND ACTIV\r
					;	SPECIAL PROCESS IS PASSIVATED\r
					;	THE LINK-ELEMENT IS \r
					;	DECREMENTED\r
					;DESTR:	REG F,H,L\r
	IF	'#ID'.EQ.'S'\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	IF	LINK.EQ.1\r
	BIT	7,(HL)			;\r
	JR	Z,O#$YM		;IF PROCESS WAS NOT PASSIVE THEN\r
	LD	HL,SYSRAM+0FBH	;BEGIN\r
	DEC	(HL)			;DEC LINK-ELEMENT\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;END\r
O#$YM:	ENDIF\r
	ENDIF\r
	IF	'#ID'.EQ.'N'\r
	LD	HL,SYSRAM+200H+S*10H+#NO*20H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	ENDIF\r
	RES	7,(HL)			;PASSIVATE\r
	ENDM\r
ACTIVATE	MACRO	#ID,#NO\r
					;DESRIP: THE MODULE ACTIVATES\r
					;	SPECIFIED PROCES.\r
					;	IF LINK IS SET AND PASSIV\r
					;	SPECIAL PROCESS IS ACTIVATED\r
					;	THE LINK-ELEMENT IS \r
					;	INCREMENTED\r
					;DESTR:	REG F,H,L\r
	IF	'#ID'.EQ.'S'\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	IF	LINK.EQ.1\r
	BIT	7,(HL)			;\r
	JR	NZ,O#$YM		;IF PROCESS WAS NOT ACTIVE THEN\r
	LD	HL,SYSRAM+0FBH	;BEGIN\r
	INC	(HL)			;INC LINK-ELEMENT\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;END\r
O#$YM:	ENDIF\r
	ENDIF\r
	IF	'#ID'.EQ.'N'\r
	LD	HL,SYSRAM+200H+S*10H+#NO*20H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	ENDIF\r
	SET	7,(HL)			;ACTIVATE\r
	ENDM\r
CREATE	MACRO	#ID,#NO,#NAME,#PRIO\r
				;DESCRIP: THE MODULE CREATES SPECIFIED\r
				;	PROCESS IE LOADS STARTADDRESS\r
				;	(#NAME) IN PROCESS-DESCRIPTION\r
				;	BYTE 6,7. IF NORMAL PROCESS IS\r
				;	ENCOUNTERED PRIORITY IS LOADED\r
				;	TO BYTE 5 IN PROCESS-DESCRIPTION\r
				;	AND THE PROCESS IS ENQUEUED IN\r
				;	APPROPRIATE PRIO-QUEUE.\r
				;	FINALLY THE SPECIFIED PROCESS\r
				;	IS ACTIVATED\r
				;DESTR:	IF NORMAL PROCESS\r
				;	REG. A,F,B,C,D,E,H,L\r
				;	IF SPECIAL PROCESS\r
				;	REG. F,H,L\r
	LD	HL,#NAME	;\r
	IF	'#ID'.EQ.'S'\r
	LD	(SYSRAM+200H+#NO*10H+6),HL\r
				;STARTADD TO PROCESS-DESCRIP\r
	ENDIF\r
	IF	'#ID'.EQ.'N'\r
	LD	(SYSRAM+200H+S*10H+#NO*20H+6),HL\r
				;STARTADD TO PROCESS-DESCRIP\r
	LD	HL,SYSRAM+200H+S*10H+#NO*20H+5\r
	LD	(HL),#PRIO			;PRIORTY TO PROCESS\r
	LD	HL,SYSRAM+#PRIO*8		;ADDRESS OF PRIO-QUEUE\r
	LD	DE,SYSRAM+200H+S*10H+#NO*20H	;ADDRESS OF PROCESS-DESCRIP\r
	CALL	SUBENQ\r
	ENDIF\r
	ACTIVATE	#ID,#NO			;ACTIVATE PROCESS\r
	ENDM\r
RESTART MACRO	#ID,#NO,#NAME,#PRIO\r
				;DESCRIP: THE MODULE CREATES SPECIFIED\r
				;	PROCESS IE LOADS STARTADDRESS\r
				;	(#NAME) IN PROCESS-DESCRIPTION\r
				;	BYTE 6,7. IF NORMAL PROCESS IS\r
				;	ENCOUNTERED PRIORITY IS LOADED\r
				;	TO BYTE 5 IN PROCESS-DESCRIPTION\r
				;	AND THE PROCESS IS ENQUEUED IN\r
				;	APPROPRIATE PRIO-QUEUE.\r
				;	FINALLY THE SPECIFIED PROCESS\r
				;	IS ACTIVATED\r
				;DESTR:	IF NORMAL PROCESS\r
				;	REG. A,F,B,C,D,E,H,L\r
				;	IF SPECIAL PROCESS\r
				;	REG. F,H,L\r
	LD	HL,#NAME	;\r
	IF	'#ID'.EQ.'S'\r
	LD	(SYSRAM+200H+#NO*10H+6),HL\r
				;STARTADD TO PROCESS-DESCRIP\r
	ENDIF\r
	IF	'#ID'.EQ.'N'\r
	LD	(SYSRAM+200H+S*10H+#NO*20H+6),HL\r
				;STARTADD TO PROCESS-DESCRIP\r
	LD	HL,SYSRAM+200H+S*10H+#NO*20H+5\r
	LD	(HL),#PRIO			;PRIORTY TO PROCESS\r
	LD	HL,SYSRAM+#PRIO*8		;ADDRESS OF PRIO-QUEUE\r
	LD	DE,SYSRAM+200H+S*10H+#NO*20H	;ADDRESS OF PROCESS-DESCRIP\r
	CALL	SUBENQ\r
	ENDIF\r
	ACTIVATE	#ID,#NO			;ACTIVATE PROCESS\r
	ENDM\r
\r
\r
LESTAB	MACRO	#PRNUM\r
	LD	BC,#PRNUM\r
	CALL	ESTABR\r
	ENDM\r
\r
LSUSPN	MACRO	#PRNUM\r
	LD	BC,#PRNUM\r
	CALL	SUSPND\r
	ENDM\r
\r
GESTAM	MACRO\r
	LD	HL,ONOFF\r
	LD	(HL),0FFH\r
	ENDM\r
\r
GSUSPM	MACRO\r
	LD	HL,ONOFF\r
	LD	(HL),0\r
        ENDM\r
\r
UPDATM	MACRO	#PRNUM,#NO\r
	LD	HL,DELAY+#PRNUM\r
	LD	(HL),#NO\r
	ENDM\r
\r
\r
	LIST	S\r
	PUBLIC	SYNCPR,SYNCRO,STAC08\r
	EXTRN	MESCOD,MTCCOD,MTC00,DELAY,ESTABR,TCCOMP,SCOMMON\r
	EXTRN	OUTPUT,TCCSTA,ADDRTC,DIFREG,TMPCOD,TCSUB,TTCCOD,TTCDIF\r
	EXTRN	FLAG2,CONS00,CONS01,FLAG1,MTCREG,MTCDIF,CONS17,COMBYT\r
	EXTRN	CONS16,CNS140,CNS141,CNS142,CNS143,CNS144,CNS145,SYSRAM\r
	EXTRN	ST0,ST1,ST2,ST3,ST4,ST5,FW0,FW1,FW2,FW3,FW4,FW5\r
	EXTRN	DACRAM,FLAG3,UTCCOD\r
\r
	CSEG\r
SYNCPR:	LD	SP,STAC08	;INITIALIZE STACKPOINTER\r
\r
	LD	DE,5800H\r
	LD	(SAVMTC),DE\r
\r
	LD	A,00H		;\r
	OUT	(DAC),A		;INITIALIZE DA-CONVERTER\r
	OUT	(DAC+1),A	;\r
	PASSIVATE S,SYNCNR\r
	CALL	SCOMMON\r
	EI\r
\r
SYNCRO:	LD	SP,STAC08\r
	LD	HL,0\r
	LD	(DACRAM),HL\r
	LD	HL,FLAG2\r
	RES	6,(HL)		;RESET SYNC-ON FLAG\r
	LD	A,(MESCOD)\r
	CP	3FH\r
	JR	Z,S3		;IF MTC-SYNC COMMAND THEN\r
				;BEGIN\r
				;  WHILE MTC =< MTC00 DO\r
S1:	LD	IX,MTCCOD	;  BEGIN\r
	LD	IY,MTC00	;\r
	CALL	TCCOMP		;\r
	JP	P,S3		;\r
    	CALL	SCOMMON		;\r
	EI			;\r
	JR	S1		;  END\r
				;END\r
S3:	CALL	PAUSE		;SET THE ATR IN PLAY MODE\r
\r
	LD	HL,FLAG2\r
	RES	0,(HL)		;RESET MTC-FLAG\r
S30:	CALL	SCOMMON\r
	EI\r
	LD	HL,FLAG2\r
	BIT	0,(HL)\r
	JR	Z,S30		;IF MTC FLAG ISE SET THEN CARRY ON\r
	RES	0,(HL)		;WITH SYNCRONIZATION TEST\r
\r
	LD	IX,(ADDRTC)\r
	LD	IY,DIFREG\r
	LD	BC,TMPCOD\r
	CALL	TCSUB\r
	CALL	MTEST\r
	LD	HL,FLAG3\r
	SET	3,(HL)		;SET INIT-FLAG\r
	LD	HL,FLAG2\r
	BIT	7,(HL)\r
	LD	HL,FLAG3\r
	JR	Z,S31\r
	SET	2,(HL)		;\r
	JR	S4		;SET INIT M-FLAG\r
S31:	RES	2,(HL)		;\r
\r
S4:  	LD	HL,FLAG1\r
	SET	1,(HL) 		;SET READ FLAG\r
    	LD	IX,(ADDRTC)\r
	LD	IY,DIFREG\r
	LD	BC,TMPCOD\r
	CALL	TCSUB		;EXPECTED TTC' = MTC - (DIFREG)\r
\r
	CALL	MTEST		;CALCULATE ABSOLUTE VALUE OF DT = |TTC - TTC'|\r
				;AND UPDATE M-BIT\r
	CALL	SYNCTST		;UPDATE SYNC-FLAG\r
\r
	LD	HL,FLAG3\r
	BIT	3,(HL)\r
	JR	Z,S8		;IF INIT SYNCRONIZATION THEN\r
	LD	HL,FLAG2	;BEGIN\r
	BIT	7,(HL)		;\r
	LD	HL,FLAG3	;\r
	JR	Z,S41		;\r
	BIT	2,(HL)		;\r
	JR	NZ,S5		;\r
	JR	S6		;\r
S41:	BIT	2,(HL)		;\r
	JR	NZ,S6		;  IF M-FLAG = INIT M-FLAG THEN\r
S5:	LD	HL,FLAG1	;  BEGIN\r
	RES	2,(HL)		;    RESET SYNC-FLAG\r
	JR	S8		;  END ELSE\r
S6:	LD	HL,FLAG3	;  BEGIN\r
	RES	3,(HL)		;    RESET INIT-FLAG\r
	LD	HL,FLAG2	;\r
	BIT	7,(HL)		;\r
	JR	NZ,S61		;    IF TTC >= TTC' THEN\r
	LD	HL,0F9E0H	;    DO NORMAL SPEED - 0.2 %\r
	LD	(DACRAM),HL	;\r
	JR	S8		;    ELSE\r
S61:	LD	HL,0600H	;    DO NORMAL SPEED + 0.2 %\r
	LD	(DACRAM),HL	;\r
	              		;  END\r
				;END\r
S8:	CALL	REGUL		;MAKE PROPER REGULATION OF THE ATR\r
\r
	CALL	DISPLAY		;DISPLAY ATR STATUS\r
\r
S9:	LD	HL,FLAG2\r
    	BIT	6,(HL)		;IF NORMAL SPEED-SYNCRONIZATION HAS NOT\r
	JR	NZ,PROEND	;BEGUN YET THEN\r
	LD	A,(MESCOD)	;BEGIN\r
	CP	3FH		;\r
	JR	Z,S13		;  IF MTC-SYNC COMMAND THEN\r
				;  BEGIN\r
	LD	IX,MTCCOD	;\r
	LD	IY,MTCREG	;\r
	LD	BC,MTCDIF	;\r
	CALL	TCSUB		;    DM = MTC - SPEC.MTC\r
	LD	IX,CONS17	;\r
	LD	IY,MTCDIF	;\r
	CALL	TCCOMP		;\r
	JP	M,S12		;    IF MTC NOW HAS PASSED THE SPEC.MTC THEN\r
	LD	HL,FLAG2	;    BEGIN\r
	SET	6,(HL)		;      SET SYNC-ON FLAG\r
	LD	A,(MESCOD)	;\r
	CP	25H		;\r
	JR	NZ,S10		;      IF MTC SYNC-PLAY COMMAND THEN\r
	LD	A,0FEH		;      SET ATR IN PLAY MODE\r
	JR	S11		;      IF MTC SYNC-RECORD COMMAND THEN\r
S10:	LD	A,0FCH		;      SET ATR IN RECORD MODE\r
S11:	LD	(COMBYT),A	;\r
	CALL	OUTPUT		;\r
	JR	PROEND		;    END ELSE\r
S12:	LD	IX,MTCDIF	;\r
	LD	IY,CONS16	;\r
	CALL	TCCOMP		;    IF TIME FOR COARSE REGULATION THEN\r
	CALL	M,COARSE	;    DO COARSE REGULATION IF NECESSARY\r
	JR	PROEND		;  END ELSE\r
S13:	LD	HL,FLAG1	;  BEGIN\r
     	BIT	2,(HL)		;\r
	JR	Z,S14		;    IF THE ATR HAS SYNCRONIZED	THEN\r
	LD	A,0FEH		;    BEGIN\r
	LD	(COMBYT),A	;\r
	CALL	OUTPUT		;      SET ATR IN PLAY MODE\r
	LD	HL,FLAG2	;\r
	SET	6,(HL)		;      SET SYNC-ON FLAG\r
	JR	PROEND		;    END ELSE\r
S14:	CALL	COARSE		;    DO COARSE REGULATION IF NECESSARY\r
	          		;  END\r
				;END\r
\r
\r
PROEND:	CALL	SCOMMON\r
	EI\r
	LD	HL,FLAG2\r
	BIT	0,(HL)\r
	JR	Z,PROEND	;IF MTC FLAG IS SET THEN CARRY ON\r
	RES	0,(HL)		;WITH SYNCRONIZATION TEST\r
	JP	S4\r
\r
;-----------------------------------------------------------------------\r
MTEST:	LD	IX,TTCCOD\r
	LD	IY,TMPCOD\r
	LD	BC,TTCDIF\r
	CALL	TCCOMP\r
	LD	HL,FLAG2\r
	JP	M,MT1		;IF TTC >= TTC' THEN\r
	RES	7,(HL)		;RESET M-BIT\r
	CALL	TCSUB		;AND DO DT = TTC - TTC'\r
	RET			;ELSE\r
MT1:	SET	7,(HL)		;SET M-BIT\r
	LD	IX,TMPCOD	;AND\r
	LD	IY,TTCCOD	;\r
	CALL	TCSUB		;DO DT = TTC' - TTC\r
	RET\r
\r
;-------------------------------\r
SYNCTST	LD	HL,FLAG2\r
	BIT	7,(HL)\r
	JP	NZ,SYN2		;IF TTC >= TTC' THEN\r
	LD	IX,TTCDIF	;BEGIN\r
	LD	IY,CONS01	;\r
	CALL	TCCOMP		;\r
	JP	P,SYN1		;  IF ATR IS SYNCRONOUS THEN\r
	LD	HL,FLAG1	;\r
	SET	2,(HL)		;  SET SYNC-FLAG\r
	LD	HL,FLAG3	;\r
	RES	0,(HL)		;  CLEAR ASYNC-COUNTER\r
	RES	1,(HL)		;\r
	RET			;  ELSE\r
SYN1:	LD	HL,FLAG3	;\r
	BIT	1,(HL)		;\r
	JP	Z,SYN11		;  IF ASYNC-COUNTER = 2\r
	LD	HL,FLAG1	;  THEN\r
	RES	2,(HL)		;  RESET SYNC-FLAG\r
	RET			;  ELSE\r
SYN11:	INC	(HL)		;  INCREMENT ASYNC-COUNTER\r
	RET			;END\r
SYN2:				;BEGIN\r
	LD	IX,CONS01	;\r
	LD	IY,TTCDIF	;\r
	CALL	TCCOMP		;\r
	JP	M,SYN3		;  IF ATR IS SYNCRONOUS THEN\r
	LD	HL,FLAG1	;\r
	SET	2,(HL)		;  SET SYNC-FLAG\r
	LD	HL,FLAG3	;\r
	RES	0,(HL)		;  CLEAR ASYNC-COUNTER\r
	RES	1,(HL)		;\r
	RET			;  ELSE\r
SYN3:	LD	HL,FLAG3	;\r
	BIT	1,(HL)		;\r
	JP	Z,SYN33		;  IF ASYNC-COUNTER = 2\r
	LD	HL,FLAG1	;  THEN\r
	RES	2,(HL)		;  RESET SYNC-FLAG\r
	RET			;  ELSE\r
SYN33:	INC	(HL)		;  INCREMENT ASYNC-COUNTER\r
	RET			;END\r
\r
;----------------------------------------------------------------------\r
REGUL:	LD	HL,FLAG2\r
	BIT	7,(HL)\r
	JP	NZ,REGUL2	;IF TTC >= TTC' THEN\r
	LD	HL,FLAG1	;BEGIN\r
	BIT	2,(HL)		;\r
	JP	Z,REGUL1	;  IF ATR IS SYNCRONOUS THEN\r
	LD	A,(DACRAM+1)	;  BEGIN\r
	CP	0F9H		;\r
	JP	NZ,RE0		;\r
	LD	HL,0F9E0H	;\r
	CALL	DACOUT		;\r
	RET			;\r
RE0:	BIT	7,A		;\r
	JP	NZ,RE00		;\r
	LD	HL,0FFE0H	;\r
	LD	(DACRAM),HL	;\r
	CALL	DACOUT		;\r
	RET			;\r
RE00:	LD	BC,20H		;    MAKE NORMAL REGULATION TOWARDS\r
	LD	HL,(DACRAM)	;    NORMAL SPEED - 0.2 %\r
	AND	A		;\r
	SBC	HL,BC		;\r
	LD	(DACRAM),HL	;\r
	CALL	DACOUT		;\r
	RET			;  END ELSE\r
REGUL1:	LD	HL,0B400H	;  BEGIN\r
	CALL	DACOUT		;    ADJ. SPEED TO NORM.SPEED - 4 %\r
	RET			;  END\r
				;END ELSE\r
REGUL2:	LD	HL,FLAG1	;BEGIN\r
	BIT	2,(HL)		;\r
	JP	Z,REGUL3	;  IF ATR IS SYNCRONOUS THEN\r
	LD	A,(DACRAM+1)	;  BEGIN\r
	CP	06H		;\r
	JP	NZ,RE1		;\r
	LD	HL,0600H	;\r
	CALL	DACOUT		;\r
	RET			;\r
RE1:	BIT	7,A		;\r
	JP	Z,RE11		;\r
	LD	HL,0000H	;\r
	LD	(DACRAM),HL	;\r
	CALL	DACOUT		;\r
	RET			;\r
RE11:	LD	BC,20H		;    MAKE REGULATION TOWARDS\r
	LD	HL,(DACRAM)	;    NORMAL SPEED + 0.2 %\r
	ADD	HL,BC		;\r
	LD	(DACRAM),HL	;\r
	CALL	DACOUT		;\r
	RET			;  END ELSE\r
REGUL3:	LD	HL,4C00H	;  BEGIN\r
	CALL	DACOUT		;    ADJ. SPEED OF ATR TO NORM.SPEED + 4 %\r
	RET			;  END\r
				;END\r
;-------------------------------------------------------------------------\r
DACOUT:	LD	C,20H\r
	OUT	(C),L\r
	INC	C\r
	OUT	(C),H\r
	RET\r
;-------------------------------------------------------------------------\r
COARSE:	LD	HL,FLAG2\r
	LD	IX,TTCDIF\r
	LD	IY,CNS140\r
	CALL	TCCOMP\r
	RET	M		;RETURN IF NO COARSE REGULATION\r
	LD	IY,CNS145\r
	CALL	TCCOMP\r
	JP	P,COARS5\r
	LD	IY,CNS144\r
	CALL	TCCOMP\r
	JP	P,COARS4\r
	LD	IY,CNS143\r
	CALL	TCCOMP\r
	JP	P,COARS3\r
	LD	IY,CNS142\r
	CALL	TCCOMP\r
	JP	P,COARS2\r
	LD	IY,CNS141\r
	CALL	TCCOMP\r
	JP	P,COARS1\r
\r
;--------------------------------\r
COARS0:	BIT	7,(HL)\r
	JR	Z,STOP0\r
	JP	FWD0\r
COARS1:	BIT	7,(HL)\r
	JR	Z,STOP1\r
	JP	FWD1\r
COARS2:	BIT	7,(HL)\r
	JR	Z,STOP2\r
	JP	FWD2\r
COARS3:	BIT	7,(HL)\r
	JR	Z,STOP3\r
	JP	FWD3\r
COARS4:	BIT	7,(HL)\r
	JR	Z,STOP4\r
	JP	FWD4\r
COARS5:	BIT	7,(HL)\r
	JR	Z,STOP5\r
	JP	FWD5\r
\r
;--------------------------------\r
STOP0:	LD	A,0EFH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,ST0.LOW.\r
	JP	CRSEND\r
STOP1:	LD	A,0EFH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,ST1.LOW.\r
	JP	CRSEND\r
STOP2:	LD	A,0EFH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,ST2.LOW.\r
	JR	CRSEND\r
STOP3:	LD	A,0EFH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,ST3.LOW.\r
	JR	CRSEND\r
STOP4:	LD	A,0EFH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,ST4.LOW.\r
	JR	CRSEND\r
STOP5:	LD	A,0EFH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,ST5.LOW.\r
	JR	CRSEND\r
\r
FWD0:	LD	A,0FBH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,FW0.LOW.\r
	JR	CRSEND\r
FWD1:	LD	A,0FBH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,FW1.LOW.\r
	JR	CRSEND\r
FWD2:	LD	A,0FBH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,FW2.LOW.\r
	JR	CRSEND\r
FWD3:	LD	A,0FBH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,FW3.LOW.\r
	JR	CRSEND\r
FWD4:	LD	A,0FBH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,FW4.LOW.\r
	JR	CRSEND\r
FWD5:	LD	A,0FBH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,FW5.LOW.\r
\r
;----------------------------------\r
CRSEND:	LESTAB  SYNCTIM\r
	PASSIVATE S,SYNCNR\r
	CALL	SCOMMON\r
	EI\r
	CALL	PAUSE		;SET PLAY ON\r
	RET\r
\r
\r
;-----------------------------------------------------------------------------\r
PAUSE:	LD	A,0FEH\r
	CALL	OUTPUT		;SET ATR IN PLAY MODE\r
P1:	CALL	SCOMMON\r
	EI\r
    	LD	A,(TCCSTA)\r
	AND	1FH\r
	CP	01H\r
	JR	NZ,P1\r
	LD	A,0FEH\r
	CALL	OUTPUT\r
	UPDATM	SYNCTIM,60\r
	LESTAB	SYNCTIM\r
	PASSIVATE S,SYNCNR\r
	CALL	SCOMMON\r
	EI\r
	RET\r
\r
\r
;--------------------------------------------------------------------------\r
DISPLAY	IN	A,(0D0H)\r
	BIT	7,A\r
	RET	Z\r
\r
	LD	DE,(SAVMTC)\r
	LD	HL,MTCCOD+1\r
	LD	BC,3\r
	LDIR\r
	LD	HL,TTCCOD+1\r
	LD	BC,3\r
	LDIR\r
	LD	HL,UTCCOD+1\r
	LD	BC,3\r
	LDIR\r
\r
	IN	A,(32H)\r
	CPL\r
	LD	(DE),A\r
	INC	DE\r
	IN	A,(30H)\r
	LD	(DE),A\r
	INC	DE\r
\r
	LD	HL,DACRAM+1\r
	LDI\r
	DEC	HL\r
	DEC	HL\r
	LDI\r
\r
	LD	HL,FLAG1\r
	LDI\r
	LDI\r
	LDI\r
\r
	LD	HL,(SAVMTC)\r
	LD	BC,16\r
	ADD	HL,BC\r
	LD	(SAVMTC),HL\r
	LD	A,74H\r
	CP	H\r
	RET	NZ\r
	LD	H,58H\r
	LD	(SAVMTC),HL\r
	RET\r
\r
\r
	DSEG\r
SAVMTC	DS	2\r
	DS	32\r
STAC08:\r
	END\r