SAM COUPE and software for ZX Spectrum 128

News

Yet is possible easy convert ZX128 software for SAM COUPE with 1MB external memory.

http://www.worldofspectrum.org/forums/showthread.php?t=29437

AY Sound

Pity about the AY sound though which is one of the great things about a lot of 128K games - on the threads on WoS it was hinted that it could be emulated with conversion tables on the fly using a bulk of memory to convert the AY -> SAA registers, that would be sweet.

AY Sound

I am not musician. Exist this AY to SAA convertor as single routine ? I need more info about implement it. For example can be this convertor placed to extra memory page. Each access to AY ports can be replaced with RST xx and jump to modified ZX rom. Routine in ZX rom set extra memory page and call convertor. After return set back original memory page and continue in program… Is this AY to SAA convertor fast ? Use big table for convert registers ? Is source code ?

Exist also Russian ZXM-SoundCard interface for ZX Spectrum. This card contain two AY chips (turbo-sound) and SAA1099. SAM COUPE tunes can play on real ZX Spectrum machines. AY to SAA convertor can be used also for this sound card. (and same code for SAM COUPE)
http://zx.pk.ru/showthread.php?t=10956

If memory serves:

Cookies Hot Butter demo used 128K music - source is here: http://home.earthlink.net/~simoncooke/samcoupe/infobase/source/htbtter.txt and there’s a section called “Convert 128k Spectrum (AY-3-8192) music to SAM (SAA1099)” but given the only thing I know about Z80 is how to spell it I couldn’t say much more :-)

Playing AY sound on SAA

The Cookie AY player is one routine that usually resides in the lower 16k bank. The largest chuck is a lookup table for converting AY frequencies to SAA frequencies.

This routine or modifications (I disassembled it) has been used in all Speccy 128k demo conversions on the SAM.

Rummaging around for a source copy…

