AZ EMULÁTORRÓL

WinTVC - Videoton TV Computer emulátor
(c) 2004-2009 Grósz Attila (gyros KUKAC freemail PONT hu)

Mi a WinTVC?
============

Emulátor, olyan program, ami egy adott hardver (jelen esetben
számítógép) működését imitálja egy másik típusú hardveren.
Ebben a konkrét esetben egy 8-bites magyar mikroszámítógépet
emulálunk PC hardveren futó Windows operációs rendszeren, ami pillanatnyilag
32 vagy 64-bites.

A TVC volt az utolsó magyar mikroszámítógép, melyet az Enterprise-t kifejlesztő
angol gép licensze alapján a jobb időket is megélt Videoton gyártott. A gép processzora
az igen népszerű Zilog 80. Ezen és a CRTC chip-en kívül a gép semmilyen cél-IC-t nem
tartalmazott, a főbb vezérlési feladatokat TTL-ekkel oldották meg.

További információkért, programokért és az emulátor új verzióiért érdemes
meglátogatni a http://tvc.homeserver.hu vagy a http://gaia.atilia.eu weboldalakat.

A WinTVC emulátor képességei
========================

- teljes, ciklusra pontos Z80 emuláció
- közel teljes, ciklus alapú CRTC 6845 video IC emuláció
- első és második sorozatú, 32kb, 64kb és 64kb+ típusok támogatása
- hang és kurzor megszakítás emulációja
- az 1 csatornás hang áramkör emulációja
- a teljes billentyűzet, a beépített joystick és a RESET gomb emulációja
- a lemezes CAS formátum közvetlen és FILE I/O ROM-on keresztüli beolvasása/mentése
- WAV és TTP kazetta formátumok írása/olvasása
- teljes lemezegység és WD1793 diszk kontroller emuláció, DSK image írás/olvasás
- egyszerű PAL TV emuláció
- egyszerű printer támogatás

Az emulátor képes kezelni az UPM (speciális CP/M) rendszert az eredeti interface
kártya ROM és a megfelelő kártyacsatlakozó ROM mentésének illesztése után.
Ugyanez igaz az MS-DOS 3 kompatibilis VT-DOS-ra is.

A WinTVC emulátor hiányosságai
=========================

- clock stretching nincs implementálva
- WD1793 diszk kontroller emulációja nem ciklusra pontos
- utasítás alapú, de ciklusra pontos emuláció

A program használata
================

Futtatás
------------

A futtatáshoz Windows operációs rendszer (legalább Windows 95)
kell. Installálás nem szükséges, indításhoz klikk az EXE-re.
A menük remélhetőleg magukért beszélnek.

Parancssori opciók
----------------------------

Általános alak:

WinTVC.EXE [/c filenév] [/d filenév] [/a] [/c] [/f] [/h] [/i filenév] [/m] [/w] [/x]

Jelenleg a következő opciók vannak támogatva:

/a : kiad egy LOAD"filenév" parancsot, amit lemezen lévő fájlok automatikus betöltésére használhatunk. Ha nem adunk meg filenevet akkor a load"*" hajtódik végre ami betölti az első fájlt amit megtalál
/c : cartridge betöltése indításkor
/d : diszk csatolása indításkor (A:)
/f : fekete fehér kép
/h : hang tiltása indításkor (probléma esetén javasolt)
/i : I/O kártya csatolása indításkor
/m : típus állítása (/m32 /m64 /m64+ /m64c)
/w : emulátor futtatása a maximális sebességgel
/x : DirectX tiltása (probléma esetén javasolt)

Monitor
----------

A programban egy egyszerű beépített monitor es disassembler is
található. Ennek előhívása az ESC[-APE] gomb lenyomásával történik.
Második leütésére a program visszatér az emulált gép képernyőjéhez.
További monitorkezelő gombok:

F1 : Disassembly lista az IP aktuális értékétől kezdve.
A kép tetején a fontosabb regiszterek tartalma látható.
F2 : Az emulált gép memóriatartalom térképe
ENTER : Egy assembly utasítás léptetése.
PAGE UP : Oldal lapozása visszafelé
PAGE DOWN : Oldal lapozása előrefelé
FEL-NYÍL : Egy sor lapozása visszafelé
LE-NYÍL : Egy sor lapozása előrefelé

Billentyűzet
-----------------

Kétféle billentyűkiosztás választható, az egyik a pozícionális, amelyik a
TVC billentyűinek pozícióit képezi le a PC billentyűzetére, a másik a
szimbolikus, amelyik a magyar PC-s billentyűzet-kiosztást követi, és az
azoknak megfelelő TVC-s billenyűleütéseket szimulálja. Előbbi akkor hasznos,
ha játékoknál fontos a helyes elrendezés, utóbbi pedig akkor, ha programozunk,
vagy fontos a kívánt szimbólumok gyors megtalálása.

Fontos kivételek a szimbolikus kiosztásnál:
- az í és Í betűk rendre az AltGr+i illetve az AltGr+j -vel érhetők el
- a 102 gombos keyboard-okon a '<' jel az AltGr+m -re mappelődik
- az ESC billentyű az END gombon kapott helyet
- az ALT billentyű a HOME gombon kapott helyet
- a PC-s Backspace ekvivalens a TVC-s SHIFT + DEL-lel

