Audio · Voltmace Database

Explosion circuits

Continuing on from the previous post about the audio circuits, I am looking now at the circuit in the Voltmace Database that makes an explosion sound. This is controlled by bit 4 of the ‘effects’ register. When this bit is set to 1, an RC circuit is charged and added to the white noise signal. As the RC circuit discharges the volume of the white noise decreases over a period of about 1.6 seconds.

The blue trace is bit 4 being held high for one frame, or 20ms. The yellow trace is the audio output decaying over a period of approximately 1.6s.

The RC circuit takes about 5ms to fully charge and does not start to discharge until bit 4 goes low:

Bit 4 (blue) held high for one frame, 20ms, and the RC circuit (yellow) charges over about 6 ms and stays high until bit 4 goes low, at which time the RC circuit begins it exponential decay.

If bit 4 is held high for a period less than 5ms, it is possible to reduce the volume and duration of the explosion.

Bit 4 is held high for 220μs, 2.8ms and 6.6ms respectively.

Audio · Voltmace Database

Audio circuits

I have been looking at the audio circuits of the Voltmace Database in my development system while writing the Sound chapter of the Signetics 2650 & 2636 programming Wikibook. There are a number of oddities that will need more investigation at some point, but for now I’m just going to make note of them.

The top trace in blue is the signal from the effects register that supposedly turns the PVI tone on or off. The yellow trace is the final output from the op-amp after all the audio has been mixed and the volume adjusted. The PVI tone is a constant frequency throughout and is not adjusted at all. The effects register loops through five values:
$08 = attenuation=00, noise ON, PVI tone OFF
$0C = attenuation=00, noise ON, PVI tone ON
$4C = attenuation=01, noise ON, PVI tone ON
$8C = attenuation=10, noise ON, PVI tone ON
$CC = attenuation=11, noise ON, PVI tone ON

The white noise can be seen, but only on the HIGH level of the PVI tone for some reason. The volume adjustments changes the peak-to-peak of the tone, but also shifts the dc level.

The PVI tone OFF doesn’t seem to work properly when the white noise is on. It does reduce the volume somewhat, but I would have expected it to switch it off altogether. If the noise is off, then the PVI tone does get fully turned off. I can only assume that this is down to the diode logic that mixes the three inputs together.

Some day I will check this on another console just to be sure there is not a fault on this one. It would also be good to compare it with other consoles in the family. The circuit of the Fountain 1392 is almost identical, but the Interton circuit as drawn by Manfred Schneider is quite different in many ways and may give better results.

bugs · Coding · interrupts

Munch & Crunch bug, and how to properly exit interrupts

Well, this is embarrassing.

I have found a bug in Munch and Crunch.

It no doubt explains the occasional glitches I have seen. Its a fault in my simplistic return from interrupt:

loda,r0 STOREPSL
loda,r0 STORER0

The problem of course is that the condition code in the PSL gets changed by the final load instruction. Having looked at other disassemblies I must say that I’m impressed by how the AND $C0 to a copy of PSL correctly restores the condition code. The condition codes and their position in PSL were obviously carefully chosen when designing the processor. From Blackjack:

        stra,r0 PRESERVER0   ;PRESERVER0 = r0
        ppsl    $12          ;bank 1,  logical compare    
        stra,r0 PRESERVEPSL  ;save PSL with bank 1 already selected!


        loda,r0 PRESERVEPSL  ;                
        strz    r4           ;put a copy of PSL in r4                                
        lpsl                 ;restores psl (but with bank 1 still 
                             ;              selected)   
        loda,r0 PRESERVER0   ;restore r0 (but probably changes the 
                             ;            condition code)                   
        andi,r4 $C0          ;this restores the condition code!                     
        cpsl    $10          ;switch to bank 0                                
        rete,un              ;  

If it isn’t clear how that AND operation works, and it wasn’t to me, it’s because the condition code is in bits 7 and 6 of the PSL. Their binary values (00=zero, 01=positive, 10=negative) correspond to the result of the AND $C0 operation:
00000000 is zero,
01000000 is positive,
10000000 is negative.

I don’t know why they set logical compare, but perhaps that is all their program uses? For a more general purpose procedure, that should surely be
ppsl $10

