DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

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

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦2f6121c05⟧ TextFile

    Length: 9674 (0x25ca)
    Types: TextFile
    Names: »INIT.TEC«

Derivation

└─⟦b678e5579⟧ Bits:30005502 8" CR80 Floppy CR80FD_0031 ( TELECINE BACKUP )
└─⟦b678e5579⟧ Intel_ISIS_II
    └─ ⟦this⟧ »INIT.TEC« 

TextFile

	NLIST	S\r
;=============================================================================;\r
;\r
;		THIS MODULE CONTAINS MACROES NEEDED FOR THE\r
;		     INITIALIZATION OF THE TQM-PROCESS-COMPLEX.\r
;\r
;		THE INIT. SEQUENS IS STRUCTURED AS BELOW:\r
\r
;;				TQMINT  5,1\r
;\r
;				   TQMPR  S,1,5\r
;				   .....\r
;				   TQMPR  R,5,4000H\r
;\r
;				TQMEXI\r
;\r
;\r
;		THE MACRO'S INCLUDES ONLY\r
\r
;	  	'DW','DB','DEFL' -STATEMENTS AND PRODUCES\r
;		DSEG- AND CSEG SEGMENTS.\r
;		IT'S TERMINATED IN THE CSEG-MODE\r
;\r
;\r
;==============================================================================\r
\r
;==========================   THE  T Q M I N T   MACRO  =======================\r
;\r
;               THE TQMINT MACRO PREFORMES THE DATA LAYOUT OF TQM-DATA\r
;\r
;				ENTRY:   #NUMPR: THE NUMBER OF P/R'S TO\r
;						 MONITORED BY TQM.\r
;						 1 =< #NUMPR >= 127\r
;					 #SCALE: THE PRESCALE FACTOR ,WHICH\r
;						 PRESCALES THE CTC GENERATED\r
;						 INTERRUPT FREQUENCY.\r
;						  0=<  #SCALE  >=255\r
;\r
;				EXIT :   NO REGISTERS AFFECTED\r
;==============================================================================\r
\r
TQMINT:	MACRO	#NUMPR,#SCALE \r
\r
	PUBLIC	NUMPR\r
	PUBLIC	FORWAR,BACKWA,RDELAY,DELAY\r
	PUBLIC	PRESCA,PRECOU,NONACK,ONOFF\r
	PUBLIC	INFORM\r
\r
	DSEG\r
PRESCA	DEFL	#SCALE		;-------------------------------------------\r
				;  PRESCA : PUBLICHED INFORMATION ABOUT THE\r
				;          PRESCALE FACTOR\r
				;-------------------------------------------\r
\r
NUMPR	DEFL	#NUMPR		;-------------------------------------------\r
				;  NUMPR : PUBLICHED INFORMATION ABOUT NUMBER\r
				;          OF P/R'S TO BE MONITORED BY T Q M\r
				;--------------------------------------------\r
