HoLa! - HomeLab emultor

 2004,2006,2007,2009 Grsz Attila (gyros KUKAC freemail PONT hu)


Mi ez?
======

Emultor, olyan program, ami egy adott hardver (jelen esetben
szmtgp) mkdst imitlja egy msik tpus hardveren.

Ebben a konkrt esetben egy 8-bites magyar mikroszmtgpet
emullunk a PC hardveren, ami pillanatnyilag 32, esetleg 64-bites.


Mi a HomeLab?
=============

A HomeLab 8-bites magyar szmtgp volt, 1982 s 1986 kztt 
fejlesztettk a Lukcs fivrek, bizonyos vltozatait KIT-ekben
rultk (HL2/HL3), msok sorozatgyrtsra is kerltek (Aircomp/HL4).
Iskolai, tanulsi clokra szntk, de vgl klnbz okok miatt 
(pl. alkatrszhiny) nem tudott szlesebb krben elterjedni.

Processzora tbbnyire az egykori NDK-ban Z-80 processzor alapjn
licenszelt U880 volt. Rendszer ROM programja modulris felptsu
teljesen sajtos, igen fejlett, sokoldal, opcionlisan begetett 
gpi kd monitorral s (dis)assemblerrel, a 4-es tpus pedig mr 
magyartott hibazenetekkel s karakterekkel.

A gp sok szempontbl egyedi megoldsokat tartalmazott. Tovbbi
informcikrt s az emultor j verziirt rdemes megltogatni 
a http://gaia.atilia.eu vagy a http://homelab.8bit.hu weboldalt.


A HomeLab emultor kpessgei
==============================

- teljes, ciklusra pontos Z80 emulci
- HomeLab 3 s 4 tpusok (4/6/8/16/32/64kb memriakiosztssal) tmogatsa
  - 64 s 32 karakteroszlopos mdok
  - ki- s bemeneti portok emulcija (RAM lapozs)
  - NMI megszakts (RESET) gomb emulcija
  - teljes hang emulci
- Aircomp-16 s HomeLab 2 tpusok kezdetleges tmogatsa
  - NMI megszakts (VBLANK) emulcija
- a teljes billentyzet emulcija
- WAV formtum tmogatsa kazetta rs s olvassi mveletekre
- HTP formtum tmogatsa kazetta rs s olvassi mveletekre


A HomeLab emultor hinyossgai
===============================

- csak 3/4 -es modellek vannak rendesen tmogatva
- PIO port nincs emullva


A program hasznlata
====================

Futtats
--------

Klikk az EXE-re. A menk remlhetleg magukrt beszlnek.
Installls nem szksges. A helyes kperny aspect ratio-hoz
szoftveres s DirectDraw stretching-et is hasznl az emultor, 
ezrt ha ez utbbit hasznlni szeretnnk, akkor legalbb 
DirectX 3.0 szksges.

A futtatshoz minimum Windows 95 vagy ksbbi szksges. A DirectX mdban 
val futtatshoz pedig ajnlott egy ersebb gp (>600 MHz) is. Ha ez 
ki van kapcsolva, akkor kb. 200 MHz-cel megelgszik az emultor.

Parancssori opcik
------------------

Az albbi opcik vannak tmogatva:

/charrom:"filenv"

Indulskor megksrli betlteni a megadott file-t rendszer karakter ROM 
llomnyknt. Ha ez nem sikerl, akkor az alaprtelmezett 4-es modell 
karakter ROM-ja tltdik be.

/systemrom:"filenv"

Indulskor megksrli betlteni a megadott file-t rendszer ROM llomnyknt.
Ha ez nem sikerl, akkor az alaprtelmezett 4-es modell ROM tltdik be.

/aircomp

Nem az alaprtelmezett HL3/4-es modell, hanem az Aircomp/HL2-es lesz emullva.

Monitor
-------

A programban egy beptett monitor (trspontok tmogatsval) 
s disassembler is tallhat. Ennek elhvsa az ESC[-APE] gomb 
lenyomsval trtnik. A monitor interaktv, a parancsok listja a 
? bersval krhet le. Az x parancs bersval a monitorbl 
kilphetnk s visszatrhetnk az emullt gphez. Egyes menfunkcik
a monitor parancsrtelmezjn keresztl is elrhetk, s lehetsg
van opercis rendszerparancsokat kiadsra is.

Magn
-----

