J041 SCPUB

Software

Consult the current Arcom catalogue for details of software to run on the SCPUB. The following program is supplied as a simple demonstration of how the on-board devices (CTC and DART) may be used.

		TITLE	'Demonstration program for SCPUB'
0008		CTC0	EQU	8
0009		CTC1	EQU	CTC0+1
000A		CTC2	EQU	CTC0+2
000B		CTC3	EQU	CTC0+3
0004		DRTAD	EQU	4
0005		DRTBD	EQU	DRTAD+1
0006		DRTAC	EQU	DRTAD+2
0007		DRTBC	EQU	DRTAD+3
0000		ASEG
		ORG	0000H
		; initialise CTC and DART for serial I/O
		; on channel A at 9600 baud
0000 31 FF00	INIT:	LD	SP,0FF00H
0003 3E 47		LD	A, 47H
0005 D3 08		OUT	(CTC0) ,A
0007 3E 0D		LD	A,13		; 9600 baud
0009 D3 08		OUT	(CTCO) ,A
000B 06 0C		LD	B,DRTLEN	; initialise DART
000D 0E 06		LD	C,DRTAC
000F 21 001C		LD	HL,DRTTAB
0012 ED B3		OTIR	
		; now execute user program
0014 CD 0030	LOOP:	CALL	CONIN		;This program reflects input
0017 CD 0038		CALL	CONOUT	;
001A 18 F8		JR	LOOP
		; Data to initialise DART
		DRTTAB:	DEFW
001C 0001		DEFW	00001H		; R1 Disable everything
001E C003		DEFW	0C003H		; R2 Rx 8 bits/char 
0020 C103		DEFW	0C103H		; R3 Enable Rx 
0022 4C04		DEFW	04C04H		; R4 x16 clock, 2 stop bits, no parity
0024 6005		DEFW	06005H		; R5 Tx 8 bits/char R5 Enable Tx
0026 6805		DEFW	06805H
000C		DRTLEN	EQU	$-DRTTAB	; Length of table
		; I/O routines
		; Check for input
		; Returns	A = 0	 if no input available 
		;		A = FF if input is available
0028 DB 06	CONST:	IN	A, (DRTAC)
002A E6 01		AND	1
002C C8		RET	Z
002D F6 EF		OR	0FFH
002F C9	
		; Input a character 
		; Returns A = char
0030 CD 0028	CONIN:	CALL	CONST
0033 28 FB		JR	Z,CONIN		; Wait for input 
0035 0B 04		IN	A,(DRTAD)	; Read character
0037 C9		RET
		; Output a character 
		; Given A = char
0038 F5 	CONOUT: PUSH	AF
0039 DB 06	CONOT1:	IN	A, (DRTAC)
0038 E6 04		AND	4
003D 28 FA		JR	Z,CONOT1	; Wait for previous
003F F1		POP	AF			; char to go
0040 D3 04		OUT	(DRTAD),A	; Write character
0042 C9		RET
			END

See software files