You will not be able to post if you are still using Microsoft email addresses such as Hotmail etc
See here for more information viewtopic.php?f=20&t=7296
DO NOT USE DEVICES WHERE THE IP CHANGES CONSTANTLY!
At this time it is unfortunately not possible to white list users when your IP changes constantly.
You may inadvertently get banned because a previous attack may have used the IP you are now on.
So I suggest people only use fixed IP address devices until I can think of a solution for this problem!

Falcon + CUBASE AUDIO + SCSI - Experiences?

Problems with your machine in general.
User avatar
Badwolf
Site sponsor
Site sponsor
Posts: 2977
Joined: Tue Nov 19, 2019 12:09 pm

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by Badwolf »

whomper wrote: Sat Sep 27, 2025 4:21 pm Could it mean the issue is DSP and clock are getting out of sync?
Won't be a clock sync problem, but it could be a handshaking problem or some other incompatibility we've yet to identify.

Trying to getting that cartridge test to pass will be good start. Exxos and I should have our DSP sockets soon to make up a harness. My debugging will probably have to wait until after CL4, but hopefully we get can that passing which would rule out something utterly fundamental, I hope.

BW
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
User avatar
exxos
Site Admin
Site Admin
Posts: 27278
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by exxos »

Use this pinout .. .@Badwolf I suggest doing 12-13 link first ! :lol:
1 - 26
2 -( 1k )- 21
3 - 22
4 - 19
6 -( 1k )- 21
11 - 24
12 - 13
15 - 23

IMG_3733.JPG
IMG_3733.JPG (74.26 KiB) Viewed 144 times

STOCK Falcon.
IMG_3734.JPG
IMG_3734.JPG (77.06 KiB) Viewed 144 times

DFB1X
IMG_3735.JPG
IMG_3735.JPG (51.77 KiB) Viewed 144 times
User avatar
Badwolf
Site sponsor
Site sponsor
Posts: 2977
Joined: Tue Nov 19, 2019 12:09 pm

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by Badwolf »

Aha! Somewhat of a smoking gun.

The source for the cartridge is available on dev-docs.org, IIRC. Perhaps we'll be able to transplant that to a normal program and figure out a little what's amiss?

BW
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
User avatar
exxos
Site Admin
Site Admin
Posts: 27278
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by exxos »

Badwolf wrote: Mon Sep 29, 2025 1:29 pm The source for the cartridge is available on dev-docs.org, IIRC. Perhaps we'll be able to transplant that to a normal program and figure out a little what's amiss?
Just found it.

falc030-diag-source-rev1_21-14OCT92.zip
(673.45 KiB) Downloaded 8 times

I guess it's this DSP.S ...

Code: Select all

	.include hardware
	.include defs
	.include nvram
	.include macros
	.include "scrn16.gbl"
	.extern pasmsg,falmsg,erflg0,dspreg
	.extern	DSPRAMTEST,DSPSSITEST,dsptest

*********************************
* DSP.S : Sparrow DSP routines
*--------------------------------
* V0.0 : 26MAR92 : RWS : Works
* V0.1 : 20MAY92 : RWS : Hacked up for RTC status bits.
* V0.2 : 11JUL92 : RWS : Changed for Rev. 3 boards
*--------------------------------
 DSPREV = 2

.macro TRISTATEMATRIX
	move.w	#$0000,DATAMXSRC
	move.w	#$0000,DATAMXREC
.endm

.macro SSISTATEMATRIX
;	move.w	#$0010,DATAMXSRC
;	move.w	#$0010,DATAMXREC
	move.w	#$0008,DACRECCTRL	; global sound reset
	nop
	move.w	#$0000,DACRECCTRL
;	move.w	#$0000,DATAMXSRC
;	move.w	#$0000,DATAMXREC
.endm

	.text
