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

⟦de821089a⟧ TextFile

    Length: 4399 (0x112f)
    Types: TextFile
    Names: »START.S«

Derivation

└─⟦a3edd706e⟧ Bits:30005202 8" Zilog MCZ/1 Floppy CR80FD_0028 ( TC 500 SEC. PROTOCOL BACK UP ! (V1) BB A1 820907 NCJ )
    └─ ⟦this⟧ »START.S« 
└─⟦e12128f26⟧ Bits:30005200 8" Zilog MCZ/1 Floppy CR80FD_0026 ( TC 500 SEC. PROTOCOL BB V1 830407 NCJ )
    └─ ⟦this⟧ »START.S« 

TextFile


*P 42
*L ON
;**************************************************************************
;*
;*		    START  MODULE
;*
;**************************************************************************
;
;		***** I/O ADDRESSES *****
;
LINK		EQU	00H
CTC		EQU	60H
PIO1		EQU	70H
PIO2		EQU	20H
SYNC		EQU	16H
 
 
	GLOBAL		START
	EXTERNAL	TABRES
	EXTERNAL	INTSIO,INTCTC,TIMER
	EXTERNAL	CHA1TAB,CHA2TAB,CHA3TAB,CHA4TAB
	EXTERNAL	TAB_RESET,PARAM_RESET,PROCESS_RESET
	EXTERNAL	PT1,PT2,PT3,PT4,CT1,CT2,CT3,CT4
	EXTERNAL	CH1TAB,CH2TAB,CH3TAB,CH4TAB
	EXTERNAL	SIOREADWRITE
;
TABSIZE	EQU	20H
;
*E
START:
;		***** INITIALIZE CPU *****
;
	DI			; DISABLE INTERRUPT
	IM	2		; SELECT INTERRUPT MODE 2
;
	LD	HL,TIMER
	LD	(INTCTC),HL
	LD	HL,INTCTC	; GET ADDRESS OF INTERRUPT TABLE
	LD	A,H		; PUT MSB OF ADDRESS
	LD	I,A		; INTO INTERUPT REGISTER
;
;		***** INITIALIZE PIO'S (8255) *****
;
	LD	BC,PIO2+3	; C = CONTROL ADDRESS OF PIO1
	LD	A,8AH		; PORT A + LOWER-C OUTPUT, B + UPPER-C = INPUT
	OUT	(C),A		; SEND IT
	XOR	A
	DEC	C		; C = PORT C ADDRESS
	OUT	(C),A		; SET PIO1 PORT A AND C TO 0
	DEC	C
	DEC	C
	LD	A,0FFH
	OUT	(C),A
;
	LD	BC,PIO1+3	; C = CONTROL ADDRESS OF PIO1
	LD	A,81H		; PORT A + B + UPPER-C = INPUT, LOWER-C = OUTPT
	OUT	(C),A		; SEND IT
	LD	A,60H
	DEC	C		; C = PORT C ADDRESS
	OUT	(C),A		; SET OUTPUTS TO 0
	LD	A,0FH
	DEC	C		; C = PORT B ADDRESS
	OUT	(C),A		; SET PORT B TO 0F
	DEC	C
	XOR	A
	OUT	(C),A		; SET PORT A TO 0
;
;		***** INITIALIZE CTC *****
;
	LD	C,CTC		; GET CTC ADDRESS
	LD	A,0B5H		; LOAD CHANNEL 0 AS
	OUT	(C),A		; INTERVAL TIMER
	LD	A,195		; LOAD TIME CONSTANT (195*64uS = CA. 12.5 MSEC)
	OUT	(C),A		; SEND IT TO CTC ( START TIMER )
	OUT	(C),L		; OUTPUT INTERUPT VECTOR TO CTC
;
;                **** INITIALIZE SIO *****
;
	LD	IY,CHA1TAB
	CALL	CHASIO
	LD	IY,CHA2TAB
	CALL	CHASIO
	LD	IY,CHA3TAB
	CALL	CHASIO
	LD	IY,CHA4TAB
	CALL	CHASIO
;
	;*** RESET CHXTAB ***
;
	LD	HL,CHA1TAB
	CALL	TAB_RESET
	LD	HL,CHA2TAB
	CALL	TAB_RESET
	LD	HL,CHA3TAB
	CALL	TAB_RESET
	LD	HL,CHA4TAB
	CALL	TAB_RESET
