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

⟦f69ea5407⟧ TextFile

    Length: 7077 (0x1ba5)
    Types: TextFile
    Names: »INSPEC.SRC«

Derivation

└─⟦755b1f38b⟧ Bits:30005549 8" CR80 Floppy CR80FD_0032 ( TELECINE Source and Abs-files )
└─⟦755b1f38b⟧ Intel_ISIS_II
    └─ ⟦this⟧ »INSPEC.SRC« 

TextFile

;******************************************************************************\r
;*                                                                            *\r
;* D O R A     A P P L I C A T I O N     S / W                                *\r
;*                                                                            *\r
;* DEVICE: TELECINE                                                           *\r
;*                                                                            *\r
;* MODULE: COMMAND INSPECTION PROCESS                                         *\r
;*                                                                            *\r
;******************************************************************************\r
\r
LINK	DEFL	0\r
PORT1	DEFL	20H\r
PORT2	DEFL	2AH\r
PORT3	DEFL	2CH\r
PORT4	DEFL	21H\r
PORT5	DEFL	22H\r
PORT6	DEFL	28H\r
PORT7	DEFL	13H\r
INSPTIM	DEFL	1\r
SCANTIM	DEFL	2\r
INSPNR	DEFL	5\r
PROJNR	DEFL	6\r
MTCHNR	DEFL	7\r
SCANNR	DEFL	8\r
STATNR	DEFL	9\r
CVAL	DEFL	25\r
DLAY01	DEFL	25\r
DLAY02	DEFL	10\r
DACGAIN	DEFL	00H\r
DACGMMA	DEFL	06H\r
DACLIFT	DEFL	0CH\r
\r
	NLIST	S\r
SETOBIT	MACRO	#PORTADDRESS,#ACTION,#VALUE\r
				;SETOBIT IS USED TO SET OR RESET\r
				;BITS ONE A OUTPUT PORT SPECIFIED\r
				;BY THE PARAMETERS:\r
				;VAL: SPECIFIED THE BIT WHICH HAS \r
				;     TO BE SET OR RESET (0-0FFH).\r
				;ACTION: TELL THE ROUTINE WHICH\r
				;        ACTION IT HAS TO PERFORME\r
				;        SET OR RESET\r
				;PORTADDRESS: SPECIFIED THE ADDRESS\r
				;	      WHERE THE ACTION HAS TO \r
				;	      BE PERFORMED.\r
	IF	'#ACTION'.EQ.'S'\r
	LD	C,#PORTADDRESS\r
	LD	B,#VALUE	;\r
	CALL	SETBIT		;\r
	ENDIF\r
	IF	'#ACTION'.EQ.'R'\r
	LD	C,#PORTADDRESS\r
	LD	A,#VALUE\r
	CALL	RESBIT		;\r
	ENDIF\r
	ENDM\r
\r
	\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
\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,#VALUE\r
	LD	HL,DELAY+#PRNUM\r
	LD	(HL),#VALUE\r
	ENDM\r
\r
	LIST	S\r
	PUBLIC	INSPEC,STAC05\r
	EXTRN	TCCSTA,CCBSTA,ECOND2,ESTABR,DELAY,SCOMMON,SYSRAM\r
	EXTRN	OUTBIT,COUNT,OUTPUT\r
\r
	CSEG\r
INSPEC:	LD	SP,STAC05	;INITIALIZE STACK-POINTER\r
	CALL	SCOMMON\r
	EI\r
	UPDATM	INSPTIM,DLAY01\r
\r
PASPRO:	LESTAB	INSPTIM\r
	PASSIVATE S,INSPNR\r
	CALL	SCOMMON\r
	EI\r
	LD	A,(TCCSTA)\r
	AND	7FH\r
	CP	10H\r
	JP	Z,CASE1		;IF STOP-INDICATION THEN CASE1\r
	CP	01H\r
	JP	Z,CASE1		;IF PLAY-INDICATION THEN CASE1\r
	CP	11H\r
	JP	Z,CASE2		;IF STOP+PLAY-INDICATION THEN CASE2\r
	CP	02H\r
	JP	Z,CASE1		;IF REVERSE-INDICATION THEN CASE1\r
	CP	12H\r
	JP	Z,CASE2		;IF STOP+REVERSE-INDICATION THEN CASE2\r
	CP	04H\r
	JP	Z,CASE1		;IF FORWIND-INDICATION THEN CASE1\r
	CP	14H\r
	JP	Z,CASE2		;IF STOP+FORWIND-INDICATION THEN CASE2\r
	CP	08H\r
	JP	Z,CASE1		;IF REWIND-INDICATION THEN CASE1\r
	CP	18H\r
	JP	Z,CASE2		;IF STOP+REWIND-INDICATION THEN CASE2\r
	CP	20H\r
	JP	Z,CASE1		;IF INCH FORWARD-INDICATION THEN CASE1\r
	CP	30H\r
	JP	Z,CASE2		;IF STOP+INCH FORWARD-INDICATION THEN CASE2\r
	CP	40H\r
	JP	Z,CASE1		;IF INCH REVERSE-INDICATION THEN CASE1\r
	CP	50H\r
	JP	Z,CASE2		;IF STOP+INCH REVERSE-INDICATION THEN CASE2\r