;
; DSP Host interface constants
;
.if DSPREV = 0
DSPICR	=	$ffffa201		; Interrupt Control Register
DSPCVR	=	$ffffa203		; Command Vector Register
DSPISR	=	$ffffa205		; Interrupt Status Register
DSPIVR	=	$ffffa207		; Interrupt Vector Register
DSPRXH	=	$ffffa20b		; Receive byte High
DSPRXM	=	$ffffa20d		; Receive byte Mid
DSPRXL	=	$ffffa20f		; Receive byte Low
DSPTXH	=	$ffffa20b		; Transmit byte High
DSPTXM	=	$ffffa20d		; Transmit byte Mid
DSPTXL	=	$ffffa20f		; Transmit byte Low
.endif
.if DSPREV = 1
DSPICR  =       $ffffa200
DSPCVR  =       $ffffa202
DSPISR  =	$ffffa204
DSPIVR  =       $ffffa206
DSPRXH  =       $ffffa20a
DSPRXM  =       $ffffa20c
DSPRXL  =       $ffffa20e
DSPTXH  =       $ffffa20a
DSPTXM  =       $ffffa20c
DSPTXL  =       $ffffa20e
.endif
.if DSPREV = 2
DSPICR	=	$ffffa200		; Interrupt Control Register
DSPCVR	=	$ffffa201		; Command Vector Register
DSPISR	=	$ffffa202		; Interrupt Status Register
DSPIVR	=	$ffffa203		; Interrupt Vector Register
DSPRXH	=	$ffffa205		; Receive byte High
DSPRXM	=	$ffffa206		; Receive byte Mid
DSPRXL	=	$ffffa207		; Receive byte Low
DSPTXH	=	$ffffa205		; Transmit byte High
DSPTXM	=	$ffffa206		; Transmit byte Mid
DSPTXL	=	$ffffa207		; Transmit byte Low
.endif

; HOSTVECT =	$3fc			; interrupt vector number 255

; define test result codes for SSI loopback
LB_TESTING	EQU	$000050		; testing begun (not passed)
LB_TIMEOUT	EQU	$000051		; no data received (failure)
LB_NOT_EQUAL	EQU	$000052		; data recv != data xmit (failure)
LB_SUCCESS	EQU	$000053		; test successful (pass)

;* Test IDs for RAM1 Test
MT_TESTING		EQU	$111111	; test started, but not yet passed
MT_SUCCESS		EQU	$123456	; Test passed
MT_ALL_ONES		EQU	$200000 ; Leave the LS bits = 0 for OR ing with the address.
MT_ALL_ZEROS		EQU	$300000
MT_ALL_AA		EQU	$400000
MT_ALL_55		EQU	$500000
MT_RANDOM		EQU	$600000
MT_WALK_ONES		EQU	$700000


*-------------------------
* DSP TESTS FROM MENU
;dsptest:
;	lea.l	dspm,a5
;	bsr	dsptst
;	bsr	DSPRAMTEST
;	move.l	a5,d2
;	bsr	DSPSSITEST	; test DSP SSI CONNECTOR
;	cmp.l	#pasmsg,a5
;	bne	.Fail
;	cmp.l	#pasmsg,d2
;	bne	.Fail
;.Pass:
;	RTCSETPASS #t_DSP
;	rts
;.Fail:
;	RTCSETFAIL #t_DSP
;	lea.l	falmsg,a5
;	move.w	#red,palette
;	rts

.if 0
*-------------------------
* DSPLoad - load a program into DSP
* entry: a0 = address of DSP code in 32 bit LW's (upper byte = 0)
* (terminated by $ffffffff)
* format is {DATA P0 implied} $00XXXXXX ... $ffffffff (endmark)
* exit:	DSP ready to go..
DSPLoad:
	movem.l	d0-d1/a0,-(sp)
; - RESET DSP
;	bset.b	#3,mfp+ddr	; set MFP i/o bit 3 to output
;	bclr.b	#3,mfp+gpip	; set bit 3 i/o low
	
	bsr	DSPRead		;get any junk out of host port

	move.b	#7,psgsel
	move.b	#$c0,psgwr
	move.b	#14,psgsel
	move.b	#00,psgwr
	move.b	#14,psgsel
	move.b	#$10,psgwr

	move.w	#$ffff,d1	; wait a bit (was : 1 tick of 200Hz) dunno if this is long enuf.