A TVC-s joystick(ok) emulációja a PC billentyűzeten keresztül történik.

Beépített botkormány: kurzor nyilak, tűz: NumPad0
Második botkormány: numerikus billentyűzet, tűz: NumPad+

Lemez
----------

A legrugalmasabb és leggyorsabb periféria. A többrészes programok
legkényelmesebb betöltését teszi lehetővé. A helyes emulációhoz
szükség van a HBF EPROM I/O interface kártya mentésére, illetve természetesen
egy diszk állományra. Ezeket csatolni kell az emulátorhoz, mielőtt nekilátnánk
a munkának. A DISK I/O kártya (HBF) illesztése a /i parancssori opcióval, vagy a
menün keresztül történhet. Ha az emulátor könyvtárába másoljuk az I/O kártya
EPROM mentését HBF.ROM néven, úgy az automatikusan csatolódik induláskor.

A jelenleg támogatott két lemez image formátum a 360 ill. 720 kb-os DSK (1 ill.
2 oldalas, dupla írássűrűségű, 80 sávval és sávonként 9, egyenként 512 byte-os
szektorral) ami VT-DOS esetén gyakorlatilag azonos az MSX és MS-DOS által
is használt image formátummal, így az ezekhez készült image kezelő programok
(WinImage, DiskMgr, Virtual Floppy stb.) minden további nélkül használhatóak az emulátorhoz is.

Az EXT 2 parancs begépelésével belépünk a BASIC CLI-be, ahol a jórészt MS-DOS
alól is ismert parancsokat adhatjuk ki (pl. FORMAT, DIR stb). BASIC-be
visszalépni innen az ESC-kel lehet (ami az End billentyűre van állítva PC-n).

Magnó
----------

A kazettás megnetofon a TVC-hez kapcsolható legelterjedtebb és ezért
legfontosabb periféria. A hozzá tartozó PC-s formátumok egyike a WAV
(tömörítetlen PCM).

Először a menün keresztül létrehozzuk a kívánt WAV állományt.
A SAVE parancs kiadása után elkezdődik a mentés. Ez eltarthat egy darabig.
A folyamat felgyorsítható ha az emulátort az ALT+W billentyűkkel teljes
sebességre kapcsoljuk. Ha újra megjelenik az 'Ok' üzenet, a mentés befejeződött.
Zárjuk le a WAV file-t a menün keresztül (ez nagyon fontos!).

Ezzel a módszerrel tetszőleges betöltővel rendelkező állományokat is
elmenthetünk és azokat aztán egyszerűen transzferálhatjuk az igazi
TVC-re.

A másik kazettás formátum a TTP, ami az 1.0 emulátor verziótól kezdve létezik. Írása és
olvasása is támogatott. A WAV-val ellentétben byte szinten tárolja a szinkronjelek
nélküli, kazettára mentett adatokat. ROM csapdákon keresztül az operációs rendszer
hívásaiba ágyazza be magát, ezért csak a standard ROM-okkal működik. A TTP-ket vagy
a WAV-okhoz hasonlóan csatoljuk az emulátorhoz explicite, vagy a TTP automount
opció bekapcsolásával az aktuális könyvtárban található TTP-ket értelmezzük
szalagfolyamként. Ilyenkor a visszacsévélés funkció is a filemutatót az első
TTP-re állítja vissza.

Az emulátor támogatja a magnó motorjának 05h-s porton keresztüli és direkt menün keresztüli
vezérlését is (PLAY/RECORD gomb).

Médiafelvétel
-------------------

Az emulátor kép és hangkimenete médiaformátumba irányítható. A hangállományok
tömörítetlen 16-bites WAV (PCM) formátumban menthetők el a File menü
megfelelő pontjában.

Videofelvételek készítése AVI formátumba lehetséges. A gépre telepített video
codec-ek közül azok jöhetnek szóba, amik vagy a 8-bites (GDI, DirectDraw) képernyőmódot
támogatják (Tömörítetlen, RLE, stb.).

A 32-bites képmód (Direct3D) kódolására javasolt külső codec-ek (32 vagy 64-bit)
verziója meg kell egyezzen az emulátor EXE verziójával:

https://sourceforge.net/projects/x264vfw/files/
https://www.xvid.com/download/

Köszönetnyilvánítások
================

* Kiss Károly: tesztelés, honlap, nyaggatás ;-)
* Gugi Zoltán: ötletek, tesztelés, nyaggatás ;-)
* Major Tamás: DevStudio támogatás, tesztelés, nyaggatás ;-)
* László József: tárhely
* Majzik István: tippek, tesztelés
* Varga Viktor: honlap
* TVC lista és FB csoport tagjai


Verziók
=======


v1.4.0
-------

