PDA

Просмотр полной версии : General sound 512 emulation



chernandezba
08.11.2020, 14:10
Hi

I’m planning to add General Sound emulation to my ZEsarUX emulator

I have found information about programming the GS: type and format of the messages, ports etc

But I have not found info about how internally works the GS:
-ports used (the same as on the speccy side?)
-controlling dac interface: ports, volumes etc
-interrupts: how the interrupts are fired?
Etc...

Anyone has that info? I don’t know Russian but using a translator should be enough (I hope ;) )

Regards
César

goodboy
08.11.2020, 14:32
try examine this http://dlcorp.nedopc.com/download/file.php?id=3014
it`s source of UnrealSpectrum emulator

chernandezba
08.11.2020, 14:42
try examine this http://dlcorp.nedopc.com/download/file.php?id=3014
it`s source of UnrealSpectrum emulator

Thanks. I already found that. But there’s no documentation nor comments that explain clearly how it works

SAM style
08.11.2020, 17:40
Here is some documentation about GS, including schemes and internal ports (in russian)
Also, you can examine this sources - https://github.com/samstyle/Xpeccy/blob/master/src/libxpeccy/sound/gs.c

chernandezba
10.11.2020, 10:09
Here is some documentation about GS, including schemes and internal ports (in russian)
Also, you can examine this sources - https://github.com/samstyle/Xpeccy/blob/master/src/libxpeccy/sound/gs.c

Thank you! That will be a lot of help! :)

Cheers
Cesar

chernandezba
12.11.2020, 15:15
Hi

I've been looking at the mapping register:

port 0 "extended memory"
bits D0 - D3 switch pages by 32Kb
page 0 - ROM
digits D4 - D7 are not used

# 0000 - # 3FFF - first 16Kb of ROM
# 4000 - # 7FFF - first 16Kb of the first page of RAM
# 8000 - #FFFF - turnable pages of 32Kb
page 0 - ROM,
page 1 - first page of RAM
page 2 ... RAM


So, when register is 0, ROM is mapped on 8000H-FFFH
When register is 1, first 32 KB of RAM (ram 0) are mapped on 8000H-FFFH
When register is 2, second 32 KB of RAM (ram 1) are mapped on 8000H-FFFH
If you have a General Sound 512KB, the mapping register will be maximum value 15, so, when you are paging RAM 15-1=14, that means you can have different 15 pages mapped, so 15 X 16 = 480 KB

So the last 32 kb can't be used... right?

Using the same example, a General Sound with 128kb ram, can map up to 128-32=96 KB ram (but I read on some places than can map up to 112 KB)

Is there anything wrong here? Have I understood it well?

Thanks

- - - Добавлено - - -

Could it be that:

# 4000 - # 7FFF - LAST 16 kb of RAM

?