.dly:
	nop			; bubbles in the pipe!
	nop
	dbra	d1,.dly
	
	move.b	#14,psgsel
	move.b	#00,psgwr

;	bset.b	#3,mfp+gpip	; set bit 3 high

; - DUMP IN DATA
.dump0:	
	move.l	(a0)+,d0	; get first word
	bmi	.exit
	bsr	.DoLoad
	clr.w	d1
	move.b	d0,d1
	sub.w	#1,d1
	move.l	#0,d0
.lp:				; fill up NOP space (to $40 usually)
	bsr	.DoLoad
	nop
	dbra	d1,.lp
.dump1:
	move.l	(a0)+,d0	; get next DSP data word
	bmi	.exit		; non zero MSbit = exit
	bsr	.DoLoad		; no, send it to DSP
	bra	.dump1     
.exit:
	movem.l	(sp)+,d0-d1/a0
	rts

*---------------------------
* loads a longword in d0 into DSP (lower 3 bytes ONLY)
.DoLoad:
	move.l	d0,DSPTXH-1
;	swap	d0		; I hope handshaking is in hardware
;	move.b	d0,DSPTXH
;	rol.l	#8,d0
;	move.b	d0,DSPTXM
;	rol.l	#8,d0
;	move.b	d0,DSPTXL
	rts
.endif
*-------------------------
* DSPLoad - load a program into DSP
* entry: a0 = address of DSP code in 32 bit LW's (upper byte = 0)
* (terminated by $ffffffff)
* format is {DATA P0 implied} $00XXXXXX ... $ffffffff (endmark)
* exit:	DSP ready to go..
OldDSPLoad:
	movem.l	d0-d1/a0,-(sp)
; - RESET DSP
;;	bset.b	#1,DDR2		; set MFP i/o bit 3 to output
;;	bclr.b	#1,GPIP2		; set bit 3 i/o low

	move.b	#7,psgsel
	move.b	#$c0,psgwr
	move.b	#14,psgsel
	move.b	#00,psgwr
	move.b	#14,psgsel
	move.b	#$10,psgwr

	move.l	#$ffff,d1	; wait a bit (was : 1 tick of 200Hz) dunno if this is long enuf.
.dly:
	nop			; bubbles in the pipe!
	nop
	dbra	d1,.dly
	
	move.b	#14,psgsel
	move.b	#00,psgwr

;	bset.b	#1,GPIP2	; set bit 3 high

; - DUMP IN DATA
.dump1:
	move.l	(a0)+,d0	; get next DSP data word
	bmi	.exit		; non zero MSbit = exit
	bsr	.DoLoad		; no, send it to DSP
	bra	.dump1     
.exit:
	movem.l	(sp)+,d0-d1/a0
	rts

*---------------------------
* loads a longword in d0 into DSP (lower 3 bytes ONLY)
.DoLoad:
	move.l	d0,DSPTXH-1
;	swap	d0		; I hope handshaking is in hardware
;	move.b	d0,DSPTXH
;	rol.l	#8,d0
;	move.b	d0,DSPTXM
;	rol.l	#8,d0
;	move.b	d0,DSPTXL
	rts
*---------------------------
* loads d0.l from DSP (lower 3 bytes ONLY)
DSPRead:			; I hope handshaking is in hardware
	move.l	DSPTXH-1,d0
	andi.l	#$00ffffff,d0
;	clr.l	d0
;	move.b	DSPTXH,d0
;	rol.l	#8,d0
;	move.b	DSPTXM,d0
;	rol.l	#8,d0
;	move.b	DSPTXL,d0
	rts

*----------------------------
* DSPRun - starts the DSP executing
* if less than 512 words loaded into DSP ram
DSPRun:
;- SET HF0 in Host ICR
	bset.b	#3,DSPICR	;set flag 0 to 1 to signal end of transfer
	rts

