Jump to content
IGNORED

Pokey for 7800 Q's?


Video

Recommended Posts

Ken,

 

I'm guessing that it is not your code that is messing things up since both versions works here without hitches. I will be taking Schmutzies XBoard back to see if it faulty.

 

Allan:

I checked my NTSC board and C10 is one of the yellow capacitors ritgh behind the channel selector switch at the rear end of the board. The second one from the cart connector. You should connect the wire from the XBoard to the terminal on the capacitor closest to the connector.

 

/P

Edited by PacMan
Link to comment
Share on other sites

Ken,

 

I'm guessing that it is not your code that is messing things up since both versions works here without hitches. I will be taking Schmutzies XBoard back to see if it faulty.

 

Allan:

I checked my NTSC board and C10 is one of the yellow capacitors ritgh behind the channel selector switch at the rear end of the board. The second one from the cart connector. You should connect the wire from the XBoard to the terminal on the capacitor closest to the connector.

 

/P

It might be worthwhile to eventually create some kind of test program that would test the XBoard's RAM and Pokey.

 

Here is the pokey detect code. Note that also a 16 is stored in XCTRL earlier at startup, and pokey is zeroed outt too.

 


;XBOARD equates
XCTRL		   =	 $470
XPOKEY1		 =	 $450
XPOKEY2		 =	 $460
XRAM			=	 $4000

;POKEY CART equates
PPOKEY1		 =	 $4000


XPOT0   = XPOKEY1 + 0
XPOT1   = XPOKEY1 + 1
XPOT2   = XPOKEY1 + 2
XPOT3   = XPOKEY1 + 3
XAUDF1  = XPOKEY1 + 0
XAUDF2  = XPOKEY1 + 2
XAUDF3  = XPOKEY1 + 4
XAUDF4  = XPOKEY1 + 6
XAUDC1  = XPOKEY1 + 1
XAUDC2  = XPOKEY1 + 3
XAUDC3  = XPOKEY1 + 5
XAUDC4  = XPOKEY1 + 7
XAUDCTL = XPOKEY1 + 8
XSTIMER = XPOKEY1 + 9
XKBCODE = XPOKEY1 + 9
XRANDOM = XPOKEY1 + $A
XSKREST = XPOKEY1 + $A
XSKCTL  = XPOKEY1 + $F
XSKSTAT = XPOKEY1 + $F
XPOTGO  = XPOKEY1 + $B

PPOT0   = PPOKEY1 + 0
PPOT1   = PPOKEY1 + 1
PPOT2   = PPOKEY1 + 2
PPOT3   = PPOKEY1 + 3
PAUDF1  = PPOKEY1 + 0
PAUDF2  = PPOKEY1 + 2
PAUDF3  = PPOKEY1 + 4
PAUDF4  = PPOKEY1 + 6
PAUDC1  = PPOKEY1 + 1
PAUDC2  = PPOKEY1 + 3
PAUDC3  = PPOKEY1 + 5
PAUDC4  = PPOKEY1 + 7
PAUDCTL = PPOKEY1 + 8
PSTIMER = PPOKEY1 + 9
PKBCODE = PPOKEY1 + 9
PRANDOM = PPOKEY1 + $A
PSKREST = PPOKEY1 + $A
PSKCTL  = PPOKEY1 + $F
PSKSTAT = PPOKEY1 + $F
PPOTGO  = PPOKEY1 + $B





;first check for POKEY CART pokey
checkP:	
lda #2
	sta PSKCTL
lda PRANDOM
sta ztmp1
ldx #0
@lpdp:	lda PRANDOM
cmp ztmp1
bne @pokey
inx
bne @lpdp
beq @notpokey
@pokey: lda #0
	sta PSKCTL
nop
nop
nop
lda PRANDOM
sta ztmp1
ldx #0
@lpdp2: lda PRANDOM
cmp ztmp1
bne @notpokey
inx
bne @lpdp2
@ispok:	lda #1
sta pokeyFlag
lda #3
sta PSKCTL
rts
@notpokey:

