Welcome, Guest. Please login or register.


Author Topic: Szoftveres CPC emulátor EP-re (Read 178484 times)

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Szoftveres CPC emulátor EP-re
« Reply #90 on: 2006.September.28. 22:10:29 »
Tényleg... Ezt eddig észre sem vettem!

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #91 on: 2006.September.28. 22:11:55 »
Quote from: "Povi"
A Wriggler (nem az, ami EP-n létezik, hanem egy centipede klón) http://tacgr.emuunlim.com/downloads/filedetail.php?recid=2335 mûködik az emulátoron is.

Javaslat: a status-sor szerintem jobb, ha ki van kapcsolva az emulátorban, mert szerintem zavaró a kék csík felül.

Megvan az is, amit EP-re átírtak: Wriggler

Viszont elõnyös, ha magnót használ valaki, az lenne az igazi, ha az elején el lehetne dönteni, hogy legyen-e státusz sor, vagy ne, viszont  az egy plusz macera, minden indításnál megválaszolni a kérdést, vagy lehet csinálni egy másik loadert e mellé, ami a státusz sort tiltja.
Úgyis javítgatni kell a loaderen, találtam benne két apró bugot.

Dönts(d)étek el, hogy melyik a szimpatikusabb, jövõ héten leszek legközelebb.

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #92 on: 2006.September.28. 22:14:58 »
Quote from: "Lacika"
Tényleg... Ezt eddig észre sem vettem!

Én is csak most, hogy a CPC-s emut toldozgattam, azután teszteltem le Basic-ben is.

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Szoftveres CPC emulátor EP-re
« Reply #93 on: 2006.September.28. 22:29:06 »
kivitelezhetõ, hogy a státusz sor alapértelmezés legyen kikapcsolva, de egy paraméterrel indítva az emut be lehessen kapcsolni?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Szoftveres CPC emulátor EP-re
« Reply #94 on: 2006.September.28. 22:50:02 »
Van egy státusz sor változója az EXOS-nak, netán azt figyelembe lehetne venni :-)

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #95 on: 2006.September.28. 22:51:55 »
Quote from: "Lacika"
kivitelezhetõ, hogy a státusz sor alapértelmezés legyen kikapcsolva, de egy paraméterrel indítva az emut be lehessen kapcsolni?

Kicsi vagyok én ehhez, lehet hogy Zozo tud segíteni ebben a kérdésben.
Azt kipróbálom majd, hogy lehet-e figyelni a Státusz sor aktuális állapotát, mert akkor egy basic set status off után a Programban se lenne státusz sor.

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #96 on: 2006.September.28. 22:53:42 »
Quote from: "Zozosoft"
Van egy státusz sor változója az EXOS-nak, netán azt figyelembe lehetne venni :-)

Erre gondoltam, megpróbálom megvalósítani is. :)

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #97 on: 2006.October.04. 23:45:52 »
Kijavítottam 3 kisebb hibát, a státusz sor problémát, pedig úgy oldottam meg, hogy a betöltõ kiad egy DIR parancsot, ha "Unrecognised command string"
hibaüzenetet ad vissza (magnós konfig), akkor marad a státusz sor, ha más (lemezes konfig), akkor nincs státusz sor.

Download: CPCemu.zip
« Last Edit: 2006.December.30. 09:28:31 by geco »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Szoftveres CPC emulátor EP-re
« Reply #98 on: 2006.October.16. 22:26:38 »
Arról lesz valami tanfolyam, hogyan kell az emulátort egy átíratba bedolgozni? :-)

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #99 on: 2006.October.17. 22:15:04 »
Itt egy rövid leírás az emulátor átiratokhoz való használatához, remélem semmit nem hagyok ki. :)

Az OS ROM betöltése után el kell tárolni a használt RAM szegmenseket, a képernyõ Nick címét a ROM megfelelõ helyein ( 1.).
2 200+SYNC soros LPT létrehozása, mindkettõnek ugyanazon a 4K-s részen, és ugyanazon a memóriaszegmensen belül  kell lennie (pl ha LPT1 2000h-n van, akkor LPT2 2da0h-n), mivel az emu 2 LPT-t használ a villogás emulálásához (CPC is két palettát használ), és csak a 82h portot használja a váltáshoz ( 2.), ha a használandó LPT címei eltérnek az 0000h, és 0DA0h, akkor a ( 7.) pontban leírtakat kell változtatni.
Az LPT-ben 6 olyan LPB-nek kell lennie egymástól egyforma távolságban, ami videó megszakítást generál, a CPC 300 Hz-es megszakítását így sikerült emulálni.
Az átírt program futtatása elõtt szükséges az OS ROM-ot elindítani ( 3.), hogy a szükséges inicializálást elvégezze, a ROM meghívása elõtt a megfelelõ RAM szegmenseket be kell lapozni ( 4.), és két szubrutinhívást törölni és
elhelyezni azt a JP utasítást, ami meghívja az átírt programot.( 5.).
Ha az átírt program nem 320x200-as képernyõt használ, akkor a ( 6.) pontban leírt cím módosítandó.