;
	;*** RESET PARAMTAB USED BY PLZ PROCEDURES ***
;
	LD	HL,PT1
	CALL	PARAM_RESET
	LD	HL,PT2
	CALL	PARAM_RESET
	LD	HL,PT3
	CALL	PARAM_RESET
	LD	HL,PT4
	CALL	PARAM_RESET
;
	;*** RESET PROCESSTAB USED BY PLZ PROCEDURES ***
;
	LD	HL,CH1TAB
	CALL	PROCESS_RESET
	LD	HL,CH2TAB
	CALL	PROCESS_RESET
	LD	HL,CH3TAB
	CALL	PROCESS_RESET
	LD	HL,CH4TAB
	CALL	PROCESS_RESET
;
	;*** RESET CONFIGTAB ***
;
	LD	HL,CT1
	PUSH	HL
	CALL	TABRES
	LD	HL,CT2
	PUSH	HL
	CALL	TABRES
	LD	HL,CT3
	PUSH	HL
	CALL	TABRES
	LD	HL,CT4
	PUSH	HL
	CALL	TABRES
 
	RET
;ECHO \f



;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;CHASIO: INITIALIZING PROGRAMM FOR SPECIFIED SIO CHANNEL
;FILE:	  INISIO.SRC
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

 

CHASIO	DI
	LD BC,60D8H
	CALL	SIOREADWRITE	;RESET: CHANNEL,TX-UNDERRUN/EOM LATCH
	LD BC,6080H
	CALL	SIOREADWRITE	;TX-CRC GENERATOR RESET
	LD BC,6040H
	CALL	SIOREADWRITE	;RX-CRC GENERATOR RESET
				;WR04:
	LD	E,(IY+22H)
	LD	L,(IY+24H)
	LD	H,(IY+25H)
	LD	BC,02H
	ADD	HL,BC
	LD	(HL),E
	LD	A,C
	LD	C,(IY+1DH)
	OUT	(C),A
	LD	A,E
	OUT	(C),A
				;      *1 CLOCK MODE
				;      16 BIT SYNCH CHATACTER
				;      SYNCH MODES ENABLE
				;      PARITY ENABLE
				;      PARITY = EVEN
	LD BC,0E411H
	CALL	SIOREADWRITE
	LD BC,6010H
	CALL	SIOREADWRITE	;RESET EXTERNAL/STATUS INTERRUPT
				;WR05:
				;      DTR AND RTS CONTROLED BY LINE
				;      ACCESS MODULE
				;      TX 7 BIT CHARACTER
				;      TX ENABLE
			     	;      TX CRC DISABLE
				;      CRC16 NOT SELECTED
				;      BREAK NOT USED
	LD BC,0E528H
	CALL	SIOREADWRITE
				;WR06:
				;      SYNCH CHARACTER LOADED
	LD BC,0E616H
	CALL	SIOREADWRITE
				;WR07: 
				;      SYNCH CHARACTER LOADED
	LD BC,0E716H
	CALL	SIOREADWRITE
				;WR03:
				;      RX 7 BIT CHARACTER
				;      AUTO ENABLE
				;      ENTER HUNT PHASE
				;      SYNCH CHARACTER LOAD INHIBIT
				;      RX ENABLE
				;      ADDRESS SEACH MODE NOT USED
				;      RX-CRC DISABLE
	LD BC,0E373H
	CALL	SIOREADWRITE
	LD BC,6010H
	CALL	SIOREADWRITE	;SET EXTERNAL/STATUS INTERRUPT
				;WR01:
				;      INTTERRUPT ON ALL RECEIVED CHA-
				;      RACTERS 
				;      WAIT/REAY NOT USED
				;      STATUS AFFECTS VECTOR
				;      TX INTERRUPT ENABLE
				;      EXTERNAL/STATUS INTERUPT ENABLE
	LD BC,0E117H
	CALL	SIOREADWRITE
	LD	L,(IY+24H)
	LD	H,(IY+25H)
	LD	DE,03H
	ADD	HL,DE
	RES	1,(HL)
	RES	4,(HL)
	EI
	RET
	END
;ECHO \f