;now check XCARD POKEY
ldx #16; enable XBOARD Pokey
stx XCTRL
checkX:	
lda #2
	sta XSKCTL
lda XRANDOM
sta ztmp1
ldx #0
stx XAUDCTL
@lpdp:	lda XRANDOM
cmp ztmp1
bne @pokey
inx
bne @lpdp
beq @notpokey
@pokey: lda #0
	sta XSKCTL
nop
nop
nop
lda XRANDOM
sta ztmp1
ldx #0
@lpdp2: lda XRANDOM
cmp ztmp1
bne @notpokey
inx
bne @lpdp2
@ispok:	ldx #2
stx pokeyFlag
	inx
	stx XSKCTL
@notpokey:
rts

Link to comment
Share on other sites

I am using a somewhat similar technique (listed below). I have also started to work on some RAM test functions which I have included as an attachment. These are not completely done yet but the data bits check and address bit check routines work. The last section is an embryo for the data integrity test. Feel free to offer comment and suggestions on how to improve the functions.

 

/P

Memtest.zip

 

; The POKEY is located in the high section of the available memory area at $0400
; of the 7800. It is selected from $0460 - $046f when Bit 4 of the XCTRL register
; is set to "1" if Bit 4 = "0" the POKEY is disabled.
;
XCTRL		   =	   $0470  ; Note Write only
; Bit 4 = Enable POKEY chip
; Bit 3 = Enable Banked 128Kbyte SRAM
; Bit 2 = Bit 2 of SRAM bank select
; Bit 1 = Bit 1 of SRAM bank select
; Bit 0 = Bit 0 of SRAM bank select

;
; Bit patterns for enabling/disabling XBoard features.
XENABLEMEM	  =	   %00001000
XENABLEPOKEY	=	   %00010000

XPOKEYBASE1	 =	   $0450
XPOKEYBASE2	 =	   $0460
.
.
.

			lda	 #XENABLEPOKEY  ; Enable the pokey
			ora	 XCTRL_SHDW	 ; inclusive
			jsr	 SetXCtrl	   ; Set the values
			
			lda	 #$00
			tax
ST2:			sta	 XPOKEYBASE1,X  ; Clear Pokey1
			sta	 XPOKEYBASE2,X  ; Clear Pokey2
			inx
			cpx	 #$10
			bne	 ST2	
			
			lda	 #3
			sta	 SKCTL + XPOKEYBASE1				 
			
			ldx	 #128
			ldy	 #0
			
XCheck8:		lda	 RANDOM + XPOKEYBASE1
			nop
			nop
			cmp	 RANDOM + XPOKEYBASE1
			beq	 XCheck11

			iny					; Count differences
			
XCheck11:	   dex					; Dec loop counter
			bne	 XCheck8		; Loop again
			
			cpy	 #16			; No less than 16 hits
			bcc	 XCheck9		; Jump if less than 16 hits

		   ; XBoard Pokey is available do something special with it;-)