- interaktív monitor (Alt+M)
- ékezetes karakterek támogatása a vágóasztalon
- SID hangchip támogatás külső DLL segítségével (https://github.com/calmopyrin/winresid/releases)
- CRTC emuláció javítása

v1.3.0
-------

- mind a 4 csatolókártyahely támogatása
- TI SN76489 hang IC emuláció Multisound és Gamecard kártyán keresztül
- magnóhang javítása
- snapshot javítás (ID, 32 és 64 bit közti kompatibilitás)
- $FD prefix disassembly javítása

v1.2.0
-------

- OpenGL videomód + PAL TV shader
- hardveresen gyorsított billentyűkezelés (DirectInput)
- CRTC emuláció javítása (interrupt, számlálók)
- TV szinkronjelek finomítása
- video RAM lapozási hiba javítása
- pontosabb szinkronizáció és sebességmérés
- teljes képernyős mód javítása
- FF kapcsoló javítása GDI módban
- AVI video mentés javítása
- GIF képmentés javítása
- parancssori opciók hibájának javítása
- egyéb hibajavítások

v1.1.1
-------

- saját ROM konfigurációk támogatása
- RCA kábel emuláció
- FILEIO.ROM támogatás
- nem CAS formátumú file-ok támogatása FILEIO-n keresztül
- video bank regiszter reset fix
- DPI awareness fix Windows 10-hez
- ablakmaximalizálás javítása
- nemstandard HBLANK hossz támogatása
- hang interrupt javítása
- device context memória leak javítása

 

v1.1.0
-------

- pixel alapú CRTC 6845 emuláció hiányzó funkcióinak pótlása
- FILE I/O MOPS ROM támogatás CAS file-ok közvetlen beolvasásához
- WaveMapper helyett DirectSound hang driver
- emulátorablak mentése BMP formátumban
- AVI és WAV mentés javítása
- soralapú emuláció kivezetése
- dinamikusan linkelt DDRAW.DLL

v1.0.7
-------

- Direct3D driver
- D3D surface mentése PNG formátumban
- teljes képernyős mód (Alt+ENTER)
- CRT emuláció (részleges)
- CRT paraméterek realtime beállítása (fényerő, kontraszt etc.)
- szövegbeszúrás vágólapról (Alt+V)
- ékezetes betűk javítása nyomtatásnál
- változtatható alapértelmezett TTP könyvtár
- újabb TTP fixek (megy 2.2 alatt)
- C: és D: meghajtók állapotmentése javítva

v1.0.6
-------

- további javítások a hangminőségben
- magnóhangok
- több státuszablak üzenet


v1.0.5
-------

- pixel alapú rasztermód kiterjesztése a teljes képernyőre
- video mentése AVI állományba
- hangfelvétel rögzítése WAV (16 bit PCM) állományba
- opcionális jobb hangminőség (teljesítmény rovására)
- hibajavítások (monitor, I/O, GUI)

v1.0.4
-------

- újkeletű időzítési hiba javítása néhány XP alapú rendszeren
- TTP formátum kezelésével kapcsolatos hiba javítása

 

v1.0.3
-------

- négy lemezmeghajtó támogatása
- választható pixelre pontos raszter üzemmód
- CRTC interlace (csak DirectX és Double Scan bekapcsolása nélkül)

v1.0.2
-------

- VT DOS támogatás
- 2-es megszakítási mód (im 2) implementációs hiba javítása

v1.0.1
-------

- WD1793 diszk kontroller kompatibilitás javítása (UPM lemezkezelő programok működnek)
- állítható színtelítettség
- javított párhuzamos printer emuláció
- egyéb hibajavítások

v1.0
-----

- TTP; natív byte alapú kazettás formátum írása/olvasása
- 1-bites tape file-ok támogatása, konverter (WAV kiterjesztéssel)
- PC joystick támogatása
- BASIC 2.1 opció
- 32 kB RAM emulációja
- autostart
- drag'n'drop (Ctrl-t nyomva nincs autostart)
- 1-2-3x-os fix ablakméretek
- az emulátor opcionálisan háttérben is aktív lehet
- PLAY gomb és motor távvezérlés a magnóhoz
- Visual C++ 2008-cal és profilerrel fordítva
- XP/Vista theme támogatás
- hibajavítások (video, magnókezelés, irq)

v0.9
-----

- alsó és felső keret megjelenítése
- képernyőablak megnövelésének támogatása
- magnófejállítási lehetőség
- screenshot készítés
- hibajavítások

v0.8
-----

- Cirill betus TVC emulációja (Cirill betuk: CAPS LOCK)
- gyors boot opció
- billentyűzet-leütés szimuláció parancssorból
- emulátor snapshot támogatás
- hibajavítások (Nautilus, Poseidon, Space Invaders)

v0.7
-----

- teljes lemezegység és WD1793 diszk kontroller emuláció
- új parancssori opciók (/C, /D, /I)
- memóriatartalom mentése közvetlenül CAS állományba
- választható szimbolikus billentyűzet-kiosztás
- állapotsor, magnó-számláló és drive ledek
- ROM korrupciós hiba javítása
- egyéb hibajavítások

v0.6
-----

- parancssori opciók
- javított CRTC emuláció
- javított paletta
- kezdetleges I/O kártya emuláció
- hibajavítások

v0.5
----

- az első nyilvános verzió

(Grósz Attila)