This repository has been archived on 2024-07-04. You can view files and clone it, but cannot push or open issues or pull requests.
tigris/TIKI-100_emul-src/LESMEG

141 lines
5.9 KiB
Plaintext
Raw Permalink Normal View History

2008-09-01 12:30:26 +02:00
TIKI-100_emul V1.1.1, 25 august 2001
------------------------------------
Dette er kildefilene til TIKI-100_emul. Denne fila gir en oppskrift p<>
hvordan kompilere. Den gir ogs<67> en generell beskrivelse av
kildefilene dersom du skulle v<>re interessert i det, men det er ikke
n<EFBFBD>dvendig dersom du bare vil kompilere og f<> en kj<6B>rbar emulator. For
mer informasjon om bruk av emulatoren, se TIKI-100_emul.txt.
Bortsett fra filene til Z80-emulatoren, er alle kildefilene mine. Jeg
gir tillatelse til <20> bruke og spre disse fritt. Men <20>nsker du <20> gj<67>re
forandringer vil jeg at du tar kontakt med meg. Dette fordi jeg ikke
anser meg for ferdig med emulatoren enda. P<> den m<>ten unng<6E>r vi at
flere forskjellige personer jobber p<> de samme tingene. Men kom gjerne
med forslag til hvordan ting kan gj<67>res bedre.
Disse kildefilene skal ikke brukes til kommersielle form<72>l p<> noen som
helst m<>te, hverken i original eller modifisert form.
Kompilering:
------------
Kompilering skal v<>re temmelig enkelt. Kildefilene er skrevet i
ansi-c og skal kompilere med de aller fleste c-kompilatorer. Makefile
er skrevet for GCC og GNU make. For unix vil du ofte ha det som trengs
allerede. For win32 m<> du skaffe deg cygwin, som finnes gratis p<>
http://www.cygwin.com. En full installasjon anbefales. Amigaversjonen
kan kompileres med verkt<6B>yene fra Geek Gadgets som finnes gratis p<>
http://www.ninemoons.com. Dessuten trenger du NDK fra Amiga
International, inc. Disse finner du bl.a p<> Amiga Developer CD.
F<EFBFBD>r kompilering m<> filen Makefile justeres til <20> passe ditt
system. For Amiga og win32 vil dette bare best<73> i <20> velge rett
system. For unix m<> du i tillegg sette en del andre ting. Alt dette
skal v<>re forklart i Makefile.
Etter dette er det bare <20> skrive "make" i katalogen du har kildefilene
i. Resultatet blir en kj<6B>rbar fil tikiemul eller tikiemul.exe. Kopier
(minimum) denne fila og tiki.rom dit du <20>nsker <20> ha programmet. I
tillegg anbefaler jeg at du kopierer plater-katalogen og
TIKI-100_emul.txt til samme plass. S<> skulle alt v<>re klart til bruk.
Har du problemer, s<> ta kontakt med meg.
Generell beskrivelse av kildefiler:
-----------------------------------
Skal du forst<73> hvordan denne emulatoren virker, b<>r du kjenne til
hvordan en TIKI-100 fungerer. Se p<> min TIKI-100 hjemmeside for mer
informasjon om det.
Disse filene skal v<>re med:
Systemuavhengige filer (selve emulatorkoden):
- TIKI-100_emul.c Hovedmodul, inneholder toppniv<69>
emulatorrutiner
- TIKI-100_emul.h Inneholder alle prototyper, konstanter
etc. som er n<>dvendig for den
systemspesifikke koden.
- ctc.c Z80-CTC emulering
- disk.c FD17xx emulering
- keyboard.c Tastaturh<72>ndtering
- mem.c RAM og I/O-port h<>ndtering
- parallel.c Z80-PIO emulering
- protos.h Prototyper for funksjoner internt i den
systemuavhengige koden.
- serial.c Z80-DART emulering
- sound.c AY-3-8912 emulering
- video.c Videoemulering
Z80-emulator av Marat Fayzullin. Disse filene er inkludert med
tillatelse men tilh<6C>rer ikke meg. Les egen copyrightnotis i filene og
se p<> http://www.komkon.org/fms/EMUL8 for mer informasjon:
- Z80.c
- Z80.h
- Codes.h
- CodesCB.h
- CodesED.h
- CodesXCB.h
- CodesXX.h
- Debug.c
- Tables.h
Systemkode for Amiga:
- amiga.c
- amiga.cd Katalogdeskriptor (locale)
- amiga_icons/* Diverse ikoner
- amiga_translations/* Oversettelser til andre spr<70>k
Systemkode for win32:
- win32.c
- win32.ico Ikoner
- win32_res.h Konstanter brukt av resources
- win32_res.rc Resources
Systemkode for unix:
- unix.c
Andre filer:
- Makefile GNU make kompatibel Makefile
- plater/t90.dsk Tom 90k diskfil
- plater/t200.dsk Tom 200k diskfil
- plater/t400.dsk Tom 400k diskfil
- plater/t800.dsk Tom 800k diskfil
- plater/tiko_kjerne_v4.01.dsk TIKO-systemdiskett
- tiki.rom TIKI-100 rombilde
- TIKI-100_emul.txt Beskrivelse av emulatoren
- LESMEG Filen du leser p<> n<>
Som du ser kan kildefilene deles inn i 2 grupper. Den systemuavhengige
koden som inneholder alt som kan programmeres uten bruk av annet enn
standard c-bibliotek, og systemkoden som inneholder de tingene som m<>
programmeres for et spesielt system (bl.a GUI). Dette vil si at all
emulatorlogikk er adskilt fra systemkoden.
Grensesnittet mellom disse to delene er laget s<> enkelt som mulig og
er definert i TIKI-100_emul.h (i form av prototyper for funksjoner som
m<EFBFBD> implementeres og funksjoner som kan kalles). Dette er den eneste
fila man trenger kjennskap til dersom man <20>nsker <20> lage en versjon for
et nytt system. Har du lyst til dette, s<> ta kontakt med meg.
Emulatorens main() funksjon (eller tilsvarende) befinner seg i
systemkoden. N<>r systemkoden er klar til <20> starte emulatorkoden kaller
den runEmul() som tar over kontrollen (g<>r i en uendelig loop). Hver
80.000 cycle (skal tilsvare 20 ms) kalles funksjonen loopEmul() i
systemkoden. Dette gj<67>r systemkoden i stand til <20> m<>le og senke
hastighet samt sjekke brukeraktivitet. Resten av funksjonene som
systemkoden m<> implementere (definert i TIKI-100_emul.h) kalles
etterhvert som emulatoren har bruk for de.
Etter noe initialisering vil runEmul() starte Z80 emulator. Z80
emulator trenger funksjoner for <20> lese/skrive til/fra
RAM/ROM/IO. Disse (sammen med emulert RAM/ROM) er implementert i
mem.c. Disse funksjonene vil, hver gang Z80 emulator benytter I/O,
kalle en funksjon i en av de andre c-filene. F.eks dersom Z80 leser
fra I/O-port 0x03 (tastatur-register) vil funksjonen readKeyboard() i
keyboard.c kalles. Tilsvarende for alle andre I/O-porter.
---
Asbj<EFBFBD>rn Djupdal, djupdal@stud.ntnu.no