XCheck9:
		   ; XBoard Pokey not available :-(

			

Link to comment
Share on other sites

I am using a somewhat similar technique (listed below). I have also started to work on some RAM test functions which I have included as an attachment. These are not completely done yet but the data bits check and address bit check routines work. The last section is an embryo for the data integrity test. Feel free to offer comment and suggestions on how to improve the functions.

pokey looks similiar to the first part I do.

 

I essentially loop through the random number generator 256 times and look for any difference, then turn off the random number generator and loop 256 times making sure they are the same.

Link to comment
Share on other sites

Ken,

 

I'm guessing that it is not your code that is messing things up since both versions works here without hitches. I will be taking Schmutzies XBoard back to see if it faulty.

 

Allan:

I checked my NTSC board and C10 is one of the yellow capacitors ritgh behind the channel selector switch at the rear end of the board. The second one from the cart connector. You should connect the wire from the XBoard to the terminal on the capacitor closest to the connector.

 

/P

 

 

Thanks /P,

I hope to finish it some time this week.

 

Allan

Link to comment
Share on other sites

  • 1 month later...

I am using a somewhat similar technique (listed below). I have also started to work on some RAM test functions which I have included as an attachment. These are not completely done yet but the data bits check and address bit check routines work. The last section is an embryo for the data integrity test. Feel free to offer comment and suggestions on how to improve the functions.

 

/P

Memtest.zip

 

; The POKEY is located in the high section of the available memory area at $0400
; of the 7800. It is selected from $0460 - $046f when Bit 4 of the XCTRL register
; is set to "1" if Bit 4 = "0" the POKEY is disabled.
;
XCTRL		   =	   $0470 ; Note Write only
; Bit 4 = Enable POKEY chip
; Bit 3 = Enable Banked 128Kbyte SRAM
; Bit 2 = Bit 2 of SRAM bank select
; Bit 1 = Bit 1 of SRAM bank select
; Bit 0 = Bit 0 of SRAM bank select

;
; Bit patterns for enabling/disabling XBoard features.
XENABLEMEM	  =	   %00001000
XENABLEPOKEY	=	   %00010000

XPOKEYBASE1	 =	   $0450
XPOKEYBASE2	 =	   $0460
.
.
.

			lda	 #XENABLEPOKEY ; Enable the pokey
			ora	 XCTRL_SHDW	; inclusive
			jsr	 SetXCtrl	  ; Set the values
			
			lda	 #$00
			tax
ST2:			sta	 XPOKEYBASE1,X ; Clear Pokey1
			sta	 XPOKEYBASE2,X ; Clear Pokey2
			inx
			cpx	 #$10
			bne	 ST2	
			
			lda	 #3
			sta	 SKCTL + XPOKEYBASE1				 
			
			ldx	 #128
			ldy	 #0
			
XCheck8:		lda	 RANDOM + XPOKEYBASE1
			nop
			nop
			cmp	 RANDOM + XPOKEYBASE1
			beq	 XCheck11

			iny				; Count differences
			
XCheck11:	   dex				; Dec loop counter
			bne	 XCheck8	; Loop again
			
			cpy	 #16		; No less than 16 hits
			bcc	 XCheck9	; Jump if less than 16 hits

		  ; XBoard Pokey is available do something special with it;-)

XCheck9:
		  ; XBoard Pokey not available :-(

			

 

I finally got my Xboard completly installed in my 7800. I'm having trouble compiling PacMan's test program. I'm getting a bunch of messages saying 'Unknown Mnemonic 'sta'' with every line having a different opcode in it. I just tried compiling a couple of other programs with no problem so I'm guessing it's the program and not me. Any suggestions?

 

Allan

Link to comment
Share on other sites

I've been messing around with my xboard 7800 tonight without much success. I tried running the various Beefdrops since some of them are suppose to have xboard support. I tried the two Pokey-supported demos and I don't hear the music, just the sounds. I tried the official final cart and it does the same thing even with the other Pokey in the cart. I wonder if I have it soldered right. :( I'll try looking at it tommorrow.

 

Allan

Link to comment
Share on other sites

Allan,

 

Do you have the possibility to program an EPROM ? In that case I can send you a test BIOS that will test the XBoard and report back what it finds. If you don't have this possibility I can send you a preprogramed EPROM instead.

 

/P

Link to comment
Share on other sites

Allan,

 

Do you have the possibility to program an EPROM ? In that case I can send you a test BIOS that will test the XBoard and report back what it finds. If you don't have this possibility I can send you a preprogramed EPROM instead.

 

/P

 

My eprom burner died on me. If you could send me a preprogrammed eprom that would be great.

 

PM sent

 

Allan

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...