A kazetts megnetofon a HomeLab-hez kapcsolhat egyik legelterjedtebb
s ezrt legfontosabb perifria volt. A hozz tartoz PC-s
egyik formtum a WAV (tmrtetlen PCM).

Tlts: a 8 bites mono, WAV vagy RAW (nyers) formtum llomnyt a menn 
keresztl vagy az ALT s a C egyttes lenyomsval csatoljuk az emultorhoz. 
Ezutn csak ki kell adni a LOAD parancsot az emullt gpnek, s a tlts elindul.
Ha a betlttt program nem autostartos akkor ltalban a RUN parancs 
bersval indthat.

Elszr a menn keresztl ltrehozzuk a kvnt WAV llomnyt, majd 
"lenyomjuk" a virtulis Play/Record gombot (F5). A SAVE parancs kiadsa 
utn elkezddik a ments. Ez eltarthat egy darabig. A folyamat 
felgyorsthat ha az emultort az Alt+W billentykkel teljes sebessgre 
kapcsoljuk. Ha jra megjelenik az 'Ok' zenet, a ments befejezdtt. 
Kapcsoljuk ki a Play/Record gombot s zrjuk le a WAV/RAW file-t 
(ez nagyon fontos!).

Ezzel a mdszerrel tetszleges betltvel rendelkez llomnyokat is
elmenthetnk s azokat aztn egyszeren transzferlhatjuk az igazi 
HomeLab-re.

Msik kazetts formtum a HTP, ez alkalmasabb archivlsi clokra, illetve
mindennapi hasznlatra, mivel lnyegesen gyorsabb s megbzhatbb. Hasznlata
hasonlatos a WAV-hoz, annyi eltrssel, hogy a PLAY/RECORD gombot nem szksges
lenyomni, illetve a HTP-be mentst az emultor automatikusan detektlja,
hacsak nem lltottuk be korbban a menn keresztl, hogy ms formtumot
kvnunk hasznlni. 

A HTP formtum
==============

A HTP egy kimondottan a HomeLab-re szabott kazettallomny formtum.
Gyakorlatilag a HomeLab ltal byte-ra pontosan magnra rgztett adatokat 
tartalmazza a szinkronjelek nlkl, de a 256 bevezet 0 byte-tal s 
az A5h fejlcprompttal. Elvi szinten kompatibilis mind a rgi (Aircomp/HL2) 
mind az jabb (HL3/4) gpekkel.

Egy HTP file konkrt felptse a kvetkez:

Offset		Tartalom
0		csupa 0 bit
256		A5h
257		'n' karakter hossz fejlc (llomnynv)
257+n+1		fejlc zr 0 karakter.
257+n+2		blokk betltsi cm (LO/HI byte)
257+n+4		blokk hossza (LO/HI byte) : 'm'
257+n+5		blokk adat ('m' darab byte)
257+n+m+6	checksum (az adatbyte-ok sszegnek als byte-ja)
257+n+m+7	blokk zr 0 byte

Ha a blokk zr byte nem nulla, akkor jabb blokk kvetkezik, de ennek mr
nincs fejlce.

Ksznetnyilvntsok
=====================

* Hrsfalvi Levente: ROM mentsek, hardware lersok, tippek, segtsg, tesztels
* Solti Imre: ROM mentsek, lersok, tippek, segtsg, tesztels
* Riba Zoltn: ROM mentsek, trhely
* Kardos Balzs: rgi trhely

Verzik
=======

v2.2b
-----

- program kilpsi problma javtsa
- Vista alatti fagys javtsa

v2.2
-----

- Win98 kompatibilits
- hibajavtsok

v2.1
-----

- Aircomp/HomeLab2 modellek ksrleti tmogatsa
- belltsok elmentse
- parancssori opcik (/charrom:,/systemrom:,/aircomp)
- ablak mindig fell opci
- magnfejlltsi lehetsg
- log ablak
- hibajavtsok (pl. hangbuffer overflow crash, autoload bug stb.)

v2.0
-----

- teljesen, C++ -ban jrart forrskd
- autoload
- tbbfajta memriakioszts tmogatsa
- tbbfajta relatv sebessg
- teljes kpernys md
- vblank szinkronizci
- kompozit blur
- hibajavtsok (cpu refresh regiszter, memrialapozs, snapshot stb.)

v1.1
-----

- tlts/ments az j HTP formtumban
- sajt ROM s BIN llomnyok betltse
- sajt karakterkszlet betltse
- RAM lapozs, helyes memriamret

v1.0
-----

- az els nyilvnos verzi