\r
\r
				;NO VALID MODE OF OPERATION\r
	LD	A,(CCBSTA)\r
	AND	0F0H\r
	CP	0F0H\r
	JP	NZ,I1		;IF ALL VOLTAGES FROM TC IS PRESENT THEN\r
	LD	HL,ECOND2	;BEGIN\r
	SET	1,(HL)		;  SET DEVICE CONTROL ERROR-BIT\r
	JP	PROEND		;END ELSE\r
I1:	LD	A,0FEH		;BEGIN\r
	CALL	OUTPUT		;  SET THE LTUX IN PLAY MODE\r
	JP	PROEND		;END\r
\r
;----------------------------------------------------------------------------\r
CASE1:				;SINGLE MODE OF OPERATION-INDICATION\r
	LD	B,A\r
	IN	A,(PORT1)\r
	CPL\r
	AND	7FH\r
	CP	B\r
	JP	Z,PROEND	;IF THE INDICATION IS NOT IN ACCORDANCE\r
				;WITH THE DESIRED MODE OF OPERATION THEN\r
	CALL	CHECK		;CHECK POWER-CONDITION\r
	JP	PROEND\r
\r
\r
CASE2:				;DOUBLE MODE OF OPERATION-INDICATION\r
	AND	6FH\r
	LD	B,A\r
	IN	A,(PORT1)\r
	CPL\r
	AND	7FH\r
	CP	B\r
	JP	Z,C21		;IF THE INDICATION IS NOT IN ACCORDANCE\r
				;WITH THE DESIRED MODE OF OPERATION THEN\r
	CALL	CHECK		;CHECK POWER-CONDITION\r
	JP	PROEND		;ELSE\r
C21:	LD	HL,OUTBIT	;BEGIN\r
	BIT	0,(HL)		;\r
	JP	Z,C22		;  IF OUTBIT = 1 THEN\r
				;  BEGIN\r
	RES	0,(HL)		;    RESET OUTBIT\r
	LD	A,CVAL		;\r
	LD	(COUNT),A	;    SET COUNT = CVAL\r
	JP	PROEND		;  END ELSE\r
C22:	LD	HL,COUNT	;  BEGIN\r
	DEC	(HL)		;    DECREMENT COUNT\r
	JP	NZ,PROEND	;    IF COUNT = 0 THEN\r
				;    BEGIN\r
	INC	(HL)		;      INCREMENT COUNT\r
	LD	HL,ECOND2	;\r
	SET	1,(HL)		;      SET DEVICE CONTROL ERROR-BIT\r
	JP	PROEND		;    END\r
				;  END\r
				;END\r
PROEND:	JP	PASPRO\r
\r
\r
CHECK:	LD	A,(CCBSTA)\r
	AND	0F0H\r
	CP	0F0H\r
	JP	NZ,CH1		;IF ALL VOLTAGES FROM THE TC IS PRESENT THEN\r
	LD	HL,ECOND2	;BEGIN\r
	SET	1,(HL)		;  SET DEVICE CONTROL ERROR-BIT\r
	RET			;END ELSE\r
CH1:	LD	A,B		;BEGIN\r
	CPL			;\r
	AND	7FH		;\r
	LD	B,A		;\r
	IN	A,(PORT1)	;\r
	AND	80H		;\r
	OR	B		;\r
	CALL	OUTPUT		;  SET LTUX IN INDICATED MODE OF OPERATION\r
	RET			;END\r
\r
\r
	DSEG\r
	DS	32\r
STAC05:\r
	END\r