Jump to content
IGNORED

SID chip for TI on sidecar? (And some sidecar vs. PEB questions)


jrhodes

Recommended Posts

I know there is a SID card for the PEB, is there anyway something like that could be made for the sideport?

I already have 32K+TIPI & speech on sideport, i am seeing now though that i should have probably gone with a PEB, even if they are a bit rare/pricey.

Speaking of PEB vs. sideport, i know there is a hack to mount the speech synth in the PEB, and since i already have the 32K and TIPI connected to my speech synth, is there a way to mount the whole bundle (Speech, 32K and TIPI) via that hack and have them all work, or would i need to find PEB specific 32K and TIPI then?

 

Anyway, a SID chip that people could tack onto the side of their TI plug n play style would be pretty neat.

Link to comment
Share on other sites

I now own the rights to the PEB version of the board. I'll look to see if I can translate it to a sidecar mode (and depending on what is needed in the minimal configuration, try to make it compatible with the Jedi-32K). It will be a bit far down on my projects list though, as I am working on getting the Horizon 4000B user-ready at the moment.

 

One option would be to install a PEB splitter on your existing setup. Then your 32K and TiPi could be on one leg and the PEB with a SID board could be on the other. . .I do need to make a run of the boards though, as I don't have them in stock yet.

Edited by Ksarul
  • Like 4
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, jrhodes said:

Prime example of why the TI scene is still alive today, and not as cold-shouldered as other scenes.

Yeah, we have a pretty great group of people here, quite a good number of are them bloody geniuses too.  I'm continually blown away at the level of knowledge and expertise I see in this forum.  One only has to see the high quality hardware and software that's come out in the past few years as proof of this.  I'd list their names below, but honestly it's too long.

Link to comment
Share on other sites

I had a couple of the early bids on it as well--I just waited until the end of the auction to bid again, as I really wasn't interested in a long bidding war on it. My final bid was about 1 1/2 hours before the end of the auction and Peter Fleeman was the underbidder in the last seconds (he and I often end up bidding on items we both want--sometimes he wants it more (and wins), sometimes I do, and it's all good as it stays in the active community).

 

I also obtained the rights to the rest of his software (not just the SID stuff) in a separate transaction, so that won't be lost to the community either. I should probably make a few TexTurbo and Neverlander cartridges for Arcadeshopper to stock (once I get some labels made).

  • Like 1
Link to comment
Share on other sites

There's not much to it. The SID chip maps into the DSR space when no other card is selected (technically it's selected by any CRU access under >1000). You write to the SID chip at the DSR space (>4000). Readback from the SID is not implemented. Registers are spaced by 2 bytes as is normal for the TI.

 

From the notes I have, the first register (frequency 1 low byte) is accessed at >5800. Next is at >5802, etc. Here's a C64 register map (you'll have to remap for the TI of course): https://www.c64-wiki.com/wiki/SID

With the way that the CRU works, the SID is always mapped in XB, so it can be accessed with CALL LOADs. ;) Here's a sample program converted from the C64 manual:


10 CALL CLEAR :: CALL INIT
11 FC=0 :: WF=17 :: ATK=132 :: SR=17 :: PH=2 :: PL=255
20 FOR C=22582 TO 22576 :: CALL LOAD(C,0):: NEXT C
30 V=22576 :: W=22536 :: A=22538 :: HF=22530 :: LF=22528 :: S=22540 :: PH=22534 :: PL=22532
35 CALL LOAD(V,15)
40 CALL LOAD(A,ATK):: CALL LOAD(PH,15):: CALL LOAD(PL,15)
45 CALL LOAD(22540,SR)
46 PRINT "WAVEFORM=";WF:"ATTACK/DECAY=";ATK:"SUSTAIN/RELEASE=";SR: :
50 READ H :: IF H=-1 THEN 1000
60 READ L :: READ D
65 CALL LOAD(HF,H):: CALL LOAD(LF,L):: CALL LOAD(W,WF)
70 CALL LOAD(22578,0)
80 FOR T=1 TO D :: NEXT T :: CALL LOAD(W,WF-1)
85 FOR T=1 TO D/(D/2):: NEXT T
90 GOTO 50
100 DATA 34,75,25,43,52,25,51,97,70,43,52,8,51,97
110 DATA 25,57,172,25
120 DATA 51,97,50,0,0,12,43,52,25,51,97,25,57,172
130 DATA 100,51,97,50,-1,-1,-1
1000 CALL LOAD(HF,0):: CALL LOAD(LF,0)
1010 RESTORE
1020 IF WF=17 THEN WF=33 :: GOTO 1030
1021 IF WF=33 THEN WF=65 :: GOTO 1030
1025 IF WF=65 THEN WF=17 :: GOTO 1030
1026 IF WF=65 THEN PH=PH-1 :: PL=PL+2
1029 IF WF=65 THEN PH=PH*2 :: PL=PL/2alc

1030 CALL LOAD(22532,PH):: CALL LOAD(22534,PL)
1040 IF WF=17 THEN ATK=ATK/2+2 :: SR=SR*2
1500 FC=FC+1 :: IF FC<17 THEN 40
2000 FOR C=22528 TO 22568 :: CALL LOAD(C,0):: NEXT C

 

  • Like 4
Link to comment
Share on other sites

4 hours ago, Asmusr said:

Is there any documentation for programming the sid card?

In addition to Tursi's reply above, take a look at https://archive.org/details/COMPUTES_Beginners_Guide_to_C64_Sound_1984_COMPUTE_Publications_a. All the addresses and program listings are for the C64 so you'll have to convert them to TI-99 addresses, but it contains valuable info about how the SID chip works.

 

Here's the SID chip playing on my TM990 system:

 

Edited by Stuart
  • Like 4
  • Haha 1
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...