Welcome, Guest. Please login or register.


Author Topic: Spectrum programok átírása (Read 156469 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13517
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Spectrum programok átírása
« Reply #510 on: 2017.January.09. 11:29:14 »
Igen, eredetileg a MDLADDR változóból szedi a címet.

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 55.0.2883.87 Chrome 55.0.2883.87
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #511 on: 2017.January.09. 11:45:27 »
De rosszul, nem azon a címen lévő cím kell, hanem maga a cím :
    ld    hl,0c86eh

áááá, tényleg! MŰKÖDIK! :-D
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 55.0.2883.87 Chrome 55.0.2883.87
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #512 on: 2017.January.09. 12:01:05 »
hogy lehet megcsinálni, hogy úgy szóljon EP-n is, mint Speccy-n?

itt a specci változat:
https://www.youtube.com/watch?v=ICw-Of6KY6M

az ep változat meg a mellékletben.

jól hallatszik (főleg az elején), hogy a specci változatban van egy basszus szólam

az EP-n ehelyett valami zörej szól

a pt3player-ben lévő define-okkal játszva ki meg lehet csinálni, hogy úgy szóljon, mint a speccin? melyiknek milyen hatása van? van erről valakinek tapasztalata?
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 45.0 Firefox 45.0
    • View Profile
Re: Spectrum programok átírása
« Reply #513 on: 2017.January.09. 14:28:25 »
Úgy hallom, hogy gyors envelope-ok vannak a 3. csatornán, be kéne kapcsolni az 1KHz-es megszakítást, és minden 1KHz-es megszakításban az envelope interruptnak kell lefutnia, és minden 50Hz-es megszakításban meg a Playernek.

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 55.0.2883.87 Chrome 55.0.2883.87
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #514 on: 2017.January.09. 14:57:28 »
Úgy hallom, hogy gyors envelope-ok vannak a 3. csatornán, be kéne kapcsolni az 1KHz-es megszakítást, és minden 1KHz-es megszakításban az envelope interruptnak kell lefutnia, és minden 50Hz-es megszakításban meg a Playernek.
az 1 kHz-est hogyan?
*** Speicherplatz zu klein

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13517
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 50.0 Firefox 50.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Spectrum programok átírása
« Reply #515 on: 2017.January.09. 15:07:08 »
az 1 kHz-est hogyan?
Elvileg itt átírod 0-ra:
Code: [Select]
; if non-zero, the envelope emulation routine is disabled
NO_ENVELOPE_IRQ         equ     1

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 55.0.2883.87 Chrome 55.0.2883.87
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #516 on: 2017.January.09. 15:13:15 »
Elvileg itt átírod 0-ra:
Code: [Select]
; if non-zero, the envelope emulation routine is disabled
NO_ENVELOPE_IRQ         equ     1
az megtörtént
de hogy hívom meg 1kHz-es megszakításban
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 45.0 Firefox 45.0
    • View Profile
Re: Spectrum programok átírása
« Reply #517 on: 2017.January.09. 16:02:20 »
Én így oldottam meg:
Bár lehet bele kellett piszkálni az envelopeInterrupt rutinba a veremkezelés miatt, erre nem emlékszem.
Code: [Select]
intrut1 push    af
        in      a,(0b4h)
        and     20h
        ld      a,033h
        out     (0b4h),a
        jp      z,envelopeInterrupt
        call     vidint
        pop     af
        ei
        ret

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 55.0.2883.87 Chrome 55.0.2883.87
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #518 on: 2017.January.09. 16:33:15 »
Én így oldottam meg:
Bár lehet bele kellett piszkálni az envelopeInterrupt rutinba a veremkezelés miatt, erre nem emlékszem.
Code: [Select]
intrut1 push    af
        in      a,(0b4h)
        and     20h
        ld      a,033h
        out     (0b4h),a
        jp      z,envelopeInterrupt
        call     vidint
        pop     af
        ei
        ret
nem call z, envelopeInterrupt-ra gondoltál?

egyébként nekem valami nagy hülyeséget csinál így... (mármint call-ra, jp-re lefagy)
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 45.0 Firefox 45.0
    • View Profile
Re: Spectrum programok átírása
« Reply #519 on: 2017.January.09. 16:39:29 »
nem call z, envelopeInterrupt-ra gondoltál?

egyébként nekem valami nagy hülyeséget csinál így... (mármint call-ra, jp-re lefagy)
Nem, mert akkor minden 1KHz-es megszakításban a video rutin is lefutna.
Nézd meg a veremkezelő utasításokat, ott lesz a bibi, lehet csak ki kéne ugratni egy helyre, ott elmenteni a szükséges regisztereket, majd meghívni az envelopeinterrupt rutint, visszállítani, majd ei és ret.

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 55.0.2883.87 Chrome 55.0.2883.87
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #520 on: 2017.January.09. 17:57:02 »
Nem, mert akkor minden 1KHz-es megszakításban a video rutin is lefutna.
Nézd meg a veremkezelő utasításokat, ott lesz a bibi, lehet csak ki kéne ugratni egy helyre, ott elmenteni a szükséges regisztereket, majd meghívni az envelopeinterrupt rutint, visszállítani, majd ei és ret.
sikerült
kicsit "akad", de nem rossz
*** Speicherplatz zu klein

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 49.0 Firefox 49.0
    • View Profile
Re: Spectrum programok átírása
« Reply #521 on: 2017.January.09. 18:26:23 »
Ebben a régebbi Spectrum átiratban látható példa az 1 kHz-es burkológörbe megszakítás használatára, itt 250 Hz-re osztva (ENV_SRATE_DIV = 4):

* stuntcar.s (47.89 kB - downloaded 61 times.)

Ez ugyan elavult AY emulációt használ a későbbi CPC átirataimhoz képest, de azokban a 300 Hz-es video megszakításra épül a burkológörbe, és ha jól látom, a PT3 lejátszóba is ilyen kód módosított változata került. Itt még van külön video és 1 kHz-es megszakítás.

Offline geco

  • EP addict
  • *
  • Posts: 5430
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 45.0 Firefox 45.0
    • View Profile
Re: Spectrum programok átírása
« Reply #522 on: 2017.January.09. 19:07:25 »
sikerült
kicsit "akad", de nem rossz
Az jó :)
Nem lehet, hogy az akadást tiltott megszakítás okozza, emiatt bizonyos ideig nincs envelope emuláció, vagy maga a zenelejátszás "akad", bizonyos hangokat hosszabban játszik le?

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 49.0.2623.112 Chrome 49.0.2623.112
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #523 on: 2017.January.09. 20:18:50 »
Az jó :)
Nem lehet, hogy az akadást tiltott megszakítás okozza, emiatt bizonyos ideig nincs envelope emuláció, vagy maga a zenelejátszás "akad", bizonyos hangokat hosszabban játszik le?
nem kéne tiltanom a megszakítást a megszakítási rutinban?
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1872
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 49.0.2623.112 Chrome 49.0.2623.112
    • View Profile
    • http://povi.fw.hu
Re: Spectrum programok átírása
« Reply #524 on: 2017.January.09. 20:19:33 »
Ebben a régebbi Spectrum átiratban látható példa az 1 kHz-es burkológörbe megszakítás használatára, itt 250 Hz-re osztva (ENV_SRATE_DIV = 4):
mi van a 8d9dh címen? (oda ugrik a megszakítási rutin végén)
*** Speicherplatz zu klein