*------------------------------------
* SSI LOOPBACK TEST (comments from SSI.asm)
* Test of DSP56k's SSI port by connecting it back to itself. 
* To perform this test, connect:
*	STD to SRD
*	SCK to SC0	(SCK output, SC0 input, asynchronous mode clocks)
*	SC1 to SC2	(mode to be defined)

;*  The SSI loopback test will begin by writing LB_TESTING to the 56k's
;*  Host Interface Data Register, HTX.  It will then try to send and
;*  receive LB_NUM_WORDS via the SSI in loopback mode.  If the received
;*  data does not match the transmitted data, it will return LB_NOT_EQUAL
;*  to the HTX register.  If the test times-out while waiting for data to
;*  be received, then it will send a LB_TIMEOUT to the HTX register.  If 
;*  it sends and receives all of the words correctly, it will send a
;*  LB_SUCCESS to the HTX register.  If the test fails completely, then
;*  LB_TESTING will be left in the HTX register, so the host (your 68xxx
;*  CPU) should give up after 2-3 seconds and consider the test hung (a
;*  failure).  See the section, Initialize SSI Port (baud rate
;*  determination by setting CRA_BITS), for timing information.

* You can test this program by disconnecting wires in the loopback.
* If you disconnect STD-SRD you should get a LB_NOT_EQUAL
* If you disconnect SCK-SC0 you should get a LB_TIMEOUT
* If you disconnect SC1-SC2 you should get a LB_TIMEOUT

DSPSSITEST:
; - TURN OFF CACHE
;;RWS.TPEX	move.l	d2,-(sp)
;;	clr.b	d2		; OnceFlag
;;RWS.TPE	bclr.b	#5,SPControl	; turn off bus errors. 
	movecacrd0
	move.l	d0,d3		; save old cache status
	move.l	#$00000000,d0	; DISABLE I & D CACHES on 030
	moved0cacr

	SSISTATEMATRIX

	lea.l	DSPL0msg,a5
	bsr	dspmsg
.ReTest:
;RWS.TPED	move.b	#'.',d1
;	bsr	ascii_out

   	lea.l	DSPSSIHEX,a0
	bsr	OldDSPLoad
	bsr	DSPRun
	move.l	#$fffff,d1
.isstart:
	btst.b	#0,DSPISR	; wait for data ready bit
	bne	.getdata
	subq.l	#1,d1
	bne	.isstart	
	bra	.notstart	; timed out
.getdata:
	bsr	DSPRead
	cmpi.l	#LB_TESTING,d0	;if not testing, error not started
	beq	.started
	bra	.notstart
.started:
	move.l	#$fffff,d1
.isdone:
	btst.b	#0,DSPISR	; wait for data ready bit
	bne	.getdata2
	subq.l	#1,d1
	bne	.isdone	
	bra	.notdone	; timed out while running
.getdata2:
	bsr	DSPRead		; the next thing out will be a message
 	cmpi.l	#LB_SUCCESS,d0
	beq	.success
	cmpi.l	#LB_TIMEOUT,d0
	bne	.ntime
;;RWS.TPED	cmpi.b	#3,d2		;OnceFlag
;;	bgt	.Lost
;;	addq.b	#1,d2		; ok, one more try
;;	bra.s	.ReTest
.Lost:
	lea.l	DSPL2err,a5	; timeout error
	bra	.fail
.ntime:
	cmpi.l	#LB_NOT_EQUAL,d0	;not same data error
	bne	.notdone
	lea.l	DSPL3err,a5
	bra	.fail
.notstart:
	lea.l	DSPL0err,a5
	bra	.fail
.notdone:
	lea.l	DSPL1err,a5
	bsr	dspmsg
.fail:				; - DO FAIL STUFF
	or.b	#1,erflg0
	bsr	dspmsg		;show off message
	movea.l	#falmsg,a5
*	bsr	dspmsg
	move.w	#red,palette
	bra	.exit
