home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0600
/
CCE_0628.ZIP
/
CCE_0628.PD
/
FALCON_D.ATA
/
FALCON3.TXT
< prev
Wrap
Text File
|
1996-03-01
|
10KB
|
237 lines
FALCON REGISTERS 3
****************************************************************************
2 5 6 C O L O R - R E G I S T E R S ( F A L C O N )
****************************************************************************
$FFFF9800 [R/W] :$FC 765432__ ................................ Color $00 Red
||||||
++++++------ 0-63: Red
$FFFF9801 [R/W] :$FC 765432__ .............................. Color $00 Green
||||||
++++++------ 0-63: Green
$FFFF9802 [R/W] :$00 ******
$FFFF9803 [R/W] :$00 765432__ ............................... Color $00 Blue
||||||
++++++------ 0-63: Blue
$FFFF9804 [R/W] :$FC Color $01 Red
$FFFF9805 [R/W] :$FC Color $01 Green
$FFFF9806 [R/W] :$00 ******
$FFFF9807 [R/W] :$00 Color $01 Blue
: : : :
: : : :
: : : :
$FFFF9BFC [R/W] :$00 Color $FF Red
$FFFF9BFD [R/W] :$00 Color $FF Green
$FFFF9BFE [R/W] :$00 ******
$FFFF9BFF [R/W] :$00 Color $FF Blue
****************************************************************************
D S P - H O S T - I N T E R F A C E ( FA L C O N )
****************************************************************************
$FFFFA200 [R/W] :$00 76543_10 ........................ Host-Control-Register
||||| ||
||||| |+---- 1: enable 'DSP-had-send'-IRQ
||||| +----- 1: enable 'DSP-ready to receive'-IRQ
||||+------- Hf2-Bit, userdef. Infobit from DSP to Host
|||+-------- Hf3-Bit, userdef. Infobit from DSP to Host
+++--------- set to zero
$FFFFA201 [R/W] :$12 <=====
$FFFFA202 [R/W] :$06 _6543_10 ..........................Host-Status-Register
|||| ||
|||| |+---- 0: DSP busy
|||| | 1: DSP had send
|||| +----- 0: DSP busy
|||| 1: DSP ready to receive
|||+------- Hf0-Bit, userdef. Infobit from Host to DSP
||+-------- Hf1-Bit, userdef. Infobit from Host to DSP
++--------- set to zero
$FFFFA203 [R/W] :$0F <=====
$FFFFA204 [R/W] :$00 ________ ............................. I/O-Data-Path HH
$FFFFA205 [R/W] :$00 76543210 ............................. Hi
$FFFFA206 [R/W] :$00 76543210 ............................. Mi
$FFFFA207 [R/W] :$00 76543210 ............................. Lo
$03FC-$03FF : DSP-IRQ-vector. This vector is used for receiving
or/and sending data from/to the DSP in interrupt-
mode.
HOW to send datawords to DSP in handshaking-technic:
1. step: wait until DSP ready to receive ($A202.w Bit 1 turns to 1)
2. step: write data to $A204.w-$A207.w
3. step: if you want to send once again>> goto 1. step
Example: This routine corresponds to the DSP-XBIOS:
LEA BUFFER(PC),A0 ;Buffer with DSP-Words
MOVE.W #DSP_WORDS,D0 ;transfer max. 65535 DSP-Words
LOOP: BTST #0,$FFFFA202.W ;is DSP ready to receive?
BEQ.S LOOP
4 bytes: 'MOVE.L (A0)+,$FFFFA204.W ;transfer 4 bytes
;the highest byte will be ignored
;by the DSP
3 bytes: 'MOVE.B (A0)+,$FFFFA205.W ;transfer
MOVE.B (A0)+,$FFFFA206.W ;3 bytes
MOVE.B (A0)+,$FFFFA207.W ;(1 DSP-Word has 24 Bit)
2 bytes: 'MOVE.W (A0)+,D1 ;get 2 bytes
EXT.L D1 ;sign-extension
MOVE.W D1,$FFFFA204.W ;transfer 4 bytes
1 byte: 'MOVE.B #0,$FFFFA205.W ;transfer
MOVE.B #0,$FFFFA206.W ;1 byte
MOVE.B (A0)+,$FFFFA207.W
DBRA D0,LOOP
HOW to receive datawords from DSP in handshaking-technic:
1. step: wait until DSP had send ($A202.w Bit 0 turns to 1)
2. step: read data from $A204.w-$A207.w
3. step: if you want to receive once again >> goto 1. step
Example: This routine corresponds to the DSP-XBIOS
LEA BUFFER(PC),A0 ;Buffer with DSP-Words
MOVE.W #DSP_WORDS,D0 ;transfer max. 65535 DSP-Words
LOOP: BTST #1,$FFFFA202.W ;had DSP send?
BEQ.S LOOP
4 bytes: 'MOVE.L $FFFFA204.W,(A0)+ ;transfer 4 bytes
;the highest byte is zero
3 bytes: 'MOVE.B $FFFFA205.W,(A0)+ ;transfer
MOVE.B $FFFFA206.W,(A0)+ ;3 bytes
MOVE.B $FFFFA207.W,(A0)+ ;(1 DSP-Word has 24 Bit)
2 bytes: 'MOVE.B $FFFFA206.W,(A0)+ ;transfer
MOVE.W $FFFFA207.W,(A0)+ ;2 bytes
1 byte: 'MOVE.B $FFFFA206.W,D1 ;dummy-read, nobody knows why.
MOVE.B $FFFFA207.W,(A0)+ ;transfer 1 byte
DBRA D0,LOOP
NOTE: it is possible to skip the 1. step. This mode increases the
transfering-rate, but the DSP-program must be able to read the data
immediately, otherwhise the data will be overwritten by the next
one. It is important that the DSP is ready to transfer, therefor
execute the 1. step before transfering data!
(1. step > 2. step > 2. step > 2. step ......until end)
HOW to send datawords to DSP in interrupt-technic:
1. step: IRQ-Instalation in special order:
1.: write the IRQ-program-address in the DSP-IRQ-vector
2.: write register $A203.w with $FF
3.: set bit 1 of Host-Control-Register
now the DSP-IRQ is installed and enabled!
2. step: the style of the IRQ-vector-routine:
1.: read data from $A204.w-$A207.w
2.: end the IRQ-routine with a RTE
3. step: you have two possibilities to stop the IRQ-transfer:
1.: you clear bit 1 in the main program
2.: you clear bit 1 in the IRQ-program
HOW to receive datawords fron DSP in interrupt-technic:
1. step: IRQ-Instalation in special order:
1.: write the IRQ-program-address in the DSP-IRQ-vector
2.: write register $A203.w with $FF
3.: set bit 0 of Host-Control-Register
now the DSP-IRQ is installed and enabled!
2. step: the style of the IRQ-vector-routine:
1.: write data to $A204.w-$A207.w
2.: end the IRQ-routine with a RTE
3. step: you have two possibilities to stop the IRQ-transfer:
1.: you clear bit 0 in the main program
2.: you clear bit 0 in the IRQ-program
NOTE: You have only one exception for sending and receiving data. But
it is possible to send and receive data simultanously. In the IRQ-
program you have to test bit 0/1 of the Host-Status-Register to
get information about the transfering direction!
****************************************************************************
M U L T I - F U N C T I O N - P E R I P H E R A L MC 68901 ( S T )
****************************************************************************
$FFFFFA00 [R/-] :$8F ******
$FFFFFA01 [R/W] :$ED GPIP-Data
$FFFFFA02 [R/-] :$8F ******
$FFFFFA03 [R/W] :$04 Active-Edge
$FFFFFA04 [R/-] :$8F ******
$FFFFFA05 [R/W] :$00 Data-Direction
$FFFFFA06 [R/-] :$8F ******
$FFFFFA07 [R/W] :$DE Interrupt-Enable A
$FFFFFA08 [R/-] :$8F ******
$FFFFFA09 [R/W] :$64 Interrupt-Enable B
$FFFFFA0A [R/-] :$8F ******
$FFFFFA0B [R/W] :$02 Interrupt-Pending A
$FFFFFA0C [R/-] :$8F ******
$FFFFFA0D [R/W] :$60 Interrupt-Pending B
$FFFFFA0E [R/-] :$8F ******
$FFFFFA0F [R/W] :$00 Interrupt-In-Service A
$FFFFFA10 [R/-] :$8F ******
$FFFFFA11 [R/W] :$00 Interrupt-In-Service B
$FFFFFA12 [R/-] :$8F ******
$FFFFFA13 [R/W] :$5E Interrupt-Mask A
$FFFFFA14 [R/-] :$8F ******
$FFFFFA15 [R/W] :$64 Interrupt-Mask B
$FFFFFA16 [R/-] :$8F ******
$FFFFFA17 [R/W] :$48 Interrupt-Vektor
$FFFFFA18 [R/-] :$FF ******
$FFFFFA19 [R/W] :$00 Timer-A-Control
$FFFFFA1A [R/-] :$8F ******
$FFFFFA1B [R/W] :$00 Timer-B-Control
$FFFFFA1C [R/-] :$8F ******
$FFFFFA1D [R/W] :$51 Timer-C+D-Control
$FFFFFA1E [R/-] :$8F ******
$FFFFFA1F [R/W] :$00 Timer-A-Data
$FFFFFA20 [R/-] :$8F ******
$FFFFFA21 [R/W] :$FF Timer-B-Data
$FFFFFA22 [R/-] :$9F ******
$FFFFFA23 [R/W] :$AA Timer-C-Data
$FFFFFA24 [R/-] :$8F ******
$FFFFFA25 [R/W] :$02 Timer-D-Data
$FFFFFA26 [R/-] :$8F ******
$FFFFFA27 [R/W] :$00 Synchronous-Character
$FFFFFA28 [R/-] :$8F ******
$FFFFFA29 [R/W] :$88 USART-Control
$FFFFFA2A [R/-] :$8F ******
$FFFFFA2B [R/W] :$09 Receiver-Status
$FFFFFA2C [R/-] :$FF ******
$FFFFFA2D [R/W] :$85 Transmitter-Status
$FFFFFA2E [R/-] :$CF ******
$FFFFFA2F [R/W] :$FF USART-Data
****************************************************************************
K E Y B O A R D / M I D I - A C I A S 6850 ( S T )
****************************************************************************
$FFFFFC00 [R/-] :$83 Keyboard-Status
[-/W] :$83 Keyboard-Control
$FFFFFC01 [R/-] :$FF ******
$FFFFFC02 [R/-] :$9C Keyboard-Receive
[-/W] :$9C Keyboard-Send
$FFFFFC03 [R/-] :$FF ******
$FFFFFC04 [R/-] :$02 Midi-Status
[-/W] :$02 Midi-Control
$FFFFFC05 [R/-] :$FF ******
$FFFFFC06 [R/-] :$02 Midi-Receive
[-/W] :$02 Midi-Send
$FFFFFC07 [R/-] :$FF ******
****************************************************************************
? ? ? ? ? ?
****************************************************************************
$FFFFFF82 [R/-] :$1C new
$FFFFFF83 [R/-] :$00 new
******************************** END OF FILE *******************************