The 2650B with its LDPL and STPL instructions that allowed the PSL to be saved directly to memory were a big improvement.


1st Christmas Basque Tournament of Radofin 1292

The last Tuesday 28 of December, Eusko-Retro Association organized the I. Christmas Basque Tournament of Radofin 1292. Five players met in Bilbao (Basque Country) in the pub called “Jofer, in Santutxu. The owner of the bar allows us to bring our TV and retroconsoles. He is very nice. Radofin is very similar to the Interton but the cartridges are different and we also have other games, so we will play continue organizing tournaments of both consoles. In this tournament, Jonathan (The friends of Luis who is from Ecuador but now lives in Germany) was the best player and he got more points than the others. We played these three games: Spider’s web, Air / Sea Battle and Grand Prix.

The idea is to organize the II. Basque Tournament of Radofin 1292 this year, in December of 2022.

Here the results of this tournament:

Spider´s web
1-Jonathan 8 points (515)
2-Aitor Galda 7 points (440)
3-Daniel Barrientos 6 points (438)
4-Luis Villamor 5 points (361)
5-Iera Ortega 4 points (332)
6-Egoitz Campo 3 points (313)
7-Alvar Alonso 2 points (313)
8-Monica Vaqueiro 1 point (252)

Air/Sea Battle
1-Daniel Barrientos 8 points (34)
2-Jonathan 7 points (16)
3-Aitor Galda 6 points (16)
4-Monica Vaqueiro 5 points (12)
5-Luis Villamor 4 points (12)
6-Alvar Alonso 3 points (8)
7-Iera Ortega 2 points (8)
8-Egoitz Campo 1 point (4)

Grand Prix
1-Luis Villamor 8 points
2-Jonathan 7 points
3-Alvar Alonso 6 points
4-Egoitz Campo 5 points
5-Monica Vaqueiro 4 points
6-Aitor Galda 3 points
7-Daniel Barrientos 2 points
8-Iera Ortega 1 point

Classification of the I. Christmas Basque Tournament of Radofin 1292
1-Jonathan 22 points (Ecuador)
2-Luis Villamor 17 points (Basque Country)
3-Daniel Barrientos 16 points (Basque Country)
4-Aitor Galda 16 pints (Basque Country)
5-Alvar Alonso 11 points (Basque Country)
6-Monica Vaqueiro 10 points (Basque Country)
7-Egoitz Campo 9 points (Basque Country)
8-Iera Ortega 7 points (Basque Country)


What was PIP?

This announcement of the launch of the 2650 in Microcomputer Digest  July 1975 states that the processor was also known as PIP. I wonder if that was an acronym or a nickname like AgnusDenise, and Paula in the Amiga? If its an acronym, what did it stand for?

At first I thought maybe this name was simply something weird that had crept into the press release, but then I recalled that there was a monitor and debug program called PIPBUG. On further research I discovered other uses within Signetics documentation such as in Applications Memo 52:

I think I finally found the answer here on page 3/16 in The History of the Personal Computer (e-book) by Roy A. Allan, 2001.

So PIP is an acronym of Programmable Integrated Processor. I’m not sure what it was they shipped in 1974, but probably a very early prototype of the 2650. Also nice to know the origins of the name Signetics, Signal Network Electronics.

This Masters degree project, Survey and Study of Microprocessors by Henry Liu in 1974 is worth a look as it extolls the virtue of the the single rail supply and single clock, and the rest of the paper summarizes the state of microprocessor technology of the time.

The Microcomputer Digest article also gives a hint at early pricing on this processor. I guess it must have fallen rapidly for it to be adopted for use in a video game console. According to one source, in todays prices that would be $514 for volume pricing!


Origins of the console family

The history of the the Interton / Radofin / Acetronic / Voltmace etc family of consoles is somewhat murky. There are very few reliable sources available, and a lot of incorrect information has been published on the web over the years.

I just came across this interesting thread on AtariAge Forums that delves into the history of both the microprocessor system and the consoles. A number of people have contributed various bits of research that help to piece together the story.

Coding · Tutorial

Tutorials are moving

