CPC Minibooster

Der Minibooster ist eine serielle Schnittstelle für den Amstrad CPC, die von TotO entwickelt wurde. Sie ist größtenteils kompatibel zum CPC Booster(+) benötigt aber, u.a. durch die andere Taktfrequenz des verwendeten Atmel Mikrocontrollers, andere Einstellung für die Bitraten. Weitere Informationen finden sich im CPC Wiki.

Wichtige Register / Befehle

Der Minibooster gibt bei einem IN Befehl seine Hardwarekennung zurück. In FF00 steht dann 0xAA, in FF01 0xEE.

Daten ausgeben (FF08)

Die zu sendenden Daten werden über den Port FF08 einfach an den Minibooster übergeben. Die komplette Sendeoperation wird dann vom Minibooster übernommen.

Beispiel in BASIC:

A=X    
OUT &FF08,A

Beispiel in Assembler:

LD BC,&FF08
LD A,X
OUT(C),A

Daten einlesen (FF1C / FF1D)

Empfangen werden die Daten bei aktiviertem Buffer über die Adresse FF1D. In FF1C stehen die Anzahl der im Buffer befindlichen Daten. Beschreibt man FF1C, so wird der Eingabebuffer gelöscht.

Beispiel in BASIC:

10 OUT &FF0B,16			;Enable the buffer	
20 OUT &FF1C,0			;Reset the buffer
30 IF INP(&FF1C)=0 THEN 30	;Wait for incoming characters in the buffer
40 ?INP(&FF1D)			;Print data from the buffer
50 GOTO 30

Beispiel in Assembler:

		LD A,16
		LD BC,&FF0B
		OUT(C),A			;Enable the buffer
		LD A,1
		LD BC,&FF1C
		OUT(C),A			;Reset the buffer
 
LOOP:	LD BC,&FF1C
		IN A,(C)
		CP A,0				;Loop until a character appears	
		JR Z,LOOP
		LD BC,&FF1D
		IN A,(C)			;Read data from buffer
		CALL &BB5A			;Print data
		JR LOOP

Kommunikatonsparameter einstellen

Zur Konfiguration der Kommunikationsparameter 8N1 wird FF07 auf 0x06 gesetzt. FF0B wird auf 0x16 gesetzt (Buffer eingeschaltet, Halbduplex, TX AUTO POLLING).

In den mitgelieferten Beispielen wird die Konfiguration für 9600bps, 115kbps und 230kbps gezeigt. Folgende Werte können für FF04 gesetzt werden:

Geschwindigkeit Wert in FF04
9600 bps 95
115200 bps 7
230400 bps 3
amstradcpc/minibooster.txt · Zuletzt geändert: 2015/04/04 15:10 von octoate
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0