J041 SCPUB
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