FORWAR:	DS	#NUMPR+1	;-------------------------------------------\r
				; FORWAR: ARRAY(NUMB. OF P/R'S) OF BYTE\r
				;\r
				; TYPE OF FORWAR ::=< 6. - 0.BIT: POINTER\r
				;		      TO THE SUCCESSSOR IN\r
				;		      CHAIN.\r
				;		      FORWAR(0): CHAIN-HEAD.\r
				;		      7. BIT : ACTIV/PASSIV\r
				;					   >\r
				;----------------------------------------------\r
BACKWA:	DS	#NUMPR+1	;----------------------------------------------\r
				; BACKWA: ARRAY(NUMB. OF P/R'S) OF BYTE\r
				;\r
				; TYPE OF BACKWA ::=< POINTERS TO THE PRE-\r
				;		      DECESSOR IN THE CHAIN >\r
				;----------------------------------------------\r
RDELAY:	DS	#NUMPR+1	;----------------------------------------------\r
				; RDELAY: ARRAY(NUMB. OF P/'S) OF BYTE\r
				;\r
				; TYPE OF RDELAY ::=< THE RELATIV DELAYED\r
				;		      ACTIVATION AFTER\r
				;		      THE PREDECESSOR	     >\r
				;----------------------------------------------\r
DELAY:	DS	#NUMPR+1	;----------------------------------------------\r
				; DELAY: ARRAY(NUMB.OF P/R'S) OF BYTE\r
				;\r
				; TYPE OF DELAY ::=< THE DELAYED TIME BEFORE\r
				;		     ACTIVATION OF THE P/R\r
				;   		     AFTER ESTABLISHED	     >\r
				;----------------------------------------------\r
ONOFF:	DS	1		;---------------------------------------------\r
				; ONOFF:BYTE\r
				;\r
				; TYPE OF ONOFF ::=< = 0H : TQM DISABLED\r
				;		     =0FFH: TQM ENABLED\r
				;----------------------------------------------\r
PRECOU:	DS	1		;----------------------------------------------\r
				; PRECOU:BYTE\r
				;\r
				; TYPE OF PRECOU::=<  THE CURRENT NUMBER OF\r
				;		      TQMMON RUNS BEFORE DE-\r
				;		      CREMENTATION OF RDELAY OF\r
				;		      THE FIRST P/R IN CHAIN  >\r
				;----------------------------------------------\r
NONACK:	DS	1		;----------------------------------------------\r
				; NONACK:BYTE\r
				;\r
				; TYPE OF NONACK ::=< NUMBER OF NONACKNOWLEDGED\r
				;		      TQMACT-ACTIVATIONS    >\r
				;----------------------------------------------\r
DSEND2:\r
\r
	CSEG\r
\r
	JP	TQMEND\r
\r
INFORM:	DS	#NUMPR*3	;----------------------------------------------\r
				;INFORM:RECORD(NUMB.OF P/R'S) OF ACDATA:ADDRESS\r
				;			         ACTION:BYTE\r
				;\r
				; TYPE OF ACTION::=< =0:CALL OF ROUTINE\r
				;		     =1:ACTIVATION OF S-PROCESS\r
				;		     =2:SIGNAL TO SEMAFOR     >\r
				;TYPE OF ACDATA::=<ACTION=0:ADDRESS OF ROUTINE\r
				;		      -  =1:SYSRAM+200H+N*10H+5\r
				;                     -  =2:SYSRAM+200H+N*20H\r
				;			    +S*10H+QHEAD*8  >\r
				;----------------------------------------------\r
CSEND2:\r
\r
	ENDM\r
\r
;=========================  THE T Q M P R  MACRO ======================\r
;\r
;	        THE TQMPR MACRO INITIATES THE INFORM-DATA\r
;\r
;			      ENTRY: #TYPE : R:-ROUTINE , OR\r
;					     S:-S-PROCESS ACTIVATION , OR\r
;					     N:-SIGNAL TO SEMAFOR.\r
;				     #PRNUM: THE P/R NUMBER.\r
;					     1=<  #PRNUM  >=127\r
;\r
;				     #INDEKS: ROUTINE ADDRESS/ S-PROCESSNO./\r
;					      SEMAFORNO.\r
;\r
;			      EXIT : NO REGISTERS ARE AFFECTED\r
;========================================================================\r
\r
TQMPR:	MACRO	#TYPE,#PRNUM,#INDEKS \r
	CSEG\r
	ORG	INFORM+3*(#PRNUM-1)\r
	PUBLIC AC#$YM\r
AC#$YM:\r
	IF	'#TYPE'.EQ.'R'\r
	DW	#INDEKS\r
	DB	0\r
	ENDIF\r
\r
	IF	'#TYPE'.EQ.'S'\r
	DW	#INDEKS*10H+SYSRAM+200H+5H\r
	DB	1H\r
	ENDIF\r
\r
	IF	'#TYPE'.EQ.'N'\r
	DW	#INDEKS*8H+SYSRAM+200H+S*10H+N*20H\r
	DB	2H\r
	ENDIF\r
\r
	ENDM\r
\r
;========================== THE TQMEXI MACRO ==========================\r
TQMEXI	MACRO\r
	DSEG\r
	ORG	DSEND2\r
	CSEG\r
	ORG	CSEND2\r
TQMEND:\r
	ENDM\r
	LIST	S\r
;***********************************************************************\r
;*                      INITIALIZING PROCESS                           *\r
;***********************************************************************\r
\r
	PUBLIC	SYSRAM\r
	PUBLIC	START\r
	PUBLIC	INISP\r
	PUBLIC	ACTC,ASIO1,ASIO2\r
	PUBLIC	QEMPTY,PQH6,PQH7,PQH9\r
	PUBLIC	BUFF01,BUFF02,BUFF03,BUFF04,BUFF05,BUFF06,BUFF07\r
	PUBLIC	BUFF08,BUFF09,BUFF10,BUFF11,BUFF12,BUFF13,BUFF14\r
	PUBLIC	BUFF15,BUFF16,BUFF17,BUFF18,BUFF19,BUFF20,BUFF21\r
	PUBLIC	BUFF22,BUFF23,BUFF24,BUFF25\r
	PUBLIC	MARK\r
\r
	EXTRN	SUBENQ,SUBDEQ\r
	EXTRN	INSPEC,PROJC,MATCHG,STSCAN,STATUS\r
	EXTRN	TQMMON,TQMACT,SCOMMON\r
\r
\r
ACOUNT:	DEFL	80H		;ADDRESS OF COUNTER\r
ASIO1:	DEFL	0E0H		;ADDRESS OF SIO 1.\r
ASIO2:	DEFL	0F0H		;ADDRESS OF SIO 2.\r
ACTC:	DEFL	0B0H		;ADDRESS OF CTC CHANNEL 0\r
LINK	DEFL	0		;SYSTEM PARAMETER LINK\r
\r
\r
	DSEG\r
\r
SYSRAM	DS	300H\r
	DS	31\r
INISP	DS	1\r
\r
;------------------------------------------------------------------------\r
; QHEADS AND BUFFERS :\r
;------------------------------------------------------------------------\r
	ORG	1000H\r
QEMPTY	DS	10H\r
PQH6	DS	10H\r
PQH7	DS	10H\r
PQH9	DS	10H\r
	DS	0EH\r
\r
	DS	2\r
BUFF01	DS	20H\r
BUFF02	DS	20H\r
BUFF03	DS	20H\r
BUFF04	DS	20H\r
BUFF05	DS	20H\r
BUFF06	DS	20H\r
BUFF07	DS	20H\r
BUFF08	DS	20H\r
BUFF09	DS	20H\r
BUFF10	DS	20H\r
BUFF11	DS	20H\r
BUFF12	DS	20H\r
BUFF13	DS	20H\r
BUFF14	DS	20H\r
BUFF15	DS	20H\r
BUFF16	DS	20H\r
BUFF17	DS	20H\r
BUFF18	DS	20H\r
BUFF19	DS	20H\r
BUFF20	DS	20H\r
BUFF21	DS	20H\r
BUFF22	DS	20H\r
BUFF23	DS	20H\r
BUFF24	DS	20H\r
BUFF25	DS	20H\r
\r
\r
	CSEG\r
\r
;SIO INTERRUPT ADDRESS TABLE\r
ISIO1:\r
;CTC INTERRUPT ADDRESS TABLE\r
ICTC	DW	TQMMON		;CH. 0 (S/W TIMER)\r
	DW	0		;CH. 0 (DMA)\r
	DW	0		;CH. 0\r
	DW	0		;CH. 0\r
\r
	CSEG\r
START:	LD	SP,PSTACK\r
	IM	2\r
\r
	CREATE	S,0,TQMACT\r
	CREATE	S,5,INSPEC\r
	CREATE	S,6,PROJC\r
	CREATE	S,7,MATCHG\r
	CREATE	S,8,STSCAN\r
	CREATE	S,9,STATUS\r
\r
\r
;---------------------------------------------------------------------\r
; H/W INITIALIZING :\r
;---------------------------------------------------------------------\r
\r
;1) CPU PIO :\r
CPUINI:	LD	C,0C3H		;PIO COMMAND ADDRESS\r
	LD	A,80H\r
	OUT	(C),A		;PIO OUTPUT MODE\r
	LD	C,0C0H		;PORT A ADDRESS\r
	LD	A,0FCH		;RESET SIO, OPEN FEEED BACK LOOP\r
	OUT	(C),A\r
\r
;2) CTC :\r
CTCINI:	LD	A,ISIO1.HIGH.\r
	LD	I,A\r
	LD	A,ICTC.LOW.\r
	LD	BC,ACTC\r
	OUT	(C),A		;LOAD INTERRUPT VECTOR\r
\r
	LD	A,0A5H\r
	OUT	(C),A		;LOAD CONTROL WORD CH. 0\r
         			;NO RESET, LOAD TIME CONSTANT\r
				;INT.TRIGGER(INT.CLK 4Mhz.),NEG.SLOPE\r
				;TIMER MODE,INTERRUPT ENABLED\r
\r
	LD	A,125\r
	OUT	(C),A		;PRESCALE 125 (8msec.)\r
\r
	LD	A,0		;\r
	INC	BC		;\r
	OUT	(C),A		;\r
	INC	BC		;DISABLE INTERRUPTS IN CHANNELS 1-3\r
	OUT	(C),A		;\r
	INC	BC		;\r
	OUT	(C),A		;\r
\r
\r
;3) COUNTER INITIALIZING :\r
;    --------------\r
\r
;4) SIO INITIALIZING :\r
;    --------------\r
\r
;5) PIO'S :\r
PIOINI				;INITIALIZE PORT1,PORT4,PORT5\r
        LD	A,80H\r
	OUT	(PORT1+3H),A	;LOAD CONTROL WORD 1\r
	LD	A,80H\r
	OUT	(PORT1+7H),A	;LOAD CONTROL WORD 2\r
	LD	A,0EH\r
	OUT	(PORT1+5H),A	;LOAD CONTROL WORD 3\r
\r
				;INITIALIZE PORT2,PORT3,PORT6\r
	LD	A,89H\r
	OUT	(PORT6+3H),A	;LOAD CONTROL WORD 1\r
	LD	A,90H\r
	OUT	(PORT6+7H),A	;LOAD CONTROL WORD 2\r
	LD	A,0F6H\r
	OUT	(PORT6+5H),A	;LOAD CONTROL WORD 3\r
\r
\r
;----------------------------------------------------------------------\r
;                      TQM INITIALIZING :\r
;----------------------------------------------------------------------\r
\r
	TQMINT	2,1\r
	TQMPR	S,1,5\r
	TQMPR	S,2,8\r
	TQMEXI\r
\r
\r
	LD	A,0EFH\r
	OUT	(PORT1),A	;SET THE TELECINE IN STOP MODE\r
	LD	A,40H\r
	OUT	(PORT4),A	;INITIALIZE PORT4\r
	LD	A,40H\r
	OUT	(PORT5),A	;INITIALIZE PORT5\r
	LD	A,33H\r
	OUT	(PORT6),A	;INITIALIZE PORT6\r
\r
	LD	A,0		;\r
	LD	B,20		;\r
	LD	C,0		;\r
AGAIN:	OUT	(C),A		;INITIALIZE DA-CONVERTERS\r
	INC	C		;\r
	DEC	B		;\r
	JP	NZ,AGAIN	;\r
\r
\r
;---------------------------------------------------------------------\r
;                LINK BUFFERS IN EMPTY BUFFER QUEUE :\r
;---------------------------------------------------------------------\r
BUFLIN:	LD	A,25\r
	LD	DE,BUFF01\r
	LD	HL,QEMPTY\r
LOOP:	PUSH	AF\r
	PUSH	DE\r
	PUSH	HL\r
	CALL	SUBENQ		;ENQUE BUFFER IN EMPTY BUFFER QUEUE\r
	POP	HL\r
	POP	DE\r
	POP	AF\r
	DEC	A\r
	JP	Z,MARK\r
	LD	BC,20H\r
	EX	DE,HL\r
	ADD	HL,BC\r
	EX	DE,HL\r
	JP	LOOP\r
MARK:	PASSIVATE S,1\r
	CALL	SCOMMON\r
	EI\r
	LD	HL,QEMPTY\r
	CALL	SUBDEQ\r
	PUSH	DE\r
	POP	IX\r
	LD	(IX+3),00\r
	LD	(IX+8),0\r
	LD	(IX+9),0\r
	LD	(IX+10),0\r
	LD	(IX+11),0\r
	LD	(IX+12),0\r
	LD	(IX+13),0\r
	LD	(IX+14),0\r
	PUSH	IX\r
	POP	DE\r
	LD	HL,PQH6\r
	CALL	SUBENQ\r
	ACTIVATE S,6\r
	JP	MARK\r
\r
	DSEG\r
	DS	31\r
PSTACK	DS	1\r
	END\r