I have decided that WordPress is not the right place for tutorials and have started to write a book Signetics 2650 & 2636 programming over at Wikibooks.

I see several advantages to this.

First and foremost, the formatting options seem to be much more flexible. The markup is a little cumbersome but I have been editing Wikipedia for many years and they both use the same software.

Next, it allows others to contribute to the work as well. This might be by contributing whole pages themselves, or by fixing errors and typos, or by making suggestions for improvements / asking for clarification of the Discussion pages.

Finally I think it will give this project more exposure through the Console Game Programming category and hopefully through better ranking on Google.

I shall of course continue posting blog posts here; things of historical note, technical snippets and other news of note.

Developer tools · Voltmace

Speedy assemblers

I have been working on building a development system for my Voltmace Database for the past few month. The assembler is nearly ready to release for beta testing if anyone cares to have a look at it. It shouldn’t really surprise me, but it does, just how fast a program can be assembled these days. Back in the day I would have time to go to the White Lion for lunch while 4k of code was being assembled. Now it’s done in the blink of an eye.

The assembler I had at Voltmace had been made specially for them by some local consultants. It was a Z80-based machine running CP/M with a pair of floppy disc drives. I’m fairly sure they were of the 5¼” variety. Apart from the low speed of the processor back then, things were really hampered by its memory capacity. Even if the system had the full 64k of memory that the Z80 could address, what space the operating system and assembler program left was not big enough to hold a whole assembly file. The result was that the program would load small pieces of it at time from the disc drive to work on. I don’t recall for certain, but I’m pretty sure that it didn’t save a list file either. If you wanted to see what it had produced, it would churn out a listing on a dot matrix printer. So I would start an assembly and leave the disc drives and printer clunking away while I went for a pint and hope there were no errors that would prevent the assembler from completing.


First Basque Radofin 1292 Tournament   

Sunday 20 June saw the First Basque Radofin 1292 Tournament. Five players gathered in Bilbao, Basque Country, in the pub called “Bar Barria” in Santutxu. The owner of the pub is kind enough to allow them to meet there to play their retroconsoles and retrocomputers.

The Radofin console is very similar to the Interton but the cartridges are different and the players have different games for each, so they plan to organize tournaments of both. During this tournament they played Spider’s Web, Invaders, Air/Sea Battle, Olympics (football), and Grand Prix. Luis was the best and most regular player, achieving several partial victories. The results:

1-Luis Getxo 5 points (55)
2-Monica Vaqueiro 4 points (40)
3-Javi Cetina 3 points (19)
4-Egoitz Campo 2 point (9)
5-Daniel Barrientos 1 point (2)
Air/Sea Battle  
1-Alberto Romero 6 points  
2-Daniel Barrientos 5 points
3-Javi Cetina 4 points
4-Monica Vaqueiro 3 points   
5-Luis Getxo 2 points  
6-Egoitz Campo 1 point
Spider´s web
1-Egoitz Campo 4 points (320)
2-Javi Cetina 3 points (233)
3-Luis Getxo 2 points (111)
4-Daniel Barrientos 1 point (39)
Gran Prix (Rally) 
1-Luis Getxo 6 points 
2-Egoitz Campo 5 points 
3-Monica Vaqueiro 4 points 
4-Javi Cetina 3 points 3 points 
5-Daniel Barrientos 2 points 
6-Alberto Romero 1 point 
Olympics (Football)
1-Luis Getxo 6 points 
2-Egoitz Campo 5 points 
3-Javi Cetina 4 points
4-Monica Vaqueiro 3 points
5-Alberto Romero 2 points
6-Daniel Barrientos 1 point

Classification of the First Basque Radofin 1292 Tournament
1-Luis Getxo 21 points (Basque Country)
2-Egoitz Campo 17 points (Basque Country)
3-Javi Cetina 17 points (Basque Country)
4-Monica Vaqueiro 14 points (Basque Country)
5-Daniel Barrientos 10 points (Basque Country)
6-Alberto Romero 9 points (Basque Country)

They plan to return for another Radofin tournament, possibly with a different format, in December 2021. I must say that it is great to see these consoles and games being used in tournaments. Wouldn’t it be terrific if a few other groups did this, then we could organise an international tournament.