Ha szükség van egy kis szabad területre, akkor az OS ROM 28C4h-2C01h területe felhasználható, ez az eredeti magnókezelõ érintetlenül hagyott része.

( 1.) OS ROM betöltése után:
   (ezek az értékek 1000h-ra betöltött OS ROM-ra érvényesek)

[asm]        ld      hl,30h      ;EXOS 30h-60h 2B30h-ra másolása
        ld      de,3b30h   
        ld      b,h
        ld      c,l
        ldir

        ld      (1578h),a   ;OS664 ROM
        ld      (1001h),a
        ld      (1626h),a

        ld      (15a2h),a   ;BASIC ROM (elhagyható, ha a program nem használ Basic-et)

        ld      (159eh),a   ;CPC RAM0
        ld      (358ch),a

        ld      (1596h),a   ;CPC RAM1
        ld      (17cbh),a
        ld      (3590h),a
        ld      (359ch),a

        ld      (3594h),a   ;CPC RAM2
        ld      (35a0h),a

        ld      (15a8h),a   ;CPC RAM3, videó szegmens
        ld      (15cbh),a
        ld      (35a4h),a
        ld      (35ceh),a
        ld      (3766h),a

        ld      (3755h),a   ;LPT szegmens
        ld      (17b6h),a
        ld      (15b7h),a

        ld      (384bh),hl   ;Nick-nek megadott videócím

        ld      (3858h),hl   ;C000h-a Nicknek megadott videócím[/asm]

( 2.) LPT váltás:
Code: [Select]
0784h 3E00 ld      a,00h
0786h D383 out     (82h),a          
0788h C9  ret
0789h 3EDA ld      a,0dah
078Bh D383 out     (82h),a          
078Dh C9  ret


( 3.) Indítás:   JP 0000h

( 4.) Indításhoz szükséges szegmenskiosztás:
Code: [Select]
page0 OS  ROM
page1 CPC RAM0
page2 CPC RAM2
page3 CPC RAM3


( 5.) Az OS ROM következõ címeire 00h elhelyezése:
Code: [Select]
0647h CDBC24 CALL 24BCh - Cas inicializálás
064Fh CD1E00 CALL 001Eh - Képernyõ init, gyártó,géptípus kiírása

0654h C37700   JP   0077h -ide lehet tenni a program indítási címét

104Eh-105Eh 1. paletta (inicializáláskor innen tölti fel a palettát)
105fh-106Fh 2. paletta (inicializáláskor innen tölti fel a palettát)


( 6.) ha a képernyõ mérete eltér a 320x200-tól:
Code: [Select]
284EH 0150C8    LD   BC,0C850H - C8h 200 sor
                    - 50h 80 byte = 40 karakter/sor
(ez a rész csak a képernyó scrollozásával foglalkozik)

2770h 06C8      LD      B,0C8h - C8h 200 sor


( 7.) Az emulátorban használttól eltérõ LPT címek esetén:
Code: [Select]
2758h 1118C0    LD   DE,0C018h - 1. LPT
275Fh 11B8CD    LD   DE,0CDB8h - 2. LPT
        (Page3-ra lett belapozva az LPT szegmens, a 18h-s eltérés azért van, mert az elsõ 10h byte a Státusz soré, ezért cseréli a program 18h-tól a színbyte-okat.)

(ez a rész csak a paletta módosításával foglalkozik +2770h)
[/color]

Ha valamit nem írtam le érthetõen, vagy kihagytam valamit, kérdezzetek nyugodtan.:)

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #100 on: 2006.October.17. 23:38:12 »
Mi lesz az átírás tárgya?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Szoftveres CPC emulátor EP-re
« Reply #101 on: 2006.October.18. 07:46:21 »
Quote from: "geco"
Mi lesz az átírás tárgya?

A Popup-ot kéne befejezni...

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #102 on: 2006.October.19. 14:09:19 »
Kis javítás:

Az LPT kezdõdhet bármelyik videószegmens legelején, ahhoz hogy ne kelljen módosítani a ( 7.) pontban leírtakat.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Szoftveres CPC emulátor EP-re
« Reply #103 on: 2006.October.19. 14:15:31 »
Quote from: "geco"
ezek az értékek 1000h-ra betöltött OS ROM-ra érvényesek

Ez most hogy van? Nem pont egy szegmens a ROM? Vagy az elejét kidobtad?

Online geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Szoftveres CPC emulátor EP-re
« Reply #104 on: 2006.October.19. 17:43:27 »
Quote from: "Zozosoft"
Ez most hogy van? Nem pont egy szegmens a ROM? Vagy az elejét kidobtad?

Nem, csak 1000h-ra töltöm be, majd átmásolom 0000h-ra, az EXOS 0000-0100h tartalmazó szegmensen marad.