.success:
	movea.l	#pasmsg,a5
	bsr	dspmsg
	bsr	crlf
*	move.w	#green,palette  
; - DO PASS STUFF!
.exit:
	move.l	d3,d0	; RESTORE CACHES
	moved0cacr
;;RWS.TPE	bset.b	#5,SPControl	; turn on bus errors. 
;;RWS.TPED	move.l	(sp)+,d2
	rts

*------------------------------------
* DSP RAM TEST (comments from RAM1.asm)
;* When the program begins testing, it writes a MT_TESTING to the Host
;* Interface data register, HTX.  If the test succeeds, MT_SUCCESS will 
;* be put in the HTX register.  If it fails, the test ID will be ORed 
;* with the 16 bit address of the memory that failed and put in the HTX
;* register.  For example, if a $604E5F is returned, the $6 means the
;* random value memory test (see Test IDs below) failed at address $4E5F.
;* The test indicates memory failure if the host (68xxx CPU) does not 
;* see a MT_SUCCESS flag in a few seconds (or the program has died from 
;* a 56k failure.  The complete RAM test took 0.78 seconds on a 27 Mhz 
;* 56001.  Most of the time is spent running the WalkingOnes test.

DSPRAMTEST:
	lea.l	DSPR0msg,a5
	bsr	dspmsg
.DRAMT:
; - TURN OFF CACHE
;;RWS.TPE	bclr.b	#5,SPControl	; turn off bus errors. 
	movecacrd0
	move.l	d0,d3		; save old cache status
	move.l	#$00000000,d0	; DISABLE I & D CACHES on 030
	moved0cacr
	
	TRISTATEMATRIX

;	lea.l	DSPRAM1HEX,a0
;	bsr	OldDSPLoad
;	bsr	DSPRun
	lea.l	DSPRAM1HEX,a0
	bsr	OldDSPLoad
	bsr	DSPRun

	move.l	#$fffff,d1
.isstart:
	btst.b	#0,DSPISR	; wait for data ready bit
	bne	.getdata
	subq.l	#1,d1
	bne	.isstart	
	bra	.notstart	; timed out
.getdata:
	bsr	DSPRead
	cmpi.l	#MT_TESTING,d0
	beq	.started
	bra	.notstart	; some strange error here.. not running code though
.started:
	move.l	#$fffff,d1
.isdone:
	btst.b	#0,DSPISR	; wait for data ready bit
	bne	.getdata2
	subq.l	#1,d1
	bne	.isdone	
	bra	.notdone	; timed out while running
.getdata2:
	bsr	DSPRead
	cmpi.l	#MT_SUCCESS,d0
	beq	.success
	cmpi.l	#MT_TESTING,d0	;RWS.T attempt to fix the dsp power on prob.
	beq	.started	;RWS.T
	lea.l	DSPR2err,a5
	bsr	dspmsg
	move.l	d0,a0
	bsr	dspadd		; show failure code
	bsr	crlf
	bra	.fail
.notstart:
.notdone:			; timedout
	lea.l	DSPR1err,a5
	bsr	dspmsg
; - DO FAIL STUFF!
.fail:
;;;RWS.TPE 1.18d	sub.w	#1,tries
;;;	bne	DSPRAMTEST
;TEMP FOR TAIWAN RUN #1 (for some reason sound only works occasionally)
*	movea.l	#falmsg,a5
	move.w	#red,palette
	or.b	#1,erflg0	; set RAM fail bit
	bra	.exit
.success:
	move.l	#pasmsg,a5
	bsr	dspmsg
	bsr	crlf
*	move.w	#green,palette
; - DO PASS STUFF!
.exit:
	move.l	d3,d0	; RESTORE CACHES
	moved0cacr
;;RWS.TPE	bset.b	#5,SPControl	; turn on bus errors. 
	rts

*------------------------------------
*------------------------------------
* SAMPLE DSPCODE FROM DSPBIND.ASM
* GO LOOK THERE IF YOU WANT IT.

	.data

******************************
* DSP HEX CODE BELOW!
******************************

*------------------------
* SSI test 27MAR92 : RWS
* sent from SUVL - source in \dsp\dsptests\ssi.asm
* CHANGED SLIGHTLY 27MAR92 : RWS
*------------------------
SSIDELY	=	$006100		;bit time delay	!!NOTE!! THESE VALUES FAIL IF A LONG CABLE 
;SSIDELY	=	$006400		;bit time delay	!!NOTE!! THESE VALUES FAIL IF A LONG CABLE 
SSIWAIT	=	$000000		;0ws ram        IS USED FOR LOOPBACK. KEEP IT SHORT!!

SSIMAXW	=	$001500	; max wait for chars
;SSIMAXW	=	$015000	; max wait for chars

SSITSTG	=	$000050
SSITIMO	=	$000051
SSINEQU	=	$000052
SSISUCC	=	$000053

; SSITSTG	=	$222222
; SSITIMO	=	$122334
; SSINEQL	=	$112233
; SSISUCC	=	$654321

	.even
.if 0
DSPSSIHEX:
;_START SSI1 0000 0000 0000 DSP56000 4.1.1 
;
;_DATA P 0000
	dc.l	$0C0040 
; - nop out to program at $40
;	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
;	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
;	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
;	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
;	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
;	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
;	dc.l	$000000,$000000,$000000	; ,$000000 ;<-???
;_DATA P 0040
	dc.l	$0003F8,$08F4BE,SSIWAIT,$08F4AB,SSITSTG,$0BF080,$00006F,$0BF080 
	dc.l	$00004D,$08F4AB,SSISUCC,$0AF080,$00006D,$0004FA,$60F400,$000100 
	dc.l	$05FFA0,$200013,$2C0100,$218700,$54F400,$00EA60,$4CD800,$08C42F 
	dc.l	$57F400,$001500,$0AAEA7,$000062,$20007C,$0E705A,$08F4AB,SSITIMO 
	dc.l	$0AF080,$00006D,$084F2F,$20004D,$0AF0A2,$000069,$200074,$0E7056 
	dc.l	$00000C,$08F4AB,SSINEQL,$0AF080,$00006D,$000086,$0C006D,$08F4BF 
	dc.l	$002C00,$08F4AC,SSIDELY,$08F4A3,$000000,$08F4A1,$0001FF,$0BAE24 
	dc.l	$08F4AF,$000000,$08F4AD,$003130,$00000C 
;_SYMBOL P
;SineTest             I 00004D
;BadData              I 000069
;DeadLoop             I 00006D
;SetupSSI             I 00006F
;_END 0000
	dc.l	$ffffffff
.endif
*---
	.even
DSPSSIHEX:
;_START SSI1 0000 0000 0000 DSP56000 4.1.1 
;
;_DATA P 0000
	dc.l	$0C0040 
; - nop out to program at $40
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000	; ,$000000 ;<-???
;_DATA P 0040
	dc.l	$0003F8,$08F4BE,SSIWAIT,$08F4AB,$000050,$0BF080,$00006F,$0BF080 
	dc.l	$00004D,$08F4AB,$000053,$0AF080,$00006D,$0004FA,$60F400,$000100 
	dc.l	$05FFA0,$200013,$2C0100,$218700,$54F400,$00EA60,$4CD800,$08C42F 
	dc.l	$57F400,$015000	; was 001500
	dc.l	$0AAEA7,$000062,$20007C,$0E705A,$08F4AB,$000051 
	dc.l	$0AF080,$00006D,$084F2F,$20004D,$0AF0A2,$000069,$200074,$0E7056 
	dc.l	$00000C,$08F4AB,$000052,$0AF080,$00006D,$000086,$0C006D,$08F4BF 
	dc.l	$002C00,$08F4AC,SSIDELY,$08F4A3,$000000,$08F4A1,$0001FF,$0BAE24 
	dc.l	$08F4AF,$000000,$08F4AD,$003130,$00000C 
;_SYMBOL P
;SineTest             I 00004D
;BadData              I 000069
;DeadLoop             I 00006D
;SetupSSI             I 00006F
;_END 0000
	dc.l	$ffffffff
*------------------------
* RAM1 test 26MAR92 : RWS
* sent from SUVL - source in \dsp\dsptests\ram1.asm
*------------------------
DSPRAM1HEX:
;_START RAM1 0000 0000 0000 DSP56000 4.1.1 
;_DATA P 0000
	dc.l	$0C0040 
; - nop out to program at $40
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000,$000000
	dc.l	$000000,$000000,$000000 ;- $000000 ???
;_DATA P 0040
	dc.l	$0003F8,$08F4BE,$000000,$08F4AB,$111111,$0BF080,$00004F,$0BF080 
	dc.l	$00009A,$0BF080,$000078,$08F4AB,$123456,$0AF080,$0000BF,$272000 
	dc.l	$44F400,$FFFFFF,$0BF080,$000063,$273000,$240000,$0BF080,$000063 
	dc.l	$274000,$44F400,$AAAAAA,$0BF080,$000063,$275000,$44F400,$555555 
	dc.l	$0BF080,$000063,$00000C,$60F400,$000200,$45F400,$007E00,$06C520 
	dc.l	$075884,$60F400,$000200,$45F400,$007E00,$56F400,$C3C3C3,$06C500 
	dc.l	$000076,$07E08F,$20004D,$07588E,$0AF0A2,$0000C1,$000000,$00000C 
	dc.l	$277000,$20001B,$240000,$0BF080,$000093,$60F400,$000200,$45F400 
	dc.l	$007E00,$200013,$06C500,$000091,$2C0100,$061880,$00008F,$07508C 
	dc.l	$07588F,$07E084,$218E00,$200045,$0AF0A2,$0000C2,$200032,$000000 
	dc.l	$200013,$07588E,$00000C,$60F400,$000200,$45F400,$007E00,$06C520 
	dc.l	$075884,$00000C,$276000,$60F400,$000200,$45F400,$007E00,$57F400 
	dc.l	$987654,$06C500,$0000A9,$20003A,$0AF0A5,$0000A9,$46F400,$1D872B 
	dc.l	$20005B,$07588D,$60F400,$000200,$45F400,$007E00,$57F400,$987654 
	dc.l	$06C500,$0000BD,$20003A,$0AF0A5,$0000B8,$46F400,$1D872B,$20005B 
	dc.l	$21AE00,$07D884,$200045,$0AF0A2,$0000C1,$000000,$00000C,$000086 
	dc.l	$0C00BF,$07F88E,$220F00,$20007A,$08CD2B,$0C00BF 
;_SYMBOL P
;SingleTests          I 00004F
;AllSame              I 000063
;WalkingOnes          I 000078
;PaintMem             I 000093
;RandomTest           I 00009A
;FillRandLoop         I 0000AA
;CheckRandLoop        I 0000BE
;DeadLoop             I 0000BF
;BadTest              I 0000C1
;BadWord              I 0000C2
;_END 0000
	dc.l	$ffffffff

** ERROR MESSAGES **
dspm:		dc.b	'Testing DSP',eot
DSPL0msg:	dc.b	'Testing DSP SSI Loopback... ',eot
DSPL0err:	dc.b	'DSP0 - DSP Not Executing Program',cr,lf,eot
DSPL1err:	dc.b	'DSP1 - SSI Test Timeout',cr,lf,eot
DSPL2err:	dc.b	'DSP2 - SSI Loopback Timeout',cr,lf,eot
DSPL3err:	dc.b	'DSP3 - SSI Bad Data',cr,lf,eot

DSPR0msg:	dc.b	'Testing DSP SRAM... ',eot
DSPR1err:	dc.b	'DSP4 - SRAM Test Timeout',cr,lf,eot
DSPR2err:	dc.b	'DSP5 - SRAM Fail: ',eot



Around line 279 DSPSSITEST

Assuming it times out early on it's probably around this routine..

Code: Select all

	btst.b	#0,DSPISR	; wait for data ready bit
	bne	.getdata
	subq.l	#1,d1
	bne	.isstart	
	bra	.notstart	; timed out
User avatar
exxos
Site Admin
Site Admin
Posts: 27278
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by exxos »

I did some reads to the DSPSR , with and without DFB1X enabled, same results.

IMG_3737.JPG
IMG_3737.JPG (35.19 KiB) Viewed 122 times

I need to figure out how to send some data to the DSP somehow to see if that fails :shrug:
mikro
Posts: 799
Joined: Mon Aug 28, 2017 11:22 pm
Location: Kosice, Slovakia
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by mikro »

@exxos so what happens if the DFB1X is running in the 16 MHz mode? (if I understood correctly that there is such an option)

Btw you can't just "send some data to the DSP somehow" because you need to code and have running both 030 and DSP side. So I'd stick with the diag cart for now.
User avatar
exxos
Site Admin
Site Admin
Posts: 27278
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by exxos »

mikro wrote: Mon Sep 29, 2025 2:52 pm @exxos so what happens if the DFB1X is running in the 16 MHz mode? (if I understood correctly that there is such an option)
OPTION jumper sets 16MHz mode.. theres no difference.

Btw you can't just "send some data to the DSP somehow" because you need to code and have running both 030 and DSP side. So I'd stick with the diag cart for now.
I tried just poking data to

Code: Select all

DSPTXH	=	$ffffa205		; Transmit byte High
DSPTXM	=	$ffffa206		; Transmit byte Mid
DSPTXL	=	$ffffa207		; Transmit byte Low
and reading the SR back with and without DFB1X.. No difference. But something got in a bad state somewhere as just after loading HDdriver, I got 2 bombs and the Falcon reset and got stuck in a loop doing that. It did it twice, and its not doing it now :shrug:

But yeah, I have no idea about DSP coding anyway. Problem is, we don't know what instruction it's getting tripped up on. We don't know if the data is being sent fine or not at this point.
mikro
Posts: 799
Joined: Mon Aug 28, 2017 11:22 pm
Location: Kosice, Slovakia
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by mikro »

All right, thanks to @exxos's kind help I was able to set up everything on my working Falcon. A few observations:

- definitely a SCSI device is needed, Cubase actively refuses to load tracks from IDE

- BlueSCSI's "SelectionDelay = 0" is also very much needed, otherwise one just gets garbage as sound output

- despite the fact that I could patch and run Cubase on the CT60, I'm getting just garbage on audio output with the same song. Perhaps some musician would need to confirm whether this is supposed to work or not but regarding the DFB1X testing, it doesn't tell us much

I really wanted to make the same test on my CT2 machine (030@50 Mhz + DSP@50 MHz) but its SCSI seems damaged. I have planned to open up the machine for recap'ing anyway so maybe I will have something more to contribute in the future (I guess you don't need another DFB1X test...)
User avatar
exxos
Site Admin
Site Admin
Posts: 27278
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by exxos »

mikro wrote: Mon Sep 29, 2025 3:40 pm - despite the fact that I could patch and run Cubase on the CT60, I'm getting just garbage on audio output with the same song. Perhaps some musician would need to confirm whether this is supposed to work or not but regarding the DFB1X testing, it doesn't tell us much
So just to confirm that the song does not play on the CT60 either ?

Someone did post a video of Cubase running and playing music on the CT60.. So just wanted to make sure....

I just sent a email to Mr Czuba to see if he remembers anything about all this...
mikro
Posts: 799
Joined: Mon Aug 28, 2017 11:22 pm
Location: Kosice, Slovakia
Contact:

Re: Falcon + CUBASE AUDIO + SCSI - Experiences?

Post by mikro »

@exxos it does not play on CT60 only. When I switch to 030 and use the same (but unpatched) setup, it plays OK.
Post Reply

Return to “HARDWARE ISSUES”