Found it. But I can’t attach anything here… :-( So here it is:

ORG 0
DUMP 3,$

LD C,255 ;soundchip on
LD B,1
LD A,onoff
OUT (C),A
DEC B
LD A,1
OUT (C),A

DEFS $/256+1*256-$

;the outputs to the AY-3-8912’s registers are intercepted and
;are used as memory mapped i/o

memoryio:

ayfine1: DEFB 0
aycoarse1: DEFB 0
ayfine2: DEFB 0
aycoarse2: DEFB 0
ayfine3: DEFB 0
aycoarse3: DEFB 0
aynoisepitch: DEFB 0
aymixer: DEFB 0
ayvol1: DEFB 0
ayvol2: DEFB 0
ayvol3: DEFB 0
ayenvlength:
ayenvlen: DEFB 0
ayenvlen2: DEFB 0
ayenvshape: DEFB 0

saaouts:
DEFB tone2
saatone2: DEFB 0
DEFB amp2
saaamp2: DEFB 0
DEFB tone3
saatone3: DEFB 0
DEFB amp3
saaamp3: DEFB 0
DEFB oct32
saaoct32: DEFB 0
DEFB tone5
saatone5: DEFB 0
DEFB amp5
saaamp5: DEFB 0
DEFB oct54
saaoct54: DEFB 0
DEFB noisefreq
saanoisefreq: DEFB 0
DEFB freqen
saafreqen: DEFB 0
DEFB noiseen
saanoiseen: DEFB 0
DEFB onoff
DEFB 1

play.it:
LD HL,ayfine1
LD E,(HL) ;ayfine1
INC L
LD A,(HL) ;aycoarse1

AND 15
LD D,A

EX DE,HL
ADD HL,HL
LD DE,pitchconvert
ADD HL,DE

LD A,(HL)
LD (saatone2),A
INC L
LD A,(HL)
LD (stoctave1+1),A

LD HL,ayfine2
LD E,(HL) ;ayfine2
INC HL
LD A,(HL) ;aycoarse2
AND 15
LD D,A

EX DE,HL
ADD HL,HL
LD DE,pitchconvert
ADD HL,DE

LD A,(HL)
LD (saatone3),A
INC L
LD A,(HL)
RLCA
RLCA
RLCA
RLCA
stoctave1: OR 0
LD (saaoct32),A

LD HL,ayfine3
LD E,(HL) ;ayfine3
INC L
LD A,(HL) ;aycoarse3
AND 15
LD D,A

EX DE,HL
ADD HL,HL
LD DE,pitchconvert
ADD HL,DE

LD A,(HL)
LD (saatone5),A
INC L
LD A,(HL)
RLCA
RLCA
RLCA
RLCA
LD (saaoct54),A

LD A,(aynoisepitch)
LD HL,noiseconvert
ADD L
LD L,A
LD A,(HL)
LD (saanoisefreq),A

LD A,(aymixer)
LD DE,0
BIT 0,A
JR NZ,c2nsound
SET 2,D
c2nsound: BIT 3,A
JR NZ,c2nnoise
SET 2,E
c2nnoise: BIT 1,A
JR NZ,c3nsound
SET 3,D
c3nsound: BIT 4,A
JR NZ,c3nnoise
SET 3,E
c3nnoise: BIT 2,A
JR NZ,c5nsound
SET 5,D
c5nsound: BIT 5,A
JR NZ,c5nnoise
SET 5,E
c5nnoise:
LD A,D
LD (saafreqen),A
LD A,E
LD (saanoiseen),A

LD HL,ayvol1
LD A,(HL)
RLCA
RLCA
RLCA
RLCA
OR (HL)
LD (saaamp2),A

INC HL
LD A,(HL) ;chan2vol
RLCA
RLCA
RLCA
RLCA
OR (HL)
LD (saaamp3),A

INC HL ;chan3vol
LD A,(HL)
RLCA
RLCA
RLCA
RLCA
OR (HL)
LD (saaamp5),A

LD BC,&00FF
LD HL,saaouts
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
OUTI
RET

amp0: EQU 0
amp1: EQU 1
amp2: EQU 2
amp3: EQU 3
amp4: EQU 4
amp5: EQU 5

tone0: EQU 8
tone1: EQU 9
tone2: EQU 10
tone3: EQU 11
tone4: EQU 12
tone5: EQU 13

oct10: EQU 16
oct32: EQU 17
oct54: EQU 18

freqen: EQU 20
noiseen: EQU 21
noisefreq: EQU 22

env0: EQU 24
env1: EQU 25

onoff: EQU 28

noiseconvert: DEFB 0,0,0,0,0,0,17,17,17,17,17,17,17,17,17,17,34
DEFB 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34

envconvert: DEFB 132,132,132,132,140,140,140,140
DEFB 134,132,138,130,142,130,138,140

pitchconvert: MDAT “AYtable.bin”

The aytable.bin is an 8k file containing the conversions.

Moved to Appendix:

Playing 128k Spectrum (AY-3-8912) music on SAM (SAA1099) - you can add the AYtable.bin to that appendix.

Video of ZXM SOUNDCARD

Video of ZXM SOUNDCARD connect in russian ZX clone:

http://www.youtube.com/watch%3Fv%3DdiW66UKbzoI

hi

velesofts two discs contain some 48 and 128 snaps
but you seem to be able to set the fast 6mhz mode without having an external 1mb attached
can the line interrupt be used to switch the screen off above and bellow the active viewing windows on freescape or 3d vector stuff like flight sims do you need to out to the border port to switch the screen off after you have altered the screen mode to 3 or 4? can you turn the screen on again without having to alter the border port just by vmpr back to mode 1?

cant get f-16-1.kul files from emulator explosion
snaper disc needs SNA file? is that a +D snapshot?
cant handle 128 snaps yet kannit?
6mhz
starion elite
skyranger gyron i,ii,iii
starglider i,ii
carrier/battle command
spitfire 40 - +2a enhanced no mention of 128 or +2 grey?
tau ceti academy
sentinel
lotus esprit
cholo combat lynx
dark star delta wing(fuller audio n if1 net?)
tt racer(if1net 8 player?)
doom flight simulation fighter pilot
hardrivin
gunship
i of the mask
mercenary
project stealth
starstrike i,ii
tempest thrust virus
vu3d wolfenstein
the tube

full list here but impossible to separate out 48 from 128 or 16 for that matter 127 listed not including flight simulation from psion

http://www.worldofspectrum.org/infoseek.cgi?regexp=^Vector+Graphics$&phrase&loadpics=1

i know off topic and video removed from youtube after 1500vu3dpzionx2kanubelivitmoi!

hi

http://velesoft.speccy.cz/sam_zx128.htm

runs SNA in external 1-4mb above 32768 at 6mhz
no 128 multiface or .kul files yet try it in sim koop…

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.